Смекни!
smekni.com

Основы информатики 2 2 (стр. 11 из 12)

47. Структура АЛУ для сложения и вычитания чисел с фиксированной точкой

Функцию по преобразованию информации в процессоре выполняет АЛУ.

АЛУ выполняет арифметические и логические операции много разрядных двоичных кодов, называемые операндами.

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

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

Целочисленые АЛУ.

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

При выполнении опер. вычитания в целоч. АЛУ она сводится к опер. сложения. Для чего вычитаемое преобр. АЛУ в обратный или доп. код и складыв. с уменьшаемым в доп. коде. Переполнение фиксируется также.

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

Структура АЛУ для слож. и выч. (см. рис. 1)

РгА, РгВ – входные буферные n – разрядные регистры – сумматоры.

РгСМ – выходной рег. сумматора.

Рг 1 – входной рег. АЛУ предусм. передачу его содержимого в РгА в прямом или инверсном коде

ПР – комбинационная схема для формирования признака р-та.

Работа АЛУ.

Данные в АЛУ поступают по ШИвх в доп. коде из ОП или РОН процессора. Первый операнд командой ПрРгВ (при вычитании – уменьшаемое) заносится в рег. РгВ. Второй операнд командой ПрРг1 (при вычитании – вычитаемое) заносится в рег. Рг1, откуда при выполнении сложения командой ПрРгАП передается в прямом коде в РгА. При вычитании ком. ПрРгАИ передается в инверсном виде в РгА. Операнды с выходов РгА и РгВ поступают на сумматор, где складываются, при выч. к р-ту присум. 1. Р-т с вых. сумматора командой ПрРгСМ записывается в РгСМ и выставляется на ШИвых , откуда может быть передан в РОН или ОП. При выполнении операций сложения и вычитания АЛУ формирует признак р-та, для чего исп. комбинационная схема ПР. Признак р-та формируется в виде двух битового кодав соотв с 0 – 00, <0 – 01, >0 – 10, переполнение – 11.

48. Алгоритм умножения и структура АЛУ для умножения чисел с фиксированной точкой

Операция умножения сводится к выполнению последовательных операций сложения и сдвига. АЛУ для умножения n-разрядных чисел должно предусматривать 2n-разрядов для результата.

Поскольку в сомножителях старшие биты – знаковые, после выполнения операции умножения множимого на все цифровые биты множителя, цифра старшего бита произведения будет располагаться в бите (2n-1). Для правильного расположения произведения в разрядной сетке после выполнения умножения требуется дополнительный сдвиг вправо на один быт, чтобы располагаться в бите (2n-2). Может быть реализовано в прямом и обратном коде. Наиболее просто реализовать, преобразовав сомножители к без знаковой форме.

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

Рассмотрим алгоритм умножения двоичных чисел с младших цифр множителя при неподвижном множимом и сумма частичных произведений сдвигается вправо.

Алгоритм состоит в следующем :

Складываются по модулю 2 знаковые биты сомножителей (это дает знак результата);

Сомножители из дополнительного кода преобразуются в беззнаковую форму (в модуль числа);

Сумма частичных произведений устанавливается равной нулю;

Анализируется (начиная с младшего разряда) текущая цифра множителя. Если она равна 1, к сумме частичных произведений прибавляется множимое, если =0 – ничего не прибавляется, либо прибавляются нули.

Осуществляется сдвиг суммы частичных произведений вправо на один бит

Пункты 4 и 5 повторяются до тех пор, пока не будет выполнено умножение на все цифровые биты множителя.

Результат сдвигается на 1 бит вправо для правильного расположения произведения в разрядной сетке

Беззнаковый результат преобразуется в дополнительный код с учетом знака произведения, полученного в пункте 1.

Структура АЛУ для умножения чисел

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

В структуре АЛУ не показаны блоки обеспечивающие вычисление знака произведения и преобразования сомножителей из дополнительного кода в беззнаковую форму. Будем предполагать, что такие блоки есть, так что сомножители по шине ШИВх приходят уже в беззнаковой форме. В схеме отсутствуют также цепи считывания результата в ОП.

Множимое хранится в регистрах Рг1 и РгА, множители – в Рг2 и Рг2’; частичные произведения – РгВ и РгСм.

СЧЦ – счетчик циклов, хранит количество циклов умножения, выполняемых в пунктах 4 и 5. ПРИНЦИП РАБОТЫ

Работа начинается с загрузки сомножителей. По команде ПрРг1 множимое загружается с ШИВх в Рг1, по команде ПрРг2 – множитель загружается в Рг2. В СЧЦ командой СЧЦ:=n-1 загружается количество циклов умножения, а в РгВ по команде РгВ:=0 начальное значение суммы частичных произведений. Анализируется младший бит Рг2. Если он равен 0, то в РгА заносится 0 (РгА:=0), если равен 1 – из Рг1 в РгА передается множимое. Осуществляется сдвиг множителя вправо на 1 бит (Рг2’:=П(1)Рг2, Рг2:=Рг2’). В освободившийся старший бит Рг2’ передается цифра младшего разряда суммы частичных произведений с выхода сумматора (Рг2’[n-1]:=СМ[0]). Затем осуществляется сдвиг суммы частичных произведений вправо на один бит (РгСМ:=П(1)СМ). После чего содержимое РгСМ передается во входной регистр сумматора РгВ (РгВ:=РгСМ). После выполнения этих операций на входе сумматора (выход РгВ) оказывается сдвинутое на один бит вправо частичное произведение, а в младшем бите Рг2 следующая цифра множителя. После этого ПР уменьшает содержимое счетчика циклов на 1 (СЧЦ:=СЧЦ-1). ПР анализирует содержимое СЧЦ, и если он не равен 0 продолжает повторение цикла умножения в соответствии с операциями описанными выше. Если СЧЦ=0, умножение завершено.

АЛУ выполняет дополнительный сдвиг произведения вправо на 1 бит для правильного расположения его в разрядной сетке (). После выполнения этих команд старшие биты –разрядного произведения окажутся в регистре РгВ, а младшие в Рг2, откуда могут быть считаны, преобразованы в дополнительный код и переданы в ОП.

Рассмотренное функционирование АЛУ требует микропрограммного управления, т.е. устройство управления для таких АЛУ должно содержать блоки микропрограммного управления, в котором в ПЗУ хранится микропрограмма состоящая из последовательности микрокоманд обеспечивающих функционирование АЛУ в соответствии с рассмотренным алгоритмом. Это снижает быстродействие, т.к. требует довольно большие затраты времени на дешифрацию команд и выработку сигнала для устройств АЛУ. Кроме того реализация алгоритма умножения требует не менее () такта.

49. Аппаратная реализация умножения чисел с фиксированной точкой

В современных ЭВМ для ускорения операции умножения используется ее аппаратная реализация. В качестве примере такой реализации рассмотрим матричный умножитель. Он позволяет выполнять операцию умножения за 1 такт и требует для реализации сумматор и логические элементы.

Однобитовая операция умножения совпадает с логической операцией конъюнкции. И может быть реализована с помощью логического элемента «И». Для построения многоразрядных умножителей (например 4- и 2-разрядных) требуется 8 двухвходовых логических элементов «И» и 4-разрядный сумматор.

Умножение осуществляется за 1 такт.

50. Алгоритм деления и структура АЛУ для деления чисел с фиксированной точкой

Операция деления в двоичной ариф. сводится к выполнения операций вычитанию из делимого делителя и сдвига. Текущая цифра частного определяется по знаку рез-та вычитания : 1 – если рез-т положителен и 0 –рез-т отриц. При выполнении вычитания неподвижными м. оставаться частичные остатки, а делитель сдвигаться вправо, либо наоборот, но остатки сдвиг-ся влево. Деление м. производиться как восстан-ем остатка, так и без восстан-я.

При реализации АЛУ для деления чисел фиксир. точкой, для делимого выделяется 2n разрядов, для делителя и частного n разрядов. Старший бит в операндах имеет 2n-1 цифровых разрядов, а делитель и частное n-1. Для размещения в разрядной сетке частного операций z=x/y, z<2n-1 для размещения в разрядной сетке, поэтому цифра частного, получаемого пои первом вычитании д.б. =0( частич. остаток отриц.). Первое вычит-е делителя из делимого рассматр-ся как пробное. Операция деления не вып-ся, если рез-т этого деления положителен.