Арифметико-логическое устройство

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

Рис.5.2. Функциональная схема АЛУ

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

Регистры — быстродействующие ячейки памяти различной длины: регистр 1 имеет разрядность двойного слова, а регистр 2 — разрядность слова. При выпол­нении операций в регистр 1 помещается первое число, участвующее в операции, а по завершении операции — результат; в регистр 2 — второе число, участвующее в операции (по завершению операции информация в нем не изменяется). Ре­гистр 1 может и принимать информацию с кодовых шин данных и выдавать ин­формацию на них; регистр 2 только получает информацию с этих шин.

Схемы управления принимают по кодовым шинам инструкций управляющие сигналы от устройства управления и преобразуют их в сигналы для управления работой регистров и сумматора АЛУ.

АЛУ выполняет арифметические операции «+», «-», «х» и «> только над двоич­ной информацией с запятой, фиксированной после последнего разряда, то есть только над целыми двоичными числами. Выполнение операций над двоичными числами с плавающей запятой и над двоично-кодированными десятичными числа­ми осуществляется с привлечением математического сопроцессора или по специ­ально составленным программам.

Рассмотрим в качестве примера выполнение команды умножения. Перемножают­ся числа 1101 и 1011 (числа для простоты взяты 4-битовыми). Множимое находит­ся в регистре 1, имеющем удвоенную по отношению к регистру 2 разрядность; множитель размещается в регистре 2. Операция умножения требует для своего


Физическая и функциональная структура микропроцессора



выполнения нескольких тактов. В каждом такте число из регистра 1 проходит в сумматор (имеющий также удвоенную разрядность) только в том случае, если в младшем разряде регистра 2 находится 1. В данном примере в первом такте чис­ло 1101 пройдет в сумматор, и в этом же первом такте число в регистре 1 сдвига­ется на 1 разряд влево, а число в регистре 2 — на 1 разряд вправо. В конце такта после сдвигов в регистре 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 стал равным 0, опера­ция умножения заканчивается. В результате в сумматор последовательно поступят и будут сложены числа: 1101, 11010, 1101000; их сумма 10001111 (143 в десятичной системе) и будет равна произведению чисел 1101 х 1011 (13 х 11 десятичные).