Физическая и функциональная структура микропроцессора

Микропроцессоры

Наиболее важными компонентами любого компьютера, обусловливающими его основные характеристики, являются микропроцессоры, системные платы и интер­фейсы

Микропроцессор (МП), или central processing unit (CPU) — функционально закон­ченное программно-управляемое устройство обработки информации, выполнен­ное в виде одной или нескольких больших (БИС) или сверхбольших (СБИС) ин­тегральных схем.

Микропроцессор выполняет следующие функции:

· вычисление адресов команд и операндов;

· выборку и дешифрацию команд из основной памяти (ОП);

· выборку данных из ОП, регистров МПП и регистров адаптеров внешних устройств (ВУ);

· а прием и обработку запросов и команд от адаптеров на обслуживание ВУ;

· обработку данных и их запись в ОП, регистры МПП и регистры адаптеров ВУ;

· выработку управляющих сигналов для всех прочих узлов и блоков ПК;
переход к следующей команде.

· Основными параметрами микропроцессоров являются:

· разрядность;

· рабочая тактовая частота;

· размер кэш-памяти;

· состав инструкций;

· конструктив;

· рабочее напряжение и т. д.

 

 

Разрядность шины данныхмикропроцессора определяет количество разрядов, над которыми одновременно могут выполняться операции; разрядность шины адреса МП определяет его адресное пространство.

Адресное пространствоэто максимальное количество ячеек основной памяти, которое может быть непосредственно адресовано микропроцессором.

Рабочая тактовая частота МП во многом определяет его внутреннее быстродей­ствие, ибо каждая команда выполняется за определенное количество тактов. Быс­тродействие (производительность) ПК зависит также и от тактовой частоты шины материнской платы, с которой работает (может работать) МП.

Кэш-память,устанавливаемая на плате МП, имеет два уровня:

Q L1 — память 1-го уровня, находящаяся внутри основной микросхемы (ядра) МП и работающая всегда на полной частоте МП (впервые кэш L1 был введен в МП 486 и у МП 386SLC);

Q L2 — память 2-го уровня, кристалл, размещаемый на плате МП и связанный с ядром внутренней микропроцессорной шиной (впервые введен в МП Pentium II). Память L2 может работать на полной или половинной частоте МП. Эффективность этой кэш-памяти зависит и от пропускной способности мик­ропроцессорной шины.

Состав инструкций— перечень, вид и тип команд автоматически исполняемых МП. От типа команд зависит даже классификационная группа МП (CISC, RISC, VLIM и т. д.). Перечень и вид команд определяют непосредственно те процедуры, которые могут выполняться над данными в МП, и те категории данных, над кото­рыми могут выполняться эти процедуры. Дополнительные инструкции в неболь­ших количествах вводились во многих МП (286, 486, Pentium Pro и т. д.). Но су­щественное изменение состава инструкций произошло в МП 386 (этот состав далее принят за базовый), Pentium MMX, Pentium HI, Pentium 4.

Конструктивопределяет те физические разъемные соединения, в которые устанавливается МП и которые определяют пригодность материнской платы для установки МП. Разные разъемы имеют разную конструкцию (Slot — щелевой разъем, Socket — разъем-гнездо), разное количество контактов, на которые подаются сиг­налы и рабочие напряжения.

Рабочее(ие) напряжение(ия) также определяет пригодность материнской платы для установки МП.

Первый микропроцессор был выпущен в 1971 году фирмой Intel (США) — МП 4004. В настоящее время разными фирмами выпускается много десятков различных микропроцессоров, но наиболее популярными и распространенными являются микропроцессоры фирмы Intel и Intel-подобные.

Все микропроцессоры можно разделить на четыре группы:

1. МП типа CISC(Complex Instruction Set Command ) с полным набором системы команд.

2. МП типа RISC(Redused Instruction Set Command) с усеченным набором системы команд.

3. МП типа VLIW(Very Length Instruction Word) со сверхбольшим командным
словом.

4. МП типа MISC(Minimum Instruction Set Command) с минимальным набором
системы команд и весьма высоким быстродействием и т. д.

Физическая и функциональная структура микропроцессора

Физическая структура микропроцессора достаточно сложна. Ядро процессора содержит главный управляющий модуль и исполняющие модули — блоки выполне­ния операций над целочисленными данными. К локальным управляющим схемам относятся: блок плавающей точки, модуль предсказания ветвлений, модуль пре­образования CISC инструкций во внутренний RISC микрокод, регистры микро­процессорной памяти (в МП типа VLIW до 256 регистров), регистры кэш-памяти 1-го уровня (отдельно для данных и инструкций), шинный интерфейс и многое другое.

В состав микропроцессора Pentium обычно входят следующие физические компо­ненты:

· Соте — ядро МП;

· Execution Unit — исполняющий модуль;

· Integer ALU — АЛУ для операций с целыми числами (с фиксированной запя­той);

· Registers — регистры;

· Floating Point Unit — блок для работы с числами с плавающей запятой;

· Primary Cache — кэш первого уровня, в том числе кэш данных (Data Cache) и кэш команд (Code Cache);

· Instruction Decode and Prefetch Unit и Branch Predictor — блоки декодиро­вания инструкций, спекулятивного их исполнения и предсказания ветвлений;

· Bus Interface — интерфейсные шины, в том числе 64-битная (64-bit Bus) и 32-битная (32-bit Bus) шины, и выход на системную шину к оперативной памяти(То RAM).

Функционально МП можно разделить на две части:

· операционную, содержащую устройство управления (УУ), арифметикологи­ческое устройство (АЛУ) и микропроцессорную память (МПП) (за исключе­нием нескольких адресных регистров);

· интерфейсную, содержащую адресные регистры МПП; блок регистров команд — регистры памяти для хранения кодов команд, выполняемых в ближайшие так­ ты работы машины; схемы управления шиной и портами.

Обе части МП работают параллельно, причем интерфейсная часть опережает опе­рационную, так что выборка очередной команды из памяти (ее запись в блок реги­стров команд и предварительный анализ) выполняется во время выполнения опе­рационной частью предыдущей команды^ Современные микропроцессоры имеют несколько групп регистров в интерфейсной: части, работающих с различной степе­нью опережения, что позволяет выполнять операции в конвейерном режиме. Та­кая организация МП позволяет существенно повысить его эффективное быстро­действие.

 

Если регистры 4-байтные или 8-байтные, их имена несколько изменяются, например, 4-байтные универсальные регистры АХ, ВХ, СХ, DXименуются соответственно АХ, ЕВХ, ЕСХ, EDX. При этом если используется их 2-байтовая или 1-байтовая часть, наименования этих частей регистров соответствуют рассматриваемым ниже.

Универсальные регистры

Регистры АХ, ВХ, СХ и DXявляются универсальными (их часто называют регис­трами общего назначения — РОН); каждый из них может использоваться для вре­менного хранения любых данных, при этом можно работать с каждым регистром целиком, а можно отдельно и с каждой его половиной (регистры АН, ВН, СН, DH— старшие (Hight) байты, а регистры AL, BL, CL, DL— младшие (Low) байты соот­ветствующих 2-байтовых регистров). Но каждый из универсальных регистров может использоваться и как специальный при выполнении некоторых конкретных команд программы. В частности:

· регистр АХ— регистр-аккумулятор, через его порты осуществляется ввод-вывод данных в МП, а при выполнении операций умножения и деления АХ использу­ется для хранения первого числа, участвующего в операции (множимого, дели­мого), и результата операции (произведения, частного) после ее завершения;

· регистр ВХчасто используется для хранения адреса базы в сегменте данных и начального адреса поля памяти при работе с массивами;

· регистр СХ— регистр-счетчик, используется как счетчик числа повторений при циклических операциях;

· регистр DXиспользуется как расширение регистра-аккумулятора при работе с 32-разрядными числами и при выполнении операций умножения и деления, используется для хранения номера порта при операциях ввода-вывода и т. д.

 

Сегментные регистры

Сегментные регистры CS, DS, SS, ESиспользуются для хранения начальных ад­ресов полей памяти (сегментов), отведенных в программах для хранения:

· команд программы (сегмент кода — CS);
данных (сегмент данных — DS);

· стековой области памяти (сегмент стека — SS);

· дополнительной области памяти данных при межсегментных пересылках (рас­ширенный сегмент — ES), поскольку размер сегмента в реальном режиме рабо­ты МП ограничен величиной 64 Кбайт.

Регистры смещений

Регистры смещений IP, SP, BP, SI, DIиспользуются для хранения относительных адресов ячеек памяти внутри сегментов (смещений относительно начала сегментов):

· регистр IP(Instruction Pointer) хранит смещение адреса текущей команды про­граммы;

· регистр SP(Stack Pointer) — смещение вершины стека (текущего адреса стека);

· регистр ВР(Base Pointer) — смещение начального адреса поля памяти, непо­средственно отведенного под стек;

· регистры SI, DI(Source Index и Destination Index соответственно) предназна­чены для хранения адресов индекса источника и приемника данных при опера­циях над строками и им подобных.

Регистр флагов

Регистр флагов FLсодержит условные одноразрядные признаки-маски или фла­ги, управляющие прохождением программы в ПК; флаги работают независимо друг от друга и лишь для удобства они помещены в единый регистр. Всего в регистре содержится 9 флагов: 6 из них статусные, отражают результаты операций, выпол­ненных в компьютере (их значения используются, например, при выполнении ко­манд условной передачи управления — команд ветвления программы), а три дру­гих — управляющие, непосредственно определяют режим исполнения программы. Статусные флаги:

· CF(Carry Flag) — флаг переноса. Содержит значение «переносов» (0 или 1) из старшего разряда при арифметических операциях и некоторых операциях сдвига и циклического сдвига;

· PF (Parity Flag) — флаг четности. Проверяет младшие 8 битов результатов опе­раций над данными. Нечетное число единичных битов приводит к установке этого флага в 0, а четное — в 1;

· AF (Auxiliary Carry Flag) — флаг логического переноса при двоично-десятич­ной арифметике. Вспомогательный флаг переноса устанавливается в 1, если арифметическая операция приводит к переносу или заему четвертого справа бита однобайтового операнда. Этот флаг используется при арифметических операциях над двоично-десятичными кодами и кодами ASCII;

· ZF (Zero Flag) — флаг нуля. Устанавливается в 1, если результат операции ра­вен 0; если результат не равен 0, то ZF обнуляется;

· SF (Sign Flag) — флаг знака. Устанавливается в соответствии со знаком резуль­тата после арифметических операций: положительный результат устанавлива­ет флаг в 0, отрицательный — в 1;

· OF (Overflow Flag) — флаг переполнения. Устанавливается в 1 при арифметическом переполнении: если возник перенос в знаковый разряд при выполнении знаковых арифметических операций, если частное от деления слишком велико и переполняет регистр результата и т. д.

Управляющие флаги:

· TF (Trap Flag) — флаг системного прерывания (трассировки). Единичное со­стояние этого флага переводит процессор в режим пошагового выполнения программы (режим трассировки);

· IF (Interrupt Flag) — флаг прерываний. При нулевом состоянии этого флага прерывания запрещены, при единичном — разрешены;

· DF (Direction Flag) — флаг направления. Используется в строковых операци­ях для задания направления обработки данных. При нулевом состоянии флага команда увеличивает содержимое регистров SI и DI на 1, обусловливая обра­ботку строки «слева направо»; при единичном — «справа налево».