- •I умножение полиномов
- •Цель работы и задание:
- •1.1 Цель работы:
- •1.2 Задание
- •2.1 Краткая информация о работе ячейки:
- •2.2 Краткая информация о работе процессора
- •4.1 Рассчитаем коэффициенты результирующего полинома:
- •II умножение матриц
- •Цель работы и задание:
- •1.1 Цель работы:
- •2 Провести экспериментальные исследования работы такого процессора.
- •1.2 Задание
- •2.1 Краткая информация о работе ячейки
- •Ход работы
- •3.2 Изменение содержимого ячеек процессора на каждом такте работы:
- •Аналитическое решение
- •2.2 Краткая информация о работе процессора
- •Ход работы
- •3.1 Вводим в программу cyst_mm размерность матриц (4х6 и 6х4) и исходные данные:
- •3.2 Изменение содержимого ячеек процессора на каждом такте работы:
- •Аналитическое решение
2.2 Краткая информация о работе процессора
Для систолического умножения двух полиномов n ОЭ соединяются каскадно.
Рисунок 2 – Схема систолического процессора
На рисунке 2 показано 5 ОЭ для умножения полиномов, соединенных каскадно.
ОЭ показаны прямоугольниками, внутри которых высвечиваются четыре числа (сверху-вниз):
1я строка – содержимое RG1;
2я строка – содержимое RG2;
3я строка – содержимое RG3;
4я строка – содержимое RG4;
S – общий синхросигнал;
S1 – синхротакт, где Ts1=2Ts (т.е. S срабатывает в 2 раза чаще, чем S1);
S и S1показаны желтыми стрелками, направленными вниз, в активном состоянии, и серым – в пассивном.
Р – микрооперация для записи bj в RG3. Формируется, если слово а0 дополнить однобитовым указателем – флагом переднего края.
а, b – исходные коэффициенты двух полиномов.
С – результат произведения полиномов, считывается с левого крайнего ОЭ последовательно справа-налево в виде последовательности чисел.
Связи, показанные на схеме процессора, соединяют между собой одномерные регистры ОЭ. В ходе передачи числа последовательно перегружаются из регистра в регистр.
Последовательность {bj} обгоняет последовательность {al}, и в тех ОЭ, в регистрах Рг1 и Рг2 которых встретятся соответствующие значения aL и bi-L, образуются L-е слагаемое i-й суммы (1): Ci = aL*bi-L, которое вначале заносится в регистр Рг4, а через такт (в два раза медленнее продвижения коэффициентов bj) переписываются в Рг4 соседнего ОЭ в качестве элемента накопленной суммы. В дальнейшем к этому элементу CiL прибавляются новое L-е слагаемое и результат вначале также заносится в Рг4:
СiL = CiL + aLbi - L,
а затем сдвигается далее влево, где к нему добавляется следующий член суммы (1) и так далее до сдвига в последний левый элемент ОЭ0 где наконец образуется полное значение i-й суммы (1).
Т.к. последовательность {bj} вдвое быстрее проходит цепь ОЭ, она может покинуть их, так и не встретившись со всеми необходимыми номерами L коэффициентов {aL}. Чтобы это предотвратить применяются дополнительные регистры Рг3, в которые последовательно, слева - направо загружаются на долговременное хранение, до конца выполнения всех операций, все коэффициенты {bj} в следующем порядке: b0, b1, b2, ... , bn-1. Они используются для встречи с теми aL, парные коэффициенты bi-L которых уже ушли вправо и не смогли бы встретиться с требуемыми коэффициентами aL.
Ниже приведена временная диаграмма работы процессора, для степени полинома n=5.
Номер такта S |
Входные последовательности |
Содержимое регистров |
Номера регистров |
|||||||||||||
ОЭ0 |
ОЭ1 |
ОЭ2 |
ОЭ3 |
ОЭ4 |
||||||||||||
1 |
A2 |
0 |
A1 |
0 |
A0 |
0 |
0 |
0 |
0 |
Rg1 |
||||||
В4 |
B3 |
B2 |
B1 |
B0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0р |
0 |
0 |
0 |
0 |
Rg3 |
|||||||
|
|
|
|
C0 |
0 |
0 |
0 |
0 |
Rg4 |
|||||||
2 |
А2 |
0 |
A1 |
0 |
A0 |
0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
В4 |
B3 |
B2 |
B1 |
B0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
0 |
0 |
0 |
0 |
Rg3 |
|||||||
|
|
|
|
C0 |
0 |
0 |
0 |
0 |
Rg4 |
|||||||
3 |
0 |
A2 |
0 |
A1 |
0 |
A0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
В4 |
B3 |
B2 |
B1 |
B0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1р |
0 |
0 |
0 |
Rg3 |
|||||||
|
|
|
|
0 |
С10 |
0 |
0 |
0 |
Rg4 |
|||||||
4 |
0 |
A2 |
0 |
A1 |
0 |
A0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
В4 |
B3 |
B2 |
B1 |
B0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
0 |
0 |
0 |
Rg3 |
|||||||
|
|
|
|
0 |
C10 |
0 |
0 |
0 |
Rg4 |
|||||||
5 |
A3 |
0 |
A2 |
0 |
A1 |
0 |
A0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
В4 |
B3 |
B2 |
B1 |
В0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2р |
0 |
0 |
Rg3 |
|||||||
|
|
|
|
С10 |
0 |
С20 |
0 |
0 |
Rg4 |
|||||||
6 |
A3 |
0 |
A2 |
0 |
A1 |
0 |
A0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
В4 |
B3 |
B2 |
В1 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
0 |
0 |
Rg3 |
|||||||
|
|
|
|
C1 |
0 |
C20 |
0 |
0 |
Rg4 |
|||||||
7 |
0 |
A3 |
0 |
A2 |
0 |
A1 |
0 |
A0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
В4 |
B3 |
В2 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3р |
0 |
Rg3 |
|||||||
|
|
|
|
0 |
C20 |
0 |
С30 |
0 |
Rg4 |
|||||||
8 |
0 |
A3 |
0 |
A2 |
0 |
A1 |
0 |
A0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
В4 |
В3 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
0 |
Rg3 |
|||||||
|
|
|
|
0 |
C21 |
0 |
C30 |
0 |
Rg4 |
|||||||
9 |
А4 |
0 |
A3 |
0 |
A2 |
0 |
A1 |
0 |
А0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
В4 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4р |
Rg3 |
|||||||
|
|
|
|
C21 |
0 |
C30 |
0 |
С40 |
Rg4 |
|||||||
10 |
А4 |
0 |
A3 |
0 |
A2 |
0 |
A1 |
0 |
А0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
C2 |
0 |
C31 |
0 |
С40 |
Rg4 |
|||||||
11 |
0 |
А4 |
0 |
A3 |
0 |
A2 |
0 |
A1 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
C31 |
0 |
С40 |
0 |
Rg4 |
|||||||
12 |
0 |
А4 |
0 |
A3 |
0 |
A2 |
0 |
A1 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
C32 |
0 |
C41 |
0 |
Rg4 |
|||||||
13 |
0 |
0 |
А4 |
0 |
A3 |
0 |
A2 |
0 |
А1 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
C32 |
0 |
C41 |
0 |
С50 |
Rg4 |
|||||||
14 |
0 |
0 |
А4 |
0 |
A3 |
0 |
A2 |
0 |
А1 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
C3 |
0 |
C42 |
0 |
С51 |
Rg4 |
|||||||
15 |
0 |
0 |
0 |
А4 |
0 |
A3 |
0 |
A2 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
C42 |
0 |
С51 |
0 |
Rg4 |
|||||||
16 |
0 |
0 |
0 |
А4 |
0 |
A3 |
0 |
A2 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
C43 |
0 |
C52 |
0 |
Rg4 |
|||||||
17 |
0 |
0 |
0 |
0 |
А4 |
0 |
A3 |
0 |
А2 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
C43 |
0 |
C52 |
0 |
С62 |
Rg4 |
|||||||
18 |
0 |
0 |
0 |
0 |
А4 |
0 |
A3 |
0 |
А2 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
C4 |
0 |
C53 |
0 |
С62 |
Rg4 |
|||||||
19 |
0 |
0 |
0 |
0 |
0 |
А4 |
0 |
А3 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
C53 |
0 |
С62 |
0 |
Rg4 |
|||||||
20 |
0 |
0 |
0 |
0 |
0 |
А4 |
0 |
А3 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
C54 |
0 |
C63 |
0 |
Rg4 |
|||||||
21 |
0 |
0 |
0 |
0 |
0 |
0 |
А4 |
0 |
А3 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
C54 |
0 |
C63 |
0 |
С73 |
Rg4 |
|||||||
22 |
0 |
0 |
0 |
0 |
0 |
0 |
А4 |
0 |
А3 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
C5 |
0 |
C64 |
0 |
С73 |
Rg4 |
|||||||
23 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
А4 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
C64 |
0 |
С73 |
0 |
Rg4 |
|||||||
24 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
А4 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
C65 |
0 |
С74 |
0 |
Rg4 |
|||||||
25 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
А4 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
C65 |
0 |
С74 |
0 |
С84 |
Rg4 |
|||||||
26 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
А4 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
C6 |
0 |
С75 |
0 |
С84 |
Rg4 |
|||||||
27 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
С75 |
0 |
С84 |
0 |
Rg4 |
|||||||
28 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
С76 |
0 |
С85 |
0 |
Rg4 |
|||||||
29 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
С76 |
0 |
С85 |
0 |
0 |
Rg4 |
|||||||
30 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
С7 |
0 |
С86 |
0 |
0 |
Rg4 |
|||||||
31 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
С86 |
0 |
0 |
0 |
Rg4 |
|||||||
32 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
С87 |
0 |
0 |
0 |
Rg4 |
|||||||
33 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
С87 |
0 |
0 |
0 |
0 |
Rg4 |
|||||||
34 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
С8 |
0 |
0 |
0 |
0 |
Rg4 |
|||||||
35 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg1 |
||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Rg2 |
|||||||
|
|
|
|
B0 |
B1 |
B2 |
B3 |
В4 |
Rg3 |
|||||||
|
|
|
|
0 |
0 |
0 |
0 |
0 |
Rg4 |
|||||||
