ВЫЧИСЛИТЕЛЬНЫЙ МОДУЛЬ

Полезная модель относится к области вычислительной техники, и может быть использована для решения вычислительно трудоемких задач за счет распараллеливания и аппаратной реализации в программируемых логических интегральных схемах (ПЛИС) и в заказных больших (БИС) и сверхбольших (СБИС) интегральных схемах критических участков алгоритмов.
n
n
Известна адаптивная система обработки данных (RU №105487 U1, МПК G06F 15/16, заявлено 25.02.2011, опубликовано 10.06.2011, БИ №16), содержащая N линеек обработки, состоящих из M модулей обработки, M блоков выбора каналов и выходной магистрали передачи сигналов, блок памяти заявок, регистр задания режимов работы модулей обработки, мультиплексор/демультиплексор выходных магистралей, N дешифраторов адреса, приоритетный шифратор.
Недостатком известной системы является большой объем аппаратных средств и сложная структура распараллеливания потока заявок системы.
Известна адаптивная вычислительная система (RU №2477882 C2, МПК G06F 15/16, заявлено 23.06.2011, опубликовано 20.03.2013, БИ №8), содержащая несколько (K) вычислительных модулей, несколько (M) мультиплексных модулей связи с периферийными подсистемами, модуль запоминающего устройства, системный модуль, троированную общесистемную магистраль подключения всех модулей.
Недостатком данной системы является сложная структура информационных взаимосвязей между блоками и большой объем аппаратных средств.
Наиболее близким устройством того же назначения, к заявленной полезной модели, по совокупности признаков является, принятый за прототип базовый модуль многопроцессорной вычислительной системы (RU №86332 U1, МПК G06F 15/16, заявлено 21.05.2009, опубликовано 27.08.2009, БИ №24), содержащий вычислительное поле, состоящее из 16 вычислительных элементов, расположенных в узлах двумерной решетки 4×4 и соединенных между собой ортогональной системой связей по близкодействию, контроллер обращений, предназначенный для передачи информации между базовым модулем и управляющей ЭВМ, и блоки распределенной памяти.
Недостатком данного модуля является сложная матрично-конвейерная структура и широкие информационные связи между блоками.
Причинами, препятствующими достижению технического результата, являются значительные аппаратные затраты и высокие требования к синхронизации блоков.
Задача, на решение которой направлена предлагаемая полезная модель, заключается в создании вычислительного модуля, предназначенного для выполнения параллельно-конвейерных вычислений, уменьшение аппаратных и временных затрат.
2
Для решения данной задачи в полезную модель, содержащую вычислительное поле из вычислительных элементов и блок памяти, дополнительно введены блок генератора переменной X, входной и выходной буферы, группа классификаторов, элемент ИЛИ, четыре внешних входа и четыре внешних выхода, причем вычислительное поле содержит L вычислительных элементов, соответствующих количеству каналов распараллеливания, каждый вычислительный элемент содержит S ступеней конвейера, блок памяти выполнен с дисциплиной обслуживания FIFO, группа классификаторов содержит L элементов, первый внешний вход данных и второй внешний вход разрешения приема соединены соответственно с первым и вторым входами входного буфера, у которого первая, вторая и третья группы выходов соединены с соответствующими группами входов блока генератора переменой X, первый выход которого является первым внешним выходом переполнения, четвертая группа выходов входного буфера соединена с первыми группами входов всех вычислительных элементов, вторые группы входов которых подключены ко второй группе выходов блока генератора переменой X, третья группа входов вычислительных элементов содержит ℓ=logL разрядов, на которых задается номер соответствующего вычислительного элемента L в двоичном коде, выходы вычислительных элементов соединены с первыми группами входов соответствующих элементов группы классификаторов, вторые и третьи группы входов которых соединены соответственно с пятой и шестой группами выходов входного буфера, выходы группы классификаторов соединены с входами элемента ИЛИ и первой группой входов буферной памяти FIFO, вторая группа входов которой соединена со второй группой выходов блока генератора переменной X, третий вход разрешения записи в буферную память FIFO соединен с выходом элемента ИЛИ, а четвертый вход разрешения считывания из буферной памяти FIFO соединен с внешним третьим входом модуля, который также соединен со вторым входом выходного буфера, первый и второй выходы буферной памяти FIFO являются соответственно вторым и третьим внешними выходами модуля, первый выход буферной памяти FIFO также соединен с четвертыми входами всех вычислительных элементов, третья информационная группа выходов буферной памяти FIFO соединена с первой информационной группой выходного буфера, третий вход которого соединен с четвертым внешним входом разрешения выдачи модуля, группа информационных выходов выходного буфера является четвертой внешней группой выходов данных модуля.
На фиг. 1 приведена схема предлагаемого вычислительного модуля. На фиг. 2 приведен формат входных данных вычислительного элемента. На фиг. 3 приведен формат выходных данных вычислительного модуля.
1
2
L
1
2
L
На фиг. 1 приняты следующие обозначения: вычислительные элементы ВЭ_1, ВЭ_2, …, ВЭ_L - 1, 1, …, 1 (индекс указывает номер элемента), блок генератора переменой X 2, блок буферной памяти FIFO 3, входной буфер 4, выходной буфер 5, группа классификаторов 6, 6, …, 6 элемент ИЛИ 7, первый внешний вход данных 8, второй внешний вход разрешения приема данных 9, третий внешний вход разрешения считывания 10 из буферной памяти FIFO 3, четвертый внешний вход 11 разрешения выдачи, первый внешний выход 12 переполнения генератора переменной X 2, второй внешний выход 13 - «Память полна», третий внешний выход 14 - «Память пуста», четвертая внешняя группа выходов 15 выходных данных.
i
i-1
i
Входной буфер 4 соединен с внешними входами модуля: первым входом 8 - внешним входом данных и вторым входом 9 - разрешения приема данных в модуль. Первая, вторая и третья группы выходов входного буфера 4 соединены с соответствующими группами входов блока генератора переменой X 2, на которых задаются начальное значение Xмин, максимальное значение Xмакс и шаг изменения переменной Xшаг. На втором выходе блока генератора переменой X 2 формируется текущее значение переменной X=X+Xшаг из диапазона изменения Xмин-Xмакс. Первый выход блока генератора переменой X 2 является первым внешним выходом 12 переполнения генератора переменной X 2 (достижения значения X=Xмакс).
1
2
L
i
1
2
L
2
Каждый вычислительный элемент ВЭ_1, ВЭ_2, …, ВЭ_L (1, 1, …, 1) является синхронным конвейером, состоящим из S ступеней обработки и преобразования входных данных. На первые группы входов всех вычислительных элементов, соединенных с четвертой группой выходов входного буфера 4, поступает постоянное значение K - коэффициент для вычислений. Вторые группы входов всех вычислительных элементов ВЭ соединены со вторым выходом блока генератора переменой X 2. На эти входы поступает текущее значение переменной X. Третья группа входов вычислительных элементов 1, 1, …, 1 содержит ℓ=logL разрядов, по которым задается номер соответствующего блока L в двоичном коде.
1
2
L
1
2
L
Выходы вычислительных элементов 1, 1, …, 1 соединены с первыми группами входов соответствующих элементов группы классификаторов 6, 6, …, 6 вторые и третьи группы входов которых соединены соответственно с пятой и шестой группами выходов входного буфера 4, по которым задаются соответственно двоичные коды «Эталона» и «Маски».
1
2
L
1
2
L
Выходы элементов группы классификаторов 6, 6, …, 6 соединены с входами элемента ИЛИ 7 и первой группой входов буферной памяти FIFO 3. Вторая группа входов буферной памяти FIFO 3 соединена со второй группой выходов блока генератора переменной X 2. Третий вход разрешения записи в буферную память FIFO 3 соединен с выходом элемента ИЛИ 7, а четвертый вход разрешения считывания из буферной памяти FIFO 3 соединен с внешним третьим входом 10 вычислительного модуля, который также соединен со вторым входом выходного буфера 5. Первый и второй выходы буферной памяти FIFO 3 являются соответственно вторым 13 и третьим 14 внешними выходами модуля, на которых формируются соответственно сигналы «Буфер полон» и «Буфер пуст». Первый выход буферной памяти FIFO 3 также соединен с четвертыми входами разрешения работы СЕ всех вычислительных элементов 1, 1, …, 1. Третья информационная группа выходов буферной памяти FIFO 3 соединена с первой информационной группой выходного буфера 5, третий вход СЕ которого соединен с четвертым внешним входом 11 разрешения выдачи модуля. Группа информационных выходов выходного буфера 5 является четвертой внешней группой выходов данных 15 вычислительного модуля.
2
L
Коэффициент K, задаваемый на первые группы входов вычислительных элементов ВЭ, имеет разрядность k. Переменная X и соответствующие входы и выходы блока генератора переменой X 2 имеют разрядность v. Третья группа входов вычислительных элементов ВЭ имеет разрядность ℓ=logL. Входные данные для вычислений содержат (v+ℓ) разрядов (фиг. 2). Двоичные коды «Эталона» и «Маски», а также выходы вычислительных элементов ВЭ имеют разрядность z. Буферная память FIFO 3 и выходной буфер 5 имеют разрядность (v+L) (фиг. 3). Поле номера вычислительного элемента N формата данных буферной памяти FIFO 3 содержит L разрядов, в соответствии с количеством вычислительных элементов ВЭ. В данных разрядах устанавливаются единичные значения, если значения выходов соответствующих вычислительных элементов ВЭ, с учетом кода «Эталона» и значений разрядов «Маски», соответствуют заданному классу.
Предлагаемый вычислительный модуль работает следующим образом.
1
2
L
Перед началом работы обнуляются внутренние регистры конвейеров вычислительных элементов 1, 1, …, 1 и блока генератора переменной X 2, внутренние счетчики буферной памяти FIFO 3. При этом на первом внешнем выходе переполнения 12 и втором внешнем выходе «Память полна» 13 формируются нулевые сигналы, а на третьем внешнем выходе «Память пуста» 14 формируется единичный сигнал.
Работа модуля начинается с загрузки во входной буфер 4 значений Xмин, Xмакс, Xшаг, коэффициента K, «Эталона» и «Маски» при единичном сигнале разрешения приема СЕ по входу 9. Загрузка может выполняться последовательно по одному разряду, или параллельно-последовательными группами разрядов, например, байтами, или параллельно все разряды поступают одновременно. Входной буфер 4 может быть выполнен на сдвиговом регистре.
1
2
L
1
2
L
ℓ
Далее минимальное значение переменной X заносится в блок генератора переменной X 2. Коэффициент K, значение переменной X и номер вычислительного элемента L в двоичном коде (фиг. 2) поступают на входы всех вычислительных элементов 1, 1, …, 1, в которых синхронно на S ступенях конвейеров выполняются их обработка и преобразования, как функция Z=F(K, X*2+L). Результат на выходах вычислительных элементов 1, 1, …, 1 будет получен через S шагов. Одновременно на каждом шаге в блоке генератора переменной X 2 вычисляются следующие значения переменной X, как Xi=X(i-1)+Xшаг.
1
2
L
1
2
L
1
2
L
Результат с выходов вычислительных элементов 1, 1, …, 1 поступает на соответствующие элементы группы классификаторов 6, 6, …, 6. Классификаторы вырабатывают решение о соответствии вычисленного результата, с учетом кода «Эталона» и значений разрядов «Маски», заданному классу. Если значения результата соответствует заданному классу, то на выходе соответствующего классификатора 6, 6, …, 6 формируется единичное значение. Данные сигналы поступают на элемент ИЛИ 7, на выходе которого формируется единичный сигнал, если на входах есть хотя бы одно единичное значение.
1
2
L
1
2
L
Единичный сигнал с выхода элемента ИЛИ 7 разрешает выполнить запись в буферную память FIFO 3 значение переменной X с блока генератора переменной X 2, «продвинутое на S шагов», и значения с выходов группы классификаторов 6, 6, …, 6 которые соответствуют номерам вычислительных элементов 1, 1, …, 1. При этом на третьем внешнем выходе «Буфер пуст» 14 формируется нулевой сигнал, который является признаком того, что в буферной памяти FIFO 3 записаны данные.
При единичном значении сигнала на третьем внешнем входе разрешения считывания 10 проводится считывание данных с выхода буферной памяти FIFO 3 и запись их в выходной буфер 5. Далее по единичному сигналу разрешения выдачи по входу 11 проводится выдача данных с выходного буфера 5 на четвертую внешнюю группу выходов данных 15 модуля. Выдача данных на внешнюю группу выходов данных 15 модуля, как и при загрузке модуля, может выполняться последовательно по одному разряду, или параллельно-последовательными группами разрядов, например, байтами, или параллельно все разряды передаются одновременно. Выходной буфер 5 может быть выполнен на сдвиговом регистре.
1
2
L
При полном заполнении буферной памяти FIFO 3 формируется единичный сигнал на втором внешнем выходе «Память полна» 13, по которому приостанавливается работа конвейеров всех вычислительных элементов 1, 1, …, 1. Работа конвейеров продолжится после выдачи данных хотя бы из одной ячейки буферной памяти FIFO 3 и формировании нулевого сигнала на втором внешнем выходе «Память полна» 13.
1
2
L
Приведенный порядок работы блоков будет продолжаться до тех пор, пока не будет сформирован единичный сигнал на первом внешнем выходе 12 переполнения генератора переменной X 2. По данному единичному сигналу в блоке генератора переменной X 2 завершается формирование новых следующих значений переменной Xi. Работа конвейеров всех вычислительных элементов 1, 1, …, 1 продолжится еще в течение S шагов. Одновременно анализируются второй 13 и третий 14 внешние выходы модуля, на которых формируются соответственно сигналы «Память полна» и «Память пуста».
Сигналом окончания работы вычислительного модуля является наличие единичных сигналов на первом внешнем выходе 12 переполнения генератора переменной X 2 и третьем внешнем выходе 14 - «Память пуста». Это соответствует тому, что значения переменной X были сформированы для всего диапазона изменения Xмин-Xмакс и буферная память FIFO 3 «пуста».
Предлагаемый вычислительный модуль может быть выполнен на ПЛИС или в виде специализированной СБИС.
Вышеизложенные сведения позволяют сделать вывод, что предлагаемый вычислительный модуль обладает регулярностью структуры и связей, может быть использован для выполнения высокопроизводительных параллельно-конвейерных вычислений и соответствует решению поставленной задачи.