2. Классическая архитектура эвм и принципы фон-Неймана
Как было сказано выше, считается, что основы учения об архитектуре вычислительных машин заложил выдающийся американский математик Джон фон Нейман. Он подключился к созданию первой в мире ламповой ЭВМ ENIAC в 1944 г., когда ее конструкция была уже выбрана. В процессе работы во время многочисленных дискуссий со своими коллегами Г. Голдстайном и А. Берксом фон Нейман высказал идею принципиально новой ЭВМ. В 1946г. ученые изложили свои принципы построения вычис-лительных машин в ставшей классической статье “Предварительное рассмотрение логической конструкции электронно-вычислительного устройства”. С тех пор прошло полвека, но выдвинутые в ней положения сохраняют актуальность и сегодня.
В статье убедительно обосновывается использование двоичной системы для представления чисел (нелишне напомнить, что ранее все вычислительные машины хранили обрабатываемые числа в десятичном виде). Авторы убедительно продемонстрировали преимущества двоичной системы для технической реализации, удобство и простоту выполнения в ней арифметических и логических операций. В дальнейшем ЭВМ стали обрабатывать и нечисловые виды информации – текстовую, графическую, звуковую и другие, но двоичное кодирование данных по-прежнему составляет информационную основу любого современного компьютера.
Огромный авторитет фон Неймана привел к тому, что всем базовым принципам построения ЭВМ стали приписывать его имя, а архитектура называться «фон – неймановская».
Фон Нейман с соавторами выдвинули основные принципы логического устройства ЭВМ и предложили ее структуру, которая полностью воспроизводилась в течение первых двух поколений ЭВМ:
Рис. 1. Архитектура ЭВМ, построенной на принципах фон Неймана.
— направление движения информацией
— управляющих сигналов от процессора к остальным узлам ЭВМ
Кроме архитектуры ЭВМ Нейман предложил основополагающие принципы логического устройства ЭВМ:
1. Принцип программного управления. Он обеспечивает автоматизацию процессов вычислений на ЭВМ. Согласно этому принципу программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.
Регистр – специализированная дополнительная ячейка памяти в процессоре. Регистр выполняет функцию кратковременного хранения числа или команды.
Счетчик команд – регистр УУ, содержимое которого соответствует адресу очередной выполняемой команды, он служит для автоматической выборки программы из последовательных ячеек памяти. То есть, с его помощью осуществляется выборка программы из памяти. Этот регистр последовательно увеличивает хранимый в нем адрес очередной команды на длину команды. А так как, команды программы расположены в памяти друг за другом, то тем самым осуществляется выборка цепочки команд из последовательно расположенных ячеек памяти. Для выполнения не следующей команды, а какой-то другой, используются команды условного или безусловного переходов. Таким образом, процессор исполняет программу автоматически, без вмешательства человека.
2. Принцип однородности памяти. Программы и данные хранятся в одной и той же памяти. Поэтому компьютер не различает, что храниться в данной ячейке памяти – число, текст или команда. Над командами можно выполнять такие же действия, как и над данными. Иногда этот принцип называют «принцип хранимой команды».
3. Принцип адресности. Структурно основная память состоит из пронумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка. Это позволяет обращаться к произвольной ячейке (адресу) без просмотра предыдущих.
Компьютеры, построенные на этих принципах, относят к типу фон — неймановских.
В современных компьютерах устройство управления и арифметико-логическое устройство объединены в один блок – процессор.
Персональный компьютер состоит из следующих основных блоков:
Все блоки связаны между собой системной магистралью (общей шиной). Шина состоит из трех частей:
• шина данных, по которой передается информация;
• шина адреса, определяющая, куда передаются данные;
• шина управления, регулирующая процесс обмена информацией.
Описанную схему (шинная архитектура ЭВМ) легко пополнять новыми устройствами, подключать непосредственно к шине, что явилось главным преимуществом в разработке важнейшего принципа построения ПК – открытой архитектуры. Для пользователя открытая архитектура означает возможность свободно выбирать состав внешних устройств для своего компьютера, т.е. конфигурировать его в зависимости от круга решаемых задач.
Таким образом, внутренняя структура вычислительной техники постоянно совершенствовалась и будет совершенствоваться. Вместе с тем, на данный момент подавляющее большинство существующих ЭВМ, несмотря на имеющиеся различия, по-прежнему состоит из одинаковых узлов и основано на общих принципах фон-неймановской архитектуры.
Процесс взаимодействия процессора и памяти сводится в основном к двум операциям: запись информации в память и чтение информации из памяти. При записи процессор по специальным проводникам (они называются шиной адреса) передает биты, кодирующие адрес; по другим проводникам (они называются шиной управления) передает управляющий сигнал — «запись» и по еще одной группе проводников (она называется шиной данных) передает записываемую информацию. При чтении также по шине адреса передается соответствующий адрес оперативной памяти и с шины данных считывается требуемая информация.
Число одновременно передаваемых по шине адреса и шине данных разрядов (битов) называется разрядностью соответствующей шины и является важной характеристикой ЭВМ. Разрядность шины данных определяет максимальное общее количество доступной памяти (адресное пространство процессора); разрядность шины данных — максимальную порцию информации, которую можно получить из памяти за один раз. Для процессора i8088, на котором работал первый персональный компьютер корпорации IBM, разрядность адресной шины равнялась 20 и, соответственно, максимальное количество доступной памяти равнялось 1 Мбайту. Современные процессоры Pentium могут адресовать до 1Гбайта памяти.
Процессор и основная память находятся на большой плате, которая называется материнской. Для подключения к ней периферийных устройств (дисководов, манипуляторов типа мыши, принтеров и т.д.) служат специальные платы — контроллеры. Они вставляются в разъемы (слоты) на материнской плате, а к их концу (порту), выходящему наружу компьютера, подключается дополнительное устройство. Таким образом, периферийные устройства подключаются к системной магистрали не непосредственно, а через специальные устройства — контроллеры. Магистраль можно сравнить с телефонным кабелем, к которому параллельно подключены абоненты — блоки компьютера. «Обращение» процессора к внешнему устройству похоже на вызов абонента. Все устройства пронумерованы. Когда нужно обратиться к какому-нибудь из них, в магистраль посылается его адрес. Как и телефон, устройство может быть свободно или занято. Приняв сигнал «свободно», процессор посылает ему информацию. Контроллер внешнего устройства можно сравнить с телефонным аппаратом, который принимает сигнал от процессора и дешифрует его. Например, контроллер экрана, приняв от процессора сигнал 01000001 (код буквы «А»), преобразует его в указание электронно-лучевой трубке изобразить на экране букву «А».
1.3. Классическая архитектура электронной вычислительной машины и принципы фон Неймана
Архитектура вычислительной машины (англ. Computer architecture) — концептуальная структура вычислительной машины [1], определяющая проведение обработки информации и включающая методы преобразования информации в данные и принципы взаимодействия технических средств и программного обеспечения [2]. Т.о. принципиальное описание устройства и работы принято называть архитектурой ЭВМ.
В настоящее время наибольшее распространение получили два типа архитектур ЭВМ: принстонская (фон Неймана, рис. 1.17) и гарвардская (рис. 1.18).
Рис. 1.17. Структура ЭВМ с принстонской (фон-неймановской) архитектурой
Рис. 1.18. Структура ЭВМ с гарвардской архитектурой
Обе они выделяют два основных узла ЭВМ: центральный процессор и память компьютера. Различие заключается в структуре памяти: в принстонской архитектуре программы и данные хранятся в одном массиве памяти и передаются в процессор по одному каналу, тогда как гарвардская архитектура предусматривает отдельные хранилища и потоки передачи для команд и данных.
В более подробное описание, определяющее конкретную архитектуру, также входят: структурная схема ЭВМ, средства и способы доступа к элементам этой структурной схемы, организация и разрядность интерфейсов ЭВМ, набор и доступность регистров, организация памяти и способы её адресации, набор и формат машинных команд процессора, способы представления и форматы данных, правила обработки прерываний.
По перечисленным признакам и их сочетаниям среди архитектур выделяют:
— по разрядности интерфейсов и машинных слов: 8-, 16-, 32-, 64-, 128- разрядные (ряд ЭВМ имеет и иные разрядности);
— по особенностям набора регистров, формата команд и данных: CISC, RISC, VLIW;
— по количеству центральных процессоров: однопроцессорные, многопроцессорные, суперскалярные; многопроцессорные по принципу взаимодействия с памятью: симметричные многопроцессорные (SMP), масcивно-параллельные (MPP), распределенные.
Гарвардская архитектура — программа и данные хранятся в различных устройствах памяти (в архитектуре фон Неймана для выборки команды и двух операндов требуется три такта, здесь два; в реальности, это время может быть сокращено до одного такта).
Основы учения об архитектуре вычислительных машин заложил выдающийся американский математик Джон фон Нейман. Он подключился к созданию первой в мире ламповой ЭВМ ENIAC в 1944 году, когда ее конструкция была уже выбрана. В процессе работы во время многочисленных дискуссий со своими коллегами фон Нейман высказал идею принципиально новой ЭВМ и в 1946 г. ученые изложили свои принципы построения вычислительных машин в ставшей классической статье 4 . С тех пор прошло полвека, но выдвинутые в ней положения сохраняют актуальность и сегодня.
В статье убедительно обосновывается использование двоичной системы для представления чисел (нелишне напомнить, что ранее все вычислительные машины хранили обрабатываемые числа в десятичном виде). Авторы убедительно продемонстрировали преимущества двоичной системы для технической реализации, удобство и простоту выполнения в ней арифметических и логических операций. В дальнейшем ЭВМ стали обрабатывать и нечисловые виды информации – текстовую, графическую, звуковую и другие, но двоичное кодирование данных по-прежнему составляет информационную основу любого современного компьютера.
Еще одной поистине революционной идеей, значение которой трудно переоценить, является предложенный Нейманом принцип «хранимой программы”. Первоначально программа задавалась путем установки перемычек на специальной коммутационной панели. Это было весьма трудоемким занятием: например, для изменения программы машины ENIAC требовалось несколько дней (в то время как собственно расчет не мог продолжаться более нескольких минут – выходили из строя лампы). Нейман первым догадался, что программа может также храниться в виде набора нулей и единиц, причем в той же самой памяти, что и обрабатываемые ею числа. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений.
Фон Нейман не только выдвинул основополагающие принципы логического устройства ЭВМ, но и предложил структуру, которая воспроизводилась в течение первых двух поколений ЭВМ. Основными блоками по Нейману (рис. 1.19) являются устройство управления (УУ) и арифметико-логическое устройство (АЛУ) (обычно объединяемые в центральный процессор), память (ОЗУ), внешняя память (ВЗУ), устройства ввода и вывода. Схема устройства такой ЭВМ представлена на рис. 1.20.
Рис. 1.19. Блок-схема архитектуры ЭВМ по фон Нейману
Рис. 1.20. Архитектура ЭВМ, построенной на принципах фон Неймана.
Сплошные линии со стрелками указывают направление потоков информации, пунктирные – управляющих сигналов от процессора ко всем остальными узлам
Следует отметить, что внешняя память отличается от устройств ввода и вывода тем, что данные в нее заносятся в виде, удобном компьютеру, но недоступном для непосредственного восприятия человеком. Так, накопитель на магнитных дисках относится к внешней памяти, а клавиатура – устройство ввода, дисплей и печать – устройства вывода.
Устройство управления и арифметико-логическое устройство в современных компьютерах объединены в один блок – процессор, являющийся преобразователем информации, поступающей из памяти и внешних устройств (сюда относятся выборка команд из памяти, кодирование и декодирование, выполнение различных, в том числе и арифметических, операций, согласование работы узлов компьютера).
Память (ЗУ) хранит информацию (данные) и программы. Запоминающее
устройство у современных компьютеров «многоярусно” и включает оперативное запоминающее устройство (ОЗУ), хранящее ту информацию, с которой компьютер работает непосредственно в данное время (исполняемая программа, часть необходимых для нее данных, некоторые управляющие программы), и внешние запоминающие устройства (ВЗУ) гораздо большей емкости, чем ОЗУ. но с существенно более медленным доступом (и значительно меньшей стоимостью в расчете на 1 байт хранимой информации). На ОЗУ и ВЗУ классификация устройств памяти не заканчивается – определенные функции выполняют и СОЗУ (сверхоперативное запоминающее устройство), и ПЗУ (постоянное запоминающее устройство), и другие подвиды компьютерной памяти.
В построенной по описанной схеме ЭВМ происходит последовательное считывание команд из памяти и их выполнение. Номер (адрес) очередной ячейки памяти. из которой будет извлечена следующая команда программы, указывается специальным устройством – счетчиком команд в УУ. Его наличие также является одним из характерных признаков рассматриваемой архитектуры. Машинная команда – это двоичный код, определяющий выполняемую операцию, адреса используемых операндов и адрес ячейки ЗУ, по которому должен быть записан результат выполненной операции.
По принципу обработки информации вычислительное устройство, предложенное фон Нейманом (автомат Неймана – АН), существенно отличается от машины Тьюринга (рис. 1.21), которая имеет конечное число знаков si, образующих
Рис. 1.21. Структура машины Тьюринга (МТ)
внешний алфавит, в котором кодируются сведения, подаваемые в неё, а также вырабатываемые в ней. Среди знаков имеется пустой знак (s1), посылка которого в какую-либо ячейку стирает находившийся в ней знак и оставляет ее пустой.
В зависимости от поданной начальной информации (содержащихся на ленте внешней памяти знаков) возможны два случая:
— после конечного числа тактов машина останавливается (имея информацию β), подавая сигнал об остановке. В этом случае МТ применима к информации a и перерабатывает ее в информацию β;
— остановка никогда не наступает. В этом случае МТ не применима к начальной информации.
В каждый момент обозревается лишь одна ячейка ленты (памяти). Переход может осуществляться лишь к соседней ячейке (R – вправо, L – влево, N – нет перехода (остаться)). Переход к произвольной ячейке производится путем последовательного перебора всех ячеек, разделяющих текущую и необходимую ячейки. На каждом отдельном такте t команда предписывает только замену единственного знака si, хранящегося в обозреваемой ячейке, каким-либо другим знаком sj.
Логический блок МТ имеет конечное число состояний i> i=1..m.
Знаки R, L, N, q1. qmобразуют внутренний алфавит машины.
Переработанный знак sj, записываемый в просматриваемую ячейку, состояние, которое примет машина Тьюринга в следующем такте q(t+1) и выполняемая в данном такте операция перехода к следующей ячейке P(t+1) являются функцией анализируемого в данном такте символа и текущего состояния машины si и q(t):
Программа для МТ определяется тройкой i, P, q>t.
Перед началом работы машина Тьюринга находится в состоянии q1 считывания первого операнда.
Данная МТ применима к исходной информации. Останов – состояние q4. Значение si в ячейке y не меняется (сохраняется результат).
Если программа для МТ будет определена таблицей переходов, рис. 1.22, то
Рис. 1.22. Таблица переходов
данная МТ будет не применима к исходной информации, поскольку в состоянии q4 значение si в ячейке y постоянно меняется на противоположное.
Важная особенность машины Тьюринга – преобразование информации на каждом такте происходит лишь в одной ячейке, остальные дожидаются посещения головки, хотя часто имеется возможность работать параллельно.Простейшее решение – использование нескольких машин Тьюринга с общей для них внешней памятью (лентой) – не всегда допустимо из-за возможных конфликтов при обращении к одной и той же ячейке памяти.
В автомате Неймана число одновременно обрабатываемых ячеек может неограниченно расти, оставаясь в каждый момент конечным.
Элемент Неймана (ЭН) – это устройство, которое на каждом такте пребывает в одном из конечного числа состояний ri R, образующих его алфавит. ЭН имеет два входных канала: левый и правый; по каждому из них на такте t также поступает по одному состоянию из R (рис. 1.23).
Рис. 1.23. Элемент Неймана
Элемент реализует функцию zt+1=(ri, rj, rm)t, то есть в такте t+1 переходит в состояние z, определяемое его состоянием в текущий момент времени и значениями, поступившими по входным каналам.
Состояния элементов Неймана в момент времени t определяют конфигурацию автомата Неймана (рис. 1.24) в момент t: K(t).
Рис. 1.24. Структура автомата Неймана
Функционирование АН – это переход от состояния К(t) к состояниям K(t+1), K(t+2).
За один такт свое состояние может менять большое число элементов Неймана, что фактически приводит к параллельной обработке информации.
Разработанные фон Нейманом основы архитектуры вычислительных устройств оказались настолько фундаментальными, что получили в литературе название «фон-неймановской архитектуры”. Подавляющее большинство вычислительных машин на сегодняшний день – фон-неймановские машины. Исключение составляют лишь отдельные разновидности систем для параллельных вычислений, в которых отсутствует счетчик команд, не реализована классическая концепция переменной и имеются другие существенные принципиальные отличия от классической модели (примерами могут служить потоковая и редукционная вычислительные машины).
По-видимому, значительное отклонение от фон-неймановской архитектуры произойдет в результате развития идеи машин пятого поколения, в основе обработки информации в которых лежат не вычисления, а логические выводы.