Процессорный модуль

Иллюстрации

Показать все

Реферат

 

Изобретение относится к области вычислительной техники и может быть использовано при построении высокопроизводительных систолических матричных процессоров с программируемой динамической адаптацией алгоритма обработки и маршрута передачи данных, например, при цифровой обработке сигналов и изображений. Целью изобретения является повышение пpoизвoдитeJJьности. С этой целью в модуль, содержащий блок 7 микропрограммного управления , операционньй блок 8, регистр 9 результата, блок 3 стековой памяти и блок 6 памяти результата, введены блок 1 формирования адреса, блок 2 памяти программ, демультиплексор II, второй операционньй блок 5, блок 4 Ф О) со 4: СО 4 Ю Й/г.5

COOS СОВЕТСКИХ

СОЦИАЛИСТИЧЕСКИХ

РЕСПУБЛИК

„„ЯК„1343421 А 1 ю 4 G 06 F !5/00

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

К А ВТОРСН0МУ СВИДЕТЕЛЬСТВУ л

ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР

ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ (21 ) 3961053/24-24 (22) 30.09.85 (46) 07.10.87. Бюл. № 37 (71) Ленинградский политехнический институт им. И.И. Калинина (72) В.Н.Самошин, В.Д.Ефремов, В. В.Никонов, С. Г. Кравцов и В.А.Мельников (53) 681.325 (088.8) (56) Патент США ¹ 4314349, кл. G 06 F 15/16, опублик. 1982.

Заявка Великобритании№ 2129589, кл. G 06 F 15/00, опублик. 1984. (54) ПРОЦЕССОРНЪЙ МОДУЛЪ (57) Изобретение относится к области вычислительной техники и может быть использовано при построении высокопроизводительных систолических матричных процессоров с программируемой динамической адаптацией алгоритма обработки и маршрута передачи данных, например, при цифровой обработке сигналов и изображений. Целью изобретения является повышение производитеЛьности. С этой целью в модуль, содержащий блок 7 микропрограммного управления, операционный блок 8, регистр 9 результата, блок 3 стековой памяти и блок 6 памяти результата, введены блок формирования адреса, блок 2 памяти программ, демультиплексор !1, второй операционный блок 5, блок 4

1343421 сравнения, счетчик 10 этапов вычислений и блок синхронизации, включающий генератор 12 тактовых импульсов, Изобретение относится к вычислительной технике и может быть использовано при построении высокопроизводительных систолических матричных процессоров с программируемой динамической-адаптацией алгоритма обработки и маршрута передачи данных, например при цифровой обработке сигналов и изображений.

Целью изобретения является повышение производительности модуля.

На. фиг. 1 показан процессорный модуль и восемь секторов возможного обмена информации в систолическом массиве; на фиг. 2 — примеры возможных минимальных и максимальных путей прохождения данных между произвольными модулями в массиве; на фиг. 3 структурная схема модуля; на фиг. 4— функциональная схема блока формирования адреса; на фиг. 5 — функциональ, ная схема блока памяти программ; на фиг. 6 — функциональная схема блока .стековой памяти; на фиг. 7 — функциональная схема памяти "Первым пришел, первым обслужен"; на фиг. 8— функциональная схема блока сравнения; на фиг. 9 — функциональная схема второго операционного блока," на фиг. 10— функциональная схема блока памяти результатов; на фиг. 11 — функциональная схема блока микропрограммного управления; на фиг. 12 — функциональная схема первого операционного блока., на фиг. 13 — временная диаграмма функционирования модуля.

Процессорный модуль (фиг. 3 ) содержит. блок 1 формирования адреса, блок 2 памяти программ, блок 3 стековой памяти, блок 4 сравнения, второй операционный блок 5, блок 6 памяти результатов, блок 7 программного управления, первый операционный блок 8, регистр 9 результата, счетчик 10 этапов вычислений, демультиплексор 11, блок синхронизации, содержащий генетриггер 13 запуска, элементы ИЛИ 14

15, элемент И 16 и одновибратор 17.

13 ил. ратор 12 тактовых импульсов, триггер 13 запуска R,S-типа, первый элемент

ИЛИ 14, второй элемент ИЛИ 15, элемент И 16 и одновибратор 17 (по фрон5 ту импульса ).

Кроме того, на фиг. 3 показаны также первый информационный вход 18, - вход 19 синхронизации, вход 20 зада10 ния режима, вход 21 начальной уста— новки, второй информационный вход 22, вход 23 запрета и вход 24 останова модуля, а также первый информационный выход 25, выход 26 признака сопровождения информации, второй информационный выход 27> третий информационный выход 28 модуля.

Блок 1 (фиг. 4 ) содержит ре--. гистр 29, счетчик 30, первый 31, второй 32 и третий 33 элементы задержки.

Блок 2 (фиг. 5) содержит память 34 алгоритмов, регистр 35 алгоритма с полями: 35.1 — поле адреса передачи первого операнда;35.2 — поле разряда

2 необходимости передачи первого операнда; 35.3 — поле адреса передачи второго операнда; 35.5 — поле адреса передачи результата;35.6— поле разряда необходимости передачи результата; 35.7 — поле кода операции модуля, а также элементы И 36, ИЛИ 37, одновибратор 38 (по фронту импульса ), элемент 39 задержки.

Блок 3 (фиг. 6 ) содержит группы блоков 40.1-40.8 памяти "Первым приЗБшел, первым обслужен", счетчик 41, триггер 42 R S-типа, мультиплексор 43, дешифратор 44, элемент И 45, группу элементов И 46.1-46.8, первый элемент ИЛИ 47, элемент ИЛИ-НЕ 48, вто40 рой элемент ИЛИ 49, первый одновибратор 50 (по срезу импульса ), второй одновибратор 51 (по срезу импульса ), третий одновибратор 52 (по фронту импульса ) и элемент 53 задержки.

Блок памяти "Первым пришел, первым обслужен" группы блоков 40.121 з 13434

40.8 (фиг. 7) содержит группу регистров 54.1-54.п, счетчик 55 загрузки, первую группу блоков 56.1-56.п элементов И, вторую группу блоков

57.1-57.п элементов И, группу блоков 58.1-58.п-l элементов ИЛИ, первую группу элементов ИЛИ 59.1-59.п, вторуго группу элементов ИЛИ 60.1-60.п,,группу элементов И 61.1-61.п, пер- 10

1 вый 62, второй 63, третий 64 и четвертый 65 элементы И.

Блок 4 (фиг. 8) содержит группу компараторов 66 ° 1-66.16 чисел, первую группу элементов ИЛИ 67.1-67.16 l5 и вторую группу элементов ИЛИ 68 ° 168. 16.

Блок 5 (фиг. 9) содержит однослов ный блок 69 памяти (ПЗУ), первый 70 и второй 71 вычитатели, первый .72, 20 второй 73, третий 74 и четвертый 75 компараторы чисел, первую группу элементов И 76.1-76.9, вторую группу элементов И 77.1-77.8, группу блоков 78.1-78.8 элементов И, группу, элементов ИЛИ 79.1-79.8, первый 80, второй 81 и третий 82 элементы И, элемент ИЛИ 83 и элемент 84 задержки.

Блок 6 (фиг. 10) содержит регистр 85 адреса, регистр 86 операнда, 30 регистр 87 первого операнда, регистр 88 второго операнда, счетчик 89, мультиплексор 90 адресов, мультиплексор 91 операндов, дешифратор 92, группу блоков 93.1-93.8 элементов И, шинный формирователь 94 с тремя состояниями, первый 95, второй 96, третий 97, четвертый 98, пятый 99, шестой 100, седьмой 101 и восьмой 102 элементы И, элемент И-НЕ 103, пер- 40 вый 104, второй 105, третий 106, чет- вертый 107, пятый 108, шестой 109. и седьмой 110 элементы ИЛИ, элемент ИЛИ-НЕ 111, одновибратор 112 (по фронту импульса), второй одновиб- 45 ратор 113 (по срезу импульса), первый 114, второй 115, третий 116, четвертый 117, пятый 118 и шестой 119 элементы задержки.

Блок 7 (фиг. 11) содержит управляющую память 120, счетчик 121 адреса, триггер 122 R,S-типа, элемент И 123, первый 124 и второй 125 элементы ИЛИ, первый 126, второй 127 и третий 128 элементы задержки.

Блок 8 (фиг. 12) содержит матрицу 129 умножения, сумматор 130, ре-гистр 131 первого операнда, регистр 132 второго операнда, регистр 133 управления выходной регистр 134 и выходные каскады 135 с тремя состояниями. . Рассмотрим назначение блоков и основных функциональных элементов ПСПЭ.

Блок 1 служит для задания адресов модуля с целью идентификации при передаче информации в систолическом массиве.

Блок 2 предназначен для программирования модуля на требуемый алгоритм.

Блок 3 служит для приема данных от восьми соседних модулей и огранизации их циклического обслуживания по принципу Первым пришел, первым обслужен".

Блок 4 предназначен для определения наименее загруженного направления в каждом секторе возможной передачи информации.

Блок 5 служит для определения и модификации направления передачи данных °

Блок 6 предназначен для промежуточного хранения данных при их анализе в блоке 5 передачи данных на обслуживание в умножитель 8 и выдачи данных к соседним модулям массива.

Блок 7 служит для задания последовательности микрокоманд, управляющих работой умножителя 8.

Умножитель 8 предназначен для операционной обработки поступающих чисел.

Регистр 9 результата служит для хранения результата с умножителя 8 перед выдачей его из модуля.

Счетчик 10 этапов вычислений предназначен для индикации числа выполненных операций в модуле.

Демультиплексор 11 служит для разрешения прохождения микрокода алгоритма на блок 2 в режиме программирования модуля.

Генератор 12 предназначен для задания двух противофазных последовательностей импульсов, которые задают синхронизацию модуля.

Триггер 13 предназначен для запрещения работы генератора 12.

Первый 14 и второй 15 элементы ИЛИ служат для сборки сигналов соответственно инициации и запрещения работы генератора 12.

Элемент И 16, одновибратор 17 и обусловленные ими связи предназначены для прекращения работы генератора 12

1343421 при завершении обслуживания всех операндов входной очереди, отсутствии первого операнда на промежуточном хранении в блок 6 и завершении опера5 ции в блок 8.

Регистр 29 (фиг. 4) служит для хранения кода строки модуля.

Счетчик 30 предназначен для инкрементации и хранения кода столбца при задании адресов модуля в массиве.

Первый элемент 31 задержки предназначен для задания синхронизации записи информации в регистр 29 и счетчик 30 только после их обнуления.

Второй элемент 32 задержки служит для увеличения содержимого счетчика 30 на единицу только после завершения в него записи информации. 20

Третий элемент 33 задержки обусловлен временем переходных процессов счетчика 30 при его инкременте.

Память 34 алгоритмов служит для хранения слов информации, определяю- 25 щих функционирование модуля на соответствующих алгоритмах. .Регистр 35 алгоритма предназначен для хранения слов информации, определяющих работу модуля на соответст- 30 вующих алгоритмах, после программи,рования модуля.

Элемент И 36 предназначен для раз— решения выборки слова из памяти 34 алгоритмов по второму тактовому импульсу при приходе на входы 19 и 20 модуля единичных сигналов.

Элемент ИЛИ 37 служит,цля индикации наличия информации в регистре 35 алгоритма. 40

Одновибратор 38 предназначен дпя обнуления регчстра 35 алгоритма в начале программирования модуля.

Элемент 39 обусловлен временем задержки памяти 34 алгоритмов.

Группы блоков 40.1-40.8 памяти вПервым пришел, первым обслужен" (фиг.6) предназначены для организации очередей данных, поступающих от восьми соседних модулей и индикации коэффициента загрузки этих очередей.

Счетчик 41, дешифратор 44, первый одновибратор 50 по срезу импульса и обусловленные ими связи служат для организации циклического опроса очередей блоков 40.1-40.8 памяти.

Группа элементов И 46.1-46.8,первый элемент ИЛИ 47 и обусловленные ими связи предназначены для открытия мультиплексоров 43, 90 и 91 (фиг.6, 10 ), если обслуживаемая вхо,цная очередь не пуста.

Элемент ИЛИ-НЕ 48 служит для инверсной индикации наличия информации в группах блоков 40.1-40.8 памяти.

Второй элемент ИЛИ 49 предназна" чен для сборки сигналов обнуления счетчика 41.

Второй одновибратор 51 по срезу импульса предназначен для установления триггера 42 R,S-типа в единичное состояние при приходе первой информации в очереди блоков 40.1-40,8 памяти.

Третий одновибратор 52 по фронту импульса служит для обнуления триггера 42 при завершении обслуживания всех входных данных.

Триггер 42 В,S-типа предназначен для разрешения последовательного опроса входных очередей блоков 40.1-40.8 памяти, если они не пусты, и запрещения опроса — в противном случае.

Элемент 53 служит для задержки импульса синхронизации считывания Опе рандов из блоков 40.1-40.8 памяти ла время переходных процессов счетчика 41, дешифратора 44, открытия муль-. типлексоров 43, 90 и 91 (фиг.6,10).

Регистры 54.1-54.п служат для хранения поступающих операндов (фиг. 7).

Счетчик 55 загрузки предназна.чен для индикации длины заполнения очереди в регистрах 54.1-54. и.

Первая группа блоков 56.1-56.п и вторая группа блоков 57.1--57.п эле-ментов И, группа блоков 58.1-58.п- 1 элементов ИЧИ, групп=. элем.ентов И

61.1-61.п и обуслсвленные; ими связи предназначены для организации режима работы "Первым пришел, первым обслу-жен ".

Первый 62 и второй 63 эле агенты И служат,цля задания считыванчя и занесения информации из очереди cooò>3còственно по перьому и второму тактовым импульсам.

Третин 64- и четвертый 65 элемен-ты И задают работу счетчика 55 загрузки.

Группа коипараторов 66.1-66.16 чисел служит для сравнения коэффициентов загрузки направлений в восьми секторах возможной передачи информации.

1343421

50

Первая группа 67.1-67. 16 и вторая группа 68.1-68.16 элементов ИЛИ предназначены для формирования сигналов модификации направления передачи и выдачи их в блок 5.

Однословный блок 69 памяти предназначен для хранения кода числа 1 (фиг. 9).

Первый 70 и второй 71 вычитатели, первый 72 и второй 73 компараторы чисел, первый 80, второй 81 и третий 82 элементы И, элемент ИЛИ 83 предназначены для формирования единичного сигнала, если операнд, который анализируется, предназначен соседнему модулю.

Наличие элемента 84 обусловлено временем формирования этого сигнала.

Третий 74 и четвертый 75 компараторы чисел предназначены для сравнения адреса модуля адреса анализируемого операнда по строкам и столбцам соответственно.

Элементы И 76.1-76.8 группы 76.9 предназначены для формирования наI правления передачи информации без модификации.

Элемент И 76.9 группы 76.1-76.9 служит для формирования единичного сигнала, если адрес модуля и адрес операнда совпали.

Вторая группа элементов И 77.177.8 служит для формирования сигнала направления передачи при разрешении модификации.

Группа блоков 78.1-78.8 выполняет модификацию выбранного направления информации с выхода блока 4.

Группа элементов ИЛИ 79.1-79.8 служит для.сборки сигналов направле-! ния передачи с модификацией или без модификации по соответствующим направлениям выдачи информации.

Регистр 86 адреса и регистр 85 операнда предназначены для хранения операнда и его адреса соответственно при его анализе в блоке 5 на направление передачи (фиг. 10).

Регистр 87 первого операнда и регистр 88 второго операнда служат для последовательной перезаписи соответствующих операндов в случае, если их адреса и адрес модуля совпадают.

Счетчик 89, дешифратор 92, второй 96, третий 97, четвертый 98, пятый 99 и шестой 100 элементы И и обусловленные ими связи предназначены для задания работы мультиплексОров

35 адресов 90 и.операндов 9! по опреде-, ленным входам в зависимости от необ-. ходимости передачи обрабатываемой информации.

Иультиплексор 90 адресов служит для выбора поступающей на вход регистра 85 информации в зависимости от необходимости выдачи из модуля первого операнда, второго операнда или результата.

Мультиплексор 91 операндов служит для прохождения на регистр 86 результата вычислений модуля с регистра 9 в случае необходимости выдачи результата из модуля.

Группа блоков 93.1-93.8 предназначена для выдачи информации из модуля по определенному направлению в зависимости от информации с выхода блока 5.

Шинный формирователь 94 с тремя состояниями служит для запрещения прохождения информации с выхода регистра 88 на выход регистра 132 до завершения выдачи результата из блока 8 в регистр 9 с целью обеспечения организации двунаправленной передачи данных по третьему информационному входу блока 8 (фиг. 3, !О и 12).

Первьй элемент И 95, третий эле1 мент KIN 106, четвертый элемент 117 задержки и обусловленные ими связи предназначены для блокировки записи информации в регистр 86 в случае необходимости дальнейшей передачи в массив первого и второго операндов.

Седьмой 101 и восьмой 102 элементы И и обусловленные ими связи предназначены для организации последовательной записи первого и второго операндов соответственно в регистры 87 и 88.

Элемент И-HE 103 и второй одновибратор 113 по срезу импульса и обусловленные ими связи служат для инициации работы блока 7 и блока 8 при условии отсутствия их загрузки.

Первый элемент ИЛИ 104 предназначен для сборки сигналов, инициирующих возможную выдачу из модуля первого операнда, второго операнда или результата.

Первый элемент 114 служит для задания одного момента прихода относительно такта сигнала с второго выхода блока 5 и конца выполнения микропрограммы с второго выхода блока 7 на входы первого элемента ИЛИ 104.

1343421

Четвертый элемент ИЛИ 107, пятый элемент 118 задержки и обусловленные ими связи служат для блокировки в случае необходимости продвижения очередей блоков 40.1-40.8 и для задания соответствующего режима работы мультиплексоров 90 и 91.

Пятый элемент ИЛИ 108 служит для сборки сигналов обнуления регйстров 87 и 88.

Шестой элемент ИЛИ 109 предназначен для сборки сигналов, разрешающих работу мультиплексоров 90 и 91.

Седьмой элемент ИЛИ 110 предназначен для индикации наличия информации в регистре 88.

Элемент ИЛИ-НЕ 111 служит для инверсной индикации наличия информации в регистре 87 °

Первый одновибратор 112 по фронту импульса с задержкой предназначен для обнуления счетчика 89 после полного завершения выдачи результата в случае ее необходимости из модуля.

Первый элемент 114 задержки служит для задержки сигнала окончания микропрограммы блока 7 на время переходных процессов блока 5 с целью корректной организации синхронизации при выдаче результата из модуля.

Второй элемент 115 задержки предназначен для задержки первого тактового импульса, который синхронизирует запись в регистры 85 и 86, на время срабатывания блока 3 по считыванию информации и открытия мультиплексоров 90 и 91.

Третий элемент 116 задержки обусловлен переходными процессами счетчика 89 и дешифратора 92.

Шестой элемент 119 задержки предназначен для задержки обнуления регистров 87 и 88 на время перезаписи иэ них информации соответственно в регистры 131 и 132 блока 6 (фиг. 10 и 12).

Управляющая память 120 (фиг. 11) предназначена для хранения микропрограмм, задающих работу блока 8.

Счетчик 121 адреса служит для задания естественной адресации выборки информации из управляющей памяти 120.

Триггер 122 R,S-типа предназначен для индикации функционирования блока 7.

Элемент И 123 служит для разрешения прохождения вторых тактовых импульсов на вход считывания управляю5

15 щей памяти 120 после инициации работы блока 7.

Первый элемент ИЛИ 124 предназначен для сборки сигналов обнуления счетчика 121 адреса.

Второй элемент ИЛИ 125 служит для сборки сигналов обнуления триггера 122.

Первый элемент 126 задержки предназначен для задержки установки на счетчике 121 нового адреса на время выдачи микрокоманды из управляющей памяти 120.

Второй элемент 127 задержки обусловлен переходными процессами считывания из управляющей памяти 120.

Третий элемент 128 задержки служит для задержки обнуления счетчика 121 и триггера 122 на время выдачи результата из модуля.

Матрица 129 умножения и сумматор 130 блока 8 (фиг. 12) предназначены для реализации операций умножения и сложения.

Регистр 131 первого операнда и регистр 132 второго операнда (фиг. 12) служат для приема на обработку соответственно первого и второго операндов из регистров 87 и 88 блока 6 (фиг. 10).

Регистр 133 управления служит для приема микрокоманд из блока 7 (фиг. 12).

Выходной регистр 134 предназначен

35 для хранения промежуточных и конечного результатов.

Выходные каскады 135 с тремя состояниями служат для подключения к

40 внешней шине данных.

Рассмотрим работу процессорного модуля.

Перед началом функционирования каждому модулю в массиве присваивается адрес. Это происходит следующим образом. На входе 20 модуля (фиг. 3) устанавливается нулевой сигнал, тем самым определяется работа мультиплексора 11 по первому выходу. Адресация модуля в массиве происходит по строкам. На входы 18 и 19 левых граничных модулей в массиве подаются соответственно код данной строки с нулевым кодом столбца и единичный импульс синхронизации, которые, проходя через мультиплексор 11, поступают на первый информационный и второй вход блока 1.

Код соответствующей строки поступает на вход регистра 29, а нулевой код

1343421

12 ля 8 происходит по вторым импульсам тактов работы модуля. Запись информации в очереди блоков 40.1 — 40.8 блока 3 происходит по импульсу информации с соседних моделей, т.е. по второму импульсу такта работы модуля в массиве, что задается синхронной работой всех модулей в систолических процессорах в отличие от волновых матриц с асинхронной обработкой информации. Временные диаграммы работы основных блоков модуля без учета принципиальных для его функционирования задержек показаны на фиг. 13.

Рассмотрим режимы функционирования модуля более подробно.

Режим программирования. В этом режиме происходит программирование модуля на выполнение определенных функций, обусловленных конкретными этапами алгоритма, на которых используются различные модули в массиве, Программирование всех модулей в массиве на необходимый алгоритм происходит прохождением одного микрокода через систолический массив. Этот режим инициируется установлением на входе 2G устройства (фиг. 3 ) единичного сигнала, организующего работу демультиплексора 11 по второму выходу, и подачей единичного импульса на вход =3 модуля, который устанавливает триггер 13 в единичное состояние, разрешая работу генератора 12. Микрокод алгоритма и единичный импульс программирования подаются на входы 18 и )9 модуля соответственно и, проходя через демультиплексор 11, поступают на соответствующие входы блока 2. По фронту единичного импульса программирования с помощью одновибратора 38 регистр 35 алгоритма устанавливается в нулевое состояние (фиг. 5 ). Появившийся нулевой сигнал на выходе элемента ИЛИ 37 открывает элемент И 36 и по импульсу со второго выхода генератора 12 происходит считывание информации об алгоритме блока 34 в регистр 35 блока 2. После записи информации в регистр 35 алгоритма на выходе элемента HJIH 37 появляется единичный сигнал, который закрывает элемент И 36, запрещая прохождение импульсов с генератора 12 и единичного сигнала программирования на синхровход блока 34.

Затем снимается единичный сигнал программирования и микрокод алгоритма с входов 19 и 18 устройства соответстстолбца — на вход счетчика 30 блока 1, запись в которые синхронизируется импульсом с второго входа блока 1, задержанным на время обнуления регистра 29 и счетчика 30 (фиг. 4 ). Затем

5 через время задержки элемента 32, равное времени установления переходных процессов записи информации в регистре 29 и счетчике 30, содержимое . счетчика 30 увеличивается на единицу и на выходах регистра 29 и счетчи-ка 30 индицируется код .адреса данного модуля в массиве, который во время работы модуля может быть использо- 15 ван с второго информационного выхода блока 1. Далее единичный импульс, задержанный на элементе 33 задержки на время инкремента счетчика 30, и выходная информация с выходов регистра 29 и счетчика 30 поступают на соседний в строке модуль, и процесс адресации продолжается аналогичным образом. После присвоения всем модулям в массиве адреса устройство гото- 25 во к дальнейшему функционированию.

Работа модуля состоит из трех основных режимов: режима программирования; режима транзитной передачи информации без обработки; режима обработки операндов, адресованных данному модулю.

Все три режима могут выполняться в модуле одновременно, что позволяет достичь параллельной работы отдельных

35 блоков модуля и повысить производительность как модуля, так и всего систолического процессора.

Синхронизация работы модуля происходит по импульсам, которые Формиру 40 ются на первом и втором выходах генератора 12 и представляют собой две противофазные импульсные последовательности. Такт работы модуля состоит из первого и второго тактовых импульсов, выдаваемых соответственно с первого и второго выхода генератора 12 (фиг. 13 ). По первому импульсу такта происходит считывание информации из входных очередей и ее запись в регистры 85 и 86 блока 6 для дальнейшего анализа направления и передачи информации. По второму импульсу такта осуп(ествляется выбор направления передачи поступившей информации и ее выдача в другие модули массива, а также в случае адресации операндов данному модулю запуск блоков 7и 8. Синхронизация работы блока 7 и умножите1343421 венно, подготавливая модуль к следующему этапу программирования.

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

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

Таким образом, программирование модуля позволяет настраивать систолический процессор на выполнение различных алгоритмов преимущественно цифровой обработки сигналов, что объясняется возможностью работы систолических процессоров в реальном масштабе времени за счет высокой параллельности вычислений и высокой регулярности связей между модулями с возможностью динамической адаптации алгоритма обработки и маршрутов передачи данных.

Режим транзитной передачи информации без обработки, Подача данных в массив модулей может происходить, например, из граничньж элементов памяти массива, хранящих операнды, весовые коэффициенты и другую .необходимую информацию, по командам системного контроллера или управляющей ЭВИ, которые производят выбор необходимых данных и ее адресацию в соответствии с выполняющимся алгоритмом. Перед началом подачи данных в систолический массив на вход 21 модуля подается единичный импульс, обнуляющий все ди10

ЗО

5 намические элементы памяти модуля кроме блоков 1 и 2.Информация с восьми соседних модулей может поступать одно— временно по входам 22. 1-22.8 устройства (фиг. 3 ). Ha третий вход блока 3 поступает сигнал блокировки с третьего выхода блока 6, равный единице только .I в случае необходимости выдачи oneранда,, пришедшего на обработку данным модулем, или в случае необходимости выдачи результата вычисления из данного модуля в массив, что ве— дет к временному запрещению продвижения очередей Первым пришел, первым обслужен" в блоках 40,1 — 40.8 блока 3 до завершения выдачи информации из регистров 85 и 86 (фиг. 6 и 10 ).

На червертый вход блока 3 поступа.-от первые тактовые импульсы с первого выхода генератора 12, по которым происходит выдача информации из последовательно опрашиваемых блоков 40.140.8 на анализ в блоке 6.

Поступающая информация от восьми соседних модулей на вторые информа— ционные входы блока 3 состоит из трех основных частей (фиг. 6): кода коэффициента загрузки данного направления передачи, восемь значений которых образуют первый информационный выход блока 3 и поступают на анализ в блок 4 (фиг. 6 и 8 ); значения операнда с адресом его передачи и им— пульса синхронизации записи этой информации в соответствующую памя гь магазинного типа первый пришел, первый обслужен" блоков 40.1-40.8 блока 3 (фиг.6 ). Эта информация поступает соотв тственно на второй информационньп и третий вход блоков 40.140.8, первые входы обнуления котсрьгх соединены с первым входом блока 3, четвертый вход является входом c%итывания из очереди (или продвижения очереди ), а пятые входы блоков 40.140.8 являются входами синхронизации.

С первых информационных выходов блоков 40.1-40.8 будет последовательно считываться занесенная информация, с вторых информационных выходов будет постоянно подаваться на восемь соседних модулей код загрузки соответствующих для них направлений, а третьи выходы блоков свидетельствуют о наличии в них информации (фиг. 6 и 7).

При поступлении информации хо..я бы от одного соседнего модуля и загрузке ее в определе ньп блок 40.1-40.8

134342!

16 на третьем выходе готовности этого блока устанавливается единичный сиг- нал, который через элемент ИЛИ-НЕ 48 и одновибратор 51 перебросит триггер 42 в единичное состояние, обну5 ленный подачей импульса на вход 21 модуля через элемент ИЛИ-НЕ 48 и одновибратор 52 (фиг. 3 и 6 ). Единичный сигнал с прямого выхода тригге- 10 ра 42, поступая на первый вход элемента И 45, открывает его (при отсутствии сигнала блокировки на третьем входе блока 3 )для прохождения тактовых импульсов с первого выхода генератора 12, и по первому его импульсу содержимое счетчика 41 увеличивается на единицу, тем самым устанавливается адрес очередного считывания из со-; ответствующего блока 40.1-40.8 (фиг. 6). Код этого адреса с выхода счетчика 41 поступает на управляющий вход мультиплексора 43 и определяет его работу по входу обслуживаемой очереди блоков 40.1-40.8. Одновремен- 25 но с этим дешифратор 44 преобразует этот адрес в унитарный код, который поступает на соответствующие входы блоков 40.1-40.8, разрешая считывание из определенной очереди,а через 30 группу элементов И 46.1-46.8 и элемент ИЛИ 47, поступая на синхровход мультиплексора 43, разрешает прохождение через него информации только при ненулевом сигнале готовности с

35 третьего выхода соответствующего блока 40.1-40 ° 8 группы. Работа счетчика 41 организована по модулю 8 и задает последовательный опрос очередей блоков 40.1-40.8. После завершения опроса последнего блока 40.8 одновибратор 50, соединенный с восьмым выходом дешифратора 44, вырабатывает импульс, который, проходя через элемент ИЛИ 49, обнуляет счетчик 41, 45 переводя его на опрос очереди первого блока 40.!.

Тактовые импульсы с первого выхода генератора 12 в случае отсутствия блокировки блока 3 по третьему его выходу, задержанные на элементе 53 задержки на время переходных процессов счетчика 42 и дешифратора 44, поступают на пятые входы блоков 40 ° 140.8 и синхронизируют работу блока 3. 55

Счетчики 55 каждого блока 40.1-40.8 (фиг. 7 ) индицируют на своем выходе коэффициенты загрузки соответствующих направлений, которые по пятому информационному выходу блока 3, по десятому информационному входу блока 6 и по определенным вторым инфор— мационным выходам 28.1-28.8 устройства подаются на соответствующие информационные входы соседних модулей, организация которых там происходит аналогично рассмотренному.

В случае обслуживания всех запросов в очередях блоков 40.1-40.8 появившийся единичный сигнал на выходе элемента ИЛИ 48 через одновибратор 52 обнуляет триггер 42, запрещая тем самым опрос блоков 40.1-40.8 до следующего прихода операндов в модуль. По приходу операндов происходит процесс активизации блока 3 аналогично рассмотренному, и по импульсу с первого выхода генератора 12 происходит считывание информации из блока 3 и запись ее в регистры 85 и 86 блока 6 (фиг. 6, 10 и 13).

Работа мультиплексора 90 адресов и мультиплексора 91 операндов в этом случае происходит по первым входам, что обусловлено нулевыми сигналами на управляющих входах и единичным сигналом на их синхровходах, Нулевой код на управляющих входах мультиплексора 90 задается счетчиком 89, находящимся в нулевом состоянии, и закрытыми элементами И 96 и 97, а нулевой сигнал на управляющем входе мультиплексора 91 определяется нулевым сигналом с выхода элемента ИЛИ 107, который обусловлен нулевым состоянием счетчика 89, и, следовательно, нулевыми сигналами на втором, третьем и четвертом выходах дешифратора 92.

Единичный сигнал на синхровходах мультиплексоров 90 и 91 определяется единичным сигналом, проходящим через элемент ИЛИ 109 блока. 6 с выхода элемента ИЛИ 47 блока 3, который является шестым выходом блока 3 и тринадцатым вг одом блока 6 (фиг. 3, 6 и 10).

Сдвиг очереди в блоках 40.1-40.8 блока 3 и запись информации сдвига с выхода определенного блока 40.1-

40.8 через мультиплексоры 43, 90 и 91 в регистры адреса 85 и операнда 86 происходят по одному тактовому им;пульсу с первого выхода генератора 12, который задерживается на элементах 53 и 115 задержки на время, обусловленное переходными процессами счетчика 41, дешифратора 44, мультиплексоров 43, 90 и 91. Операнд записывает17

13434 ся в регистр 85 операнда, а адрес операнда — в регистр 86 адреса (фиг. 6, 10 и 13}.

В каждый момент времени информа5 ция о коэффициентах загрузки всех направлений передачи проходит с пятых информационных входов 22.1-22.8 через блок 3 на информационный вход блока 4, где в процессе сравнения на группе компараторов 66.1-66. !6 чи. сел происходит сравнение коэффициентов загрузки трех направлений для всех восьми возможных секторов передачи данных и с помощью двух групп элементов ИЛИ 67.1-67.16 и 68.1-68.16 происходит выработка сигналов идентификации наименее загруженного направления для каждого сектора возможной ,передачи и выдача их (по шесть линий на каждое направление ) на третий информационный вход блока 5, на второй информационный вход которого подается адрес операнда с выхода регист ра 85 блока 6 по первому информацион- 2В ному выходу блока 6. На первом информационном входе блока 5 присутствует собственный адрес данного модуля„ подающийся с выхода регистра 29 и счетчика 30 по второму информацион- 30 ному выходу блока 1 (фиг. 3, 4, 8, 9 ,и !0).

По второму тактовому импульсу с второго выхода генератора 12 инициируется процесс сравнения, модификации 5 и определения направления передачи данных, находящихся в регистрах 86 и 85 операнда блока 6. Тактовый :жпульс с второго выхода генератора 12 поступает по четвертому входу БВН íà 4д синхровходь1 первого 70 и второго 71 вычитателей, разрешая их работу, и на вход считывания однословного блока памяти ПЗУ 69, которое постоянно хранит (без разрушения информации ) код единицы. Однословное постоянное запоминающее устройство 69 может быть организовано путем фиксированной подачи постоянного адреса, по которому хранится код единицы, на простое ПЗУ, Вычитатели 70 и 71 могут быть организованы на основе традиционных сумматоров-вычитателей или АЛУ, на управляющие входы которого может быть подана постоянная комбинация, соответствующая операции вычитания. Возможные организующие сигналы для ПЗУ 69 и вычитателей 70 и 71 на фиг. 9 не показаны. Вычитатели 70 и 71 вычисляют

21 !8 абсолютную разность (выходной разряд заема не учитывается ) между кодами строк и столбцов собственного и прошедшего адреса компараторов 72 и 73 чисел, на вторые входы которых подается код единицы с,ыхода ПЗУ 69, а также элементов И 80-82, на выходе элемента ИЛИ 83 формируется единичныи сигнал, гово рящии о том, чч о ?IpH шедший операнд предназначен одному из восьми соседних модулей. Этот сигнал служит для запрещения модификации передачи информации с учетом коэффициента загрузки направлений, если адресуемый модуль — соседний.

Одновременно с этим третий 74 и четвертый 75 компараторы чисел вырабатывают сигналы сравнений собственного и поступивше.-.о адреса по строкам и столбцам соответственно. Эти сигналы, поступая соответствующим образом на элементы И 76.1-76.8 и

77.1-77.8, организуют направления передачи соответственно без модификации и с модификацией, учитывающей загрузку направления. Элемент И 76.9 служит для выдачи единичного импульса при совпадении адресов в случае, если пришедший операнд предназначен данному модулю. Информация модифика- ции с учетом загрузки направлений поступает из блока 4 в блок 5 на первые ! Ю пары входов соответствующих элементов И блоков 78.1-78.8, .задавая тем самым модификацию передачи информации в зависимости от загрузки направлений. Импульс с второго выхода генератора 12, задержанный на элементе 84 задержки на время возможного формирования на выходе ИЛИ 83 единичного сигнала запрещения модификации, поступает на третьи входы элементов И 76.1-76.8 и 77.1-77.8, и, в зависимости от того, предназначен ли текущий адрес соседнему модулю или нет, выдача сигнала направления происходит на один из элементов груп-пы ИЛИ 79.1-79.8 либо непосредствен— но с выхода соответствующего элемента И 76.1-76.8, минуя группу блоков элементов И 78.1-