Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Работа стека регистровФайл регистров GR отличается от файлов регистров FR и PR тем, что последние содержат фиксированные подмножества статических и вращаемых регистров, в то время как в файле регистров GR вне подмножества статических регистров применяется стек регистров, и программной единице доступна лишь его часть - окно стека регистров. В отличие от статических регистров, стекируемое подмножество локально для любой программной единицы и может иметь размер от 0 до 96 регистров, начиная с регистра GR32. Использование этого механизма в архитектуре EPIC позволяет избежать накладных расходов, связанных с сохранением/восстановлением большого числа регистров при вызовах подпрограмм и возвратах из них (однако статические регистры при необходимости все-таки приходится сохранять и восстанавливать, явно кодируя соответствующие команды). Автоматическое сохранение/восстановление стекируемого подмножества регистров осуществляет аппаратура, и в программе об этом заботиться не надо. В режиме IA-32/64 работа с этим стеком регистров, естественно, отключается.
22.3. Система команд "непривилегированной части" Именно подмножество команд "непривилегированной части" определяет наиболее принципиальные особенности архитектуры EPIC. Имеются следующие типы команд: - команды работы со стеком регистров (например, команда alloc); - целочисленные команды; - команды сравнения и работы с предикатами; - команды доступа в оперативную память; - команды перехода; - мультимедийные команды; - команды пересылок между регистрами; - "разные" (операции над строками и подсчет числа единиц в слове); - команды работы с плавающей точкой. Целочисленные команды архитектуры EPIC включают арифметические операции (add, sub и др.), логические операции (and, or, xor и др.), операции над разрядами и сдвиги, а также 32-разрядные операции. Большинство этих команд трехадресные, а их аргументы лежат в регистрах; однако встречается и литеральное представление аргументов. Имеются также модификации команд add и sub, которые являются четырехадресными: в них к сумме/разности регистров прибавляется/вычитается 1. Команда умножения целых чисел в регистрах GR отсутствует; для перемножения необходима пересылка целых в регистры FR и применение операции умножения, выполняемой в функциональном устройстве вещественного типа. Некоторые специалисты считают это "наименее удачной" чертой системы команд архитектуры EPIC. Команды сравнения и работа с предикатами - это одна из принципиально новых особенностей архитектуры EPIC по сравнению с RISC-архитектурой. Приведем сначала несколько типичных примеров команд этой группы. Команда CMP сравнивает два регистра GR (или регистр GR и литерал) на одно из 10 возможных условий (больше, меньше или равно и т.п.). Команда TBIT тестирует заданный разряд регистра GR. Команда FCMP сравнивает два числа с плавающей точкой. Однако результатом сравнения является не единственный код условия, что типично для обычных процессоров. Логический результат сравнения (1 - истина, 0 - ложь) записывается обычно в пару предикатных регистров (во второй пишется отрицание первого). Эти значения предикатных регистров используются затем не только в командах условного перехода, как в обычных процессорах. Почти все команды архитектуры EPIC выполнимы "под предикатом", т.е. могут выполняться или нет в зависимости от значения указанного в команде PR-регистра. Это позволяет во многих случаях избежать применения условных переходов, которые, как известно, отрицательно сказываются на производительности ядер процессоров. Вместо этого ядро процессора c архитектурой EPIC, имеющий большое число ресурсов (в частности, регистров и функциональных устройств), может исполнить обе ветви программы.
|