Почему могут спускать колеса авто смотрите тут kamael.com.ua
Как снять комнату в коммунальной квартире здесь
Дренажная система водоотвода вокруг фундамента - stroidom-shop.ru




состав процессораОсновные функции и состав процессора.

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

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

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

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

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

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

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

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

рис. 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



Counter —

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

Указатель стека (

Stack



Pointer —

SP) представляет собой 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 — старшие разряды адресов при обращениях к памяти.

S4

S3 — код сег­ментных регистров (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 — пассивное состояние



QS1

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



RQ/

GT1,

RQ/GT0

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



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

т.е. А# = А.

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

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

Принцип формирования адресов. Поставим задачу сформировать 20–разрядный адрес (

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

h, где X = 0 или 1,

h — обозначение 16–ричного кода (

hexadecimal). Один из регистров выберем в качестве селектора сегмента

(sel), другой — в ка­честве регистра смещения

(offset). Представим адрес в виде суммы



addr20 = 1

6 x sel +

offset =

XXXX0h +

YYYYh.

Из выражения следует, что путем изменения содержимого селектора (ХХХХ

h) и регистра смещения (

YYYYh) от 0000

h до

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

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

M байт при использовании однобайтных ячеек).

В качестве селектора, который можно рассматривать как указатель сегмента, в процессорах используются сегментные регистры (регистры кода

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



Unit —

FPU), входящего в состав процессора, и располагаются на том же кристалле. Инструкции над числами с плавающей точкой входят в систему ко­манд процессора.

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

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

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

режимы адресации (

Addressing



Mode), или реализуемые процессором способы адресации. Под способом адресации будем понимать меток определения или вычисления так называемого эффективного адреса (

Effective



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

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

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

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



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