Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[205]

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

Схема, изображённая на рис. 29.17, называется устройством побитового сложения (bit-serial adder). Чтобы схема работала правильно, период между импульсами должен быть не меньше задержки сумматора (иначе к следующему тику не будет готов выходной бит переноса). Значения на входы подаются с интервалом в один период. В момент первого тактового импульса на входы сумматора подаются значения ао, &о и 0 (рис. 29.17 (а); мы предполагаем, в начальном состоянии на выходе регистра имеется значение 0). На выходе через некоторое время появляются бит суммы so (который выдаётся наружу) и бит переноса с\. Бит переноса поступает (по проводу) на вход регистра, но лишь после второго импульса появляется на выходе регистра. Вместе со значениями а\ и Ь\ он даёт на выходе s\ и с2 (рис. 29.17(b)) и т. д. Так продолжается, пока не будут обработаны все разряды слагаемых, после чего на входы подаются нули (ап = 0, Ьп = 0), и на выход подаётся старший разряд суммы (совпадающий с последним битом переноса; sn = сп) см. рис. 29.17(e).

29.4.2.Характеристики схемы

Как мы говорили, тактовая частота зависит от задержки в схеме из функциональных элементов (в данном случае - задержки в элементе суммирования FA), поскольку все вычисления должны закончиться до начала следующего тактового импульса. В данном случае сумматор имеет глубину 0(1), а для получения всех выходов необходимо га+1 периодов, так что общее время работы составляет (п + 1)0(1) = 0(га). Размер схемы равен 0(1).

29.4.3.Каскадное сложение и побитовое сложение

Каскадный сумматор можно рассматривать как развёрнутую схему устройства побитового сложения: теперь за каждый период между импульсами отвечает свой сумматор.

Такое развёртывание, заменяющее время пространством, можно сделать для любой тактированной схемы, соединяя несколько экзмепляров схемы (столько, сколько тактов требует её работа).

Конечно, при этом увеличивается число элементов - зато не нужны синхронизирующие импульсы от тактового генератора. Такая схема на практике работает несколько быстрее, поскольку в тактированной схеме на каждом такте нужно оставлять некоторый запас времени (чтобы вычисления успели произойти), а после развёртывания выходы каскада сразу же попадают на входы следующего, ничего не ожидая.


29.4.4.Одномерный умножитель

Матричный умножитель, рассмотренный в разделе 29.3, имеет размер ©(га2). В этом разделе мы рассмотрим два тактированных умножителя, использующих одномерный массив элементов (размера в (га)) вместо двумерного. Более быстный из них имеет время работы в (га) (как и матричный умножитель)

Оба этих умножителя используют алгоритм, который в Америке называют русским народным алгоритмом умножения (Russian peasants algorithm). Он показан на рис. 29.18 (а). Сомножители а и Ь записываются рядом, и под каждым из них пишется колонка чисел. В левой колонке число на каждом шаге делится на 2 (остаток отбрасывается); в правой - умножается на 2. Так продолжается до тех пор, пока в левой колонке не будет 1. После этого складываются числа из правой колонки, стоящие напротив нечётных чисел в левой.

На первый взгляд этот алгоритм кажется удивительным, но он становится понятным, если записать все числа в двоичной системе: при этом становится ясным, что он представляет собой вариант умножения в столбик. Строки, в которых слева появляется нечётное число, соответствуют единичным разрядам в а, их вклад в сумму есть умноженное на соответствующую степень двойки число Ь (см. рис. 29.18 (Ь)).

Рис. 29.18 29.18 Умножение 19 на 29 с помощью русского народного алгоритма. В колонке а каждое следующее число получается из предыдущего делением на 2 (остаток отбрасывается), а в колонке Ъ -умножением на 2. Складываются числа из правой колонки, напротив которых стоят нечётные числа в левой (выделены серым цветом), (а) Сложение в десятичной системе. (Ь) То же в двоичной системе.

29.4.5.Простая реализация

Простой вариант реализации русского народного алгоритма в виде тактированной схемы умножения га-битовых чисел показан на рис. 29.19 (а). В нём используется 2га групп по 3 регистра. Верхние регистры хранят биты сомножителя а, средние отвечают за сомножитель Ь, а в нижных постепенно формируется произведение р. Содержимое г-го а-регистра перед j-м шагом обозначается а\ , аналогично для Ь и р. Вместе все биты в а-регистрах образуют двоичную запись числа, которогое обозначется (по состоянию

&(°) = Ъ и = 0. Поддерживается инвариант

aU) . ьО) + ptt) = а-Ь(29.6)


(см. упражнение 29.4-2). На j-m шаге производятся следующие действия:

1.Если а0 = 1 (т. е. а) нечётно), то p+1) = + &(•?), иначе р(з+1) - р(])

2.Число а сдвигается вправо на одну позицию (делится на 2 с остатком):

(j+i) { а\1 если 0 г 2га - 2 [ 0 если г = 2га - 1

3.Число Ь сдвигается влево на одну позицию (умножается на 2):

(j+i) \ а\-\ если 1 i 2га - 1 [ 0 если i = О

После га шагов получаем ап) = 0, поэтому инвариант гарантирует, что р(п) = а Ь.

Наш алгоритм требует га шагов. Если на каждом шаге использовать для сложения каскадный сумматор, то каждый шаг занимает время О(га), поэтому общее время работы составляет 0(га2). Схема состоит из Зга регистров, каскадного сумматора размера О(га) и О (га) элементов, формирующих частичные произведения (операция

AND над а0 и 6-битами). Общий размер схемы равен О (га).

Рис. 29.19 29.19 Два одномерных умножителя. Показано умножение 5-битовых чисел а = 19 = (10011) на Ъ = 29 = (11101) и содержимое регистров перед каждым шагом; значащие биты выделены серым цветом, (а) Простой умножитель (время работы 0(п2)). На каждом шаге используется каскадный сумматор, поэтому интервал между тактами должен быть не меньше Q(n). (Ь) Быстрый умножитель, использующий сложение с запоминанием переносов. Каждый шаг требует времени 0(1). Всего требуется 2п - 1 = 9 шагов, показаны первые 5. (После этого остаются сложить и и v, для чего достаточно продолжить тот же процесс сложения с запоминанием переносов.)

29.4.6. Быстрая реализация

Уменьшения времени работы можно добиться, используя вместо каскадного сложения сложение с запоминанием переносов (см. рис. 29.19 (Ь)). Теперь вместо трёх регистров на каждый разряд будут четыре; в двух из них по-прежнему хранятся цифры чисел а и Ь, а вместо числа р будт храниться два числа и и v, причём поддерживается инвариант

а(з) . ь0) + и(Л + VU) = а 6едгао(29.7)

так что роль р играет сумма и + v (см. упражнение 29.4-2). Вначале = г>(°) = 0. (Это соответствует использованию алгоритма



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137] [стр.138] [стр.139] [стр.140] [стр.141] [стр.142] [стр.143] [стр.144] [стр.145] [стр.146] [стр.147] [стр.148] [стр.149] [стр.150] [стр.151] [стр.152] [стр.153] [стр.154] [стр.155] [стр.156] [стр.157] [стр.158] [стр.159] [стр.160] [стр.161] [стр.162] [стр.163] [стр.164] [стр.165] [стр.166] [стр.167] [стр.168] [стр.169] [стр.170] [стр.171] [стр.172] [стр.173] [стр.174] [стр.175] [стр.176] [стр.177] [стр.178] [стр.179] [стр.180] [стр.181] [стр.182] [стр.183] [стр.184] [стр.185] [стр.186] [стр.187] [стр.188] [стр.189] [стр.190] [стр.191] [стр.192] [стр.193] [стр.194] [стр.195] [стр.196] [стр.197] [стр.198] [стр.199] [стр.200] [стр.201] [стр.202] [стр.203] [стр.204] [стр.205] [стр.206] [стр.207] [стр.208] [стр.209] [стр.210] [стр.211] [стр.212] [стр.213] [стр.214] [стр.215] [стр.216] [стр.217] [стр.218] [стр.219] [стр.220] [стр.221] [стр.222] [стр.223] [стр.224] [стр.225] [стр.226] [стр.227] [стр.228] [стр.229] [стр.230] [стр.231] [стр.232] [стр.233] [стр.234] [стр.235] [стр.236] [стр.237] [стр.238] [стр.239] [стр.240] [стр.241] [стр.242] [стр.243] [стр.244] [стр.245] [стр.246] [стр.247] [стр.248] [стр.249] [стр.250] [стр.251] [стр.252] [стр.253] [стр.254] [стр.255] [стр.256] [стр.257] [стр.258] [стр.259] [стр.260] [стр.261] [стр.262] [стр.263] [стр.264] [стр.265] [стр.266] [стр.267] [стр.268] [стр.269] [стр.270] [стр.271] [стр.272] [стр.273] [стр.274] [стр.275] [стр.276] [стр.277] [стр.278] [стр.279] [стр.280] [стр.281] [стр.282] [стр.283] [стр.284] [стр.285] [стр.286] [стр.287] [стр.288] [стр.289] [стр.290] [стр.291] [стр.292] [стр.293] [стр.294]