16 и 32 разрядный МП. Микропроцессор и его архитектура
Скачать 93.94 Kb.
|
Микропроцессор и его архитектура К основным нововведениям микропроцессора i486, выпущенного в 1989 году, относятся два, которые связаны с расширившимися технологическими возможностями. Это размещение непосредственно на кристалле БИС двух важных блоков, которые раньше выполнялись в виде отдельных микросхем: кэш-памяти и блока процессора обработки чисел с плавающей точкой ( floating point unit - FPU ). Кэш-память имела объем 8 Кбайт и предназначалась для хранения программ и данных. FPU имел внутренний файл из восьми 80-разрядных регистров, свой регистр состояния и управления. Главной отличительной чертой нового продукта в линейке 32-разрядных микропроцессоров - МП Pentium - явилась возможность конвейерной обработки информации. Хотя некоторые авторы считают, что конвейер появился уже в i486, это не является общепринятым мнением. Высокая скорость выполнения команд в МП Pentium достигалась благодаря двум 5-ступенчатым конвейерам, позволявшим одновременно исполнять несколько инструкций. Обмен информацией с памятью через кэш данных осуществлялся независимо от процессорного ядра, а буфер инструкций был связан с ним через высокоскоростную 256-разрядную внутреннюю шину. Несмотря на то что новый кристалл был спроектирован как 32-разрядный, для связи с остальными компонентами системы использовалась внешняя 64-разрядная шина данных. Появление конвейера обусловило необходимость введения еще одного блока - схемы предсказания переходов. Эффективная работа данной схемы чрезвычайно важна для повышения производительности микропроцессора. Все последующие модификации микропроцессоров непременно связаны с улучшением ее работы. Основным нововведением разработанного в 1997 году микропроцессора Pentium MMX стал блок, обеспечивавший новую схему обработки целочисленной информации - SIMD (Single Instruction - Multiple Data: одна команда - множество данных). До этого обработка велась по классической схеме SISD: каждая команда выполняла действия над своей парой операндов. Введение SIMD-операций позволило обрабатывать одновременно несколько операндов с использованием одной команды, что дало возможность существенно поднять производительность микропроцессора на тех задачах, где над большими массивами однородной информации выполнялись одинаковые операции, например, в мультимедийных приложениях. Появление таких возможностей потребовало введения в систему команд 57 новых инструкций, но регистровая структура микропроцессора не изменилась. Микропроцессор Pentium III, появившийся в 1999 году, позволил обрабатывать по схеме SIMD не только целочисленные операнды, но и числа с плавающей точкой. Для этого система команд была расширена на 70 инструкций, а в структуре микропроцессора появился специальный блок SSE, содержащий, в частности, отдельный регистровый файл из восьми 128-разрядных регистров. Еще одной новинкой, использованной в Pentium III, было размещение на кристалле кэш-памяти второго уровня (начиная с ядра Coppermine), работающей на частоте ядра. Но это носило скорее количественный характер и не внесло существенных изменений в архитектуру. Микропроцессор Pentium 4 завершает линейку 32-разрядных микропроцессоров. Основным вкладом этого микропроцессора в развитие архитектуры IA-32 стало еще большее увеличение глубины конвейера - до 31 стадии, что позволило сильно нарастить частоту процессора. Количество конвейеров возросло до 9. Кроме поддержки ставших традиционными инструкций MMX и SSE, в Pentium 4 добавили еще 144 команды SSE2, затем и SSE3, ориентированные в первую очередь на работу с потоковыми данными. В 2001 году фирмой Intel был выпущен микропроцессор Itanium, положивший начало новой 64-разрядной архитектуре - IA-64, которая сменила архитектуру 32-разрядных микропроцессоров IA-32, господствовавшую на протяжении более 15 лет. Данное учебное пособие в части универсальных микропроцессоров будет базироваться в основном на рассмотрении базовой архитектуры 32- разрядного микропроцессора, которая сложилась в микропроцессоре i486. Основные моменты, касающиеся развития этой архитектуры (конвейерная организация работы, обработка информации по схеме SIMD и т. д.), будут рассмотрены отдельно. Также отдельно будут рассмотрены современные направления развития архитектуры универсальных микропроцессоров и, в качестве примера, архитектура 80-ядерного микропроцессора фирмы Intel и микропроцессора Itanium. Архитектура 16-разрядного микропроцессораПЛАН 1. Распределение адресного пространства 2. Способы адресации методы формирования исполнительного адреса 3. Система команд i8086 Переход к 16-разрядным микропроцессорам - i8086 и другие аналогичной вычислительной мощности - ознаменовался качественным скачком всех основных характеристик МП: не просто увеличение разрядности, но значительное изменение архитектуры, системы команд, принципов организации структуры. В машину пользователя i8086 включатся память объемом 1М байт и две области портов ввода и вывода по 64К каждая. Рассмотрим "машину пользователя" на базе i8086 (К1810ВМ86): Рис. 1. МП i8086 - машина пользователя Разработчики i8086 старались сохранить возможность преемственности программного обеспечения i8080, поэтому в составе i8086 можно выделить подмножество регистров i8080 (соответствующие подмножество сохранено и в системе команд). Помимо операций с 16-разрядными регистрами общего назначения (РОН) AX..DX, допускается обращение к каждому байту этих регистров - AL..DL, AH..DH. В некоторых командах РОНы выполняют определенные по умолчанию функции счетчиков, индексных регистров и т.п. (см. Рис. 2.4). 16-разрядные регистры BP, SI, DI используются для образования исполнительных адресов памяти (см. ниже), SP - указатель стека, IP - программный счетчик (СчК), F - регистр флагов. Младший байт F полностью повторяет формат регистра признаков i8080, а старший имеет след. формат:
1. Распределение адресного пространства Адресное пространство МП определяется в i8086 разрядностью шины адреса/данных + адреса и составляет 220 = 1М байт. В этом адресном пространстве МП одновременно доступны четыре сегмента, два из которых (DS и ES) предназначены для размещения данных, CS - сегмент кода (для размещения программы) и SS - сегмент стека. Размеры сегментов определяются разрядностью логических адресов команд, данных и стека. Логические адреса команд и стека (верхушки) хранятся в 16-разрядных регистрах IP и SS соответственно, а логический адрес данных вычисляется в команде (см. ниже) и так же составляет 16 бит. Таким образом, размер каждого сегмента в i8086 составляет 64К байт. Положение сегмента в адресном пространстве (его начальный адрес) определяется содержимым одноименного сегментного регистра. Формирование физического адреса иллюстрируется схемой. Граница сегмента в адресном пространстве может быть установлена не произвольно, а таким образом, чтобы начальный адрес сегмента был кратен 16.
Рис. 2. Формирование физического адреса По умолчанию сегментные регистры выбираются для образования физического адреса след. образом: при считывании команды по адресу IP используется CS, при обращении к данным - DS или ES, при обращению к стеку - SS. С помощью специальных приставок к команде (префикса) можно назначить для использования произвольный сегментный регистр (кроме пары CS:IP, которая не подлежит модификации). Границы сегментов могут быть выбраны т.о., что сегменты будут изолированы друг от друга, пересекаться или даже полностью совпадать. Например, если загрузить CS=SS=DS=ES=0, то все сегменты будут совпадать друг с другом и начинаться с нулевого адреса - вариант организации адресного пространства i8080. 2. Способы адресации методы формирования исполнительного адреса Длина команды i8086 может составлять от 1 до 6 байт. Формат команды представлен ниже.
Рис. 3. Формат команды МП i8086 Большинство команд i8086 являются двухадресными, причем один адрес определяет регистр процессора, а другой - память или регистр. Поля команды имеют следующие назначения: D - определяет направление передачи информации: при D = 1 REG является приемником, иначе - источником; W - определяет длину операндов в команде: при W = 1 длина операндов составляет 16 бит (слово - word), иначе - 8 бит(байт); REG - определяет регистр для первого операнда. Таблица. 1
Поля R/M и MOD определяют способ формирования адреса второго операнда, который располагается чаще всего в памяти. Далее приведены способы формирования адресов памяти для двух значений поля MOD. Таблица 2
При операциях с d8 осуществляется его "знаковое расширение" до 16 бит - биты 15..8 принимают значение бита 7 (знака). При значении MOD = 10 используются те же регистры, что при MOD = 01 (см. Табл. 2.4), но вместо d8 используется d16. При MOD = 11 вторым операндом команды является регистр. Таким образом, операнд в памяти может адресоваться прямо (MOD = 00, R/M = 110) или косвенно посредством содержимого базовых (BP, BX) или индексных (SI, DI) регистров, а так же их суммы. Режимы адресации спроектированы с учетом эффективной реализации языков высокого уровня. Например, к простой переменной можно обратиться в режиме прямой адресации, а к элементу массива - в режиме косвенной адресации посредством BX, SI. Режим адресации через BP предназначен для доступа к данным из сегмента стека, что удобно при реализации рекурсивных процедур и компиляторов языков высокого уровня. 3. Система команд i8086Система команд насчитывает 113 базовых команд, объединенных в следующие группы. 1) Команды передачи данных: а) между регистрами и памятью (включая стек), обмен содержимым источника и приемника; б) ввода, вывода, табличного преобразования; в) загрузка исполнительного адреса в РОНы, загрузка 4-байтового адресного объекта в регистры-указатели (начальный адрес сегмента и смещение в сегменте); г) передача содержимого регистра F флагов в память, в стек и из стека. 2) Арифметические команды: + - × / двоичных чисел со знаком и без знаков (произведение и делимое представляются числами двойной длины), коррекция десятичная + - упакованных двоично-десятичных чисел, коррекция десятичная + - × / распакованных двоично-десятичных чисел. 3) Логические команды и сдвиги: инверсия, конъюнкция, дизъюнкция, неравнозначность; TEST - поразрядная конъюнкция операндов с установкой флагов но без занесения результатов; сдвиги на 1 или заданное число разрядов (константа сдвига располагается в CL). 4) Команды передачи управления: переходы, вызовы, возвраты - имеют две разновидности - внутрисегментные ("близкие") и межсегментные ("дальние"). При близких передачах загружается только IP, при дальних - IP и CS. Передачи управления могут быть прямыми (целевой адрес - в команде) или косвенными (целевой адрес вычисляется с использованием стандартных режимов адресации) В 16 командах условных переходов проверяются отношения знаковых и беззнаковых чисел. Имеются 4 команды управления циклами, которые рассчитаны на передачу числа повторений цикла в регистре CX. 5) Команды обработки цепочек данных Команды манипулируют последовательностями байт или слов в памяти. Время обработки цепочек этими командами гораздо меньше, чем соответствующей программной реализацией. Структура 32-разрядного универсального микропроцессора Рассмотрение архитектуры IA-32 начнем с микропроцессора i486. В нем впервые появились те блоки, которых не было на кристалле первого 32-разрядного микропроцессора i386, - кэш-память и процессор обработки чисел с плавающей точкой. Именно его архитектуру можно рассматривать как базовую для IA-32. Структура микропроцессора i486 представлена на рис. 1.3. Рассмотрим состав и назначение основных блоков этого микропроцессора. Процессор обработки чисел с фиксированной точкой содержит 32-разрядное АЛУ и блок регистров общего назначения. АЛУ предназначено для обработки двоичных чисел длиной 1, 2 или 4 байта без знака или со знаком, а также двоично-десятичных чисел, не превышающих 99. Двоичные числа со знаком представляются в дополнительном коде. Блок регистров общего назначения содержит восемь 32-разрядных регистров, часть из которых допускает 16- и 8-разрядное обращение. Рис. 1.3. Структура универсального микропроцессора Процессор обработки чисел с плавающей точкой состоит из 80-разрядного АЛУ, блока из восьми 80-разрядных регистров общего назначения, а также управляющих регистров. Главным образом он предназначен для обработки чисел с плавающей точкой, но также используется для обработки целых чисел со знаком длиной 8 байт и двоично-десятичных чисел величиной от 100 до 99…9 (18 цифр). На первых этапах развития SIMD-обработки регистры FPU использовались для хранения операндов, представленных в новых форматах. Блок управления памятью (Memory Management Unit - MMU) состоит из двух основных блоков в соответствии с организацией памяти. В общем случае память в микропроцессоре делится на сегменты, которые, в свою очередь, делятся на страницы. В соответствии с этим, MMU содержит блок сегментации (или блок сегментного преобразования адреса) и блок страничного преобразования, в состав которого входит так называемый буфер ассоциативной трансляции адресов стра- ниц (TLB). Кэш-память представляет собой промежуточную ступень между оперативной памятью и регистрами микропроцессора и предназначена для хранения наиболее часто используемой информации. В состав блока управления входят: собственно устройство управления, то есть та классическая схема, которая под действием кода команды вырабатывает набор управляющих сигналов, поступающих на разные узлы как самого микропроцессора, так и на блок интерфейса внешней шины; управление защитой памяти: обеспечивает аппаратную защиту программ и данных при управлении памятью и по привилегиям; блок управления предвыборкой команд: реализует опережающее заполнение буфера команд, представляющего собой некоторую буферную память. Буфер команд имеет емкость 32 байта и заполняется командами из следующих ячеек памяти команд по мере своего освобождения. Этим обеспечивается ускорение обработки микропроцессором следующей команды. Данный блок подвергался, пожалуй, наиболее существенным переработкам по мере развития архитектуры IA-32 - причина в широком последующем использовании конвейерной организации работы МП и связанной с этим необходимости постоянного совершенствования блока предсказания адреса следующей команды. Блок интерфейса внешней шины осуществляет электрическое согласование параметров внутренней магистрали с сигналами внешних магистралей, формирование необходимых сигналов на внешнюю магистраль и прием сигналов извне. Внешняя магистраль микропроцессора состоит из шины адреса, шины данных и сигналов управления: шина данных имеет ширину 32 разряда; 32-разрядный адрес передается по 34-разрядной шине А31...А2+(B3,B2,B1,B0). Чтобы с минимальными потерями согласовывать 32-разрядную шину данных с передачей данных меньшей разрядности, младшие разряды адреса (А1 и А0) передаются в дешифрированном виде (B3, B2, B1, B0). Они показывают, какие байты из 32-разрядной шины данных в данный момент реально востребованы: 1 байт, 2 младших байта, 2 старших байта либо все 32 разряда данных; шина управления - 32-разрядная. По ней передаются сигналы записи и чтения содержимого оперативной памяти и внешних устройств, сигналы запросов прерываний, прямого доступа к памяти и т. д. Особый интерес представляют три режима работы микропроцессора: реальный, защищенный и режим виртуального МП i8086. В реальном режиме обеспечивается совместимость на уровне объектных кодов с микропроцессором i8086 и микропроцессором i286, работающем в реальном режиме. В этом режиме архитектура 32-разрядного микропроцессора почти полностью идентична архитектуре 16-разрядного МП. Для программиста же он вообще представляется как МП i8086, выполняющий написанные программы с большей скоростью и обладающий расширенной системой команд и регистрами. Благодаря этим качествам фирма Intel сохранила прежних клиентов, которые хотели модернизировать свои системы, не отказываясь от имевшегося задела в области программного обеспечения, и привлекла тех, кому изначально требовалась высокая скорость обработки информации. Одно из основных ограничений реального режима было связано с предельной емкостью адресуемой памяти, равной 1 Мбайт. От него свободен защищенный режим, позволяющий воспользоваться всеми преимуществами архитектуры нового МП. Размер адресного пространства в этом случае увеличивается до 4 Гбайт, а общий объем поддерживаемого адресного пространства - до 64 терабайт (1 Тбайт = 240 байт). МП, работающие в защищенном режиме, обладают более высоким быстродействием и возможностями организации истинной многозадачности. Наконец, режим виртуального МП открывает возможность одновременного исполнения программ, написанных для МП i8086, i286 и i386. Поскольку емкость памяти, адресуемой микропроцессором, не ограничена значением 1 Мбайт, этот режим позволяет формировать несколько виртуальных сред i8086. Краткие итоги. В лекции даны определения микропроцессора и микропроцессорной системы, архитектуры микропроцессора. Приведена классификация микропроцессоров по их архитектуре, представлены параметры, которые характеризуют микропроцессоры каждого класса как вычислительное устройство и как электронное изделие. Рассмотрены этапы развития архитектуры универсальных микропроцессоров на примере МП БИС фирмы Intel, занимающей доминирующее положение в этом секторе рынка. Описаны структура и основные блоки микропроцессора i486, являющегося базовым микропроцессором для этой архитектуры. |