Автор: Пользователь скрыл имя, 25 Мая 2013 в 00:27, доклад
Архитектура фон Неймана ( архитектура фон Неймана-Экерта-Макли ), архитектура электронных вычислительных машин, основным отличием которой от других подобных архитектур является совместное хранение данных и машинных команд в ячейках одной и той же памяти, что делает невозможным их различение по способу представления или кодирования. Названная так в честь известного математика и теоретика вычислительной техники Джона фон Неймана (John von Neumann), и поныне остается доминирующей схемой организации ЭВМ общего назначения.
Архитектура фон Неймана ( архитектура фон Неймана-Экерта-Макли ),
Авторство концепции, положенной в основу фон-неймановской архитектуры, в действительности принадлежит коллективу авторов (фон Нейман, Дж. Экерт, Дж. Макли), которые работали над созданием одной из первых ЭВМ общего назначения с возможностью перепрограммирования - ENIAC (1943, в частности фон Нейман был консультантом в этом проекте), а потом уже глубже реализована в машине EDVAC (1952). Сами принципы были сформулированы в нескольких публикациях, среди которых следует выделить такую как Burks, AW, Goldstine, HH, and von Neumann, J. Preliminary Discussion Of The Logical Design Of An Electronic Computing Instrument , 1945 («Предыдущая дискуссия о логическом устройстве электронного вычислительного инструмента ») и Von Neumann, J. First Draft Of A Report On The EDVAC , 1946 («Первый вариант доклада о EDVAC»).
Собственно, главной проблемой, которая стояла перед «пионерами» вычислительной техники была чрезвычайная сложность введения алгоритма вычислений в ЭВМ, для чего приходилось иметь дело с многочисленными переключателями, тумблерами, разъемами и другими коммутирующих элементов. Это затрудняло процесс, приводило к огромному количеству ошибок и отнюдь не прибавляло этим машинам универсальности.
Фон Нейман в своей «Предварительный дискуссии» предложил взамен хранить алгоритм вместе с данными для вычислений в памяти вычислительной машины, что бы давало возможность во-первых оперативно перепрограммировать систему, а во-вторых обращаться с командами как с данными, проводить над ними такие же вычислительные операции, то есть фактически открывало возможность для написания программ, которые сами себя модифицируют (и это было совсем не экзотикой на то время, а практической необходимостью). Таким образом предлагалась организация вычислений, которая действительно делала вычислительную машину универсальным инструментом.
Такая структура делала невозможным различение команд от данных в памяти машины по структуре представления, но фон-Нейманом было указано, что такое размещение возможно «при условии, если машина каким-то образом сможет различить их». Для того, чтобы указать машине на то, где есть команды, а где есть данные, была впоследствии предложена концепция счетчика команд (program counter), в котором хранилась адрес текущей команды, а после ее выполнения заменялась адресу следующей. Адреса же самих операндов (данных) хранились непосредственно в команде.
Также в «Предварительный
дискуссии» была достаточно подробно
рассмотрена
Вычислительная машина является машиной с архитектурой фон Неймана, если:
Машина фон Неймана, как и практически каждый современный ЭВМ общего назначения, состоит из четырех основных компонентов:
После загрузки программы (алгоритма и данных для обработки) в запоминающее устройство, машина фон-Неймана может работать автоматически, без вмешательства оператора. Каждая ячейка памяти машины имеет уникальный номер - адрес, а специальный механизм, чаще всего - счетчик команд - обеспечивает автоматическое выполнение необходимой последовательности команд, и определяет на каждом этапе адрес ячейки, из которой необходимо загрузить следующую команду.
Перед началом выполнения программы в счетчик записывается адрес ее первой команды. Определение адреса следующей команды происходит по одному из следующих сценариев:
Архитектура фон Неймана
неоднократно подвергалась критике (и,
учитывая это, вызывает искреннее удивление
ее живучесть, тогда как подавляющее
большинство поздних альтернати
Можно выделить два основных вектора такой критики:
Хотя это не касается
непосредственно принципов фон-
Разделение их хранения и памяти в классической архитектуре фон-Неймана считается ее существенным недостатком. Любят говорить о так называемом «бутылочное голубка» фон-неймановской архитектуры (термин, предложенный Джоном Бэкуса (John Backus) в 1977. Это «голубка» создается между операционным устройством (микропроцессором) и памятью, ведь скорость обработки информации в процессоре обычно намного больше, чем скорость работы их хранения, который не успевает обеспечивать процессор новыми порциями информации, что приводит к простоям. Проблема решается за счет построения более сложной иерархии памяти , в частности введением кэш-памяти, более быстрой (но и более дорогой, чем основная), где хранятся данные, которые часто используются в вычислениях, чтобы не обращаться за ними к медленной основной памяти. Существуют также и радикальные предложения, которые в последнее время начали воплощаться в жизнь, и заключаются в создании так называемой «умной памяти», которая бы интегрировала запоминая ячейки со схемами обработки данных.
Другим примером частичного решения этой проблемы является гарвардская архитектура , в которой память команд и данных разделена, что позволяет интенсифицировать обмен между запоминающим устройством и центральным процессором.
Архитектура фон Неймана
является принципиально
Вместе с тем, хотя почти все ЭВМ общего назначения является фон-неймановской, они существенно используют механизмы разпараллеленных вычислений , хотя это происходит и неявно, на уровне внутренней организации процессора, который незаметно для программиста выявляет скрытый параллелизм в последовательных программах для фон-неймановской машин.
Такая «незаметность» является принципиальной. Фактически фон-неймановской в современных ЭВМ остается именно архитектура вычислительной машины (т.е. программная организация).Внутренняя организация современных процессоров радикально использует нефоннеймановский принципы выполнения команд, но «вывода» эти принципы непосредственно в архитектуру ЭВМ, то есть открытие их для программиста, которое на первый взгляд может показаться целесообразным, в действительности может разрушить всю индустрию, и именно в этом есть секрет привлекательности фон-неймановской архитектуры. Фактически, эта концепция предлагает программисту чрезвычайно простую модель выполнения программы, последовательную модель, которая совпадает с образом мышления большинства программистов, которая является доминирующей в написании программ. Явное параллельное программирование - это очень сложная отрасль, требующая полной перестройки образа мышления программиста, оперирование более сложными абстракциями, применение совсем других алгоритмов и структур данных.Поэтому сохранение фон-неймановской архитектуры, каким бы сдерживающим фактором оно ни было, является абсолютно принципиальным для проектировщиков ЭВМ общего назначения.