ПОТОКОВАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА

Область применения
Заявленная полезная модель относится к вычислительной технике, в частности к вычислительным системам, основанным на модели вычислений с управлением потоком данных.
Предшествующий уровень техники
Известна, выбранная в качестве ближайшего аналога, параллельная потоковая вычислительная система, содержащая коммутатор токенов и соединенные с ним множество исполнительных устройств и множество модулей ассоциативной памяти, при этом каждое из исполнительных устройств непосредственно соединено с соответствующим ему модулем ассоциативной памяти, образуя одно вычислительное ядро (публикация RU 118453 U1, кл. МПК G06F 15/16, опубл. 20.07.2012 г. Бюл. №20).
Отсутствие в вычислительных ядрах локальной памяти накладывает ограничение на размер программы исполнительного устройства, а следовательно, и на быстродействие системы в целом. Высокая загруженность модулей ассоциативной памяти токенами, ожидающими очереди выполнения операций с группой токенов, к которой они относятся в модуле ассоциативной памяти, уменьшает быстродействие системы в целом.
Таким образом, недостатками известной системы является ограничение на количество входных данных программы узла, высокая загруженность модулей ассоциативной памяти и исполнительных устройств, что не позволяет добиться высокой производительности системы и ее быстродействия.
Раскрытие полезной модели
Техническим результатом, который может быть получен в заявленной полезной модели, является устранение вышеуказанных недостатков.
Технический результат достигается тем, что потоковая вычислительная система, содержащая множество модулей ассоциативной памяти, коммутатор токенов, соединенные с ним множество исполнительных устройств, каждое из которых соединено с одной локальной памятью, и множество устройств управления подмножествами, при этом каждый модуль ассоциативной памяти соединен с соответствующими ему устройством управления подмножествами и исполнительным устройством, соединенным с локальной памятью, образуя одно вычислительное ядро.
А также тем, что каждое устройство управления подмножествами выполнено с возможностью принимать токены или многовходовые токены от коммутатора токенов, определять номер подмножества токена или многовходового токена, хранить токены или многовходовые токены пассивных подмножеств, передавать токен или многовходовый токен активного подмножества в модуль ассоциативной памяти того же вычислительного ядра.
А также тем, что каждая локальная память выполнена с возможностью принимать от исполнительного устройства пары данных, многовходовые пакеты, токены, многовходовые токены, хранить пары данных, многовходовые пакеты, токены, многовходовые токены, хранить значения промежуточных вычислений, передавать на исполнительное устройство пары данных, многовходовые пакеты, токены, многовходовые токены.
Описание чертежей
Заявленная потоковая вычислительная система поясняется при помощи схем представленных на фиг.1-4.
На фиг.1 представлена структурная схема заявленной потоковой вычислительной системы.
На фиг.2 приведена схема формирования многовходового пакета, который используется в заявленной потоковой вычислительной системе.
На фиг. 3 показана структура поля «признаки токена» многовходового токена.
На фиг.4 показана структура поля «признаки пакета» многовходового пакета.
Осуществление полезной модели
Заявленная потоковая вычислительная система, представленная на фиг.1, содержит множество модулей 5 ассоциативной памяти, множество исполнительных устройств 3, множество устройств 9 управления подмножествами, множество локальных памятей 11 и коммутатор 6 токенов. Каждый модуль 5 ассоциативной памяти непосредственно соединен с соответствующими ему устройством 9 управления подмножествами и исполнительным устройством 3, которое соединено с одной локальной памятью 11, образуя одно вычислительное ядро 1. При этом каждое устройство 9 управления подмножествами и исполнительное устройство 3 соединено с коммутатором 6 токенов.
По линиям 2а, соединяющим коммутатор 6 токенов и устройства 9 управления подмножествами, по линиям 2b, соединяющим исполнительные устройства 3 и коммутатор 6 токенов, и по линиям 10, соединяющим устройства 9 управления подмножествами с модулями 5 ассоциативной памяти, передаются токены или многовходовые токены. А по линиям 4, соединяющим модули 5 ассоциативной памяти и исполнительные устройства 3, передаются пары данных или многовходовые пакеты.
Исполнительное устройство 3 передает в локальную память 11 для временного хранения и извлекает из нее токены или многовходовые токены. Исполнительное устройство 3 передает в локальную память 11 для временного хранения и извлекает из нее многовходовые пакеты.
Как токены, так и многовходовые токены представляют собой структуру данных, описанную в патенте Российской Федерации на полезную модель №118453 и состоящую из поля «признаки токена», поля «данные» и поля «ключ», при этом поле «ключ» включает поле «контекст» и поле «адрес узла». В поле «признаки токена», показанном на фиг.3, записываются признаки глобальной передачи или номер вычислительного ядра, в которое должен быть передан соответствующий токен, приоритет токена, номер маски, код операции (Коп), а для многовходового токена еще и количество входов (Квх) и номер входа (Нвх). Приоритет токена указывает на очередность обработки токена при наличии в любом из исполнительных устройств 3, модулей 5 ассоциативной памяти, а также в коммутаторе 6 токенов более одного токена. При наличии в любом из исполнительных устройств 3, модулей 5 ассоциативной памяти, а также в коммутаторе 6 токенов более одного токена сначала обрабатывается токен с более высоким приоритетом. Код операции - это внутренняя команда модуля 5 ассоциативной памяти, которая должна быть выполнена над данным токеном в случае совпадения двух токенов с учетом маскирования. В поле «данных» записываются данные для последующей обработки, в поле «ключ» записывают информацию, в которой указаны, какие действия должны быть выполнены в дальнейшем над результатом, при этом в поле «контекст» записывают информацию о контексте, в котором эти действия должны быть произведены, а в поле «адрес узла» записывают адрес программы, которая должна быть выполнена над данными.
В данном описании под «многовходовыми токенами» понимаются токены, при помощи которых формируется многовходовый пакет. В отличие от токенов многовходовые токены содержат два дополнительных поля, расположенных в поле «признаки токена» - «номер входа» и «число входов». «Номер входа» указывает в какое из полей «данного» результирующего пакета должно попасть данное этого многовходового токена, а «число входов» служит для контроля и указывает сколько данных должно быть в многовходовом пакете.
Под «многовходовым пакетом», показанным на фиг.2, в данном описании понимается структура данных, описанная в патенте Российской Федерации на полезную модель №118453 и содержащая следующие поля: поле «признаки пакета», поле «ключ», множество полей «данное». При этом поле «ключ» включает поле «контекст» и поле «адрес узла».
В поле «признаки пакета», показанном на фиг.4, записывается признак приоритета и число, определяющее количество данных в пакете.
Поле «контекст» формируется, например, логическим сложением всех разрядов поля «контекст» всех токенов, принимающих участие в образовании пакета с учетом маски каждого из них. Если поле «контекст» не замаскировано у совпавших токенов, то это означает, что оно одинаковое у всех токенов, и, соответственно, у пакета оно будет таким же.
Поле «адрес узла» формируется, например, логическим сложением всех разрядов поля «адрес узла» всех токенов, принимающих участие в образовании пакета с учетом маски каждого из них. Если поле «адрес узла» не замаскировано у совпавших токенов, то это означает, что оно одинаковое у всех токенов, и, соответственно, у пакета оно будет таким же.
Поля «данных» пакета наполняются данными всех токенов, принимающих участие в образовании пакета в зависимости от номера токена в многовходовом пакете.
Заявленная потоковая вычислительная система работает следующим образом.
В начале работы потоковой вычислительной системы оператор задает режим передачи данных в виде токенов или многовходовых токенов от хост-машины 8 в потоковую вычислительную систему и приема данных в виде токенов или многовходовых токенов хост-машиной 8 от потоковой вычислительной системы. Операции ввода/вывода данных с хост-машины 8 осуществляются посредством блока ввода/вывода 7.
Токены или многовходовые токены поступают от хост-машины 8 через блок ввода/вывода 7 на коммутатор 6 токенов. Затем, если в поле «признаки токена» токена или многовходового токена имеется признак глобального токена, то коммутатор 6 токенов передает указанный принятый токен по линиям 2а передачи токенов сразу на все вычислительные ядра 1. В том случае, если в поле «признаки токена» указанного токена указан номер вычислительного ядра 1, в которое должен быть передан этот токен, то коммутатор 6 токенов передает указанный принятый токен по линии 2а передачи токенов в устройство 9 управления подмножествами вычислительного ядра 1, соответствующего указанному в поле «признаки токена» токена или многовходового токена номеру вычислительного ядра 1.
Одно или все устройства 9 управления подмножествами принимают токен или многовходовой токен от коммутатора 6 токенов. После получения токена или многовходового токена, устройство 9 управления подмножествами обрабатывает информацию содержащуюся в поле «ключ», формирует номер подмножества токена, записывает его в поле «номер вычислительного ядра», входящего в состав поля «признаки токена». Здесь под подмножеством токена понимается группа токенов или многовходовых токенов формируемых по одному единому закону. Затем на основе сформированного номера подмножества принимает решение о том, следует ли отправить данный токен или многовходовый токен в модуль 5 ассоциативной памяти или сохранить его для последующей отправки в указанный модуль 5.
Затем устройство 9 управления подмножествами по линии 10 передачи передает на модуль 5 ассоциативной памяти токен или многовходовой токен активного (обрабатываемого в данный момент времени системой) подмножества. Первый токен, не имея объекта для сравнения, записывается в модуль 5 ассоциативной памяти в ожидании приема других токенов. Затем модуль 5 ассоциативной памяти принимает следующий токен или многовходовый токен от устройства 9 управления подмножествами и выполняет сравнение принятого указанного токена с учетом маскирования с ранее принятыми токенами или многовходовыми токенами. При этом сравнивают поле «ключ» или поля «адрес узла» и «контекст». При совпадении с учетом маскирования полей «ключ» или полей «адрес узла» и «контекст», выполняют над принятыми токенами действие в соответствии с кодом операции совпавших токенов. В данном случае формируют пару данных или многовходовой пакет, или удаляют указанный принятый токен или многовходовой токен, или удаляют хранящийся токен или многовходовой токен, или сохраняют указанный принятый токен или многовходовой токен.
Затем модуль 5 ассоциативной памяти формирует и передает на исполнительное устройство 3 по линии 4 передачи пару данных или многовходовой пакет, содержащий данные, по меньшей мере, одного токена или многовходового токена.
При формировании пары данных или многовходового пакета, при совпадении токенов или многовходовых токенов, поле «признаки пакета» заполняется на основе полей «признаки токена» соответствующих токенов или многовходовых токенов, поля «адрес узла» и «контекст» формируются из соответствующих полей токенов или многовходовых токенов путем их взаимного логического сложения с учетом маскирования. Поля «данные» пары данных или многовходового пакета содержат данные из полей «данное» соответствующих токенов или многовходовых токенов в соответствии с полем «номер входа» токена или многовходового токена. На фиг.2 представлена схема формирования многовходового пакета, который формируется в модуле ассоциативной памяти 5 из группы многовходовых токенов.
Исполнительное устройство 3 принимает пару данных или многовходовой пакет по линии 4 от модуля 5 ассоциативной памяти. Затем исполнительное устройство 3 извлекает из пары данных или из многовходового пакета информацию об адресе программы, которая хранится в локальной памяти 11 или в исполнительном устройстве 3 и которую следует выполнить над данными пары данных или многовходового пакета. Затем исполнительное устройство 3 запускает указанную программу, которая выполняет действия над указанными данными. В результате выполнения указанной программы получаются новые данные, на основании которых исполнительное устройство 3 формирует новые токены или многовходовые токены и по линии 2b передает указанные токены на коммутатор 6 токенов. В процессе работы программы исполнительное устройство 3 передает в локальную память 11 для временного хранения и извлекает из нее токены или многовходовые токены, а также передает в локальную память 11 для временного хранения и извлекает из нее многовходовые пакеты.
Далее коммутатор 6 токенов передает принятые токены или многовходовые токены по линиям 2а либо сразу на все вычислительные ядра 1, если в одном из полей токена или многовходового токена присутствует признак глобального токена, либо на конкретное вычислительное ядро 1, если в одном из полей токена или многовходового токена указан номер вычислительного ядра 1, в которое должен быть передан указанный токен или многовходовой токен.
Процесс обработки данных завершается после того, как исполнительные устройства 3 передадут окончательный результат обработки данных коммутатору 6 токенов, который через блок ввода/вывода 7 выдаст их на хост-машину 8.
Таким образом, за счет того, что потоковая вычислительная система содержит множество модулей ассоциативной памяти, коммутатор токенов, соединенные с ним множество исполнительных устройств, каждое из которых соединено с одной локальной памятью, и множество устройств управления подмножествами, при этом каждый модуль ассоциативной памяти соединен с соответствующими ему устройством управления подмножествами и исполнительным устройством, соединенным с локальной памятью, образуя одно вычислительное ядро, снято ограничение на количество входных данных программы узла, существенно снижена загруженность модулей ассоциативной памяти и исполнительных устройств, что позволяет добиться высокой производительности системы и ее быстродействия.