9.1 Состав и назначение регистров микропроцессора ia-64
В таблице 9.1. представлен состав и назначение основных регистров микропроцессора IA-64. Стек регистров заменяет стек процессора, реализуемый в памяти. При вызове подпрограмм нет надобности сохранять регистры в памяти и восстанавливать их после завершения подпрограммы. Также нет надобности передавать подпрограмме параметры через ячейки памяти и считывать из памяти результат. Если 96 регистров стека микропроцессора недостаточно для этого, то процессор автоматически переносит часть стека в память, освобождая регистровое пространство стека для осуществления вызовов новых подпрограмм. По возвращении из этих подпрограмм содержимое вытесненного в память стека переписывается обратно из памяти в регистровый стек.
Прикладные регистры AR0-AR127 – специализированные (в основном 64-разрядные) регистры, применяемые в IA-64 и IA-32. AR0-AR7 называются регистрами ядра; запись в них привилегированна, но они доступны по чтению в любом приложении и используются для передачи приложению сообщений от операционной системы. Среди других прикладных регистров укажем на AR16 (RSC) – регистр конфигурации стека регистров, используемый для управления работой "машиной" стека регистров IA-64 (RSE); AR17 (BSP), в котором находится адрес в памяти, где сохраняется положение GR32 в текущем окне стека; AR40 (FPSR) – регистр состояния для команд с плавающей запятой IA-64; AR44 (ITC) – интервальный таймер; AR64 (PFS) – регистр предыдущего состояния функции, куда автоматически копируются некоторые другие регистры при вызове подпрограмм; AR65 (LC), используемый для организации циклов со счетчиком, и, наконец, 6-разрядный регистр эпилога AR66 (EC).
Таблица 9.1. Состав и назначение регистров микропроцессора IA-64
Название | Кол-во | Разр-ть | Назначение |
gr0-gr127 | 128 (32+96) | 64+1 | Целочисленные регистры общего назначения: gr0 – только для чтения, всегда равен нулю; gr1-gr31 – для глобальных данных; gr32-gr127 – стек регистров для хранения локальных переменных подпрограмм, передаваемых параметров и адресов возврата. 64 бита данных и 1 бит достоверности содержимого регистра NaT (1 – данные достоверны, 0 – данные спекулятивной команды недостоверны). |
fr0-fr127 | 128 | 82 | Регистры с плавающей точкой: fr0 – только для чтения, всегда равен +0.0; fr1 – только для чтения, всегда равен +1.0; fr2-fr31 – для глобальных данных; fr32-fr127 – вращаемые регистры. 82=64(мантисса)+17(экспонента)+1(знак). |
pr0-pr63 | 64 | 1 | Предикатные регистры для спекулятивного выполнения ветвей условных переходов. Всего 16 статичных регистров и 48 вращаемых. Результат команды достоверен если соответствующей ей предикатный регистр равен 1 |
br0-br7 | 8 | 64 | Регистры ветвлений для определения назначенных адресов ветвей условных переходов. |
ar0-ar127 | 128 | 64 | Прикладные регистры. |
IP | 1 | 64 | Указатель связки команд. |
CPUID | не менее 4 | 64 | Регистры идентификаторы процессора. |
CFM | 1 | 38 | Регистр маркера текущего окна стека регистров. |
64-разрядные регистры GR0-GR127 применяются не только для целочисленных операций IA-64. GR8-GR31 в режиме IA-32 используются также как целочисленные регистры и регистры селекторов и дескрипторов сегментов IA-32. GR0-GR31 называются статическими регистрами (GR0 всегда содержит 0), а GR32-GR127 – стекируемыми регистрами. Статические регистры 'видны' всем программам. Стекируемые регистры становятся доступными через окно стека регистров, включающее локальные и выходные регистры, число которых задается командой alloc.
82-разрядные регистры с плавающей запятой FR0-127 также подразделяются на статические FR0-FR31 (причем всегда FR0=0.0, FR1=1.0) и вращаемые FR32-FR127. FR8-31 в режиме IA-32 используются для хранения чисел с плавающей запятой и в качестве мультимедийных регистров.
Вращение регистров является в некотором роде частным случаем переименования регистров, применяемого во многих современных суперскалярных процессорах с внеочередным спекулятивным выполнением команд. В отличие от них, вращение регистров в IA-64 управляется программно.
64-разрядные регистры переходов BR0-BR7 применяются для указания адреса перехода в соответствующих командах перехода (если адрес перехода не кодируется в команде явно). Регистры предикатов PR0-PR63 являются одноразрядными; в них помещаются результаты команд сравнения. Обычно эти команды устанавливают сразу два регистра PR в зависимости от условия – соответственно истинность условия и его отрицания. Такая избыточность обеспечивает дополнительную гибкость.
В IA-64 предикатные регистры применяются для организации программно конвейеризованных циклов (Software Pipelining – SWP). Использование предикатных регистров – важнейшая особенность, кардинально отличающая IA-64 от всех других микропроцессоров.
PR0-PR15 являются статическими (PR0 всегда равен 1), а PR16-PR63 – вращаемыми. Статические предикатные регистры используются в командах условного перехода. Кроме того, почти все команды IA-64 могут быть выполнены “под предикатом”.
Регистры идентификаторы процессора: регистры CPUID0 и CPUID1 – информация о производителе; регистр CPUID2 – серийный номер процессора; регистр CPUID3 – тип процессора (семейство, модель, версия архитектуры и т.п.) и число CPUID-регистров. Разряды регистра CPUID3 указывают на поддержку конкретных особенностей IA-64, т.е. тех, которые реализованы именно в данном процессоре.
- Предисловие
- Глава 1. Общие сведения о микропроцессорах
- 1.1 Классификация микропроцессоров
- 1.2 Характеристики микропроцессоров
- 1.2.1 Тактовая частота
- 1.2.2 Архитектура процессора
- 1.2.3 Технологический процесс производства
- 1.2.4 Частота системной шины
- 1.2.5 Размер кэша
- 1.3 Типы архитектур микропроцессоров
- 1.4 Структурная схема микропроцессоров
- 1.4.1 Микропроцессор Фон-Неймана
- 1.4.2 Конвейер
- 1.4.3 Зависимость между частотой и количеством ступеней конвейера
- 1.5 Представление информации в эвм
- 1.5.1 Двоичное представление целых чисел
- 1.5.2 Представление символьной информации
- Глава 2. Архитектура микропроцессоров ia-32
- 2.1 Состав и функции регистров
- 2.1.1 Основные регистры
- 2.1.2 Регистры дополнительных функциональных модулей
- 2.2 Типы адресации
- 2.3 Система команд
- 2.3.1 Классификация команд
- 2.3.2 Формат команды
- 2.3.3 Однобайтовые команды
- 2.3.4 Непосредственно заданные операнды
- 2.3.5 Команды с регистровыми операндами
- 2.3.7 Команды с операндами, расположенными в памяти
- Глава 3. Организация многоуровневой памяти
- 3.1 Принцип построения многоуровневой памяти
- 3.2 Организация кэш-памяти
- 3.3 Протоколы когерентности памяти микропроцессоров
- 3.4 Страничная организация памяти
- Глава 4. Режимы работы процессоров ia-32
- 4.1 Обзор режимов работы
- 4.2 Реальный режим адресации
- 4.3 Защищённый режим
- 4.3.1 Дескрипторные таблицы
- 4.3.2 Дескрипторные регистры
- 4.3.3 Дескриптор
- 4.3.4 Односегментная модель памяти
- 4.3.5 Многосегментная модель памяти
- Глава 5. Страничная организация памяти в процессорах ia‑32
- 5.1 Каталог страниц
- 5.2 Таблица страниц
- 5.3 Страничная переадресация
- 5.4 Диспетчер виртуальных машин системы Microsoft Windows
- Глава 6. Архитектура процессоров с параллелизмом уровня команд
- 6.1 Подходы к использованию ресурса транзисторов в микропроцессорах
- 6.2 Суперскалярные процессоры и процессоры с длинным командным словом
- 6.3 Зависимости между командами, препятствующие их параллельному исполнению
- 6.4 Предварительная выборка команд и предсказание переходов
- 6.5 Условное выполнение команд в vliw-процессорах
- 6.6 Декодирование команд, переименование ресурсов и диспетчеризация
- 6.7 Исполнение команд
- 6.8 Завершение выполнения команды
- 6.9 Направления развития архитектуры процессоров с параллелизмом уровня команд
- Глава 7. Мультитредовые микропроцессоры
- 7.1 Основы мультитредовой архитектуры
- 7.2 Выявление тредов
- 7.3 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков управления программы
- 7.3.1 Мультитредовая модель выполнения программы
- 7.3.2 Мультитредовые программы
- 7.3.3 Аппаратные средства мультитредовой архитектуры
- 7.3.4 Преимущества мультитредовой архитектуры
- 7.4 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков данных программы
- 7.5 Специфика мультитредовых моделей распараллеливания
- Глава 8. Модуль обработки вещественных чисел
- 8.1 Представление чисел с плавающей запятой
- 8.2 Состав модуля fpu
- Глава 9. Основы 64-разрядной архитектуры
- 9.1 Состав и назначение регистров микропроцессора ia-64
- 9.2 Особенности архитектуры epic
- 9.3 Архитектура x86-64
- 9.4 Структура одноядерного процессора
- 9.5 Многоядерные процессоры
- 9.6 Зачем нужны “лишние” разряды?
- Глава 10. Современные 64-разрядные микропроцессоры корпораций Intel и amd
- 10.1 Архитектура Intel Core 2
- 10.1.1 Intel Wide Dynamic Execution
- 10.1.2 Intel Intelligent Power Capability
- 10.1.3 Intel Advanced Smart Cache
- 10.1.4 Intel Smart Memory Access
- 10.1.5 Intel Advanced Digital Media Boost
- 10.1.6 Логическая схема процессора
- 10.2 Архитектура Intel Core i7
- 10.2.1 Технология Hyper-Threading в архитектуре Nehalem
- 10.2.2 Иерархия кэш-памяти в архитектуре Nehalem
- 10.3 Хронология развития семейств микропроцессоров с архитектурой Nehalem
- 10.4 Архитектура amd Athlon 64
- 10.4.1 Ядро процессора
- 10.4.3 Контроллер памяти
- 10.4.4 Контроллер HyperTransport
- 10.5 Архитектура amd k10
- 10.4.1 Технология amd Memory Optimizer Technology
- 10.5.2 Ядро процессора
- 10.5.3 Предвыборка данных и инструкций
- 10.5.4 Выборка из кэша
- 10.5.5 Предсказание переходов и ветвлений
- 10.5.6 Процесс декодирования
- 10.5.7 Диспетчеризация и переупорядочение микроопераций
- 10.5.8 Выполнение микроопераций
- 10.5.9 Технологии энергосбережения
- 10.5.10 Шина HyperTransport 3.0
- 10.5.11 Семейство процессоров Barcelona
- 10.5.12 Семейство процессоров Phenom
- Глава 11. Технологии, поддерживаемые современными микропроцессорами
- 11.1 Технологии тепловой защиты
- 11.1.1 Технология Thermal Monitor
- 11.1.2 Технология Thermal Monitor 2
- 11.1.3 Режим аварийного отключения
- 11.2 Технологии энергосбережения
- 11.2.1 Технология Enhanced Intel SpeedStep
- 11.2.2 Технология Cool'n'Quiet
- 11.3 Технология расширенной памяти
- 11.4 Технология антивирусной защиты
- 11.5 Технология виртуализации
- 11.6 Реализация технологий в современных микроархитектурах
- 11.6.2 Em64t – NetBurst
- 11.6.3 Intel Core
- 11.6.4 Intel Atom
- 11.6.5 Nehalem
- 11.6.6 Xeon
- Глава 12. Графические микропроцессоры
- 12.1 Основные термины и определения
- 12.2 Технологии построения трёхмерного изображения
- 12.2.1 Технологии повышения реалистичности трехмерного изображения
- 12.3 Шейдерный процессор
- 12.4 Особенности современных графических процессоров
- Глава 13. Однокристальные микроконтроллеры
- 13.1 Общая характеристика микроконтроллеров
- 13.2 Микроконтроллеры семейства avr
- Почему именно avr?
- 13.3 Общие сведения об омк avr
- 13.4 Характеристики avr-микроконтроллеров
- Глава 14. Технология производства микропроцессоров
- 14.1 Особенности производства процессоров
- 14.2 Новые технологические решения
- 14.3 Технология производства сверхбольших интегральных схем
- I. Выращивание кристалла кремния
- II. Создание проводящих областей
- III. Тестирование
- IV. Изготовление корпуса
- V. Доставка
- 14.4 Перспективы производства сбис
- Англо-русский словарь терминов и аббревиатур
- Библиографический список
- Интернет-ссылки
- 350072. Краснодар, ул. Московская, 2, кор. А.