состав процессораОсновные функции и состав процессора. На процессор возлагается выпол­нение операций, предусмотренных его системой команд.

При выполнении программы центральный процессор микропроцессорной си­стемы обеспечивает выполнение всех функций, предусмотренных программной. К ним относится:

●     формирование адреса команд или данных, хранящихся оперативной памяти;

●     выборка команд из памяти и их дешифрация;

●     прием данных из оперативной памяти, выполнение над ними арифметиче­ских, логических и других операций, определяемых кодом команды, и пере­дача обработанных данных во внешние устройства или память;

●     формирование сигналов состояния, управления и времени, необходимых для нормальной работы внутренних узлов, а также внешних устройств и памяти;

●     временное хранение результатов выполненных операций, адресов, формиру­емых сигналов состояния и других данных;

●     прием сигналов запроса от внешних устройств и их обслуживание.

рис. 2.2.1Для выполнения перечисленных функций процессор должен располагать не­обходимым набором аппаратных средств. Основными функциональными блоками процессора являются (рис. 2.2.1):

●     блок арифметическо–логических операций, выполняющий обработку поступа­ющих данных. Перечень выполняемых операций зависит от типа микропро­цессора. В большинстве процессоров выполняются следующие операции: арифметическое сложение и вычитание; логические операции ИЛИ, И, НЕ, исключающее ИЛИ; операции инкремента и декремента; логические и арифметические сдвиги вправо и влево. Что касается операций умножения и деле­ния, то в 8–разрядных процессорах они выполняются программным способом, в 16–разрядных процессорах для их реализации предусмотрены специальные команды. Блок арифметическо–логических операций строится на основе двоичного сумматора со схемами ускоренного переноса, регистров для вре­менного хранения операндов и регистров–сдвигателей, комбинационных схем для выработки логических условий, схем десятичной коррекции и других функциональных узлов;

●     блок обработки команд, предназначенный для приема и декодирования ко­манд, а также для формирования сигналов управления узлами обработки денных;

●     блок формирования адресов, обеспечивающий адресацию к внешней памяти и внешним устройствам. Его основными узлами являются программный счет­чик, указатель стека, инкрементор–декрементор, адресный регистр;

●     блок регистров, выполняющих функции сверхоперативной внутренней памя­ти, функции временного хранения операндов и др.;

●     блок синхронизации и управления, координирующий работу всех узлов процессора;

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

В качестве примеров рассмотрим структурно–функциональную организацию 8– и 16–разрядных процессоров.

рис. 2.2.2

Восьмиразрядный процессор. Для описания основных узлов 8–разрядного процессора воспользуемся рис. 2.2.2, на котором изображена структурная схема процессора 8080 (КР580ВМ80А).

Арифметическо–логическое устройство (АЛУ) позволяет выпол­нить следующие операции над 8–разрядными операндами:

●     арифметическое сложение двух операндов с передачей переноса в старший разряд (и без него) и вычитание с передачей заема в младший разряд (и без него);

●     логическое сложение, умножение, исключающее ИЛИ и сравнение;

●     четыре вида циклических сдвигов;

●     арифметические операции над десятичными числами.

При выполнении операций один из операндов поступает в АЛУ через аккуму­лятор А и дополнительный регистр 1, другой операнд — через дополнительный регистр 2. Циклические сдвиги выполняются только над содержимым аккумулято­ра А. В аккумулятор также помещаются результаты выполненных в АЛУ операций.

Блок десятичной коррекции. При суммировании десятичных чисел может потребоваться коррекция результата, для выполнения которой в микро­процессоре предусмотрен блок десятичной коррекции. При сложении каждый разряд десятичного числа (цифра) представляется четырехразрядным двоичным кодом (полубайтом, тетрадой), например, кодом 8421. Сложение полубайтов про­исходит по правилам двоичной арифметики. Если сумма больше 9, то возникает необходимость в проведении коррекции. Коррекция осуществляется дополни­тельным прибавлением двоичного числа 0110 (6) к полученному результату. Это обусловлено тем, что вес пятого разряда двоичного числа составляет 16 деся­тичных единиц, а вес старшего разряда десятичного числа — 10, т.е. разность равна 6. Если при сложении получен результат 10... 15, то прибавление числа 6 (0110)2 приведет к появлению 1 в пятом разряде полубайта. Этот разряд «ухо­дит» в старший полубайт и забирает с собой «добавку» (6), оставляя правильный результат. В том случае, когда результат 16... 18, в пятом разряде появляется еди­ница, значение которой (до переноса) соответствует 16 в десятичном исчисле­нии. После переноса единицы пятого разряда в старший полубайт ее значение становится равным 10. Таким образом, перенос сопровождается уменьшением результата на 6 десятичных единиц, что также требует проведения его коррекции. Принцип коррекции иллюстрируется на двух приведенных примерах.

рис. 2.2.2-1

Неправильный результат обнаруживается по наличию единиц в двух старших разрядах (3–й и 2–й), в третьем и первом или по наличию переноса в следующую тетраду.

Регистр признаков. АЛУ непосредственно связано с 5–разрядным реги­стром признаков (флагов), в котором фиксируется результат выполнения некото­рых арифметических и логических операций. Регистр содержит пять триггеров:

●     триггер переноса, вырабатывающий сигнал С = 1, если при выполнении опе­раций сложения и сдвига появляется единица переноса из старшего разряда;

●     триггер дополнительного переноса, вырабатывающий сигнал V = 1, если при выполнении операции с двоично–десятичными кодами появляется единица из третьего разряда (старшего разряда младшего полубайта);

●     триггер нуля, вырабатывающий сигнал Z = 1, если результат операции равен нулю;

●     триггер знака, вырабатывающий сигнал S = 1, если значение старшего раз­ряда операнда (в дополнительном коде) равно единице, т. е. результат опера­ции — отрицательное число;

●     триггер четности, вырабатывающий сигнал Р = 1, если результат операции содержит четное число единиц.

Указанные триггеры обеспечивают выполнение в программе условных пере­ходов. Например, если результат выполнения предыдущей операции равен нулю, то триггер нуля устанавливается в единичное состояние (Z = 1), и условие пере­хода в другую часть программы окажется выполненным. Распределение разрядов регистра признаков условий в байте при передаче по шине данных следующее:

рис. 2.2.2-2

Регистры. Доступ к регистрам, в том числе к счетчику команд и указателю стека, осуществляется через мультиплексоры с помощью селектора регистров.

Регистры общего назначения (РОН) играют роль аккумуляторов, когда в них содержатся обрабатываемые данные, либо указателей, когда в них хранятся ад­реса операндов. Регистры В, С, D, Е, Н, L могут быть использованы в программе как отдельные 8–разрядные регистры или как 16–разрядные регистровые пары ВС, DE, HL. Название пары В, D, Н всегда соответствует названию первого ре­гистра пары, в котором хранится старший байт 16–разрядного числа. 16–разряд­ный регистр Н служит адресным регистром: при косвенной регистровой адреса­ции он хранит исполнительный адрес, поступающий из основной памяти.

Регистры W и Z не являются программно доступными и используются для вы­полнения команд внутри микропроцессора. В них хранятся второй и третий байт команды.

Обмен информацией между микропроцессором и внешними устройствами осуществляется через двунаправленный буферный регистр, а адресация к памя­ти и внешним устройствам — через 16–разрядный регистр адреса. Особенность буферного и адресного регистров состоит в том, что кроме состояния логическо­го нуля и единицы в них предусмотрено третье состояние, в котором выходное сопротивление регистров бесконечно велико. В этом состоянии микропроцессора внешними устройствами осуществляется прямой доступ к памяти.

Указатель команд, или программный счетчик (Program CounterPC). Счетчик указывает адрес, где находится в памяти очередной байт команды (для команд используются 3–байтовые форматы). Байты команд обычно выбираются в порядке нарастания их адресов. Поэтому после выборки каждого очередного байта схема инкремента–декремента увеличивает содержимое программного счетчика на единицу. Перед началом выборки какой–нибудь команды в счетчик заносится адрес ее первого байта. В процессе выбора 3–байтной команды содер­жимое счетчика увеличивается трижды. Обычный порядок следования адресов может быть изменен. Для этого в счетчике предусмотрена возможность записи начального адреса той части программы, именуемой подпрограммой, которая должна выполниться.

Указатель стека (Stack PointerSP) представляет собой 16–разрядный регистр, предназначенный для быстрой адресации особого вида памяти, и именуемой стеком. Стековая память используется при обслуживании прерываний и характеризуется тем, что из нее первыми выбираются данные, которые поступили последними.

В стек заносится адрес возврата к прерванной программе на время обработки микропроцессором подпрограммы, содержимое аккумулятора, регистра при­знаков.

Блок управления. Первый байт исполняемой команды записывается в регистр команд. В дешифраторе команд формируются сигналы, под действием которых в устройстве управления запускается микропрограмма для выполнения требуемой операции. Микропрограммы операций, определяемых набором ко­манд микропроцессора, «зашиты» в управляющую память. На входы устройства управления поступают:

●     две неперекрывающиеся последовательности тактовых импульсов (Ф1, Ф2) с периодом Т;

●     сигнал готовности (READY) внешних устройств и памяти к обмену информаци­ей с микропроцессором;

●     сигнал запроса от внешних устройств на прерывание (INT) выполнения ос­новной программы и переход на выполнение подпрограмм обслуживания прерывания;

●     сигнал запроса от внешних устройств на захват шин (HOLD), как правило, для организации обмена информацией по каналу прямого доступа к памяти;

●     сигнал сброса (RESET), по которому происходит начальная установка микро­процессора.

С выхода устройства управления снимаются сигналы для управления внутрен­ними узлами (на рис. 2.2.3 эти связи не показаны) процессора и внешними уст­ройствами.

Для управления внешними устройствами вырабатываются:

●     сигнал синхронизации (SYNC), указывающий на начало каждого машинного цикла — промежутка времени, необходимого для одного обращения процес­сора к внешним устройствам или памяти;

●     сигнал приема (DBIN), указывающий на готовность процессора к приему данных;

●     сигнал ожидания (WAIT), указывающий на то, что процессор находится в со­стоянии ожидания;

●     сигнал подтверждения захвата (HLDA), подтверждающий, что шины находятся в высокоомном состоянии, и внешние устройства могут обращаться к памяти напрямую, минуя процессор;

●     сигнал разрешения прерывания (INTE), свидетельствующий о том, что триг­гер разрешения прерывания в блоке управления находится в состоянии логи­ческой единицы, при котором возможен прием сигналов запроса;

●     сигнал ¯Выдача WR= 0), указывающий на то, что процессор выдал информа­цию на шину данных для ее записи в память или передачи во внешние уст­ройства.

 

Интерфейс микропроцессора. Обмен информацией между узлами процессора осуществляется по 8–разрядной внутренней шине данных, а с внеш­ней 8–разрядной шиной данных ШД — через буферный регистр. Для адресации к памяти и внешним устройствам используются 16–разрядная шина адреса ША и регистр адреса.

рис. 2.2.3

Шестнадцатиразрядный микропроцессор.

Состав процессора. Струк­турная схема 16–разрядного процессора (8086) изображена на рис. 2.2.3.

Микропроцессор содержит:

●     арифметическо–логическое устройство (АЛУ) со стандартным набором опе­раций;

●     регистр флагов или регистр слова состояния, отражающий состояние про­цессора после выполнения каждой команды. Например, флаг Z фиксирует ну­левой результат операции АЛУ;

●     восемь 16–разрядных регистров общего назначения (РОН), предназначенных для хранения адресов/данных: АХ (АН, AL), DX (DН, DL), СХ (СН, CL), ВХ (ВН, BL), BP, SP DI, SI;

●     блок формирования адреса и управления шиной, обеспечивающий формиро­вание адреса путем суммирования содержимого одного из индексных реги­стров (DI, SI) с адресом из памяти, временное мультиплексирование шины данных/адреса (ШД/А), автоматическое заполнение буфера очереди команд следующими командами. Блок формирования адреса и управления шиной со­держит буферный регистр, сумматор и логику управления шиной;

●     регистр команд, предназначенный для приема команды из внешней памяти;

●     устройство управления, обеспечивающее синхронизацию процессора, управ­ление машинными циклами и захватом шины, обслуживание запросов на пре­рывание от внешних устройств;

●     буфер очереди команд, позволяющий хранить до шести байт принимаемой команды;

●     четыре 16–разрядных сегментных регистра (CS, SS, DS, ES) и программный счетчик (Instruction Pointer IP), принимающие участие в формировании адреса.

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

CLK                              Тактовые импульсы, предназначенные для синхронизации МП

RESET                          Сброс МП в начальное состояние

READY                         Сигнал готовности ВУ, опрашиваемый МП в третьем такте каждого машинного цикла

NMI                               Сигнал немаскируемых запросов

INTR                             Сигнал маскируемых векторных запросов. Маской служит флаг разрешения прерывания IF

A16/S3...A19/S6           А16...А19 — старшие разряды адресов при обращениях к памяти. S4S3 — код сег­ментных регистров (00 — ES; 01 — SS; 10 — CS, ВВ или прерывание; 11 — DS). S5 — сигнал для индицирования флага прерывания IF; обновляется в начале каж­дого такта. S6 = 0 при S5 = IF = 1

BHE#/S7                       ВНЕ# = 0 подается на старший Н–банк при обращениях к памяти. S7— сигнал о состоянии процессора, где # — знак инверсии

RD#                               Чтение памяти и порта (в режиме минимальной конфигурации)

TEST#                           Вывод микросхемы, опрашиваемый командой WAIT#: при TEST = 1 — режим опроса через 5 тактов; при TEST = 0 — режим ожидания

MN/MX#                       Переключение режимов минимальной/максимальной конфигурации

 

В режиме минимальной конфигурации (MN/ MX = 1) МП вырабатывает следу­ющие управляющие сигналы:

ALE                              Строб адреса при записи его во внешний буферный регистр

М/IO#                           Выбор обмена память/порт ВВ

DT/R#                           Выбор направления обмена или режима записи/чтения

WR#                             Запись (по фронту) в память или порт ВВ

DEN#                            Разрешение передачи данных через шину данных

HOLD, HLDA             Сигналы запроса на захват шины и подтверждения захвата при прямом доступе к памяти

 

Сигналы для режима максимальной конфигурации (MN/ MX = 0):

S2#S1#S0#                    Код состояния или типа цикла МП: 000 — подтверждение прерывания; 001 — чтение порта ВВ; 010 — запись в порт ВВ; 011 — останов; 100 — выборка команды; 101 — чтение памяти; 111 — пассивное состояние

QS1QS0                        Код состояния очереди: 00 — пассивное состояние (нет операции); 01 — очистка очереди; 10 — выборка первого байта команды; 11 — выборка следующего байта команды

RQ/GT1, RQ/GT0       Сигналы запроса на захват шины, разрешения захвата при прямом доступе к памя­ти и освобождения шины

 

При обозначении сигналов использован символ #, означающий инверсию,

т.е. А# = А.

Рассмотрим несколько подробнее организацию очереди команд и принцип формирования адресов с помощью сегментных регистров.

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

Принцип формирования адресов. Поставим задачу сформировать 20–разрядный адрес (addr20), обеспечивающий доступ к 220 = 1М байт памяти, с помощью двух 16–разрядных регистров. Каждый из 16–разрядных регистров обеспечивает доступ к 216 ячейкам или к 64К байт памяти. Поэтому выделим в 1М байт памяти сегмент емкостью 64К байт с условием, чтобы младший разряд его шестнадцатеричного кода начального адреса был равен нулю, т. е. код адреса имел вид ХХХХ0h, где X = 0 или 1, h — обозначение 16–ричного кода (hexadecimal). Один из регистров выберем в  качестве селектора сегмента (sel), другой — в ка­честве регистра смещения (offset). Представим адрес в виде суммы

addr20 = 16 x sel + offset = XXXX0h + YYYYh.

Из выражения следует, что путем изменения содержимого селектора (ХХХХh) и регистра смещения (YYYYh) от 0000h до FFFFh, можно получить 164х164 комбина­ций адресов. Однако среди них имеются одинаковые коды. Общее число ячеек памяти с различными адресами составляет 220 – 24 + 216.

На рис. 2.2.4, а показано, как можно обеспечить доступ к памяти с числом ячеек 220 (или емкостью 1M байт при использовании однобайтных ячеек).

В качестве селектора, который можно рассматривать как указатель сегмента, в процессорах используются сегментные регистры (регистры кода CS, стека SS, данных DS и дополнительный регистр ES), а в качестве регистров смещения — регистры общего назначения (программный счетчик IP, указатель стека SP, указа­тель базы BP и регистры автоинкрементной SI и автодекрементной DI адреса­ции). Возможны следующие пары регистров: CS <—> IP, SS <—> SP, DS <—> BP, DS <—> SI, ES <—> DI. На рис. 2.2.4, б показана в качестве примера реализация принципа адре­сации с использованием пары SS <—> SP.

О сопроцессорах. Для расширения функциональных возможностей и повы­шения производительности центрального процессора микропроцессорная систе­ма может содержать дополнительные процессоры, или сопроцессоры. Например, в первых поколениях компьютеров для расширения функций центрального про­цессора 80286 использовался сопроцессор 80287.

Сопроцессор 80287 предназначен для выполнения операций над числами с плавающей точкой (запятой), которые потребовали бы от основного процессора больших затрат машинного времени. Поэтому такой сопроцессор называют чис­ловым процессором, процессором для обработки числовых данных, процессором NDP (Numeric Data Processor) или математическим сопроцессором. Сопроцессор выполняет такие сложные операции, как деление длинных операндов, вычисле­ние тригонометрических функций, извлечение квадратного корня и нахождение логарифма в 10–100 раз быстрее основного процессора. Точность результатов расчетов значительно выше точности, обеспечиваемой вычислительными моду­лями, входящими в состав самих процессоров. Выигрыш реализуется только при выполнении программ, написанных с учетом на совместное использование со­процессора с основным процессором. При совместной работе операции сложе­ния,  вычитания и умножения выполняются основным процессором и не переда­ются сопроцессору.

Сопроцессор имеет собственную систему команд (инструкций), которая от­личается от системы команд процессора. Выполняемая программа должна сама определять наличие сопроцессора и после этого использовать написанные для него инструкции. Большинство программ, рассчитанных на использование сопро­цессоров, обнаруживают его присутствие и используют предоставляемые возможности.

Наиболее эффективно сопроцессоры используются в программах со сложны­ми математическими расчетами: в электронных таблицах, базах данных, стати­стических программах и системах автоматизированного проектирования. При ра­боте с текстовыми редакторами сопроцессор не используется.

В процессорах 80486 и более поздних моделях используются встроенные со­процессоры. Они выполняются в виде устройства с плавающей точкой (Floating Point UnitFPU), входящего в состав процессора, и располагаются на том же кристалле. Инструкции над числами с плавающей точкой входят в систему ко­манд процессора.

Внутренние ресурсы процессора. К ним относятся:

●     типы данных, которые процессор способен распознавать и обрабатывать, т. е. выполнять над ними различные действия и операции;

●     программно–доступные регистры, предназначенные для хранения данных и адресов в процессе выполнения программы;

●     режимы адресации (Addressing Mode), или реализуемые процессором способы адресации. Под способом адресации будем понимать меток определения или вычисления так называемого эффективного адреса (Effective Address — ЕА), обеспечивающего доступ к операндам или передачу управления. Внутренние ресурсы встроены в процессор и отражены в его системе команд и поэтому используются не только при программировании прикладных задач, но и при непосредственном исполнении программы.

Архитектура процессоров предоставляет наиболее часто требуемые типы дан­ных, регистры и режимы адресации. Каждый процессор поддерживает несколько типов данных, режимов адресации и содержит определенный набор внутренних регистров.

Разнообразие, доступность и умелое использование ресурсов способствует повышению производительности системы. Недостающие или отсутствующие ре­сурсы допускают программное моделирование, но снижают производительность.

 

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


Рекомендуйте эту статью другим!



прерываний в микропроцессорных
нояб 04, 2015 2811

Организация прерываний в микропроцессорных системах

Прерывание в микропроцессорах (interruption) — это событие, вызывающее прекращение…
нояб 17, 2012 9763

Режимы глухого заземления нейтрали в сетях низшего напряжения (0,4 кВ)

Полная реконструкция технологических установок промышленных предприятий, включающая…
Вихревые токи 1
авг 04, 2014 5935

Вихревые токи

В электрических устройствах, приборах, машинах металлические детали способны иногда…
Реклоузеры 4
авг 30, 2015 10482

Реклоузеры - применение, достоинства и недостатки, разновидности

Реклоузер - устройство автоматического управления и защиты воздушных ЛЭП на основе…
Элегазовые высоковольтные выключатели
дек 22, 2013 3140

Элегазовые высоковольтные выключатели

В элегазовых выключателях роль дугогасящей среды выполняет элегаз (гексафторид серы SF6).…