Основные особенности архитектуры EPIC
1. Наличие явного параллелизма в машинном коде.
2. Большое количество внутренних регистров.
3. Масштабирование архитектуры путем наращивания числа функциональных блоков.
4. Предикация – команды разных ветвей программы снабжаются разными предикатами (тегами, ярлыками, признаками) и запускаются на выполнение параллельно.
5. Предварительная (спекулятивная) загрузка данных.
Подробнее:
1. Явный параллелизм основан, во-первых, на объединении трех простых команд в рамках одной длинной команды, называемой «bundle» («связка»).
В Itanium всего 3 команды упаковываются в одну связку.
Структура связки имеет вид:
Т
Instruction slot 2 |
Instruction slot 1 |
Instruction slot 0 |
template |
41 бит 41 бит 41 бит 5 бит
Т – это шаблон или маска, указывающая на возможность параллельного исполнения простых команд данной связки, а также связок, следующих за ней.
В рамках одной связки можно задать следующие комбинации параллельного или последовательного выполнения ее команд:
I2 || I1 || I0
I2 & I1 || I0
I2 || I1 & I0
I2 & I2 & I0
Структура слота команды содержит 5 полей:
OpC |
PR |
R2 |
R1 |
R0 |
14 бит 6 бит 7 бит 7 бит 7 бит
OpC – Operation Code
PR – Predicate
R2, R1, R0 – адреса регистров операндов и результата
2. Регистры Itanium:
1) 128 POH (GPR), каждый по 64 бита;
2) 128 регистров с плавающей точкой РПТ (FPR – Floating Point Register), каждый по 80 бит;
3) 64 регистра предикатов РП (PD) – по 1 биту;
4) 8 регистров адреса РА (AR) – по 64 бита;
5) 128 прикладных регистров ПР (AR – Application Register) – по 64 бита.
32 РОНа с младшими номерами реализованы как обычные адресные регистры, а остальные 96 РОНов организованы в виде регистровых окон.
3. Свойство масштабируемости специалисты Intel и НР именуют как inherently scalable instruction set (наследственно масштабируемый набор команд).
Одна длинная команда (связка), состоящая из трех простых команд соответствует набору из трех функциональных устройств процессора, способных функционировать параллельно и объединяемых в один функциональный блок.
Процессоры с архитектурой IA-64 (EPIC) могут содержать разное количество таких блоков, оставаясь при этом совместимыми по коду.
Благодаря тому, что в шаблоне поля T указана зависимость не только между простыми командами этой связки, но и между связками, процессору с N одинаковыми блоками из трех функциональных устройств будет соответствовать командное слово из N связок или 3N простых команд.
В архитектуре EPIC обеспечивается возможность увеличения числа функциональных устройств путем блочного наращивания по 3 устройства.
В процессоре Itanium-2 имеется 23 функциональных устройства. Из них:
- 6 устройств IU (Integer Unit);
- 4 устройства FPU – для обработки данных с плавающей точкой;
- 6 ММU (MultiMedia Unit) – устройства мультимедийной обработки;
- 4 блока LSU (Load/Store Unit) – загрузка и выгрузка данных;
- 3 модуля ветвления (выполнение команд перехода).
4. Предикация является альтернативой предсказания ветвлений.
В архитектуре большинства современных процессоров заложена возможность предсказания наиболее вероятного направления ветвления и выполнения команд программы именно по этому направлению. Такая особенность называется исполнением по предположению (speculative execution) и реализуется на основе аппаратного средства, называемого ВТВ – Branch Target Buffer (буфер меток (адресов) ветвлений).
Возможная ошибка предсказанного направления ветвления обходится необходимостью сброса конвейера команд и его реинициализации по истинному направлению ветвления.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.