Параллельно с Pentium развился и процессор Pentium Pro, который отличался новшествами “динамического исполнения инструкций”. Кроме того, в его корпусе разместили и вторичный кэш, для начала объемом 256 Кб. Однако на 16-битных приложениях, а также в среде Windows 95 его применение на дает преимуществ. Процессор содержит 5,5 млн транзисторов ядра, и 15,5 млн транзисторов для вторичного кэша объемом 256 Кб. Первый процессор с частотой 150 МГц появился в начале 1995 года (технология 0,6 мкм), а уже в конце года появились процессоры с частотой 166, 180, 200 МГц (технология 0,35 мкм), у которых кэш достигал 512 Кб.
После долгих обещаний в начале 1997 года появились процессоры Pentium MMX. Расширение ММХ предполагает параллельную обработку группы операндов одной инструкцией. Технология ММХ призвана ускорять выполнение мультимедийных приложений, в частности операции с изображениями и обработку сигналов. Ее эффективность вызывает споры в среде разработчиков, поскольку выигрыш в самих операциях обработки компенсируется проигрышем на дополнительных операциях упаковки-распаковки. Кроме того ограниченная разрядность ставит под сомнение применение ММХ в декодерах MPEG-2, в которых требуется обработка 80-битных операндов. Кроме расширения ММХ эти процессоры, по сравнению с обычным Pentium, имеют удвоенный объем первичного кэша, и некоторые элементы архитектуры, позаимствованные у Pentium Pr, что повышает производительность процессора Pentium ММХ и на обычных приложениях. Процессоры Pentium ММХ имеют 4,5 млн транзисторов и выполнены по технологии -,35 мкм. По состоянию на июнь 1997 г. имеются процессоры с тактовыми частотами 166, 200 и 233 МГц.
Технология ММХ была соединена с архитектурой Pentium Pro – и в мае 1997 года появился процессор Pentium II. Он представляет собой слегка урезанный вариант ядра Pentium Pro с более высокой внутренней тактовой частотой, в которое внесли поддержку ММХ. Трудности размещения вторичного кэша в одном корпусе с процессором преодолели нехитрым способом – кристалл с ядром процессора и набор кристаллов статической памяти и дополнительных схем, реализующих вторичный кэш, разместили на небольшой печатной плате-картридже. Все кристаллы закрыты общей специальной крышкой и охлаждаются специальным вентилятором. Тактовые частоты ядра – 233, 266 и 300 МГц.
Конечно же, перечисленным моделями не исчерпывается весь мировой ассортимент микропроцессоров. Это только представители семейства процессоров, имеющих обобщенное название х86. Ряд фирм (DEC? Motorola, Texas Instruments и другие) имею разработки, существенно отличающиеся от данного семейства; есть другие классы процессоров и у Intel. Среди них есть гораздо более мощные процессоры относящиеся, к таким классам как RISC, так и CISC архитектуру. Однако процессоры Pentium особенно с поддержкой ММХ, имеют самую сложную в мире систему команд.
Процессоры, совместимые с семейством х86, выпускаются не только фирмой Intel. Традиционный конкурент – AMD – выпускает совместимые процессоры обычного несколько позже, но заметно дешевле, иногда по ряду технических свойств они даже опережают аналогичные процессоры Intel. Фирма Cyrix славится своими быстрыми сопроцессорами.
Как уже упоминалось выше, по системе команд и архитектуре различаются процессоры RISC и CISC.
RISC – Reduced (Restricted) Instruction Set Computer – процессоры (компьютеры) с сокращенной системой команд. Эти процессоры обычно имеют набор однородных регистров универсального назначения, и их система команд отличается относительной простотой. В результате аппаратная реализация такой архитектуры позволяет с небольшими затратами выполнить за минимальное (в пределе 1) число тактов синхронизации.
CISC – Complete Instruction Set Computer – процессоры (компьютеры) с полным набором инструкций, к которым и относится семейство х86. Состав и назначения их регистров существенно не однородны, широкий набор усложняет декодирование инструкций, на что расходуются аппаратные ресурсы. Возрастает и число тактов необходимое для выполнения инструкций.
В процессорах рассматриваемого семейства, начиная с 486-го, применяется комбинированная архитектура – CISC-процессор имеет RISC-ядро.
Семейство 80х86 фирмы Intel началось с 16-разрядного процессора 8086. Все старшие модели процессоров, в том числе 32-разрядные (386-й, 486-й, Pentium, Pentium Pro) и с 64-разрядным расширением ММХ, включают в себя подмножество системы команд и архитектуры нижестоящих моделей, обеспечивая совместимость с ранее написанным ПО.
ГЛАВА 1
16-разрядные процессоры
16-разрядные процессоры сами по себе уже представляют в основном лишь исторический интерес. Но именно на них “выехали” миллионы РС, обеспечивающих живучесть и подстегивающих развития всего семейства.
1.1. Процессоры i8086/8088
Процессоры 8086, выпущенные фирмой Intel в 1978 году, относятся к первому поколению 16-битных процессоров. Годом позже появилась его модификация 1088. Оба эти процессора выполняют 8/86-битные логические и арифметические операции, включая умножение и деление, операции с строками и операции ввода-вывода. Процессоры имеют 20-разрядную шину адреса, которая позволяет адресовать до 1 Мб памяти. Шина данных у 8086 16-разрядная, у 8088 разрядность внешней шины данных сокращена до 8 бит. Это сокращение, сделанное с целью удешевления системы в целом, оборачивается некоторым снижением производительности: 8086 за счет большей разрядности шины работает примерно на 20-60% быстрее, чем 8088 с той же тактовой частотой. Функциональные различия этих процессоров, обусловлены разной разрядностью шины, появляются только в способе подключения 8- и 16-разрядных внешних устройств. С программной точки зрения эти процессоры идентичны, их система команд и набор процессоров включены во все процессоры РС- совместимых компьютеров. От родоначальника - процессора 8086 – пошло общее обозначения семейства: х86. Процессоры поддерживают аппаратные и программные прерывания и допускают разделяемое использование шины совместно с другими процессорами или контроллерами (например к, прямого доступа к памяти – DMA) . Также предусмотрено использование математического сопроцессора 8087, существенно повышающего производительность вычислений.
В процессорах применима конвейерная архитектура, позволяющая выполнить выборку кодов инструкций из памяти их декодирование во время выполнения внутренних операций. Конвейер повышает производительность процессора за счет сокращения времени простоя его операционных узлов. Конвейер процессора 8086 имеет 6-байтную внутреннюю очередь инструкций. Блок предварительной выборки при наличии 2 свободных байт в очереди старается ее заполнить в то время, когда внешняя шина процессора не занята операциями обмена. Очередь у процессора 8088 сокращена до 4 байт, а предварительная выборка осуществляется уже при наличии одного свободного байта. Это отличия оптимизируют конвейер с учетом разрядности шины данных. Очередь обнуляется при выполнении любой команды передачи управления, даже при переходе на следующий адрес. Этим свойством часто пользуются при программировании управления устройствами ввода-вывода, требующими задержки между соседними операциями обмена.
Процессор имеет 14 регистров разрядностью 16 бит, операнды могут иметь 8 или 16 бит и представлять знаковые и беззнаковые и двоично-десятичные числа. Система команд имеет 24 режима адресации операндов. Среднее время выполнения команды занимает 12 тактов синхронизации, один цикл обмена на внешней шине занимает 2 такта (без тактов ожидания). Тактовая частота процессора 8088, применяемого в превых РС, была 4,77 МГц, в последствии появились процессоры с частотой 8 и 10 МГц (применялись в Turbo XT).
1. 1. 1. Организация памяти 8086/88
Память для процессоров 8086/8088 представляется в виде линейной последовательности байт. Для обращения к памяти процессор (совместно с внешней схемой) формирует шинные сигналы MEMWR# (Memory Write) и MEMRD# (Memory Read) для операции записи и считывания соответственно. Охват пространства размером 1 Мб обеспечивается 20-разрядной шиной адреса. Логическая память разбивается на сегменты размером 65 Кб. Физический адрес памяти (поступающий на шину адреса разрядностью 20 бит) состоит из двух 16-битных частей – адрес сегмента Seg и исполнительного адреса ЕА (executive address), суммируемых со смещением на 4 бита (рис 2.1).
Рис. 2.1. Формирование физического адреса памяти процессором 8086/8088
Процессор может обращаться к одному байту памяти, так и слову, или двойному слову. При размещении слова в памяти с адресом, соответствующим адресу слова, содержит его младшую часть (Low), следующий байт содержит старшую часть (High). Слово может размещаться в памяти как по четному (Even), так и по не нечетному (Odd) адресу. Двойное слово обычно используется для хранения полного адреса, и в нем располагается сначала слово смещения (в порядке L, H), а затем сегмента (в том же порядке). Сегментация памяти в порядке L, H являются характерной чертой процессоров Intel.