ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 626
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
АРХИТЕКТУРЫ, ХАРАКТЕРИСТИКИ, КЛАССИФИКАЦИЯ ЭВМ
3. ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ
4. ПРИНЦИПЫ ОРГАНИЗАЦИИ ПОДСИСТЕМЫ ПАМЯТИ ЭВМ И ВС
ОРГАНИЗАЦИЯ СИСТЕМНОГО ИНТЕРФЕЙСА И ВВОДА/ВЫВОДА ИНФОРМАЦИИ
МНОГОПРОЦЕССОРНЫЕ И МНОГОМАШИННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
Регистры сегментов Регистры дескрипторов 15 0
CS
SS DS ES FS GS
Рис. 3.3. Регистры сегментов и соответствующие регистры дескрипторов
Когда в регистр сегмента загружается новое значение селектора, содержимое соответствующего регистра дескриптора автоматически корректируется. В реальном режиме базовый адрес сегмента получается путем сдвига значения селектора на 4 разряда влево (20 разрядов), мак- симальный размер и атрибуты сегмента в реальном режиме имеют фик- сированные значения.
Указатель команд (рис. 3.4) представляет собой 32-разрядный ре- гистр с именем EIP, содержимое которого используется в качестве сме- щения при определении адреса следующей выполняемой команды. Смещение задается относительно базового адреса сегмента команд CS. Младшие 16 бит (0–15) содержат 16-разрядный указатель команд с име- нем IP, который используется при 16-разрядной адресации.
31 15 0
EIP
Рис. 3.4. Структура регистра указателя команд
Указатель команд непосредственно программисту недоступен. Его содержимое изменяется при выполнении команд передачи управления и прерываний.
Регистр флагов является 32-разрядным, имеет имя EFLAGS. Его разряды содержат признаки результата выполнения команды, управля- ют обработкой прерываний, последовательностью вызываемых задач, вводом/выводом и рядом других процедур.
Набор регистров, входящих в блок FPU, изображен на рис. 3.5.
При работе FPU 80-разрядные регистры ST0–ST7 образуют коль- цевой стек, в котором хранятся числа с плавающей точкой, представ- ленные в формате с расширенной точностью.
Регистры данных Регистр тегов
79 78 64 63 0 1 0
Рис. 3.5. Регистры блока FPU
Регистр тегов FPU содержит 16-разрядное слово, включающее во- семь двухбитовых тегов. Каждый тег (признак) характеризует содержи- мое одного из регистров данных.
Тег определяет, является ли регистр пустым (незаполненным) – код 11, или в него введено конечное число – 00 (достоверное значение), или нуль – 01, неопределенное значение (бесконечность) – 10 (нет числа
и неподдерживаемый формат). Слово тегов позволяет оптимизировать функционирование FPU посредством идентификации пустых и непу- стых регистров данных, проверить содержимое регистра без сложного декодирования хранящихся в нем данных.
При реализации ММХ-команд регистры данных FPU используются как 64-разрядные регистры ММ0–ММ7 (см. рис. 3.5), где могут хра- ниться несколько целочисленных операндов (восемь 8-разрядных, че- тыре 16-разрядных, два 32-разрядных или один 64-разрядный), над ко- торыми одновременно выполняется поступившая в процессор команда.
Векторные регистры SSE расширений
Потоковые команды расширений SSE используют восемь 128- разрядных регистров ХММ0–ХММ7, в которых могут храниться не- сколько вещественных или целочисленных операндов.
Системные регистры управляют функционированием микропро- цессора в целом и режимами работы отдельных внутренних блоков: процессора с плавающей точкой, кэш-памятью, диспетчера памяти. Эти регистры доступны только в защищенном режиме для программ.
Набор системных регистров включает регистры управления, реги- стры системных адресов и сегментов.
Регистры управления 32-разрядные, служат для фиксации общего состояния процессора. Эти регистры вместе с регистрами системных адресов хранят информацию о состоянии процессора, которое затраги- вает все задачи.
Набор программно-доступных регистров поддерживает отладку программ и тестирования внутренних блоков процессора. Встроенный алгоритм самотестирования (BIST) осуществляет поиск ошибки в мик- рокоде и в больших логических матрицах
, а также тестирование кэш- памяти команд и данных, буферов ассоциативной трансляции (TLB) и устройств постоянной памяти. Внутренние счетчики контролируют ра- боту процессора и проводят подсчет событий. Введена новая функция – мониторинг термического состояния системной платы.
В современных процессорах используются блоки регистров заме- щения (регистровые файлы) для целочисленных, вещественных и век- торных данных. Для любого указанного в команде логического регистра (программно можно обращаться в х86 только к 8-ми регистрам общего назначения GPR, 8-ми регистрам с плавающей точкой ST или 8-ми ММХ / ХММ-регистрам) выделяется один из физических регистров со- ответствующего блока регистров замещения, содержащего, например, 128 регистров. Эта процедура (переименование регистров) позволяет увеличить количество используемых регистров процессора, а также позволяет выполнять команды, в которых задействованы одни и те же ло- гические регистры, одновременно или с изменением их последовательно- сти.
В процессорах x86-64 (AMD64), Intel64 архитектур (рис. 3.6) суще- ствующие в х86 регистры общего назначения (GPR) расширены с 32 до 64 бит (RAX, RBX, RCX, RDX, RBP, RSP, RSI, RDI) и к ним добавлены еще 8 новых 64-разрядных регистров (R8–R15). Также 8 новых 128- битных регистров (XMM8–XMM15) добавлено в блок SSE, что обеспе- чивает поддержку SSE2.
В блоке FPU используются существующие в х87 регистры данных ST0–ST7 (80-разрядные) и 64-разрядные мультимедийные регистры ММ0–ММ7, объединенные в общее пространство с регистрами ST.
Регистр указателя команд (RIP) и регистр флагов (RFLAGS) также расширены до 64 разрядов.
CS
SS DS ES FS GS
Рис. 3.3. Регистры сегментов и соответствующие регистры дескрипторов
Когда в регистр сегмента загружается новое значение селектора, содержимое соответствующего регистра дескриптора автоматически корректируется. В реальном режиме базовый адрес сегмента получается путем сдвига значения селектора на 4 разряда влево (20 разрядов), мак- симальный размер и атрибуты сегмента в реальном режиме имеют фик- сированные значения.
Указатель команд
Указатель команд (рис. 3.4) представляет собой 32-разрядный ре- гистр с именем EIP, содержимое которого используется в качестве сме- щения при определении адреса следующей выполняемой команды. Смещение задается относительно базового адреса сегмента команд CS. Младшие 16 бит (0–15) содержат 16-разрядный указатель команд с име- нем IP, который используется при 16-разрядной адресации.
31 15 0
EIP
Рис. 3.4. Структура регистра указателя команд
Указатель команд непосредственно программисту недоступен. Его содержимое изменяется при выполнении команд передачи управления и прерываний.
Регистр флагов
Регистр флагов является 32-разрядным, имеет имя EFLAGS. Его разряды содержат признаки результата выполнения команды, управля- ют обработкой прерываний, последовательностью вызываемых задач, вводом/выводом и рядом других процедур.
Регистры процессора обработки чисел с плавающей точкой
Набор регистров, входящих в блок FPU, изображен на рис. 3.5.
При работе FPU 80-разрядные регистры ST0–ST7 образуют коль- цевой стек, в котором хранятся числа с плавающей точкой, представ- ленные в формате с расширенной точностью.
Регистры данных Регистр тегов
Знак | Порядок | Мантисса |
79 78 64 63 0 1 0
ST0 | | | MM0 | | Тег(0) |
ST1 | | | MM1 | Тег(1) | |
ST2 | | | MM2 | Тег(2) | |
ST3 | | | MM3 | Тег(3) | |
ST4 | | | MM4 | Тег(4) | |
ST5 | | | MM5 | Тег(5) | |
ST6 | | | MM6 | Тег(6) | |
ST7 | | | MM7 | Тег(7) |
15 0 | | 47 0 |
Регистр управления | | Указатель команд |
Регистр состояния | | Указатель данных |
Рис. 3.5. Регистры блока FPU
Регистр тегов FPU содержит 16-разрядное слово, включающее во- семь двухбитовых тегов. Каждый тег (признак) характеризует содержи- мое одного из регистров данных.
Тег определяет, является ли регистр пустым (незаполненным) – код 11, или в него введено конечное число – 00 (достоверное значение), или нуль – 01, неопределенное значение (бесконечность) – 10 (нет числа
и неподдерживаемый формат). Слово тегов позволяет оптимизировать функционирование FPU посредством идентификации пустых и непу- стых регистров данных, проверить содержимое регистра без сложного декодирования хранящихся в нем данных.
Регистры ММХ-технологии
При реализации ММХ-команд регистры данных FPU используются как 64-разрядные регистры ММ0–ММ7 (см. рис. 3.5), где могут хра- ниться несколько целочисленных операндов (восемь 8-разрядных, че- тыре 16-разрядных, два 32-разрядных или один 64-разрядный), над ко- торыми одновременно выполняется поступившая в процессор команда.
Векторные регистры SSE расширений
Потоковые команды расширений SSE используют восемь 128- разрядных регистров ХММ0–ХММ7, в которых могут храниться не- сколько вещественных или целочисленных операндов.
Системные регистры
Системные регистры управляют функционированием микропро- цессора в целом и режимами работы отдельных внутренних блоков: процессора с плавающей точкой, кэш-памятью, диспетчера памяти. Эти регистры доступны только в защищенном режиме для программ.
Набор системных регистров включает регистры управления, реги- стры системных адресов и сегментов.
Регистры управления 32-разрядные, служат для фиксации общего состояния процессора. Эти регистры вместе с регистрами системных адресов хранят информацию о состоянии процессора, которое затраги- вает все задачи.
Регистры отладки и тестирования
Набор программно-доступных регистров поддерживает отладку программ и тестирования внутренних блоков процессора. Встроенный алгоритм самотестирования (BIST) осуществляет поиск ошибки в мик- рокоде и в больших логических матрицах
, а также тестирование кэш- памяти команд и данных, буферов ассоциативной трансляции (TLB) и устройств постоянной памяти. Внутренние счетчики контролируют ра- боту процессора и проводят подсчет событий. Введена новая функция – мониторинг термического состояния системной платы.
Переименование регистров
В современных процессорах используются блоки регистров заме- щения (регистровые файлы) для целочисленных, вещественных и век- торных данных. Для любого указанного в команде логического регистра (программно можно обращаться в х86 только к 8-ми регистрам общего назначения GPR, 8-ми регистрам с плавающей точкой ST или 8-ми ММХ / ХММ-регистрам) выделяется один из физических регистров со- ответствующего блока регистров замещения, содержащего, например, 128 регистров. Эта процедура (переименование регистров) позволяет увеличить количество используемых регистров процессора, а также позволяет выполнять команды, в которых задействованы одни и те же ло- гические регистры, одновременно или с изменением их последовательно- сти.
-
Регистровые структуры процессоров AMD64 (Intel64)
В процессорах x86-64 (AMD64), Intel64 архитектур (рис. 3.6) суще- ствующие в х86 регистры общего назначения (GPR) расширены с 32 до 64 бит (RAX, RBX, RCX, RDX, RBP, RSP, RSI, RDI) и к ним добавлены еще 8 новых 64-разрядных регистров (R8–R15). Также 8 новых 128- битных регистров (XMM8–XMM15) добавлено в блок SSE, что обеспе- чивает поддержку SSE2.
В блоке FPU используются существующие в х87 регистры данных ST0–ST7 (80-разрядные) и 64-разрядные мультимедийные регистры ММ0–ММ7, объединенные в общее пространство с регистрами ST.
Регистр указателя команд (RIP) и регистр флагов (RFLAGS) также расширены до 64 разрядов.