Файл: Классификация, структура и основные характеристики современных микропроцессоров.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 107

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

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

Устройство управления

Устройство управления (УУ) является функционально наиболее сложным уст­ройством ПК — оно вырабатывает управляющие сигналы, поступающие по кодо­вым шинам инструкций (КШИ) во все блоки машины. Упрощенная функцио­нальная схема УУ показана на рис. 1. На рисунке представлены:

  • регистр команд — запоминающий регистр, в котором хранится код команды — код выполняемой операции (КОП) и адреса операндов, участвующих в опе­рации. Регистр команд расположен в интерфейсной части МП, в блоке реги­стров команд;
  • дешифратор операций — логический блок, выбирающий в соответствии с по­ступающим из регистра команд кодом операции (КОП) один из множества имеющихся у него выходов;
  • постоянное запоминающее устройство (ПЗУ) микропрограмм хранит в своих ячейках управляющие сигналы (импульсы), необходимые для выполнения в блоках ПК процедур обработки информации. Импульс по выбранному дешифратором операций в соответствии с кодом операции проводу считы­вает из ПЗУ микропрограмм необходимую последовательность управляю­щих сигналов;
  • узел формирования адреса (находится в интерфейсной части МП) — устрой­ство, вычисляющее полный адрес ячейки памяти (регистра) по реквизитам, поступающим из регистра команд и регистров МПП;
  • кодовые шины данных, адреса и инструкций — часть внутренней интерфейс­ной шины микропроцессора.

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


  • выборка из регистра-счетчика адреса команды МПП адреса ячейки ОЗУ, где хранится очередная команда программы;
  • выборка из ячеек ОЗУ кода очередной команды и приема считанной команды в регистр команд;
  • расшифровка кода операции и признаков выбранной команды;
  • считывание из соответствующих расшифрованному коду операции ячеек ПЗУ микропрограмм управляющих сигналов (импульсов), определяющих во всех блоках машины процедуры выполнения заданной операции, и пересылка управляющих сигналов в эти блоки;
  • считывание из регистра команд и регистров МПП отдельных составляющих адресов операндов (чисел), участвующих в вычислениях, и формирование полных адресов операндов;
  • выборка операндов (по сформированным адресам) и выполнение заданной операции обработки этих операндов;
  • запись результатов операции в память;
  • формирование адреса следующей команды программы.

Рис. 1. Укрупненная функциональная схема УУ

Арифметико-логическое устройство

Арифметико-логическое устройство (АЛУ) предназначено для выполнения ариф­метических и логических операций преобразования информации. Функциональ­но АЛУ (рис. 2) состоит обычно из двух регистров, сумматора и схем управле­ния (местного устройства управления).

Сумматор — вычислительная схема, выполняющая процедуру сложения посту­пающих на ее вход двоичных кодов; сумматор имеет разрядность двойного ма­шинного слова.

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

Схемы управления принимают по кодовым шинам инструкций управляющие сигналы от устройства управления и преобразуют их в сигналы для управления работой регистров и сумматора АЛУ.

АЛУ выполняет арифметические операции «+», «-», «х» и «> только над двоич­ной информацией с запятой, фиксированной после последнего разряда, то есть только над целыми двоичными числами. Выполнение операций над двоичными числами с плавающей запятой и над двоично-кодированными десятичными числа­ми осуществляется с привлечением математического сопроцессора или по специ­ально составленным программам.


Рассмотрим в качестве примера выполнение команды умножения. Перемножают­ся числа 1101 и 1011 (числа для простоты взяты 4-битовыми). Множимое находит­ся в регистре 1, имеющем удвоенную по отношению к регистру 2 разрядность; множитель размещается в регистре 2. Операция умножения требует для своего выполнения нескольких тактов. В каждом такте число из регистра 1 проходит в сумматор (имеющий также удвоенную разрядность) только в том случае, если в младшем разряде регистра 2 находится 1. В данном примере в первом такте чис­ло 1101 пройдет в сумматор, и в этом же первом такте число в регистре 1 сдвига­ется на 1 разряд влево, а число в регистре 2 — на 1 разряд вправо. В конце такта после сдвигов в регистре 1 будет находиться число 11010, а в регистре 2 — число 101. Во втором такте число из регистра 1 пройдет в сумматор, так как младший разряд в регистре 2 равен 1; в конце такта числа в регистрах опять будут сдвину­ты влево и вправо, так, что в регистре 1 окажется число 110100, а в регистре 2 — число 10. В третьем такте число из регистра 1 не пройдет в сумматор, так как младший разряд в регистре 2 равен 0; в конце такта числа в регистрах будут сдви­нуты влево и вправо, так что в регистре 1 окажется число 1101000, а в регист­ре 2 — число 1. На четвертом такте число из регистра 1 пройдет в сумматор, по­скольку младший разряд в регистре 2 равен 1; в конце такта числа в регистрах будут сдвинуты влево и вправо, так что в регистре 1 окажется число 11010000, а в регистре 2 — число 0. Поскольку множитель в регистре 2 стал равным 0, опера­ция умножения заканчивается. В результате в сумматор последовательно поступят и будут сложены числа: 1101, 11010, 1101000; их сумма 10001111 (143 в десятичной системе) и будет равна произведению чисел 1101 х 1011 (13 х 11 десятичные).

Рис. 2. Функциональная схема АЛУ

Микропроцессорная память

Микропроцессорная память (МПП) базового МП 8088 включает в себя 14 двух­байтовых запоминающих регистров. У МП 80286 и выше имеются дополнитель­ные регистры, например, у МП типа VLIW есть 256 регистров, из которых 128 — регистры общего назначения. У МП 80386 и выше некоторые регистры, в том числе и регистры общего назначения, — 4-байтовые (у МП Pentium есть и вось­мибайтовые регистры). Но в качестве базовой модели, в частности для языка программирования ассемблер и отладчика программ Debug, используется 14-ре-гистровая система МПП. Все регистры можно разделить на 4 группы:


  1. универсальные регистры: АХ, ВХ, СХ, DX;
  2. сегментные регистры: CS, DS, SS, ES;
  3. регистры смещения: IP, SP, BP, SI, DI;
  4. регистр флагов: FL.

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

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

Регистры АХ, ВХ, СХ и DX являются универсальными (их часто называют ре­гистрами общего назначения — РОН); каждый из них может использоваться для временного хранения любых данных, при этом позволено работать с каждым регистром целиком, а можно отдельно и с каждой его половиной (регистры АН, ВН, СН, DH — старшие (High) байты, а регистры 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) — смещение вершины стека (текущего адреса стека);
  • регистр BP (Base Pointer) — смещение начального адреса поля памяти, непо­средственно отведенного под стек;
  • регистры SI, DI (Source Index и Destination Index соответственно) предназначены для хранения адресов индекса источника и приемника данных при операциях над строками и им подобных.

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

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

Статусные флаги:

  • CF (Carry Flag) — флаг переноса. Содержит значение «переносов» (0 или 1) из старшего разряда при арифметических операциях и некоторых операциях сдвига и циклического сдвига;
  • PF (Parity Flag) — флаг четности. Проверяет младшие восемь битов резуль­татов операций над данными. Нечетное число единичных битов приводит к установке этого флага в 0, а четное — в 1;
  • AF (Auxiliary Carry Flag) — флаг логического переноса в двоично-десятич­ной арифметике. Вспомогательный флаг переноса устанавливается в 1, если арифметическая операция приводит к переносу или заему четвертого справа бита однобайтового операнда. Этот флаг используется при арифметических операциях над двоично-десятичными кодами и кодами ASCII;
  • ZF (Zero Flag) — флаг нуля. Устанавливается в 1, если результат операции равен нулю; если результат не равен нулю, ZF обнуляется;
  • SF (Sign Flag) — флаг знака. Устанавливается в соответствии со знаком ре­зультата после арифметических операций: положительный результат устанав­ливает флаг в 0, отрицательный — в 1;
  • OF (Overflow Flag) — флаг переполнения. Устанавливается в 1 при арифме­тическом переполнении: если возник перенос в знаковый разряд при выпол­нении знаковых арифметических операций, если частное от деления слишком велико и переполняет регистр результата и т. д.

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

  • TF (Trap Flag) — флаг системного прерывания (трассировки). Единичное со­стояние этого флага переводит процессор в режим пошагового выполнения программы (режим трассировки);
  • IF (Interrupt Flag) — флаг прерываний. При нулевом состоянии этого флага прерывания запрещены, при единичном — разрешены;