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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В поле «признаки пакета», показанном на фиг.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 извлекает из пары данных или из многовходового пакета информацию об адресе программы, которая хранится в исполнительном устройстве 3 (в локальной памяти исполнительного устройства 3) и которую следует выполнить над данными пары данных или многовходового пакета. Затем исполнительное устройство 3 запускает и выполняет указанную программу над указанными данными. В результате выполнения указанной программы получаются новые данные, на основании которых исполнительное устройство 3 формирует новые токены или многовходовые токены и по линии 2b передает указанные токены на коммутатор 6 токенов.

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

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

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

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

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

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

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

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



 

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