Потоковый параллельный процессор

 

Изобретение относится к цифровой вычислительной технике и может быть использовано в вычислительных системах высокой Изобретение относится к цифровой вычислительной технике и может быть использовано в цифровых вычислительных системах высокой производительности, Цель изобретения - увеличение быстродействия процессора при выполнении векторных операций. На фиг. 1 представлена функциональная схема потокового параллельного процессора; на фиг. 2 - функциональная схема блока обработки команд; на фиг. 3 - функпроизводительности . Цель изобретения - увеличение быстродействия при выполнении векторных операций потокового параллельного процессора. Потоковый параллельный процессор содержит блок обработки , блоки обработки команд коммутаторы . Программа для процессора представляется в виде направленного графа , в узлах которого находятся команды, а дуги указывают направления передачи данных и признаки активизации команд. Команды , для которых есть все операнды, обрабатываются в блоке обработки, на выходе его формируются результат и адреса, по которым производится либо запись результата в память, либо считывание из нее следующих команд для их обработки. Это позволяет исключить наиболее сложную и дорогостоящую часть потоковых ЭВМ - ассоциативное ЗУ большой емкости. Наличие нескольких блоков обработки команд позволяеторганизовать конвейерное считывание и обработку упорядоченных данных (векторов) любой длины без снижения эффективности работы процессора. 1 з.п. флы, 4 ил., 3 табл. циональная схема узла памяти, на фиг. 4 - временные диаграммы сигналов синхронизации . Процессор (фиг. 1) содержит блок 1 обработки , блоки 2.1-2.К обработки команд и коммутаторы 3.1-3.К/2. Блок обработки (фиг. 2) включает первый коммутатор 4, первый и второй счетчики 5 и 6, второй коммутатор 7, третий и четвертый счетчики 8 и 9, третий коммутатор 10, первый регистр 11, четвертый и пятый ком (Л С о ю & 00 4Ь. СП

СОЮЗ СОВЕТСКИХ

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

РЕСПУБЛИК (si)s G 06 F 15/00

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

ПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ

ПРИ ГКНТ СССР

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

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (21) 4709165/24 (22) 26.06.89 (46) 15.11.91. Бюл. М 42 (75) П.И,Александров (53) 681.3(088.8) (56) Майерс Г, Архитектура современных

ЭВМ. Кн. 2 (Пер. с англ.). M.: Мир, 1985, с,251, рис.22.28, Вычислительная техника эа рубежом в

1980 году/Под ред. В.С.Бурцева.M.: ИТМ и

ВТ АН СССР, 1981, с.50.

Карцев М.А. Архитектура цифровых вычислительных машин. М.: Главная редакция физико-математической литературы изд-ва

"Наука", 1978, Каган Б,M. Электронные вычислительные машины и системы: Учебн. пособие для вузов. М.; Энергоатомиздат, 1985.

Авторское свидетельство СССР

N- 1608682, кл. G 06 F 15/00, 20.08.89. (54) ПОТОКОВЫЙ ПАРАЛЛЕЛЬНЫЙ ПРОЦБССОР (57} Изобретение относится к цифровой вычислительной технике и может быть использовано в вычислительных системах высокой

Изобретение относится к цифровой вычислительной технике и может быть использовано в цифровых вычислительных системах высокой производительности.

Цель изобретения — увеличение быстродействия процессора при выполнении векторных операций.

Ка фиг. 1 представлена функциональная схема потокового параллельного процессора; на фиг. 2 — функциональная схема блока обработки команд; на фиг. 3 — функ. Ж 1691845 А1 производительности. Цель изобретения— увеличение быстродействия при выполнении векторных операций потокового параллельного процессора. Потоковый параллельный процессор содержит блок обработки, блоки обработки команд коммутаторы. Программа для процессора представляется в виде направленного графа, в узлах которого находятся команды, а дуги указывают направления передачи данных и признаки активизации команд. Команды, для которых есть все операнды, обрабатываются в блоке обработки, на выходе его формируются результат и адреса, по которым производится либо запись ре1 зультата в память, либо считывание иэ нее следующих команд для их обработки. Это позволяет исключить наиболее сложную и дорогостоящую часть потоковых ЭВМ вЂ” ассоциативное ЗУ большой емкости. Наличие нескольких блоков обработки команд позволяеторганиэовать конвейерное считывание и обработку упорядоченных данных (векторов) любой длины без снижения эффективности работы процессора. 1 э.п. флы, 4 ил., 3 табл. циональная схема узла памяти; на фиг. 4— временные диаграммы сигналов синхронизации.

Процессор (фиг, 1) содержит блок 1 обработки, блоки 2.1 — 2.К обработки команд и коммутаторы 3.1 — 3. К/2.

Блок обработки (фиг. 2) включает первый коммутатор 4, первый и второй счетчики

5 и 6, второй коммутатор 7, третий и четвертый счетчики 8 и 9, третий коммутатор 10, первый регистр 11, четвертый и пятый ком1691845

10 первого по третий признаки сопровожде- 15 ния информации; УПРΠ— вход кода операции блока обработки команд; A1i, A2i, ГОТь

30 мутаторы 12 и 13, узел 14 управления, узлы

15 и 16 памяти, второй регистр 17 и с первого по третий триггеры 18 — 20.

Функциональная схема узла 16 памяти представлена на фиг. 3, Он содержит m-pa;>рядный регистр 21, элементы И 22.1-22,m и запоминающие блоки 23.1 — 23,m.

Кроме того, на фиг. 1-3 обозначены:

ИНФ1, ИНФ2, ИНФЗ вЂ” с первого по третий информационные выходы блока обработки команд; ИНФО, ИНФЗ -1 — первый и вторсй информационные входы блока обработки команд; ПРь ПН вЂ” первый и второй признаки режима прерывания; ГД РЕГь ПОБР— с

МА — первый, второй, третий и с четвертого по (Н+4)-й разряды входа кода операции блока обработки команд; BY — выход ре>клма векторной операции блока обработки команд; УПР— вход режима векторной операции блока обработки команд; НВь КВь

БЛ вЂ” с первого по третий разряды, выхода признака векторной операции; НВ1-НВк, КВ1-КВк, БЛ1 — БЛк — с первого по ЗК-й разряды входа признака векторной операции;

Пвект, ПН 1 — П Н н, ПК) П Кн+з с первого f10 (2Н+5)-й разряды выхода второго узла памя. ти.

Устройство работает следующим образом, Программа для процессора представляется в виде направленного графа. В узлах графа находятся команды, а дуги указывают направления, по которым передаются данные в виде группового пакета результата, ЗМ разрядов которого формируется в блоке

1 как результат выполнения операции и содержат M-разрядный пакет данных и два

М-разрядных пакета адреса (табл. i), Первый разряд каждого пакета является признаком наличия в нем информации (ПН"1") либо указывает на ее отсутствие (ПН=

"0"), в пакете адреса содержится признак активизаци л(ПЗП) команды, Если ПЗП = "1", то по этому адресу производится запись Mразрядного пакета данных. Если ПЗ П = "0", то по этому адресу считывается m М-разрядная команда, которая содержит M-разрядный пакет операции и. (m-1) М-разрядных пакетов данных. Пакет команды и групповой пакет результата на выходе блока памяти объединяются в (m+3) M-разрядный групповой пакетданных (табл. 2). Пакет кода операции содержит признаки участия соответствующих пакетов в операции ПК1ПКЩ+3

В качестве блока 1 обработки может быть использован, например, процессор с шиной данных большой разрядности (s частности, иэделие 5Ý66, Фг 1,700.000). В каждом такте работы блок 1 принимает данные и код операции и на выходе формирует результат выполнения операции в виде группового пакета результата. Выходная шина данных блока 1 соединена с входами всех блоков 2. На управляющих выходах блока 1 формируются сигналы, которые управляют приемом информации в блоки 2, В каждом такте сигналы ГОТ1 — ГОТк разрешают прием информации в соответствующие блоки памяти, а сигналы А11-А1к и A2> — А2к указывают, какой из двух адресов группового пакета результата используется для обращения в соответствующем блоке 2, сигналы маски (МА) обеспечивают запись М разрядов в строку памяти на соответствующие места и считывание полной m M-разрядной строки. В каждом такте работы блок 1 обрабатывает до (2+m) M-разрядных операндов, формируя при этом M-разрядный результат и до двух M-разрядных адресов; такую операцию считают скалярной. Если в операции участвуют больше операндов, то такую операцию считают векторной. Она размещается в нескольких блоках 2 (табл, 3) и обрабатывается, соответственно, эа большее количество тактов блока 1, В каждом такте производится прием ин-. формации ЗМ-разрядного группового пакета результата и управляющих сигналов A1i и

А2 в 2 -й блок обработки команд по сигналу

ГОТь Так как такт работы блока 2 дольше такта работы блока 1, то информация накапливается в (3M+2)-разрядном узле памяти, В каждом такте работы блока 2 на выходе

ИНФ1 формируется групповой пакет дан. ных для передачи в блок 1 по управляющему сигналу ГД; = "1", В момент т; могут выдавать данные в блок 1 i-й (i+K/2)-й блоки 2, При этом блок 2 с меньшим номером считывается приоритетным, поэтому формируются сигналы ГД

= "1" и ГД+кд = "0", по которым i-й блок 2 передает групповой пакет данных в блок 1, а в блоке 2(i+K/2) запрос на передачу данных в блок 1 запоминается в виде группового пакета результата в узле 15, В процессоре одновременно могут обрабатываться разные ветви программы. Для синхронизации их обработки и исключения потери информации при формировании команды проверяется соответствие призна5 ков ПК1-ПКп в пакете операции и признаков

ПН 1-ПНв в пакетах операции и данных. Если окажется, что в команде нет всех данныхдля выполнения операции, то формируется сигнал ГД = "0" и запрос в виде группового пакета результата заносится в узел 15, количество занятых ячеек узла 15 контролируется в счетчике 9. Если в узле 15 нет информации, то запрещается чтение из узла памяти.

Если узел 15 заполнен, то формируется признак БЛ = "1", который запрещает передачу 5 данных в блок 1 для всех блоков 2, кроме

i-го. Это позволяет не допустить переполнения узла 15 с потерей информации и способствует последовательному перебору запросов из очереди в узле 15. Запросы, для 10 которых нет еще всех данных, возвращаются в конец очереди. Если команда передается в блок 1 для обработки, то запрос исключается из очереди и освобождает ячейку узла 15, при этом устанавливается 15

БЛ = "0".

Если из узла 16 считана команда с признаком Начало вектора, Пвект = 01, то ее передача в блок 1 задерживается на один такт работы блока 2.i. При этом групповой 20 пакет данных запоминается в регистре 17, а адрес, по которому он был считан, заносится в счетчик 8 и передается в (i+1)-й блок 2.

Если, векторная команда содержит больше компонентов, чем блоков 2, то запрос на 25 считывание данных, последовательно обойдя блоки памяти, возвращается в i-й блок памяти, при этом адрес, содержащийся в счетчике 8, увеличивается на единицу.

При выполнении векторной команды 30 для всех блоков 2 разрешается запись результата с выходов блока 1 в узле памяти, Если групповой пакет результата на выходах блока 1 содержит признак чтения иэ узла памяти, то он запоминается в узле па- 35 мяти, чтобы исключить передачу в блок 1 новой команды до тех пор, пока не будут обработаны все компоненты векторной команды. Триггеры 18 — 20 необходимы для сохранения управляющих сигналов на всем 40 протяжении такта работы узла памяти.

Узел 15 представляет собой (3M+2)-разрядное запоминающее устройство, содержащее Р ячеек. Число Р примерно равно максимальному числу одновременно выпол- 45 няемых ветвей программ. (m.M)-разрядное ЗУ обеспечивает запись M разрядов в соответствии с маской (МА), которая содержит одну единицу, и считывание полной (m.M)-разрядной строки, 50 при этом все разряды маски (MA) равны "1".

Узел управления обеспечивает формирование в каждом такте управляющих сиг- . налов в соответствии с формулами:

БЛ1- (Сч4 к+1 Сч41 Сч4г ... Сч4к" 55

Сч4к+1 t, где К=1одф;

"1" при (Пвект 11 )

KBi

0" иначе

"0" при т(т1 ПР1) 1" при t(IlPI ti );

"0" при «РЕГ

РЕГИ =

ГД) = «(tl (Пвект .= 00 ) ПН!

ПН - уг ПР!-пп ПБЛ );

«((IOli «) (ГД йОВТ"

ПБЛ ); где ПОВН 1" при t(tl ПОВТ НВ ПБЛ );

1,"0" при t ПОВТ

ЧТ = t(«ЗП (СЧЦСч4гК.. Сч4к+1));

Y1- -«(ГОТ) ;

Y2 = «(ГД ПОВТ «();

УЗ =)" 1" при «)(Пвект = "01 ") НВу ПОБРь1); 0" при «ПОБР

Y4 = «(Пвект.= "01 ") HB();

Y5= t(НBI ПОБPi-1);

Y6 = HBi;

Y7 = гнв(ПОБР -1);

Y8 = ПОВТОР

Y9 = t ГОТ, ПОБР1 = УЯ.

На фиг. 4 представлены временные диаграммы синхронизирующих сигналов. Длительность такта работы блока 1 обозначена

t,блока 2 — Т.

Формула изобретения

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

ПН =(ПК1" ПК ... " Пн йК);

1" при «(ПН!" НВ д"ПЕЛ «;), НВ"0" при «(КВ1КВг .. CB<), где ПБЛi = (БЛт БЛг ..."БЛи БЛн! ... V БЛ.);

1" при t(t) ПОВТ " НВ(" ПБЛ );

1691845 третий входы синхронизации которого соединены соответственно с вторым и третьим входами синхронизации процессора, о т л ич а ю шийся тем, что, с целью увеличения быстродействия и ри выполнении векторных операций, он дополнительно содержит с второго по К/2-й коммутаторы, где К = (2.Т)/ t; Т вЂ” длительность такта работы блока команд; t — длительность такта работы блока обработки, с второго по К-й блоки обработки команд, причем информационный выход блока обработки соединен с первыми информационными входами с второго по К-й блоков обработки команд, первый и второй информационные выходы с второго по К/2-й блоков обработки команд соединеHbl соответственно с первым и вторым информационными входами с второго по К/2-й коммутаторов, выходы которых соединены соответственно с второго по К/2-й информационными входами блока обработки, первый и второй информационные выходы с (К/2+1)-го по K-Ai блоков обработки команд соединены соответственно с третьим и четвертым информационными входами с первого по Kg-й ком|мутаторов, первый и второй выходы признаков сопровождения информации с второго по К/2-й блоков обработки команд соединены соответственно с первым и вторым управляющими входами с второго по К/2-й коммугаторов, первый и второй входы признаков сопровождения информации с (К/2+1)-го по К-й блоков обработки команд соединены соответственно с третьим и четвертым управляющими входами с первого по К/2. -й коммутаторов, третий информационный выход и третий выход признака сопровождения информации с первого по К-й блоков обработки команд соединены соответственно с вторым информационным входом и входом признака ="опровождения информации с второго по К-й и с первым блоком обработки команд, выходы первого и второго признаков режима прерывания с первого по К/2-й блоков обработки команд соединены соответственно с первым и вторым входами признаков режима прерывания с (К/2+1)-ro по К-й блоков обработки команд, с первого по третий выходы признаков режима векторной операции с первого по K-й блоков обработки команд соединены соответстве IHO с первого по ЗК-й входами признаков режима векторной операции с-первого.по K-й блоков обработки команд, с второго по К-й выходы кода операции блока обработки соединены соответственно с входами кода операции с второго по К-й блоков обработки команд, первый вход синхронизации процессора со5

55 единен с первыми входами синхронизации с второго по К-й блоков обработки команд, вторые и третьи входы синхронизации с второго по К/2-й блоков обработки команд соединены соответственно с четвертого по (К+1)-й входами синхронизации процессора, с второго по (К+1)-й входы синхронизации которого соединены соответственно с вторым и третьим входами синхронизации с (К/2+1)-го по К-й блоков обработки команд.

2, Процессор по и, 1, о т л и ч а ю щ и и с я тем, что блок обработки команд содержит первый и второй узлы памяти, с первого по пятый коммутаторы, с первого по четвертый счетчики, первый и второй регистры, с первого по третий триггеры, узел управления, причем первый информационный вход и первый и второй разряды входа кода операции блока соединены с первыми информационными входами первого и второго коммутаторов, выход первого коммутатора соединен с информационным входом первого узла памяти, информационные выходы первого и второго счетчиков соединены соответственно с первым и вторым информационными входами третьего коммутатора, выход которого соединен с входом адреса первого узла памяти, выход которого соединен с вторым информационным входом второго коммутатора, выход которого соединен с информационным входом nepaoro регистра, выход которого соединен с вторым информационным входом первого коммутатора, с первого по А-й разряды выхода первого регистра соединены соответственно с первого по А-й разрядами информационного входа второго регистра и первого информационного выхода блока (где А — количество разрядов группового пакета результата, А = ЗМ; M — количество разрядов пакета данных или адреса), с первого по М-й разряды выхода перво" î оегистра соединены соответственно с первого по

M-й разряд информационного входа второго узла памяти, с первого по В-й разряды выхода (где  — количество разрядов пакета команды, В = НМ; Н вЂ” количество пакетов данных в пакете команды) второго узла памяти соединены соответственно с (А+1)-го по (А+В)-й разрядами информационного входа второго регистра и первого информационного выхода блока, второй информационный выход которого соединен с выходом . второго регистра, с (М+1)-ro по 2М-й и с (2M+1)- по ЗМ-й разряды выхода первого регистра соединены соответственно с первым и вторым информационными входами четвертого коммутатора, выход которого соединен с адресным входам второго узла памяти и информационным входом третьего

1691845

10

20

30

45

Таблица 1 счетчика, информационный выход которого соединен с первым информационным входом пятого коммутатора, выход которого соединен с третьим информационным входом четвертого коммутатора .и третьим информационным выходом блока, второй информационный вход которого соединен с вторым информационным входом пятого коммутатора, третий разряд входа кода oneрации блока, (А+1}-й и (А+2)-й разряды выхода первого регистра соединены соответственно с первого по третий входами кода операции узла управления, вход признака сопровождения информации блока соединен с первым входом признаков узла управления и первым входом управления четвертого коммутатора, первый разряд выхода которого соединен с входом записи второго узла памяти, с первого по (2Н+5)-й разряды выхода которого соединены с вторым входом признаков узла управления, (А+1)-й и (А+2)-й разряды выхода первого регистра соединен ы сост ветствен но с вторым и третьим входами управления четвертого коммутатора, (М+1)-й и (2М+1)-й разряды выхода. первого регистра соединены соответственно с третьим и четвертым входами признаков узла управления, с четвертого по (Н+4)-й разряды входа кода oneрации блока соединены с входом разрешения записи второго узла памяти, прямой и инверсный информационные выходы четвертого счетчика соединены соответственно с первым и вторым информационными-входами узла управления, с первого по третий выходы внутреннего поля управления которого соединены с информационными входами соответственно с первого по третий триггеров, выходы которых соединены соответственно с первым и вто- 40 рым входами управления пятого коммутатора и с третьим выходом признака сопровождения информации блока, с первого по 3К-й разряды входа признака режима векторной операции блока соединены с первым входом условий узла управления, первый и второй входы признака режима прерывания блока соединены соответственно с вторым и третьим входами условий узла управления, с первого по седьмой выходы внешнего поля управления которого соединены соответственно с первым и вторым выходами признаков сопровождения информации, первым и вторым выходами признаков режима прерывания и с первого по третий разрядами выхода признака режима векторной операции блока, выходы с четвертого по девятый внутреннего поля управления узла управления соединены соответственно с первым и вторым входами управления первого коммутатора, первым входом управления второго коммутатора, счетным входом и выходом разрешения приема информации третьего счетчика, входом синхронизации второго регистра, десятый выход внутреннего поля управления узла управления соединен с входом синхронизации первого регистра, первым входом синхронизации второго узла памяти, одиннадцатый выход внутреннего поля управления узла управления соединен со счетными входами первого и четвертого счетчиков, первым входом управления третьего коммутатора, вторым входом управления второго коммутатора, входом чтения первого узла памяти, двенадцатый выход внутреннего поля управления узла управления соединен с вторым входом управления третьего коммутатора, счетным входом второго счетчика, вычитающим входом четвертого счетчика и входом записи первогоузла памяти, первый и второй входы синхронизации узла управления соединены соответственно с первым и вторым входами синхронизации блока, третий вход синхронизации которого соединен с вторым входом синхронизации второго узла памяти. 3691845 ово

r soil аке1

ПН2

Таблица 2

Та0лица 3

1691845

1691845

I I ! l !

Составитель А.Сашкин

Техред M,Mîðãåíòàë Корректор Э.Лончакова

Редактор А.Огар

Прои зводствен но-издательский комбинат "Патент", r. Ужгород, ул. Гагарина, 101

Заказ 3929 Тираж Подписное

ВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ СССР

113035, Москва,:K-З5, Раушская наб„4/5

Потоковый параллельный процессор Потоковый параллельный процессор Потоковый параллельный процессор Потоковый параллельный процессор Потоковый параллельный процессор Потоковый параллельный процессор Потоковый параллельный процессор Потоковый параллельный процессор 

 

Похожие патенты:

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

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

Изобретение относится к вычислительной технике и предназначено для обработки трехмерных изображений

Изобретение относится к автоматике и вычислительной технике и может быть использовано для контроля электромонтажа в производстве и процессе его изготовления

Изобретение относится к техническим средствам информатики и вычислительной техники и может быть использовано для обработки информационных потоков и массивов данных текстового и числового типов в соответствии с заданным нормальным алгоритмом

Изобретение относится к вычислительной технике и может использоваться для построения надежных многопроцессорных контроллеров

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

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

Изобретение относится к вычислительной технике и может быть использовано в электронной цифровой вычислительной машине

Изобретение относится к вычислительной технике и может быть использовано в электронной цифровой вычислительной машине

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

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

Изобретение относится к электронным играм

Микроэвм // 2108619
Изобретение относится к области микропроцессорной техники, в частности, может применяться для реализации обмена информацией

Изобретение относится к системам передачи стоимости товара при безналичных операциях
Наверх