Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора ОРГ ЭВМ экзамен.docx
Скачиваний:
16
Добавлен:
24.09.2019
Размер:
481.65 Кб
Скачать

57. Переименование регистров

Для любого указанного в команде логического регистра выделяется один из физических регистров соответствующего блока регистров замещения, содержащего например 128 регистров. Эта процедура (переименование регистров) позволяет увеличить количество используемых регистров процессора, а также позволяет выполнять команды, в которых задействованы одни и те же логические регистры, одновременно или с изменением их последовательности.

58. Регистровые структуры процессоров x86-64 архитектуры

В процессорах x86-64, Intel64 архитектур существующие в х86 регистры общего назначения расширены с 32 до 64 бит и к ним добавлены еще 8 новых 64-разрядных регистров. Также 8 новых 128-ми битных регистров добавлено в блок SSE, что обеспечивает поддержку SSE2.

В блоке FPU используются существующие в х87 регистры данных ST (80-разрядные) и 64-разрядные мультимедийные регистры, объединенные в общее пространство с регистрами ST. Регистр указателя команд (RIP) и регистр флагов (RFLAGS) также расширены до 64 разрядов.

59. Регистровые структуры процессоров ia-64

В состав регистровых файлов IA-64 входят:

-128 регистров общего назначения GPR (64-разрядных);

-128 регистров с плавающей запятой FR (82-разрядных);

-128 прикладных регистров (64-разрядных) AR;

-64 одноразрядных регистров предикатов PR;

- 8 регистров переходов BR (64-разрядных);

-не менее 4-х регистров идентификатора процесса CPUID;

-счетчик команд IP;

-регистр маркера текущего окна CFM, стека регистров и др.

GPR0–GPR127 применяются не только для целочисленных операций IA-64;

GPR8–GPR31 в режиме IA-32 используются также под целочисленные регистры и регистры селекторов и дескрипторов сегментов IA-32. GPR0–GPR31 - статические регистры , а GPR32–GPR127 – стекируемые. Статические регистры «видны» всем программам. Стекируемые регистры становятся доступными в программной единице через окно стека регистров, включающее локальные и выходные регистры, число которых задается командой alloc.

FR0–FR127 также подразделяются на статические (FR0–FR31, причем всегда FR0 = 0.0, FR1 = 1.0) и вращаемые (FR32–FR127). FR8–FR31 в режиме IA-32 содержат числа с плавающей запятой и мультимедийные регистры. Вращение регистров - частный случай переименования регистров. Вращение регистров в IA-64 управляется программно.

AR0–AR127 – специализированные. Ряд AR-регистров является фактически регистрами IA-32. AR0–AR7- регистры ядра. Запись в них привилегированна, но они доступны на чтение в любом приложении и используются для передачи приложению сообщений от операционной системы. AR16 (RSC) – регистр конфигурации стека регистров, используемый для управления работой стека регистров IA-64. AR40 (FPSR) – регистр состояния для команд с плавающей запятой IA-64.

PR0–PR63- одноразрядные, в них помещаются результаты выполнения команд сравнения. Обычно эти команды устанавливают сразу два соседних регистра PR в состояния «1» – истина, «0» – ложь или наоборот в зависимости от значения условия. Такая избыточность обеспечивает дополнительную гибкость.

BR0–BR7 применяются для указания адреса перехода в соответствующих командах перехода (если адрес перехода не кодируется в команде явно).

В CPUID 0 и CPUID 1 находится информация о производителе, в регистре CPUID 2 – серийный номер процессора, а в регистре CPUID 3 задается тип процессора (семейство, модель, версия архитектуры и т. п.) и число CPUID-регистров. Разряды регистра CPUID4 указывают на поддержку конкретных особенностей IA-64, которые реализованы в данном процессоре.