Блок обработки команд содержит:
· кэш-память команд 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