Файл: История развития средств вычислительной техники (Фоннеймановская архитектура ЭВМ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 189

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Несколько исправило ситуацию с производительность фоннеймановской архитектуры введение сверхдлинных машинных команд (VLIW). Процессор, считав данную команду из памяти, выполняет большое количество действий по ее выполнению и тем самым меньше обращается к памяти, так как сама команда может содержать большое количество данных и инструкций по обработке этих данных [12].

Борьба разработчиков вычислительной техники с явными недостатками давно устаревшей архитектуры Неймана продолжается. На сегодняшний день очевидно, что многие инженерные решения Неймана в нашем 21 веке уже не отвечают требованиям к производительности современных вычислительных систем и являются узким местом. Давно назрела необходимость кардинальной переработки или разработки принципиально новой архитектуры ЭВМ, отвечающей запросам современной действительности.

Достоинства фоннеймановской архитектуры

Очевидным достоинством разработанной Нейманом архитектуры ЭВМ является ее простота, надежность и дешевизна, простота разработки программного обеспечение для данной архитектуры, простота контроля ошибок записи/чтения данных и команд. Именно благодаря этим качествам архитектура Неймана легла в основу устройства большого числа ЭВМ его времени и продолжает существовать с небольшими изменениями в настоящее время.

Следует все же отметить, что первый проект по постройке ЭВМ фоннеймановской архитектуры потерпел фиаско из-за отсталости промышленной базы того времени, на которой не смогли создать нужную для ЭВМ память. Проект носил название EDVAC (Electronic Discrete Variable Automatic Computer) [6]. В дальнейшем на фоннеймановских принципах были созданы удачные проекты ЭВМ:

  1. Прототип—Манчестерская малая экспериментальная машина—Манчестерский университет, Великобритания, 21 июня 1948 года;
  2. EDSAC—Кембриджский университет, Великобритания, 6 мая 1949 года;
  3. Марк I—Манчестерский университет, Великобритания, 1949 год;
  4. BINAC— США, апрель или август 1949 года;
  5. CSIR Mk 1— Австралия, ноябрь 1949 года;
  6. EDVAC— США, август 1949 года— фактически запущен в 1952 году;
  7. CSIRAC— Австралия, ноябрь 1949 года;
  8. SEAC— США, 9 мая 1950 года;
  9. ORDVAC— США, ноябрь 1951 года;
  10. IAS-машина— США, 10 июня 1952 года;
  11. MANIAC I— США, март 1952 года;
  12. AVIDAC— США, 28 января 1953 года;
  13. ORACLE— США, конец 1953 года;
  14. WEIZAC— Израиль, 1955 год;
  15. SILLIAC— Австралия, 4 июля 1956 года. [15]

Принципы не фон Неймана

Истоки появление фоннеймановской архитектуры

Сомневаться в гениальности Джона фон Неймана, конечно, не приходится. Степень доктора в 23 года! Кроме того, не менее известна и другая работа Неймана – теория игр. Тем временем следует признать, что разработка такой сложной концепции, которой является архитектура электронной вычислительной машины, функционирующей на новых логических принципах, отличных от тех, на которых функционировали существующие в то время вычислительные машины, не по силам даже гению. Нейман имел степень доктора философии, но не являлся техническим специалистом в такой малоизученной, в то время, области как электронные вычислительные машины.

Основные логические основы функционирования ЭВМ фоннеймановской архитектуры впервые были описаны в документе, который носил название «Первый проект отчета по EDVAC» [14], рисунок 6.

Рисунок 6. Титульный лист первого отчета по EDVAC

Данный документ появился в институте Мура в Пенсильванском университете во время работы группы ученных над проектом ENIAC (сокращение от английского Electronic Numerical Integrator and Computer - Электронный числовой интегратор и вычислитель), рисунок 7.

Рисунок 7. ENIAC.

В группу ученных, работавших над ENIAC, входил и Джон фон Нейман. Логично предположить, что автором данного документа является группа ученых, а не сам Нейман, то есть это продукт коллективного творчества. Каким же образом описанные в документе принципы устройства логической архитектуры ЭВМ стали наименоваться именем Джона фон Неймана?

Следует отметить, что логическая архитектура самого ENIAС сильно отличается от описанной в документе. В частности, ENIAС использовал десятичную систему счисления для хранения данных и выполнения расчетов, в отличии от фоннеймановской архитектуры, основой которой является двоичная форма хранения данных, то есть в документе была описана не архитектура ENIAC, а архитектура электронной вычислительной машины, работающей на совершенно новых логических принципах, использующей вместо десятичной, двоичную форму внутреннего представления данных [6].

Основанием назвать описанную в отчете логическую структуру ЭВМ именем Неймана послужило то, что на титульном листе документа было указано только одно имя – John von Neumann, рисунок 8.


Рисунок 8. Имя John von Neumann на титульном листе отчета по EDVAC

Данный 100-страничный документ получил широкое распространение и как следствие появилось ошибочное представление о том, что автором данной работы является только один человек, а именно тот чье имя указано на документе т.е. Джон фон Нейман [14].

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

Однако очень похоже, что идея использовать в качестве системы счисления для хранения данных двоичную систему, принадлежит действительно Нейману. Известно, что Нейман в конце 40-х годов (после работы над ENIAC) занимается разработкой теории автоматов, основанной на дискретной математике. Двоичная система счисления как раз является категорией дискретной математики, которая оперирует логическими понятиями «истина» и «ложь». Двоичный способ хранения данных получил наименование «принцип двоичного кодирования фон Неймана» [4].

Принадлежит ли Нейману идея использовать для хранения команд программы, ту же память, что и для хранения данных (так называемый «принцип однородной памяти фон Неймана»)? Этот вопрос остается открытым. Вполне возможно, что подобные мысли высказывал кто-то из команды ученых, работавших вместе с Нейманом над проектом ENIAC и идеи именно этого ученого были описаны в отчете по EDVAC.

Кроме указанных выше двух принципах: «принцип однородной памяти фон Неймана» и «принцип двоичного кодирования фон Неймана», к принципам фоннеймановской архитектуры ЭВМ относят принцип «программного управления фон Неймана» и «принцип адресности фон Неймана». Эти два принципа логично вытекают из первых двух и для их разработки не нужно обладать выдающимися умственными способностями.

Принципы EDVAC

Как было сказано раннее первый проект по созданию ЭВМ на принципах Неймана закончился неудачей из-за разногласий в группе ученых, работавших над проектом и из-за несовершенства технологий того времени. Много позже, в 1951 году, проект все же был реализован и ЭВМ EDVAC с заложенными в нее принципами фоннеймановской архитектуры была построена и запущена. К тому времени в мире было уже построено более десяти ЭВМ на описанных в отчете по EDVAC принципах.


Итак, разберем подробно основные принципы построения вычислительных систем, описанные в отчете по EDVAС:

Принцип двоичного кодирования

Согласно этому принципу данные и инструкции программы, по которой работает ЭВМ должны быть записаны в память в двоичной системе счисления и закодированы двумя двоичными цифрами (битами): «1» и «0». Естественно в электронной памяти машины никаких цифр нет, цифрами их называют просто для удобства обозначения. В действительности двоичные цифры в памяти машины представляют собой электрические потенциалы напряжения, например, напряжение в 2,5 вольта может интерпретироваться как «0», а напряжение в 0,2 вольта как «1» (или наоборот). Рисунок 9.

Рисунок 9. Кодировка двоичных цифр уровнями напряжения

Если речь идет именно о хранении данных в памяти, то тут в качестве двоичных цифр могут выступать: зараженный и разряженный конденсатор, одно из двух состояний триггера или мемристора (см. ниже).

В современной вычислительной технике для хранения двоичных чисел используются специальные полупроводниковые элементы: мемристоры (рисунок 10) или конденсаторы (рисунок 11), в быстродействующей (т.н. «кэш») памяти используются логические элементы – триггеры (рисунок 12)

.

Рисунок 10. Мемристор, фото с электронного микроскопа

Рисунок 11. Конденсатор, ячейка (бит) динамической памяти

Рисунок 12. Триггер, условное графическое обозначение

Так как, согласно принципу двоичного кодирования Неймана, данные и команды программы кодируются двоичными разрядами, то визуально разобрать, где в памяти находятся инструкции программы, а где данные программы невозможно. Центральный процессор будет интерпретировать данные в зависимости от того, что именно он пытается считать из памяти. Если процессор читает данные, то прочитанные из памяти значения будут им интерпретированы как данные, даже если программист ошибочно запишет в это место памяти инструкцию программы и наоборот, данные прочитанные как инструкция будут интерпретироваться процессором ЭВМ именно как инструкция, после чего процессор попытается ее выполнить, что, скорее всего, приведет к нарушению работы программы или «зависанию» ЭВМ (вхождения программы в бесконечный цикл).


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

Современные процессоры настолько совершенны, что могут самостоятельно помнить, где начинаются и заканчиваются области хранения команд и данных в памяти и при попытке считать данные как инструкцию самостоятельно сообщают операционной системе, что программа работает не верно, т.е. генерируют т.н. «исключение», что позволяет ЭВМ правильно выйти из сложившейся ситуации и не нарушает ее работу в целом, а приводит лишь в «выгрузке» из памяти неверно работающей программы, которая по какой-то причине стала читать данные как инструкции или наоборот.

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

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

Рисунок 13. Пример записи знакового числа в памяти ЭВМ

Под мантиссу и характеристику числа с плавающей точкой также отводятся определенные последовательности бит, рисунок 14.

Рисунок 14. Пример записи числа с плавающей запятой в памяти ЭВМ

Принцип однородности памяти

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