|
В начало
Основные компоненты
микропроцессора (Лекция) ПЛАН ЛЕКЦИИ 1. Принципы построения схемного и микропрограммного устройств управления 2. Особенности реализации арифметико-логического устройства компьютера 3. Микропроцессорная память 1. Принципы
построения схемного и микропрограммного устройств управления
Устройство управления
предназначено для выработки управляющих сигналов, под воздействием которых
происходит преобразование информации в арифметико-логическом устройстве, а
также операции по записи и чтению информации в/из запоминающего
устройства. В общем случае устройство
управления формирует управляющие сигналы для выполнения следующих основных
процедур: -
выборки из регистра-счетчика микропроцессорной
памяти адреса ячейки ОЗУ, где хранится очередная команда программы; -
выборки из ячеек ОЗУ кода очередной команды и
приема считанной команды в регистр команд; -
расшифровки кода операции и признаков выбранной
команды; -
считывания из соответствующих расшифрованному
коду операции ячеек ПЗУ микропрограмм управляющих сигналов (импульсов),
определяющих во всех блоках машины процедуры выполнения заданной операции, и
пересылки управляющих сигналов в эти блоки; -
считывания из регистра команд и регистров
микропроцессорной памяти отдельных составляющих адресов операндов (чисел),
участвующих в вычислениях, и формирование полных адресов операндов; -
выборки операндов (по сформированным адресам) и
выполнения заданной операции обработки этих операндов; -
записи результатов операции в память; -
формирования адреса следующей команды программы. Устройства управления делятся на: -
УУ с жесткой или схемной логикой; -
УУ с программируемой логикой (микропрограммные
УУ). В устройствах управления первого
типа для каждой команды, задаваемой кодом операции, строится набор
комбинационных схем, которые в нужных тактах вырабатывают необходимые
управляющие сигналы. В микропрограммных устройствах
управления каждой команде ставится в соответствие совокупность хранимых в
специальной памяти слов – микрокоманд. Каждая из микрокоманд содержит информацию
о микрооперациях, подлежащих выполнению в данном такте, и указание, какое слово
должно быть выбрано из памяти в следующем такте. Схемное устройство управления Устройство управления схемного
типа (см. рисунок) состоит из: -
датчика сигналов, вырабатывающего
последовательность импульсов, равномерно распределенную во времени по своим
шинам (n – общее количество управляющих сигналов, необходимых для
выполнения любой операции; m – количество тактов, за
которое выполняется самая длинная операция); -
блока управления операциями, осуществляющего
выработку управляющих сигналов, то есть коммутацию сигналов, поступивших с
датчика сигналов, в соответствующем такте на нужную управляющую шину; -
дешифратора кода операций, который дешифрует код
операции команды, присутствующей в данный момент в регистре команд, и
возбуждает одну шину, соответствующую данной операции; этот сигнал используется
блоком управления операциями для выработки нужной последовательности управляющих
сигналов. Датчик сигналов обычно
реализуется на основе счетчика с дешифратором или на сдвиговом регистре. Рис. Функциональная
схема схемного устройства управления Микропрограммное устройство управления Микропрограммное устройство управления представлено на
рисунке. Рис. Функциональная
схема микропрограммного устройства управления На рисунке представлены: -
регистр команд – запоминающий регистр, в котором
хранится код команды: код выполняемой операции и адреса операндов, участвующих
в операции; регистр команд расположен в интерфейсной части микропроцессора, в
блоке регистров команд; -
дешифратор операций – логический блок,
выбирающий в соответствии с поступающим из регистра команд кодом операции один
из множества имеющихся у него выходов; -
постоянное запоминающее устройство микропрограмм
хранит в своих ячейках управляющие сигналы (импульсы), необходимые для
выполнения в блоках ПК процедур операций обработки информации; импульс по
выбранному дешифратором операций в соответствии с кодом операции проводу считывает
из ПЗУ микропрограмм необходимую последовательность управляющих сигналов; -
узел формирования адреса (находится в
интерфейсной части МП) – устройство, вычисляющее полный адрес ячейки памяти
(регистра) по реквизитам, поступающим из регистра команд и регистров МПП; - шины данных, адреса и управления – часть внутренней интерфейсной шины микропроцессора. 2. Особенности
реализации арифметико-логического устройства компьютера
Арифметико-логическое устройство предназначено для
выполнения арифметических и логических операций преобразования информации.
Функционально АЛУ (см. рисунок) обычно состоит из двух регистров, сумматора и
схем управления (местного устройства управления). Рис. Функциональная
схема АЛУ Сумматор – вычислительная схема,
выполняющая процедуру сложения поступающих на ее вход двоичных кодов; имеет
разрядность двойного машинного слова. Регистры –
быстродействующие ячейки памяти различной длины: регистр 1 имеет разрядность
двойного слова, а регистр 2 – разрядность одного слова; при выполнении операций
в регистр 1 помещается первое число, участвующее в операции, а по завершении
операции – результат; в регистр 2 – второе число, участвующее в операции (по
завершении операции информация в нем не изменяется); регистр 1 может и
принимать информацию с кодовых шин данных, и выдавать информацию на них; регистр
2 только получает информацию с этих шин. Схемы управления принимают по
кодовым шинам управления управляющие сигналы от устройства управления и
преобразуют их в сигналы для управления работой регистров и сумматора АЛУ. Арифметико-логическое устройство
выполняет арифметические операции только над двоичной информацией с точкой,
фиксированной после последнего разряда, т.е. только над целыми двоичными
числами. Выполнение операций над двоичными числами с плавающей точкой и над
двоично-десятичными числами осуществляется с привлечением математического
сопроцессора или по специально составленным программам. Рассмотрим в качестве примера
выполнение команды умножения. Пусть перемножаются числа 1101 и 1011. Множимое
находится в регистре 1, имеющем удвоенную по отношению к регистру 2 разрядность;
множитель находится в регистре 2. операция умножения требует для своего
выполнения нескольких тактов. В каждом такте число из регистра 1 проходит в
сумматор (имеющий также удвоенную разрядность) только в том случае, если в
младшем разряде регистра 2 находится 1. В данном примере в первом такте число
1101 пройдет в сумматор, и в этом же первом такте число в регистре 1 сдвигается
на один разряд влево, а число в регистре 2 на один разряд вправо. В конце татка
после сдвигов в регистре 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 стал
равным нулю, операция умножения заканчивается. В результате в сумматор последовательно
поступят и будут сложены числа: 1101, 11010, 1101000; их сумма 10001111 и будет
равна произведению чисел 1101´1011. 3. Микропроцессорная
память
Микропроцессорная память базового
микропроцессора включает четырнадцать 2-байтовых запоминающих регистров. Все
регистры можно разделить на четыре группы: -
универсальные регистры: AX, BX, CX, DX; -
сегментные регистры: CS, DS, SS, ES; -
регистры смещения: IP, SP, BP, SI, DI; -
регистр флагов FL. Каждый из универсальных регистров
(или регистров общего назначения) может использоваться для временного хранения
любых данных, при этом можно работать с каждым регистром целиком, а можно
отдельно с каждой его половиной (регистры AH, BH, CH, DH – старшие байты, а регистры AL, BL, CL, DL –
младшие байты соответствующих 2-байтовых регистров). Но каждый из универсальных
регистров может использоваться и как специальный при выполнении некоторых
конкретных команд программы. В частности: -
регистр AX – регистр-аккумулятор, через его порты осуществляется
ввод-вывод данных в микропроцессор, а при выполнении операций умножения и деления
AX используется для
хранения первого числа, участвующего в операции (произведения, частного) после
ее завершения; -
регистр BX часто используется для хранения адреса базы в сегменте данных
и начального адреса поля памяти при работе с массивами; -
регистр CX – регистр-счетчик, используется как счетчик числа повторений
при циклических операциях; -
регистр DX используется как расширение регистра-аккумулятора при работе с
32-разрядными числами и при выполнении операций умножения и деления,
используется для хранения номера порта при операциях ввода-вывода и т.д. Сегментные регистры используются
для хранения начальных адресов полей памяти (сегментов), отведенных в
программах для хранения: -
команд программы (сегмент кода – CS); -
данных (сегмент данных – DS); -
стековой области памяти (сегмент стека – SS); -
дополнительной области памяти данных при
межсегментных пересылках (расширенный сегмент – ES), поскольку размер сегмента в
реальном режиме работы микропроцессора ограничен величиной 64 Кбайт. Регистры смещений используются
для хранения относительных адресов ячеек памяти внутри сегментов (смещений
относительно начала сегментов): -
регистр IP (Instruction Pointer)
хранит смещение адреса текущей команды программы; -
регистр SP (Stack Pointer)
– смещение вершины стека (текущего адреса стека); -
регистр BP (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, если результат операции равен нулю; если результат не
равен нулю, то флаг обнуляется; -
SF
(Sign Flag) – флаг знака;
устанавливается в соответствии со знаком результата после арифметических
операций: положительный результат устанавливает флаг в 0, отрицательный – в 1; -
OF
(Overflow Flag)
– флаг переполнения; устанавливается в 1 при арифметическом переполнении: если
возник перенос в знаковый разряд при выполнении знаковых арифметических
операций, если частное от деления слишком велико и переполняет регистр
результата и т.д. Управляющие флаги: -
TF
(Trap Flag) – флаг системного
прерывания (трассировки); единичное состояние этого флага переводит процессор в
режим пошагового выполнения программы (режим трассировки); -
IF
(Interrupt Flag)
– флаг прерываний; при нулевом состоянии этого флага прерывания запрещены, при
единичном – разрешены; - DF (Direction Flag) – флаг направления; используется в строковых операциях для задания направления обработки данных; при нулевом состоянии флага команда увеличивает содержимое регистров SI и DI на 1, обуславливая обработку строки «слева направо», при единичном – «справа налево». |
|