Блок обработки команд

Блок обработки команд содержит:

· кэш-память команд L1;

· узел загрузки и предварительной загрузки команд;

· узел предсказания переходов;

· очередь команд.

Кэш-память команд L1 объемом 16 Кбайт поддерживает два одновременных обращения к своему содержимому. Она может передать конвейеру два пакета команд (6 команд) в течение одного такта.

Узел загрузки и упреждающей загрузки команд служит интерфейсом между кэш-памятью команд L1 и кэш-памятью L2. Он читает два пакета команд из кэш-памяти команд L1 (по три команды в каждом пакете) и, если это команды IA-64, помещает их в очередь команд, где эти команды ожидают передачи их устройствам выполнения. Команды IA-32 передаются блоку управления командами IA-32.

Архитектура IA-64 содержит 6 конвейеров команд. Обработка команды в конвейере выполняется за 8 этапов. Первые два этапа выполняются в блоке загрузки и упреждающей загрузки команд.

На этапе 1 указатель команды загружается в кэш-память команд L1. Этот указатель является либо адресом следующей по порядку команды, либо предсказанной команды, либо откорректированным адресом после неудачного предсказания перехода.

На этапе 2 выполняется циклическая перестановка пакетов команд, для того, чтобы выбрать порядок, в котором команды будут выполняться в конвейере.

Чтобы предотвратить потери команд в кэш-памяти команд L1, команды загружаются из кэш-памяти L2 с упреждением, т.е. до того, как команда попадает на выполнение. Кроме того, с упреждением загружаются команды, которые определены с помощью узла предсказания переходов. Если команда не найдена в кэш-памяти L2, она ищется в кэш-памяти L3.

В блоке предсказания переходов используются усовершенствованные алгоритмы определения возможного направления (вперед и назад) и возможного адреса перехода.

Очередь может содержать до 8 пакетов команд. В течение одного такта может представить блоку исполнения два пакета команд.

 

Рис. 1.3.22. Структура и основные компоненты архитектуры IA-64