Параллельная потоковая вычислительная система

 

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

Область применения

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

Предшествующий уровень техники

Известна, выбранная в качестве ближайшего аналога, система обработки информации с использованием подхода, основанного на управлении потоком данных, содержащая один или несколько модулей ассоциативной памяти, каждый из которых выполнен с возможностью хранить поступающие в них токены, содержащие поле данных и поле ключа, отыскивать среди хранящихся токенов токены, у которых ключ совпадает с ключом поступающего токена, запоминать поступающий токен в модулях ассоциативной памяти в случае неудачного поиска, формировать пару данных из поступающего в ассоциативную память токена и найденного в ассоциативной памяти токена при удачном поиске и направлять сформированную пару данных в любое из исполнительных устройств, одно или несколько исполнительных устройств, выполненных с возможностью выполнять инструкции, хранящиеся в доступной для исполнительного устройства памяти команд по адресам, указанным в паре данных, формировать токен, содержащий поле данных и поле ключа, в котором в поле данных помещается результат выполнения инструкции, а в поле ключа - информация об инструкции, для которой этот результат является параметром, вычислять хэш-функцию, определяющую номер модуля ассоциативной памяти, направлять сформированный токен в модуль ассоциативной памяти с любым номером в соответствии с вычисленной хэш-функцией, коммутатора токенов для направления токенов из любого исполнительного устройства в любой модуль ассоциативной памяти, и коммутатора пар данных для направления пары данных из любого модуля ассоциативной памяти в любое исполнительное устройство, при этом каждый модуль ассоциативной памяти выполнен с возможностью хранить токены в любой из своих К+1 секций, каждая из которых имеет свой фиксированный размер и пронумерованных от 0 до К, получать для хранения из исполнительных устройств токен, который в этом случае именуется входным, вычислять по информации во входном токене целое Ц, находящееся в интервале от 0 до К-1, осуществлять операцию «поиск токена» по ключу во входном токене одновременно в секциях с номерами Ц и К путем сравнения ключа входного токена с ключами всех хранящихся в секции токенов, при успешном выполнении операции «поиск токена» направлять найденный токен в устройство, выполняющее операцию «формирование пары данных» и направляющее сформированную пару данных в исполнительное устройство через коммутатор пар данных, при неуспешном выполнении операции «поиск токена» записывать токен в секцию с номером Ц, а в том случае, если количество токенов в этой секции равно максимально возможному для этой секции, записывать токен в секцию с номером К (публикация RU 2360279 C2, кл. МПК G06F 7/76, опубл. 27.06.2006 г. Бюл. 18).

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

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

Раскрытие полезной модели

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

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

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

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

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

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

Описание чертежей

Заявленная параллельная потоковая вычислительная система поясняется при помощи схем представленных на фиг.1-4.

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

На фиг.2 приведена схема формирования многовходового пакета, который используется в заявленной параллельной потоковой вычислительной системе.

На фиг.3 показана структура поля «признаки токена» многовходового токена.

На фиг.4 показана структура поля «признаки пакета» многовходового пакета.

Осуществление полезной модели

Заявленная параллельная потоковая вычислительная система, представленная на фиг.1, содержит коммутатор 6 токенов и множество вычислительных ядер 1.

Каждое вычислительное ядро 1 включает последовательно соединенные коммутатор 9 токенов вычислительного ядра, модуль 5 ассоциативной памяти, исполнительное устройство 3. При этом исполнительное устройство 3 соединено с коммутатором 9 токенов вычислительного ядра. Каждый коммутатор 9 токенов вычислительного ядра соединен с коммутатором 6 токенов.

По линиям 2а и 2b, соединяющим коммутатор 6 токенов и каждый из множества коммутаторов 9 токенов вычислительного ядра, а также по линиям 10а и 10b соответственно соединяющим коммутатор 9 токенов вычислительного ядра с модулем 5 ассоциативной памяти и исполнительным устройством 3 передаются токены или многовходовые токены. А по линиям 4, соединяющим модули 5 ассоциативной памяти и исполнительные устройства 3, передаются пары данных или многовходовые пакеты.

Как токены, так и многовходовые токены представляют собой структуру данных, состоящую из поля «признаки токена», поля «данные» и поля «ключ», при этом поле «ключ» включает поле «контекст» и поле «адрес узла». В поле «признаки токена», показанном на фиг.3, записываются признаки глобальной передачи или помер вычислительного ядра, в которое должен быть передан соответствующий токен, приоритет токена, номер маски, код операции (Коп), а для многовходового токена еще и количество входов (Квх) и номер входа (Нвх). Приоритет токена указывает на очередность обработки токена при наличии в любом из исполнительных устройств 3, модулей 5 ассоциативной памяти, а также в коммутаторе 6 токенов и в коммутаторе 9 токенов вычислительного ядра более одного токена. При наличии в любом из исполнительных устройств 3, модулей 5 ассоциативной памяти, а также в коммутаторе 6 токенов и в коммутаторе 9 токенов вычислительного ядра более одного токена сначала обрабатывается токен с более высоким приоритетом. Код операции - это внутренняя команда модуля 5 ассоциативной памяти, которая должна быть выполнена над данным токеном в случае совпадения двух токенов с учетом маскирования. В поле «данных» записываются данные для последующей обработки, в поле «ключ» записывают информацию, в которой указаны, какие действия должны быть выполнены в дальнейшем над результатом, при этом в поле «контекст» записывают информацию о контексте, в котором эти действия должны быть произведены, а в поле «адрес узла» записывают адрес программы, которая должна быть выполнена над данными.

В данном описании под «многовходовыми токенами» понимаются токены, при помощи которых формируется многовходовый пакет. В отличие от токенов многовходовые токены содержат два дополнительных поля, расположенных в поле «признаки токена» - «номер входа» и «число входов». «Номер входа» указывает в какое из полей «данного» результирующего пакета должно попасть данное этого многовходового токена, а «число входов» служит для контроля и указывает сколько данных должно быть в многовходовом пакете.

Под «многовходовым пакетом», показанным па фиг.2, в данном описании понимается структура данных, содержащая следующие поля: поле «признаки пакета», поле «ключ», множество полей «данное». При этом поле «ключ» включает поле «контекст» и поле «адрес узла».

В поле «признаки пакета», показанном на фиг.4, записывается признак приоритета и число, определяющее количество данных в пакете.

Поле «контекст» формируется, например, логическим сложением всех разрядов поля «контекст» всех токенов, принимающих участие в образовании пакета с учетом маски каждого из них. Если поле «контекст» не замаскировано у совпавших токенов, то это означает, что оно одинаковое у всех токенов, и, соответственно, у пакета оно будет таким же.

Поле «адрес узла» формируется, например, логическим сложением всех разрядов поля «адрес узла» всех токенов, принимающих участие в образовании пакета с учетом маски каждого из них. Если поле «адрес узла» не замаскировано у совпавших токенов, то это означает, что оно одинаковое у всех токенов, и, соответственно, у пакета оно будет таким же.

Поля «данных» пакета наполняются данными всех токенов, принимающих участие в образовании пакета в зависимости от номера токена в многовходовом пакете.

Заявленная параллельная потоковая вычислительная система работает следующим образом.

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

Токены или многовходовые токены поступают от хост-машины 8 через блок ввода/вывода 7 на коммутатор 6 токенов. Затем, если в поле «признаки токена» токена или многовходового токена имеется признак глобального токена, то коммутатор 6 токенов передает указанный принятый токен по линиям 2а передачи токенов сразу на все вычислительные ядра 1. В том случае, если в поле «признаки токена» указанного токена указан номер вычислительного ядра 1, в которое должен быть передан этот токен, то коммутатор 6 токенов передает указанный принятый токен по линии 2а передачи токенов в коммутатор 9 токенов вычислительного ядра 1, соответствующего указанному в поле «признаки токена» токена или многовходового токена номеру вычислительного ядра 1.

Один или все коммутаторы 9 токенов вычислительного ядра по линиям 2а передачи принимают указанный токен или многовходовой токен от коммутатора 6 токенов и по линиям 10а передачи токенов передают их в модуль 5 ассоциативной памяти. Первый токен, не имея объекта для сравнения, записывается в модуль 5 ассоциативной памяти в ожидании приема других токенов. Затем один или все модули 5 ассоциативной памяти принимают следующий токен или многовходовой токен от коммутатора 9 токенов вычислительного ядра и выполняют сравнение принятого указанного токена или многовходового токена с учетом маскирования с ранее принятыми токенами или многовходовыми токенами. При этом сравнивают поле «ключ» или поля «адрес узла» и «контекст». При совпадении с учетом маскирования полей «ключ» или полей «адрес узла» и «контекст», выполняют над принятыми токенами или многовходовыми токенами действие в соответствии с кодом операции совпавших токенов. В данном случае формируют пару данных или многовходовой пакет, или удаляют указанный принятый токен или многовходовой токен, или удаляют хранящийся токен или многовходовой токен, или сохраняют указанный принятый токен или многовходовой токен.

Затем модуль 5 ассоциативной памяти формирует и передает на исполнительное устройство 3 по линии 4 передачи пару данных или многовходовой пакет, содержащий данные, по меньшей мере, одного токена или многовходового токена.

При формировании пары данных или многовходового пакета, при совпадении токенов или многовходовых токенов, поле «признаки пакета» заполняется на основе полей «признаки токена» соответствующих токенов или многовходовых токенов, поля «адрес узла» и «контекст» формируются из соответствующих полей токенов или многовходовых токенов путем их взаимного логического сложения с учетом маскирования. Поля «данные» пары данных или многовходового пакета содержат данные из полей «данное» соответствующих токенов или многовходовых токенов в соответствии с полем «номер входа» токена или многовходового токена. На фиг.2 представлена схема формирования многовходового пакета, который формируется в модуле ассоциативной памяти 5 из группы многовходовых токенов.

Исполнительное устройство 3 принимает пару данных или многовходовой пакет по линии 4 от модуля 5 ассоциативной памяти. Затем исполнительное устройство 3 извлекает из пары данных или из многовходового пакета информацию об адресе программы, которая хранится в исполнительном устройстве 3 (в локальной памяти исполнительного устройства 3) и которую следует выполнить над данными пары данных или многовходового пакета. Затем исполнительное устройство 3 запускает и выполняет указанную программу над указанными данными. В результате выполнения указанной программы получаются новые данные, на основании которых исполнительное устройство 3 формирует новые токены или многовходовые токены и по линии 10b передачи передает указанные токены или многовходовые токены на коммутатор 9 токенов вычислительного ядра.

Коммутатор 9 токенов вычислительного ядра принимает токен или многовходовой токен и извлекает из поля «признаки токена» указанного токена или многовходового токена информацию о номере вычислительного ядра, в которое должен быть передан этот токен или многовходовой токен.

Если в поле «признаки токена» указанного токена или многовходового токена указан номер того же вычислительного ядра 1, которому принадлежит коммутатор 9 токенов вычислительного ядра, то коммутатор 9 токенов вычислительного ядра передает токен или многовходовой токен в модуль 5 ассоциативной памяти того же вычислительного ядра 1, которому принадлежит коммутатор 9 токенов вычислительного ядра. Далее модуль 5 ассоциативной памяти выполняет над токеном или многовходовым токеном описанные выше действия.

Если в поле «признаки токена» указанного токена или многовходового токена указан помер вычислительного ядра 1 отличный от номера вычислительного ядра 1, которому принадлежит коммутатор 9 токенов вычислительного ядра, то коммутатор 9 токенов вычислительного ядра передает токен или многовходовой токен в коммутатор 6 токенов.

Если в поле «признаки токена» указанного токена или многовходового токена имеется признак глобального токена, то коммутатор 9 токенов вычислительного ядра передает токен или многовходовой токен в коммутатор 6 токенов и в модуль 5 ассоциативной памяти того же вычислительного ядра 1, которому принадлежит коммутатор 9 токенов вычислительного ядра.

Коммутатор 6 токенов передает принятые от коммутаторов 9 токенов вычислительного ядра токены или многовходовые токены по линиям 2а либо сразу на все вычислительные ядра 1, если в одном из полей (например, в поле «признаки токена») токена или многовходового токена присутствует признак глобального токена, либо на вычислительное ядро 1, если в одном из полей токена или многовходового токена указан номер вычислительного ядра 1, в которое должен быть передан указанный токен или многовходовой токен.

Процесс обработки данных завершается после того, как исполнительные устройства 3 через коммутаторы 9 токенов вычислительного ядра передадут окончательный результат обработки данных коммутатору 6 токенов, который через блок ввода/вывода 7 выдаст их на хост-машину 8.

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

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

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

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

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

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



 

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

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