RU2571376C1 - Method and apparatus for parallel processing of digital information in computer system - Google Patents

Method and apparatus for parallel processing of digital information in computer system Download PDF

Info

Publication number
RU2571376C1
RU2571376C1 RU2014146704A RU2014146704A RU2571376C1 RU 2571376 C1 RU2571376 C1 RU 2571376C1 RU 2014146704 A RU2014146704 A RU 2014146704A RU 2014146704 A RU2014146704 A RU 2014146704A RU 2571376 C1 RU2571376 C1 RU 2571376C1
Authority
RU
Grant status
Grant
Patent type
Prior art keywords
processing
unit
data
block
system
Prior art date
Application number
RU2014146704A
Other languages
Russian (ru)
Inventor
Сергей Александрович Козырев
Original Assignee
Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Grant date

Links

Images

Abstract

FIELD: physics.
SUBSTANCE: method includes receiving, at first unit, an indictor, descriptor and data for processing a system-wide bus; transmitting the received indicator and descriptor to a second unit via a local bus; searching for a free processing unit at the second unit; transmitting to the selected free processing unit the indicator, descriptor and data for processing; processing data in the selected processing unit based on an algorithm specified in the descriptor; transmitting the processed data from the processing unit to the second unit via the local bus; modifying the indicator at the second unit; generating an interrupt request signal at the second unit; transmitting the modified indicator and interrupt request signal from the second unit to the first unit; receiving at the first unit the interrupt request signal, modified indicator and processed data from the second unit; generating an interrupt request in the first unit; transmitting from the first unit to the processor the interrupt request, modified indicator and processed data via the system-wide bus.
EFFECT: high rate of processing digital information.
2 cl, 4 dwg

Description

Область техники, к которой относится изобретение TECHNICAL FIELD OF THE INVENTION

Предлагаемое изобретение относится к вычислительной технике, в частности к способам и устройствам параллельной обработки нескольких потоков цифровых данных в вычислительной системе, где под потоками цифровых данных понимается последовательность дискретных наборов данных, например сообщений, сетевых пакетов или других массивов информации. The present invention relates to computer technology, and more particularly to methods and apparatus for parallel processing of multiple streams of digital data in a computer system, where the digital data streams is a sequence of discrete data sets, e.g., messages, packets, or other network information sets.

Уровень техники BACKGROUND

Важным параметром, характеризующим вычислительную систему, используемую для выполнения обработки цифровых данных, является ее производительность. An important parameter that characterizes the computer system used to perform the processing of digital data, is its performance. При этом часто возникает задача, связанная с повышением скорости обработки потоков данных в данной вычислительной системе. When this task is often associated with an increase in the processing speed of data flows in the computing system. Эффективным путем повышения производительности при выполнении обработки данных является увеличение числа блоков, выполняющих обработку, а также повышение вычислительной мощности этих блоков. An effective way of improving performance for data processing is increased number of performing the processing blocks, and also increase the computing power of these blocks.

Существенное влияние на производительность системы оказывает выбранный способ организации взаимодействия между обрабатывающими блоками. Significant impact on the system performance provides the selected method of interaction between the processing units.

Характер выполняемой обработки может быть различным, например, это может быть выполнение операций по шифрованию/расшифрованию сетевого трафика, сложные вычисления и др. Character processing performed may be different, for example it may be performing operations on encrypting / decrypting of network traffic, and other complex calculations.

Известны способ и устройство для параллельной обработки информации в вычислительной системе, описанные в патенте США №7853775, причем способ заключается в том, что Discloses a method and apparatus for parallel processing of information in a computing system, described in U.S. Patent №7853775, the method consists in that

- формируют в процессоре инструкцию и данные из потока, связанного с первым контекстом, для посылки в устройство; - form to the instruction processor and data from the stream associated with the first context to be sent to the device;

- причем сформированная инструкция запрашивает устройство выполнить команду и возвратить данные в процессор; - and formed the instruction requests the device to execute the command and return the data to the processor;

- сохраняют признак в упомянутом первом контексте, который идентифицирует адрес назначения упомянутых возвращаемых данных; - retain an indication in said first context which identifies the destination address of said returned data;

- выполняют в процессоре переключение контекста, чтобы перейти от обработки первого контекста ко второму до получения возвращаемых данных; - operate in the processor context switch to switch from the first processing context until receiving the second return data;

- выполняют в контроллере шины операцию на системной шине для посылки сформированной инструкции и данных вместе с идентификатором потока в устройство; - operate in the bus operation on the system bus to send the generated instructions and data together with the flow identifier to the device;

- причем идентификатор содержит адрес регистра назначения; - wherein the identifier comprises a destination address register;

- выполняют в устройстве операцию в соответствии с инструкцией и данными; - operate a device operation according to the instruction and data;

- выгружают возвращаемые результирующие данные и идентификатор потока на системную шину; - unloading and return the resulting data stream identifier to a system bus;

- получают возвращаемые результирующие данные и идентификатор потока в контроллере шины; - receive and return the resulting data stream identifier in the bus;

- инициируют в процессоре операцию на системной шине перед переключением контекста; - initiate operation of the processor on the system bus prior to a context switch;

- получают идентификатор второго контекста; - receive a second context identifier;

- выполняют следующую инструкцию в первом контексте; - perform the following instructions in a first context;

- изменяют программный счетчик в процессоре из значения, связанного с первым контекстом, в значение, связанное со вторым контекстом; - modify the program counter in the processor of the value associated with the first context in the value associated with the second context;

- получают соответствие первого контекста из идентификатора потока; - receive from a first context matching flow identifier;

- определяют адрес назначения с помощью доступа к первому контексту; - determine the destination address by accessing a first context;

- записывают, по крайней мере, часть возвращаемых данных по адресу назначения. - recording at least part of the returned data to the destination.

Этот способ имеет недостатки, среди которых необходимость использования процессора для обеспечения обмена данными с устройством, при этом выполнение процессором задачи задерживается до завершения обмена. This method has disadvantages, among which the necessity of using a processor to provide data exchange with the device, wherein the processor task execution is delayed until the completion of the exchange. Дополнительно следует отметить необходимость сохранять информацию о переданной задаче, а также расположении данных в регистрах процессора. In addition, it should be noted the need to store information about a transmission problem, as well as the location of the data in the processor's registers.

В устройстве для обработки информации для реализации описанного способа обрабатывающие элементы сгруппированы в многопоточные наборы, каждый из которых выполняет операции в режиме одного потока под управлением блоков памяти, как хранилищ инструкций, и регистров - для соответствующих указателей. In the information processing apparatus to implement the method described processing elements grouped in a multithreaded sets, each of which operates in one flow regime under the control of the memory blocks as storage of instructions and registers - for the respective pointer.

Устройство содержит The apparatus comprises

- N узлов обработки, выполняющих параллельные операции в один поток (SIMD); - N processing units performing parallel operations in a stream (SIMD);

- N узлов обработки, сгруппированных в M наборов блоков обработки, состоящих из S узлов обработки, где каждый из S узлов содержит память и регистры, при этом M наборов блоков обработки выполняют параллельные операции друг с другом, и S узлов обработки выполняют операции друг с другом, где при работе с множеством потоков (MIMD) часть блоков памяти каждого набора M блоков обработки используется для хранения инструкций, причем часть регистров в каждом блоке обработки функционирует как хранилище указателей на инструкции; - N processing units grouped into M sets of processing blocks consisting of S processing nodes, wherein each of S nodes includes a memory and registers, wherein M sets of processing units perform parallel operation with each other, and S processing unit perform operations with one another wherein when working with a plurality of streams (MIMD) part of the memory blocks of each set of M processing units used to store instructions, wherein a portion of registers in each processing unit functions as a pointer to storage instructions;

- каждый из блоков обработки содержит схему контроля, выполняющую для S узлов обработки этого блока управление инструкциями и их последовательностью, - each of the processing units comprises a control circuit S performs for this block processing unit control instructions and their sequence

- блок управления обработкой, управляющий системой в целом, при этом в каждом блоке обработки один из узлов обработки, имеющий блок памяти, функционирует как хранилище инструкций при работе с множеством инструкций (MIMD) и содержит: - processing control unit controlling the whole system, wherein each one of the processing units processing unit having a memory unit operates as a repository of document while working with the set of instructions (MIMD), and comprises:

- схему управления; - a control circuit;

- выборщик инструкций, выбирающий инструкции из блока управления либо из хранилища инструкций; - elector instructions, selecting instruction from the control unit or from the storage instructions;

- узел обработки из S узлов обработки, не содержащий хранилище инструкций, получающий и исполняющий инструкцию от выборщика инструкций при работе с множеством инструкций (MIMD), - the processing unit S of the processing nodes, not containing document repository that receives and executes instructions from the instruction of the elector during operation with a plurality of instructions (MIMD),

- блок управления обработкой для глобального контроля, причем в каждом из блоков обработки каждый узел обработки содержит - the control unit for processing the global control and in each of the processing units, each processing unit comprises

- схему управления; - a control circuit;

- выборщик инструкций, причем при работе с множеством инструкций (MIMD) выборщик инструкций одного из узлов обработки, содержащего хранилище инструкций, выбирает инструкцию от блока управления либо из хранилища инструкций; - elector instructions, wherein when working with a plurality of instructions (MIMD) elector document in one of the processing nodes, comprising storage instructions, selects an instruction from the control unit or the instructions from storage;

- оставшиеся узлы обработки, не содержащие хранилище инструкций, получающие и исполняющие инструкции от выборщика инструкций единственного узла обработки, содержащего хранилище инструкций. - the remaining processing nodes not containing document storage, receiving and executing instructions from a single processing node elector document containing document repository.

Описанные способ и устройство приняты за прототипы. The described method and device adopted for prototypes.

Однако в известном устройстве также есть недостатки, заключающиеся в том, что весь обмен между узлами обработки, а также между узлами обработки и управляющим блоком выполняются по системной шине, что снижает производительность системы. However, in the known device also has disadvantages in that all communication between processing nodes and between the nodes and the processing performed by the control unit via the system bus, which reduces the system performance. Хранение исполняемых инструкций в соседних элементах в пределах одного блока обработки затрудняет доступ к этим инструкциям, а также приводит к замедлению в работе элемента обработки, хранящего эти инструкции. Storing the executable instructions in neighboring cells within a single processing unit makes it difficult to access these instructions, and slows down the processing element, storing these instructions.

Раскрытие изобретения SUMMARY OF THE iNVENTION

Техническим результатом является повышение скорости обработки цифровой информации. The technical result is an increase in digital information processing speed.

Для этого предлагается устройство параллельной обработки цифровой информации в вычислительной системе, содержащей For this purpose, an apparatus is provided parallel processing of digital information in a computer system comprising

- по крайней мере, один процессор; - at least one processor;

- оперативную память; - RAM;

- общесистемную шину, связывающую процессор, оперативную память и устройство; - a system-wide bus connecting the processor, memory and a device;

- прикладное ПО, обеспечивающее - application software, providing

- настройку и управление устройством; - setting and control of the device;

- формирование и размещение в оперативной памяти дескрипторов, содержащих - the formation and placement in memory descriptor containing

- информацию о расположении обрабатываемых данных в оперативной памяти системы; - information on the location of the processed data in the system memory;

- информацию об алгоритме обработки данных; - information about the data processing algorithm;

- формирование и передачу устройству указателей на дескрипторы в соответствии с порядком поступления данных в систему; - generating and transmitting apparatus of pointers to the descriptors in accordance with the order of arrival of the data in the system;

- прием и обработку запроса на прерывание, полученного по общесистемной шине от устройства; - receiving and processing of the interrupt request received by the system-wide bus from the device;

причем устройство содержит the apparatus comprising:

- локальную шину - local bus

- первый блок, обеспечивающий - a first unit providing

- прием данных из общесистемной шины и их передачу по локальной шине; - receiving data from a system-wide bus and transfer on the local bus;

- передачу по общесистемной шине данных, полученных из локальной шины; - transmission of system-wide data bus, derived from the local bus;

- формирование и выдачу в общесистемную шину запроса на прерывание; - forming and delivery system-wide bus interrupt request;

- второй блок, обеспечивающий - a second unit providing

- обмен данными по локальной шине с первым блоком; - data exchange on the local bus to the first unit;

- хранение данных в локальной памяти; - storing data in the local memory;

- обмен данными по локальной шине с блоками обработки; - data exchange on the local bus to the processing units;

- управление блоками обработки; - management of the processing units;

- поиск свободных блоков обработки; - find available processing units;

- управление очередью обработки; - management of the processing queue;

- передачу первому блоку сигнала для формирования запроса на прерывание; - transfer of the first block signal for generating an interrupt request;

- совокупность блоков обработки, каждый из которых обеспечивает - a set of processing units, each of which provides

- прием и передачу по локальной шине указателей, дескрипторов и данных для обработки из второго блока; - receiving and transmitting on a local bus pointers, and descriptors for processing data from the second block;

- обработку данных в соответствии с заданным в дескрипторе алгоритмом; - processing the data in accordance with a predetermined algorithm in the descriptor;

- передачу по локальной шине второму блоку указателей и обработанных данных; - transmission on the local bus and the second block pointers processed data;

причем and

первый блок связан с вычислительной системой по общесистемной шине, a first block associated with a computer system on a system-wide bus,

второй блок и совокупность блоков обработки связаны с первым блоком по локальной шине. a second block and a plurality of processing units connected to the first unit on the local bus.

Для использования совместно с устройством предлагается способ параллельной обработки цифровой информации, заключающийся в том, что For use in conjunction with a device provides a method of parallel processing of digital information, comprising the steps that

- принимают в первом блоке указатель, дескриптор и данные для обработки из общесистемной шины; - taking the first block pointer descriptor and data for processing from a system-wide bus;

- передают принятые указатель и дескриптор во второй блок по локальной шине; - transmitting the received descriptor pointer and the second block on the local bus;

- проводят поиск во втором блоке свободного блока обработки; - search is performed in the second block free of the processing unit;

- передают выбранному свободному блоку обработки указатель, дескриптор и данные для обработки; - transmits the selected free block pointer processing, and handle data processing;

- выполняют обработку данных в выбранном блоке обработки по алгоритму, заданному в дескрипторе; - data processing is performed on the selected algorithm, the processing unit specified in the descriptor;

- передают обработанные данные из блока обработки во второй блок по локальной шине; - transmitting the processed data from the processing unit to the second unit over a local bus;

- модифицируют указатель во втором блоке; - modify the pointer in the second block;

- формируют во втором блоке сигнал для формирования запроса на прерывание; - formed in the second block signal for generating an interrupt request;

- передают модифицированный указатель и сигнал для формирования запроса на прерывание из второго блока в первый блок; - transmitting a modified pointer signal and for generating an interrupt request from the second unit to the first unit;

- получают в первом блоке сигнал запроса на прерывание, модифицированный указатель и обработанные данные от второго блока; - receive a first block of interrupt request signal, and the processed modified pointer data from the second block;

- формируют в первом блоке запрос на прерывание; - forming a first block of the interrupt request;

- передают из первого блока в процессор запрос на прерывание, модифицированный указатель и обработанные данные по общесистемной шине. - transmitting from a first unit to a processor interrupt request, and the processed modified pointer data on a system-wide bus.

Повышение производительности вычислительной системы достигается за счет освобождения процессора от выполнения множества текущих операций по Increasing computing system performance is achieved by the release of the processor to perform operations on a plurality of current

- управлению блоками обработки, - management of the processing units,

- загрузке и выгрузке данных из блоков обработки, - loading and unloading of data from the processing units,

- непосредственной обработке данных, - immediate processing of data,

- управлению очередью обработки и - processing and queue management

- организации обмена между отдельными блоками устройства. - organizations sharing between individual device units.

Для реализации такой работы процессора предлагается организовать внутреннюю локальную шину, связывающую блоки обработки между собой, а также обеспечить выполнение блоками обработки загрузки и выгрузки данных. To implement such operation of the processor serves to organize the internal local bus connecting the processing units among themselves, and also ensure that the data processing load and unload units.

В результате основной обмен данными будет производиться по локальной шине, что снизит нагрузку на процессор и системную шину и, соответственно, повысит производительность вычислительной системы в целом. As a result, the basic exchange of data is carried out on the local bus, which reduces the load on the processor and the system bus and, accordingly, increase the performance of a computer system as a whole.

Краткое описание чертежей BRIEF DESCRIPTION OF DRAWINGS

На фиг. FIG. 1 показана структурная схема устройства. 1 shows a block diagram of the device.

На фиг. FIG. 2 показана схема взаимодействия регистров задач второго блока. 2 is a diagram interaction task registers of the second block.

На фиг. FIG. 3 показана структурная схема блока обработки. 3 shows a block diagram of the processing unit.

На фиг. FIG. 4 показана структура дескриптора. 4 shows the structure of a descriptor.

Осуществление изобретения EMBODIMENTS

Реализация данного способа может быть осуществлена в вычислительной системе, имеющей общесистемную шину. Implementation of this method can be implemented in a computer system having a system-wide bus. В качестве основы для построения устройства может быть использована технология программируемых логических интегральных схем. The programmable logic technology of integrated circuits may be used as the basis for constructing the device. С помощью таких схем с одной стороны обеспечивается доступ устройства на общесистемную шину, а с другой стороны на устройстве организуется гибкая конфигурация взаимосвязей между составными блоками. With such circuits on the one hand is provided on a system-wide device access bus, and on the other hand on the device configuration is organized flexible interconnections between the constituent blocks.

В качестве линии обмена, связующей составные блоки, в устройстве используется локальная шина, обеспечивающая взаимодействие между первым блоком, вторым блоком и блоками обработки, при этом обмены по локальной шине могут выполняться по инициативе любого блока, входящего в состав устройства (фиг. 1). As the exchange line, the binder component blocks, the device uses local bus that provides communication between the first block, the second block and the processing block, wherein the exchanges of the local bus can be performed on the initiative of a unit included in the device (FIG. 1).

Для обеспечения взаимосвязи внутренних блоков устройства с вычислительной системой используется первый блок, являющийся промежуточным элементом между общесистемной шиной и локальной шиной. the first block is used to provide internal interconnection device units with a computer system, being an intermediate element between the system-wide bus and the local bus. Этот блок обеспечивает возможность передачи сообщений из общесистемной шины в локальную шину и из локальной шины в общесистемную. This unit allows the transfer of messages from a system-wide bus to the local bus, and a local bus from system-wide. Для выполнения передачи в первом блоке реализованы функции по сопряжению интерфейсов обмена в соответствии с требованиями общесистемной и локальной шин. To perform the transmission in the first block functions are realized by conjugation communication interfaces in compliance with system-wide and local buses. Также данный блок содержит таблицы коммутации, обеспечивающие маршрутизацию пересылки сообщений в устройстве между вычислительной системой и блоками устройства. Also, this unit comprises a switching table that provide messaging routing device between the computer system and the device blocks. При этом обмены с вычислительной системой по локальной шине выполняются в формате общесистемной шины, что обеспечивает простой способ ретрансляции сообщений через первый блок при помощи лишь модификации полей заголовка. In this case exchanges with the computer system on the local bus are performed in a system-wide bus format that provides a simple way to relay messages through the first block using a modification of header fields.

При отправке сообщений от составных узлов устройства через первый блок в общесистемную шину используется замена в заголовке сообщения поля Tag, содержащего идентификатор последовательности сообщений для выдающего узла, новым полем Tag_new, соответствующим номеру последовательности сообщений от устройства в целом. When sending messages by nodes composite device via the first block to a system-wide bus used by replacing the title Tag message field containing a message sequence identifier for the issuing node, a new field Tag_new, corresponding to the number sequence of messages from the device as a whole. При этом в таблице коммутации по адресу Tag_new сохраняется запись, содержащая исходный Tag и индивидуальный номер узла Node_ID, отправившего сообщение. In this case, the switching table is stored at Tag_new record containing the original Tag and individual node Node_ID number, send a message. В ответ на сообщение с запросом данных из оперативной памяти системы контроллер памяти выдает сообщение, содержащее в своем заголовке исходный Tag_new как идентификатор обмена. In response to a message requesting data from the system RAM memory controller issues a message comprising in its header as the source Tag_new exchange identifier. Это поле используется в первом блоке для поиска в таблице коммутации идентификатора узла Node_ID на локальной шине, запросившего данные, и определения исходного поля Tag в передаваемом узлу сообщении для идентификации обмена для данного узла. This field is used in the first block to search the table switching Node_ID node identifier on the local bus requesting data, and determining the source Tag field in the transmitted node message for identifying the exchange for this node.

Также первый блок содержит всю информацию, определяющую характеристики устройства, как оконечного узла на общесистемной шине в вычислительной системе, а именно конфигурационные регистры, идентификаторы устройства на шине DeviceID и VendorID и другие параметры, используемые вычислительной системой для настройки доступа к устройству как элементу системы. Also, the first block contains all information defining the characteristics of the device as a terminal node on a system-wide bus in a computer system, namely the configuration registers device IDs on bus DeviceID and VendorID and other parameters used to configure the computer system to access the device as an element of the system.

Первый блок осуществляет выдачу запроса на прерывание в общесистемную шину после получения требования на прерывание Interrupt от второго блока. The first block performs the issuance interrupt request to a system-wide bus after receipt of a request for interrupt Interrupt from the second block.

Управление функционированием устройства осуществляется с помощью второго блока, подключенного к локальной шине в устройстве и содержащего регистры, используемые для управления работой блоков обработки. Control device operation performed by a second unit connected to the local bus and the device containing the registers used to control the operation of the processing units. Программный доступ к регистрам осуществляется с помощью специализированного программного обеспечения, исполняемого на процессоре и отвечающего за взаимодействие вычислительной системы с устройством. Programmatic access to the registers is performed by a dedicated software executable on a processor and responsible for interaction with a computer system unit.

С учетом состояния регистров второго блока устройство подготавливается к выполнению задач по обработке, а также определяет условия формирования требования на прерывание Interrupt. Given the state of the second unit register device is prepared to perform processing tasks, and also determines the conditions of formation requirements interrupt Interrupt.

Перед началом выполнения обработки на устройстве прикладное программное обеспечение задает в регистрах второго блока базовый адрес Base_Address положения буфера дескрипторов задач в оперативной памяти вычислительной системы. Before performing processing device application software sets the registers in the second block base address Base_Address position buffer task descriptors in memory of the computing system. Все условия задач по обработке данных, поступающих в устройство, описываются в дескрипторе, хранящемся в буфере дескрипторов. All the conditions for data processing tasks, entering the device are described in the descriptor stored in the buffer descriptor. Прикладное программное обеспечение собирает и заносит в дескриптор информацию о расположении обрабатываемых данных, алгоритму обработки и другие данные, необходимые для выполнения задачи. Application software collects and stores in the descriptor information on the location of the processed data, processing algorithms, and other data required to complete the task. Размер дескриптора Size фиксирован. Descriptor Size Size is fixed.

Постановка новой задачи либо чтение завершенной задачи из регистров выполняется по инициативе программного обеспечения. Formulation of a new task or tasks completed reading of the registers is performed by software initiative. Обмен задачами между вычислительной системой и устройством ведется в виде указателей на положение дескрипторов в буфере дескрипторов. Exchange of tasks between the computer system and the device being in the form of pointers to status descriptors in the buffer descriptor. Адрес положения очередного дескриптора с номером i, содержащего задачу для обработки на устройстве, определяется по следующему соотношению: Position of the next descriptor address with number i, comprising a task for processing on the device is determined by the following relationship:

Address i =Base_Address+i*Size Address i = Base_Address + i * Size

Для постановки задач используется регистр TIB (Task Input Buffer) второго блока, где каждый бит регистра означает номер задачи (дескриптора) из буфера дескрипторов, подлежащей обработке (фиг. 2). For tasking used TIB register (Task Input Buffer) of the second block, wherein each bit of the register indicates the job number (tag) of the buffer descriptor to be processed (Fig. 2). Логическая единица в битах регистра соответствует появлению новой задачи. Logical unit in the bits of the register corresponds to the emergence of a new problem.

Завершенные задачи отображаются в регистре ТОВ (Task Output Buffer) второго блока, где каждый бит регистра означает номер выполненной задачи (дескриптора) из буфера дескрипторов. Completed tasks are displayed in register TOV (Task Output Buffer) of the second block, wherein each bit register indicates the number of executed tasks (descriptor) of buffer descriptors. Логическая единица в битах регистра соответствует завершению очередной задачи. The logical unit in the bit register corresponding to the completion next task. После считывания состояния регистра ТОВ с завершенными задачами первый блок получает указатели на обработанные дескрипторы. After reading the status register TOV with completed tasks of the first unit receives pointers to descriptors are processed. С учетом этого, второй блок затем автоматически обнуляет соответствующие биты регистра ТОВ. With this in mind, the second block is then automatically resets the corresponding bits TOV register.

Во втором блоке реализована функция генерации сигнала Interrupt, вызывающего выдачу из первого блока в общесистемную шину запроса на прерывание при появлении хотя бы одной завершенной задачи в регистре ТОВ. In the second block has a function of generating a signal Interrupt, causing the issuance of the first unit in a system-wide bus, the interrupt request with the appearance of at least one completed task register in the TOV.

В состав второго блока входят локальная память для хранения информационных массивов и регистры, управляющие работой блоков обработки, отображающие состояние блоков обработки и другие регистры, относящиеся к контролю и управлению узлов устройства, а также функционал по поиску свободных блоков обработки по определенному алгоритму и управлению очередью обработки. The composition of the second block includes a local memory for storing information files, and registers that control the processing units work state indication processing units and other registers related to monitoring and control device nodes as well as the functional surf free processing on a particular algorithm and processing queue management block .

Второй блок, получив сообщение с указателем на новую задачу от первого блока, формирует и выдает по локальной шине первому блоку запросы на чтение дескриптора и обрабатываемых данных из оперативной памяти вычислительной системы в локальную память устройства. The second block, receiving a message with a pointer to a new task from the first unit, generates and outputs the first on the local bus unit descriptor read requests and data to be processed from the main memory of a computer system in a local memory device.

Если состояние регистров второго блока указывает на наличие в устройстве хотя бы одного блока обработки, способного взять на себя выполнение задачи, то второй блок передает по локальной шине сообщение с номером дескриптора одному из свободных блоков. If the status registers of the second block indicates a unit in at least one processing unit capable of taking over the task, the latter unit transmits a message over the local bus to one of the descriptor number of free blocks. Затем второй блок отправляет по локальной шине в первый блок запрос на чтение дескриптора и соответствующих ему обрабатываемых данных из оперативной памяти вычислительной системы. Then, the second unit sends a local bus in the first block read request descriptor and its corresponding data to be processed from the main memory of a computer system. Данные, входящие в устройство по общесистемной шине, сохраняются в локальной памяти второго блока и частями передаются по локальной шине блоку обработки, выполняющему их обработку, по мере необходимости. Data included in the device according to the system-wide bus, are stored in the local storage unit and the second portions are transmitted over the local bus processing unit that performs processing them as required.

Блоки обработки, входящие в состав устройства, состоят из регистров для хранения информации о выполняемой задаче, буферов памяти типа FIFO для хранения частей обрабатываемых и обработанных информационных массивов, а также набор арифметико-логических элементов, выполняющих непосредственную обработку данных (фиг. 3). The processing units included in the device, are composed of registers for storing information about the task at hand, FIFO type memory buffers for storing parts processed and processed data arrays, and a set of arithmetic logic elements performing direct data processing (FIG. 3).

Выполнение задач в блоках обработки в зависимости от аппаратных возможностей каждого блока обработки может осуществляться в несколько параллельных потоков. Tasks in processing blocks depending on the hardware capabilities of each processing block can be performed in multiple parallel streams. При этом доступ каждого потока обработки к локальной шине осуществляется с равным приоритетом. In this case each processing stream access to the local bus is carried out with equal priority. Каждый поток блока обработки в любой момент времени может выполнять только одну задачу, причем второй блок сохраняет на своих регистрах запись о номере потока и соответствующем блоке обработки, где ведется обработка определенной задачи. Each stream processing unit at any given time can perform only one task, wherein the second device stores a record in its registers on the room flow and corresponding processing unit, where the processing is carried out a certain task.

Получив по локальной шине сообщение с задачей от второго блока, блок обработки начинает загрузку дескриптора и данных по локальной шине из второго блока и сохраняет их во входном буфере типа FIFO для определенного потока обработки. Receiving a message on the local bus to the task from the second unit, the processing unit starts the download descriptor and data on the local bus from the second unit, and stores them in the input buffer FIFO type for a particular processing flow. Структура дескриптора показана на фиг. descriptor structure shown in FIG. 4. 4.

При наличии хотя бы части данных в буфере типа FIFO в блоке обработки запускается обработка этих данных. If at least part of the data in the FIFO-type buffer in the processing unit starts processing the data. Обработанные данные передаются в выходной буфер типа FIFO блока обработки и выдаются по локальной шине второму блоку при накоплении массива заранее заданного размера. The processed data is transferred to the output buffer FIFO type processing unit and outputted on the local bus to a second block of stacked array of a predetermined size.

По завершении выполнения задачи, а именно обработки всего массива данных, размер которого указан в дескрипторе, либо при возникновении ошибок в процессе выполнения задачи, блок обработки отправляет по локальной шине второму блоку номер обработанного дескриптора. Upon completion of the task, namely processing the entire data array whose size is indicated in the descriptor, or when an error occurs during the execution of tasks, the processing unit sends the local bus to the second block processed descriptor number.

Второй блок, получив по локальной шине от блоков обработки в своей локальной памяти полный массив обработанных данных, выдает по локальной шине первому блоку этот массив данных для его сохранения в оперативной памяти вычислительной системы, а также дескриптор для записи в буфер дескрипторов, содержащий информацию об обработанных данных, переданных вычислительной системе. The second block is received on the local bus of the processing units within its local memory full array of processed data outputs on a local bus to the first block of the data array to save it in the main memory of a computer system, as well as a descriptor for recording a descriptor buffer containing information about processed data transmitted by the computer system.

Claims (2)

  1. 1. Устройство параллельной обработки цифровой информации в вычислительной системе, содержащее 1. Apparatus parallel processing of digital information in a computer system, comprising:
    по крайней мере, один процессор; at least one processor;
    оперативную память; RAM;
    общесистемную шину, связывающую процессор, оперативную память и устройство; system-wide bus connecting the processor, memory and a device;
    прикладное ПО, обеспечивающее application software, providing
    настройку и управление устройством; setting and control of the device;
    формирование и размещение в оперативной памяти дескрипторов, содержащих formation and placement in memory descriptor containing
    информацию о расположении обрабатываемых данных в оперативной памяти системы; information on the location of the processed data in the system memory;
    информацию об алгоритме обработки данных; information about the data processing algorithm;
    формирование и передачу устройству указателей на дескрипторы в соответствии с порядком поступления данных в систему; generating and transmitting apparatus of pointers to the descriptors in accordance with the order of arrival of the data in the system;
    прием и обработку запроса на прерывание, полученного по общесистемной шине от устройства; receiving and processing an interrupt request received by the system-wide bus from the device;
    причем устройство содержит the apparatus comprising:
    локальную шину; a local bus;
    первый блок, обеспечивающий a first unit providing
    прием данных из общесистемной шины и их передачу по локальной шине; receiving data from a system-wide bus and transfer on the local bus;
    передачу по общесистемной шине данных, полученных из локальной шины; transmission of system-wide data bus, derived from the local bus;
    формирование и выдачу в общесистемную шину запроса на прерывание; forming and delivery system-wide bus interrupt request;
    второй блок, обеспечивающий a second unit providing
    обмен данными по локальной шине с первым блоком; data exchange on the local bus to the first unit;
    хранение данных в локальной памяти; storing data in the local memory;
    обмен данными по локальной шине с блоками обработки; data exchange on the local bus to the processing units;
    управление блоками обработки; control processing units;
    поиск свободных блоков обработки; search for available processing units;
    управление очередью обработки; processing queue management;
    передачу первому блоку сигнала для формирования запроса на прерывание; transmitting the first block signal for generating an interrupt request;
    совокупность блоков обработки, каждый из которых обеспечивает plurality of processing units, each of which provides
    прием и передачу по локальной шине указателей, дескрипторов и данных для обработки из второго блока; reception and transmission on the local bus pointers, and descriptors for processing data from the second block;
    обработку данных в соответствии с заданным в дескрипторе алгоритмом; processing data in accordance with a predetermined algorithm in the descriptor;
    передачу по локальной шине второму блоку указателей и обработанных данных; transmission on the local bus and the second block pointers processed data;
    причем and
    первый блок связан с вычислительной системой по общесистемной шине, a first block associated with a computer system on a system-wide bus,
    второй блок и совокупность блоков обработки связаны с первым блоком по локальной шине. a second block and a plurality of processing units connected to the first unit on the local bus.
  2. 2. Способ параллельной обработки цифровой информации, заключающийся в том, что 2. The method of parallel processing of digital information, which consists in the fact that
    принимают в первом блоке указатель, дескриптор и данные для обработки из общесистемной шины; receiving the first block pointer descriptor and data for processing from a system-wide bus;
    передают принятые указатель и дескриптор во второй блок по локальной шине; transmitting the received pointer and descriptor in the second block on the local bus;
    проводят поиск во втором блоке свободного блока обработки; search performed in the second block free of the processing unit;
    передают выбранному свободному блоку обработки указатель, дескриптор и данные для обработки; transmitting the selected free block pointer processing descriptor and the data to be processed;
    выполняют обработку данных в выбранном блоке обработки по алгоритму, заданному в дескрипторе; data processing is performed on the selected algorithm, the processing unit specified in the descriptor;
    передают обработанные данные из блока обработки во второй блок по локальной шине; transmitting the processed data from the processing unit to the second unit over a local bus;
    модифицируют указатель во втором блоке; modifying the pointer in the second block;
    формируют во втором блоке сигнал для формирования запроса на прерывание; formed in the second block signal for generating an interrupt request;
    передают модифицированный указатель и сигнал для формирования запроса на прерывание из второго блока в первый блок; and transmitting the modified signpost signal for generating an interrupt request from the second unit to the first unit;
    получают в первом блоке сигнал запроса на прерывание, модифицированный указатель и обработанные данные от второго блока; receive a request signal in the first block to interrupt the modified pointer, and the processed data from the second block;
    формируют в первом блоке запрос на прерывание; forming a first unit IRQ;
    передают из первого блока в процессор запрос на прерывание, модифицированный указатель и обработанные данные по общесистемной шине. transmitted from the first unit to the processor interrupt request, and the processed modified pointer data on a system-wide bus.
RU2014146704A 2014-11-21 2014-11-21 Method and apparatus for parallel processing of digital information in computer system RU2571376C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2014146704A RU2571376C1 (en) 2014-11-21 2014-11-21 Method and apparatus for parallel processing of digital information in computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014146704A RU2571376C1 (en) 2014-11-21 2014-11-21 Method and apparatus for parallel processing of digital information in computer system

Publications (1)

Publication Number Publication Date
RU2571376C1 true RU2571376C1 (en) 2015-12-20

Family

ID=54871339

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014146704A RU2571376C1 (en) 2014-11-21 2014-11-21 Method and apparatus for parallel processing of digital information in computer system

Country Status (1)

Country Link
RU (1) RU2571376C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2631967C1 (en) * 2016-08-29 2017-09-29 федеральное государственное бюджетное образовательное учреждение высшего образования "Пермский национальный исследовательский политехнический университет" System of interactive learning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2042193C1 (en) * 1991-10-08 1995-08-20 Институт кибернетики им.В.М.Глушкова АН Украины Computing system
US7769980B2 (en) * 2006-08-21 2010-08-03 Renesas Technology Corp. Parallel operation device allowing efficient parallel operational processing
US7853775B2 (en) * 2006-08-23 2010-12-14 Nec Corporation Processing elements grouped in MIMD sets each operating in SIMD mode by controlling memory portion as instruction cache and GPR portion as tag

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2042193C1 (en) * 1991-10-08 1995-08-20 Институт кибернетики им.В.М.Глушкова АН Украины Computing system
US7769980B2 (en) * 2006-08-21 2010-08-03 Renesas Technology Corp. Parallel operation device allowing efficient parallel operational processing
US7853775B2 (en) * 2006-08-23 2010-12-14 Nec Corporation Processing elements grouped in MIMD sets each operating in SIMD mode by controlling memory portion as instruction cache and GPR portion as tag

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2631967C1 (en) * 2016-08-29 2017-09-29 федеральное государственное бюджетное образовательное учреждение высшего образования "Пермский национальный исследовательский политехнический университет" System of interactive learning

Similar Documents

Publication Publication Date Title
US6272621B1 (en) Synchronization and control system for an arrayed processing engine
US5517662A (en) Multiprocessor system with distributed memory
US6978459B1 (en) System and method for processing overlapping tasks in a programmable network processor environment
US6681341B1 (en) Processor isolation method for integrated multi-processor systems
US7552312B2 (en) Identifying messaging completion in a parallel computer by checking for change in message received and transmitted count at each node
US6842443B2 (en) Network switch using network processor and methods
US6460120B1 (en) Network processor, memory organization and methods
US6195739B1 (en) Method and apparatus for passing data among processor complex stages of a pipelined processing engine
De Dinechin et al. Time-critical computing on a single-chip massively parallel processor
US7076545B2 (en) Load balancing the servicing of received packets
US5434976A (en) Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers
US6330584B1 (en) Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US6307789B1 (en) Scratchpad memory
US20080273543A1 (en) Signaling Completion of a Message Transfer from an Origin Compute Node to a Target Compute Node
US20080209084A1 (en) Hardware-Based Concurrent Direct Memory Access (DMA) Engines On Serial Rapid Input/Output SRIO Interface
US20090037707A1 (en) Determining When a Set of Compute Nodes Participating in a Barrier Operation on a Parallel Computer are Ready to Exit the Barrier Operation
US6003060A (en) Method and apparatus to share resources while processing multiple priority data flows
US20040057380A1 (en) Controlling flow of data between data processing systems via a memory
US20040025159A1 (en) Hardware task manager
US20050044327A1 (en) Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture
US20080281998A1 (en) Direct Memory Access Transfer Completion Notification
Miranda et al. Appia, a flexible protocol kernel supporting multiple coordinated channels
US7353516B2 (en) Data flow control for adaptive integrated circuitry
US8020168B2 (en) Dynamic virtual software pipelining on a network on chip
US20090022156A1 (en) Pacing a Data Transfer Operation Between Compute Nodes on a Parallel Computer