logo
стр 103-113

Классическая структура эвм - модель фон Неймана

В каждой области науки и техники существуют некоторые фундаментальные идеи или принципы, которые определяют ее содержание и развитие. В компьютерной науке роль таких фундаментальных идей сыграли принципы, сформулированные независимо друг от друга двумя гениями современной науки - американским математиком и физиком Джоном фон Нейманом и советским инженером и ученым Сергеем Лебедевым.

Принято считать, что первый электронный компьютер ENIAC был изготовлен в США в 1946 г. (если мы на минуточку забудем, что уже в 1941 году цифровая машина Z1 и Z2 Конрада Цузе расчитывала траекторию ракет обстреливающих Лондон). Блестящий анализ сильных и слабых сторон проекта ENIAC был дан в отчете Принстонского института перспективных исследований "Предварительное обсуждение логического конструирования электронного вычислительного устройства" (июнь 1946 г.). Этот отчет, составленный выдающимся американским математиком Джоном фон Нейманом и его коллегами по Принстонскому институту Г. Голдстайном и А. Берксом, представлял проект нового электронного компьютера. Идеи, высказанные в этом отчете, известные под названием "Неймановских Принципов", оказали серьезное влияние на развитие компьютерной техники.

Сущность "Неймановских Принципов" состояла в следующем:

  1. Двоичная система счисления - компьютеры на электронных элементах должны работать не в десятичной, а в двоичной системе счисления;

  1. Принцип программного управления и хранимой в памяти программы - компьютер работает под управлением программы, программа должна размещаться в одном из блоков компьютера - в запоминающем устройстве (первоначально программа задавалась путем установки перемычек на коммутационной панели);

  2. Принцип однородности - команды, так же как и данные, с которыми оперирует компьютер, хранятся в одном блоке памяти и записываются в двоичном коде, то есть по форме представления команды и данные однотипны и хранятся в одной и той же области памяти;

  3. Принцип адресности – основная память структурно состоит из нумерованных ячеек, т.е. доступ к командам и данным осуществляется по адресу. Трудности физической реализации запоминающего устройства большого быстродействия и большой памяти требуют иерархической организации памяти;

  4. В компьютере используется параллельный принцип организации вычислительного процесса (операции над двоичными кодами осуществляются одновременно над всеми разрядами).

В Советском Союзе работы по созданию электронных компьютеров были начаты несколько позже. Первый советский электронный компьютер был изготовлен в Киеве в 1953 г. Он назывался МЭСМ (малая электронная счетная машина), а его главным конструктором был академик Сергей Лебедев, автор проектов компьютеров серии БЭСМ (большая электронная счетная машина).

Самой важной отличительной чертой модели фон Неймана был и остается принцип единой линейной памяти, которая адресуется последовательными адресами и в которой команды неотличимы от данных. Структура ЭВМ фон Неймана приведена на рис. 3.2.

Память Процессорное устройство

Командное слово – i

Командное слово – i+1

Данные – j

Данные – j+1

_________________________________________________________________________________

Выполнение команд

Периферийные устройства

Рис. 3.2 Модель фон Неймана

Представления данных как чисел и соответствующий характер команд с самого начала определили выбор архитектуры, ориентированной на числовую обработку. Обычно в этих ЭВМ данные представляются в виде скалярных данных, векторов и матриц. Числа в ЭВМ представляются как целые.

Таким образом, ЭВМ с архитектурой фон Неймана, это ЭВМ с управлением потоком команд. Принято считать, что ВМ с архитектурой фон Неймана присущи следующие особенности:

1. единая, последовательно адресуемая память (обычные скалярные однопроцессорные системы, при этом наличие конвейера не меняет дела);

2. память является линейной и одномерной (одномерная – имеет вид вектора слов, память состоит из ячеек фиксированной длины и имеет линейную структуру адресации); 3. отсутствует явное различие между командами и данными;

4. ход выполнения вычислительного процесса определяется только централизованными и последовательными командами или, другими словами, управление потоком команд (выбрать адрес команды – выбрать данные – произвести действие и т.д.);

5. назначение данных не является их неотъемлемой, составной частью, назначение данных определяется логикой программы.

Нет никаких средств, позволяющих отличить набор битов, представляющих число с плавающей точкой, от набора битов, являющихся строкой символов. Если процессор извлекает из ОП команду сложения чисел с плавающей точкой и над ними выполняется сложение согласно правилам арифметики с плавающей точкой, хотя в действительности они могут быть просто строкой символов. Снова обратимся к "принципам Неймана". Существенно подчеркнуть, что центральное место среди "принципов Неймана" занимает предложение об использовании двоичной системы счисления, что было обусловлено рядом обстоятельств. Во-первых, несомненными арифметическими достоинствами двоичной системы счисления, ее "оптимальным" согласованием с "булевой" логикой и простотой технической реализации двоичного элемента памяти (триггера).

Однако на определенном этапе развития компьютерной техники было обнаружено ряд недостатков классической двоичной системы счисления. Первым из них является так называемая "проблема представления отрицательных чисел". Как известно, отрицательные числа непосредственно не могут быть представлены в классической двоичной системе счисления, использующей только две двоичные цифры 0 и 1, без дополнительных "ухищрений". Основным "ухищрением" является использование специальных кодов для представления отрицательных чисел - обратного или дополнительного.

Второй недостаток двоичной системы счисления - ее "нулевая избыточность". Дело в том, что если в процессе передачи, хранения или обработки двоичной кодовой комбинации, например 10011010, под влиянием "помех", действующих в "канале", произойдет искажение данной кодовой комбинации и она перейдет в кодовую комбинацию 11010010 (искажения отдельных битов подчеркнуты), то, поскольку комбинация 11010010 (как и любая другая двоичная кодовая комбинация) является "разрешенной" в классической двоичной системы счисления, то не существует способа обнаружить данную ошибку без дополнительных "ухищрений", то есть без использования специальных методов избыточного кодирования.

Третий недостаток более серьезен. Применение двоичной булевой логики необходимо приводит к появлению условия синхронности в процессорах. Двоичная логика не включает в себя условие завершения функции, а это значит, что она может существовать только на фоне соответствующей временной диаграммы. Другими словами наряду с потоком данных и команд должен существовать поток управляющих импульсов, или «стробов», поступающих от системных часов. Последствия этого явления очень значительны и будут рассмотрены позже.