assembler. Учебник для вузов_Юров В.И_2003 -637с (862834), страница 6
Текст из файла (страница 6)
Эта архитектура не является «закостенелым» образованием. В процессе эволюции процессоров Intel она постоянно изменяется и развивается. Каждый из процессоров вносил в IA-32 одно или несколько архитектурных новшеств. Несмотря на то, что датой рождения архитектуры IA-32 нужносчитать дату появления на свет процессора i80386, предыдущие модели процессоров также внесли существенный вклад в представление ее принципов и свойств.Если вернуться к материалу главы 1, то можно проследить за вкладом, которыйвнес каждый из процессоров Intel в ходе своей эволюции в формирование элементов архитектуры IA-32. Так, благодаря процессорам 18086/88 в IA-32 существуетсегментация памяти, i80286 ввел защищенный режим и т.
д.Архитектура IA-32В рамках архитектуры IA-32 существует и развивается ряд микроархитектур. Ранеебыло показано, что понятие архитектуры компьютера иерархично и что существуют общие и индивидуальные свойства архитектуры. В контексте обсуждения30Глава 2. Программно-аппаратная архитектура IA-32 процессоров Intelархитектуры процессоров Intel имеет смысл также позиционировать различныеих архитектурные свойства и принципы как общие и индивидуальные. К индивидуальным архитектурным свойствам и принципам можно отнести существующиев рамках различных микроархитектур (см.
далее). Что касается общих архитектурных свойств и принципов IA-32, то к ним относятся те, которые имеют место длявсех процессоров Intel или, по крайней мере, существуют вне рамок конкретноймикроархитектуры для большого числа моделей процессоров. Так как процессорв основном определяет логику работы компьютера, то и названия большинства общих архитектурных свойств и принципов IA-32 совпадают с названиями аналогичных свойств и принципов компьютера: номенклатура программно-доступныхрегистров; организация и способы адресации памяти; номенклатура режимов работы процессоров; организация и разрядность внешних интерфейсов ЭВМ; способы представления и форматы данных; набор и форматы машинных команд ЭВМ;порядок обработки прерываний.
Практически все эти общие архитектурные свойства и принципы составляют программную модель процессора, которая будет рассмотрена в дальнейшем.Варианты микроархитектуры процессоров IntelПонятие микроархитектуры впервые было определено Intel для процессоров семейства Pentium Pro. Его введение объяснялось необходимостью правильного позиционирования новых процессоров среди существующих. Внешняя программнаямодель (логическая) 32-разрядных процессоров изменялась только в сторону развития, в то время как их исполнительная (физическая) часть могла быть совершено разной.
Понятие микроархитектуры ориентировано на описание особенностейисполнительной части процессоров, то есть того, какими способами и какими средствами процессор выполняет обработку машинного кода (рис. 2.2). На сегодняшний день в рамках IA-32 существует две микроархитектуры процессоров Intel: P6и NetBurst.Уровень операционной системыУровень машинных командУровень микроархитектурыУровень аппаратурыРис. 2.2. Представление компьютера в виде уровнейМикроархитектура Р6Микроархитектуру Р6 поддерживают такие процессоры Intel, как Pentium Pro,Pentium II (Xeon), Celeron, Pentium III (Xeon). Эта микроархитектура является,по определению Intel, трехходовой (three-way) суперскалярной конвейерной архи-Архитектура 1А-3231тектурой.
Термин «трехходовая» означает поддержку технологий параллельноговычисления, позволяющих процессору одновременно (за один такт) обрабатыватьдо трех инструкций. Проблема оптимальной обработки потока машинных командявляется ключевой при разработке любого процессора. Поэтому для большей ясности необходимо показать эту проблему в развитии. В компьютере фон-неймановской архитектуры существуют две основные стадии исполнения команды —выборка очередной команды из памяти и собственно ее исполнение.
В первых процессорах Intel все блоки процессора работали последовательно, начиная с этапавыборки очередной команды из памяти и заканчивая этапом завершения ее обработки процессором. Напоминание об этом осталось в названии регистра IP/EIP —(Instruction Pointer — указатель инструкции). До появления процессоров Intelс конвейерной архитектурой данный регистр непосредственно указывал на очередную команду, подлежащую выполнению. Процессоры Intel относятся к группеCISC-процессоров, в которых для выполнения одной команды может требоватьсяот единиц до нескольких десятков процессорных тактов.
При такой обработке команд увеличение производительности может быть достигнуто только повышением частоты генерации машинных тактов. Простое увеличение частоты работы процессора не имеет смысла, так как есть физически обусловленная верхняя граница,до которой ее можно поднимать. По этому пути разработчики Intel шли до процессора i80386 включительно. В ходе исполнения команды есть и другое узкое место — выборка команды из памяти. Это затратная по времени операция.
Частичноерешение проблемы было найдено еще на заре развития компьютерной техникив виде буфера упреждающей выборки. Развитием этой и реализацией других идейстал конвейер — специальное устройство, существующее на уровне архитектурыисполнительной части компьютера. Благодаря конвейеру исполнение командыразбивается на несколько стадий, каждая из которых реализует некоторую элементарную операцию общего процесса обработки команды.
Впервые для процессоров Intel конвейер был реализован в архитектуре процессора 180486. КонвейерJ80486 имеет пять ступеней, которые соответствуют перечисленным далее стадиям обработки машинной команды.1. Выборка команды из кэш-памяти или из оперативной памяти.2. Декодирование команды.3. Генерация адреса, в ходе которой определяются адреса операндов в памяти и выполняется выборка операндов.4. Выполнение операции с помощью АЛУ.5. Запись результата (место записи результата зависит от алгоритма работы конкретной машинной команды).В чем преимущество такого подхода? Очередная команда после ее выборкипопадает в блок декодирования.
Таким образом блок выборки освобождается и может выбрать следующую команду. В результате на конвейере могут находитьсяв различной стадии выполнения пять команд. Скорость вычисления в результатесущественно возрастает.В процессорах Pentium конвейерная архитектура была усовершенствована и получила название суперскалярной. В отличие от скалярной архитектуры 48048632Глава 2.
Программно-аппаратная архитектура IA-32 процессоров Intel(с одним конвейером), первые модели процессоров Pentium имели два конвейера.В идеале такой суперскалярный процессор должен выполнять две команды за машинный такт. Но не все так просто. Реально два конвейера Pentium не были функционально равнозначными. В связи с этим они даже имели разные названия —u-конвейер (главный) и v-конвейер (второстепенный). Главный конвейер был полнофункциональным и мог выполнять любые машинные команды. Функциональность второстепенного конвейера была ограничена основными целочисленнымикомандами и одной командой с плавающей точкой (FXCH). Внутренняя структураобоих конвейеров такая же, как у 480486 с одним общим блоком выборки команд.Для того чтобы два разных по функциональным возможностям конвейера моглиобеспечить предельную эффективность (две выполненных команды за такт работы процессора), необходимо было группировать команды из входного потока в совместимые пары.
Важно заметить, что исходная последовательность команд входного потока была неизменной. Если процессору не удавалось собрать совместимуюпару, то выполнялась одна команда на u-конвейере. Оставшуюся команду процессор пытался «спарить» со следующей командой входного потока.Вернемся к процессорам микроархитектуры Р6.
Они имеют другую структуруконвейера. Собственно конвейера в понимании 180486 и первых Pentium уже нет.Конвейеризация заключается в том, что весь процесс обработки команд разбит на12 стадий, которые исполняются различными блоками процессора. Сколько именнокоманд обрабатывается процессором, сказать трудно. Термин трехходовой означает лишь то, что для исполнения из входного потока выбираются до трех команд.Известен верхний предел — в процессоре в каждый момент времени могут находиться до 30 команд в различной стадии исполнения. Детали этого процесса скрыты за понятием динамическое исполнение с нарушением исходного порядка следования машинных команд (out of order), что означает исполнение команд в порядке,определяемом исполнительным устройством процессора, а не исходной последовательностью команд.
В основу технологии динамического исполнения положены три концепции:• Предсказание правильного адреса перехода. Основная задача механизма предсказания — исключить перезагрузку конвейера. Под переходом понимается запланированное алгоритмом изменение последовательного характера выполнения программы. Как показывает статистика, типичная программа на каждые6-8 команд содержит 1 команду перехода.
Последствия обработки переходапредсказать несложно: при наличии конвейера через каждые 6-8 команд егонужно очищать и заполнять заново в соответствии с адресом перехода. Все преимущества конвейеризации теряются. Поэтому в архитектуру Pentium в составустройства выборки/декодирования (см. главу 1) был введен блок предсказания переходов. Вероятность правильного предсказания составляет около 80 %.II Динамический анализ потока данных. Анализ проводится с целью определениязависимостей команд программы от данных и регистров процессора с последующей оптимизацией выполнения потока команд.