неділю, 1 жовтня 2006 р.

Архитектура ЭВМ

Фон-Неймановская архитектура.

Фон Нейман предложил использовать двоичную логику (систему счисления, и определения команд), а так-же использование оперативки.

Вот принципы работы его машины, что относится и к современным машинам:

  1. Линейное пространство памяти. Для оперативного хранения информации используется совокупность (массив) ячеек с последовательной нумерацией, которая называется оперативная память.
  2. Принцип хранимой программы. Код программы и её данные находятся в оперативной памяти.
  3. Микропрограммный принцип. (микропрограммирования). Машинный язык - еще не то, что приводит в действие процессы в машине, существует устройство микропрограммного управления, которое содержит набор действий-сигналов, которые необходимо сгенерировать на ту или иную машинную команду.
  4. Последовательное выполнение программ. Процессор выбирает команды из памяти строго последовательно, и изменить ход выполнения программы можно только используя условные и безусловные переходы (jmp, jz, и т.п.).
  5. Отсутствие разницы между данными и командами в памяти. Для процессора нет разницы, между данными и кодом, они ведь представлены в виде массива нулей и единиц.
  6. Безразличие к назначению данных. Машине все равно, какую логическую нагрузку несут обрабатываемые данные.

Микроархитектура.

Микроархитектура - описание способов и средств выполнения машинных команд, то-есть то, как он (проц.) их выполняет. На сегодняшний день в рамках IA32 (32-х разрядной интельской архитектуры) существует 2 микроархитектуры: P6 и NetBurst.

Если логически представить компьютер в виде уровней, получается такая примерно схемка:

  • Уровень Опрационной Системы
  • Уровень машинных команд
  • Уровень микроархитектуры
  • Уровень аппаратуры.

К микроархитектуре P6 "относятся" такие процессоры как: Pentium Pro,Pentium II(xeon),Celeron, Pentium III (Xeon). По определению intel эта архитектура является "трехходовой (three-way) суперскалярной архитектурой", что значит что используется технология параллельного вычисления, позволяющая выполняться одновременно 3-м командам (за один такт).

В компьютере фон Неймановской архитектуры существуют 2 основные стадии исполнения команды - её выборка, и собственно исполнение. Однако, если подумать, пока команда исполняется, устройство выборки простаивает, почему-бы не использовать конвеерную систему, ведь Intel совместимые процессоры относятся к группе CISC - процессоров (Complete Instruction Set Computing - машинные команды со сложным) и одна CISC команда может выполнятся несколько тактов!
Впервые конвеер был реализован в i486, и выполнение команды разбивалось на 5 этапов, каждый из которых выполняет некую простейшую операцию из общего процесса обработки команды.
Конвеер i80486 - пятиступенчатый, следовательно в нем одновременно могут в разных стадиях выполнения находится 5 команд.

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

Суперскалялярная архитектура - означает, что в отличии от скалярной архитектуры(i486) более новые процессоры имеют два (pentium) и более (p6) конвееров.
У P6 же имеется другая структура конвеера, и собственно конвееризация вычислений означает что процесс выполнения команд разбит на 12 ступеней. Соответственно в P6 имеется 3 конвеера, и известен верхний предел - в процессоре, в разных стадиях выполнения может находится 30 команд. Однако, как все это делается, скрыто за таким понятием как динамическое исполнение с нарушением исходного порядка следования команд (out of order). Это значит, что порядок выполнения команд определяется не исходной последовательностью команд, а исполнительным устройством процессора. В основу этой технологии положены три концепции:

  1. Предсказание правильного адреса перехода. По статистике, примерно на 6-8 команд приходится одна команда перехода, т.е. приходится перезаполнять весь конвеер. Поэтому ввели блок предсказания (в устройство выборки/декодирования), который предсказывает возможный адрес перехода, и в соответствии с этим предсказанием команды загружаются в конвеер. Вероятность правильного предсказания - 80%.
  2. Динамический анализ потока данных. Анализ проводится для того чтобы определить зависимости команд от регистров, и данных с целью оптимизировать выполнения потока команд. Главное тут, это чтобы процессор не простаивал, а был постоянно был загружен на максимально возможный уровень. Короче чтобы выжать максимум из этого проца. Для этого допускается нарушение порядка следования команд. Внешне работа программы не нарушается, поэтому ошибки не происходит. Такая фишка позволяет не замедлять процесс работы процессора, даже когда приходится обращаться за данными в оперативку, что есть действие очень медленное.
  3. Спекулятивное исполнение. Если адрес перехода предсказан, то процессор начинает выборку и исполнение команд с предсказанного адреса, и если он предсказан правильно, то проц имеет уже исполненный код. Что есть ускорение. Однако, если он предсказан неправильно, то весь конвеер приходится очищать, что очень замедляет.

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments