- •Глава 22. Особенности архитектуры epic
- •22.1. Принцип явного параллелизма
- •Поддержка режима ia-32/64
- •22.2. Регистры общего назначения
- •Регистры для чисел с плавающей точкой
- •Предикатные регистры
- •Работа стека регистров
- •22.3. Система команд "непривилегированной части"
- •22.5. Контрольные вопросы
- •22.4. Операции над данными с плавающей точкой
22.4. Операции над данными с плавающей точкой
Программная модель вычислений с плавающей точкой в архитектуре EPIC, в отличие от архитектуры IA-32/64, ориентирована на работу с регистрами FR, а не со стеком, что уже само по себе облегчает создание более высокопроизводительных программ. В архитектуре EPIC непосредственно поддерживается 6 типов данных, в том числе три стандарта IEEE 754 (одинарная точность SP, двойная точность DP и двойная расширенная точность DE), 82-разрядный формат FR и 64-разрядные целые - со знаком и без знака. Формат DE, также как и формат с размещением двух чисел (SP) с плавающей точкой, используемый в векторных мультимедийных командах, унаследован архитектурой EPIC от архитектуры IA-32/64. Формат регистров FR включает 64-разрядную мантиссу, 17-разрядный порядок и 1 разряд под знак числа. Кроме того, на уровне подпрограмм предлагается поддержка четверной точности.
В 64-разрядном регистре FPSR указываются признаки деления на ноль, переполнения порядка, исчезновения порядка, потери значимости, формат данных и другая информация о состоянии.
FP-команды загрузки имеют модификации, соответствующие всем аппаратно поддерживаемым типам данных, которые в ассемблере задаются последним символом мнемокода (LFDS - для SP, LDFD - для DP и т.д.). Арифметические команды включают операции типа "умножить-и-сложить" и "умножить-и-вычесть", команды вычисления максимума/минимума, а также команды вычисления обратной величины и обратного квадратного корня. Применение двух последних вместо команд деления и квадратного корня соответственно упрощает работу с конвейерами.
22.5. Контрольные вопросы
Какие причины обусловили появление архитектуры EPIC?
В чем суть принципа явного параллелизма?
Назовите основные особенности архитектуры EPIC?
Какие требование предъявляются к компиляторам для программ с архитектурой EPIC?
Какое количество регистров предусмотрено в архитектуре EPIC?
Каким образом в пакете команд указывается последовательность выполнения команд?
Какова роль предикатных регистров?
Как используются регистры архитектуры EPIC при вызове подпрограмм?
В чем суть спекулятивного (по предположению) выполнения команд?
