ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 641
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
АРХИТЕКТУРЫ, ХАРАКТЕРИСТИКИ, КЛАССИФИКАЦИЯ ЭВМ
3. ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ
4. ПРИНЦИПЫ ОРГАНИЗАЦИИ ПОДСИСТЕМЫ ПАМЯТИ ЭВМ И ВС
ОРГАНИЗАЦИЯ СИСТЕМНОГО ИНТЕРФЕЙСА И ВВОДА/ВЫВОДА ИНФОРМАЦИИ
МНОГОПРОЦЕССОРНЫЕ И МНОГОМАШИННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
Основные режимы работы х86-64 архитектуры
Как было сказано выше, корпорацией AMD было разработано 64-разрядное расширение х86-архитектуры, которое получило название
«х86-64», т.е. 64-битная х86 (по аналогии с х86-32). Позднее х86-64 архитектура была переименована в AMD64. В отличие от 64-битной ар- хитектуры IA-64, примененной в процессорах Intel Itanium, х86-64 бази- руется на существующей архитектуре х86-32. Следовательно, процес-
сор, построенный на основе х86-64, может безо всяких проблем испол- нять существующие 32-битные приложения, которых написано на те- кущий момент просто немерено (и в них вложены очень большие день- ги). Причем эти приложения могут выполняться без каких бы то ни бы- ло потерь в производительности в отличие от того же Intel Itanium, где х86-32 систему команд приходится эмулировать.
В процессорах данной архитектуры существующие в х86 регистры общего назначения расширены с 32 до 64 бит и к ним добавлены еще 8 новых 64-разрядных регистров.
Для реализации одновременной работы как с 32-битным, так и с 64-битным кодом и регистрами архитектура AMD64 предполагает под- держку процессорами двух режимов: Long Mode («длинный» режим), имеющего два подрежима – 64-битный режим и Compatibility mode (ре- жим совместимости), и Legacy Mode (наследственный режим). Что они собой представляют, можно понять из табл. 2.2.
Таблица 2.2 Режимы работы процессора х86-64 архитектуры
Режим | ОС | Необх. переком- пиляция приложе- ний | Характеристики | ||||
Длина адреса | Длина операнда | Дополни- тельные регистры | Размер РОН | ||||
Long Mode | 64-битный | 64- битная | ДА | 64 | 64 | ДА | 64 |
Compatibility mode | НЕТ | 32 | 32 | НЕТ | 32 | ||
Legacy Mode | 32-бит. | НЕТ | 32 | 32 | НЕТ | 32 | |
16-бит. | 16 | 16 |
Итак, в 64-битном режиме обеспечивается поддержка:
-
64-битных виртуальных адресов; -
8-ми новых и расширенных 64-битных регистров общего назначения; -
64-битного указателя инструкций RIP; -
сплошного адресного пространства с единым пространством для инструкций, данных и стека. -
64-битных арифметических и логических операций над целыми числами.
Данный режим снимает ограничение в размерности адресного про- странства оперативной памяти, которое в современных 32-разрядных х86 системах составляет 232 = 4 Гбайт.
Для адресации новых регистров в команды введены так называе- мые «префиксы расширения регистра», кодирование которых осу-
ществляется кодами, использующимися для команд INC <регистр> и DEC <регистр> в 32- и 16-битных режимах. Команды INC и DEC в 64- битном режиме должны кодироваться в более общей, двухбайтовой форме.
Compatibility mode обеспечивает бинарную совместимость с су- ществующими 16- и 32-битными приложениями при работе с 64-битной операционной системой. Этот режим разрешается ОС по принципу от- дельных кодовых сегментов. Однако, в отличие от 64-битного режима, сегментация функционирует обычным образом, используя семантику защищенного режима. С точки зрения выполняемого приложения про- цессор выглядит как обычный х86 центральный процессор (CPU) в за- щищенном режиме. С точки зрения операционной системы трансляция адресов, работа с прерываниями и исключениями, а также системные структуры данных используют механизмы 64-битного Long Mode.
Наследственный режим (Legacy Mode) обеспечивает бинарную совместимость с 16- и 32-битными операционными системами; полную совместимость с существующими 32-битными реализациями х86 архи- тектуры, включающей в себя поддержку сегментированной памяти и 32-битных регистров общего
назначения и указателя инструкций; процессор уподобляется обычному 32-разрядному х86 CPU. В этом ре- жиме не задействуется ни одна из 64-битных функций.
Нельзя не отметить, что для того, чтобы пользователи смогли вос- пользоваться преимуществами 64-битного режима, необходим компиля- тор, который разработан и поставляется вместе с микропроцессором.
Данная архитектура была реализована в процессорах AMD Athlon 64, Opteron.
Особенности архитектуры Intel 64
Архитектура Intel 64 (технология EM64T) в сочетании с соответству- ющим программным обеспечением поддерживает работу 64-разрядных приложений на серверах, рабочих станциях, настольных ПК и ноутбу- ках. Она, как и х86-64 от AMD, реализует 64-разрядное расширение ре- гистров, те же режимы работы процессора, ту же программную совме- стимость с 16- и 32-битными приложениями, а главное – эта технология расширяет адресное пространство виртуальной и физической памяти.
Архитектура Intel 64 поддерживает следующие возможности:
-
64-разрядное сплошное пространство виртуальных адресов; -
64-разрядные указатели; -
64-разрядные регистры общего назначения; -
64-разрядную поддержку вычислений с целыми числами; -
до 1 Тбайт адресного пространства платформы.
-
Форматы команд и способы адресации в RISC-процессорах
Рассмотрим форматы команд на примере процессоров архитектуры Power PC, разработанной корпорациями IBM, Apple и Motorola.
Все команды имеют длину 32 разряда и могут быть трех форматов:
-
1-й формат – КОП (6); RS(5); Rt(5); I (16), где КОП(6) – поле ко- да операции, содержащее 6 разрядов; RS(5), Rt(5) – поля адресов реги- стров (по 5 разрядов); I(16) – 16-разрядный непосредственный операнд; -
2-й формат – КОП (6); RS(5); Rt(5); Rk(5); -
3-й формат отличается от 2-го формата наличием дополнитель- ного 32-разрядного командного слова, в котором для различных кодов операций могут находиться 32-разрядные непосредственный операнд, смещение или адрес перехода.
Архитектура Power PC определяет операции типа регистр – ре-гистр для всех команд обработки. Источником данных являются встро- енные регистры или непосредственные операнды. Трехрегистровый формат команд позволяет отличать регистр результатов от двух реги- стров – источников, позволяя использовать их в других командах. Дан- ные пересылаются между памятью и регистрами только специальными командами загрузки/сохранения. Адреса памяти формируются с исполь- зованием базового регистра и смещения.
-
Особенности системы команд IA-64
Шестидесятичетырехразрядная интеловская архитектура (IA-64), как было сказано выше, реализует EPIC-концепцию, разработанную совместно фирмами Intel и HP; IA-64 не является 64-разрядным расши- рением 32-разрядной архитектуры х86 компании Intel или переработкой 64-разрядной архитектуры РА-RISC компании НР; IA-64 представляет собой нечто абсолютно новое – передовую архитектуру, использующую длинные слова команд, предикаты команд, устранение ветвлений, пред- варительную загрузку данных и другие ухищрения для того, чтобы «из- влечь больше параллелизма» из кода программ.
Команды IA-64 можно подразделить на команды работы со стеком регистров (например, alloc); целочисленные команды; команды сравне-
ния и работы с предикатами; команды доступа в память; команды пере- хода; мультимедийные команды; команды пересылок между регистра-
ми; команды выполнения операций над строками и подсчет числа еди- ниц в слове; команды работы с плавающей запятой.
Целочисленные команды IA-64 включают арифметические опера- ции (add, sub и др.), операции над битами и сдвиги, а также 32-разрядные операции.
Отметим, что команда умножения целых чисел в регистрах общего назначения (GR) отсутствует; для перемножения необходима пересылка целых в регистры с плавающей запятой (FR) и применение операции умножения, выполняемой в функциональном исполнительном устрой- стве вещественного типа. Некоторые специалисты считают это «наиме- нее удачной» чертой системы команд IA-64.
Команды сравнения и работы с предикатами – это одна из принци- пиально новых особенностей IA-64 по сравнению с RISC-архитектурой. Приведем несколько типичных примеров команд этой группы. Команда cmp сравнивает два регистра GR (или регистр GR и литерал) на одно из 10 возможных условий (больше, меньше или равно и т.п.). Команда tbit тестирует заданный бит GR. Команда fcmp сравнивает два числа с пла- вающей запятой. Однако результатом сравнения является не единствен- ный код условия, что типично для обычных процессоров. Логический результат сравнения (1 – истина, 0 – ложь) записывается обычно в пару предикатных регистров (во второй пишется отрицание первого). Эти значения предикатных регистров (PR) используются затем не только в командах условного перехода, как в обычных микропроцессорах. По- чти все команды IA-64 выполнимы «под предикатом», т.е. могут вы- полняться или нет в зависимости от значения указанного в команде PR-регистра. Это позволяет во многих случаях избежать применения условных переходов, которые, как известно, отрицательно сказываются на производительности процессоров. Вместо этого процессор с архитек- турой IA-64, имеющий большое число ресурсов (в частности, регистров