Уроки 25 — 26Информационные процессы в компьютере

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

архитектура микропроцессорных систем фон Неймана (одношинная, или принстонская, архитектура) представляет собой архитектуру с общей, единой шиной для данных и команд. Соответственно, в составе системы в этом случае присутствует одна общая память, как для данных, так и для команд (рис. 5.1).

Рис. 5.2. Архитектура с общей шиной данных и команд.

Но существует также и альтернативный тип архитектуры микропроцессорной системы – это архитектура с раздельными шинами данных и команд (двухшинная, или гарвардская, архитектура). Эта архитектура предполагает наличие в системе отдельной памяти для данных и отдельной памяти для команд (рис. 5.2). Обмен процессора с каждым из двух типов памяти происходит по своей шине.

Рис. 5.3. Архитектура с раздельными шинами данных и команд.

Архитектура с общей шиной распространена гораздо больше, она применяется, например, в персональных компьютерах и в сложных микрокомпьютерах. Архитектура с раздельными шинами применяется в основном в однокристальных микроконтроллерах.

Рассмотрим некоторые достоинства и недостатки обоих архитектурных решений.

Архитектура с общей шиной (принстонская, фон-неймановская) проще, она не требует от процессора одновременного обслуживания двух шин, контроля обмена по двум шинам сразу. Наличие единой памяти данных и команд позволяет гибко распределять ее объем между кодами данных и команд. Например, в некоторых случаях нужна большая и сложная программа, а данных в памяти надо хранить не слишком много. В других случаях, наоборот, программа требуется простая, но необходимы большие объемы хранимых данных. Перераспределение памяти не вызывает никаких проблем, главное – чтобы программа и данные вместе помещались в памяти системы. Как правило, в системах с такой архитектурой память бывает довольно большого объема (до десятков и сотен мегабайт). Это позволяет решать самые сложные задачи.

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

В чем же преимущество архитектуры с двумя шинами (гарвардской)? В первую очередь, в быстродействии.

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

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

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

Однопроцессорная архитектура ЭВМ

Элементной базой ЭВМ первого поколения (1950-годы) были электронные лампы, а ЭВМ второго поколения (1960-е годы) создавались на базе полупроводниковых элементов. Однако их архитектура была схожей. Она в наибольшей степени соответствовала принципам фон Неймана. В этих машинах один процессор управлял работой всех устройств: внутренней и внешней памяти, устройств ввода и вывода, как показано на рис. 2.4.

Согласно принципам фон Неймана, исполняемая программа хранится во внутренней памяти — в оперативном запоминающем устройстве (ОЗУ). Там же находятся данные, с которыми работает программа. Каждая команда программы и каждая величина (элемент данных) занимают определенные ячейки памяти, как показано на рис. 2.5.

image

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

Среди команд программы существуют команды обработки данных и команды обращения к внешним устройствам. Команды обработки данных выполняет сам процессор с помощью входящего в него арифметико-логического устройства — АЛУ, и этот процесс происходит сравнительно быстро. А команды управления внешними устройствами выполняются самими этими устройствами: устройствами ввода/вывода, внешней памятью. Время выполнения этих команд во много раз больше, чем время выполнения команд обработки данных. При однопроцессорной архитектуре ЭВМ, показанной на рис. 2.4, процессор, отдав команду внешнему устройству, ожидает завершения ее выполнения. При большом числе обращений к внешним устройствам может оказаться, что большую часть времени выполнения программы процессор «простаивает» и, следовательно, его КПД оказывается низким. Быстродействие ЭВМ с такой архитектурой находилось в пределах 10-20 тысяч операций в секунду (оп./с).

История

В середине 1940-х проект компьютера, хранящего свои программы в общей памяти был разработан в Школе электрических разработок Мура (англ. The Moore School of Electrical Engineering) в Университете штата Пенсильвания (англ. The University of Pennsylvania).В процессе работы во время многочисленных дискуссий со своими коллегами Г. Голдстайном и А. Берксом фон Нейман высказал идею принципиально новой ЭВМ. В 1946 г. ученые изложили свои принципы построения вычислительных машин в ставшей классической статье “Предварительное рассмотрение логической конструкции электронно-вычислительного устройства”.В статье убедительно обосновывается использование двоичной системы для представления чисел (нелишне напомнить, что ранее все вычислительные машины хранили обрабатываемые числа в десятичном виде). Авторы убедительно продемонстрировали преимущества двоичной системы для технической реализации, удобство и простоту выполнения в ней арифметических и логических операций (в дальнейшем ЭВМ стали обрабатывать и нечисловые виды информации – текстовую, графическую, звуковую и другие, но двоичное кодирование данных по-прежнему составляет информационную основу любого современного компьютера). Еще одной поистине революционной идеей, значение которой трудно переоценить, является предложенный Нейманом принцип “хранимой программы”. Первоначально программа задавалась путем установки перемычек на специальной коммутационной панели. Нейман первым догадался, что программа может также храниться в виде набора нулей и единиц, причем в той же самой памяти, что и обрабатываемые ею числа. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений.

Архитектура фон Неймана решала проблемы, свойственные компьютеру «ЭНИАК», который создавался в то время, за счёт хранения программы компьютера в его собственной памяти. Информация о проекте стала доступна другим исследователям вскоре после того, как в 1946 году было объявлено о создании «Эниака». По плану предполагалось осуществить проект силами Муровской школы в машине EDVAC, однако до 1951 года EDVAC не был запущен из-за технических трудностей в создании надёжной компьютерной памяти. Другие научно-исследовательские институты, получившие копии проекта, сумели решить эти проблемы гораздо раньше группы разработчиков из Муровской школы и реализовали их в собственных компьютерных системах. Первыми пятью компьютерами, в которых были реализованы основные особенности архитектуры фон Неймана, были:

— Манчестерский Марк I. Прототип — Манчестерская малая экспериментальная машина. Университет Манчестера (англ. The University of Manchester), Великобритания, 21 июня 1948 года;

— EDSAC. Кембриджский университет (англ. The Cambridge University), Великобритания, 6 мая 1949 года;

— BINAC. США, апрель или август 1949 года;

— CSIR Mk 1. Австралия, ноябрь 1949 года;

— SEAC. США, 9 мая 1950 года.

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

Анализ

Рассмотрим, на каких принципах основана классическая структура машины фон Неймана, более подробно:

1. Переход к двоичной системе от десятиричной

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

2. Программное управление электронной вычислительной машиной

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

3. Данные и программы в памяти компьютера хранятся совместно

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

тренажер архитектура фон Неймана

Машина фон Неймана

В соответствии с принципами фон Неймана компьютер состоит из арифметико-логического устройства — АЛУ (англ. ALU, Arithmetic and Logic Unit), выполняющего арифметические и логические операции; устройства управления, предназначенного для организации выполнения программ; запоминающих устройств (ЗУ), в т.ч. оперативного запоминающего устройства (ОЗУ) и внешнего запоминающего устройства (ВЗУ); внешних устройств для ввода-вывода данных. Фон-неймановская архитектура компьютера считается классической, на ней построено большинство компьютеров. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного модуля от устройств хранения программ и данных.

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

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

Команда состоит из указания, какую операцию следует выполнить (из возможных операций на данном «железе») и адресов ячеек памяти, где хранятся данные, над которыми следует выполнить указанную операцию, а также адреса ячейки, куда следует записать результат (если его требуется сохранить в ЗУ).

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

УУ управляет всеми частями компьютера. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии.

Управляющее устройство содержит специальный регистр (ячейку), который называется «счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды программы. УУ считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство — «Регистр команд». УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.

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

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

Что такое архитектура фон Неймана?

Архитектура фон Неймана

Архитектура фон Неймана лежит в основе всех процессоров ПК, поскольку все они организованы с помощью ряда общих компонентов, а именно:

  • Блок управления: В ответственность за этапы сбора и декодирования командного цикла.
  • Логико-арифметический блок или АЛУ: В ответственность за выполнение математических и логических операций, требуемых программами.
  • Память: Память, в которой хранится программа, известная как оперативная память.
  • Устройство ввода: С которого мы общаемся с компьютером.
  • Устройство вывода: С которой компьютер общается с нами.

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

Архитектура фон Неймана

Архитектура фон Неймана это не что иное, как искусство хранения электронного компьютера. Это совсем не новая концепция, она существует уже давно, и мы следуем принципу этой архитектуры фон Неймана. Если мы вернемся в историю, совершенно очевидно, что архитектура фон Неймана была впервые опубликована в отчете Джона фон Неймана 30 июня 1945 года, и с тех пор тот же принцип применяется для хранения электронных компьютеров.

Применение и функции

Архитектура фон Неймана нашла широкое применение в повседневной жизни. Имея в виду широкое применение, архитектура фон Неймана была введена в качестве предмета в образовательной степени. Начиная с третьего семестра студенты инженерных специальностей будут изучать этот предмет в своей учебной программе. Архитектура фон Неймана состоит из некоторых важных функций, и здесь мы подробно остановимся на них.

Память: Все мы знаем, что фон Нейман — это не что иное, как компьютер с функцией хранения данных. В архитектуре фон Неймана память играет жизненно важную роль и считается одной из важных особенностей. В основном это отвечает как за хранение, так и за запуск данных и данных программирования. В наши дни это было заменено ОЗУ, и теперь мы используем ОЗУ для этой цели.

Устройство управления: Это подразделение в основном отвечает за аспект управления. Все данные хранятся в памяти и во время обработки данных блок управления играет роль и управляет потоком данных. Фактически, если быть более типичным, это «По одному». Блок управления следует принципу One At A Time и, соответственно, обрабатывает все данные.

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

АЛУ: ALU или арифметическая логическая единица имеет большое значение в архитектуре фон Неймана. Этот ALU будет выполнять любое сложение, вычитание, умножение и деление данных. В дополнение к этому, ALU будет выполнять любые другие алгоритмические функции и действия. Это основной аспект архитектуры фон Неймана, о котором вы должны знать.

Содержание

Основы учения об архитектуре вычислительных машин заложил фон Нейман в 1944 году, когда подключился к созданию первого в мире лампового компьютера ЭНИАК. В процессе работы над ЭНИАКом в Институте Мура в Пенсильванском Университете во время многочисленных дискуссий фон Неймана с его коллегами Джоном Уильямом Мокли, Джоном Эккертом, Германом Голдстайном и Артуром Бёрксом возникла идея более совершенной машины под названием EDVAC. Исследовательская работа над EDVAC продолжалась параллельно с конструированием ЭНИАКа.

В марте 1945 года принципы логической архитектуры были оформлены в документе, который назывался «Первый проект отчёта о EDVAC» — отчёт для Баллистической лаборатории Армии США, на чьи деньги осуществлялась постройка ЭНИАКа и разработка EDVACа. Отчёт, поскольку он являлся всего лишь наброском, не предназначался для публикации, а только для распространения внутри группы, однако Герман Голдстайн — куратор проекта со стороны Армии США — размножил эту научную работу и разослал её широкому кругу учёных для ознакомления. Так как на первой странице документа стояло только имя фон Неймана [1] , у читавших документ сложилось ложное впечатление, что автором всех идей, изложенных в работе, является именно он. Документ давал достаточно информации для того, чтобы читавшие его могли построить свои компьютеры, подобные EDVACу на тех же принципах и с той же архитектурой, которая в результате стала называться «архитектурой фон Неймана».

После завершения Второй мировой войны и окончания работ над ЭНИАКом в феврале 1946 года команда инженеров и учёных распалась, Джон Мокли, Джон Экерт решили обратиться в бизнес и создавать компьютеры на коммерческой основе. Фон Нейман, Голдстайн и Бёркс перешли в Институт перспективных исследований, где решили создать свой компьютер «IAS-машина», подобный EDVACу, и использовать его для научно-исследовательской работы. В июне 1946 года они [2] [3] изложили свои принципы построения вычислительных машин в ставшей классической статье «Предварительное рассмотрение логической конструкции электронно-вычислительного устройства» [4] [5] [6] . С тех пор прошло более полувека, но выдвинутые в ней положения сохраняют свою актуальность и сегодня. В статье убедительно обосновывается использование двоичной системы для представления чисел, а ведь ранее все вычислительные машины хранили обрабатываемые числа в десятичном виде. Авторы продемонстрировали преимущества двоичной системы для технической реализации, удобство и простоту выполнения в ней арифметических и логических операций. В дальнейшем ЭВМ стали обрабатывать и нечисловые виды информации — текстовую, графическую, звуковую и другие, но двоичное ирование данных по-прежнему составляет информационную основу любого современного компьютера.

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

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

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

Adblock
detector