Формат команд IA-64 и структура пакета инструкций.
Формат команд IA-64 содержит 41 разряд и имеет фиксированную длину (см. рис. 2.22). Поле КОП занимает 14 разрядов, под адрес 64 предикатных регистров (PR) отводится 6 разрядов, три 7-битных поля используются для адресации 128 регистров общего назначения (GR) или регистров с плавающей точкой (FR).
Большинство целочисленных команд трехадресные, а их аргументы находятся в регистрах, однако встречается и литеральное (символьное) представление аргументов. Имеются также модификации команд add и sub, которые являются четырехадресными: в них к сумме / разности регистров прибавляется / вычитается 1.
Рис. 2.22. Данные формата инструкций IA-64
Команды в формате IA-64 упакованы по три в 128-битный LIW (long instruction word) пакет (рис. 2.23).
Рис.2. 23. Пакет инструкций IA-64
В каждый пакет при трансляции компилятор помещает шаблон, который размещается в 5-битовом поле Т (рис. 2.23). Шаблон пакета указывает не только на то, какие команды в пакете могут выполняться независимо, но и какие команды из следующего пакета могут выполняться параллельно. Команды в пакетах не обязательно должны быть расположены в том же порядке, что и в машинном коде, и могут принадлежать к различным путям ветвления. Компилятор может также помещать в один пакет зависимые и независимые команды, поскольку возможность параллельного выполнения определяется шаблоном пакета. В отличие от некоторых ранее существовавших архитектур со сверх длинными словами команд (VLIW), IA-64 не добавляет команд «нет операции» (NOPS) для дополнения пакетов.
-
Функции центрального устройства управления процессора.
В общем случае ЦУУ формирует управляющие сигналы для реализации следующих функций:
выборки из памяти кода очередной команды;
расшифровки кода операции и признаков выбранной команды;
выборки операндов и выполнения машинной операции;
обеспечения прерываний при выполнении команд;
формирования адреса следующей команды;
учета состояний других устройств машины;
инициализации работы контроллеров (каналов) ввода-вывода;
организации контроля работоспособности ЭВМ.
-
Классификация методов построения центрального устройства управления процессора.
По способу построения рабочего цикла различают ЦУУ:
с прямым циклом, когда на первом этапе производится выборка из памяти команды, а затем следуют этапы выполнения машинной операции;
с обращенным циклом, когда сначала выдаются УС для выполнения машинной операции по коду команды, поступившей в ЦУУ на предыдущем цикле (предвыборка команд), а затем из памяти выбирается код команды, которая будет исполняться в следующем цикле;
с совмещением во времени циклов выполнения нескольких команд (конвейером команд).
-
Центральное устройство управления микропрограммного типа.
Микропрограммный принцип управления обеспечивает реализацию одной машинной команды путем выполнения определенной микропрограммы, интерпретирующей алгоритм выполнения данной операции. Совокупность микропрограмм, необходимая для реализации системы команд ЭВМ, хранится в специальной памяти микропрограмм. Каждая микропрограмма состоит из определенной последовательности микрокоманд, которые после выборки из памяти преобразуются в набор управляющих сигналов.
Под управлением одной микрокоманды в течение машинного такта могут выполняться одна или несколько микроопераций (элементарных машинных действий) в различных устройствах процессора.
Таким образом, использование в составе центрального устройства управления блока микропрограммного управления (БМУ) приводит к двухуровневому принципу управления процессом обработки данных. Первый уровень – это система команд ЭВМ (программное управление), второй – микропрограммное управление.
Анализ аппаратурной (схемной) и микропрограммной реализации устройства управления указывает на зависимость стоимости управления от величины набора команд и их сложности. Для сокращенного набора простых команд выгоднее использовать схемное управление, что и реализуется в RISC-процессорах. При расширенном составе сложных команд (как в CISC-процессорах) наиболее эффективно, с точки зрения затрат оборудования, микропрограммное управление. Однако оно приводит к увеличению затрат времени на выработку управляющих воздействий. Основным же преимуществом микропрограммного управления является его гибкость, которая позволяет повышать эффективность серийно выпускаемых и эксплуатируемых машин за счет введения новых средств математического обеспечения, использующих дополнительный набор команд и новые функции процессора. Модернизация алгоритмов или реализация дополнительных команд легко осуществляется путем изменения содержимого микропрограммной памяти. Наглядным примером использования данной возможности является технология ММХ, расширения SSE, SSE-2, разработанная фирмой Intel.
-
Определить назначение, структуру, количество основных функциональных регистров IA-32.
Регистры общего назначения
Восемь 32-разрядных регистров (EAX, ECX, EDX, EBS, EBP, ESP, ESI, EDI) предназначены для хранения данных и адресов. Они поддерживают работу с данными разрядностью 1, 8, 16 и 32 бита, битовыми полями длиной от 1 до 32 бит и адресами размером 16 и 32 бита. Младшие 16 разрядов этих регистров (рис.3.2) доступны отдельно при использовании соответствующего имени, например регистр ЕАХ (имя АХ для 16 разрядов).
При операциях с байтами можно отдельно обращаться к младшему байту (разряды 0 – 7) и старшему байту (8 – 15) по именам AL и AH. Доступ к отдельным байтам обеспечивает дополнительную гибкость при операциях с данными.
Рис. 3.2. Структура регистра общего назначения ЕАХ
Регистры сегментов и дескрипторы сегментов
Шесть 16-разрядных сегментных регистров (CS, SS, DS, ES, FS, GS) содержат значения селекторов сегментов, указывающих на текущие адресуемые сегменты памяти. С каждым из них связан программно-недоступный регистр дескриптора сегмента (рис. 3.3).
В защищенном режиме каждый сегмент может иметь размер от 1 байта до 4 Гбайт, в режиме реальных адресов максимальный размер сегмента составляет 64 Кбайта.
Селектор в CS обеспечивает обращение к текущему сегменту команд, селектор в SS — к текущему сегменту стека, селекторы в DS, ES, FS, GS — к текущим сегментам данных. Каждый регистр дескриптора содержит базовый адрес сегмента, 32-разрядный размер сегмента и другие необходимые атрибуты.
Регистры сегментов
|
Регистры дескрипторов
|
|
15 0
|
|
|
|
|
|
|
Селектор
|
CS
|
|
Базовый адрес
|
Размер сегмента
|
Другие атрибуты
|
|
Селектор
|
SS
|
|
|
|
|
|
|
|
|
|
Селектор
|
DS
|
|
|
|
|
|
|
|
|
|
Селектор
|
ES
|
|
|
|
|
|
|
|
|
|
Селектор
|
FS
|
|
|
|
|
|
|
|
|
|
Селектор
|
GS
|
|
|
|
|
|
|
|
|
Рис. 3.3. Регистры сегментов и соответствующие регистры дескрипторов
Когда в регистр сегмента загружается новое значение селектора, содержимое соответствующего регистра дескриптора автоматически корректируется. В реальном режиме базовый адрес сегмента получается путем сдвига значения селектора на 4 разряда влево (20 разрядов), максимальный размер и атрибуты сегмента в реальном режиме имеют фиксированные значения.
Указатель команд
Указатель команд (см. рис. 3.4) представляет собой 32-разрядный регистр с именем EIP, содержимое которого используется в качестве смещения при определении адреса следующей выполняемой команды. Смещение задается относительно базового адреса сегмента команд CS. Младшие 16 бит (0 – 15) содержат 16-разрядный указатель команд с именем IP, который используется при 16-разрядной адресации.
Рис. 3.4. Структура регистра указателя команд
Указатель команд непосредственно программисту недоступен. Его содержимое изменяется при выполнении команд передачи управления и прерываний.
Регистр флагов
Регистр флагов является 32-разрядным, имеет имя EFLAGS. Его разряды содержат признаки результата выполнения команды, управляют обработкой прерываний, последовательностью вызываемых задач, вводом/выводом и рядом других процедур.
|