
Книги / Книга Проектирование ВПОВС (часть 2)
.pdf
специальный регистр для хранения числа сдвигов. Количество сдвигов задаётся в форме унитарного кода, т.е. число единиц определяет число сдвигов, одна единица сдвиг на разряд, две – на два разряда и т.д. до семи единиц (сдвиг на семь разрядов). Рассмотрим сдвиг числа на семь разрядов. Во вспомогательный регистр старшей группы вначале заносятся нули, в регистр старшей группы – первая значащая группа, в регистр младшей группы заносится следующая
группа. Вспомогательный регистр младшей группы обнуляется. В регистр
числа сдвигов записывается число сдвигов в унитарном коде, начиная со старших разрядов. Затем осуществляется сдвиг. Уходящая последнего разряда единица поступает на схему анализа разрядов поступающих из младшего разряда предыдущей группы и дополнительного разряда следующей группы.
Если уходящий разряд равен нулю, а дополнительный разряд равен единице, то дополнительный разряд не изменятся, а в старший разряд группы заносится единица (размножение знака). Если уходящий и дополнительный разряды равны единице, то дополнительный разряд обнуляется и в старший разряд группы заносится нуль. В дальнейшем дополнительный разряд не изменяется и, как нетрудно убедится, в разряды младшей группы заносятся уходящие значения разрядов старшей группы. После завершения сдвига в регистры старшей и младшей групп заносится следующая пара групп, а
содержимое вспомогательного разряда младшей группы переносится во вспомогательный разряд старшей группы. Одновременно восстанавливается значение регистра числа сдвигов, и процесс продолжается над следующей парой регистров. Процесс заканчивается после обработки всех групп. Каждый этап сдвига выполнятся за такт. Общее время сдвига равно Т = tз + (mtсд) p/2 =
=tз+(mp |
|
)/2, где tз– время записи, tсд– время сдвига, m-число сдвигов, р – число |
|
групп. При времени такта = 4нс, m =8 и р =16 время сдвига равно (tз+ 256) нс.
4.4.2. Устройство параллельного сдвига
Для снижения времени сдвига используется параллельный сдвиг на заданное число разрядов. Схема устройства сдвига приведена на рис. 3.7.
272


последовательного сдвига (см. рис. 4.6). Например, увеличить число групп до четырёх. В этом случае время уменьшится в два раза и т. д.
Нетрудно увидеть, что увеличение числа групп в устройствах сдвига
(как последовательного, так и параллельного) носит регулярный характер и,
следовательно, можно иметь несколько устройств сдвига и в зависимости от требований настраивать массив сдвигателей либо на сдвиг одного поля, либо на сдвиг нескольких полей одновременно.
4.4.3. Устройство сдвига на кратное число групп
На рис. 2.8 показана схема сдвига поля на число разрядов кратное группе. Так как построить коммутатор со сдвигом произвольного числа на произвольное число групп технически не реализуемая задача, то выбирается минимальный коммутатор, в данном случае коммутатор на четыре группы со сдвигом на четыре группы (в дальнейшем коммутатор 4х4). Сдвиг на произвольное число групп большее, чем четыре группы, осуществляется последовательно в соответствии с формулой R = n + m, где n – число сдвигов по 4-е группы, m – число сдвигов на число групп меньше четырёх.
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
8 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
Коммутатор |
|
|
Коммутатор |
|
|
Коммутатор |
|
|
Коммутатор |
|
||||
Рег.1 |
|
|
|
Рег.2 |
|
|
|
Рег.3 |
|
|
|
Рег.4 |
|
|
|
4 схемы ИЛИ |
4 схемы ИЛИ |
4 схемы ИЛИ |
Рис. 4.8.
На рис. 4.9 приведён пример сдвига на 5 групп. На первом этапе осуществляется сдвиг на 4-е группы, а на втором этапе сдвиг на одну группу.
274

1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
0 |
0 |
0 |
0 |
1 |
2 |
3 |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
5 |
6 |
7 |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
9 |
10 |
11 |
12 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
8 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
0 |
0 |
0 |
0 |
0 |
1 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
8 |
9 |
10 |
11 |
12 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
Рис. 4.9
Таким образом, сочетание устройств сдвига на группы и поразрядный сдвиг позволяют реализовать полный набор сдвигов необходимых для реализации функциональных зависимостей.
4.4.4. Устройство умножения на числа произвольного формата
При вычислении функций возникает необходимость умножения на числа произвольного формата [37]. В частности, при умножении на обратную величину простого числа или обратную величину факториала. Укажем, что умножение осуществляется на значение периода и далее производится сдвиг произведения на значения длины периода. Затем исходное произведение и сдвинутое на период поле суммируются. Затем текущее сдвинутое на период поле вновь сдвигается на период. Далее сдвинутое поле добавляется к текущему произведению. Операция продолжается до тех пор, пока не будет получен результат с заданной погрешностью.
275

Рассмотрим пример. Пусть необходимо умножить поле 2х4(две группы
по четыре бита). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Пример. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Х = 0.1101 0.1101; |
Z = 0.(000111), |
|
|
|
|
|
|
|
|
|
||||||||||
где Х – исходное число; Z – двоичное представление дроби 1/11. |
|
|
||||||||||||||||||
Умножение в двоичном коде |
|
|
|
|
|
|
|
|
|
|
|
|||||||||
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
0, 0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
0, 0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
0, 0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
0, 0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
0, 0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
|
0, 0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
|
|
|
|
|
|
|
0, 0 |
0 |
0 |
1 |
|
0, 0 |
1 |
1 |
1 |
|
0, 0 |
0 |
1 |
0 |
0, 1 |
1 |
0 |
0 |
|||
Умножение в коде “опережающий перенос” |
|
|
|
|
|
|||||||||||||||
0, 1 |
1 |
0 |
1 |
|
0, 1 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
||
0, 0 |
0 |
0 |
1 |
|
0, 1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
||
0, 0 |
0 |
0 |
0 |
|
0, 1 |
1 |
0 |
1 |
|
0, 1 |
1 |
0 |
1 |
|
|
|
|
|||
|
|
|
|
|
|
0, 0 |
1 |
1 |
0 |
|
0, 1 |
1 |
1 |
0 |
0, 1 |
|
|
|
||
0, 0 |
0 |
0 |
1 |
|
0, 0 |
1 |
1 |
0 |
|
0, 1 |
0 |
1 |
1 |
0, 1 |
|
|
|
|||
|
|
|
|
|
|
0, 0 |
0 |
1 |
1 |
|
0, 1 |
1 |
1 |
1 |
0, 0 |
1 |
|
|
||
|
|
|
|
|
|
0, 1 |
1 |
0 |
0 |
|
0, 0 |
0 |
1 |
1 |
0, 1 |
1 |
0 |
0 |
||
0, 0 |
0 |
0 |
1 |
|
0, 0 |
1 |
1 |
1 |
|
0, 0 |
0 |
1 |
0 |
0, 1 |
1 |
0 |
0 |
Как видим, результаты совпадают.
На рис. 4.10 приведена структура устройства, обеспечивающего умноже-
ние на период.
Оно содержит:
-умножитель, обеспечивающий получение первого значения поля;
-устройство сдвига на период, позволяющее сформировать требуемое число полей, для обеспечения требуемой погрешности результата;
-накапливающий сумматор, позволяющий сформировать окончательный результат.
276

Вначале осуществляется умножение на период. После определения результата, в дальнейшем умножение можно не проводить, заменив его сдвигом числа на период, который представляется в виде некоторого числа групп и одной неполной группы. Таким образом, сдвиг осуществляется на число полных групп и затем на оставшееся число двоичных разрядов. Так как сдвиги выполняются значительно быстрее умножения, то данный метод оказывается более эффективным.
x |
2 |
|
Z = Период |
||
|
||
|
Умножитель |
Регистр
Сдвигатель на n-групп
Сдвигатель m-разрядов
Накапливающий сумматор групп
Регистр
Рис. 4.10
Устройство содержит умножитель на период, который имеет полное число групп. Если период не кратен числу групп, то в неполной группе младшие разряды дополняются нулями до полной группы. Кроме того,
устройство содержит два сдвигателя. Один для сдвига на кратное число групп и второй на число разрядов меньшее группы. Накапливающий сумматор для получения полного произведения.
277
4.4.5. Устройство реализации итеративного цикла при вычислении
функций
Наиболее длительной операцией при вычислении функций является операция итеративного цикла, так как она требует большого числа повторений операций умножения и суммирования. Основным циклом, как было показано выше, является цикл формирования экстраполированного значения искомого
ряда:
Э |
Э |
|
|
x2 |
|
x2 |
|
x2 |
|
|
x2 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Ui 1 |
Ui 2 |
|
|
|
1 |
|
1 |
|
|
|
. |
|||
|
аi 1 аi 2 |
аi 3 аi 4 |
1 |
|
|
|||||||||
|
|
|
аi |
аi 1 |
|
|
|
|
аi 5 аi 6 |
|
В данном случае выбран шаг экстраполяции размерностью четыре элемента. Последовательная реализация шага экстраполяции не приносит выигрыша, так как фактически эквивалентна последовательному вычислению
Э |
Э |
Э |
Э |
. Поэтому для уменьшения времени выполнения операций |
Ui 1 |
,Ui 2 |
,Ui 3 |
,Ui 4 |
выбираем параллельный метод. Для его реализации потребуется не менее пяти умножителей.
Устройство содержит пять умножителей, четыре устройства сдвига,
четыре сумматора. Устройства сдвига содержат два блока; блок сдвига на число кратных группе и блок сдвига на число разрядов меньшее группы.
Формирование обратного произведения аi аi 1 осуществляется следующим образом: вначале исходное произведение представляется в виде произведения простых чисел 2-rр1р2 … рк сдвинутое на r разрядов. Периоды обратных величин простых чисел хранятся в форме произведения периодов на степень числа 2 (см. табл. 4.7).
В табл. 3.7 представлены такие произведения (К – исходные числа – знаменателя, n – количество групп). Значение произведения представляется в форме двоичных периодических чисел.
278
Таблица 4.7
|
K |
1/К (двоичное представление) |
Число сдвигов, суммирований |
|||
ai |
|
ai+1 |
|
и умножений |
|
|
|
|
|
|
|
|
|
|
|
|
|
Сдвиг |
Сумм |
Умн |
1 |
|
2 |
2-1 |
1 |
0 |
0 |
3 |
|
4 |
2-2(0,01) |
2(1+n) |
n |
0 |
5 |
|
6 |
2-1(0,01)(0,0011) |
1+2n+4n |
2n |
n |
7 |
|
8 |
2-3 (0,001) |
3(1+n) |
n |
0 |
9 |
|
10 |
2-1(0,01)(0,01) |
1+2n+2n |
2n |
0 |
11 |
|
12 |
2-2(0,01)(0,000111) |
2+2n+6n |
2n |
n |
13 |
|
14 |
2-1(0,001)(0,0001 0011 1011) |
1+3n+(12n-2) |
2n |
2n |
15 |
|
16 |
2-4(0,01)(0,0011) |
4+n+n |
2n |
n |
17 |
|
18 |
2-1(0,01)(0,01)(0,001) |
1+2n+2n+3n |
3n |
0 |
19 |
|
20 |
2-2(0,0011)(0,0000111100101) |
2+4n+5n+n*1гр |
2n |
2n |
21 |
|
22 |
2-1(0,01) (0,001) (0,000111) |
1+2n+3n+6n |
3n |
n |
23 |
|
24 |
2-3(0,01)(0,0000111100101) |
3+2n+5n+n*1гр |
2n |
n |
25 |
|
26 |
2-1(0,0011) (0,0011) |
1+2x4n+n+n*1гр |
3n |
3n |
|
|
|
(0,0001001010) |
|
|
|
27 |
|
28 |
2-2(0,01) (0,01) (0,01) (0,001) |
2+3x2n+3n |
4n |
0 |
29 |
|
30 |
2-1(0,01) (0,0011) (0,0000101001) |
1+(2+4+2)n+n*1гр |
3n |
2n |
|
|
|
|
|
|
|
31 |
|
32 |
2-5 (0,00001) |
5+5n |
n |
0 |
33 |
|
34 |
2-1(0,01) (0,001) (0,000111) |
1+(2+3+6)n |
3n |
n |
35 |
|
36 |
2-2(0,01) (0,01) (0,001) (0,0011) |
2+(2n+2n+3n+4n) |
4n |
n |
37 |
|
38 |
2-1(0,000011100101) |
1+(4+1гр)n+(3+4гр) |
2n |
2n |
|
|
|
(0.000001101110 |
n |
|
|
|
|
|
10110101110010010010011) |
|
|
|
39 |
|
40 |
2-3(0,01)(0,0011)(0,00010011 1011) |
3+2n+4n+(4+1гр)n |
3n |
2n |
41 |
|
42 |
2-1(0,01) (0,00100000 01101101 |
1+2n+(4+5гр)n |
3n |
(n-3) |
|
|
|
01011001 |
|
|
|
|
|
|
01110010 01001001 0011) |
|
|
|
43 |
|
44 |
2-2(0,000111) (0,00000101 |
2+6n+(4+3гр)n |
2n |
n+(n- |
|
|
|
11110100 00010111 1101) |
|
|
3) |
45 |
|
46 |
2-1(0,01) (0,01) |
1+6n+(4+1гр) |
4n |
2n |
|
|
|
(0,0011)(0,00001111 0101) |
|
|
|
279
