Logo GenDocs.ru

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

Загрузка...

Базарова С. Б-М., Чемерисюк А.С., Тулохонов Э.А., Гомбоев Е. Выполнение арифметических операций в АЛУ - файл book.doc


Базарова С. Б-М., Чемерисюк А.С., Тулохонов Э.А., Гомбоев Е. Выполнение арифметических операций в АЛУ
скачать (195.2 kb.)

Доступные файлы (1):

book.doc1210kb.21.01.2007 22:44скачать

содержание

book.doc

  1   2   3   4
МИНИСТЕРСТВО ОБРАЗОВАНИЯ

РОССИЙСКОЙ ФЕДЕРАЦИИ


ВОСТОЧНО-СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ




Выполнение арифметических операций в АЛУ


Практическое пособие


Составители: Базарова С. Б-М.,

Чемерисюк А. С.,

Тулохонов Э. А.,

Гомбоев Е. Ш.

г. Улан-Удэ

2002 г.

ББК 32.97

УДК 796. 32 (075.5)

Б 173
Печатается по решению ИПЦ ВСГТУ

Рецензенты:

к.т.н., доц. Белоплотов А. Е.,

к.т.н., доц. Осипов И. С.


Базарова С. Б-М., Чемерисюк А. С.,

Тулохонов Э. А., Гомбоев Е. Ш.

Рассмотрены основные алгоритмы выполнения арифметических операций для чисел с фиксированной и плавающей запятой. Приведены примеры выполнения операций в многофункциональном АЛУ. Показаны алгоритмы функционирования АЛУ для чисел с плавающей запятой. Практическое пособие предназначено для применения в учебном процессе при изучении курсов «Теория проектирования ЭВМ» и «Организация ЭВМ».

ISBN 5-85213-067-2


  • Базарова С. Б-М., Чемерисюк А. С., Тулохонов Э. А.,

Гомбоев Е. Ш.

Глава 1. Форма представления чисел в ЭВМ

1.1. Представление числа в форме

с фиксированной запятой

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

При представлении чисел с фиксированной запятой положение запятой фиксируется в определенном месте относительно разрядов числа. Обычно подразумевается, что запятая находится или перед старшим разрядом, или после младшего. В первом случае могут быть представлены только числа, которые по модулю меньше 1, во втором – только целые числа. Используют два варианта представления целых чисел: со знаком и без знака. В последнем случае все разряды разрядной сетки служат для представления модуля числа. При представлении числа со знаком для кода знака выделяется «знаковый» разряд (обычно крайний слева). В этом разряде 0 соответствует положительному числу, а 1 – отрицательному числу.

По сложившейся в вычислительной технике традиции нумерация разрядов (бит) в разрядной сетке микропроцессоров персональных компьютеров (ПК) и микро-ЭВМ ведется справа налево, а в машинах общего назначения (ЕС ЭВМ) – слева направо.

На рис. 1.1,а,в показаны примеры форматов данных для представления двоичных чисел со знаком и без знака с фиксированной точкой для 32-разрядных микропроцессоров (МП) семейства x86, а на рис. 1.1,б,г - представление чисел в машинах общего назначения. На разрядной сетке вверху указаны веса разрядов, а внизу – нумерация разрядов.

Знак 230 229 . . . 21 20 Знак 230 229 . . . 21 20
31 30 29 . . . 1 0 0 1 2 . . . 30 31

а) б)

231 230 229 . . . 21 20 231 230 229 . . . 21 20
31 30 29 . . . 1 0 0 1 2 . . . 30 31

в) г)

Рис. 1.1. Форматы данных для представления целых двоичных чисел в процессорах:

а) – формат 32-разрядного знакового слова МП семейства х86; б) – формат 32-разрядного знакового слова процессора ЕС ЭВМ; в) – формат 32-разрядного беззнакового слова МП семейства х86; г) – формат 32-разрядного беззнакового слова процессора ЕС ЭВМ.

Если запятая фиксирована справа от младшего разряда, то в n-разрядной сетке знаковых целых чисел можно представлять положительные и отрицательные целые двоичные числа, модуль которых

1≤ ∣ X∣ ≤ 2 n-1 – 1,

что при n=32 соответствует диапазону абсолютных десятичных чисел от 1 до 2,1109.

Числа (правильные дроби могут быть с точностью до 2 -(n-1) представлены в диапазоне:

2 -(n-1) ≤ ∣X∣ ≤ 1 – 2 -(n-1).

Формат дробных чисел представлен на рис. 1.2.
Первые ЭВМ были машинами с фиксированной запятой, причем запятая фиксировалась перед старшим разрядом числа.

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

Существуют следующие форматы представления чисел с фиксированной запятой: байт со знаком (8 бит), байт баз знака (8 бит), слово со знаком (16 бит), слово без знака (16 бит), двойное слово со знаком (32 бита), двойное слово без знака (32 бита), учетверенное слово со знаком (64 бита), учетверенное слово без знака (64 бита).
^ 1
.2. Представление числа в форме


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

Представление числа с плавающей запятой в общем случае имеет вид:

; mX < 1,

где mX – мантисса числа X;

pX – порядок;

S – основание характеристики (обычно целая степень числа 2).

Форма представления числа с плавающей запятой называется также полулогарифмической, так как часть числа – характеристика – выражена в логарифмической форме.

Мантисса (правильная дробь со знаком) и порядок (целое число со знаком) представляются в системе счисления с основанием, равным S (в соответствующей двоично-кодированной системе). Знак числа совпадает со знаком мантиссы.

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

Арифметические действия над числами с плавающей запятой требуют выполнения, помимо операций над мантиссами, определенных операций над порядками (сравнение, вычитание и др.). Для упрощения операций над порядками их сводят к действиям над целыми положительными числами (целыми числами без знаков), применяя представление чисел с плавающей запятой со «смещенным порядком».

В случае представления числа с плавающей запятой со смещенным порядком к его порядку p прибавляется целое число – смещение N = 2 q, где q – число двоичных разрядов, используемых для модуля порядка.

Для удобства выполнения операций над порядками они обычно кодируются следующим образом. Если для размещения кодов порядков в разрядной сетке отводится q+1 разряд, то отрицательные и положительные порядки представляются увеличенными на 2 q, т .е. pсм = p + 2 q.

В результате порядки в диапазоне:

-2 q p 2 q –1

преобразуются в pсм, диапазон которых:

0 pсм 2 q+1 –1

(происходит увеличение порядка на 2 q).

Диапазон представимых в машине чисел с плавающей запятой зависит от основания системы счисления и числа разрядов, выделенных для изображения порядка. В двоичной системе счисления для 32-разрядных чисел для кодировки порядка используется семь битов: шесть битов – на значение порядка, один бит – на знак порядка. Коды отрицательных порядков будут иметь бит 0 в старшем разряде 7-разрядного двоичного кода, положительных – бит 1; нулевому порядку будет соответствовать код 1000000 b. Во избежание путаницы смещенный порядок называют характеристикой числа.

Знак Смещеннный Модуль мантиссы

числа порядок




pсм

m

0 1 7 8 31

Рис. 1.3. Пример машинного кода числа в форме

с плавающей запятой со смещенным порядком

Значения модулей порядков для 32-разрядных чисел лежат в диапазоне 64 (1000000 b) +63 (0111111 b). Тогда в смещенном виде (порядок увеличивается на 64 разряда) порядки будут кодироваться положительными числами, причем значению порядка 64 будет соответствовать код 0000000 b, а значению +63 – код 1111111 b. Таким образом, при кодировании положительных порядков и нуля в старшем разряде порядка всегда будет присутствовать 1.

Например: порядку +2 будет соответствовать код 1000010 b.

Точность вычислений чисел с плавающей запятой определяется числом разрядов мантиссы. С увеличением числа разрядов мантиссы увеличивается точность вычислений, но увеличивается и время выполнения арифметических операций.

Любое число в формате с плавающей запятой должно быть представлено в ЭВМ в нормализованном виде для повышения точности отображения числа. Число называется нормализованным, если мантисса mХ удовлетворяет условию:

≤ mX < 1,

т.е. в двоичной системе счисления старший разряд мантиссы отличен от нуля. В процессе вычислений может получиться ненормализованное число. В этом случае ЭВМ, если это предписано командой, автоматически нормализует его («нормализация результата» операции).

Пусть мантисса ^ S-ричного числа содержит в r старших разрядах нули. Тогда нормализация заключается в сдвиге мантиссы на r разрядов влево и уменьшении порядка на r единиц, при этом в младшие r разрядов мантиссы записывается 0. При нулевой мантиссе нормализация невозможна.

Задачи, решаемые на ЭВМ, предъявляют различные требования к точности вычислений. Поэтому во многих машинах используется несколько форматов с плавающей запятой с различным числом разрядов мантиссы.


Существуют следующие форматы представления чисел с плавающей запятой: число с плавающей запятой одинарной точности (32 бита; порядок – 8 бит, мантисса – 23 бита), число с плавающей запятой двойной точности (64 бита; порядок – 11 бит, мантисса – 52 бита), число с плавающей точкой повышенной точности (80 бит; порядок – 15 бит, мантисса – 64 бита).

^ Пример. Пусть X = 24,5. Перевести число X в формат числа с плавающей запятой, .

Для модуля порядка выделим 7 разрядов (разряды [17]), а для мантиссы выделим 10 разрядов (разряды [817]). Нулевой разряд является знаковым для числа, а первый разряд является знаковым для порядка. Так как нулевой и первый разряды определяют соответственно знак мантиссы и знак порядка, то разряды [27] будут определять модуль порядка, а разряды [817] - модуль мантиссы. Формат данного числа изображен на рис. 1.4.

разряды

[0]

[1]

[27]

[817]

биты

x

x

x x x x x x

x x x x x x x x x x




зн. мант.

зн. пор.

модуль порядка

модуль мантиссы

Рис. 1.4. Формат представления числа с плавающей

запятой с несмещённым порядком

Определим мантиссу числа mX . Для этого представим в двоичном виде целую и дробную части числа. Алгоритм перевода целого десятичного числа в двоичный вид широко описан в технической литературе и в данном пособии не приводится. Целая часть (24) в десятичном виде соответствует двоичному числу 11000 b. Для отображения целой части X необходимо 5 битов. Результат целой части числа занесём в соответствующие разряды мантиссы mX. Определим двоичный вид дробной части числа X с помощью ниже приведенного алгоритма.

В общем случае алгоритм преобразования дробной части числа к двоичному виду можно разбить на следующие этапы:

  1. Вычесть из исходного числа его целую часть. Результат занести в число R.

  2. Умножить число R на 2.

  3. Если R 1, то:

а) очередная цифра дробной части в двоичном виде равна 1;

б) из числа R вычесть 1.

Если же R < 1, то очередная цифра дробной части в двоичном виде равна 0.

  1. Пункты 2 и 3 повторяются до получения необходимого числа разрядов.

Итак, представим двоичный вид дробной части числа X согласно вышеприведенному алгоритму, описанному выше:

  1. R = 24,5 – 24 = 0,5.

  2. R = R 2 = 0,5 2 = 1.

  3. Так как R 1, то:

    1. очередная цифра дробной части в двоичном виде равна 1;

б) R = R – 1 = 1 – 1 = 0.

  1. R 2 = 0 2 = 0.

  2. Так как R < 1, то очередная цифра дробной части в двоичном виде равна 0.

  1. R 2 = 0 2 = 0.

  2. Так как R < 1, то очередная цифра дробной части в двоичном виде равна 0.

  1. R 2 = 0 2 = 0.

  2. Так как R < 1, то очередная цифра дробной части в двоичном виде равна 0.

  1. R 2 = 0 2 = 0.

  2. Так как R < 1, то очередная цифра дробной части в двоичном виде равна 0.

Согласно алгоритму преобразования, дробная часть числа X в двоичном виде представляется как 0,10000 b. Количество итераций алгоритма (количество полученных цифр дробной части) зависит от разрядности мантиссы. Для данного примера разрядность мантиссы равна 10. Для целой части числа X необходимо 5 битов, на дробную часть числа X также выделяется 5 разрядов. Дробная часть числа в двоичном виде дописывается в мантиссу mX после разрядов целой части числа. Таким образом, мантисса числа X имеет вид mX = 1100010000 b.

Определим порядок числа pX. В общем случае порядок pX равен числу разрядов, использовавшихся для представления целой части числа. То есть pX = 5, или в двоичном виде в данной разрядной сетке pX = 0000101 b.

Возвращаясь к полулогарифмической форме представления числа с плавающей запятой, запишем:

X = mX = 0,1100010000 25,

где mX – нормализованная мантисса числа, представленная как число с запятой перед старшим разрядом, mX = 1100010000;

pX = 5 – порядок числа.

Число X с фиксацией запятой после целой части будет иметь следующий двоичный вид: 11000,10000.

Чтобы убедиться в правильности представления числа в формате с плавающей запятой, произведём обратное преобразование с учетом весов разрядов целой и дробной части числа:

11000,10000 = 1 24 + 1 23 + 0 22 + 0 21 +
+ 0
20 + 1 2-1 + 0 2-2 + 0 2-3 + 0 2-4 + 0 2-5 = 24,5.

Представим порядок pX как смещённый порядок. Для этого к порядку pX прибавим целое число – смещение N = 2q, где q – число двоичных разрядов, используемых для модуля порядка (см. рис. 1.4). В данной разрядной сетке q = 6, Следовательно, N =26 = 64 (N = 1000000 b). Таким образом, смещённый порядок числа X равен: pXсм = 1000101 b.

Так как число X положительное, то его знаковый разряд равен 0. Число X в формате с плавающей запятой со смещенным порядком приведено на рис. 1.5.

Веса разрядов

26

25

24

23

22

21

20

24

23

22

21

20

2-1

2-2

2-3

2-4

2-5

0

1

0

0

0

1

0

1

1

1

0

0

0

1

0

0

0

0

знак

смещённый порядок

мантисса

Рис. 1.5. Формат представления числа X = 24,5 в формате с плавающей запятой со смещённым порядком

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

^ 2.1. Классификация АЛУ

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

  • операции двоичной арифметики для чисел с фиксированной запятой;

  • операции двоичной арифметики для чисел с плавающей запятой;

  • операции десятичной арифметики;

  • операции индексной арифметики (при модификации адресов команд);

  • операции специальной арифметики;

  • операции над логическими кодами (логические операции);

  • операции над алфавитно-цифровыми полями.

К арифметическим операциям относятся сложение, вычитание, вычитание модулей («короткие операции») и умножение и деление («длинные операции»). Группу логических операций составляют операции дизъюнкции (логическое ИЛИ) и конъюнкции (логическое И) над многоразрядными двоичными словами, сравнение кодов на равенство.

Специальные арифметические операции включают в себя нормализацию, арифметический сдвиг (сдвигаются только цифровые разряды, знаковый разряд остается на месте), логический сдвиг (знаковый разряд сдвигается вместе с цифровыми разрядами).

Можно привести следующую классификацию АЛУ.

По способу действия над операндами АЛУ делятся следующие группы:

  • последовательные;

  • параллельные.

В последовательных АЛУ операнды представляются в последовательном коде, а операции производятся последовательно во времени над их отдельными разрядами. В параллельных АЛУ операнды представляются параллельным кодом, и операции совершаются параллельно во времени над всеми разрядами операндов.

По способу представления чисел различают АЛУ:

  • для чисел с фиксированной запятой;

  • для чисел с плавающей запятой;

  • для десятичных чисел.

По характеру использования элементов и узлов АЛУ делятся на:

  • блочные;

  • многофункциональные.

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

На АЛУ, изображенном на рис. 3.1, выполняются операции сложения, вычитания, умножения и деления чисел в формате с фиксированной запятой.

В состав АЛУ входят:

  1. входной регистр Рг1 для приема операнда;

  2. входной регистр Рг3 для приема операнда;

  3. регистр Рг2 для приема, хранения и сдвига второго операнда;

  4. регистр Рг2’ для сдвига операнда, находящегося в регистре Рг2;

  5. входные регистры сумматора РгА и РгВ;

  6. сумматор СМ для суммирования поступающих на его входы данных и выработки определенных признаков;

  7. выходной регистр сумматора РгСМ для фиксации результата суммирования;

  8. счетчик циклов СчЦ.






3
.1. АЛУ для сложения и вычитания

чисел с фиксированной запятой

Для операций сложения и вычитания n-разрядных (нуле­вой разряд знаковый) двоичных чисел с фиксированной запя­той в состав АЛУ должны входить n-разрядный параллель­ный комбинационный сумматор См, регистр сумматора РгСм, вход­ные регистры сумматора РгВ и РгА, входной ре­гистр АЛУ Рг1. На АЛУ поступают операнды X и Y, а результат содержится в операнде Z.

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

На рис. 3.2 представлена упрощенная структурная схема АЛУ.

Из оперативной памя­ти по входной информа­ционной шине ^ ШИВх в АЛУ поступают операн­ды: положительные числа в прямом коде, а отрица­тельные в дополнитель­ном. Операнды размеща­ются в РгВ (первое сла­гаемое или уменьшаемое) и Рг1 (второе слагаемое или вычитаемое); Рг1 свя­зан с РгА цепями прямой и инверсной передачи кода. Прямая передача исполь­зуется при операции алгебраического сложения, а инверсная – при операции вычитания. Результат операции выдается из АЛУ по выходной информационной шине ШИВых.
При выполнении операции в АЛУ помимо результата опе­рации формируется 2-разрядный код признака результата ПР, который принимает следующие значения:

ПР

Результат

операции

Признак

результата

0

00

<0

01

>0

10

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

11

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



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

;.

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

Операция алгебраического вычитания

Z = X – Y = X + (-Y)

может быть сведена к изменению знака вычитаемого Y и опе­рации алгебраического сложения. Для этого отрицательное число необходимо перевести в дополнительный код, что выполняется следующей процедурой: принятый в Рг1 код числа передается инверсно в РгА и при сложении осуществля­ется подсуммирование 1 в младший разряд сумматора.

Передача информации в регистрах АЛУ производится от­дельными микрооперациями, инициируемыми управляющими сигналами. Слово из Рг1 в РгА может быть передано в прямом (управляющий сигнал ПрРгАП) или в инверсном (управляющий сигнал ПрРгАИ) кодах. Алгоритм сложения и вычитания чисел с фиксированной точкой приведен на рис. 3.3. Микрооперации в блоках, выполняемые в разных тактах, разделяются горизонтальной чертой.

Микрооперация ПрУБ состоит в выдаче в управляющий блок кода признака и в формировании запроса прерывания при переполнении разрядной сетки.



Рис. 3.3. Алгоритм сложения и вычитания чисел с фиксированной запятой

^ 3.2. АЛУ для умножения чисел

с фиксированной запятой

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

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

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

Количество циклов операции умножения зависит от количества цифровых разрядов множителя. Так при умножении n-разрядных чисел без знака в формате с фиксированной запятой потребуется n циклов, а при умножении n-разрядных чисел со знаком в формате с фиксированной запятой – n-1 цикл.

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

В зависимости от способа формирования суммы частичных произведений различают четыре метода выполнения умножения рис. 3.4 (нумерация метода на рисунке совпадает с обозначением метода в тексте):

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

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

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

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





а) б)





в) г)
^
Рис. 3.4. Методы выполнения умножения

Подробнее рассмотрим первый метод, получивший наибольшее применение в ЭВМ. Этот метод является наиболее экономичным, т.к. позволяет использовать все регистры одинаковой длины, равной числу разрядов сомножителей.

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

Пусть X – множимое и Y – множитель, n-разрядные числа со знаком в формате с плавающей запятой. Числа X и Y имеют (n-1) цифровых разрядов с весами, изменяющимися от 20 для (n-1) разряда до 2n-2 для первого разряда. Произведение чисел Z = X×Y можно представить в виде скобочной записи, наглядно отображающей алгоритм умножения:



где yi = (0,1) – значение i-го разряда множителя Y, X×yi – частичная сумма для i-го разряда, 2-1 – сдвиг вправо суммы частичных произведений.

Для получения результата Z производятся вычисления по приведенной формуле. При этом:

X×yi =

а умножение на 2-1 осуществляется путем сдвига числа на один разряд вправо.

Особенностью умножения двух n-разрядных чисел со знаком в формате с фиксированной запятой является необходимость представления результата умножения Z разрядностью 2×n, где один знаковый разряд и 2×n-1 цифровых разрядов. При умножении n-разрядных чисел, где n-1 разрядов - цифровых, в произведении Z’ содержится 2×(n-1)=2×n-2 цифровых разрядов. Так как число цифровых разрядов результата умножения Z разрядностью 2×n-1 на единицу больше числа 2×n-2 цифровых разрядов произведения двух чисел Z’, то после получения числа Z’ в формате двойной длины, необходимо дополнительно сдвинуть его цифровые разряды на один разряд вправо, чтобы правильно расположить произведение в разрядной сетке.

Регистр множителя и сумматор частичных произведений в АЛУ для умножении чисел представленных в прямом коде, начиная с младших разрядов, со сдвигом суммы частичных произведений вправо должны иметь цепи сдвига вправо. Регистр множимого может не иметь цепей сдвига.

Последовательность действий в каждом цикле выполнения умножения определяется младшим разрядом регистра множителя, куда последовательно одна за другой поступают цифры множителя.

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

После выполнения умножения старшие разряды произведения находятся в регистре сумматора, младшие – в регистре множителя.

На рис. 3.5 представлена структурная схема АЛУ для умножения n-разрядных целых двоичных чисел. В состав АЛУ входят: входной регистр множимого Рг1; регистры множителя Рг2 и Рг2’, на которых с помощью косой передачи вправо выполняется сдвиг множителя вправо; сумматор См для образования суммы частичных произведений; регистры сумматора: входные регистры РгА и РгВ, выходной регистр РгСм, на которых соответственно хранится текущее значение и образуется новое значение суммы; счетчик циклов СчЦ.




Рис. 3.5. Структурная схема АЛУ для умножения

чисел в формате с фиксированной запятой

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

Алгоритм умножения чисел с фиксированной запятой можно разделить на следующие этапы:

- начальная установка;

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

- коррекция результата в формате двойной длины.

На рис. 3.6. этапы выполнения операции умножения разделены пунктирной линией.

Рис. 3.6. Алгоритм умножения чисел

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

Вычисление сумм частичных произведений вы-полняется в блоках 2-6. Этот этап выполняется циклически до тех пор, пока счетчик циклов не станет равен нулю. В зависимости от значения младшего разряда множителя Рг2[n-1] к частичному произведению прибавляется либо 0, либо множимое, для чего соответствующее значение присваивается РгА; полученная сумма передается в РгСм со сдвигом вправо на один разряд и записывается в РгB. Множитель, хранящийся в Рг2, с помощью Рг2’ сдвигается вправо на один разряд, при этом старший разряд Рг2 остается свободным, и в него заносится младший разряд суммы, выходящий при сдвиге за пределы РгСм. Счетчик циклов уменьшается на единицу и проверяется на равенство нулю.

Коррекция результата в формате двойного слова. Выполняется в блоке 7. Когда счетчик циклов установится в 0, в РгСм и Рг2 будут храниться соответственно старшие и младшие разряды произведения, требующие сдвига на один разряд вправо для правильного расположения в формате двойного слова. После выполнения этого сдвига результат операции из РгСм и РгВ последовательно поступает на шину выхода.

^ Пример. Пусть X=+26, Y=+5. Вычислить Z=X×Y=26×5.

X, Y, Z - числа с фиксированной запятой. При

умножении использовать алгоритм умножения

целых положительных чисел c фиксированной

запятой начиная с младших разрядов, со

сдвигом суммы частичных произведений вправо.
В данном примере для представления чисел с фиксированной запятой выделим 6 разрядов, причём старший разряд – знаковый. Множимое X и множитель У показаны на рис. 3.7.




Веса

разрядов

24

23

22

21

20




0

1

1

0

1

0




знак

модуль множимого









































Веса

разрядов

24

23

22

21

20

0

0

0

1

0

1

знак

модуль множителя
а) б)

Рис. 3.7. Числа в формате с фиксированной запятой:

а) множитель Х = 26, б) множимое Y = 5

Умножение чисел с фиксированной запятой представим в виде таблицы (табл. 3.1) с указанием номеров блоков, состояния счётчика СчЦ, состояния сумматора, состояний регистров РгСм, РгB, Рг2, Рг2’, РгA, Рг1.

Табл. 3.1. Пример умножения чисел

с фиксированной запятой

№ бл.

СчЦ

См

РгСм

РгB

Рг2

Рг2’

РгA

Рг1

1

2

3

4

5

6

7

8

9

1

101







000000

000101







011010

2













000101










4




011010




000000







011010




5







001101







000010







100







001101

000010










2













000010










3




001101




001101







000000




5







000110







100001







011







000110

100001










2













100001










4




100000




000110







011010




5







010000







010000







010







010000

010000










2













010000










3




010000




010000







000000



  1   2   3   4



Скачать файл (195.2 kb.)

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

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации