- •Оглавление
- •Введение (новый весь раздел)
- •Архитектуры, характеристики, классификация эвм
- •Однопроцессорные архитектуры эвм
- •Конвейерная обработка команд из раздела 3.5
- •Cуперскалярная обработка из раздела 1.1.1 с дополнением
- •Архитектура sisd
- •Vliw-архитектура
- •Simd-архитектура
- •Многоядерные структуры процессора и многопотоковая обработка команд
- •Технические и эксплуатационные характеристики эвм
- •Классификация эвм
- •Классификация эвм по назначению
- •Классификация эвм по функциональным возможностям
- •Функциональная и структурная организация эвм
- •Обобщенная структура эвм и пути её развития
- •Типы данных
- •Структура и форматы команд эвм
- •Способы адресации информации в эвм
- •2.4.1. Абсолютные способы формирования исполнительного адреса
- •2.4.2. Относительные способы формирования исполнительных адресов ячеек памяти
- •Примеры форматов команд и способов адресации
- •Форматы команд и способы адресации в интеловских процессорах
- •Форматы команд и способы адресации в risc-процессорах
- •Особенности системы команд ia-64
- •Раздел 2.6 перенесен из раздела 3.6 предыдущего пособия
- •Принципы организации системы прерывания программ
- •ФункциональнаЯ и структурнаЯ организация центрального процессора эвм
- •НИзменен номер азначение и структура центрального процессора
- •Назначение, классификация и организация цуу
- •Регистровые структуры процессоров amd64 (Intel64)
- •Регистровые структуры процессоров ia-64
- •Структурная организация современных универсальных микропроцессоров
- •Стратегия развития процессоров Intel
- •Особенности многоядерной процессорной микроархитектуры Intel Core
- •Микроархитектура Intel Nehalem
- •Семейство процессоров Intel Westmere
- •Микроархитектура amd к10
- •Современное состояние и перспективы развития микропроцессоров для Unix-серверов
- •Микропроцессоры семейства Ultra sparc
- •Микропроцессор ibm power 7
- •Микропроцессор Intel Itanium 9300 (Tukwila)
- •Микропроцессор Intel Nehalem ex
- •Принципы организации подсистемы памяти эвм и вс
- •Иерархическая структура памяти эвм
- •Организация стека регистров
- •Способы организации кэш-памяти
- •Типовая структура кэш-памяти
- •Способы размещения данных в кэш-памяти
- •Методы обновления строк основной памяти и кэша
- •Методы замещения строк кэш-памяти
- •МУбран абзац ногоуровневая организация кэша
- •Принципы организации оперативной памяти
- •Общие положения
- •Методы повышения пропускной способности оп
- •М Изменён номер етоды управления памятью
- •ОИзменен номер рганизация виртуальной памяти
- •Методы ускорения процессов обмена между оп и взу
- •ОрганизациЯ системНого интерфейса и вВода-вывода информации
- •Общая характеристика и классификация интерфейсов
- •Способы организации передачи данных
- •Системная организация компьютеров на базе современных чипсетов
- •Системная организация на базе чипсетов компании Intel
- •Системная организация на базе чипсета amd
- •Многопроцессорные и многомашинные вычислительные системы
- •Архитектуры вычислительных систем
- •Сильносвязанные многопроцессорные системы
- •Слабосвязанные многопроцессорные системы
- •Список литературы
- •Организация эвм и систем
Форматы команд и способы адресации в risc-процессорах
Рассмотрим форматы команд на примере процессоров архитектуры Power PC, разработанной корпорациями IBM, Apple и Motorola.
Все команды имеют длину 32 разряда и могут быть 3-х форматов:
1 формат – КОП (6); RS (5); Rt (5); I (16),
где КОП(6) – поле кода операции, содержащее 6 разрядов; RS(5), Rt(5) – поля адресов регистров (по 5 разрядов); I(16) – 16-разрядный непосредственный операнд.
2 формат – КОП (6); RS (5); Rt (5); Rk (5).
3 формат – отличается от 2-го формата наличием дополнительного 32-разрядного командного слова, в котором для различных кодов операций могут находиться 32-разрядные непосредственный операнд, смещение или адрес перехода.
Архитектура Power PC определяет операции регистр – регистр для всех команд обработки. Источником данных являются встроенные регистры или непосредственные операнды. Трехрегистровый формат команд позволяет отличать регистр результатов от 2-х регистров – источников, позволяя использовать их в других командах. Данные пересылаются между памятью и регистрами только специальными командами загрузки/сохранения. Адреса памяти формируются с использованием базового регистра и смещения.
Особенности системы команд ia-64
Шестидесятичетырех-разрядная интеловская архитектура (IA-64), как было сказано выше, реализует EPIC-концепцию, разработанную совместно фирмами Intel и HP. IA-64 не является 64-разрядным расширением 32-разрядной архитектуры х86 компании Intel или переработкой 64-разрядной архитектуры РА-RISC компании НР. IA-64 представляет собой нечто абсолютно новое – передовую архитектуру, использующую длинные слова команд, предикаты команд, устранение ветвлений, предварительную загрузку данных и другие ухищрения для того, чтобы «извлечь больше параллелизма» из кода программ.
Команды IA-64 можно подразделить: команды работы со стеком регистров (например, alloc); целочисленные команды; команды сравнения и работы с предикатами; команды доступа в память; команды перехода; мультимедийные команды; команды пересылок между регистрами; команды выполнения операций над строками и подсчет числа единиц в слове; команды работы с плавающей запятой.
Целочисленные команды IA-64 включают арифметические операции (add, sub и др.), операции над битами и сдвиги, а также 32-разрядные операции.
Отметим, что команда умножения целых чисел в регистрах общего назначения (GR) отсутствует; для перемножения необходима пересылка целых в регистры с плавающей запятой (FR) и применение операции умножения, выполняемой в функциональном исполнительном устройстве вещественного типа. Некоторые специалисты считают это «наименее удачной» чертой системы команд IA-64.
Команды сравнения и работы с предикатами – это одна из принципиально новых особенностей IA-64 по сравнению с RISC-архитектурой. Приведем несколько типичных примеров команд этой группы. Команда cmp сравнивает два регистра GR (или регистр GR и литерал) на одно из 10 возможных условий (больше, меньше или равно и т. п.). Команда tbit тестирует заданный бит GR. Команда fcmp сравнивает два числа с плавающей запятой. Однако результатом сравнения является не единственный код условия, что типично для обычных процессоров. Логический результат сравнения (1 – истина, 0 – ложь) записывается обычно в пару предикатных регистров (во второй пишется отрицание первого). Эти значения предикатных регистров (PR) используются затем не только в командах условного перехода, как в обычных микропроцессорах. Почти все команды IA-64 выполнимы «под предикатом», т. е. могут выполняться или нет в зависимости от значения указанного в команде PR-регистра. Это позволяет во многих случаях избежать применения условных переходов, которые, как известно, отрицательно сказываются на производительности процессоров. Вместо этого процессор с архитектурой IA-64, имеющий большое число ресурсов (в частности, регистров и функциональных исполнительных устройств), может исполнять обе ветви программы линейно.
Формат команд IA-64 содержит 41 разряд и имеет фиксированную длину (рис. 2.22). Поле КОП занимает 14 разрядов, под адрес 64 предикатных регистров (PR) отводится 6 разрядов, три 7-битных поля (GFR) используются для адресации 128 регистров общего назначения (GR) или регистров с плавающей точкой (FR).
Большинство целочисленных команд трехадресные, а их аргументы находятся в регистрах, однако встречается и литеральное (символьное) представление аргументов. Имеются также модификации команд add и sub, которые являются четырехадресными: в них к сумме/разности регистров прибавляется/вычитается 1.
40 |
27 |
26 |
21 |
20 |
13 |
12 |
7 |
6 |
0 |
КОП |
PR |
GFR |
GFR |
GFR |
Рис. 2.22. Формат инструкций IA-64
Команды в формате IA-64 упакованы по три в 128-битный LIW (long instruction word) пакет (см. рис. 2.23).
127 |
|
122 |
|
|
|
40 |
0 |
Т |
Инструкция 1 |
Инструкция 2 |
Инструкция 3 |
Рис.2.23. Пакет инструкций IA-64
В каждый пакет при трансляции компилятор помещает шаблон, который размещается в 5-битовом поле Т. Шаблон пакета указывает не только на то, какие команды в пакете могут выполняться независимо, но и какие команды из следующего пакета могут выполняться параллельно. Команды в пакетах не обязательно должны быть расположены в том же порядке, что и в машинном коде, и могут принадлежать к различным путям ветвления. Компилятор может также помещать в один пакет зависимые и независимые команды, поскольку возможность параллельного выполнения определяется шаблоном пакета. В отличие от некоторых ранее существовавших архитектур со сверх длинными словами команд (VLIW), IA-64 не добавляет команд «нет операции» (NOPS) для дополнения пакетов.