Архитектура фон Неймана
Архитектура фон Неймана (англ. von Neumann architecture) — широко известный принцип совместного хранения программ и данных в памяти компьютера. Вычислительные системы такого рода часто обозначают термином «машина фон Неймана», однако, соответствие этих понятий не всегда однозначно. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного модуля от устройств хранения программ и данных.
Наличие заданного набора исполняемых команд и программ было характерной чертой первых компьютерных систем. Сегодня подобный дизайн применяют с целью упрощения конструкции вычислительного устройства. Так, настольные калькуляторы, в принципе, являются устройствами с фиксированным набором выполняемых программ. Их можно использовать для математических расчётов, но невозможно применить для обработки текста и компьютерных игр, для просмотра графических изображений или видео. Изменение встроенной программы для такого рода устройств требует практически полной их переделки, и в большинстве случаев невозможно. Впрочем, перепрограммирование ранних компьютерных систем всё-таки выполнялось, однако требовало огромного объёма ручной работы по подготовке новой документации, перекоммутации и перестройки блоков и устройств и т. п. Всё изменила идея хранения компьютерных программ в общей памяти. Ко времени её появления использование архитектур, основанных на наборах исполняемых инструкций, и представление вычислительного процесса как процесса выполнения инструкций, записанных в программе, чрезвычайно увеличило гибкость вычислительных систем в плане обработки данных. Один и тот же подход к рассмотрению данных и инструкций сделал лёгкой задачу изменения самих программ.
В настоящее время фон-неймановской архитектурой называется организация ЭВМ, при которой вычислительная машина состоит из двух основных частей — линейно-адресуемой памяти, слова которой хранят команды и элементы данных, и процессора, выполняющего эти команды. В основе модели вычислений фон Неймана лежат принцип последовательной передачи управления (счётчик команд) и концепция переменной (идентификатор).
Классическая архитектура фон Неймана
“Бутылочное горлышко” архитектуры фон Неймана.
Все классические компьютеры обладают так называемой архитектурой фон Неймана.
Рис. 1. The decline of von Neumanns architecture
Недостатком такой архитектуры является тот факт, что данные из области памяти цикл за циклом должны передаваться в область вычислительного юнита и обратно. Интерфейс, связывающий вычислительный юнит и память компьютера, ограничен в своей пропускной способности. Даже тот факт, что современные процессоры имеют несколько уровней кэша непосредственно в вычислительном юните, не решает проблему. Данный подход усугубляется необходимостью аккумулировать и структурировать данные для полного заполнения буфера вычисляемых операций. Можно привести метафору с поездом: пока все пассажиры не займут именно свои места в поезде, поезд никуда не поедет.
Какие ограничения у архитектуры фон Неймана?
Основным недостатком является то, что оперативная память, в которой находятся инструкции и обрабатываемые данные, унифицирована и совместно используется через одну шину данных и общую адресацию. Таким образом, инструкции и данные должны последовательно записываться из памяти. Это узкое место является так называемым узким местом фон Неймана. Вот почему разные микропроцессоры имеют ближайший к процессору кэш, разделенный на два типа: один для данных и один для инструкций.
В последние годы скорость процессора увеличилась намного быстрее, чем у оперативной памяти, что увеличивает время, необходимое для передачи данных из памяти. То, что вынудило разработать решения для облегчения этой проблемы, является результатом узкого места фон Неймана.
В процессорах, где обычно используется гарвардская архитектура, они являются автономными и, следовательно, не имеют доступа к общей оперативной памяти системы, а вместо этого выполняют свою собственную память и программу изолированно от основной. ЦП. Эти процессоры получают список данных и инструкции по двум разным ветвям данных. Один для памяти команд, а другой для памяти данных упомянутого процессора.
формальное определение
Компьютеры являются машинами архитектуры фон Неймана, когда:
- И программы, и данные хранятся в общей памяти . Это позволяет выполнять команды так же, как и данные.
- Каждая ячейка памяти в машине идентифицируется уникальным номером, называемым адресом .
- Различные части информации (команды и данные) имеют разные способы использования, но структура не представлена в памяти в закодированном виде.
- Каждая программа выполняется последовательно, начиная с первой инструкции, если нет специальных инструкций. Для изменения этой последовательности используется команда управления передачей .
Разработка концепции хранимой в памяти программы
Математик Алан Тьюринг, который испытывал интерес к проблеме математической логики после лекции Макса Ньюмана в Кембриджском университете, написал статью в 1936 году, она была опубликована в издании Лондонского математического общества. В ней он описал гипотетическую машину, которую назвал «универсальной вычислительной машиной», и которая теперь известна как универсальная машина Тьюринга. Она имела бесконечное хранилище (в современной терминологии — память), которое содержало как инструкции, так и данные, для чего и создавалась данная архитектура. Фон Нейман познакомился с Тьюрингом в то время, когда он был приглашенным профессором в Кембридже в 1935 году, а также в ходе защиты докторской диссертации Тьюринга в Институте перспективных исследований в Принстоне (штат Нью-Джерси) в 1936-1937 годах.
Независимо друг от друга Джи Преспер Эккерт и Джон Мочли, которые разрабатывали ENIAC в школе электротехники в Университете штата Пенсильвания, писали о концепции машины, хранящей программу в памяти в декабре 1943 года. При планировании новой машины, EDVAC, Эккерт писал в январе 1944 года, что она будут хранить данные и программы в новом устройстве с адресацией памяти с помощью задержки металлической ртути. Это был первый раз, когда было предложено строительство на практике машины, хранящей программу в памяти. В то же время он и Мочли не были осведомлены о работе Тьюринга (фото ниже).
Принцип построения и работы ЭВМ фон Неймана
Заносимые в память команды (программа) содержат информацию о необходимом действии и адреса требуемых данных. Также вводятся идентификатор ячейки для введения память результата (если нужно).
АЛУ отвечает за исполнение команды. Итог операции отправляется в память или на вывод. ВЗУ сходно с устройством вывода тем, что используется для недолгого хранения параметров. Только содержит информацию в непонятном для оператора формате. Исключительно для машины.
Если кратко, основной функцией АЛУ является поддержка незатейливых действий: арифметических, логических, перемещением данных. Еще анализируется результат. Решения по анализу принимаются УУ.
УУ предназначено для отправки указаний непосредственно отдельным деталям и получения от них подтверждений. Следит за очередностью выполнения команд и за их исполнением вообще.
Начало реализации проектов
И проект фон Неймана, и документы Тьюринга описывали компьютеры, хранящие в памяти определенную программу, но статья фон Неймана достигла большей циркуляции в обществе, и компьютерная архитектура стала известна как архитектура Джона фон Неймана.
В 1945 году профессор Нейман, который тогда работал в инженерной школе в Филадельфии, где и был построен первый ENIAC, выпустил от имени группы своих коллег доклад о логическом проектировании цифровых вычислительных машин. В докладе содержится довольно подробное предложение по конструкции машины, которая с тех пор стала известна как EDVAC. Она тогда только недавно была создана в Америке, но доклад вдохновил фон Неймана на создание EDSAC.
внешние ссылки
- Гарвард против фон Неймана
- Инструмент, имитирующий поведение машины фон Неймана . Архивировано 19 февраля 2008 г. в Wayback Machine . (на английском)
- JOHNNY — Простой симулятор машины фон Неймана с открытым исходным кодом для образовательных целей .
- Описание архитектуры фон Неймана
Эта работа содержит полный и расширенный перевод, полученный из « Архитектуры фон Неймана » английской Википедии, в частности, этой версии , выпущенной ее издателями в соответствии с лицензией GNU Free Documentation License и лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .