RU2643622C1 - Computer module - Google Patents
Computer module Download PDFInfo
- Publication number
- RU2643622C1 RU2643622C1 RU2017118227A RU2017118227A RU2643622C1 RU 2643622 C1 RU2643622 C1 RU 2643622C1 RU 2017118227 A RU2017118227 A RU 2017118227A RU 2017118227 A RU2017118227 A RU 2017118227A RU 2643622 C1 RU2643622 C1 RU 2643622C1
- Authority
- RU
- Russia
- Prior art keywords
- results
- bus
- memory
- task
- block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0637—Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
- G06Q10/06375—Prediction of business process outcome or impact based on a proposed change
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Entrepreneurship & Innovation (AREA)
- Educational Administration (AREA)
- Software Systems (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Mathematical Physics (AREA)
- Development Economics (AREA)
- Multi Processors (AREA)
Abstract
Description
ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY
Изобретение относится к области вычислительной техники, в частности к высокопроизводительным вычислительным устройствам для решения трудоемких задач с использованием распараллеливания по данным на множество независимых подзадач.The invention relates to the field of computing, in particular to high-performance computing devices for solving labor-intensive tasks using parallelization according to many independent subtasks.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION
Известна адаптивная система обработки данных (RU №105487 U1, МПК G06F 15/16, заявл. 25.02.2011, опубл. 10.06.2011, БИ №16), содержащая N линеек обработки, состоящих из Mn модулей обработки, Mn блоков выбора каналов и выходной магистрали передачи сигналов, блок памяти заявок, регистр задания режимов работы модулей обработки, мультиплексор/демультиплексор выходных магистралей, N дешифраторов адреса, приоритетный шифратор.A known adaptive data processing system (RU No. 105487 U1, IPC G06F 15/16, application form 25.02.2011, publ. 06/10/2011, BI No. 16), containing N processing lines consisting of M n processing modules, M n selection blocks channels and output signal transmission line, application memory block, register for setting operating modes of processing modules, multiplexer / demultiplexer of output lines, N address decoders, priority encoder.
Недостатком известной системы является большой объем аппаратных средств и сложная структура распараллеливания потока заявок системы.A disadvantage of the known system is the large amount of hardware and the complex structure of parallelizing the flow of applications of the system.
Известен базовый модуль многопроцессорной вычислительной системы (RU №86332 U1, МПК G06F 15/16, заявл. 21.05.2009, опубл. 27.08.2009, БИ №24), содержащий вычислительное поле, состоящее из 16 вычислительных элементов, расположенных в узлах двумерной решетки 4×4 и соединенных между собой ортогональной системой связей по близкодействию, контроллер обращений, предназначенный для передачи информации между базовым модулем и управляющей ЭВМ, и блоки распределенной памяти.A well-known basic module of a multiprocessor computing system (RU No. 86332 U1, IPC G06F 15/16, stated May 21, 2009, published August 27, 2009, BI No. 24), comprising a computing field consisting of 16 computing elements located in nodes of a two-
Недостатками данного модуля являются сложные матрично-конвейерная структура и многоразрядные информационные связи между вычислительными элементами.The disadvantages of this module are the complex matrix-pipelined structure and multi-bit information links between computing elements.
Наиболее близким устройством того же назначения к заявленному изобретению по совокупности признаков является принятый за прототип вычислительный модуль (RU №139326 U1, МПК G06F 15/16, заявл. 10.12.2013, опубл. 10.04.2014, БИ №10), содержащий вычислительное поле из L вычислительных элементов, соответствующих количеству каналов распараллеливания, и каждый вычислительный элемент содержит S ступеней конвейера, блок памяти FIFO, блок генератора переменной X, входной и выходной буферы, группу из L схем сравнения, элемент ИЛИ, четыре внешних входа и четыре внешних выхода.The closest device of the same purpose to the claimed invention in terms of features is the computing module adopted for the prototype (RU No. 139326 U1, IPC G06F 15/16, application form. 10.12.2013, publ. 04/10/2014, BI No. 10), containing a computing field of L computing elements corresponding to the number of parallelization channels, and each computing element contains S conveyor steps, a FIFO memory block, a variable X generator block, input and output buffers, a group of L comparison circuits, an OR element, four external inputs and four external outputs a.
Недостатками данного вычислительного модуля являются возможность его использования для обработки данных всеми вычислительными элементами только по одному алгоритму, синхронная работа всех вычислительных элементов при обработке единого для всех задания и формирование единого для всех вычислительных элементов множества результатов.The disadvantages of this computational module are the possibility of using it to process data by all computational elements according to only one algorithm, the synchronous operation of all computational elements when processing a single task for all, and the formation of a single set of results for all computational elements.
Причиной, препятствующей достижению технического результата, является отсутствие средств для индивидуального обмена с вычислительными элементами при загрузке пакетов входных данных и считывании пакетов результатов.The reason that impedes the achievement of the technical result is the lack of means for individual exchange with computing elements when loading input data packets and reading result packets.
Задача, на решение которой направлено предлагаемое изобретение, заключается в создании вычислительного модуля, имеющего единую параметризуемую вычислительную среду для подключения вычислительных ядер, за счет чего упрощается сложность разработки вычислительных систем и повышается производительность за счет сокращения времени обмена и сокращения времени ожидания обслуживания.The problem to which the invention is directed, is to create a computing module having a single parameterizable computing environment for connecting computing cores, thereby simplifying the complexity of developing computing systems and increasing productivity by reducing exchange time and reducing service waiting time.
Техническим результатом предлагаемого изобретения является уменьшение трудоемкости и сроков разработки и повышение производительности.The technical result of the invention is to reduce the complexity and development time and increase productivity.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
Указанный технический результат при осуществлении изобретения достигается тем, что вычислительный модуль содержит группу из N вычислительных ядер 61, …, 6N, интерфейсный блок 1, блок разделения заданий 2, блок памяти заголовков заданий 3, блок памяти данных заданий 4, арбитр заданий 5, группу из N блоков памяти номеров заданий вычислительных ядер 71,…, 7N, блок мультиплексоров результатов 8, арбитр результатов 9, блок памяти заголовков результатов 10, блок памяти данных результатов 11, внешний интерфейс 12, при этом каждое вычислительное ядро 61, …, 6N состоит из входной буферной памяти 6-1, операционного блока 6-2, выходной буферной памяти 6-3 и блока управления 6-4,The specified technical result during the implementation of the invention is achieved by the fact that the computing module contains a group of N computing cores 6 1 , ..., 6 N , an
причем внешний интерфейс 12 соединен с интерфейсным блоком 1, выход сброса 13 которого соединен с соответствующими входами сброса блока разделения заданий 2, блока памяти заголовков заданий 3, блока памяти данных заданий 4, арбитра заданий 5, блоков вычислительных ядер 61, …, 6N, блоков памяти номеров заданий 71, …, 7N, арбитра результатов 9, блока памяти заголовков результатов 10 и блока памяти данных результатов 11, также интерфейсным блоком 1 шиной кода режима чтения результатов 14 соединен с арбитром результатов 9, шиной общих параметров 15 соединен с операционными блоками 6-2 всех вычислительных ядер 61, …, 6N, шиной кода режима записи заданий 16 соединен с арбитром заданий 5, шиной потоковой записи заданий 17 соединен с блоком разделения заданий 2, шиной кода количества заданий 18 подключен к выходу блока памяти заголовков заданий 3, шиной запросов на запись заданий 19 и шиной запросов на чтение результатов 20 подключен к выходам всех вычислительных ядер 61, …, 6N, шиной кода состояния 21 подключен к выходу блока памяти заголовков результатов 10 и выходу общего признака «Пустой» 21' блока мультиплексоров результатов 8, шиной потокового чтения данных результатов 24 подключен к выходу блока памяти данных результатов 11, шиной потокового чтения заголовков результатов 25 подключен к выходу блока памяти заголовков результатов 10, а выход сигнала чтения данных результатов 22 соединен с соответствующим входом блока памяти данных результатов 11 и выход сигнала чтения заголовков результатов 23 соединен с соответствующим входом блока памяти заголовков результатов 10,moreover, the
блок разделения заданий 2 шиной записываемых заголовков заданий 42 соединен с соответствующим входом блока памяти заголовков заданий 3 и шиной записываемых данных заданий 43 соединен с соответствующим входом блока памяти данных заданий 4,a
блок памяти заголовков заданий 3 шиной считанных заголовков заданий 26 и выходом признака «Пустой» памяти заданий соединен с соответствующими входами арбитра заданий 5, выход которого шиной управления чтением заголовков заданий 27 подключен к соответствующему входу блока памяти заголовков заданий 3,the block of headers of
арбитр заданий 5 шиной управления записью заданий 31 соединен с входными буферными памятями 6-1 соответствующих вычислительных ядер 61, …, 6N по шинам 311, 31N записи заданий и соединен с блоками памяти номеров заданий 71, …, 7N по шинам 31'1, …, 31'N, кроме того, арбитр заданий 5 шиной записываемых номеров заданий 32 соединен по шинам 321, …, 32N с соответствующими входами блоков памяти номеров заданий 71, …, 7N, соответствующий вход арбитра заданий 5 соединен с шиной запросов на запись заданий 19, включающей выходы запросов на запись заданий от вычислительных ядер 191, …, 19N, а также арбитр заданий 5 шиной управления чтением данных заданий 29 соединен с соответствующим входом блоком памяти данных заданий 4, выход которого по шине считанных данных заданий 30 соединен с соответствующими входами входных буферных памятей 6-1 соответствующих вычислительных ядер 61, …, 6N,the
соответствующие выходы блоков управления 6-3 вычислительных ядер 61, …, 6N шинами результатов 331, …, 33N подключены к соответствующим входам блока мультиплексоров результатов 8, соответствующий выход которого по шине результатов выбранного вычислительного ядра 33 соединен с соответствующим входом блока памяти данных результатов 11, кроме того, соответствующие выходы окончания считывания пакетов результатов 341, …, 34N блоков управления 6-3 вычислительных ядер 61, …, 6N подключены к соответствующим входам блока мультиплексоров результатов 8, соответствующий выход окончания считывания пакета результатов 34 которого подключен к соответствующим входам арбитра результатов 9, блока памяти заголовков результатов 10 и блока памяти данных результатов 11, соответствующие выходы окончания заданий 351, …, 35N блоков управления 6-3 вычислительных ядер 61, …, 6N подключены к соответствующим входам блоков памяти номеров заданий 71, …, 7N и подключены к соответствующим входам блока мультиплексоров результатов 8, соответствующий выход окончания задания 35 которого подключен к соответствующим входам блока памяти заголовков результатов 10,the corresponding outputs of the control units 6-3 of the computing cores 6 1 , ..., 6 N with the
соответствующие выходы блоков памяти номеров заданий 71, …, 7N шинами считываемых номеров заданий 361, …, 36N подключены к соответствующим входам блока мультиплексоров результатов 8, соответствующий выход которого по шине считываемого номера задания 36 соединен с соответствующим входом блока памяти заголовков результатов 10,the corresponding outputs of the blocks of memory of the numbers of tasks 7 1 , ..., 7 N with the buses of the read numbers of the
соответствующие выходы арбитра результатов 9 выходами сигналов чтения результатов 371, …, 37N соединены с соответствующими входами блоков выходной буферной памяти 6-3 соответствующих вычислительных ядер 61, …, 6N, а также соответствующие выходы арбитра результатов 9 по шине 38 кода номера выбранного вычислительного ядра подключены к входам управления блока мультиплексоров результатов 8, а по шине количества слов в пакете результатов 39 подключены к соответствующим входам блока памяти заголовков результатов 10, выход признака переполнения 41 которого соединен с соответствующим входом арбитра результатов 9, соответствующий вход которого соединен с выходом 40 признака переполнения памяти результатов 11.the corresponding outputs of the arbiter of the
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
На фиг. 1 приведена функциональная схема вычислительного модуля.In FIG. 1 shows a functional diagram of a computing module.
На фиг. 1 приняты следующие обозначения:In FIG. 1 the following notation is accepted:
1 - интерфейсный блок,1 - interface unit
2 - блок разделения заданий,2 - block separation tasks
3 - блок памяти заголовков заданий,3 - memory block headers tasks
4 - блок памяти данных заданий,4 - block data memory tasks
5 - арбитр заданий,5 - task arbiter,
61, …, 6N - группа из N вычислительных ядер (ВЯ),6 1 , ..., 6 N - a group of N computing cores (VY),
6-1 - входная буферная память ВЯ,6-1 - input buffer memory VYA,
6-2 - операционный блок ВЯ,6-2 - operational unit VJ,
6-3 - выходная буферная память ВЯ,6-3 - output buffer memory VYA,
6-4 - блок управления ВЯ,6-4 - control unit VYA,
71, …, 7N - группа из N блоков памяти номеров заданий ВЯ,7 1, ..., 7 N - group of N memory blocks VYa job numbers,
8 - блок мультиплексоров результатов,8 - block multiplexers of results,
9 - арбитр результатов,9 - the arbiter of the results,
10 - блок памяти заголовков результатов,10 - memory block headers of the results,
11 - блок памяти данных результатов,11 is a block of memory data data,
12 - внешний интерфейс,12 - external interface
13 - выход сброса,13 - reset output,
14 - шина кода режима чтения результатов,14 - bus code reading mode results,
15 - шина общих параметров, передаваемых параллельным кодом,15 - bus general parameters transmitted by the parallel code,
16 - шина кода режима записи заданий,16 - bus code mode recording tasks
17 - шина потоковой записи заданий,17 - bus streaming recording jobs
18 - шина кода количества заданий во входной памяти,18 - bus code number of jobs in the input memory,
19 - шина запросов на запись заданий,19 - bus requests for recording tasks
191, …, 19N - запросы на запись заданий от ВЯ,19 1 , ..., 19 N - requests for recording tasks from VY,
20 - шина запросов на чтение результатов,20 - bus requests to read the results,
201, …, 20N - запросы на чтение результатов от ВЯ,20 1 , ..., 20 N - requests for reading the results from VY,
21 - шина кода состояния памятей результатов,21 - bus status code memory results,
21' - выход общего признака «Пустой» всех блоков памяти номеров заданий 71, …, 7N,21 'is the output of the common feature "Empty" of all memory blocks of the job numbers 7 1 , ..., 7 N ,
22 - выход сигнала чтения данных результатов,22 - output signal read data data,
23 - выход сигнала чтения заголовков результатов,23 - output signal read headers of the results,
24 - шина потокового чтения данных результатов,24 - bus streaming read data data,
25 - шина потокового чтения заголовков результатов,25 - bus streaming reading of the headers of the results,
26 - шина считанных заголовков заданий,26 - bus read job headers,
27 - шина управления чтением заголовков заданий,27 - bus control reading the titles of tasks
28 - выход признака «Пустой» памяти заданий,28 - exit sign "Empty" memory tasks
29 - шина управления чтением данных заданий,29 - bus control read data tasks
30 - шина считанных данных заданий,30 - bus read data tasks,
31 - шина управления записью заданий,31 - bus control recording tasks
311, …, 31N - шины управления записью заданий в ВЯ,31 1, ..., 31 N - account management tasks in the tire load cells,
31'1, …, 31'N - выходы окончания записи задания в ВЯ,31 ' 1 , ..., 31' N - outputs the end of the job recording in VY,
32 - шина записываемых номеров заданий,32 - bus recorded numbers of tasks,
321, …, 32N - шины записываемых номеров заданий ВЯ,32 1, ..., 32 N - tire recordable VYa job numbers,
331, …, 33N - шины результатов от ВЯ,33 1 , ..., 33 N - result buses from VY,
33 - шина результатов выбранного ВЯ,33 - bus results selected VYA,
33' - выход признака достоверности результата,33 '- output sign of reliability of the result,
341, …, 34N - выходы окончания считывания пакетов результатов от ВЯ,34 1 , ..., 34 N - the outputs of the end of reading the result packages from VY,
34 - выход окончания считывания пакета результатов выбранного ВЯ,34 - output end of reading the result package of the selected VJ,
351, …, 35N - выходы окончания заданий от ВЯ,35 1 , ..., 35 N - outputs the end of tasks from VY,
35 - выход окончания задания выбранного ВЯ,35 - output end of the job selected VY,
361, …, 36N - шины считываемых номеров заданий от ВЯ,36 1 , ..., 36 N - bus readable job numbers from VV,
36 - шина считываемого номера задания выбранного ВЯ,36 - bus readable job number of the selected VL,
371, …, 37N - выходы сигналов чтения результатов ВЯ,37 1 , ..., 37 N - outputs of signals for reading the results of VJ,
38 - шина кода номера выбранного схемой арбитража ВЯ,38 - bus code number selected by the arbitration scheme VY,
39 - шина количества слов в пакете результатов,39 - bus number of words in the result package,
40 - выход признака переполнения памяти результатов,40 - output sign of memory overflow results,
41 - выход признака переполнения памяти заголовков результатов,41 - output flag overflow memory headers of the results,
42 - шина записываемых заголовков заданий,42 - bus recorded titles of tasks,
43 - шина записываемых данных заданий.43 - bus recorded data tasks.
ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION
Предлагаемый вычислительный модуль (ВМ) предназначен для объединения множества из N вычислительных ядер 61, …, 6N. На данных ВЯ реализуются независимые подзадачи, для решения которых предназначен предлагаемый вычислительный модуль. Загрузка заданий для ВЯ и считывание результатов их работы осуществляются управляющим процессором (УП).The proposed computing module (VM) is designed to combine the set of N computing cores 6 1 , ..., 6 N. Independent sub-tasks are implemented on the data of the VL, and the proposed computational module is intended for solving them. Loading tasks for VYA and reading the results of their work are carried out by the control processor (UP).
Предлагаемый вычислительный модуль обеспечивает унифицированный параметризуемый интерфейс для встраивания вычислительных ядер, что сводит подготовку модуля только к разработке вычислительных ядер 61, …, 6N.The proposed computing module provides a unified parameterizable interface for embedding computing cores, which reduces the preparation of the module only to the development of computing cores 6 1 , ..., 6 N.
Предлагаемый вычислительный модуль поддерживает автоматическую загрузку заданий в ВЯ из входной буферной памяти заданий и автоматическое считывание результатов из ВЯ в выходную буферную память результатов. При автоматической загрузке заданий и автоматическом считывании результатов, управляющий процессор не управляет каждым ВЯ, а только загружает пакеты заданий во входную буферную память и считывает пакеты результатов из выходной буферной памяти вычислительного модуля.The proposed computational module supports automatic loading of tasks into the VL from the input buffer memory of tasks and automatic reading of the results from the VL into the output buffer memory of the results. With automatic loading of tasks and automatic reading of results, the control processor does not control each VL, but only loads task packages into the input buffer memory and reads the result packages from the output buffer memory of the computing module.
Интерфейсный блок 1 преобразует сигналы интерфейса 12 от управляющего процессора в сигналы внутренних интерфейсов модуля. Шины внутреннего интерфейса модуля состоят из 4 групп шин: шин кодов команд и постоянных параметров 13, 14, 15, 16, шины потоковой записи заданий 17, шин сигналов состояний модуля 18, 19, 20, 21 и шин потокового чтения результатов с сигналами управления 22, 23, 24, 25.The
Коды команд и постоянных параметров состоят из сигнала сброса (начальной инициализации) модуля 13, кода режима чтения результатов 14, кода общих (одинаковых) параметров 15, передаваемых параллельным кодом для всех ВЯ 61, …, 6N, и кода режима записи заданий 16. Эти коды загружаются от УП в соответствующие регистры интерфейсного блока 1. Для изменения команды требуется повторная запись в тот же регистр или повторные записи в ту же группу регистров.The codes of commands and constant parameters consist of a reset signal (initial initialization) of
Интерфейсный блок 1 преобразует поступающие от УП по внешнему интерфейсу 12 команды потоковой записи и пакеты заданий в потоки данных, передаваемые по шине 17. Шина потоковой записи заданий 17 состоит из непосредственно шины записываемых данных и сигнала записи. Каждый из пакетов заданий состоит из заголовка пакета и следующих за ними данных.The
Коды состояний модуля включают код количества пакетов заданий во входной памяти 18, код числа пакетов результатов в выходной памяти и признак «Пустой» памяти номеров заданий 21, запросы на запись заданий 19 и чтение результатов 20 от ВЯ 61, …, 6N. Интерфейсный блок 1 обеспечивает считывание данных кодов состояния модуля командами одиночного чтения внешнего интерфейса от УП.The module status codes include the code for the number of job packets in the
Сигнал чтения данных результатов 22, шина потокового чтения данных результатов 24, сигнал чтения заголовков результатов 23 и шина чтения заголовков результатов 25 обеспечивают чтение результатов на внешний интерфейс 12 к УП. Интерфейсный блок 1 обеспечивает преобразование команд потокового чтения внешнего интерфейса 12 в сигналы чтения 22 и 23 и прием результатов с шин чтения 24 и 25.The signal for reading the
Блок разделения заданий 2 предназначен для разделения пакетов на заголовки и данные 2. После сигнала сброса 13 блок разделения заданий 2 принимает первое слово по шине потоковой записи 17 как заголовок пакета задания, выделяет из данного слова код количества следующих за ним данных пакета задания, запоминает этот код, записывает заголовок задания по шине записываемых заголовков заданий 42 в память заголовков заданий 3. При поступлении следующих слов по шине потоковой записи 17 блок разделения заданий 2 форматирует их в зависимости от задаваемой параметром ширины шины данных заданий, записывает переформатированные слова по шине записываемых данных заданий 43 в память данных заданий 4 и проводит счет числа записанных данных в данном пакете заданий. При достижении количеством записанных слов данных значения, заданного в заголовке пакета задания, счетчик записанных слов пакета задания сбрасывается, а следующее слово из потока записи по шине потоковой записи заданий 17 принимается как заголовок нового пакета задания. Если разрядность шины данных ВЯ 30 больше разрядности шины потоковой записи 17, то блок 2 преобразует формат данных, поступающих по шине 17, объединяя по несколько входных слов шины 17 в одно записываемое слово на шине 43.The
Блоки входной памяти заголовков заданий 3 и данных заданий 4 являются двухпортовыми ОЗУ, по одному порту которых осуществляется только запись, а по другому порту - только чтение. Запись в данные блоки памяти осуществляется только последовательно, с дисциплиной записи FIFO, а чтение осуществляется последовательно или с произвольным доступом для повторного считывания пакетов задания в режиме последовательной загрузки одного задания в ВЯ 61, …, 6N.The blocks of the input memory of the headers of
В блок памяти заголовков заданий 3 записываются заголовки заданий по шине 42, которые затем по сигналам по шине управления 27 передаются по шине считанных заголовков 26 на арбитр заданий 5. Блок 3 также формирует и выдает для чтения на интерфейсный блок 1 код количества заданий по шине 18, а также признак «Пустой» памяти заданий по выходу 28 на арбитр заданий 5. Блок памяти заголовков заданий 3 по сигналу сброса 13 обнуляет внутренний счетчик адреса записи в память и счетчик числа пакетов заданий в памяти. В режиме многократного чтения одного и того же задания для работы счетчика числа пакетов во входной памяти 3 по шине 17 передается также сигнал последнего чтения заголовка пакета.In the block of memory of the headers of
Блок памяти данных заданий 4 записывает данные пакетов заданий по шине 43, по адресу, передаваемому арбитром заданий 5 по шине управления 29, а считываются данные пакетов заданий на ВЯ 61, …, 6N по шине считанных данных заданий 30. Блок памяти данных заданий 4 по сигналу сброса 13 обнуляет счетчик адреса записи в память. Блок памяти 4, при разрядности шины данных ВЯ 30 меньше разрядности шины потоковой записи 17, при чтении преобразует формат считываемых данных к формату шины 30, путем мультиплексирования.The data block of the
Арбитр заданий 5 считывает пакеты заданий из блоков входной памяти заголовков заданий 3 и данных заданий 4 и записывает данные заданий в вычислительные ядра 61, …, 6N, а соответствующие им номера для идентификации того, к какому заданию относится результат, в N блоков памяти номеров заданий 71, …, 7N. При этом арбитр заданий 5 принимает с интерфейсного блока 1 по шине 16 код режима записи заданий, а по шине 19 запросы на запись заданий от вычислительных ядер. По шине 31 с арбитра заданий 5 на ВЯ 61, …, 6N поступают сигналы управления записью заданий 31'1, …, 31'N, а по шине 32 с арбитра заданий 5 поступают на блоки памяти номеров заданий 71, …, 7N записываемые номера заданий, которые записываются по сигналам 31'1, …, 31'N. По сигналу сброса 13 арбитр заданий 5 обнуляет счетчики адресов блоков памяти 3 и 4 и переходит в режим ожидания снятия признака «Пустой» на выходе 28.
Задание в общем случае может состоять из нескольких пакетов. В заголовке первого пакета задания содержится код режима записи задания и номер задания. В заголовке последнего пакета задания содержится признак последнего пакета, по которому формируется сигнал окончания загрузки задания. Сигналы окончания загрузки заданий по выходам 31'1, …, 31'N сообщают соответствующему ВЯ 61, …, 6N, что во входной памяти 6-1 загружено очередное задание для выполнения, и инициализируют запись номера этого задания в соответствующий блок памяти номера задания 71, …, 7N. Если в задании содержатся только параметры, а не данные для расчета, то в заголовке последнего пакета задания не содержится признака, инициализирующего выдачу сигнала окончания загрузки задания. В заголовках всех пакетов заданий содержится код управления записью задания (в какую часть входной памяти ВЯ должны быть направлены данные) и количество слов данных в пакете.A task can generally consist of several packages. The header of the first job package contains the job recording mode code and the job number. The header of the last job package contains the attribute of the last package, which forms the signal for the end of the job loading. The signals for terminating the loading of tasks at the outputs 31 ' 1 , ..., 31' N inform the corresponding VL 6 1 , ..., 6 N that the next task is loaded in the input memory 6-1 for execution, and initialize the recording of the number of this task in the corresponding memory block number tasks 7 1 , ..., 7 N. If the task contains only parameters, and not the data for calculation, then the header of the last package of the task does not contain a sign that initiates the issuance of a signal to finish loading the task. The headers of all job packages contain the code for managing the job record (to which part of the input memory the data should be sent) and the number of data words in the package.
Режим записи задания определяется кодом режима записи задания в заголовке пакета задания и кодом режима записи заданий, поступающим с интерфейсного блока 1 по шине 16. Предлагаемым модулем поддерживаются следующие режимы записи заданий в ВЯ 61, …, 6N:The job recording mode is determined by the job recording mode code in the header of the job package and the job recording mode code coming from
- Запись задания в соответствующее ВЯ 61, …, 6N, номер которого передается от интерфейсного блока 1 по шине 16, без ожидания наличия запроса на запись задания от этого ядра. Режим предназначен только для записи параметров в ВЯ.- Recording in the corresponding reference load cell 6 1, ... 6 N, the number of which is transmitted from the
- Запись задания в соответствующее ВЯ 61, …, 6N, номер которого передается от интерфейсного блока 1 по шине 16, после считывания по шине 19 на УП наличия запроса на запись задания от этого ядра.- Writing the task to the corresponding VL 6 1 , ..., 6 N , the number of which is transmitted from the
- Запись задания в соответствующее ВЯ 61, …, 6N, номер которого указан в заголовке первого пакета задания, без ожидания наличия запроса на запись задания от этого ядра. Режим предназначен только для записи параметров в ВЯ.- Recording a task in the corresponding VL 6 1 , ..., 6 N , whose number is indicated in the header of the first task packet, without waiting for a request to write a task from this kernel. The mode is intended only for recording parameters in VJ.
- Запись задания в соответствующее ВЯ 61, …, 6N, номер которого указан в заголовке первого пакета задания, с ожиданием наличия запроса на запись задания от этого ядра по шине 19. Анализ запросов на запись заданий выполняется автоматически арбитром заданий 5.- Recording a task in the corresponding VL 6 1 , ..., 6 N , the number of which is indicated in the header of the first task packet, with the expectation of a request to write a task from this core via
- Запись задания параллельно во все ВЯ 61, …, 6N, без ожидания наличия запросов на запись заданий от всех ядер. Режим предназначен только для записи общих параметров в ВЯ 61, …, 6N.- Recording tasks in parallel to all VL 6 1 , ..., 6 N , without waiting for requests to record tasks from all cores. The mode is intended only for recording general parameters in VL 6 1 , ..., 6 N.
- Запись задания параллельно во все ВЯ 61, …, 6N, с ожиданием наличия запросов на запись задания от всех ВЯ. При этом анализ запросов на запись заданий выполняется автоматически арбитром заданий 5.- Recording a task in parallel to all VL 6 1 , ..., 6 N , with the expectation of the presence of requests to record the task from all VL. Moreover, the analysis of requests for recording tasks is performed automatically by the
- Запись задания последовательно во все ВЯ 61, …, 6N, с ожиданием наличия запросов на запись задания от каждого ядра перед записью в него задания. Анализ запросов на запись заданий выполняется автоматически арбитром заданий 5. Данный режим может быть предпочтительнее режима параллельной записи задания, если ВЯ 61, …, 6N не могут совмещать запись задания и обработку предыдущего задания, так как не требует готовности к записи задания всех ядер одновременно, и пока в одно ядро будет записываться задание, остальные могут выполнять обработку заданий.- Recording a task sequentially in all VL 6 1 , ..., 6 N , with the expectation of the availability of requests to record a task from each core before writing the task to it. An analysis of requests for recording tasks is performed automatically by the
- Запись задания в соответствующее ВЯ 61, …, 6N, выбранное арбитром заданий 5. Арбитр заданий 5 осуществляет автоматический выбор соответствующего ВЯ 61, …, 6N для записи задания в соответствии с приоритетом запросов на запись от ВЯ 61, …, 6N. При этом от каждого ВЯ 61, …, 6N поступает и анализируется 2-разрядный код запроса на запись по шинам 191, …, 19N. Нулевой код соответствует отсутствию запроса. Большее значение кода соответствует более высокому приоритету запроса. При равных значениях кодов запросов больший приоритет имеет ВЯ 61, …, 6N с меньшим порядковым номером.- Recording the task in the corresponding VL 6 1 , ..., 6 N , selected by the
Вычислительные ядра 61, …, 6N должны иметь одинаковый интерфейс с остальными блоками модуля, т.е. одинаковую разрядность шин 15, 30 и 33, но могут иметь некоторые отличия во внутренней структуре. Это отмечено на фиг. 1 номерами "1"…"N", которые передаются в качестве параметров на ВЯ и могут учитываться при синтезе ВЯ.Computing cores 6 1 , ..., 6 N must have the same interface with the rest of the module blocks, i.e. the
На входы ВЯ 61, …, 6N с интерфейсного блока 1 поступают сигнал сброс 13 и одинаковые для всех ВЯ 61, …, 6N параметры по шине 15. От арбитра заданий 5 на ВЯ 61, …, 6N приходят шины управления записью 311, …, 31N, а с блока памяти данных заданий 4 по шине считывания 30 данные заданий для записи. От арбитра результатов 9 на ВЯ 61, …, 6N поступают сигналы чтения результатов 371, …, 37N. С выходов ВЯ 61, …, 6N на блок мультиплексоров результатов 8 поступают шины результатов ВЯ 331, …, 33N, сигналы окончания считывания пакетов результатов 341, …, 34N и сигналы окончания заданий 351, …, 35N. Сигналы по шинам 351, …, 35N также поступают на входы чтения соответствующих блоков памяти номеров заданий 71, …, 7N.On the inputs of VL 6 1 , ..., 6 N from the
Каждое ВЯ 61, …, 6N состоит из входной буферной памяти 6-1, операционного блока 6-2, выходной буферной памяти 6-3 и блока управления 6-4.Each VL 6 1 , ..., 6 N consists of an input buffer memory 6-1, an operating unit 6-2, an output buffer memory 6-3, and a control unit 6-4.
Входная буферная память 6-1 включает память параметров и память данных. Параметры загружаются перед началом обработки массива заданий и не изменяются в течение обработки этого массива заданий, а данные меняются от задания к заданию. Для совмещения загрузки данных задания в память и обработки ранее загруженных данных заданий память данных состоит из нескольких одинаковых блоков. В память 6-1 ВЯ записываются данные с шины 30 под управлением сигналов соответствующей шины 311, …, 31N. Чтение из памяти 6-1 в операционный блок 6-2 осуществляется по интерфейсу, выбираемому разработчиком ВЯ. Управление режимами записи и считывания заданий из блока памяти 6-1 для обработки в операционном блоке 6-2 осуществляется блоком управления 6-4 соответствующего ВЯ.Input buffer memory 6-1 includes parameter memory and data memory. The parameters are loaded before processing the array of tasks and do not change during the processing of this array of tasks, and the data changes from task to task. To combine the loading of task data into memory and the processing of previously loaded task data, the data memory consists of several identical blocks. In the memory 6-1 VYA data is written from the
Операционный блок 6-2 ВЯ 61, …, 6N приводится в начальное состояние сигналом сброса 13, запускается для выполнения очередного задания блоком управления 6-4, записывает результаты выполнения задания и признак окончания обработки задания из-за переполнения выходного буфера в выходную буферную память 6-3, формирует и передает на блок управления 6-4 сигнал окончания выполнения очередного задания и признак переполнения выходного буфера. Если в результате обработки очередного задания операционным блоком 6-2 достигнуто переполнение выходной буферной памяти 6-3 и не доведена до конца обработка задания, то операционный блок запоминает точку останова при переполнении и, при следующем старте от блока управления 6-4, начинает обработку оставшейся части задания именно с этой точки останова, а блок управления 6-4 в этом случае не переключает на вход операционного блока 6-2 следующий блок входной памяти 6-1, а оставляет подключенный ранее блок и запускает операционный блок 6-2 на обработку сразу при наличии свободного блока выходной памяти 6-3.The operating unit 6-2 VYA 6 1 , ..., 6 N is brought to its initial state by a
Выходная буферная память 6-3 также состоит из нескольких одинаковых блоков для уменьшения простоев операционного блока 6-2 во время ожидания записи и записи во входную память 6-1 или ожидания чтения и чтения из выходной памяти 6-3. Номера блоков для записи результатов от операционного блока 6-2 и чтения результатов из ВЯ выбираются блоком управления 6-4. Запись результатов в выходную память 6-3 от операционного блока 6-2 осуществляется по интерфейсу, выбираемому разработчиком ВЯ. При выборе блоком управления 6-4 очередного блока памяти 6-3 на чтение на блок управления от выбранного на чтение блока памяти поступают признак отсутствия результатов и сигнал окончания чтения результатов с данного блока. Чтение результатов с выхода памяти 6-3 происходит по соответствующему сигналу 371, …, 37N. Чтение происходит в общем случае с некоторой конвейерной задержкой.The output buffer memory 6-3 also consists of several identical blocks to reduce downtime of the operating unit 6-2 while waiting to write and write to the input memory 6-1 or to wait for reading and reading from the output memory 6-3. The block numbers for recording the results from the operating unit 6-2 and reading the results from the VL are selected by the control unit 6-4. The results are written to the output memory 6-3 from the operating unit 6-2 by the interface selected by the developer of VJ. When the control unit 6-4 selects the next 6-3 memory block for reading to the control unit, a sign of the absence of results and a signal to end the reading of the results from this block are received from the memory block selected for reading. Reading the results from the memory output 6-3 occurs on the
Считываемые из вычислительных ядер результаты выдаются на соответствующую шину 331, …, 33N. Эти результаты сопровождаются признаком достоверности результата 33' (Valid). Последнее слово считываемого результата сопровождается сигналом по соответствующему выходу 341, …, 34N, а если это одновременно и окончание обработки задания (не было записано признака переполнения при записи результатов от операционного блока), то выдается и сигнал по соответствующему выходу 351, …, 35N.The results read from the computing cores are output to the corresponding
В случае отсутствия результатов в задании предлагаемым модулем вычислительной среды поддерживаются два различных режима работы ВЯ. В первом режиме блок управления 6-4, при выборе на чтение блока выходной памяти 6-3 с нулевым числом слов результатов, не выдает запроса на чтение по соответствующей шине 201, …, 20N, а соответствующий блок выходной памяти 6-3, после его выбора на чтение, сразу выдает соответствующий сигнал окончания задания 351, …, 35N, после чего блок управления сразу выбирает следующий блок памяти результатов 6-3 на чтение или ждет загрузки результатов в данный блок, если выходная память 6-3 имеет только один блок. Во втором режиме работы ВЯ, после выбора на чтение блока памяти 6-3 с нулевым числом результатов, блок управления 6-4 выдает соответствующий запрос на чтение 201, …, 20N, как и при ненулевом числе результатов, а блок памяти 6-3 ожидает прихода соответствующего сигнала чтения 371, …, 37N и по его приходу выдает на блок управления 6-4 сигнал окончания чтения, а на блок мультиплексоров результатов 8 по выходам соответствующие сигналы окончания считывания пакетов 341, …, 34N и окончания заданий 351, …, 35N. При этом признак достоверности результата по шине 331, …, 33N не выдается. В первом режиме при отсутствии результатов номер задания просто выталкивается из памяти номеров заданий 71, …, 7N, и время на запись заголовков пустых результатов в выходную память и их считывание не тратится, а во втором режиме номера «безрезультативных» заданий явно указываются в заголовках результатов. Режим работы ВЯ 61, …, 6N при отсутствии результатов выбирается разработчиком ВЯ.If there are no results in the task, the proposed module of the computing environment supports two different operating modes of VL. In the first mode, the control unit 6-4, when the output memory block 6-3 is selected for reading with a zero number of result words, does not issue a read request on the corresponding
Блок управления 6-4 соответствующего ВЯ 61, …, 6N принимает сигналы сброса 13, окончания записи исполняемого задания во входную память 31'1, …, 31'N, окончания обработки от операционного блока 6-2 с признаком переполнения, нулевого количества слов результатов в выбранном для чтения блоке выходной памяти 6-3, окончания считывания результатов с выбранного для чтения блока выходной памяти. Блок управления 6-4 выбирает номера блоков входной 6-1 и выходной памяти 6-3 для записи и чтения, формирует сигнал запуска операционного блока 6-2 и коды запросов от ядра на запись задания и чтение результатов. Логика формирования запросов на запись и чтение определяется разработчиком ВЯ. Коду запроса присваивается наибольшее значение, если именно выполнение запрашиваемой операции записи или чтения задерживает очередной запуск операционного блока, если для запуска операционного блока кроме выполнения запрашиваемой операции, например записи, необходимо еще и выполнение также операции чтения, то приоритет запроса устанавливается меньше, а если выполнение операции возможно, но операционный блок работает, то приоритет - минимальный. В случае невозможности выполнения данной операции должен формироваться нулевой код запроса.The control unit 6-4 of the corresponding VL 6 1 , ..., 6 N receives the reset signals 13, the end of the recording of the executed task in the input memory 31 ' 1 , ..., 31' N , the end of processing from the operation unit 6-2 with an overflow sign, zero quantity words of results in the selected block of output memory 6-3, the end of reading the results from the selected block for reading the output memory. The control unit 6-4 selects the block numbers of the input 6-1 and the output memory 6-3 for writing and reading, generates a start signal for the operating unit 6-2 and request codes from the kernel for recording the task and reading the results. The logic for generating write and read requests is determined by the developer of VJ. The request code is assigned the highest value, if it is the execution of the requested write or read operation that delays the next launch of the operating unit, if, in addition to performing the requested operation, for example, writing, it is also necessary to perform the read operation to start the operation unit, the priority of the request is set less, and if execution operations are possible, but the operation unit is working, then the priority is minimal. If it is impossible to perform this operation, a null request code should be generated.
Блоки памяти номеров заданий 71, …, 7N являются блоками памяти типа FIFO. На входы сброса этих блоков памяти поступают сигналы сброса 13, на входы записи поступают сигналы окончания записи исполняемых заданий 31'1, …, 31'N, на входы чтения, используемые как сигналы смены считываемого номера задания, - сигналы окончания заданий 351, …, 35N, на входы данных - шины записываемых номеров заданий 321, …, 32N. С выходов блоков памяти номеров заданий 71, …, 7N номера заданий, к которым относятся считываемые результаты и признаки «Пустой», по соответствующим шинам 361, …, 36N поступают на блок мультиплексоров результатов 8.The memory blocks of job numbers 7 1 , ..., 7 N are FIFO memory blocks. The
На блок мультиплексоров результатов 8 поступает от арбитра результатов 9 по шине 38 код номера выбранного ВЯ 61, …, 6N. В соответствии с данным кодом блок мультиплексоров передает одну из входных шин результатов 331, …, 33N на выходную шину 33, номер задания с одной из входных шин 361, …, 36N на выходную шину 36, один из входных сигналов 341, …, 34N на выход 34, а один из входных сигналов 351, …, 35N на выход 35. Также, в блоке мультиплексоров результатов 8 на основе признаков «Пустой» блоков памяти номеров заданий 71, …, 7N, передаваемых по шинам 361, …, 36N, формируется общий признак «Пустой» всех блоков памяти номеров заданий 21', который по шине 21 передается на интерфейсный блок 1. Общий признак «Пустой» номеров заданий используется УП для определения окончания обработки всего пакета заданий, если вычислительные ядра, при отсутствии результатов выполнения очередного задания, не выдают запрос на чтение, а сразу выдают сигнал окончания задания 35 и номер данного задания отсутствует в заголовках результатов.To the block of multiplexers of
На арбитр результатов 9 поступают сигнал сброса 13, код режима чтения результатов по шине 14, запросы вычислительных ядер на чтение по шине 20, сигналы окончания чтения с выбранного арбитром ядра по шине 34, признак достоверности считанного с выбранного ядра кода результата 33' и признаки переполнения блоков выходной памяти результатов 40 и 41. Арбитр результатов 9 формирует сигналы чтения результатов 371, …, 37N в соответствующее вычислительное ядро 61, …, 6N, код номера выбранного вычислительного ядра 38 в блок мультиплексоров результатов 8 и код количества слов в пакете результатов 39 в блок памяти заголовков результатов 10.The
Режим работы арбитра результатов 9 определяется кодом управления, поступающим по шине 14. Арбитр результатов 9 может работать в трех различных режимах:The mode of operation of the
- Чтение результата из соответствующего ВЯ 61, …, 6N, номер которого передается от интерфейсного блока 1 по шине 14, после считывания по шине 20 в интерфейсный блок 1 и анализа запроса на чтение результата от этого ядра.- Reading the result from the corresponding VL 6 1 , ..., 6 N , the number of which is transmitted from the
- Чтение результата последовательно из всех ВЯ 61, …, 6N, с ожиданием наличия запросов на чтение результата по шине 20 от каждого ВЯ перед чтением из него результата. Анализ запросов на чтение результата по шине 20 выполняется автоматически арбитром результатов 9. Данный режим может использоваться при одинаковых временах загрузки, выполнения заданий и считывания результатов для всех ВЯ.- Reading result successively from all load cells 6 1, ... 6 N, with the expectation of having read requests over the
- Чтение результата из соответствующего ВЯ 61, …, 6N, выбранного арбитром результатов 9. При этом арбитр результатов 9 осуществляет автоматический выбор ядра для чтения результата в соответствии с приоритетом запросов на чтение от ВЯ. От каждого ядра поступает двухразрядный код запроса на чтение по соответствующим шинам 201, …, 20N. Нулевой код соответствует отсутствию запроса. Большее значение кода соответствует более высокому приоритету запроса. При равных значениях кодов запросов больший приоритет имеет ВЯ с меньшим порядковым номером.- Reading the result from the corresponding VL 6 1 , ..., 6 N , selected by the arbiter of the
Блоки памяти заголовков результатов 10 и памяти данных результатов 11 реализуют дисциплину обслуживания FIFO.The memory blocks of the headers of the
Блок памяти заголовков результатов 10 записывает сигналом окончания чтения результатов 34 заголовок результата, состоящий из кодов номера задания 36, количества слов в пакете результатов 39 и признака окончания задания 35. По сигналу чтения 23 от интерфейсного блока 1, из блока памяти 10 считываются заголовки пакетов результатов по шине 25 в интерфейсный блок 1. Также блок памяти 10 выдает для чтения на интерфейс УП код количества пакетов результатов в выходной памяти по шине 21 в интерфейсный блок 1 и признак переполнения памяти заголовков результатов 41 в арбитр результатов 9.The block of headers of the
Блок памяти данных результатов 11 записывает сигналом достоверности результата 33' код данных результата, приходящий по шине 33. С данного блока памяти 11 по сигналу чтения 22, приходящему от интерфейсного блока 1, считываются по шине 24 пакеты данных результатов. Также блок памяти 11 выдает признак переполнения памяти результатов 40 в арбитр результатов 9. Блок памяти 11 также преобразует разрядность выходной шины результатов ВЯ 33 в разрядность шины потоковой операции чтения 24. При разрядности выходной шины результатов ВЯ 33 меньшей, чем разрядность шины потоковой операции чтения 24, преобразование разрядности происходит на входе блока памяти 11, а при разрядности шины 33 большей, чем разрядность шины 24, преобразование разрядности происходит на выходе блока памяти 11.The result
Предлагаемый вычислительный модуль работает следующим образом.The proposed computing module operates as follows.
Управляющий процессор (УП) обычно работает с несколькими предлагаемыми ВМ одновременно. На всех модулях и в каждом модуле могут использоваться одинаковые ВЯ 61, …, 6N, предназначенные для выполнения однотипных заданий, или различные ВЯ 61, …, 6N, которые могут отличаться и предназначаться для выполнения принципиально разных заданий.The control processor (UP) usually works with several offered VMs at the same time. On all modules and in each module, the same VL 6 1 , ..., 6 N can be used, designed to perform the same tasks, or different VL 6 1 , ..., 6 N , which can differ and are intended to perform fundamentally different tasks.
Работа УП с ВМ происходит в следующей последовательности.Work UP with VM occurs in the following sequence.
УП задает режимы работы модуля для записи заданий и чтений результатов и общие параметры ВЯ 61, …, 6N. После этого УП производит начальную инициализацию модуля, подавая сигнал сброса 13, и начинает работу с модулем. Коды сброса, режимов работы и передающихся параллельным кодом параметров поступают на модуль по шине интерфейса УП 12 и после преобразования в интерфейсном блоке 1 фиксируются в его внутренних регистрах и поступают на блоки модуля по шинам 13, 14, 15 и 16.UE sets the operating modes of the module for recording tasks and reading results and general parameters of VL 6 1 , ..., 6 N. After that, the UE performs initialization of the module, giving a
В работе управляющего процессора с ВМ после загрузки режимов можно выделить 3 процесса: запись заданий, чтение результатов и анализ окончания работы.In the operation of the control processor with the VM after loading the modes, 3 processes can be distinguished: recording tasks, reading results and analyzing the end of work.
Процесс записи заданий. Управляющий процессор периодически считывает количество пакетов заданий во входной памяти путем передачи информации с шины 18 интерфейсным блоком 1 на шину внешнего интерфейса 12. Управляющий процессор, на основании объема блоков памяти заголовков 3 и данных 4 заданий и объема, загруженных в них пакетов заданий, определяет объем свободной входной памяти и загружает в нее максимально возможное число заданий из массива заданий для выполнения. В автоматическом режиме выбора ВЯ 61, …, 6N на этом функция записи заданий заканчивается. В режиме выбора ВЯ от УП управляющий процессор также считывает запросы записи от ВЯ по шине 19, выбирает по этим запросам ядро для записи и посылает код номера этого ядра и сигнал инициализации перезаписи задания из входной памяти в данное ядро по шине 16. Режим выбора ВЯ для записи заданий от УП является вспомогательным режимом модуля.The process of recording tasks. The control processor periodically reads the number of job packets in the input memory by transmitting information from the
Процесс чтения результатов. Управляющий процессор периодически считывает количество пакетов результатов в выходной памяти. Чтение происходит путем передачи информации с шины 21 интерфейсным блоком 1 на шину внешнего интерфейса 12 по запросу УП. При ненулевом числе пакетов результатов, управляющий процессор считывает заголовки этих результатов с блока памяти 10. Перед началом чтения УП выставляет запрос на интерфейсный блок 1 на чтение заданного количества слов по шине 25. Интерфейсный блок 1 формирует сигнал чтения 23 с длительностью, соответствующей количеству считываемых слов, и по шине 25 передает с блока памяти 10 на внешний интерфейс 12 требуемое количество слов. Управляющий процессор анализирует прочитанные заголовки блоков результатов, суммирует количество слов в пакетах результатов, которые содержатся в этих заголовках, с учетом преобразования разрядности результатов к разрядности интерфейсного обмена, и считывает с блока памяти 11 требуемое количество слов результатов. Перед началом чтения УП выставляет запрос на интерфейсный блок 1 на чтение заданного количества слов по шине 24. Интерфейсный блок 1 формирует сигнал чтения 22 с длительностью, соответствующей количеству считываемых слов, и по шине 24 передает с блока памяти 11 на внешний интерфейс 12 требуемое количество слов. В автоматических режимах выбора ВЯ для чтения на этом функция чтения результатов УП заканчивается. В режиме выбора ВЯ 61, …, 6N для чтения от УП, управляющий процессор также считывает запросы на чтение от ВЯ по шине 20, выбирает по этим запросам ядро для чтения и посылает код номера этого ядра и сигнал инициализации чтения результата из данного ядра по шине 14. Режим выбора ядра для чтения результатов от УП является вспомогательным режимом модуля.The process of reading the results. The control processor periodically reads the number of result packets in the output memory. Reading occurs by transmitting information from the
Процесс анализа окончания работы. Если ВЯ 61, …, 6N модуля по окончании обработки задания выставляют запрос на чтение по шине 20 даже при отсутствии результатов, то окончание работы модуля определяется по факту считывания всех результатов и наличию в заголовках этих результатов номеров всех загруженных в модуль заданий с признаками их окончания по шине 34. Если же ВЯ не выставляют запрос на чтение по шине 20 при отсутствии результатов и, следовательно, нет заголовков результатов с номерами безрезультативных заданий, то окончание работы модуля определяется по совпадению следующих условий: в модуль записаны все предназначенные для него задания, количество заданий во входной памяти модуля равно нулю, количество пакетов результатов в выходной памяти модуля равно нулю, все блоки памяти номеров заданий «пусты». Количество заданий во входной памяти определяется УП чтением кода с шины 18, а количество пакетов результатов в выходной памяти и признак «Пустой» всех блоков памяти номеров заданий 71, …, 7N определяется УП чтением шины 21.The process of analyzing the completion of work. If VYA 6 1 , ..., 6 N of the module at the end of the processing of the task put a read request on
Задания поступают от УП по внешнему интерфейсу 12, преобразуются интерфейсным блоком 1 в сигналы шины потоковой записи 17, разделяются блоком 2 "на лету" (без буферизации) на заголовки пакетов задания и непосредственно загружаемые впоследствии в вычислительные ядра данные заданий, которые записываются в блоки памяти заголовков заданий 3 и данных заданий 4 соответственно по шинам 42 и 43. В блоке разделения заданий 2 первое слово, поступающее после сигнала сброса 13 по шине заданий 17, считается заголовком пакета задания, и этот заголовок записывается по шине 42 в блок памяти 3. Из этого заголовка запоминается в блоке 2 количество слов данных в этом пакете, и далее это число слов, с учетом соотношения разрядности слова данных задания и разрядности слова интерфейсного обмена, записывается с шины 17 через блок разделения заданий 2 в память данных 4 по шине 43. После окончания записи в блок памяти данных 4 требуемого количества слов, следующее слово, поступающее по шине 17, снова воспринимается блоком разделения заданий 2 как заголовок следующего задания.Jobs come from the UE via the
В автоматическом режиме выбора ВЯ 61, …, 6N блок арбитра заданий 5, при наличии задания во входной памяти по сигналу на выходе 28, читает заголовок первого пакета задания по шине 26 по адресу 27, и в зависимости от кода режима выбора ядер в заголовке записывает задание в выбранное или во все вычислительные ядра 61, …, 6N без анализа запросов на запись от этих ядер, или ожидает запроса на запись от выбранного в заголовке ядра и после его появления записывает задание в это ядро, или ожидает появления запросов на запись от всех ядер одновременно и записывает задание параллельно во все ядра, или ожидает появления запроса хотя бы от одного ядра и записывает задание в то ядро, которое выбирается схемой анализа приоритета в блоке арбитра заданий 5. В режиме последовательной записи задания во все ВЯ блок арбитра заданий 5 ожидает появления запроса записи от первого ядра, записывает задание в первое ядро, далее возвращает адреса по шинам 27 и 29 к считыванию того же задания и ожидает запроса записи от второго ядра, записывает задание во второе ядро. Далее блок арбитра заданий 5 повторяет эти же действия последовательно для всех остальных ядер.In automatic selection mode VYA 6 1 , ..., 6 N, the
В режиме выбора ВЯ от УП, управляющий процессор анализирует запросы записи от ВЯ по шине 19, выдает в арбитр заданий 5 код номера выбранного ядра и сигнал записи по шине 16, по которым арбитр заданий 5 записывает задание в соответствующее ядро.In the selection mode of the VL from the control unit, the control processor analyzes the write requests from the VL on the
При записи заданий в ВЯ 61, …, 6N, блок арбитра заданий 5 формирует коды управления записью в ядра по шинам 311, …, 31N в соответствии со значением этого кода в заголовке соответствующего пакета задания для выбранного для записи ядра или для всех ядер. Длительность кода записи определяется количеством слов, указанных в заголовке пакета. Синхронно с кодом управления записью, арбитр заданий 5 формирует адрес на шине 29 для чтения данных задания, которые поступают по шине 30 на входы данных ВЯ. Если данное задание является исполняемым, а не пакетами параметров, то по окончании записи данных для последнего пакета в задании арбитр заданий 5 формирует сигналы окончания записи задания 31'1, …, 31'N, по которым блоки управления ВЯ 6-4 фиксируют прием в ядро очередного задания для исполнения, и в соответствии с этим управляют выбором блоков входной памяти задания 6-1 на запись и на чтение, очередным запуском операционного блока 6-2 и формированием запросов на запись 191, …, 19N и на чтение 201, …, 20N. Также по сигналам окончания записи задания 311, …, 31N, поступающим на блоки памяти номера задания 71, …, 7N, записываются в эти блоки памяти с шин 321, …, 32N номера заданий. Номера заданий формируются в арбитре заданий 5 из кода номера задания, запомненного при чтении арбитром заголовка задания, и кода номера ВЯ, если запись производится последовательно или параллельно во все ядра.When recording tasks in VL 6 1 , ..., 6 N , the
Каждое из вычислительных ядер 61, …, 6N последовательно обрабатывает поступившие на это ядро задания, считывая данные из одного из блоков входной памяти 6-1 и записывая результаты в один из блоков выходной памяти 6-3. Блоки памяти как для чтения 6-3, так и для записи 6-1 выбираются только последовательно. Условием запуска обработки очередного задания является окончание обработки предыдущего задания, наличие очередного задания в одном из блоков входной памяти 6-1 и наличие свободного блока в выходной памяти 6-3 для записи результата. Условием запуска продолжения обработки задания после переполнения блока выходной памяти 6-3 является наличие свободного блока в выходной памяти 6-3.Each of the computing cores 6 1 , ..., 6 N sequentially processes the tasks received by this core, reading data from one of the blocks of the input memory 6-1 and writing the results to one of the blocks of the output memory 6-3. The memory blocks for reading 6-3 and for writing 6-1 are selected only sequentially. A condition for starting processing of the next task is the end of the processing of the previous task, the presence of the next task in one of the blocks of the input memory 6-1 and the presence of a free block in the output memory 6-3 for recording the result. The condition for starting the processing of the job after overflowing the block of the output memory 6-3 is a free block in the output memory 6-3.
Запросы на чтение результатов 201…20N поступают в арбитр результатов 9 и на интерфейсный блок 1.Requests for reading the
Арбитр результатов 9 работает в одном из трех режимов: выбор ВЯ для считывания результата по приоритету запроса на считывание, последовательное считывание результатов со всех ядер в порядке нумерации, выбор ядра для считывания результатов от УП.Arbitrator of
В режиме выбора ВЯ 61, …, 6N по приоритету запроса на считывание результата 201…20N, арбитр результатов 9, после сигнала сброса 13 или окончания чтения предыдущего результата, ожидает хотя бы одного запроса и выбирает ядро с наибольшим приоритетом запроса на чтение. В режиме последовательного чтения результатов в порядке нумерации ядер, арбитр результатов 9 после сигнала сброса 13 ждет запроса на чтение от 1-го ядра, а по окончании чтения результата с очередного ядра ждет запроса от ядра со следующим порядковым номером. В режиме выбора ядра от УП, управляющий процессор анализирует запросы на чтение от ВЯ по шине 20 и выдает в арбитр результатов 9 код номера выбранного ядра и сигнал начала чтения по шине 14. По данному сигналу арбитр результатов 9 начинает чтение результатов из соответствующего ядра. В двух остальных режимах начало чтения автоматически определяется арбитром результатов 9.In the selection mode VL 6 1 , ..., 6 N according to the priority of the request to read the
При считывании результатов, арбитр результатов 9 выставляет на шине 38 номер ВЯ, с которого считываются результаты, а сигнал чтения на соответствующем выходе 371, …, 37N. По сигналу чтения с выбранного ядра считывается результат по соответствующей шине 331, …, 33N, сопровождаемый признаком достоверности. При считывании последнего слова в пакете результатов с выхода ВЯ формируется соответствующий импульс 341, …, 34N, а если это последнее слово результата в задании, то формируется также соответствующий импульс 351, …, 35N. Сигналы с каждого ВЯ 61, …, 6N поступают на входы блока мультиплексоров результатов 8. Также на входы блока мультиплексоров 8 поступают с блоков памяти номеров заданий 71, …, 7N номера заданий, которые выполняются ядрами 61, …, 6N, и признаки «Пустой» соответствующих блоков памяти 71, …, 7N, которые передаются на выходы блока мультиплексоров 8 в соответствии с номером, заданным на шине 38. Также в блоке мультиплексоров 8 формируется признак «Пустой» всех блоков памяти номеров заданий 21'. Сигнал окончания чтения пакета результатов 34 с выхода блока мультиплексоров 8 используется арбитром результатов 9 для окончания чтения очередного пакета результатов, блоком памяти заголовков результатов 10 этот сигнал используется для записи заголовка пакета результатов, а в блоке памяти данных результатов 11 этот сигнал сбрасывает счетчик, используемый для переформатирования слов данных результатов, если разрядность выходов ВЯ в несколько раз меньше разрядности слова потокового чтения интерфейса. Шина номера задания 36 и сигнал окончания задания 35 поступают с выхода блока мультиплексоров 8 только на вход памяти заголовков результатов 10. Шина данных результатов 33 поступает на вход памяти данных результатов 11, а признак достоверности результатов с выхода 33' поступает на арбитр результатов 9 для подсчета числа слов в пакете результатов и выдачи этого числа по шине 39 на вход памяти заголовков результатов 10. Признаки переполнений с выходов блоков памяти заголовков 41 и данных результатов 40 поступают на арбитр результатов 9 для приостановки процесса чтения результатов при наличии хотя бы одного из этих сигналов.When reading the results, the arbiter of the
Блок памяти заголовков результатов 10 по сигналу окончания чтения пакета результатов 34 записывает заголовок пакета результатов, состоящий из номера задания 36, количества слов в пакете результатов 39 и признака окончания задания 35. Блок памяти 10 также формирует признак переполнения 41 и код количества пакетов результатов в выходной памяти 21. По сигналу чтения 23 блок памяти 10 выдает на шину потокового чтения 25 заголовки результатов.The memory block of the headers of the
Блок памяти данных результатов 11 осуществляет переформатирование данных на входе или на выходе. Запись в блок памяти 11 происходит по сигналу достоверности данных на шине 33. Блок памяти 11 формирует признак переполнения 40. По сигналу чтения 22 блок памяти 11 выдает на шину потокового чтения 24 данные результатов.The results
Предлагаемый вычислительный модуль был применен при разработке вычислительной системы с ускорителями на основе ПЛИС XC7K410T фирмы Xilinx. При разработке ВС на ПЛИС, на базе предлагаемого ВМ, используют заранее разработанный проект параметризуемой вычислительной среды и разрабатывают только вычислительные ядра 61, …, 6N с интерфейсом, регламентируемым предлагаемым ВМ. Далее в параметрах задается ширина шины данных заданий, шины результатов и шины параметров ВЯ, передаваемых параллельным кодом, число ВЯ 61, …, 6N в модуле и величины частот синхронизации записи заданий, чтения результатов и обработки. RTL-описания ВЯ 61, …, 6N интегрируют с проектом вычислительной среды, и в САПР для данной ПЛИС проводится компиляция проекта с получением кода для программирования ПЛИС. Число ВЯ 61, …, 6N и величины частот синхронизации выбираются для достижения максимальной производительности СВУ.The proposed computing module was used in the development of a computer system with accelerators based on the Xilinx FPGA XC7K410T. In the development of sun on the FPGA based on the proposed BM used previously developed project parametrized computing environment and develop only computational core 6 1, ... 6 N interface, regulated proposed VM. Further, the parameters specify the width of the job data bus, the results bus and the bus of the VL parameters transmitted by the parallel code, the number of VL 6 1 , ..., 6 N in the module and the frequency of synchronization of the recording of tasks, reading the results and processing. RTL-descriptions of VYa 6 1 , ..., 6 N are integrated with the design of the computing environment, and in CAD for this FPGA, the project is compiled to obtain code for programming the FPGA. The number VL 6 1 , ..., 6 N and the values of the synchronization frequencies are selected to achieve maximum performance of the VCA.
Проведенные оценки показали сокращение на 25% трудоемкости и времени разработки вычислительной системы по сравнению с разработкой без использования унифицированной вычислительной среды. При этом вычислительная среда в предлагаемом вычислительном модуле занимает не более 5% ресурсов ПЛИС, время, затрачиваемое на анализ состояния входной и выходной памяти в предлагаемом вычислительном модуле, сократилось в 3 раза, а также в 2 раза сократилось время «простоев» вычислительных ядер из-за задержек в их обслуживании, в результате чего увеличена производительность вычислительной системы.Estimates showed a 25% reduction in the complexity and time of developing a computing system compared to developing without using a unified computing environment. Moreover, the computing environment in the proposed computing module occupies no more than 5% of FPGA resources, the time spent analyzing the state of the input and output memory in the proposed computing module was reduced by 3 times, and the downtime of the computing cores was also halved for delays in their maintenance, resulting in increased computing system performance.
Таким образом, вышеизложенные сведения позволяют сделать вывод, что предлагаемый вычислительный модуль соответствует заявляемому техническому результату - уменьшение трудоемкости и сроков разработки и повышение производительности.Thus, the above information allows us to conclude that the proposed computing module corresponds to the claimed technical result - reducing the complexity and development time and increasing productivity.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2017118227A RU2643622C1 (en) | 2017-05-25 | 2017-05-25 | Computer module |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2017118227A RU2643622C1 (en) | 2017-05-25 | 2017-05-25 | Computer module |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2643622C1 true RU2643622C1 (en) | 2018-02-02 |
Family
ID=61173672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2017118227A RU2643622C1 (en) | 2017-05-25 | 2017-05-25 | Computer module |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2643622C1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2686004C1 (en) * | 2018-07-26 | 2019-04-23 | Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" | Computing module |
RU2689433C1 (en) * | 2018-06-14 | 2019-05-28 | Российская Федерация, от имени которой выступает ФОНД ПЕРСПЕКТИВНЫХ ИССЛЕДОВАНИЙ | Computing module and processing method using such a module |
RU2780169C1 (en) * | 2021-11-29 | 2022-09-20 | Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" | Computing module for multitasking computing systems |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2399089C2 (en) * | 2008-12-08 | 2010-09-10 | Федеральное Государственное Унитарное Предприятие "Государственный Рязанский Приборный Завод" | Digital signal multiprocessor |
RU139326U1 (en) * | 2013-12-10 | 2014-04-10 | Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" | COMPUTER MODULE |
RU151425U1 (en) * | 2014-09-26 | 2015-04-10 | Российская Федерация в лице Министерства промышленности и торговли Российской Федерации | COMPUTER MODULE OF MULTI-PROCESSOR CRATE SYSTEM AND MULTI-PROCESSOR SYSTEM OF THESE MODULES |
WO2015153380A1 (en) * | 2014-03-31 | 2015-10-08 | Kountable, Inc. | Multi-variable assessment systems and methods that evaluate and predict entrepreneurial behavior |
RU159583U1 (en) * | 2015-09-17 | 2016-02-10 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Нижегородский государственный технический университет им. Р.Е. Алексеева" (НГТУ) | MULTI-PROCESSOR DIGITAL SIGNAL PROCESSING MODULE |
-
2017
- 2017-05-25 RU RU2017118227A patent/RU2643622C1/en active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2399089C2 (en) * | 2008-12-08 | 2010-09-10 | Федеральное Государственное Унитарное Предприятие "Государственный Рязанский Приборный Завод" | Digital signal multiprocessor |
RU139326U1 (en) * | 2013-12-10 | 2014-04-10 | Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" | COMPUTER MODULE |
WO2015153380A1 (en) * | 2014-03-31 | 2015-10-08 | Kountable, Inc. | Multi-variable assessment systems and methods that evaluate and predict entrepreneurial behavior |
RU151425U1 (en) * | 2014-09-26 | 2015-04-10 | Российская Федерация в лице Министерства промышленности и торговли Российской Федерации | COMPUTER MODULE OF MULTI-PROCESSOR CRATE SYSTEM AND MULTI-PROCESSOR SYSTEM OF THESE MODULES |
RU159583U1 (en) * | 2015-09-17 | 2016-02-10 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Нижегородский государственный технический университет им. Р.Е. Алексеева" (НГТУ) | MULTI-PROCESSOR DIGITAL SIGNAL PROCESSING MODULE |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2689433C1 (en) * | 2018-06-14 | 2019-05-28 | Российская Федерация, от имени которой выступает ФОНД ПЕРСПЕКТИВНЫХ ИССЛЕДОВАНИЙ | Computing module and processing method using such a module |
RU2686004C1 (en) * | 2018-07-26 | 2019-04-23 | Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" | Computing module |
RU2780169C1 (en) * | 2021-11-29 | 2022-09-20 | Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" | Computing module for multitasking computing systems |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102562715B1 (en) | Neural network processing system having multiple processors and a neural network accelerator | |
CN111247533B (en) | Machine learning runtime library for neural network acceleration | |
KR101467932B1 (en) | Shared storage for multi-threaded ordered queues in an interconnect | |
US10169513B2 (en) | Method and system for designing FPGA based on hardware requirements defined in source code | |
US11709664B2 (en) | Anti-congestion flow control for reconfigurable processors | |
US6895482B1 (en) | Reordering and flushing commands in a computer memory subsystem | |
US20180181503A1 (en) | Data flow computation using fifos | |
US11782760B2 (en) | Time-multiplexed use of reconfigurable hardware | |
US20180212894A1 (en) | Fork transfer of data between multiple agents within a reconfigurable fabric | |
US20090198867A1 (en) | Method for chaining multiple smaller store queue entries for more efficient store queue usage | |
US11496418B1 (en) | Packet-based and time-multiplexed network-on-chip | |
TWI754310B (en) | System and circuit of pure functional neural network accelerator | |
RU2643622C1 (en) | Computer module | |
US20220309029A1 (en) | Tensor Partitioning and Partition Access Order | |
CN117093538A (en) | Sparse Cholesky decomposition hardware acceleration system and solving method thereof | |
US8219745B2 (en) | Memory controller to utilize DRAM write buffers | |
CN104834629B (en) | The central processing unit of bus-type | |
US6985982B2 (en) | Active ports in a transfer controller with hub and ports | |
US11281831B2 (en) | Information processing device, information processing method, and recording medium | |
CN110413562B (en) | Synchronization system and method with self-adaptive function | |
Comisky et al. | A scalable high-performance DMA architecture for DSP applications | |
JP2003015968A (en) | Bus simulator | |
WO2019113021A1 (en) | Tensor manipulation within a reconfigurable fabric using pointers | |
CN102984599A (en) | Video acquiring and transmitting device and method based on RapidIO protocol network | |
Martyshkin | Development and Analysis of Subsystem Models of Message Queues Transmitted within both a Reconfigurable Computing System and Accessing the System-Shared Memory |