
- •I умножение полиномов
- •Цель работы и задание:
- •1.1 Цель работы:
- •1.2 Задание
- •2.1 Краткая информация о работе ячейки:
- •2.2 Краткая информация о работе процессора
- •Ход работы
- •3.2 Изменение содержимого ячеек процессора на каждом такте работы:
- •Аналитическое решение
- •4.1 Рассчитаем коэффициенты результирующего полинома:
- •II умножение матриц
- •Цель работы и задание:
- •1.1 Цель работы:
- •2 Провести экспериментальные исследования работы такого процессора.
- •1.2 Задание
- •2.1 Краткая информация о работе ячейки
- •2.2 Краткая информация о работе процессора
- •Ход работы
- •3.1 Вводим в программу cyst_mm размерность матриц (4х6 и 6х4) и исходные данные:
- •3.2 Изменение содержимого ячеек процессора на каждом такте работы:
- •Аналитическое решение
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
“Ижевский Государственный Технический Университет им. М.Т.Калашникова”
Кафедра “Вычислительная техника”
ОТЧЕТ
по лабораторным работам №1,2
по дисциплине Вычислительные Системы
на тему: «Систолический процессор для умножения полиномов»,
«Систолический процессор для умножения матриц»
Выполнил: студент гр. М02-784-1
|
|
Щукин О.П. |
Проверил: к.т.н., доцент |
|
Петухов К.Ю. |
Ижевск, 2013
I умножение полиномов
Цель работы и задание:
1.1 Цель работы:
1 Изучить принцип работы систолического процессора для умножения полиномов.
2 Провести экспериментальные исследования работы такого процессора.
1.2 Задание
Необходимо провести экспериментальные исследования работы систолического процессора для умножения полиномов. Ввести свои наборы данных согласно выбранному варианту и получить результаты умножения. Необходимо вести запись содержимого процессора на каждом такте работы в пошаговом режиме. Сделать вывод о работе систолического процессора, доказать повышение производительности по сравнению с обычным процессором.
Степень полинома А равна 5.
Степень полинома В равна 4.
Полином А: (1; 3; 5; 7; 9).
Полином В: (2; 4; 6; 8; 0).
Теория
2.1 Краткая информация о работе ячейки:
Рассмотрим систолический процессор для умножения двух полиномов. Коэффициенты произведения двух полиномов получают
в результате свертки коэффициентов исходных полиномов:
(1)
где C0 = A0*B0, C1 = A1*B0 + A0*B1, C2 = A2*B0+A1*B1+A0*B2, ...
… C2n-2 = An-1 * Bn-1, C2n-1 = 0.
Поэтому целесообразно в каждом ОЭ систолического процессора выполнять одинаковую операцию умножения и накапливающего сложения:
С=С+А*В.
Для умножения - сложения выбираются только такие пары коэффициентов AL и Bj, сумма индексов которых равна индексу искомого коэффициента Ci (1):
i = L + j, где j = i - L.
Рисунок 1 – Структура операционного элемента
На рисунке 1 показана структурная схема операционного элемента систолического процессора для умножения полиномов.
В составе каждого ОЭ имеются 4 регистра для временного хранения операторов al и bj и промежуточного результата С, а также для долговременного хранения операнда bj, записываемого в RG3 по микрооперации P.
RG1 – используется для хранения исходных коэффициентов полинома al, запись коэффициента происходит по синхросигналу s1.
RG2 - используется для хранения исходных коэффициентов полинома bj, запись коэффициента происходит по синхросигналу s.
RG3 – используется для долговременного хранения операнда {bj}, запись операнда происходит по микрооперации р.
RG4 – используется для хранения накопленной суммы.
БУ (блок умножения) – предназначен для выполнения однотактного быстрого умножения, осуществляет перемножение операнда {al} с операндом {bj} и передачу произведения на блок сложения.
БС (блок сложения) – предназначен для накапливающего суммирования, осуществляет сложение.
Для систолического умножения двух полиномов n таких ОЭ соединяются каскадно.
Исходные коэффициенты двух полиномов вводятся последовательно слева - направо в крайней левой ОЭ0 в виде двух последовательностей чисел:
an-1, ... , a3, a2, a1, a0 ───────>,
bn-1, ... , b3, b2, b1, b0 ───────>,
а коэффициенты результата произведения полиномов считываются с левого крайнего ОЭ0 последовательно справа - налево (встречно исходным данным) в виде последовательности чисел:
<──────── c0, c1, c2, c3, ... , c2n-2.
Числа bj вводятся в каждом синхротакте, а числа al - в два раза медленнее, через один такт. Результаты образуются слева на входе через один синхротакт S.