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

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

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

Микропроцессор (МП), или 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, обусловливая обра­ботку строки «слева направо»; при единичном — «справа налево».

Наши рекомендации