Загрузил mozgovoi-aa

Тема 1 1 Классы вычислительных машин. История развития выч-х устр-в и приборов. Систем

реклама
Тема 1.1 Классы вычислительных машин. История развития вычислительных устройств и
приборов. Системы счисления. Формы представления чисел в ЭВМ.
Основные этапы развития ВТ можно привязать к следующей хронологической шкале:
- домеханический - до 17 века;
- механический – с середины 17 века;
- электронно-вычислительный – с 90-х годов XIX в. до нашего времени.
Эти этапы отличались друг от друга более совершенным строением вычислительных
аппаратов. Рассмотрим более подробно каждый из этих этапов развития вычислительной
техники.
Домеханический период
Счет на пальцах
Счет на пальцах, несомненно, самый древний и наиболее простой способ вычисления.
Обнаруженная в раскопках так называемая "вестоницкая кость" с зарубками, оставленная
древним человеком ещё 30 тыс. лет до нашей эры, позволяет историкам предположить, что
уже тогда предки современного человека были знакомы с зачатками счета. У многих
народов пальцы рук остаются инструментом счета и на более высоких ступенях развития.
К числу этих народов принадлежали и греки, сохраняющие счет на пальцах в качестве
практического средства очень долгое время.
Счет на камнях
Чтобы сделать процесс счета более удобным, первобытный человек начал использовать
вместо пальцев небольшие камни. Он складывал из камней пирамиду и определял, сколько
в ней камней, но если число велико, то подсчитать количество камней на глаз трудно.
Поэтому он стал складывать из камней более мелкие пирамиды одинаковой величины, а
из-за того\, что на руках десять пальцев, то пирамиду составляли именно десять камней.
Счет на Абаке
Во времена древнейших культур человеку приходилось решать задачи, связанные с
торговыми расчетами, с исчислением времени, с определением площади земельных
участков и т. д. Рост объемов этих расчетов приводили даже к тому, что из одной страны в
другую приглашались специально обученные люди, хорошо владевшие техникой
арифметического счета. Поэтому рано или поздно должны были появиться устройства,
облегчающие выполнение повседневных расчетов.
Так в Древней Греции и в Древнем Риме были созданы приспособления для счета,
называемые абак (от греческого слова abakion – “дощечка, покрытая пылью”). Абак
называют также римскими счетами. Вычисления на них проводились путем перемещения
счетных костей и камешков (калькулей) в полосковых углублениях досок из бронзы, камня,
слоновой кости, цветного стекла. В своей примитивной форме абак представлял собой
дощечку (позднее он принял вид доски, разделенной на колонки перегородками). На ней
проводились линии, разделявшие ее на колонки, а камешки раскладывались в эти колонки
по тому же позиционному принципу, по которому кладется число на наши счеты. Эти счеты
сохранились до эпохи Возрождения.
В странах Древнего Востока (Китай, Япония, Индокитай) существовали китайские счеты.
На каждой нити или проволоке в этих счетах имелось по пять и по две костяшки. Счет
осуществлялся единицами и пятерками.
В России для арифметических вычислений применялись русские счеты, появившиеся в 16
веке, но кое-где счеты можно встретить и сегодня.
Палочки Непера
Первым устройством для выполнения умножения был набор деревянных брусков,
известных как палочки Непера. Они были изобретены шотландцем Джоном Непером (15501617гг.). На таком наборе из деревянных брусков была размещена таблица умножения.
Кроме того, Джон Непер изобрел логарифмы.
Логарифмическая линейка
Развитие приспособлений для счета шло в ногу с достижениями математики. Вскоре после
открытия логарифмов в 1623 г. была изобретена логарифмическая линейка.
В 1654 г. Роберт Биссакар, а в 1657 г. независимо С. Патридж (Англия) разработали
прямоугольную логарифмическую линейку — это счетный инструмент для упрощения
вычислений, с помощью которого операции над числами заменяются операциями над
логарифмами этих чисел. Конструкция линейки сохранилась в основном до наших дней.
Логарифмической линейки была суждена долгая жизнь: от 17 века до нашего времени.
Вычисления с помощью логарифмической линейки производятся просто, быстро, но
приближённо. И, следовательно, она не годится для точных, например финансовых,
расчетов.
Механический период
Эскиз механического тринадцатиразрядного суммирующего устройства с десятью
колесами был разработан еще Леонардо да Винчи (1452— 1519). По этим чертежам в наши
дни фирма IBM в целях рекламы построила работоспособную машину.
Первая механическая счетная машина была изготовлена в 1623 г. профессором математики
Вильгельмом Шиккардом (1592—1636). В ней были механизированы операции сложения
и вычитания, а умножение и деление выполнялось с элементами механизации. Но машина
Шиккарда вскоре сгорела во время пожара. Поэтому биография механических
вычислительных устройств ведется от суммирующей машины, изготовленной в 1642 г.
Блезом Паскалем.
В 1673 г. другой великий математик Готфрид Лейбниц разработал счетное устройство, на
котором уже можно было умножать и делить.
В 1880г. В.Т. Однер создает в России арифмометр с зубчаткой с переменным количеством
зубцов, а в 1890 году налаживает массовый выпуск усовершенствованных арифмометров,
которые в первой четверти 19-ого века были основными математическими машинами,
нашедшими применение во всем мире. Их модернизация "Феликс" выпускалась в СССР до
50-х годов.
Мысль о создании автоматической вычислительной машины, которая бы работала без
участия человека, впервые была высказана английским математиком Чарльзом Бэббиджем
(1791—1864) в начале XIX в. В 1820—1822 гг. он построил машину, которая могла
вычислять таблицы значений многочленов второго порядка.
Машина Блеза Паскаля
Считается, что первую механическую машину, которая могла выполнять сложение и
вычитание, изобрел в 1646г. молодой 18-летний французский математик и физик Блез
Паскаль. Она называется "паскалина".
Формой своей машина напоминала длинный сундучок. Она была достаточно громоздка,
имела несколько специальных рукояток, при помощи которых осуществлялось управление,
имела ряд маленьких колес с зубьями. Первое колесо считало единицы, второе - десятки,
третье – сотни и т.д. Сложение в машине Паскаля производится вращением колес вперед.
Двигая их обратно, выполняется вычитание.
Машина Готфрида Лейбница
Следующим шагом было изобретение машины, которая могла выполнять умножение и
деление. Такую машину изобрел в 1671 г. немец Готфрид Лейбниц. Хоть машина Лейбница
и была похожа на "Паскалину", она имела движущуюся часть и ручку, с помощью которой
можно было крутить специальное колесо или цилиндры, расположенные внутри аппарата.
Такой механизм позволил ускорить повторяющиеся операции сложения, необходимые для
умножения. Само повторение тоже осуществлялось автоматически.
Перфокарты Жаккара
Французский ткач и механик Жозеф Жаккар создал первый образец машины, управляемой
введением в нее информации. В 1802 г. он построил машину, которая облегчила процесс
производства тканей со сложным узором. При изготовлении такой ткани нужно поднять
или опустить каждую из ряда нитей. После этого ткацкий станок протягивает между
поднятыми и пущенными нитями другую нить. Затем каждая из нитей опускается или
поднимается в определенном порядке и станок снова пропускает через них нить. Этот
процесс многократно повторяется до тех пор, пока не будет получена нужная длина ткани
с узором. Для задания узора на ткани Жаккар использовал ряды отверстий на картах. Если
применялось десять нитей, то в каждом ряду карты предусматривалось место для десяти
отверстий. Карта закреплялась на станке в устройстве, которое могло обнаруживать
отверстия на карте. Это устройство с помощью щупов проверяло каждый ряд отверстий на
карте. Информация на карте управляла станком.
Разностная машина Чарльза Бэббиджа
В 1822 г. англичанин Чарльз Бэббидж построил счетное устройство, которое назвал
разностной машиной. В эту машину вводилась информация на картах. Для выполнения
ряда математических операций в машине применялись цифровые колеса с зубьями. Десять
лет спустя Бэббидж спроектировал другое счетное устройство, гораздо более совершенное,
которое назвал аналитической машиной.
В первой половине XIX века английский математик Чарльз Бэббидж попытался построить
универсальное вычислительное устройство - Аналитическую машину, которая должна
была выполнять вычисления без участия человека. Для этого она должна была уметь
выполнять программы, вводимые с помощью перфокарт (карт из плотной бумаги с
информацией, наносимой с помощью отверстий, как в ткацких станках), и иметь “склад”
для запоминания данных и промежуточных результатов (в современной терминологии память). Бэббидж не смог довести до конца работу - она оказалась слишком сложной для
техник того времени.
Друг Бэббиджа, графиня Ада Августа Лавлейс, показала, как можно использовать
аналитическую машину для выполнения ряда конкретных вычислений. Чарльза Бэббиджа
считают изобретателем компьютера, а Аду Лавлейс называют первым программистом
компьютера. Даже одини из компьютерных языков был официально назван в честь графини
– ADA.
В 1985 г. сотрудники Музея науки в Лондоне решили выяснить наконец, возможно ли на
самом деле построить вычислительную машину Бэббиджа. После нескольких лет
напряженной работы старания увенчались успехом. В ноябре 1991 г. незадолго до
двухсотлетия со дня рождения знаменитого изобретателя, разностная машина впервые
произвела серьезные вычисления.
После смерти Бэббиджа умер и его сын, но перед этим он успел построить несколько
миникопий разностной машины Бэббиджа и разослать их по всему миру, дабы увековечить
эту машину. В октябре 1995 года одна из тех копий была продана на лондонском аукционе
австралийскому музею электричества в Сиднее за $200,000.
Герман Холлерит
В конце XIX в. были созданы более сложные механические устройства. Самым важным из
них было устройство, разработанное американцем Германом Холлеритом.
Исключительность его заключалась в том, что в нем впервые была употреблена идея
перфокарт и расчеты велись с помощью электрического тока. Это сочетание делало машину
настолько работоспособной, что она получила широкое применение в своё время.
Например, при переписи населения в США, проведенной в 1890 г., Холлерит, с помощью
своих машин, смог выполнить за три года то, что вручную делалось бы в течении семи лет,
причем гораздо большим числом людей.
Конрад Цузе
Лишь спустя 100 лет машина Бэбиджа привлекла внимание инженеров. В конце 30-х годов
20 века немецкий инженер Конрад Цузе разработал первую двоичную цифровую машину
Z1. В ней широко использовались электромеханические реле, то есть механические
переключатели, приводимые в действие электрическим током. В 1941 г. Конрад Цузе создал
машину Z3, полностью управляемую с помощью программы.
Говард Айкен
Большой толчок в развитии вычислительной техники дала вторая мировая война:
американским военным понадобился компьютер.
В 1944 г. американец Говард Айкен на одном из предприятий фирмы ІВМ построил
довольно мощную по тем временам вычислительную машину «Марк-1». В этой машине
для представления чисел использовались механические элементы – счетные колеса, а для
управления применялись электромеханические реле. Программа обработки данных
вводилась с перфоленты. Размеры: 15 X 2,5 м., 750000 деталей. "Марк-1" мог перемножить
два 23-х разрядных числа за 4 с.
Электронно-вычислительный период
Аналоговые вычислительные машины (АВМ)
В АВМ все математические величины представляются как непрерывные значения какихлибо физических величин. Главным образом, в качестве машинной переменной выступает
напряжение электрической цепи. Их изменения происходят по тем же законам, что и
изменения заданных функций. В этих машинах используется метод математического
моделирования (создаётся модель исследуемого объекта). Результаты решения выводятся
в виде зависимостей электрических напряжений в функции времени на экран осциллографа
или фиксируются измерительными приборами. Основным назначением АВМ является
решение линейных и дифференцированных уравнений.
Достоинства АВМ:
высокая скорость решения задач, соизмеримая со скоростью прохождения электрического
сигнала;
простота конструкции АВМ;
лёгкость подготовки задачи к решению;
наглядность протекания исследуемых процессов, возможность изменения параметров
исследуемых процессов во время самого исследования.
Недостатки АВМ:
малая точность получаемых результатов (до 10%);
алгоритмическая ограниченность решаемых задач;
ручной ввод решаемой задачи в машину;
большой объём задействованного оборудования, растущий с увеличением сложности
задачи.
Электронные вычислительные машины (ЭВМ)
В отличие от АВМ, в ЭВМ числа представляются в виде последовательности цифр. В
современных ЭВМ числа представляются в виде кодов двоичных эквивалентов, то есть в
виде комбинаций 1 и 0. В ЭВМ осуществляется принцип программного управления. ЭВМ
можно разделить на цифровые, электрифицированные и счётно-аналитические
(перфорационные) вычислительные машины.
ЭВМ разделяются на большие ЭВМ, мини-ЭВМ и микро-ЭВМ. Они отличаются своей
архитектурой,
техническими,
эксплуатационными
и
габаритно-весовыми
характеристиками, областями применения.
Достоинства ЭВМ:
· высокая точность вычислений;
· универсальность;
· автоматический ввод информации, необходимый для решения задачи;
· разнообразие задач, решаемых ЭВМ;
· независимость количества оборудования от сложности задачи.
Недостатки ЭВМ:
· сложность подготовки задачи к решению (необходимость специальных знаний
методов решения задач и программирования);
· недостаточная наглядность протекания процессов, сложность изменения параметров
этих процессов;
· сложность структуры ЭВМ, эксплуатация и техническое обслуживание;
· требование специальной аппаратуры при работе с элементами реальной аппаратуры.
· Электронно-вычислительную технику принято делить на поколения. Смена
поколений связаны со сменой элементной базы ЭВМ, с прогрессом электронной
техники. Это всегда приводило к росту вычислительной мощности ЭВМ, т.е.
быстродействия и объема памяти, а также происходили изменения в архитектуре
ЭВМ, расширялся круг задач, решаемых на ЭВМ, менялся способ взаимодействия
между пользователем и компьютером. Можно выделить 4 основные поколения
ЭВМ.
· Деление компьютерной техники на поколения — весьма условная, нестрогая
классификация по степени развития аппаратных и программных средств, а также
способов общения с компьютером.
· Идея делить машины на поколения вызвана к жизни тем, что за время короткой
истории своего развития компьютерная техника проделала большую эволюцию, как
в смысле элементной базы (лампы, транзисторы, микросхемы и др.), так и в смысле
изменения её структуры, появления новых возможностей, расширения областей
применения и характера использования.
1 поколение
Все ЭВМ I-го поколения были сделаны на основе электронных ламп, что делало их
ненадежными - лампы приходилось часто менять. Эти компьютеры были огромными,
неудобными и слишком дорогими машинами, которые могли приобрести только крупные
корпорации и правительства. Лампы потребляли огромное количество электроэнергии и
выделяли много тепла.
Притом для каждой машины использовался свой язык программирования. Набор команд
был небольшой, схема арифметико-логического устройства и устройства управления
достаточно проста, программное обеспечение практически отсутствовало. Показатели
объема оперативной памяти и быстродействия были низкими. Для ввода-вывода
использовались перфоленты, перфокарты, магнитные ленты и печатающие устройства,
оперативные запоминающие устройства были реализованы на основе ртутных линий
задержки электроннолучевых трубок.
Эти неудобства начали преодолевать путем интенсивной разработки средств
автоматизации программирования, создания систем обслуживающих программ,
упрощающих работу на машине и увеличивающих эффективность её использования. Это,
в свою очередь, потребовало значительных изменений в структуре компьютеров,
направленных на то, чтобы приблизить её к требованиям, возникшим из опыта
эксплуатации компьютеров.
II поколение
(1958-1964)
В 1958 г. в ЭВМ были применены полупроводниковые транзисторы, изобретённые в 1948
г. Уильямом Шокли, они были более надёжны, долговечны, малы, могли выполнить
значительно более сложные вычисления, обладали большой оперативной памятью. 1
транзистор способен был заменить ~ 40 электронных ламп и работал с большей скоростью.
Во II-ом поколении компьютеров дискретные транзисторные логические элементы
вытеснили электронные лампы. В качестве носителей информации использовались
магнитные ленты ("БЭСМ-6", "Минск-2","Урал-14") и магнитные сердечники, появились
высокопроизводительные устройства для работы с магнитными лентами, магнитные
барабаны и первые магнитные диски.
В качестве программного обеспечения стали использовать языки программирования
высокого уровня, были написаны специальные трансляторы с этих языков на язык
машинных команд. Для ускорения вычислений в этих машинах было реализовано
некоторое перекрытие команд: последующая команда начинала выполняться до окончания
предыдущей.
Появился широкий набор библиотечных программ для решения разнообразных
математических задач. Появились мониторные системы, управляющие режимом
трансляции и исполнения программ. Из мониторных систем в дальнейшем выросли
современные операционные системы.
Машинам второго поколения была свойственна программная несовместимость, которая
затрудняла организацию крупных информационных систем. Поэтому в середине 60-х годов
наметился переход к созданию компьютеров, программно совместимых и построенных на
микроэлектронной технологической базе.
III поколение
(1964-1972)
В 1960 г. появились первые интегральные системы (ИС), которые получили широкое
распространение в связи с малыми размерами, но громадными возможностями. ИС — это
кремниевый кристалл, площадь которого примерно 10 мм2. 1 ИС способна заменить
десятки тысяч транзисторов. 1 кристалл выполняет такую же работу, как и 30-тонный
“Эниак”. А компьютер с использованием ИС достигает производительности в 10 млн
операций в секунду.
В 1964 году фирма IBM объявила о создании шести моделей семейства IBM 360 (System
360), ставших первыми компьютерами третьего поколения.
Машины третьего поколения — это семейства машин с единой архитектурой, т. е.
программно совместимых. В качестве элементной базы в них используются интегральные
схемы, которые также называются микросхемами.
Машины третьего поколения имеют развитые операционные системы. Они обладают
возможностями мультипрограммирования, т.е. одновременного выполнения нескольких
программ. Многие задачи управления памятью, устройствами и ресурсами стала брать на
себя операционная система или же непосредственно сама машина.
Примеры машин третьего поколения — семейства IBM-360, IBM-370, ЕС ЭВМ (Единая
система ЭВМ), СМ ЭВМ (Семейство малых ЭВМ) и др. Быстродействие машин внутри
семейства изменяется от нескольких десятков тысяч до миллионов операций в секунду.
Ёмкость оперативной памяти достигает нескольких сотен тысяч слов.
IV поколение
(с 1972 г. по настоящее время)
Четвёртое поколение — это теперешнее поколение компьютерной техники, разработанное
после 1970 года.
Впервые стали применяться большие интегральные схемы (БИС), которые по мощности
примерно соответствовали 1000 ИС. Это привело к снижению стоимости производства
компьютеров. В 1980 г. центральный процессор небольшой ЭВМ оказалось возможным
разместить на кристалле площадью 1/4 дюйма (0,635 см2.). БИСы применялись уже в таких
компьютерах, как “Иллиак”,” Эльбрус”,” Макинтош ”. Быстродействие таких машин
составляет тысячи миллионов операций в секунду. Емкость ОЗУ возросла до 500 млн.
двоичных разрядов. В таких машинах одновременно выполняются несколько команд над
несколькими наборами операндов.
C точки зрения структуры машины этого поколения представляют собой
многопроцессорные и многомашинные комплексы, работающие на общую память и общее
поле внешних устройств. Ёмкость оперативной памяти порядка 1 - 64 Мбайт.
Распространение персональных компьютеров к концу 70-х годов привело к некоторому
снижению спроса на большие ЭВМ и мини-ЭВМ. Это стало предметом серьезного
беспокойства фирмы IBM (International Business Machines Corporation) — ведущей
компании по производству больших ЭВМ, и в 1979 г. фирма IBM решила попробовать свои
силы на рынке персональных компьютеров, создав первые персональные компьютерыIBM PC.
Персональный компьютер.
Персональный Компьютер, компьютер, специально созданный для работы в
однопользовательском режиме. Появление персонального компьютера прямо связано с
рождением микрокомпьютера. Очень часто термины «персональный компьютер» и
«микрокомпьютер» используются как синонимы.
ПК - настольный или портативный компьютер, который использует микропроцессор в
качестве единственного центрального процессора, выполняющего все логические и
арифметические операции. Эти компьютеры относят к вычислительным машинам
четвертого и пятого поколения. Помимо ноутбуков, к переносным микрокомпьютерам
относят и карманные компьютеры — палмтопы. Основными признаками ПК являются
шинная организация системы, высокая стандартизация аппаратных и программных
средств, ориентация на широкий круг потребителей.
Анатомия персонального компьютера:
С развитием полупроводниковой техники персональный компьютер, получив компактные
электронные компоненты, увеличил свои способности вычислять и запоминать. А
усовершенствование программного обеспечения облегчило работу с ЭВМ для лиц с весьма
слабым представлением о компьютерной технике. Основные компоненты: плата памяти и
дополнительное запоминающее устройство с произвольной выборкой (РАМ); главная
панель с микропроцессором (центральным процессором) и местом для РАМ; интерфейс
печатной платы; интерфейс платы дисковода; устройство дисковода (со шнуром),
позволяющее считывать и записывать данные на магнитных дисках; съемные магнитные
или гибкие диски для хранения информации вне компьютера; панель для ввода текста и
данных.
Какими должны быть ЭВМ V поколения.
Сейчас завершены интенсивные разработки ЭВМ V поколения. Разработка последующих
поколений компьютеров производилась на основе больших интегральных схем
повышенной степени интеграции, использования оптоэлектронных принципов (лазеры,
голография).
Ставятся совершенно другие задачи, нежели при разработки всех прежних ЭВМ. Если
перед разработчиками ЭВМ с I по IV поколений стояли такие задачи, как увеличение
производительности в области числовых расчётов, достижение большой ёмкости памяти,
то основной задачей разработчиков ЭВМ V поколения является создание искусственного
интеллекта машины (возможность делать логические выводы из представленных фактов),
развитие "интеллектуализации" компьютеров - устранения барьера между человеком и
компьютером. Компьютеры будут способны воспринимать информацию с рукописного
или печатного текста, с бланков, с человеческого голоса, узнавать пользователя по голосу,
осуществлять перевод с одного языка на другой. Это позволит общаться с ЭВМ всем
пользователям, даже тем, кто не обладает специальных знаний в этой области. ЭВМ будет
помощником человеку во всех областях.
История развития ЭВМ
Этапными в появлении и развитии вычислительной техники можно считать следующие даты:
1623 г. Вильгельм Шиккард создает первую из известных в настоящее время счетных
машин, включающую механизмы выполнения операций "+" и "-".
1641 г. Выдающийся математик Блез Паскаль создает счетную машину,
автоматизирующую выполнение операций "+" и "-". Идеи Паскаля оказали очень
мощное влияние на дальнейшее развитие вычислительной техники.
1673 г. Великий Готфрид Лейбниц создает счетную машину (калькулятор, прототип
арифмометра), реализующую операции "+", "-", "x", ":".
1821 г. Выпуск Карлом Томасом на основании идей Лейбница устройства,
названного им арифмометром. С этого времени началось практическое
применение вычислительных устройств.
На протяжении XIX в. было создано много конструкций счетных машин, повысилась точность
и надежность их работы, удобство общения. Возникли идеи фиксации результатов счета путем
выдачи их на печать, появилась клавиатура, кнопки гашения результатов и т. п.
Принципиально же новые концепции связаны с именем крупного английского математика
Чарльза Бэббиджа. Эти концепции предвосхитили основные идеи в создании современных
вычислительных машин.
"Аналитическая" машина Бэббиджа должна была состоять из следующих основных блоков:
•
•
•
•
Устройство для хранения чисел на регистрах из зубчатых колес, включающее
систему передачи этих чисел от одного узла машины к другому ("склад").
Устройство для осуществления арифметических операций над числами, взятыми со
"склада" ("фабрика").
Устройство
для
управления
последовательностью действий
машины
("контора").
Устройства для ввода исходных данных и вывода результатов на печать.
Все устройства в машине Бэббиджа были задуманы как чисто механическими, с
использованием перфокарт, которые изобрел и в 1804 г. впервые применил Жозеф Мари Жаккар
для управления ткацким станком.
Следует отметить, что отцом счетно-перфорационной техники, непосредственно
предшествующей современным машинам, является Герман Холлерит. В 1896 г. Холлерит
основал фирму по выпуску перфокарт и счетно-перфорационной техники - IBM (International
Business Machine).
Перфокарты предназначались в машине Бэбиджа для задания типа операций, выборки
из "склада" чисел, над которыми необходимо произвести действие, в "фабрику" и,
соответственно, обратного переноса результата выполнения операции. Посредством перфокарт
Бэбидж предполагал управлять и специальными устройствами ввода данных и вывода
результатов.
Карты программы (последовательности перфокарт с указанными операциями), в
зависимости от знака результата на арифметическом устройстве, могли двигаться вперед и
назад, и тем самым открывалась возможность менять программу в зависимости от
результатов вычислений. Это - главное отличительное свойство универсальных
вычислительных машин от других вычислительных устройств. Именно это гениальное открытие
Бэбиджа дало возможность использовать вычислительные машины как инструмент
аналитических исследований. Таким образом, Бэбидж предвосхитил идею и принципы
организации программно-управляемой автоматической машины, предназначенной для
выполнения различных вычислений.
Работа Бэббиджа была доведена до инженерного проекта, однако технический уровень
не позволил осуществить ее реализацию.
С аналитической машиной Бэббиджа связано и зарождение программирования. Прекрасный
математик, дочь великого поэта лорда Байрона леди Ада Лавлайс исследовала возможность
использования аналитической машины для выполнения сложных вычислений, то есть в
современной терминологии проанализировала и разработала первые программы, доказав
универсальные возможности вычислительных машин.
Замечание. В честь леди Лавлайс один из известных языков программирования назван «Ада».
Труды Бэбиджа были опубликованы после его смерти в 1888 г. и забыты.
А первые универсальные цифровые вычислительные машины (ЦВМ), в основу разработки которых
легли идей Ч. Бэбиджа, были созданы в 30-40-х годах XX столетия.
СИСТЕМЫ СЧИСЛЕНИЯ
2.1. Виды систем счисления. Позиционные системы
Системой счисления называется совокупность приемов и правил для наименования и
обозначения чисел. Условные знаки, применяемые для обозначения чисел, называются
цифрами. Будем предполагать, что количество цифр, то есть алфавит, на основе которого
составляются числа в некоторой системе счисления, конечно.
Пусть S - некоторое целое число, большее единицы, которое будем называть основанием
системы счисления. Выберем S попарно различных знаков - S-ичных цифр. Выберем, кроме
того, S последовательных целых чисел, среди которых содержится нуль.
Эту последовательность чисел будем называть базой системы счисления. Между S-ичными
цифрами и числами базы установим взаимно- однозначное соответствие.
Обычно все системы счисления разбивают на два класса: непозиционные и позиционные.
Непозиционной называют систему счисления, в которой значение каждой цифры в любом
месте последовательности цифр, означающей запись числа, не изменяется. Примером
непозиционной системы счисления служит римская нумерация.
Системы, в которых значение каждой цифры зависит и от места в последовательности цифр
при записи числа, носят название позиционных. Позиционной является самая
распространенная десятичная система счисления. Далее в тексте рассматриваются только
позиционные системы счисления.
В позиционной системе счисления число записывают в виде последовательности S-ичных
цифр, которая разделена запятой на две последовательности. Запись числа может иметь вид:
AnAn-1…A1A0,A-1…A-m , ( * )
где Ai (i=n, …, -m) – S-ичные цифры.
Считается, что позиции, на которых в последовательности (*) стоят цифры, перенумерованы:
•
позиции, расположенные левее запятой, перенумерованы подряд справа налево
числами нуль, один, два и т.д.;
• позиции, расположенные справа от запятой, перенумерованы подряд слева
направо с помощью чисел минус один, минус два и т.д.
Эти перенумерованные позиции называются S-ичными разрядами числа.
Каждой цифре последовательности (*) приписано определенное значение. Цифра, стоящая в
нулевом разряде, имеет своим значением соответствующее ей число базы. Цифра, стоящая в
некотором разряде, имеет значение, в S раз большее того, которое она имела бы в разряде с
номером, меньшим на единицу (или значение, в S раз меньшее того, которое она имела бы в
разряде с номером, большим на единицу).
Последовательность S-ичных цифр обозначает число, равное сумме значений ее цифр, таким
образом, в соответствии со сказанным, последовательность S-ичных цифр (*) обозначает число
An Sn + An-1 Sn-1 +…+ A1S1 + A0 S0 + A-1S-1 +…+ A-mS-m (**)
В дальнейшем вместо слов "запись числа" будем говорить просто "число".
Последовательность цифр числа, расположенных слева от запятой, представляет целую часть
числа. Последовательность, которая получится, если целую часть числа заменить нулем,
называется его дробной частью.
Сложение, вычитание, умножение и деление чисел, представленных в S-ичной позиционной
системе, выполняются с использованием таблиц сложения, вычитания и умножения, подобно
тому, как это делают в десятичной системе счисления.
Отметим, что умножение числа на основание системы S, как это следует из формулы (**),
сводится к переносу запятой на один разряд вправо, а деление на S - к переносу запятой на
один разряд влево.
Ниже рассматриваются важнейшие, наряду с десятичной, позиционные системы счисления,
используемые при подготовке и решении задач на ЭВМ.
2.2. Двоичная арифметика
Будем рассматривать двоичную систему счисления с цифрами {0,1}. Именно эта система
счисления получила широкое применение в вычислительных машинах. Ниже приводятся
правила выполнения арифметических операций с двоичными числами.
Сложение. Таблица сложения имеет вид:
0+0= 0
0+1= 1
1+0= 1
1 + 1 = 10
Последняя сумма представляет собой двузначное число. Это следует понимать как перенос
одной двоичной единицы в соседний старший разряд. Это можно записать так: 1 + 1= 0 +
перенос единицы в соседний старший разряд.
Пример. Сложить двоичные числа (Х)2= 110,1011 и (Y)2 = 10111,10101. По
правилам сложения столбиком имеем:
110,1011 +
10111,10101
10001,00011 - поразрядная сумма без учета переносов
+
11 1 1 переносы
11100,01011 - поразрядная сумма без учета повторных переносов
+
1
повторные переносы
11110,01011 - окончательная сумма
Вычитание. Таблица вычитания имеет вид
0–0=0
1–0=1
1–1=0
10 – 1 = 1
При необходимости, когда в некотором разряде приходится вычитать единицу из нуля,
занимается единица из ближайшего старшего разряда, где она имеется.
Пример. Вычесть из (Х)2 = 11010,1011 число (Y)2 = 1101,01111 Имеем:
—
11010,1011
1101,01111
1101,00111
Умножение. Таблица умножения имеет очевидный вид
0х0=0
0х1=0
1х0=0
1х1=1
Умножение двух двоичных чисел выполняется так же, как и умножение десятичных. Сначала
получают частичные произведения и затем их суммируют с учетом веса соответствующего
разряда множителя.
Умножение производится, начиная с младшего или старшего разряда множителя, что и
определяет направление сдвига. Если сомножители имеют дробные части, то положение
запятой в произведении определяется по тем же правилам, что и для десятичных чисел.
Пример. Перемножить двоичные числа (X)2 = 101,1101 и (Y)2 = 1001,101 Имеем:
101,1101
×
1001,101
1011101
0000000
1011101
1011101
0000000
0000000
Искомый результат 110111,1111001
На примере наглядно иллюстрируется отличительная особенность умножения в двоичной
системе счисления – это его простота, обусловленная простотой таблицы умножения. В
соответствии с ней, каждое частичное произведение или равно нулю, если в соответствующем
разряде множителя стоит нуль, или равно множимому, сдвинутому на соответствующее число
разрядов, если в соответствующем разряде множителя стоит единица. Таким образом,
операция умножения в двоичной системе сводится к операциям сдвига и сложения.
Очевидно, что тот же результат получится, если начать умножение со старших разрядов
множителя.
Деление. Деление чисел в двоичной системе производится аналогично делению десятичных
чисел. Деление начинается с того, что от делимого слева отделяется минимальная группа
разрядов, которая, рассматриваемая как число, превышает или равна делителю. Дальнейшие
действия выполняются по обычным правилам, причем последняя целая цифра частного
получается тогда, когда все цифры делимого исчерпаны. Очевидно, что достаточно
рассмотреть только деление целых чисел, поскольку делимое и делитель всегда могут быть
приведены к целому виду путем перенесения запятой в делимом и делителе на одинаковое
количество разрядов вправо и дописывания необходимого количества нулей.
Пример. Разделить (X)2 = 11011,11 на число (Y)2 = 10,111 Имеем:
11011110 10111
–
10111 1001–
100110
10111
частное
–
1111 - остаток
Таким образом, выполнение арифметических операций в двоичной системе счисления
достаточно просто (особенно при выполнении операций сложения, вычитания и умножения).
Благодаря этому, применение двоичной системы в вычислительных машинах позволяет
упростить схемы устройств, в которых осуществляются арифметические операции над
числами.
2.3. Восьмеричная и шестнадцатеричная системы счисления
Причины, по которым данные системы счисления широко используются в литературе
(особенно, в документации) по вычислительной технике, будут обсуждены несколько позднее;
здесь приведем лишь основные сведения об этих системах.
Восьмеричная система счисления. Алфавит системы образуют цифры
{0, 1, 2, 3, 4, 5, 6, 7}.
Основание системы (восемь) записывают как 10. Ниже представлены таблицы сложения и
умножения в восьмеричной системе, а так же примеры выполнения арифметических операций.
Таблица сложения
Таблица умножения
×
0
1
2
3
4
5
6
7
10
0
0
0
0
0
0
0
0
0
0
10 11
1
0
1
2
3
4
5
6
7
10
10 11 12
2
0
2
4
6
10
12
14
16
20
10 11 12 13
3
0
3
6
11
14
17
22
25
30
7
10 11 12 13 14
4
0
4
10
14
20
24
30
34
40
10
И
12 13 14 15
5
0
5
12
17
24
31
36
43
50
10 11 12 13 14 15 16
6
0
6
14
22
30
36
44
52
60
10 11 12 13 14 15 16 17
7
0
7
16
25
34
43
52
61
70
10 11 12 13 14 15 16 17 20
10
0
10
20
30
30
50
60
70 100
+
0
1
2
3
4
5
6
7
10
0
0
1
2
3
4
5
6
7
10
1
1
2
3
4
5
6
7
2
2
3
4
5
6
7
3
3
4
5
6
7
4
4
5
6
5
5
6
7
6
6
7
7
7
10
Примеры выполнения арифметических операций.
а) сложение
б) вычитание
327,71102
—
+ 35,67735
705,62
1531 5
11076,01
16,35
в) умножение
−
г) деление
173,263 ×
1635
173,263
3366,52307 16,35
365,61037
56 2031
1344 062
5 033
10170,17 11 40577
− 1451 3
−
60 22
53 27
−
3 472
1 3410
−
2656
1
5327
−
5
3
2
7
0000
Шестнадцатеричная система счисления.
Алфавит
системы
включает
шестнадцать символов
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, Е, F}.
Основание системы (шестнадцать) записывается как 10. Ввиду большого объема
представление таблиц сложения и умножения здесь опускается; их нетрудно составить по
образцу таблиц для восьмеричной системы.
2.4. Перевод чисел из одной системы счисления в другую
Простой случай. Наиболее прост перевод чисел из р-ичной позиционной системы в q-ичную,
если имеет место соотношение р=qk (k- целое положительное число).
В этом случае перевод из р-ичной системы счисления в q-ичную производят "поразрядно",
заменяя каждую р-ичную цифру равным ей k-разрядным числом, записанным в q-ичной
системе счисления.
Перевод из q-ичной системы в р-ичную при этом производят следующим образом. Двигаясь
от запятой вправо и влево, разбивают q-ичную запись числа на группы по k цифр. Если при
этом самая левая или самая правая группы окажутся неполными, к ним приписывают
соответственно слева и справа столько нулей, чтобы каждая из них содержала k цифр. После
этого каждую группу q-ичныx цифр заменяют одной р-ичной цифрой, равной числу,
обозначенному этой группой q-ичных цифр.
Рассмотрим процесс перевода чисел между системами счисления с основаниями 2, 8
(23) и 16 (24). Алгоритм перевода основан на использовании следующей таблицы:
2-я система
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
8-я система
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
16-я система
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
1111
17
F
Перевод чисел из восьмеричной системы в двоичную. Каждая цифра восьмеричного числа
заменяется соответствующей двоичной триадой (трехзначным числом). Пример. 273,548 =
(010) (111) (011), (101) (100)2 =10111011,10112
Перевод чисел из двоичной системы в восьмеричную. Искомое двоичное число делится на
двоичные триады согласно приведенным выше правилам, а затем каждая триада заменяется
соответствующей восьмеричной цифрой.
Пример. 11011,00112 = 11 (011),(001) 12 = (011) (011),(001) (100)2 = 33,438
Перевод чисел из шестнадцатеричной системы в двоичную. Каждая цифра
шестнадцатеричного числа заменяется соответствующей двоичной тетрадой (четырехзначным
двоичным числом).
Пример. А5,В116 = (1010) (0101),(1011) (0001)2 = 10100101,101100012
Перевод чисел из двоичной системы в шестнадцатеричную. Искомое двоичное число
делится на двоичные тетрады, а затем каждая тетрада заменяется соответствующей
шестнадцатеричной цифрой. Пример.
1001110,011011 2 = 100 (1110),(0110) 112 = (0100) (1110),(0110) (1100) 2 = 4Е,6С16
Перевод чисел из восьмеричной системы счисления в шестнадцатеричную и наоборот.
Такой перевод проще всего осуществлять, используя в качестве промежуточного этапа перевод
в двоичную систему счисления. То есть: 8 → 16 можно заменить 8 → 2 → 16
16 → 8 можно заменить 16 → 2 → 8
Общй случай. Перевод числа из р-ичной в q-ичную систему счисления, когда р ≠ qk,
производится отдельно для целой и дробной частей числа. Теоретическое обоснование
приводимых алгоритмов опустим.
Перевод целой части числа. Число записывается в р-ичной системе счисления. Производится
деление в р-ичной системе целой части подвергающегося переводу числа на q; в остатке
получается число, равное последней цифре искомой q-ичной записи. Полученное частное
снова делится на q, в остатке получается число, равное предпоследней цифре q-ичной записи,
и т.д. Процесс повторяется до тех пор, пока в частном не будет получено число, меньшее, чем
q, которое равно первой цифре q-ичной записи.
Пример. Перевод числа 191 из десятичной в восьмеричную и шестнадцатеричную системы
счислений.
а) перевод в восьмеричную систему
— 191
8
16 23 8 —
—
31 16 2
24 7
7
б) перевод в шестнадцатеричную систему:
191 16 —
16 1110 = B16
—
31
16
1510 = F16
Итоговый результат: 19110 = 2778 = BF16
Перевод дробной части числа. Число q записывают в р-ичной системе счисления. Умножают
в р-ичной системе дробь на q. Целая часть произведения равна первой цифре q-ичной записи
дроби. Дробную часть произведения снова умножают на q. Целая часть произведения равна
следующей цифре q-ичной записи дроби. Процесс продолжают либо до тех пор, пока он не
закончится получением целого произведения, либо до тех пор, пока не получат требуемого
количества цифр q-ичной записи дроби.
Пример. Перевод десятичного числа 0,6875 в восьмеричную и шестнадцатеричную системы.
а) перевод в восьмеричную систему:
0
5
а) перевод в шестнадцатеричную систему:
0 6875
16
6875
8
4
В
0000
5000
8
0000
Итоговый результат: 0,687510 = 0,548 = 0,В16
Комбинируя приведенные правила, можно без труда произвести перевод числа из любой
позиционной системы счисления в любую другую позиционную систему счисления.
В силу того, что выполнение деления в системах счисления, отличных от десятичной, для нас
непривычно, перевод из других систем счисления в десятичную часто производят с помощью
формулы (**). В ее правой части р-ичные цифры, само число р и показатели степеней
записывают в десятичной системе счисления, после чего вычисляют значение полученного
выражения уже по правилам действий, принятых в десятичной системе.
Пример. Перевести число 277,548 в десятичную систему. По формуле (**):
277,548 = (2·102 +7·101+7·100+5·10-1+4·10-2)8 =
(2·82 +7·81+7·80+5·8-1+4·8-2)10 = (2·64+7·8+7+5/8+4/64)10 =191,687510 Итак,
восьмеричное число 277,54 равно десятичному числу 191,6875.
2.5. Формы представления чисел в ЭВМ
Обычно числа в машинах представляются в одной из двух форм: с фиксированной запятой или
с плавающей запятой.
Представление чисел с фиксированной запятой. В ячейке памяти ЭВМ число записывается
последовательностью изображающих его двоичных цифр. Количество разрядов, отведенное
для записи дробной и целой частей чисел, строго фиксировано. Это позволяет запятую в
изображении числа опускать. Для изображения знака числа обычно отводится самый левый
разряд ячейки, причем "плюс" кодируется двоичной цифрой 0, а "минус" - 1.
На практике при представлении чисел с фиксированной запятой запятая "закрепляется" после
самого правого разряда числа, то есть все числа целые.
Знак 2n-2 2n-3
21
20
n-1
n-3
n-2
n-
разрядная 1
0
…
ячейка
При данном представлении может быть записано число N такое, что 0 ≤ |N| ≤ 2n-1-1 .
Очевидно, что при выполнении арифметических операций над числами с фиксированной
запятой может произойти переполнение разрядной сетки, то есть превышение значения
результата верхней границы – 2n-1-1.
Представление чисел в форме с плавающей запятой. При форме представления с
плавающей запятой число N считают приведенным к виду
N = m·Pn , (***)
где:
m - число с запятой, фиксированной после определенного разряда, называемое
мантиссой, n - целое число, называемое
порядком, Р - основание системы
счисления.
Запятую в мантиссах, как правило, фиксируют перед старшим (цифровым) разрядом, то есть
в качестве мантисс берут правильные дроби. Это связано с удобством умножения мантисс (их
произведение будет при этом также правильной дробью).
Если в записи (***) старшая цифра мантиссы отлична от нуля, то число N называют
нормализованным (в противном случае - ненормализованным). Таким образом,
нормализованными являются числа, для которых 1/P ≤ |m| < 1.
Пример. Десятичное число 25,2 в форме с плавающей запятой (при запятой мантиссы,
фиксированной перед старшим разрядом) может иметь любой из видов
0,252 ·102 0,0252·103 0,00252·104
и т.д. Нормализованной является только запись 0,252·102, а все остальные являются
ненормализованными.
Ниже изображено возможное представление нормализованных чисел с плавающей запятой в
32-х разрядной сетке ЭВМ.
знак мантиссы (знак числа)
31 30 29 28 27 26 25 24 23 22 … 0
знак порядка
порядок
мантисса
При обработке в ЭВМ чисел с плавающей запятой возможно переполнение разрядной сетки,
которое заключается в том, что в результате какой-либо операции возникает число, имеющее
порядок с большей разрядностью, чем допустимая при представлении порядка в машине.
Кроме того, в машине возможно появление машинных нулей, т.е. нормализованных чисел,
отличных от нуля, но имеющих порядок, меньший самого малого порядка, представимого в
разрядной сетке. Обычно машинные нули записываются в виде нулевой мантиссы и нулевого
порядка.
Если количество разрядов мантиссы больше количества, выделенного для ее представления в
разрядной сетке ЭВМ, избыточные младшие разряды отбрасываются, возможно, с
округлением последнего из оставшихся.
Диапазон нормализованных двоичных чисел с плавающей запятой, представленных в
разрядной сетке ЭМВ, если запятые в мантиссах фиксированы перед старшими разрядами,
оценивается неравенствами
2-2s ≤ |N| ≤ (1- 2-k) ·2s-1,
где N - исходное число,
k- количество цифровых разрядов мантиссы, s- количество цифровых разрядов порядка.
Скачать