Универсальные процессоры
Наиболее часто под архитектурой универсальных процессоров (микропрцессоров) понимают совокупность следующих характеристик.
7. Форматы данных.
8. Набор регистров.
9. Форматы команд.
10. Методы адресации.
11. Набор операций.
12. Организация памяти и состав кэш (не архитектурный параметр).
В настоящее время наиболее известны следующие архитектуры универсальных микропроцессоров:
- архитектура х86 (Intel, AMD, Cyrix)
- архитектура Power PC (Motorola)
- архитектура MIPS (Silicon Graphics)
- архитектура SPARC (SAN)
- архитектура IA-64 (Merced) Itanium(Intel & Hewlett-Packard).
PowerРС.
Архитектура PowerРС является промежуточной между СИСК и РИСК.
(Она реализована в компьютерах Apple –Macintosh: 601,603,604 – 32 разрядные; 620, G3, G4 – 64-х)
1. Типы данных: числа без знака и числа со знаком 8/16/32/64. При загрузке в регистр разрядность расширяется до размера регистра. Особенность процессора – возможность нумерации байтов в слове как слева направо, так и справа налево.
2. Состав регистров:
а) 32 64- разрядных УР для целых чисел (в R0 всегда «0») и 32 64- разрядных УР для чисел с ПЗ и, соответственно, два регистра состояния.
б) регистр условий, по состоянию которого происходит условная передача управления.
в) регистр-счётчик циклов
г) регистр связи (возврата)
3. Все команды имеют одинаковую длину – 32 разряда. Первые 6 разрядов – код операции, далее, как правило, два 5-разрядных адреса РОН, далее может следовать ДКОП. В командах БП смещение 24-разрядное и имеется признаки: типа адреса (прямой или относительный) признак запоминания возврата в регистре связи. (Отсутствует команда CALL).
4. Методы адресации. В командах чтения/записи – косвенная со смещением {(BR)+D}, косвенная базово-индкесная {(BR)+(IR)}. В командах передачи управления – прямая, относительно счётчика команд, косвенная по регистру возврата или счётчику. Особенность адресации в том, что сформированный адрес может заноситься в базовый регистр.
5. Особенности набора операций;
а) при работе с памятью – только операции чтения/записи;
б) А/Л операции над регистрами – трёхадресные;
в) присутствуют команды умножения со сложением или вычитанием;
г) имеются ЛО над битами условий;
д) команды арифметических и логических операций снабжены признаком, должен ли результат операции изменять признаки результата в регистре состояния;
е) в командах перехода (с возвратом) имеется признак того, что в следующем (после команды) слове находится адрес возврата, который заносится в регистр связи.
ж) имеются команды выгрузки блока данных из кэш в ОЗУ и обновление блока в кэш команд.
Обеспечение суперскалярности в PowerPC.
Ядром процессора являются три конвейерных узла обработки: целых чисел, вещественных чисел и операций ветвления.
Особенно интересно работает узел ветвления, который выбирает одно из трёх решений: а) ветвление выполняется: признаки результата уже выработаны и указывают на необходимость ветвления; б) ветвление отвергается: признаки результата уже выработаны и указывают на отсутствие ветвления; в) выполняется алгоритм прогнозирования (признаки результата ещё не выработаны): ветвление выполняется, если переход вперёд и наоборот.
В PowerPC 620 число узлов целых чисел утроено и применены регистры временного хранения, дублирующих основные регистры пока не будут известны результаты прогноза.
Архитектура MIPS (R3000, R4000, R6000, R10000).
MIPS архитектура (Microprocessor without Interlocked Pipeline Stages)- процессор без блокировки в конвейере
Предполагалось, используя классическую RISC архитектуру (без многотактных операций типа умножения и деления) с длинным конвейером, получить процессор с высокой тактовой частотой.
История развития от R3000 (50Мгц) до R1000 (200 Мгц) и R16000 (800 Мгц).
Форматы данных.
В памяти 8/16/32/(64) целые в дополнительном коде. Операции над словом в регистре. Формат данных с плавающей точкой.
Набор регистров
– 32 РОН, регистр состояния…
Формат команд – три варианта 32-разрядных команд.
Im - тип
Jump- тип
Reg- тип
Виды адресации.
Регистровая, непосредственная и в командах чтения/записи – косвенная с смещением.
Набор операций.
- чтения/ записи
- А/Л с непосредственным адресом
- А/Л трёхадресные
- Сдвига
- Переходов
- Сопроцессора с ПТ
В R4000 появилась группа команд прерываний по условию
В MIPS реализован суперконвейер: каждый этап разбит на две фазы и перекрываются фазы. В R4000 конвейер состоит из 8-и этапов.
SPARC (Scalable Processor ARChitecture) –Sun Microsystems
Форматы данных.
32- целые числа в АЛУ, байт, полуслово, слово, двойное слово при операциях чтения-записи с памятью. Числа с плавающей точкой.
Набор регистров.
Одной из особенностей архитектуры SPARC является наличие файла из 128 регистров.
Причём одномоментно пользователю доступны восемь глобальных регистров и 24 локальных – окно в регистровом файле. При переходе к подпрограмме окно смещается по файлу таким образом, что те регистры, которые необходимо было бы сохранить оказываются вне нового окна. Расположение и размер окон можно менять программно. Отсюда и название процессора (масштабируемая процессорная архитектура). Хотя это направление не выдержало «гонки мегагерц», такой подход использован в IA-64 (Itanium).
Перекрывающиеся регистровые окна. Размер окна –24 регистра. Количество окон – от 2-х до 32-х. Регистры с 0-7 – глобальные. Т.о. программно доступно 32 регистра. Регистры 24-31- входные, 8-15 – выходные; они перекрываются в соседних окнах. 16-23 – локальные. Указатель положения окна хранится в регистре состояния, там же хранится номер ближайшего свободного окна, там же признаки результата (флаги условий). В нулевом регистре всегда – 0.
Форматы команд.
Все – 32-разрядные. Основной код операции 2 разряда. Дополнительные коды операций – трёхразрядные.
Виды адресации.
Регистровая, косвенная регистровая со смещением, непосредственная, прямая, косвенная регистровая базово- индексная.
Смещение может быть 32-разрядным (младшие два разряда – нулевые). Ряд команд – трёхадресные.
Набор операций
Загрузки/сохранения байта, полуслова, слова, двойного слова. Сложения/вычитания (с учётом переноса и без); и, или, неэквивалентность, эквивалентность – все с установкой флагов и без. Такт умножения, вызов и возврат из процедур и прерываний; изменения регистрового окна. Условное прерывание; сброс кэш команд.
Команды условного перехода имеют четырёхразрядное поле условий (смещение 24-х разрядное). В командах условного перехода имеется бит аннулирования «а». Команда, следующая за командой перехода, в которой установлен бит «а», выполняется только, если условие выполняется. В противном случае она аннулируется. Тем самым повышается производительность конвейера..
UltraSPARC-II
Буфер команд рассчитан на 12 команд. Он формирует группу из 4-х команд: две для блока целых чисел и две – для чисел с ПТ.
Блоки обработки содержат по два АЛУ и восемь регистровых окон. Блоки обработки чисел с ПТ дополнены схемой для выполнения графических команд.
Конвейер команд состоит из 9-и этапов и имеет разветвление для двух блоков обработки.
Однако, последнее достижения фирмы Sun Microsystems Niagara предполагает конкурировать с IA-64, будет потреблять в 1.5 раза меньше (70Вт).
Альтернативой суперскалярным процессорам являются процессоры с длинным командным словом (так называемые VLIW – системы), состоящем, по существу, из нескольких команд в соответствии с количеством устройств обработки.
В первом 64 разрядном процессоре фирмы Интел ( IA-64- Титаниум) применена технология вычислений с явно параллельными инструкциями EPIC (Explicitly Parallel Instruction Computing), что позволяет выполнять инструкции пачками по три (причём несколько пачек за такт). Задача распараллеливания возлагается на компилятор.
Формат команд 128 бит (по три команды по 40 бит в пакете и байт шаблона). В шаблоне содержится информация, какие команды можно выполнять параллельно.
Машинная программа формируется таким образом, что команды обеих ветвей после ветвления, выполняются до того, как будет известен результат сравнения. Интересной особенностью является наличие предикации, то есть возможность выполнять или не выполнять инструкцию в зависимости от значения бита предиката. После выполнения команды сравнения одна из ветвей будет аннулирована. Все возможные возникающие ситуации фиксируются посредством признаков в регистре одноразрядных предикатов. Такая архитектура позволяет избежать задержек, связанных с необходимостью очистки и наполнения конвейера.
Вторая особенность новой архитектуры в реализации предварительной чтения данных из памяти также с использованием аппарата предикативности. Чтение осуществляется до операции ветвления, но данные не попадают в приёмник до тех пор, пока не будет сформировано значение соответствующего предиката.
Таким образом, ветвление по условию может заменяться выполнением инструкции в зависимости от данных.
Третья новая особенность - спекулятивное выполнение инструкций:
а) выполнение одновременно двух альтернативных пересылок, не дожидаясь результата команды ветвления;
б) выполнение операций чтения до операции записи при обращении к одной ячейке памяти.
Четвёртая особенность наличие стека регистров, что обеспечивает контекстное переключение регистров при работе с процедурами и при прерываниях.
Новые возможности позволяют достигнуть производительности 6 гигафлоп на частоте 1ГГц.
Сравнение архитектур традиционных суперскалярных процессоров
и IA-64
Традиционные |
IA-64 |
Однословные РИСК-команды |
Три РИСК-команды в пакете |
Несколько параллельно работающих исполнительных устройств |
Несколько параллельно работающих исполнительных устройств |
Оптимизация потока команд в ходе выполнения |
Оптимизация потока команд на этапе компиляции |
Спекулятивное выполнение команд одной ветви |
Спекулятивное выполнение команд в обеих ветвях после перехода |
Выборка данных из памяти по мере необходимости (если их нет в кэш) |
Выборка данных из памяти до появления необходимости (если их нет в кэш) |
Cell - ячейка.
Организация: 9 процессорных ядер, одно из которых главное (PPE – Power Processing Element). На РРЕ работает ОС, управляющая объединением процессоров в сеть. Процессоры связаны высокоскоростными интерфейсами с общей оперативной памятью Rumbus.
Архитектура: ячейки бывают аппаратными и программными. Аппаратная ячейка – это процессор для выполнения программных ячеек. Программная ячейка - это либо данные, либо apulet – особая программа, описывающая какими процедурами из библиотеки следует обрабатывать данные.