Микропрограммируемый векторный процессор
Иллюстрации
Показать всеРеферат
Изобретение относится к вычислительной технике и может быть использовано для быстрой векторной обработки геофизической, медицинской и визуальной информации для управления сложными технологическими объектами и научным экспериментом. Цель изобретения - повышение производительности. Процессор содержит устройство микропрограммного управления, содержащее блоки памяти, формирователь адреса, регистр микрокоманд, регистр состояния, счетчик длины вектора, мультиплексор, блок приоритета, блок запросов, блок памяти микрокоманд перекодировки, блок маски признаков, регистр векторных признаков, блок маски запросов, регистр готовности, блок обслуживания обмена, блок формирования векторных признаков. Процессор, кроме того, содержит блок синхронизации, регистр кода операции, блок выдачи запросов, арифметико-логическое устройство мантисс, умножитель, арифметико-логическое устройство порядков, арифметико-логическое устройство коррекции, сдвигатели, коммутатор, формирователь параметра сдвига, группу элементов ИСКЛЮЧАЮЩЕЕ ИЛИ, блоки обмена информацией, сверхоперативные запоминающие устройства, блок памяти микроопераций с соответствующими связями. 1 з.п. ф-лы, 10 ил., 2 табл.
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИН
„.80„„5 4557
А1 (51)5 G 06 F 15/00
OllHCAHHE ИЗОБРЕТЕНИЯ
К А 8TOPCHOMV СВИДЕТЕЛЬСТВУ
ГОСУДАРСТВЕННЫЙ КОМИТЕТ
ПО ИЗОБРЕТЕНИЯМ И OTHPbtTHRM
ПРИ ГКНТ СССР
1 (21) 4308823/24-24; 4308822/24-24 (22) 1 4.07.87 (46) 23.09.90. Бюл. 9 35 (71) Институт проблем управления (72) А.В.Вейц, И.Ф.Дятчина, В.А.Жуков, В.Ф..Криворучко, В.Д.Малюгин, В.В.Соколов, И.В.Сперанская, С.В.Шевцов, И.В.Прангишвили, Я.А,Левертов и С.В.Денисенко (53) 681.32(08Д.8) (56) Electronics, 1983, ч.56, У 1 8, р. 119-123.
Микропроцессорные средства и системы, 1986, М 5, с.3-5, (54) МИКРОПРОГРАММИРУЕМЫЙ . ВЕКТОРНЫЙ
ПРОЦЕССОР (57) Изобретение относится к вычислительной технике и может быть использовано для быстрой векторной обработки геофизической, медицинской и визуальной информации для управления сложными технологическими объектами и научным экспериментом. Цель изобретения — повышение производиИзобретение относится к вычислительной технике и может быть использовано для быстрой векторной обработки геофизической, медицинской и визуальной информации для APM и САПР, для управления сложными технологическими объектами и научным экспериментом.
Цель изобретения — повьппение производительности.
На фиг.1 представлена структурная схема процессора; на фиг.2 — структур2 тельности. Процессор содержит устройство микропрограммного управления, содержащее блоки памяти, формирова--. тель адреса, регистр микрокоманд, регистр состояния, счетчик длины вектора, мультиплексор, блок приоритета, блок запросов, блок памяти микрокоманд перекодировки, блок маски признаков, регистр векторных признаков, блок маски запросов, регистр готовности, блок обслуживания обмена, блок формирования векторных признаков. Кроме того, процессор содержит блок синхронизации, регистр кода операции, блок выдачи запросов, арифметико-логическое устройство мантисс, умножитель, арифметико-.логическое устройство порядков, арифметико-логическое устройство коррекции, сдвигатели, коммутатор, формирователь параметра сдвига, группу элементов ИСКЛЮЧАЮЩЕЕ ИЛИ, блоки обмена информацией, сверхоперативные запоминающие устройства, блок памяти микроопераций с соответствующими связями. 1 з.п. ф-лы, 10 ип., 3 табл. ная схема формирователя параметра сдвига; на фиг.3 — структурная схема блока синхронизации; на фиг.4— структурная схема блока выдачи запросов; на фиг.5 — структурная схема блока маски признаков; на фиг.6 структурная схема блока маски запросов; на фиг.7 — структурная схема блока запросов; на фиг.8 — структурная схема блока приоритета; на фиг.9структурная схема блока обслуживания
557
3 1594 обмена, на фнг. l 0 — временные диаграммы работы устройства.
Процессор содержит (фиг.)) устройство ) микропрограммного управления, содержащее блоки 2 и 2 памяти
1 Ф
У формирователь 3 адреса, регистр 4 микрокоманд, регистр 5 состояния, счетчик 6 длины вектора, мультиплек-,. сор 7, блок 8 приоритета, блок 9 запросов, блок 10 памяти микрокоманд перекодировки, блок !1 маски признаков, регистр 12 векторных признаков, блок 1 3 маски запросов, регистр 14 готовности, блок 15 обслуживания обмена, блок,lб формирования векторных признаков, а также процессор содержит блок 17 синхронизации, регистр 18 кода операции, блок 19 выдачи запросов, арнфметико-логическое устройство 20 20 мантисс, умножитель 21, арифметикологическое устройство 22 порядков !
1 арифметнко-логическое устройство 23 коррекции, с первого по четвертый сдвнгатели 24-27, коммутатор 28,, фор.— 25 мнрователь 29 параметра сдвига, группу элементов ИСКЛЮЧАЮЩЕЕ ИЛИ 30, с первого по десятый блоки 31-32 обмена информацией, с первого по четверчый сверхоперативные запоминающие
30 устройства 33, блок 34 памяти микроопераций, выход 35 общей готовности, вход 36 общей готовности, входы 37 и 38 кода операций, выходы 39 и 40 кода операции. мантисс и порядков; с первого по шестой выходы 41 -46 кода адреса операндов; — входы 47"52 кода адреса, с первого по четырнадцатый выходы 53-66 управления конвейером, входы 67-80 управления третьим состоянием, выход 81 кодов операций сдвига, 40 первые входы-выходы 82-85, выход 86 результата, второй вход-выход 7, третий вход-выход 88, вход первого операнда — выход 89 результата вход
90 первого. операнда, первый вход-выход 91, третий вход-выход 92, вход
93 второго операнда, вход 94 второго операнда, четвертый вход выход 95, четвертые входы-выходы 96 и 97, вторые входы-выходы 98 и 99, информацион50 ные входы-выходы 100.и 101, второй вход-выход 102, вторые входы-выходы
103 и 104, третий вход-выход 105,, вход 106 второго операнда, первый вход-выход 107, информационный вход
108, вход первого операнда - выход
109 результата, третий вход-выход
110, третий вход-выход 111, вход педвого операнда - выход ) 12 резулвтата, выход 113, вход 114 типа сдвига, вьг ход )15 типа сдвига, выход ) 16 параметра сдвига, входы 117 - и 118 параметра сдвига, входы )19 и 120 шипа сдвига, вход 121 типа сдвига, вход
122 параметра сдвига, выход 123 параметра сдвига, вход 124 третьего операнда, четвертый вход-.выход 125, информационный вход-выход 126, третий вход-выход 127, вторые входы 128 элементов ИСКЛЮЧАЮЩЕЕ ИЛИ, выходы
)29, информационный вход-выход ).30, с первого по одиннадцатый выходы 131141, входы 142-147 чтения, входы
148-153 записи, входы 154-159 чтения, входы 160-)70 записи, входы !71-)77 чтения, выход 178 кода признаков результата, вход 179 признака пара-. метра сдвига, четвертый информационный вход 180, первый выход 181, управ-. ляющий вход 182,второй выход 183,вход
184 типасдвига,третий выход 185,первые входы 186 элементов ИСКЛЮЧАЮЩЕЕ ИЛИ, четвертый выход 187, вход. 188 кода операции, выход 189 кода признаков результата, третий информационный вход 190, выход 191 кода признаков результата;- второй информационный вход 192, выход 193 кода признака результата, первый информационный вход
194, выходы 195, информационный вход
196, информационный выход 197, информационный выход 198, адресный вход 199, выход 200 мультиплексора, управляющие входы 201 и 202, выходы
203 кода управления формирователем адреса, выход 204 кода микрокоманды, информационный вход 205, синхровход г.
20б,выход 207, адресный вход208,вход
209 кодаоперации,информационный вход
210,информационный выход 211, адресный вход 212,адресный выход213,адресный
Рвход 2)4, группу выходов 215 кода микроопераций, выход 216, вход 217 разрешения записи, группу информацион-. ных выходов 2)8, первый 219 и второй
220 информационные входы, информацион-. ный выход 221, выход 222 кода управления мультиплексором, управляющий вход 223, выход 224, информационный вход 225, выход 226 переполнения счетчика, первый вход 227 первой группы управляющих входов, первый вход 228, первый выход 229, счетный вход 230, информационные входы 23) и
232, третий информационный выход 233, выходы 234, выход 235 кода управления
50
5 159455 маской признаков, группу управляющих входов 236, вход 237 разрешения запи-. си, выход 238 кода управления маской запросов, второй вход 239 первой группы управляющих входов, вторую группу управляющих входов 240, выход 241 кода маски, выходы 242 кода запросов, третью группу управляющих входов 243, первый 244 и второй
245 синхровходы, вход 246 разрешения записи, синхровход 247, информационный вход 248, второй выход 249, синхровход 250, двенадцатый выход .
251, синхровход 252, первый выход
253, управляющий вход 254, первую группу выходов 255, асинхронные входы 256 установки в "1", вход 257 синхронизации, выход 258 строба го. товности, управляющий вход 259, вы- 20 ход 260 признака двойных запросов, выход 261, информационный вход 262, второй выход 263, вход 264 разрешения выдачи, вход 265 кода длины. вектора, информационный вход 266, вход 25
267 пуска устройства, вход 268 пуска, выход 269 кода признаков устройства, второй вход 270, третий вход
271,четвертый вход 272, выход 273 кода управления векторными признаками, пятый выход 274, первый 275 и второй 276 информационные входы,, выход 277 кода настройки, вход 278, выход 279 кода настройки, вход 280, группу выходов 281, синхровход 282, вход 283 запросов, вход 284 признака сопровождения данных, выход 285 записи, выход 286 чтения, информационный вход 287, синхронный вход 288 установки. в "0", выход 289 запросов, Формирователь 29 параметра сдвига содержит блок 290 памяти, регистр
291 и арифметико-логический узел 292.
Блок 17 синхронизации содержит генератор 293 импульсов, кольцевой
45 сдвигающий регистр 294, триггеры
295-297, элементы НЕ 298 и 299 и элементы И 300-304.
Блок 19 выдачи запросов содержит элемент ИЛИ 305 и группу элементов
И 306-309, блок 11 маски признаков содержит счетчик 310, элементы И 311 и 312, блок 13 маски запросов содер- жит счетчик 313, группу элементов
И 314-324, элемент ИЛИ 325 и триггеры
326 и 327.
Блдк 9 запросов содержит регистр
328 и группу элементов И 329-331, блок 8 приоритета содержит группу
7 6 элементов НЕ 332-334, группу элементов И 335-337 и триггер 338, блок 15 обслуживания обмена содержит группу элементов И 339-345, элементы ИЛИ 346347, триггер 348 и элемент И 349.
Кроме того, процессор содержит пятнадцатый выход 350 управления кон вейером, выход 251 управления направлением обмена, седьмой выход 252 кода адреса, выход 353 чтения, выход
354 записи, выход 355 записи выход 356 чтения, управляющий выход
357, выход 358 записи, выход 359 чтения, выход 360 записи, выход 361 чтения, первый 362 и второй 363 управляющие выходы, первые информационные входы-выходы 364-367, вторые информационные входы-выходы 368-371, третьй информационные входы-выходы 372 .и
373, четвертые информационные входывыходы 374 и 375, шестнадцатый выход
376 управления конвейером, пятые информационные входы-выходы 377-380, информационные входы-выходы 381-384, первый вход 385, второй вход 386, г>. третий вход 387, входы 388-391 чтения„ входы 392-399 записи, входы
400-403 чтения, управляющие входы
404-407, входы 408-411 записи, входы
412-415 чтения, входы 416-419 записи, входы 420-423 чтения, первые 424 и
425 и вторые 426 и 427 управляющие входы, входы 428-431 записи, входы
432-435 чтения, входы 436-439 кода адреса, входы 440-451,разрешения обмена и выход 452 кода констант.
Формирователь 29.параметра сдвига содержит (фнг.2) блок 290 памяти, регистр 291 и арифметика-логический блок 292, Блок 1 7 синхронизации содержит (фиг.3) генератор 293 импульсов, кольцевой сдвигающий регистр 294, триггеры 295-297, инверторы 298-299, с первого по пятый элементы И 300-.
304.
Блок синхронизации предназначен для выработки сигналов чтения, записи информации в различные блоки устройства, для формирования определенной временной последовательности сннхроимпульсов,. необходимых для организации правильной работы векторного нроцесса.
При поступлении сигнала "Иуск" на вход 268 блока синхронизации генератор 293 начинает формировать тактовые импульсы, поступающие на вход
1594557 кольцевого сдвигающего регистра 294.
На выходе этого регистра поочередно возникают сигналы, которые вместе с RS-триггерами и логическими элементамй, указанными на фнг.3, обеспечивают формирование сигналов в соответствии с временной диаграммой, приве. денной на фиг 10. Сигнальг на выходах
131-135 блока синхронизации возникают 10 !, только тогда, когда присутствует сиг., нал разрешения на управляющем входе, 254. !
Блок 19 выдачи запросов содержит : (фиг.4) многовходовой элемент ИЛИ 305 15 и группу элементов И 306-309.
Блок 19 выдачи запросов предназначен дпя формирования в определенные моменты времени запросов на получение очередных элементов вектора 20 ипи выдачу результата.
При поступлении хотя бы одного из запросов на вход элемента
ИЛИ 305 на его выходе возникает сигнал, который при наличии сигнала. 25 разрешения на-входе 264 и строба на сннхровходе 282 проходит через эле мент И 306 на вход группы элементов
И 307-309 и разрешает прохождение запросов с входа 283 через соответст- 30 вующие элементы И на выход 289.
Четырехканальные блоки 31-1 и 31—
2 обмена информацией выполняют функции промежуточных регистров общего назначения, блоки 31-3 и 31-4 служат для приема чисел с фиксированной запятой либо мантисс чисел с плавающей запятой. Четырехканальные блоки31 -5 н
31-6 обмена информацией служат для приема порядков чисел с плавающей 4р запятой. Блоки 32-1,...,32-4 предназначены для обмена информацией с шиной данных. Каждый из блоков 31, 32 содержит четыре внутренних регистра„
Сдвигатели 24-26 предназначены для 45 приема и сдвига данных с последующей их выдачей. Сдвиги могут быть вправо и влево, арифметические и логические, с сохранением выпадающих при сдвиге разрядов и их сборкой по ИЛИ с после- 50 дующим сдвигом информации. Параметр сдвига и его тип задаются: формирова.телем 29 сдвига по шинам 115 и 116.
Умножитель 21 предназначен для умножения чисел с фиксированяой за55 пятой.
Арифметико-логическое устройство
22 порядков предназначено дпя обработкн (сложения, вычитания) порядков чисел.
Арифметико-логическое устройство
23 коррекции служит для коррекции порядка результата на этапе нормализации.
Регистр 5 состояния предназначен для приема, хранения и выдачи признаков, получаемых в процессе вычисления.
Сдвигатель 27 совместно с группой элементов ИСКЛ1".гЧАМЩЕЕ ИЛИ 30 выполняет функцию поиска левой еднннцы (нуля), начиная со старшего разряда мантиссы.
Группа элементов 30 состоит из элементов суммы пс mod 2, на один из входов которых поступает соответствующий разряд мантиссы, а на другой вход — знак мантиссы. В зависимости от знака иантиссы блок 30 либо передает разряды мантиссы беэ изменения, либо с инверсией. Сдвигатель 27 формирует код параметра сдвига мантиссы для операции нормализации.
Арнфметико-логическое устройство
20 предназначено для обработки данных при арифметических и логических операциях. Арифметико-логическое устройство 20 служит для обработки мантисс либо чисел с фиксированной запятой.
Коммутатор 28 предназначен для формирования максимального либо минимального порядка результата в зависимости от значения признаков. Такая зависимость показана в табл.1, где
M = 0 — значение мантиссы результата Пмц с макс ьный порядок Пмин м«кс минимальный порядок; ПРП ) 0 — приз: нак переполнения порядков больше О.
Формирователь 29 параметра сдвига (фиг.2) предназначен для выработки кода параметра сдвига и типа сдвига. На вход 108 формирователя поступает код разности порядков из блока 22, который записывается в регистр 291. Сюда же по входу 179 из блока 22 поступает знак разности порядков. Код разности порядков вместе со знаком поступает на вход старших разрядов адреса блока 290 памяти.
Одновременно четыре младших разряда кода разности поступают на. вход первого операнда арифметнко-логического устройства 292 . На вход младших разрядов адреса блока 290 памяти по входу 114 из микропрограммы. поступает код типа сдвига. На основе поступивших данных этот блок вырабатывает
l 594557 на первом выходе код, который поступает на выход 115 типа сдвига, а на втором выходе вырабатывает код операции, поступающий в арифметикологическое устройство 292. На вход
5 второго операнда арифметико-логического устройства 292 поступает код логического нуля, в зависимости от кода операции арифметико-логического уст-. ройства на выходе 116 вырабатывается код параметра сдвига.
Все блоки, входящие в устройство, кроме блока 17 синхронизации, блока
13 маски запросов, блока 11 маски признаков, блока 15 обслуживания обмена, блока 19 выдачи запросов, блока 8 приоритета, блока 9 запросов и формирователя 29 параметров сдвига, являются стандартными, известными в технике схемными решениями и поэтому их структурные схемы в описании устройства не приведены.
Например, блок 31-3 обмена информацией реализуется на БИС вЂ” схема обмена информацией КР 1802 BBl.
Первые сдвигатели 24 и 27 реализуются на БИС вЂ” арифметический расширитель: КР 1802 ВР1.
Арифметико-логическое устройство. 30
20 мантисс реализуется на БИС вЂ” микропроцессорная секция КР 1802 ВС1.
Формирователь 3 адреса реализуется на БИС вЂ” схема управления последовательностью микрокоманд К 1804 ВУ4.
Коммутатор 28 реализуется на
ИС К 155 КП-2 - дешифратор — коммутатор. I
Блоки 2,-и 2 памяти реализуются на ИС КР556 РТ5. 40
Шина данных является двунаправленной шиной, по которой передаются исходные числа либо с фиксированной, либо с плавающей запятой и результаты обработки. 45
Блок 16 формирования векторных признаков представляет собой блок памяти, Входы 270, 272 и 228 и старшие разряды входа 271 являются адресными входами блока памяти. Младшие раз- 50 ряды входа 271 являются входами pasрешения чтения блока памяти, выход
224 и выход 269 кода признаков является первым и вторым информационными выходами блока памяти. Блок 19 на -. ,каждом такте . работы устройства иэ скалярных признаков, т.е. признаков результатов обработки компонент векторов, поступающих на его вход 270, и признака переполнения счетчика 6, поступающего по входу 228, предыдущих (т.е. полученных на предыдущем такте работы устройства) векторных признаков, поступаюших по входу 272, в зависимости от разрешения иэ микропрограммы формирует векторные признаки, необходимые для внутренней работы устройства (выход 224) и внешней работы (выход 269).
Блок 13 маски запросов содержит (фиг.6) счетчик 313, группу элементов И 314-324, элемент ИЛИ 325, первый 326 и второй 327 триггеры, первую группу управляющих входов 227, вторую группу управляющих входов 240, третью группу управляющих входов
243, информационный вход 231 синхровход 250, первый 229 и второй 249 выходы. Блок 10 запросов содержит (фиг.7) регистр 328 и группу элементов И 329-331, группу информац;юонных входов 248, синхровход 247, первую группу выходов 255, вторую группу выходов 281.
Блок 8 приоритета содержит (фиг.8) группу элементов ИЛИ 332-334, группу элементов И 335-337, триггер 338, группу информационных входов 262, синхровход 252, первый выход 253, второй выход 263 и выход 35 общей готовности.
Блок 15 обслуживания обмена содержит (фиг.9) группу элементов И 339345 и 349, первый 346 и второй 347 элементы ИЛИ, триггер 348, управляющий вход 259, информационный вход
287, вход 284 признака данных, вход
36 общей готовности, выход 258 строба готовности данных, выход 285 записи, выход 286 чтения, первый 362 и второй
363 управляющие выходы.
Микропрограмма предлагаемого устройства представляет собой микропрограмму конвейерной обработки данных, обеспечивающую выполнение арифметикологической операции, заданной в команде (например, умножение двух чисел с плавающей точкой, поразрядное логическое умножение двух кодов).
Микропрограмма конвейерной обработки данных — это такая микропрограмма, которая позволяет вести параллельную обработку cpasy нескольких пар элементов операндов-массивов (либо нескольких элементов одного операндамассива для унарных команд), причем каждая иэ пар элементов находится
1594557
12 в определенной фазе выполнения ариф-" метико-логической операции.
Например, известно, что операция сложения двух чисел с плавающей точкой состоит из следующих фаз: анализ порядков, выравнивание порядков, сложение и нормализация. Микропрограмма данной операции позволяет одновременно нормализовать сумму i-й пары чисел, суммировать i+1-ю пару чисел, выравнивать порядки у i+2-й пары чисел (например, i i+1 i+2 i+3 индексы четырех, расположенных подряд, элементов векторов-операндов).
Для организации конвейерного процесса обработки, векторов-операндов в устройстве используются,мнкрооперацни запроса данных или запроса двойных данных. Они предназначены для пере- 20 сылки элемента массива операнда на
ОЗУ либо для пересылки элемента массива результата выполнения векторной операции в,ОЗУ.
При выполнении определенного запро-.25 са соответствующий триггер регистра
14 готовности устанавливается в состояние "Готов". Запрос считается выполненным, если запрашиваемая пересылка выполнена (соответствующий 30 триггер регистра готовности сбрасывается).
Благодаря использованию в устройстве механизмов блокировки и выдачи запросов, а также двойных запросов, блокировки формирования векторных признаков и блокировки всех запросов, кроме первого, с помощью кода настройки из блока 10 памяти возможно блокирование выдачи ложных результатов и 10 признаков результата .с конвейера до того момента, пока на входы операционных блоков „ входящих в последнюю ступень конвейера для данной операции, не придут результаты обработки пер- 45 вой пары операндов массива данных на всех предшествующих ступенях конвейера. С выдачей последней пары операндов массива данных запросы на новые операнды также блокируются. Возмож- 50 на также аппаратная блокировка всех . запросов, кроме первого, на выдачу одного из операндов при выполнении операций типа вектор — скаляр, например умножения компонент вектора на константу, что приводит к сокращению микропрограмм выполнения таких операций, а следовательно, к сокращению объема ПЗУ и всего оборудования в це" лом н повышения быстродействия устройства. Устройство работает следующим образом, По входу 268 "Пуск" происходит установка устройства в исходное состояние, подготовка схем к работе (цепи сброса регистров и счетчиков устройства в исходное состояние не показаны). По входу 265 в счетчик длины вектора иэ блоков 32-1 и 32-2 обмена заносится длина вектора. Код операции поступает на вход 209 устройства и затем в регистр 18 кода операции векторной команды.
В блоке 10 памяти микрокоманд перекодировки происходит перекодирование кода операции в начальный адрес соответствующей микропрограммы, в код настройки операционной части, поступающий на выход 215 и позволяющий реализовать выполнение микропрограмм в конвейерном режиме для данного кода операции, аппаратно модифицировать операции, выполняемые отдельными устройствами (например, изменить тип данных и формат данных в операционных блоках, блокировать выдачу запросов, настроить блок 13 на обработку двойных запросов).
Формирователь 3 служит для формирования адреса каждой последующей микрокоманды, выполняемой микропрограммы в соответствии с временной диаграммой. По сформированному адресу, поступающему на блок 2 памяти микропрограмм, выбирается соответствующая микрокоманда, поступающая на регистр
4 микрокоманд для хранения в период выполнения микрокоманды.
Блок 22 памяти расшифровывает код микрокоманды и выдает на выход 195 кода мнкроопераций и блоки устройства управляющие сигналы. Поскольку выполнение микропрограммы происходит в конвейерном режиме, возникает необходимость,маскирования записи признаков в регистр 12 векторных признаков.
Для этого служит блок 11 маскцрования признаков. Кроме векторных признаков, поступающих на информационный вход
225, на регистр 12 по этому же входу поступает признак последнего операнда.
По информационным входам 180, 190, 192 и 194 на регистр 5 состояния поступают признаки, возникающие при выполнении скалярных операций, ".е. операций над компонентами век13
1594557
14 торов. Признаки скалярных и векторных операций поступают на мультиплексор
7, с которого под управлением блока
22 памяти необходимый признак поступает на формирователь 3 адреса. ПриэР наки вектора-результата могут вьдаваться на выход 269 через блок. 16 при наличии соответствующего разрешения
s микропрограмме получения данного результата.
Блок 13 маски запросов используется для маскирования записи запросов в блок 9 запросов и формирования сигналов для подсчета длины вектора
15 в счетчике 6.
Блок 9 запросов функционально представляет собой очередь запросов гау-.. биной 1. Наличие этой очереди позволяет выставлять из микропрограммы очередной запрос в то время, когда идет обслуживание предыдущего.
Из блока 9 запросы поступают на регистр 14 готовности и блок 19 выдачи запросов. 25
Из регистра 14 готовности запросы поступают на блок 8 приоритета, который предназначен для выработки определенного порядка, выдачи запросов.
Блок 17 синхронизации формирует 30 временную последовательность синхросигналов, используемых для формирования временкых соотношений при выполнении микропрограммы.
В исходное состояние блок синхрони-3 зации приводится по входу 268 "Пуск".
Блок 9 запросов {фиг.7) предназначен для промежуточного хранения запросов, поступающих из блока 13 маски запросов, и последующей их.пе- 40 редачи в регистр 14 готовности и блок 19 вьдачи запросов. . Запросы, поступающие на информационный вход 248, запоминаются в триггерах 328, с выходов этих тригге- 45 ров запросы поступают на выход 281.
После прихода сигнала на синхровход
247 каждый запрос через свой элемент
И (329, 330, 331) поступает на вход
225 и одновременно обнуляет соответствующий триггер, переводя его в состояние готовности принять очередной запрос.
Блок 8 приоритета (фиг.8) предназначен для выработки определенного порядка вьдачи запросов, поступающих из регистра 14 готовности, а также формирования сигнала, характеризующего отсутствие запросов в этом регистре (состояние, когда все запросы обслужены).
При отсутствии запросов на информационном входе 262 появляются еди ничные сигналы на выходах инверторов
332-334 и, соответственно элементе
И 337. Импульс, поступающий на синх- . ровход 252, при наличии сигнала на выходе элемента 337 взведет триггер
338 и на втором выходе 263 появится сигнал, говорящий о том, что все запросы в регистре 14 готовности обслужены. Сигнал общей,. готовности появится также на выходе 35.
Очередность выдачи запросов на первый выход 253 реализуется следующим образом: запрос, поступающий на вход 262З, немедленно проходит на выход 253; запрос, поступающий на вход 262,проходит через элемент 335 на выход 253 только при отсутствии запроса на входе 262>, запрос, посту-. пающий на вход 262, проходит через элемент 336 на выход 253, тогда и только тогда, когда отсутствуют запросы н на входе 262 и на входе
262 .
Блок 13 маски запросов (фиг.6) предназначен для разрешения ипи запрещения прохождения запросов в блок
9 запросов, а также формирования сигналов, необходимых для подсчета длины векторов в счетчике 6. Для маскирования запросов на выдачу результата, поступающих с входа 243,, на определенное число шагов в счетчике 313 предварительно с информационного вхо-. да 231 по сигналу разрешения записи с входа 239 заносится некоторая константа. При этом на выходе счетчика отсутствует сигнал разрешения прохождения запросов с входа 243 через
1 элемент 315 на выход 249. Одновременно разрешается прохождение этих же запросов через элемент 314 при появлении синхросигнала с синхровхода
250. Запросы с выхода элемента 314 поступают на вычитающий вход 31 3 и уменьшают его содержимое до тех пор, пока он не обнулится и не заблокирует дальнейшее прохождение запросов в свой вход. При этом на выходе счетчика появится сигнал разрешения прохождения запросов через элемент.
315 и на выход 249 по синхроимпульсам, поступающим на вход 250. Такой способ маскирования запросов устраняет ложное считывание результата на
1594557 число шагов, равное глубине конвейера. На входы 240> и 240з с блака 10 памяти поступают сигналы признаков операции вектор — скаляр и скаляр— вектор соответственно. При наличии
5 сигналов на входах 240 и 240з можно замаскировать запросы на очередные элементы операндов, поступающие с .:: — . входов 243 и 243>, причем замаскиро-. вать запросы все, кроме первого. Дейсгвительно, если отсутствует сигнал
1 переполнения счетчика длины вектора
1 на входе 227, то по синхроимпульсу
250 первые эапрбсы с входом 243 и 15
243> через элементы 317, 322, 316 и
321 соответственно проходят на выход
249. Одновременно эти же запросы с выходов элементов 317 и 316 через элементы 324 и 323 соответственно 20 проходят на установочные входы триггеров 237 и 236. При этом на их инверсных выходах появляются сигналы, запрещающие прохождение последующих запросов через элементы 322 и 321 соответственно на выход 249. Такое маскирование позволяет уменьшить длину микропрограмм операций типа век..-с тор — скаляр и скаляр — вектор на величину, равную суммарному числу мик-30 рокоманд, необходимому для задания соответствующей маски на запросы одного из операндов данных операций„
В блоке 13 маски запросов по сигналу с входа 240, осуществляется также выбор одного из запросов, поступающих на входы 243 или 243,по которому происходит счет в счетчике
6 длины вектора (другими словами, выбор счета длины вектора по первому или второму операнду). Если на входе
240, присутствует единый сигнал и нет переполнения счетчика длины вектора (отсутствует сигнал на входе 45
227), то запрос с входа 243> через элементы 31 8, 325 и 320 проходит на выход 229. В противном случае на выход 229 через элементы 319, 325 и
320 проходит запрос, поступающий с выхода 243
Блок ll маски признаков .(фиг.5) предназначен для разрешения или запрещения записи признаков в регистр
12 векторных признаков. Для маскирова". 55 ния сигнала разрешения записи (выход 216) на определенное число шагов в счетчик 310 с информационного входа
232 (по сигналу разрешения записи управляющего входа 2361) заносится некоторая константа. При этом на выходе счетчика возникает сигнал„ запрещающий прохождение сигнала с входа
326, стробируемого синхросигналом с входа 245; через элемент 312 и одновременно разрешающий прохождение синхросигналов с входа 244 через элемент 311 на вычитающий вход счетчика.
По этим синхросигналам происходит уменьшение содержимого счетчика до тех пор, пока он не обнулится и не заблокирует элемент 311 . После обнуления до записи новой константы на выходе счетчика стоит сигнал раз« решения прохождения сигнала записи с входа 236, через элемент 312 на выход 216.
Блок 15 обслуживания обмена> (фиг.9) предназначен для органиэации функционирования процессора с двойны- . ми или одинарными операндами, а также обслуживания запросов на получе-ние очередных элементов операндов или выдачу ре зуль т ат а.
При поступлении на вход 259 еди" ничных сигналов, говорящих о том, что будут обрабатываться операнды двойной длины, на выходе одного из элементов 339, 340 или 34! в зависимости от того, какой из трех сигналов в данный момент поступил на вход
287, появится единичный сигнал, поступающий через элемент 346, на вход триггера 348. Одновременно этот сигнал поступает на инверсный вход элемента 343 и запрещает прохождение признака данных с входа 284 через элемент 343 и 347 на выход 258. Поскольку триггер 348 в начальный момент времени находится в нулевом состоянии, то он также запрещает прохождение первого сигнала признака данных через элемент 342 и 347 на выход
258. По заднему фронту первого сигнала признака данных, поступающего на : вкод С, триггер 348 перебрасывается в единичное состояние и разрешает прохождение следующего признака данных через элемент 342 и 347 на выход
258. По заднему фронту второго сигнала признака данных триггер сбрасывается в нулевое состояние. Таким образом, если обрабатываются операнды двойной длины, на выходе 258 появляется каждый второй сигнал признака данных, поступающий на вход регист1594557
17 ра готовности. Если же для какого-либо сигнала запроса отсутствует ссответствующий сигнал признака операнда двойной длины {цепь 259), то на выходе элемента 346 будет,присутство-.:5 вать нулевой сигнал, разрешающий прохождение первого сигнала признака данных с входа 284 через элементы
343 и 347 на выход 258.
Блок 15 обеспечивает также формирование сигналов чтения {выдачи) результата или записи {приема) операндов. Если на вход элемента 341 по шине 287 поступает единичный сигнал, соответствующий запросу на выдачу результата, то на выходе элемента
344 по сигналу признака данных с входа 284 возникает сигнал чтения, поступающий на выход 286. Если же на входе элемента 241 отсутствует единичный сигнал, то по сигналам признака данных на выходе элемента
345 возникают сигналы записи соответствующего операнда, поступающие 25 на вход 285. Кроме того, по сигналам, формируемым на выходах 362 и 363, обеспечивается одновременная запись информации во все блоки 32 обмена с шины данных либо раздельная запись сначала в блоки 32-1 и 32-2, а затем в 32-3 и 32-4. Это позволяет обрабатывать слова двойного формата.
Таким образом, благодаря блоку 15 обслуживания обмена обеспечивается управление операндами и результатом как одинарной, так и двойной длины, а также обеспечивается возможность работы устройства с магистралью обмена данными для многопроцессорных 40 устройств и уменьшение разрядности кода признаков управления запросами.
Рассмотрим работу на примерах сложения и умножения чисел с плавающей запятой, поскольку они являются основными для остальных операций.
Сложение. По шине данных в блоки
32 обмена информацией записываются последовательно числа, подлежащие обработке. При этом иантиссы чисел поступают соответственно в блоки 32-1 и 32-2, а порядки — в блоки 32-3 и
32-4. По сигналам из микрокоманды данные последовательно переписываются в соответствующие блоки 31-3,. ° . ..;,31 -6. Цикл операции сложения чисел с плавающей запятой состоит из нескольких этапов.
На первом этапе выполняется обра-. ботка порядков, т.е. сравнение порядков. Порядки чисел с блоков 31-6 и
31-5 по входам-выходам 105 и 1 10 поступают на входы-выходы соответственно 106 и 109 арифметико-логического устройства 22 порядков, которое настраивается микропрограммно на операцию вычитания. Результат операции в виде разности исходньг-. порядков поступает с входов-выходов 109 с временной задержкой на вход 108 формирователя 29 параметра сдвига. В зависимости от знака разности порядков включается в работу сдвигатель 24 либо 25 и формируется код параметра сдвига вправо мантиссы числа с меньшим порядком.
На втором этапе выполняется сдвиг мантиссы числа с меньшим порядком вправо, т.е. операция выравнивания порядков. Направление сдвига задается микрокомандой. На этом же этапе осуществляется пересыпка наиболь щего порядка в один из регистров блока 31-5. Пересыпка осуществляется через арифметико-логическое устройство 22 порядков, которое настранваетая на передачу кода либо с входов-выходов 109, либо с входоввыходов 106. Если наибольший порядок содержится в регистре блока 31— то он через арифметико-логическое устройство 22 по входам-.выходам 105, 109 и 110 поступает в заданный регистр блока 31-5. В случае наибольшего порядка в блоке 31 5 передача его осуществляется по входам-выходам 110, 109 и обратно 109, 110.
Третий этап представляет собой сложение мантисс. Для этого мантиссы двух операндов читаются с блоков.31 - 3 и 31-4 по входам-выходам 88 и 92. на соответствующие входы-выходы 89 и 94 арифметико-логического устройства 20, которое микропрограммно настроено на операцию сложения. Результат операции с временной задержкой поступает по входам-выходам 89 на заданный регистр блока 31-1 по входамвыходам 91. Сдновременно с этим выб-: ранный наибольший порядок, хранящийся в блоке 31-5, читается с него по входам-выходам 110 на выбранный регистр блока 31-2 по входам-выходам
107. Сформированные признаки с выходов 193 арифметико-логического устрой1594557
20 ства 20 поступают на вход 194 в регистр состояния.
Четвертый этап представляет собой операцию поиска левой единицы (нуля) мантиссы результата. Полученный код параметра нормализации мантиссы и он же код параметра коррекции порядка результата с выхода четвертого сдвигателя 27 поступает в выбранный регистр блока 31-2 по входамвыходам 125.
Пятый этап — это этап нормализации мантиссы результата и коррекции порядка. Мантисса результата с выбранного регистра блока 31-1 по входамвыходам 127 поступает в третий сдвигатель 26 по входам-выходам 12