Разблокировка Билайн Про 2
Разблокировка Билайн Про 2


PSN 500 рублей PlayStation Network
PSN 500 рублей PlayStation Network


PSN 90 дней PlayStation Plus
PSN 90 дней PlayStation Plus


В начало

Основные компоненты микропроцессора (Лекция)

 

ПЛАН ЛЕКЦИИ

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, обуславливая обработку строки «слева направо», при единичном – «справа налево».