Микроархитектура Intel Itanium 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Микроархитектура Intel Itanium



В чем заключается революционность Itanium?

Сама Intel по праву называет Itanium «самой значительной новой разработкой Intel в области микропроцессорной архитектуры с момента выпуска процессора i386 в 1985 году». Революционность состоит в отказе от давно морально устаревшей системы команд x86 (она в ходу с 1978 года) и в радикальном переходе к новой архитектуре, свободной от «пережитков прошлого». Революционной в Itanium является не только 64-разрядность (у 32-разрядных процессоров теоретическое ограничение объема адресуемой оперативной памяти составляет 4 Гбайт, а у 64-битных — несколько терабайт), но и явный параллелизм EPIC (Explicity Parallel Instruction Computing). По сути, архитектура IA-64 (именно так называется технология, по которой проектируются процессоры Itanium, MсKinley и последующие) впитала в себя все лучшие идеи:

· VLIW (Very Long Instruction Word, архитектура с длинными командами),

· устранение ветвлений,

· улучшенный механизм предварительной подачи данных и пр.

Среди характеристик первого процессора архитектуры IA-64 можно также отметить увеличенное адресное пространство, обнаружение и исправление ошибок. В принципе, о силиконовой составляющей процессора Itanium давно уже известно многое. Думаю, что к моменту выхода эта информация будет разниться только в деталях: станет известна точная частота (Intel может, к примеру, выдать не обещанные 800, а все 1000 МГц) и будет определена ценовая политика. Картридж Itanium предназначен для установки в Slot M — комбинированный процессорный разъем, сочетающий достоинства как Socket, так и Slot. Сигнальная матрично-штырьковая часть разведена с силовой частью, по которой подается питание, с тем чтобы исключить помехи. На обратной стороне процессорного картриджа расположена массивная теплоотводная пластина, позволяющая равномерно распределять по всей поверхности процессора ватты, излучаемые в воздух. К тому же сильно нагревающиеся блоки процессора тоже размещены равномерно. Согласно предварительным данным Itanium поддерживает частоту шины памяти 266 МГц. Архитектура Itanium подразумевает использование 2 или 4 Мбайт кэш-памяти третьего уровня. Статическая кэш-память новой конструкции размещена на одной плате с ядром процессора и работает с ним на одинаковой тактовой частоте.

Микроархитектура Intel IA-64

Это модификация Intel IA-32 под 64-разрядные процессоры.

Программная модель IA-32

Любая выполняющаяся программа получает в свое распоряжение определенный набор ресурсов процессора. Эти ресурсы необходимы для обработки и хранения в памяти команд и данных программы, а также информации о текущем состоянии программы и процессора. Программную модель процессора в архитектуре IA-32 процессоров Intel составляет следующий набор ресурсов:

· пространство адресуемой памяти до 232 - 1 байт (4 Гбайт), для Pentium III/IV — до 236 - 1 байт (64 Гбайт);

· 8 регистров целочисленного устройства для хранения данных общего назначения;

· 6 сегментных регистров;

· набор регистров состояния и управления;

· 8 регистров устройства вычислений с плавающей точкой (сопроцессора);

· 8 регистров целочисленного MMX-расширения, отображенных на регистры сопроцессора (впервые появились в архитектуре процессора Pentium MMX);

· 8 регистров XMM-расширения с плавающей точкой (впервые появились в архитектуре процессора Pentium III);

· программный стек — специальная информационная структура, работа с которой предусмотрена на уровне машинных команд (более подробно она будет обсуждена позже).

Это основной набор ресурсов. Кроме того, к ресурсам, поддерживаемым архитектурой IA-32, необходимо отнести порты ввода-вывода, счетчики мониторинга производительности.

1.3.1. Адресация памяти в IA_32

В семействе процессоров IA-32 выбор метода обращения к памяти определяется режимом работы процессора. Возможны 3 режима:

· Реальный – в этом режиме адрес формируется аналогично i8086, т.е. при формировании адреса используются 16-ти разрядные смещения и 16-ти разрядные сегментные адреса, которые хранятся в сегментных регистрах. При их сложении по приведенной выше схеме получаются 20-ти разрядные физические адреса, поэтому в этом режиме доступен только первый мегабайт оперативной памяти. Реальный режим работы процессора используется в операционной системе MS DOS, которая устарела. В настоящее время режим практически не используется.

· Защищенный – в этом режиме используется 32-х разрядная адресация, предусматривающая несколько вариантов защиты, откуда и появилось название этого режима;

· Виртуальный – в этом режиме процессор моделирует псевдоодновременную работу нескольких виртуальных процессоров i8086. В настоящее время режим устарел и практически не используется.

· Системного управления (System Management Mode - SMM) — это новый режим работы процессора, впервые появившийся в процессоре Pentium. Он обеспечивает операционную систему механизмом для выполнения машинно-зависимых функций, таких как перевод компьютера в режим пониженного энергопотребления или выполнения действий по защите системы. Для перехода в данный режим процессор должен получить специальный сигнал SMI от усовершенствованного программируемого контроллера прерываний (Advanced Programmable Interrupt Controller - APIC), при этом сохраняется состояние вычислительной среды процессора. Функционирование процессора в этом режиме подобно его работе в режиме реальных адресов. Возврат из этого режима производится специальной командой процессора.

Требование сохранить возможность выполнения программ, использующих 16-ти разрядную адресацию, привело к тому, что схема 32-х разрядной адресации является многокомпонентной.

В этом режиме по-прежнему используется сегментная организация памяти, но размер сегмента уже не ограничивается 64 Кб, а теоретически может достигать 4 Гб. 32-х разрядный адрес базы сегмента хранится не в виде сегментного адреса в сегментном регистре, как при 16-ти разрядной адресации, а полностью в специальных внутренних регистрах процессора – дескрипторах. Номер дескриптора заносится в 14 бит сегментного регистра, который в этом режиме называется селектором. Один бит селектора из этих 14-ти отвечает за выбор таблицы локальных или глобальных дескрипторов.

Таблица локальных дескрипторов содержит дескрипторы сегментов приложения, а таблица глобальных – дескрипторы сегментов программ операционной системы. Оставшиеся два бита селектора содержат код уровня привилегий сегмента, который проверяется при обращениях из других программ. Таким образом, реализуется защита сегментов.

14 бит селектора и 32 бита эффективного или исполнительного адреса, формируемого на основе машинной команды, объединяются в 46-ти разрядный виртуальный адрес.

Сумма 32-х разрядного базового адреса сегмента и 32-х разрядного эффективного адреса образует 32-х разрядный линейный адрес. Физический же адрес определяется по таблице страниц на основе линейного.

Соответственно различают несколько адресных пространств:

· виртуальное – 64 Тб;

· линейное – 4 Гб;

· физическое – 4 Гб.

При создании приложений Windows в основном используется модель памяти Flat «плоская». Эта модель подразумевает, что каждому приложению отводится линейное адресное пространство объемом 2 Гб, а остальные 2 Гб предоставляются операционной системе. Базовый адрес в дескрипторах всех сегментов приложения устанавливается равным 0. В езультате все сегменты приложения «перекрываются». Программа, данные и стек размещаются в разных местах памяти за счет азличных смещений. Разделение памяти между приложениями осуществляется операционной системой, которая размещает страницы приложений с одинаковыми линейными адресами в разных местах оперативной памяти. Следовательно и защита сегментов при этой модели не работает.

Чтобы предотвратить взаимное влияние выполняющихся программ друг на друга им выделяются изолированные участки памяти (т.е. код и данные программ находятся во взаимно несмежных сегментах). В защищенном режиме работают такие ОС, как MS Windows и Linux.

В типичной программе, написанной для защищенного режима есть 3 сегмента: кода, данных и стека, информация о которых хранится в трех перечисленных ниже сегментных регистрах.

· В регистре CS хранится указатель на дескриптор сегмента кода программы.

· В регистре DS хранится указатель на дескриптор сегмента данных программы.

· В регистре SS хранится указатель на дескриптор сегмента стека программы.

Наборы регистров

Регистрами называются области высокоскоростной памяти, расположенные внутри процессора в непосредственной близости от его исполнительного ядра. Доступ к ним осуществляется несравнимо быстрее, чем к ячейкам оперативной памяти. Соответственно, машинные команды с операндами в регистрах выполняются максимально быстро, поэтому в программах на языке ассемблера регистры используются очень интенсивно. К сожалению, архитектура IA-32 предоставляет в распоряжение программиста не слишком много регистров, поэтому они являются критически важным ресурсом и за их содержимым приходится следить очень внимательно.

Большинство регистров имеют определенное функциональное назначение. С точки зрения программиста их можно разделить на две большие группы.

Первую группу образуют пользовательские регистры, к которым относятся:

· Регистры общего назначения (РОН) - EAX/AX/AH/AL, EBX/BX/BH/BL, EDX/DX/DH/DL, ЕСХ/CX/CH/CL, ЕВР/ВР, ESI/SI, EDI/DI, ESP/SP предназначены для хранения данных и адресов, программист может их использовать (с определенными ограничениями) для реализации своих алгоритмов.

· Cегментные регистры - CS, DS, SS, ES, FS, GS используются для хранения адресов сегментов в памяти.

· Регистры сопроцессора - ST(0), ST(1), ST(2), ST(3), ST(4), ST(5), ST(6), ST(7) предназначены для написания программ, использующих тип данных с плавающей точкой.

· Целочисленные регистры MMX-расширения - ММХО, MMXl, MMX2, ММХЗ, ММХ4, ММХ5, ММХб, ММХ7;

· Регистры XMM-расширения с плавающей точкой - XMMO, XMM1, ХММ2, ХММЗ, ХММ4,ХММ5,ХММб,ХММ7;

· Регистры состояния и управления (регистр флагов Е FLAGS/FLAGS и регистр указатель команды EIP/IP) содержат информацию о состоянии процессора исполняемой программы и позволяют изменить это состояние.

Во вторую группу входят системные регистры, то есть регистры, предназначенные для поддержания различных режимов работы, сервисных функций, а также регистры, специфичные для определенной модели процессора. Перечислим системные регистры, поддерживаемые IA-32:

· Управляющие регистры – CR0...CR4. Они определяют режим работы процессора и характеристики текущей исполняемой задачи.

· Регистры управления памятью - GDTR, IDTR, LDTR и TR используются в защищенном режиме работы процессора для локализации управляющих структур этого режима.

· Отладочные регистры DR0...DR7 предназначены для мониторинга и управления различными аспектами отладки;

· Регистры типов областей памяти MTRR используются для аппаратного управления кэшированием в целях назначения соответствующих свойств областям памяти.

· Машинно-зависимые регистры MSR используются для управления процессором, контроля за его производительностью, получения информации обошибках.

Почему в обозначениях многих из регистров общего назначения присутствует наклонная разделительная черта? Это не разные регистры — это части одного большого 32-разрядного регистра, но их можно использовать в программе как отдельные объекты. Зачем так сделано? Чтобы обеспечить работоспособность программ, написанных для прежних 16-разрядных моделей процессоров фирмы Intel начиная с i8086.

Многие из приведенных регистров предназначены для работы с определенны ми вычислительными подсистемами процессора: сопроцессором, MMX-расширениями. Поэтому их целесообразно рассматривать в соответствующем контексте.

Так как первая часть учебника посвящена вопросам программирования целочисленной подсистемы процессора, то в данной главе описываются регистры, обеспечивающие ее функционирование. В дальнейшем при обсуждении новых вычислительных подсистем процессора будут рассмотрены и другие регистры из перечисленных ранее.

Целочисленный процессор

При работе в защищенном режиме процессоры семейства lA-32 могут адресовать до 4 Гбайт оперативной памяти. Такой диапазон адресов определяется разрядностью внутренних регистров процессора. Поскольку регистры 32-разрядные, в них могут храниться значения от 0 до 232 -1.

Регистрами называют участки высокоскоростной памяти, расположенные внутри ЦП и предназначенные для оперативного хранения данных и быстрого доступа к ним со стороны внутренних компонентов процессора. Например, при выполнении оптимизации циклов программы по скорости, переменные, к которым выполняется доступ внутри цикла, располагают в регистрах процессора, а не в памяти.

Структура основных программных регистров (Program execution registers) процессора семейства IA-32 и их названия, определенные специалистами фирмы Intel.

Существуют:

· 8 регистров общего назначения,

· регистр состояния процессора (или регистр флагов EFLAGS),

· регистр указателя команд (EIP).

· 6 сегментных регистров,

· Управляющие регистры



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 156; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.104.29 (0.025 с.)