Ассемблер для процессоров Intel Pentium
Шрифт:
По сравнению с предыдущими поколениями процессоров процессор 80386 обеспечивал большее быстродействие (3-4 миллиона операций в секунду) и возможность работы со страничной виртуальной памятью.
В 1989 г. фирма Intel выпустила процессор i486, содержащий более миллиона транзисторов в чипе. Являясь полностью программно совместимым с процессорами 386, он предоставлял новые возможности по обеспечению многозадачности систем и многоуровневого кэширования. Встроенная система тестирования позволяла проверять работоспособность аппаратной логики, кэш-памяти и аппаратного постраничного преобразования адресов памяти. Отладочные средства обеспечивали установку ловушек контрольных точек в исполняемом коде
Следующим шагом в повышении производительности компьютерных систем стало появление процессоров Intel Pentium. По сравнению с процессором i486 был добавлен второй конвейер команд, что дало более высокую скорость выполнения команд. Оба конвейера команд, обозначаемые и и v, при совместной работе обеспечивают выполнение двух инструкций процессора за один машинный цикл.
Размер встроенного кэша первого уровня увеличен в два раза, при этом для команд и данных используется по 8 Кбайт памяти. В процессоре применяются более эффективные по сравнению с i486 алгоритмы прямой (write-through) и обратной записи (write-back).
В процессорах Intel Pentium впервые был использован так называемый алгоритм прогнозирования программных ветвлений и циклов (branch prediction). С помощью такого алгоритма обеспечивается более эффективное управление потоком команд программы. Адреса прогнозируемых переходов хранятся в аппаратно реализованной таблице ветвлений. Кроме этого, в Intel Pentium были внесены аппаратные расширения, позволяющие более эффективно работать в режиме виртуального процессора 8086 с адресным пространством в 4 Мбайт и размером страницы 4 Кбайт.
Основные регистры процессора остались 32-разрядными, но были добавлены внутренние шины передачи данных размерностью в 128 и 256 бит, что обеспечивает более быстрый обмен данными внутри процессора. Кроме того, внешняя шина данных в процессоре позволяет работать с 64-разрядными данными.
В процессоре 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 – одна команда, много данных). Параллельная обработка целочисленных данных не требует дополнительных регистров процессора – задействуются регистры математического сопроцессора. Технология ММХ позволила существенно повысить производительность мультимедийных приложений, программ обработки звука и изображений, программ криптографии и сжатия данных.