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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Коммутатор 4 пакетов принимает по линии 8 передачи многовходовой пакет и передает его на одно из исполнительных устройств 5 в пределах одного вычислительного модуля. Например, коммутатор 4 пакетов может устанавливать очередность исполнительных устройств 5 для передачи на них многовходовых пакетов и передавать на указанные исполнительные устройства 5 многовходовые пакеты в порядке очереди.

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

Далее коммутатор 2 токенов вычислительного модуля передает принятые токены или многовходовые токены по линиям 7 передачи токенов, либо сразу на все модули 3 ассоциативной памяти, если в одном из полей токена или многовходового токена присутствует признак глобального токена, либо в модуль 3 ассоциативной памяти вычислительного модуля, соответствующего указанному в поле «признаки токена» токена или многовходового токена номеру модуля 3 ассоциативной памяти.

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

Процесс обработки данных завершается после того, как исполнительные устройства 5 через коммутаторы 2 токенов вычислительного модуля передадут окончательный результат обработки данных на коммутатор 1 токенов, который через блок ввода/вывода выдаст их на хост-машину 11.

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

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

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

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

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

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

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

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



 

Наверх