logo
Все готово(Шпоры)

13Машина фон Неймана

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

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

Как видно из приведённого рисунка, машина Фон Неймана состоит из памяти, устройств ввода/вывода и центрального процессора (ЦП). Центральный процессор, в свою очередь, состоит из устройства управления (УУ) и арифметико-логического устройства (АЛУ).

Память машины Фон Неймана – это линейная (упорядоченная) и однородная последовательность некоторых элементов, называемых ячейками. В любую ячейку памяти другие устройства машины (по толстым стрелкам на схеме рис. 2.1) могут записать и считать информацию, причём время чтения из любой ячейки одинаково для всех ячеек.Ячейки памяти в машине Фон Неймана нумеруются от нуля до некоторого положительного числа N (это и означает, что память линейная), причёт число N в "настоящих" ЭВМ часто является степенью двойки, минус единица. Адресом ячейки называется её номер. Каждая ячейка состоит из более мелких частей, именуемых разрядами и нумеруемых также от нуля и до определённого числа. Количество разрядов в ячейке обозначает разрядность памяти. Каждый разряд может хранить одну цифру в некоторой системе счисления. В большинстве ЭВМ используется двоичная система счисления, т.к. это более выгодно с точки зрения аппаратной реализации. В этом случае каждый разряд хранит одну двоичную цифру или один бит информации. Восемь бит составляют один байт. Сам Фон Нейман тоже был сторонником использования двоичной системы счисления, что позволяло хорошо описывать архитектуру узлов ЭВМ с помощью логических (булевских) выражений.

Устройство управления (УУ) управляет всеми остальными устройствами ЭВМ. Оно осуществляет это путём посылки управляющих сигналов, подчиняясь которым остальные устройства производят определённые действия, предписанные этими сигналами. Обратите внимание, что это устройство является единственным, от которого на рис. 2.1 отходят тонкие стрелки управляющих сигналов ко всем другим устройствам. Остальные устройства на этой схеме могут "командовать" только памятью, делая ей запросы на чтение и запись машинных слов.

Арифметико-логическое устройство (АЛУ) может выполнить следующие действия:

1. Считать содержимое некоторой ячейки памяти (машинное слово), т.е. поместить копию этого машинного слова в некоторую другую ячейку, расположенную в самом АЛУ. Если ячейки памяти расположены не в основной памяти, а в других устройствах ЭВМ, то они называются регистровой памятью или просто регистрами.

2. Записать машинное слово в некоторую ячейку памяти – поместить копию содержимого одного из своих регистров в эту ячейку памяти. Когда не имеет значения, какая операция (чтение или запись) производится, говорят, что происходит обмен машинным словом между регистром и основной памятью ЭВМ. Таким образом, машинное слово – это минимальная порция данных для обмена с основной памятью.

3. АЛУ может также выполнять различные операции над данными в своих регистрах, например, сложить содержимое двух регистров, обычно называемых регистрами первого R1 и второго R2 операндов, и поместить результат этой операции на третий регистр.

Взаимодействие УУ и АЛУ

Революционность идей Джона Фон Неймана заключалась в строгой специализации: каждое устройство компьютера отвечает за выполнение только своих функций. Например, раньше память ЭВМ часто не только хранила данные, но и могла производить операции над ними. Теперь же было предложено, чтобы память только хранила данные, АЛУ производило арифметико-логические операции над данными в своих регистрах, устройство ввода вводило данные из "внешнего мира" в память или на регистры АЛУ и т.д. Таким образом, Джон Фон Нейман предложил жёстко распределить выполняемые ЭВМ функции между различными устройствами, что существенно упростило схему машины, и сделало более понятным её работу. Устройство управления тоже имеет свои регистры, оно может считывать команды из памяти на специальный регистр команд, на котором всегда хранится текущая выполняемая команда.