Некоторые сомнения относительно диаграммы Arcitechture фон Неймана

альтернативный текст

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

Как ALU может общаться с памятью? Разве это не должно быть работой CU?

Как аккумулятор является частью ALU?

И, что именно работа аккумулятора?

3 ответа

Решение

Судя по диаграмме компьютера IAS (который должен быть очень похож на EDVAC, о котором писал компьютер фон Нейман), блок управления предоставляет адреса (регистр MAR) и управляет транзакциями шины с помощью таких сигналов, как AS, R/W*. С другой стороны, ALU подключен к шине данных (регистр MDR): он получает данные из памяти и сохраняет результаты обратно. Диаграмма также показывает, что ALU получает инструкции и передает их в CU (регистр IBR).

Например, предположим, что блок управления только что получил инструкцию ADD $1234, Затем обработка происходит следующим образом:

  1. КС ставит $1234 на адресную шину и запускает цикл чтения
  2. операнд принимается ALU (регистр MDR) и добавляется с помощью аккумулятора (регистр AC)
  3. результат сложения окончательно сохраняется в аккумуляторе.

Ответы на ваши вопросы:

  1. АЛУ получает данные из памяти, выполняет операции и сохраняет результат обратно. В то время, когда все данные были сохранены в памяти (не было регистров общего назначения), следовательно, было логично поместить MDR в ALU, что означает, что ALU должен быть подключен к шине данных.
  2. Компьютер IAS был спроектирован таким образом, что один вход ALU и выход ALU жестко связаны с аккумулятором. Следовательно было логично разместить аккумулятор в АЛУ.
  3. Аккумулятор задуман как место для хранения промежуточных результатов, потому что было сложнее реализовать инструкции с более чем одним операндом памяти.

Наконец, я считаю, что это обсуждение чисто историческое. Нет особой причины предпочитать ассоциировать MDR с ALU, а не с CU. Просто фон Нейману приходилось так думать, когда он писал статью об EDVAC. Чтобы закончить историю, Википедия говорит, что EDVAC был фактически разработан Эккертом и Мочли, в то время как фон Нейман занимался только консультированием и написанием.

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

Блок управления подобен координатору, который приказывает другим компонентам делать то и это. Но это не обеспечивает средства, как это сделать, поэтому ALU необходимо напрямую связываться с памятью.

Что ж, ALU изменяет регистр флагов, когда что-то делает, поэтому он связан с памятью (флаги не находятся в CU и в ALU, и так как это единственные компоненты, которые показаны...). А аккумулятор хранит данные, временно ожидая, пока ALU их обработает. Он напрямую связан с АЛУ, потому что считалось, что этот регистр поддерживает его своими вычислениями, так же, как регистр ecx связан со схемами счетчиков. Конечно, можно добавить ecx,edx, но медленнее. Выбор исходного и целевого регистров очень труден из-за дополнительных схем, необходимых для реализации в CPU, и он был недавно заархивирован (относительно). Это изображение довольно старое (ssegvic верно!), Потому что оно показывает, что ввод / вывод возможен только с использованием аккумулятора. На мой взгляд, это более понятно:

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

Другие вопросы по тегам