ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 638
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
АРХИТЕКТУРЫ, ХАРАКТЕРИСТИКИ, КЛАССИФИКАЦИЯ ЭВМ
3. ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ
4. ПРИНЦИПЫ ОРГАНИЗАЦИИ ПОДСИСТЕМЫ ПАМЯТИ ЭВМ И ВС
ОРГАНИЗАЦИЯ СИСТЕМНОГО ИНТЕРФЕЙСА И ВВОДА/ВЫВОДА ИНФОРМАЦИИ
МНОГОПРОЦЕССОРНЫЕ И МНОГОМАШИННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
Расширения MIC, SGX
В 2015 г. прошла презентация новой микроархитектуры процессо- ров Intel Skylake с техпроцессом 14 нм. В презентации прозвучали до- статочно любопытные откровения о том, что построенные на Intel Sky- lake серверные и клиентские процессоры могут серьезно различаться по своей конфигурации даже на уровне микроархитектуры. Один пример такого отличия уже хорошо известен – серверные Skylake получили поддержку расширения системы команд MIC (AVX-512), которое в остальных процессорах не используется.
Расширение SIMD инструкций MIC (Many Integrated Core Architec- ture) использует шестнадцать 512-битных регистров для выполнения векторных операций над целочисленными данными и данными с пла- вающей запятой одинароной и двойной точности.
Нововведения в системе команд не миновали и клиентские процес- соры. Так, в них появились новые инструкции семейства Intel SGX (Software Guard Extension). Входящие в этот набор команды позволяют приложению создать для своего исполнения изолированную и защи- щённую среду в памяти, доступ к которой будет невозможен ни для ка- ких иных процессов и устройств. Таким образом, приложение, опери- рующее критически важной информацией, сможет защитить свой код и данные от каких-либо программных и аппаратных атак и вторжений, что может поднять безопасность платформы x86 на новый уровень. Intel отдельно подчеркивает, что благодаря SGX можно создавать и полно- стью защищенный программный код, который невозможно отслеживать с помощью аппаратных отладчиков ITP-класса.
Обобщенный формат команд х86
Базовый набор команд 32-разрядного интеловского процессора обеспечивает выполнение операций над операндами, которые находятся в регистре, памяти или непосредственно в команде. В набор входят без-
адресные, одно-, двух- и трехадресные команды. Процессор реализует следующие шесть типов двухадресных команд: регистр – регистр; па- мять – регистр; непосредственный операнд – регистр; регистр – память; память – память; непосредственный операнд – память.
Операнды могут содержать 8, 16 или 32 разряда. Для реализации различных типов команд определены форматы, задающие порядок раз- мещения информации о выполняемой операции и способах выбора опе- рандов.
Обобщенный вид формата команды показан на рис. 2.20. Он до- пускает наличие следующих полей: кода операции (1 или 2 байта); бай- тов адресации (0, 1 или 2 байта); байтов смещения (0, 1, 2 или 4 байта);
байтов непосредственных данных – операндов (0, 1, 2 или 4 байта).
Команды содержат от 1 до 12 байт. Проведенные оценки показы- вают, что в среднем длина команды составляет 4–5 байт.
Рассмотрим назначение основных полей кода команды (рис. 2.25). Код операции (КОП) определяет тип выполняемой операции, а также в некоторых командах в первом байте может содержаться бит W, зада- ющий разрядность операндов:
W = 0 – операция с байтами;
W = 1 – операция со словами (16 или 32 разряда).
КОП | Байты адресации | Смещение | Операнд | |
MOD R/M | SIB | |||
1 или 2 байта | 0 или 1 байт | 0 или 1 байт | 0, 1, 2 или 4 байта | 0, 1, 2 или 4 байта |
Рис. 2.25. Общий формат команд
В ряде команд первый байт КОП содержит поля reg или sreg, опре- деляющие адреса используемых регистров. Трехбитовое поле reg задает выбираемый регистр в соответствии с разрядностью обрабатываемых
операндов. Поле sreg (двух или трехбитовое) определяет адрес сегмент- ных регистров.
Байт адресации MОD R/M содержит три поля (рис. 2.26). Поля MOD и R/M задают адрес одного из операндов, который может хра- ниться в регистре или ячейке памяти. Кодировка этих полей определяет выбираемый способ адресации.
7 6 5 3 2 0 7 6 5 3 2 0
MOD R/M SIB
Рис. 2.26. Форматы байтов MOD R/M и SIB
В одноадресных командах поле REG/КОП содержит дополнитель- ные биты кода операции. В двухадресных командах поле REG содержит адрес регистра, в котором хранится второй из операндов. Тип команды (одно- или двухадресная) определяется первым битом КОП. Поле MOD указывает, какой разрядности смещение используется для формирова- ния адреса. Если оно имеет значение 00 (при некоторых значениях R/M) или 01, 10, то используется 8-, 16- или 32-разрядное смещение. Это смещение задается соответствующими байтами в коде команды, кото- рые располагаются после байтов адресации.
Для реализации некоторых способов относительной адресации ис- пользуется байт SIB. Он содержит 3-битовые поля INDEX и BASE, определяющие выбор регистров, используемых в качестве индексного и базового регистров, и поле SS, задающее масштабный коэффициент для модификации значения индекса.
При выполнении операций с непосредственной адресацией один из операндов задается в последних байтах команды (рис. 2.25). В этом слу- чае КОП ряда команд содержит бит S, определяющий способ использо- вания непосредственно задаваемых данных.
Способы адресации
Интеловский 32-разрядный процессор реализует сегментную орга- низацию оперативной памяти, при которой физический адрес ячейки памяти формируется путем сложения базового адреса сегмента и отно- сительного адреса ячейки внутри сегмента.
Базовый адрес определяется содержимым 16-разрядного сегмент- ного регистра и зависит от режима работы процессора. Если он работает в режиме обработки 16-разрядных данных (режим реальных адресов), то 20-разрядный базовый адрес формируется путем сдвига содержимого сегментного регистра на 4 разряда влево. Если процессор работает в режиме обработки 32-разрядных данных (защищенный режим), то 32-разрядный базовый адрес содержится в дескрипторе, выбор которого из таблицы дескрипторов осуществляется с помощью селектора – со- держимого соответствующего сегментного регистра.
В качестве относительного адреса используется содержимое реги- стров общего назначения или эффективный адрес (ЕА), который фор-
мируется в соответствии с заданным способом адресации. ЕА является 16- или 32-разрядным и формируется в зависимости от значения полей MOD и R/M и содержимого байта SIB (для 32-разрядных адресов). В общем случае ЕА образуется путем арифметического сложения трех компонентов:
-
содержимого базового регистра; -
содержимого индексного регистра; -
8-, 16-, 32-разрядного смещения, заданного в одном, двух или че- тырех байтах команды.
В зависимости от значений полей MOD и R/M для формирования ЕА используются все или часть
этих слагаемых.
В процессоре осуществляются следующие способы адресации опе- рандов:
-
непосредственная адресация; -
регистровая адресация; -
косвенно-регистровая адресация; -
прямая адресация; -
базовая адресация; -
индексная адресация; -
базово-индексная адресация; -
базово-индексная адресация со смещением.
В современных микропроцессорах Intel Core i5, i7 базовый набор команд и используемые способы адресации операндов практически полностью совпадают с набором команд и способов адресации в преды- дущих моделях – Core 2 Duo, Pentium 4. Процессоры обеспечивают ре- альный и защищенный режимы работы, реализуют сегментную и стра- ничную организации памяти. Таким образом, пользователь имеет дело с хорошо знакомым набором регистров и способов адресации, может работать с базовой системой команд и известными вариантами реализа- ции прерываний и исключений, которые характерны для всех моделей семейств Intel Core и Pentium.