Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Org_EVM-_lektsionnaya_knizhka.docx
Скачиваний:
16
Добавлен:
18.11.2019
Размер:
2.63 Mб
Скачать

4.3.2 Алу для сложения и вычитания чисел с фиксированной запятой

Операция сложения в АЛУ обычно сводится к арифметическому сложению кодов чисел путём применения инверсных кодов - дополнительного или обратного для представления отрицательных чисел. Обратный код имеет два представления нуля (+0, -0), что затрудняет анализ результата операции. Поэтому чаще используется дополнительный код.

Алгоритмы выполнения в АЛУ арифметических операций зависят от того, в каком виде хранятся в памяти ЭВМ отрицательные числа - в прямом или дополнительном. В последнем случае сокращается время выполнения операции за счёт исключения преобразования получаемого в АЛУ дополнительного кода отрицательного результата в прямой код, при этом несколько усложняется операция умножения.

Алгоритм сложения двоичных чисел с фиксированной запятой, при использовании дополнительного кода для представления отрицательных чисел, заключается в следующем. Производится сложение двоичных кодов, включая разряды знаков. Если при этом возникает перенос из знакового разряда суммы при отсутствии переноса в этот разряд, или возникает перенос в знаковый разряд при отсутствии переноса из разряда знака, то происходит переполнение разрядной сетки. Такой результат получается как при отрицательной, так и положительной суммах. Если нет переносов из знакового и в знаковый разряд суммы или есть оба эти переноса, то переполнения нет. Если получен 0 в знаковом разряде, то сумма положительна и представлена в прямом коде. Если получена 1 в знаковом разряде, то сумма отрицательна и представлена в дополнительном коде.

На рис. 4.4 представлена упрощённая структурная схема

Рисунок 4.4- Структура АЛУ для операций сложения и вычитания

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

В состав АЛУ входят n-разрядный параллельный комбинационный сумматор См, регистр сумматора РгСМ, входные регистры сумматора РгA и РгB, входной регистр АЛУ Рг1.

Операнды читаются из оперативной памяти и поступают в АЛУ по входной ШД (в дальнейшем- ШВХ). Для рассматриваемой структуры АЛУ положительные числа должны быть представлены прямым кодом, а отрицательные - дополнительным. Первый операнд размещается в РгB (первое слагаемое или уменьшаемое), а второй в РгА (второе слагаемое или вычитаемое); Рг1 связан с РгA цепями прямой и инверсной передачи кода. Прямая передача используется при операции сложения, а инверсная - при операции вычитания. Результат операции выдается из АЛУ в оперативную память по выходной ШД (в дальнейшем- ШВЫХ).

При выполнении операции в АЛУ помимо результата операции формируется код признака результата ПР, который, например, может принимать следующие значения :

Результат операции

Признак результата (ПР)

0

00

<0

01

>0

10

Переполнение

11

Примем, что код признака результата формируется комбинационной схемой выделения признаков СхПр, на входы которой поступают сигналы, соответствующие значениям всех разрядов сумматора, а также сигналы переносов из знакового разряда ПнСм[0] и в знаковый из старшего цифрового разряда ПнСм [1]. Признак переполнения (ПР=11) формируется, если булева функция ПнСм[0]ПнСм[1]vПнСм[0]ПнСм[1]=1.

Признак нулевого значения результата (ПР=00)формируется если

.

Условия выработки признаков положительного и отрицательного результатов имеют соответственно вид:

См[0](ПнСм[0]ПнСм[1]vПнСм[0]ПнСм[1]);

См[0](ПнСм[0]ПнСм[1]vПнСм[0]ПнСм[1]).

При выполнении операции сложения поступившие в АЛУ коды операндов находятся во входных регистрах РгВ и РгА сумматора. Код суммы формируется на выходах схемы СМ и фиксируется в регистре сумматора РгСм.

Операция вычитания операнда Y из операнда X Z=X-Y=X+(-Y) сводится к изменению знака вычитаемого Y и последующим применением операции сложения к операндам X и (-У). Изменению знака соответствует следующая процедура: принятый в Рг1 код числа передается в РгA по цепи инверсной передачи кода (линия с кружком на рисунке 4.4), а при сложении осуществляется подсуммирование 1 в младший разряд сумматора.

Передачи информации в регистрах АЛУ производятся отдельными микрооперациями, инициируемыми показанными на рис. 4.3.2 управляющими сигналами yi. Например, слово из Рг1 в РгА может быть передано в прямом (управляющий сигнал y3) или в инверсном (управляющий сигнал y4) кодах. Пусть для рассматриваемого АЛУ имеется набор следующих микроопераций:

y1: Pr B := ШВХ; прием 1-го операнда в Рг В с входной ШД.

y2: Pr 1 := ШВХ; прием 2-го операнда в Рг 1 с входной ШД.

y3: Pr A := Pr 1; прямая передача 2-го операнда из Рг1 в РгА.

y4: ; инверсная передача 2-го операнда из Рг1 в РгА.

y5: CM := CM+1;

y6: Pr CM := CM; передача результата из сумматора в Рг СМ.

y7: РгПр := Cx.Пр.; регистру признаков присвоить значение признака результата.

y8: ШВЫХ := Pr CM; передача результата из РгСМ на выходную ШД.

Ниже приведены описания микропрограмм сложения и вычитания на языке регистровых передач, причем микрооперация y7 состоит в выдаче в регистр признаков (находится в управляющем устройстве) кода признака и в формировании запроса прерывания при переполнении разрядной сетки.

Микропрограмма сложения :

y1: Pr B := ШВХ; прием 1-го операнда в Pr B.

y2: Pr 1 := ШВХ; прием 2-го операнда в Pr 1.

y3: Pr A:= Pr 1; прямая передача 2-го операнда в РгА.

y6: Pr См:= Pr A + Pr B.

y7: РгПр:=СхПр; регистру признаков присваивается значение полученного признака результата, причем если Пр = 11, то прерывание программы по переполнению, иначе

y8: ШВЫХ := Pr См.

Микропрограмма вычитания :

y1: Pr B := ШВХ

y2: Pr 1 := ШВХ

y4:

y5: Pr См := Pr A + Pr B +1

y7: РгПр:=СхПр

Если Пр = 11, то прерывание программы по переполнению, иначе

y8: ШВЫХ := Pr См

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]