Ассемблер для процессоров Intel Pentium
Шрифт:
В процессорах Intel Pentium впервые был использован так называемый алгоритм прогнозирования программных ветвлений и циклов (branch prediction). С помощью такого алгоритма обеспечивается более эффективное управление потоком команд программы. Адреса прогнозируемых переходов хранятся в аппаратно реализованной таблице ветвлений. Кроме этого, в Intel Pentium были внесены аппаратные расширения, позволяющие более эффективно работать в режиме виртуального процессора 8086 с адресным пространством в 4 Мбайт и размером страницы 4 Кбайт.
Основные регистры процессора остались 32-разрядными, но были добавлены внутренние шины передачи данных размерностью в 128 и 256 бит, что обеспечивает более быстрый обмен данными внутри процессора. Кроме того, внешняя шина данных в
В процессоре Intel Pentium сочетаются высокая производительность, совместимость, интеграция данных и наращиваемость. Это достигается за счет того, что процессор обладает:
– суперскалярной архитектурой;
– раздельным кэшированием программного кода и данных;
– блоком прогнозирования адреса перехода;
– высокопроизводительным блоком операций с плавающей точкой;
– расширенной 64-разрядной шиной данных;
– поддержкой многопроцессорного режима работы;
– средствами задания размера страницы памяти;
– средствами обнаружения ошибок и функциональной избыточности;
– возможностями для управления производительностью.
Совместимая только с Intel суперскалярная двухконвейерная промышленная архитектура процессора Intel Pentium позволяет ему достичь нового уровня производительности посредством выполнения более чем одной команды за один такт. Термин «суперскалярная» обозначает процессорную архитектуру, которая содержит более одного вычислительного блока. Все эти вычислительные блоки, или конвейеры, являются узлами, где происходят все основные процессы обработки данных и команд. Они позволяют выполнить значительно большее число команд за одно и то же процессорное время по сравнению с предыдущими поколениями процессоров.
Появление суперскалярной архитектуры процессора Intel Pentium представляет собой естественное развитие предыдущего семейства процессоров с 32-разрядной архитектурой фирмы Intel. Например, процессор i486 способен выполнять несколько своих команд за один такт, в то время как предыдущие семейства процессоров фирмы Intel требовали множества циклов тактовой частоты для выполнения одной команды.
Другим важным усовершенствованием, реализованным в процессорах Pentium, является раздельное кэширование. Кэширование повышает производительность посредством активизации места временного хранения часто используемых программного кода и данных, получаемых из быстрой памяти, заменяя по возможности обращение к внешней системной памяти для некоторых команд.
Раздельное кэширование позволяет выполнять несколько команд одновременно. Кэш-память программного кода и данных процессора Pentium содержит по 8 Кбайт информации и организована как набор двухканального ассоциативного кэша. Такая кэш-память предназначена для записи только предварительно просмотренного 32-байтового сегмента, причем работает быстрее, чем внешний кэш. Все это потребовало использования 64-разрядной внутренней шины данных, которая обеспечивает возможность двойного кэширования и суперскалярной конвейерной обработки одновременно с загрузкой последующих данных.
Кэш данных имеет два интерфейса, по одному для каждого из конвейеров, что позволяет ему обеспечивать данными две отдельные инструкции в течение одного машинного цикла. После того как данные извлекаются из кэша, они записываются в основную память в режиме обратной записи. Подобная техника кэширования дает лучшую производительность по сравнению с простым кэшированием с непосредственной записью, при котором процессор записывает данные одновременно в кэш и в основную память. Тем не менее процессор Intel Pentium способен динамически конфигурироваться для поддержки кэширования с непосредственной записью.
Блок прогнозирования адреса перехода позволяет повысить производительность, предварительно определив правильный набор выполняемых команд и полностью заполнив ими конвейеры.
Процессор Intel Pentium дает возможность выполнять математические вычисления на более высоком уровне благодаря использованию усовершенствованного встроенного блока операций
с плавающей точкой, который включает в себя 8-тактовый конвейер и аппаратную реализацию основных математических функций. 4-тактовые конвейерные команды для операций с плавающей точкой дополняют 4-тактовую целочисленную конвейеризацию. Большая часть команд, оперирующих данными с плавающей точкой, может выполняться в одном целочисленном конвейере, после чего помещается в конвейер операций с плавающей точкой. Обычные операции с плавающей точкой, такие, как сложение, умножение и деление, реализованы аппаратно для ускорения процесса вычислений.В результате этих усовершенствований процессор Intel Pentium выполняет команды для операций с плавающей точкой в пять раз быстрее, чем работающий на частоте 33 МГц процессор i486, оптимизируя их для высокоскоростных вычислений в мультимедийных приложениях, а также в 3D– и CAD/CAM-прило-жениях.
К числу аппаратных нововведений следует отнести и более совершенный программируемый контроллер прерываний (Advanced Programmable Interrupt Controller, APIC), позволяющий создавать системы с несколькими процессорами Intel Pentium. Но самым радикальным усовершенствованием процессоров Intel Pentium стало внедрение технологии ММХ (MultiMedia extensions – мультимедийные расширения). В технологии ММХ для организации параллельных вычислений над упакованными 64-разрядными целыми числами используется модель SIMD (Single Instruction, Multiple Data – одна команда, много данных). Параллельная обработка целочисленных данных не требует дополнительных регистров процессора – задействуются регистры математического сопроцессора. Технология ММХ позволила существенно повысить производительность мультимедийных приложений, программ обработки звука и изображений, программ криптографии и сжатия данных.
Для аппаратуры компьютера процессор Intel Pentium представляет собой 32-разрядное устройство. Внешняя шина данных к памяти является 64-разрядной, что обеспечивает передачу удвоенного объема данных за один цикл шины. Процессор поддерживает несколько типов циклов, включая цикл пакетного режима, в течение которого в кэш данных передается 256-разрядный пакет данных.
Шина данных является главной магистралью, которая передает информацию между процессором и подсистемой памяти. Благодаря 64-разрядной шине данных процессор Intel Pentium существенно повысил скорость передачи – до 528 Мбайт/с для 66 МГц по сравнению со 160 Мбайт/с для 50 МГц процессора i486. Эта расширенная шина данных поддерживает высокоскоростные вычисления за счет одновременной загрузки командами и данными процессорного блока, благодаря чему достигается еще большая общая производительность процессора Intel Pentium по сравнению с процессором i486.
Первые модели процессора Intel Pentium работали на частоте 60 и 66 МГц и обменивались данными с внешней кэш-памятью второго уровня по 64-разрядной шине данных, работающей на тактовой частоте процессорного ядра. Однако здесь есть некоторые сложности. При возрастании скорости процессора Intel Pentium все сложнее становится и дороже обходится его согласование с электронным интерфейсом на материнской плате.
По этой причине быстрые процессоры Intel Pentium используют делитель частоты для синхронизации внешней шины путем задания меньшей частоты. Например, у процессора Intel Pentium с частотой 100 МГц внешняя шина работает на частоте 66 МГц, а у процессора с частотой 90 МГц – на частоте 60 МГц. Процессор задействует одну и ту же шину для доступа к основной памяти и к периферийным подсистемам, таким, как шина PCI.
Дальнейшим усовершенствованием процессоров Intel Pentium стала модель Р6, выпущенная в 1995 г. Это поколение процессоров базировалось на суперскалярной архитектуре, что позволило без перехода на другую технологию изготовления кристалла значительно повысить производительность. Первым процессором семейства Р6 стал Intel Pentium Pro. Далее были разработаны более совершенные процессоры этой линейки, известные как Intel Pentium II, Intel Pentium II Xeon, Intel Celeron, Intel Pentium III и Intel Pentium III Xeon.