Микропроцессоры
Наиболее важными компонентами любого компьютера, обусловливающими его основные характеристики, являются микропроцессоры, системные платы и интерфейсы
Микропроцессор (МП), или 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, обусловливая обработку строки «слева направо»; при единичном — «справа налево».