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

Автор: Пользователь скрыл имя, 25 Мая 2013 в 00:27, доклад

Описание работы

Архитектура фон Неймана ( архитектура фон Неймана-Экерта-Макли ), архитектура электронных вычислительных машин, основным отличием которой от других подобных архитектур является совместное хранение данных и машинных команд в ячейках одной и той же памяти, что делает невозможным их различение по способу представления или кодирования. Названная так в честь известного математика и теоретика вычислительной техники Джона фон Неймана (John von Neumann), и поныне остается доминирующей схемой организации ЭВМ общего назначения.

Работа содержит 1 файл

Архитектура эвм.doc

— 51.00 Кб (Скачать)

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

Архитектура фон Неймана ( архитектура фон Неймана-Экерта-Макли ), архитектура электронных вычислительных машин, основным отличием которой от других подобных архитектур является совместное хранение данных и машинных команд в ячейках одной и той же памяти, что делает невозможным их различение по способу представления или кодирования. Названная так в честь известного математика и теоретика вычислительной техники Джона фон Неймана (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), в котором хранилась адрес текущей команды, а после ее выполнения заменялась адресу следующей. Адреса же самих операндов (данных) хранились непосредственно в команде.

Также в «Предварительный дискуссии» была достаточно подробно рассмотрена четырехкомпонентной  структура вычислительного инструмента, которая сейчас считается классической структурой фон-неймановской машины, а именно: арифметическое устройство, устройство управления, память и пульт оператора.

 

 

Формальное  определение

Вычислительная машина является машиной с архитектурой фон Неймана, если:

  1. Программа и данные хранятся в одной общей памяти .
  2. Каждая ячейка памяти машины идентифицируется уникальным номером, который называется адресом .
  3. Разные слова информации (команды и данные) различаются по способу использования, но не по способу кодирования и структурой представления в памяти.
  4. Каждая программа выполняется последовательно, начиная с первой команды, если нет специальных указаний. Для изменения этой последовательности используются команды передачи управления .

 

 

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

Машина фон Неймана, как и практически каждый современный  ЭВМ общего назначения, состоит из четырех основных компонентов:

  1. Операционная устройство (ВУ) , который выполняет команды из определенного набора, который называется системой (набором) команд , над порциями информации, хранящейся отделенной от операционного устройства памяти (хотя современные архитектуры имеют в составе операционного устройства дополнительную память (обычно банк регистров ), в которой операнды хранятся сравнительно короткое время непосредственно в процессе проведения вычислений.
  2. Устройство управления (ПУ) , который организует последовательное выполнение алгоритмов, расшифровка команд, поступающих из запоминающего устройства (см. ниже), реагирует на аварийные ситуации и выполняет общие функции управления всеми узлами вычислительной машины. Обычно ОП и ПУ объединяются в структуру, называемую центральным процессором . Следует обратить внимание, что требование именно последовательного, в порядке поступления из памяти (в порядке изменения адресов в счетчике команд ) выполнения команд является принципиальной. Архитектуры, которые не соблюдают такого принципа, вообще не считаются фон-неймановской.
  3. Запоминающее устройство (ЗУ)  - массив ячеек с уникальными идентификаторами (адресам), в которых хранятся команды и данные.
  4. Устройство ввода-вывода (ПВВ) , который обеспечивает связь ЭВМ с внешним миром, устройств, передающих информацию на переработку в ЭВМ и принимают результаты.

 

 

Принцип функционирования

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

Перед началом выполнения программы  в счетчик записывается адрес  ее первой команды. Определение адреса следующей команды происходит по одному из следующих сценариев:

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

 

 

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

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

Можно выделить два основных вектора такой критики:

«Семантический  разрыв»

Хотя это не касается непосредственно принципов фон-Неймана, но часто апеллируют именно к «классической архитектуры фон-Неймана» в критике ее достаточно примитивного и низкоуровневого набора команд, который, по мнению критиков, абсолютно не соответствует современному состоянию дел в индустрии разработки программного обеспечения, в частности в наличии языков высокого уровня, которые намного повышают производительность труда программиста за счет предложения ему более высокоуровневых абстракций, и нужно обычно до нескольких сот машинных команд вместо одной команды языка высокого уровня. Этот дисбаланс в принципе успешно решается на программном уровне с помощью компиляторов , но в 60-70 годы XX века было довольно много попыток реализовать машинные языки высокого уровня аппаратно (см. Архитектура с развитыми средствами интерпретации ). Среди отечественных разработок в этом направлении следует выделить ЭВМ серии «МИР» , а среди серьезных критиков системы фон-Неймана, в том числе и за низкий семантический уровень команд, академика В. М. Глушкова . Определенной степени, попыткой «повысить семантический уровень» можно считать и CISC -архитектуры системы команд, хотя как доказало время, перспективным оказался прямо обратное направление максимальной «примитивизации» набора команд, реализованный в RISC -архитектурах.

Разделение операционного устройства и памяти

Разделение их хранения и памяти в классической архитектуре  фон-Неймана считается ее существенным недостатком. Любят говорить о так называемом «бутылочное голубка» фон-неймановской архитектуры (термин, предложенный Джоном Бэкуса (John Backus) в 1977. Это «голубка» создается между операционным устройством (микропроцессором) и памятью, ведь скорость обработки информации в процессоре обычно намного больше, чем скорость работы их хранения, который не успевает обеспечивать процессор новыми порциями информации, что приводит к простоям. Проблема решается за счет построения более сложной иерархии памяти , в частности введением кэш-памяти, более быстрой (но и более дорогой, чем основная), где хранятся данные, которые часто используются в вычислениях, чтобы не обращаться за ними к медленной основной памяти. Существуют также и радикальные предложения, которые в последнее время начали воплощаться в жизнь, и заключаются в создании так называемой «умной памяти», которая бы интегрировала запоминая ячейки со схемами обработки данных.

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

Последовательный  принцип выполнения

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

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

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


Информация о работе Архитектура фон Неймана