Закат архитектуры фон Неймана, о котором вы еще не слышали и что будет дальше

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

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

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

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

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

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

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

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

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

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

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

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

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

Классическая архитектура фон Неймана

“Бутылочное горлышко” архитектуры фон Неймана.

Все классические компьютеры обладают так называемой архитектурой фон Неймана.

Рис. 1. The decline of von Neumanns architecture

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

Какие ограничения у архитектуры фон Неймана?

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

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

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

Предыстория

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

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

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

По большому счету, способность относиться к инструкции как к данным — это то, что делает ассемблеры, компиляторы, сборщики, погрузчики и другие инструменты с возможными объектами автоматизированного программирования. Так сказать, писать программы, которые пишут программы. В меньшем масштабе повторяющиеся интенсивные операции ввода и вывода, такие как BitBlt-манипуляции с изображением примитивных или пиксельных и вершинных шейдеров в современной 3D-графике, были признаны неэффективными для работы без пользовательского оборудования.

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

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

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

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

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

Содержание

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

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

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

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

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

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

Принцип иерархической организации памяти

Выделяют два требования, которые предъявляются к компьютерной памяти:

  1. Объём памяти должен быть максимально большим;
  2. Время доступа к памяти должно быть наименьшим.

Однако, практически невозможно спроектировать запоминающее устройство, которое будет удовлетворять всем перечисленным условиям. Сложно искать необходимые данные в памяти большого объёма, поэтому их чтение происходит медленнее. Для того чтобы ускорить этот процесс, необходимо использовать усложнённые решения, в результате чего повышается стоимость оборудования компьютера. Чтобы решить эту проблему, потребуется использовать несколько разных взаимосвязанных типов памяти. На этом основывается принцип иерархической организации памяти.

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

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

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

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

Принципы построения и работы ЭВМ Джона фон Неймана

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

Не стоит путать со «структурой». Последняя не столь глобально описывают внутренние связи. Уточняет взаимодействие деталей устройства.

Идея возникла, когда фон Нейман занялся анализом недостатков первой электронной машины ENIAC (1944 г.). Сделанные ранее в Германии образцы были электромеханическими, на реле.

Принципы построения и работы ЭВМ Джона фон Неймана

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

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

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

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

Ячейкам памяти присваиваются конкретные адреса. Таким образом вводятся переменные.

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

Качественным улучшением по сравнению с ЭНИАКом стала легкость загрузки программ. Последние больше не являлись компонентом устройства и без труда менялись.

Развитие созданных моделей

IBM SSEC имел возможность рассматривать инструкции как данные и был публично продемонстрирован 27 января 1948 года. Эта способность утверждалась в патенте США. Однако это была частично электромеханическая машина, а не полностью электронная. На практике инструкции были прочитаны с бумажной ленты из-за его ограниченной памяти.

Baby был первым полностью электронным компьютером для запуска сохраненных программ. Он запускал программу факторинга в течение 52 минут 21 июня 1948 года после запуска простого вычисления деления и расчета, который показывает, что два числа являются взаимно простыми.

ENIAC был изменен, чтобы работать в качестве примитивной ЭВМ только для чтения, но по той же архитектуре, и был продемонстрирован 16 сентября 1948 года, а запуск программы Адель Гольдштейн организовала с помощью фон Неймана.

Принципы архитектуры фон Неймана

BINAC провел несколько тестовых программ в феврале, марте и апреле 1949 года, хотя и не был завершен до сентября 1949 года. Кроме того, осуществлялись тестовые запуски (некоторые успешные) других электронно-вычислительных машин, для которых свойственна данная архитектура. Фон Нейман, к слову, продолжал работу и над проектом «Манхеттен». Вот такой универсальный человек.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector