Операционное устройство

Функции операционного устройства:

· арифметическая и логическая обработка данных;

· формирование признаков результата (флагов);

· хранение промежуточных результатов.

ОУ работает под воздействием сигналов управления Х9-Х0, поступающих из устройства управления (см. рис. 4.2). Совокупность сигналов Х9-Х0 называется словом управления Х9- Х0.

Основным блоком ОУ является арифметико-логическое устройство (АЛУ), выполняющее арифметические и логические операции. Выбор операции АЛУ осуществляется при помощи сигналов управления Х9-Х6. Например, комбинация сигналов Х9-Х6 = 0000 настраивает АЛУ на операцию сложения.

Операнды А и В поступают в АЛУ из блока универсальных регистров. Выбор регистров, подключаемых к АЛУ, производится в мультиплексорах MUX A и MUX B. Мультиплексор MUX A управляется сигналами Х1-Х0, а мультиплексор MUX B – сигналами Х5-Х3. Сигнал Х5 нужен для подключения к входу В АЛУ шины Внутренняя шина данных соединяет выход АЛУ с входами универсальных регистров, а также позволяет ОУ общаться с оперативной памятью. По этой шине данные поступают с выхода АЛУ в регистры или записываются в оперативную память. Подключением оперативной памяти к внутренней шине данных управляет УУ (на схеме не показано).

 

 

 

Подключением шины данных к блоку универсальных регистров управляет сигнал Х2. Выбор конкретного регистра осуществляют демультиплексор DMX и сигналы Х1-Х0 (они же определяют операнд А, поэтому А называется приемником, В – источником).

Регистр флагов предназначен для хранения признаков (флагов), характеризующих результат последней выполненной операции. Каждый флаг хранит один бит информации. Флаги из регистра флагов поступают в устройство управления. В данном ОУ регистр флагов содержит следующие флаги:

ZF (Zero Flag, флаг нуля) – ZF = 1, если результат равен нулю.

CF (Carry Flag, флаг переноса) – CF = 1, если имеется бит переноса.

SF (Signum Flag, знаковый флаг) – SF = 1, если старший бит равен 1.

PF (Parity Flag, флаг четности) – PF = 1, если количество битов в результате четно.

OF (Overflow Flag, флаг переполнения) – OF = 1, если результат не помещается в ячейку памяти (8-разрядный регистр).

 

Пример. Требуется сложить содержимое регистра АХ с константой 10 и записать результат в регистр АХ.

Соответствующая процессорная команда (на ассемблере) имеет вид: ADD AX, 10. Сформируем слово управления Х0-Х9, позволяющее выполнить данную команду.

В АЛУ должна выполняться операция сложения, следовательно, Х9-Х6 = 0000. Константа 10, входящая в состав команды, должна находиться в оперативной памяти (вместе с командой). Поэтому константа появляется на шине данных (чтением из памяти управляет УУ), значит, операнд В поступает с шины данных и Х5 = 1 (сигналы Х4-Х3 в данном случае не имеют значения). Сигналами Х1-Х0 определяется операнд А, он равен АХ, следовательно, Х1-Х0 = 00. Результат сложения должен записываться обратно в регистр АХ, поэтому нужно разрешить запись в регистры сигналом Х2 = 1.

В итоге получаем следующее слово управления Х9-Х0:

 

Х9 Х8 Х7 Х6 Х5 Х4 Х3 Х2 Х1 Х0

 

Шина данных – 0000 1010.

Пример. Требуется записать в регистр АХ число 10, записать в регистр ВХ число 3, умножить АХ на ВХ, результат поместить в регистр АХ.

Соответствующие команды процессора (на ассемблере) будут такими: MOV AX, 10 ; поместить в регистр АХ константу 10

MOV BX, 3 ; поместить в регистр ВХ константу 3

MUL AX, BX ; поместить в регистр АХ произведение АХ и ВХ

Сформируем последовательность слов управления Х9-Х0, позволяющую выполнить данную команду (здесь уже одним словом управления, как в примере 1, не обойтись).

Сначала построим блок-схему алгоритма умножения АХ = Мн1∙Мн2 (рис. 4.3).

 

Рис.4.3 Блок-схема алгоритма умножения

 

СХ – регистр, предназначенный для промежуточного хранения результата. В алгоритме используется цикл с предусловием (while BX<>0 do…). Проверка условия осуществляется по флагу ZF, так как перед проверкой регистр ВХ изменяется при помощи АЛУ.

Сформируем управляющие слова Х9-Х0, соответствующие каждому действию алгоритма.

1) АХ := Мн1 (MOV AX, 10). Для записи константы Мн1 = 10 в регистр АХ нужно выставить значение константы на шине данных (константа приходит из оперативной памяти) и подключить шину к входу В (Х5 = 1). АЛУ следует настроить на операцию «Повторение В» (Х9-Х6 = 0101). Для записи результата с выхода АЛУ в регистр АХ нужны сигналы Х2

= 1, и Х1-Х0 = 00. Сигналы Х4-Х3 не имеют значения.

2) СХ := 0 (этому действию никакая команда процессора не соответствует, так как процессор самостоятельно обнуляет вспомогательный регистр СХ в рамках команды MUL). Все действия аналогичны предыдущей команде: шина данных = 0000 0000, Х9-Х6 = 0101, Х5 = 1, Х2 = 1, Х0-Х1 = 10.

3) ВХ := Мн2 (MOV ВX, 3). Аналогично команде 0: шина данных = 0000 0011, Х9-Х6 = 0101, Х5 = 1, Х2 = 1, Х1-Х0 = 01.

Условие ВХ = 0. Данное условие проверяется при помощи флага ZF. Если ZF = 1 (установлен), то результат предыдущей операции (запись в регистр ВХ) равен нулю. Переход в зависимости от условия к команде 3 или к команде 5 производится устройством управления. При рассмотрении отдельно операционного устройства переход должен осуществляться вручную.

4) СХ := СХ + АХ (часть команды MUL). В АЛУ выбирается команда сложения Х9-Х6 = 0000. Операнд В берется не с шины данных, а из регистра АХ, поэтому Х5 = 0, Х4-Х3 = 00. Операнд А – это СХ, следовательно, Х2 = 1, Х1-Х0 = 10.

5) ВХ := ВХ – 1 (часть команды MUL). АЛУ можно настроить на команду вычитания константы, но так как команды увеличения/уменьшения на единицу встречаются очень часто, обычно в АЛУ включают специальные операции, которые выполняются быстрее, чем действия с константами. Таким образом, настраиваем АЛУ на операцию декремента А: Х9-Х6 = 1101. Х5 = 0, Х4-Х3 – не имеет значения, Х2 = 1, Х1-Х0 = 01 (регистр ВХ).

После команды 4 снова осуществляется проверка условия ВХ = 0.

6) АХ := СХ (часть команды MUL). В АЛУ задается операция повторения В (Х9=Х6 = 1011. Операнд В берется из регистра СХ (Х4-Х3 = 10, Х5 = 0), а запись результата с выхода АЛУ осуществляется в регистр АХ (Х2 = 1, Х1-Х0 = 00).

В итоге имеем такую последовательность управляющих слов:

 

Команд а Х9 Х8 Х7 Х6 Х5 Х4 Х3 Х2 Х1 Х0 Шина данных
0000 1010
0000 0000
0000 0011
???? ????
???? ????
???? ????

 

 








Дата добавления: 2016-12-26; просмотров: 1068;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.