EP3782036A1 - Mimd processor emulated on simd architecture - Google Patents
Mimd processor emulated on simd architectureInfo
- Publication number
- EP3782036A1 EP3782036A1 EP19742845.1A EP19742845A EP3782036A1 EP 3782036 A1 EP3782036 A1 EP 3782036A1 EP 19742845 A EP19742845 A EP 19742845A EP 3782036 A1 EP3782036 A1 EP 3782036A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- elementary
- processor
- instruction
- elementary processor
- instructions
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 239000000872 buffer Substances 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 14
- 238000000034 method Methods 0.000 claims description 10
- 230000003287 optical effect Effects 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 description 7
- 238000001914 filtration Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 210000001525 retina Anatomy 0.000 description 3
- 239000000284 extract Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Definitions
- the present invention generally relates to the field of Multiple Instruction Multiple Data (MIMD) processors, in particular for performing image processing in a vision system such as an intelligent retina.
- MIMD Multiple Instruction Multiple Data
- Intelligent retinas are integrated circuits combining a matrix of sensors and a processor consisting of a matrix of elementary processors, the elementary processors, also called PEs (Processing Elements) performing processing on the signals provided by these sensors.
- the elementary processors also called PEs (Processing Elements) performing processing on the signals provided by these sensors.
- PEs Processed Elements
- an elementary processor is in charge of processing the signals from one or more pixels.
- the processor can perform elementary image processing (spatial filtering for example) or even more complex operations, such as POIs or object detection.
- the processor architecture is of the SIMD (Single Instruction Multiple Data) type, ie the same instruction is performed in parallel by all the elementary processors which each process a different datum because connected to different pixels.
- Each elementary processor has its own arithmetic and logical unit (ALU), registers and, if applicable, a local memory and receives the same instruction as all other elementary processors.
- ALU arithmetic and logical unit
- SIMD architecture This type of architecture is suitable for massively parallel computations but is not optimal when different processes must be executed on different parts. of the image.
- the nature of the SIMD architecture requires that these separate processes be performed sequentially, which penalizes the execution time.
- SIMD processor architecture whose elementary processors operate in parallel on the respective columns of the sensor array.
- This architecture has been described in the article by T. Yamazaki et al. entitled “A 1 ms high-speed vision chip with 3D-stacked 1 column 140 Gops column-parallel PEs for spatial-temporal image processing” published in ISCCC 2017 Conf. Proc., Session 4, Imagers 4.9, pages 82-84.
- This architecture allows a certain flexibility in that it is possible to choose independently and simultaneously one of four processing on different vertical regions of the image.
- the object of the present invention is therefore to provide a processor architecture that is simple and allows to perform in a flexible manner separate parallel processing, in particular on different areas of any configuration of an image captured by a sensor array.
- the present invention is defined by a SIMD architecture processor comprising a matrix of elementary processors, each elementary processor being associated with a memory cell intended to store data to be processed by said elementary processor, the processor further comprising a central controller, the processors elementaries being connected to the central controller by a first bus, said instruction bus, allowing the central controller to transmit instructions in parallel to the elementary processors, and by a second bus, called status bus, allowing the central controller to receive the statuses.
- a SIMD architecture processor comprising a matrix of elementary processors, each elementary processor being associated with a memory cell intended to store data to be processed by said elementary processor, the processor further comprising a central controller, the processors elementaries being connected to the central controller by a first bus, said instruction bus, allowing the central controller to transmit instructions in parallel to the elementary processors, and by a second bus, called status bus, allowing the central controller to receive the statuses.
- different elementary processors said processor being advantageous in that:
- the central controller comprises a memory in which the tasks to be performed by the various elementary processors are stored in the form of a sequence of instructions, the central controller looping the sequence of instructions on the instruction bus, each instruction comprising a calculation flow identifier, a computational flow being defined as an ordered list of tasks, each calculation flow relating to one or more elementary processor (s);
- each elementary processor comprises an instruction filter and an identifier table, the instruction filter being adapted to extract the calculation flow identifier of each instruction received by the elementary processor and to determine if the identifier is present; in said table, the instruction being stored in a FIFO buffer to be executed by the elementary processor in the affirmative and rejected by the elementary processor in the negative.
- the FIFO buffer is typically popped at each instruction executed by said elementary processor.
- each instruction of a task comprises a sequence number indicating its order of execution in the task
- the instruction filter of the elementary processor comprising a counter incremented each time the FIFO buffer is pared, an instruction n ' being stored in the FIFO buffer only if its stream identifier is present in the table of the elementary processor and if its sequence number is equal to the output value of said counter.
- the transmission frequency of the instructions on the instruction bus may notably be substantially greater than the frequency of execution of these instructions by the elementary processors.
- Each instruction advantageously comprises an instruction pointer and the elementary processor comprises a micro-sequencer connected to a storage memory of a microcode library, the micro-sequencer sequencing micro-instructions of the microcode pointed by said instruction pointer.
- each elementary processor can be connected to its neighbors by means of communication links, a communication link between a first elementary processor and a second elementary processor connecting a first transmission register of the first elementary processor to a second reception register. of the second elementary processor and a second transmission register of the second elementary processor to a reception register of the first elementary processor. The execution of the micro-instructions by the first elementary processor is then stopped as long as the first transmission register is not empty.
- the execution of the micro-instructions by the second elementary processor is stopped as long as the second reception register is not full.
- the first elementary processor having completed the execution of a task informs the central controller by a notification of its status and the second elementary processor is informed of this status by the central controller.
- the present invention also relates to an intelligent optical sensor characterized in that it comprises a matrix of elementary sensors and a SIMD architecture processor according to one of the preceding claims, each elementary processor being associated with a plurality of sensors of said matrix and being adapted to process the signals from these sensors.
- Each elementary processor may itself have a SIMD architecture.
- Fig. 1 schematically represents the general architecture of a SIMD processor according to one embodiment of the invention
- FIG. 2 schematically represents the architecture of an elementary processor of the processor of FIG. 1;
- FIG. 3 schematically shows a mode of synchronization between two elementary processors of the processor of FIG. 1;
- Fig. 4 schematically represents a task delegation between two elementary processors of the processor of FIG. 1. DETAILED PRESENTATION OF PARTICULAR EMBODIMENTS
- SIMD processor As defined in the introductory part. Recall that such a processor consists of a matrix of elementary processors (PEs) sharing the same instruction bus and intended to run in parallel the same instruction during the same time interval. In a particular mode of use, this processor is integrated with a matrix of sensors (photodiodes for example) within an intelligent optical sensor (intelligent retina). More precisely, in this case, each elementary processor is associated with a sub-matrix of the sensor array, the signals of the various sensors of the sub-array being stored in a storage sub-array, also called macropixel. The structure of such a storage sub-matrix has been described in application FR-A-2984556. The elementary processors themselves advantageously have a SIMD architecture (each elementary processor then comprising a plurality of calculation units operating in parallel ) and can therefore process in parallel several data stored in the storage sub-array.
- SIMD architecture each elementary processor then comprising a plurality of calculation units operating in parallel
- MIMD multiple instructions multiple data processor
- Fig. 1 schematically shows the architecture of a SIMD architecture processor according to one embodiment of the invention.
- This processor comprises a matrix 120 of elementary processors 150 (PE), each elementary processor can access a memory cell with which it is associated. More precisely, the memory 125 is divided into memory cells 155 (CE) containing the data to be processed by the elementary processor.
- the memory cell has for example the structure of the aforementioned storage sub-matrix and each elementary processor processes the data of the corresponding macropixel.
- the elementary processors are connected in parallel to a central controller 110 by means of a first common bus, called the instruction bus. Thus, when an instruction is transmitted by the controller, each of the elementary processors receives it and can execute it in parallel.
- the elementary processors are also connected to the central controller via a second common bus, called status bus, on which they can transmit their respective statuses.
- status we mean here for example the state of a task (in particular the end of a task), the occurrence of an error in the execution of a task (division by zero, overflow) or a software interruption.
- the statuses of the various elementary processors are grouped together in a status table 130.
- the central controller knows at any time the completion status of the tasks performed by the various elementary processors and can transmit instructions accordingly.
- the central controller also comprises a memory 140 in which is stored the program to be executed by the processor, said program consisting of a task sequence task 0 Jask l , ... Jask N , each task being itself composed of a series of instructions.
- the instructions of the task or sequence of tasks are looped over the instruction bus.
- a computational flow is defined as an ordered sub-sequence of tasks in the task sequence task 0 , task ⁇ ..., task N.
- a calculation stream may concern a subset of all the elementary processors, or even in some cases all the elementary processors.
- An instruction includes a header followed by a calculation flow identifier and, if applicable, the order index of the instruction in the task, and then a number of words defining the instruction to be performed. and, where appropriate, arguments of this instruction.
- the instruction may be coded in compressed form, for example in the form of an instruction index pointing in an instruction library.
- an example of such an instruction may be the convolution with a kernel for filtering the pixels of the macropixel, the kernel being provided as argument of the instruction.
- the instruction can be directly executable by the elementary processor without needing to be decoded. The two types of instructions mentioned above can generally coexist.
- Fig. 2 schematically shows the architecture of an elementary processor of FIG. 1.
- Each instruction is read on the bus by the elementary processor 200.
- the header of the instruction is analyzed by a filtering module 210. This detects the beginning of the instruction by means of the header, retrieves the calculation stream identifier and determines whether or not the compute flow is relevant to it. To do this, it compares the identifier received with the identifier stored in a current stream register 220. This register contains the identifier of the current stream to be executed by the elementary processor, ie tasks of this calculation stream that this elementary processor must perform. The contents of the register 220 are loaded at the time of the initialization phase of the processor or by a specific microcode.
- the instruction may be coded in compressed form, for example in the form of an instruction index pointing in an instruction library.
- the instruction pointer is stored in a FIFO buffer, 230. In the case where the FIFO buffer is full, the instruction in question is not recorded.
- the instruction pointer may, however, be stored during a subsequent iteration of the instruction loop if a place has been released meanwhile at the input of the buffer.
- the sequence can be resumed from any instruction, in particular because the different instructions of the sequence can be executed independently.
- the elementary processor ensure that the FIFO buffer is empty enough to record a complete sequence that can then be started again.
- the FIFO buffer can be purged when a sequence has been interrupted or an overflow has occurred.
- each instruction has an additional field indicating the sequence number of the instruction in the task.
- the filtering module 210 comprises a counter incremented each time an instruction is stored in the FIFO buffer and is reset at the end of the task. This value is used for filtering instructions and ensures that they are entered in sequence in the FIFO. Thus only the next instruction in the task, whose sequence number is equal to the output of the counter and whose stream identifier corresponds to the one stored in the register 220, can be stored in the FIFO buffer.
- the frequency of transmission of the instructions by the central controller is substantially higher than the instruction processing frequency by the elementary processors, which makes it possible to transmit different instruction streams to the different elementary processors without forcing them to put on hold an instruction.
- An advantageous solution is to interleave the instructions of the different calculation flows, allowing a regular supply of instructions for the different streams.
- a sequence of instructions constituting a task is carried out more quickly than the others, it can be advantageously repeated several times in a repetitive cycle of tasks.
- Those skilled in the art can define an order of the instructions of the different tasks and the number of repetitions of these tasks for optimal operation of the elementary processor, that is to say to avoid too many times when the FIFO buffer is empty (so the elementary processor is waiting for instruction) or saturated.
- the instruction pointer When an instruction is taken into account to be executed by the elementary processor, the instruction pointer is unstacked from the FIFO buffer and supplied to the Finite State Machine (FSM) 240.
- FSM Finite State Machine
- This microcode library is loaded during the initialization (or during a specific phase of operation - reconfiguration of the system - by the central controller 110 ).
- the micro-instructions contained in the microcode are sequentially transferred one by one into the microinstruction register 260.
- the arithmetic and logic unit (ALU) 280 receives these microinstructions sequenced by the state machine 240, the arguments, as well as the data covered by the instruction. The data will have been previously read in the memory cell associated with the elementary processor and stored in the data register 270.
- program to be executed by the processor may comprise different tasks to be executed in parallel by the different elementary processors, which makes it possible to emulate an MIMD architecture.
- elementary processors associated with macropixels in the center of the image will be able to search Points of Interest (POIs) while elementary processors associated with macropixels at the periphery of the image will be able to perform motion detection.
- the instructions for these two tasks are transmitted at high frequency and looped (repetitively) on the instruction bus, the central processors in the central area selecting the instruction flow for the first task (POI search). and those in the peripheral zone selecting the instruction flow for the second task. It will be noted that it is not necessary for the instruction streams of the first task and the second task to be successive.
- the instructions for these two tasks can be intertwined, for example.
- the iteration mechanism of the instruction loop on the one hand and the filtering of the instructions on the level of the elementary processors makes it possible to differentiate the processes performed by the latter.
- the different tasks are executed asynchronously by the various elementary processors. This also makes it possible to have different processing frequencies for the elementary processors and thus optimize the consumption according to the tasks to be performed.
- two processors Elementals loaded with the same task may terminate it at different times because of the respective occupancy states of their FIFO buffers.
- an elementary processor When an elementary processor has completed the execution of a flow of instructions, it informs the central controller via the status bus.
- the asynchronous character of the execution of the tasks can be exploited to distribute the computing load between the elementary processors.
- Fig. 3 schematically shows a synchronization mode between two neighboring elementary processors.
- neighboring processors can exchange data by means of duplex communication links, each communication link implementing two registers, namely a transmission register and a reception register.
- four communication links are provided by elementary processor, connecting it to its four neighbors (in the North, South, East, West directions).
- eight communication links can be provided linking it to its eight neighbors (the neighbors in the previous sense and those in the diagonal directions).
- the duplex communication link 350 connects, on the one hand, a first transmission register 311 of the first elementary processor to a second reception register 322 of the second elementary processor and, on the other hand, a second transmission register 321 of the second second elementary processor at a first receive register 312 of the first elementary processor.
- a send microcode of the elementary processor makes it possible to transmit data to a neighboring elementary processor via a communication link.
- a receive microcode can receive data from a neighboring elementary processor via this same link.
- send and receive microcode are possible depending on whether the transfers in the communication registers block the sequence of microinstructions in the elementary processor or not.
- each communication register includes a status bit that indicates whether the register in question is empty or full.
- the execution of the send microcode transfers data from the ALU to a transmission register of the elementary processor to be transmitted on the corresponding communication link.
- the send microcode is blocking, in which case it stops the execution of the microinstruction sequence as long as the transmission register is not empty, or it is non-blocking, in which case the microcode simply writes. the data in the transmission register and sets the register status bit to "full" without affecting the execution of the microinstruction sequence.
- the latter executes the microcode receive, which can in turn be blocking or non-blocking. If it is blocking, the receiving elementary processor waits for the transmit element status register bit of the sending elementary processor to be "full". When this condition is fulfilled, the data contained in the transmission register of the transmitting elementary processor is stored in the reception register of the receiving elementary processor. The receive microcode then sets the status bit of the transmit register (of the sending elementary processor) to the value "empty” and the status bit of the receive register (of the receiving elementary processor) to the value "full". An additional read microcode can then read the data from the receive register and supply it as input to the ALU (receiver elementary processor). After reading the receive register, the read microcode sets the status bit of the receive register to the value "empty".
- ALU receiveriver elementary processor
- the synchronization between elementary processors for sending and receiving data can also be performed via the central controller which then explicitly orders the data exchanges in synchronous mode.
- Fig. 4 represents a task delegation between two elementary processors under the supervision of the central controller.
- an elementary processor 430 When an elementary processor 430 has completed its task and has signaled it to the central controller on the status bus, it becomes available to perform a new process. A neighbor elementary processor 420 can then delegate part of its task while it is running. The elementary processor 420 is informed of the availability of the elementary processor 430 by the central controller which maintains the status table. The central controller can then indicate the task to be performed by means of a new code to be loaded in the register 220) and trigger in 425 a transfer of data via the communication link that connects them.
- This indication may also take the form of a start address and an end address in the compute flow.
- the elementary processor 430 determines by means of its selection module the instructions that are intended for the elementary processor 420 and whose addresses are between said start and end addresses of the delegated task.
- the elementary processor 430 informs the central controller that updates its status table.
- the elementary processor 420 is thus informed of the end of the delegated task and triggers at 435 the transfer of data to receive them in its register (or its buffer) reception.
- the task delegation may for example concern a part of the data of the macro-pixel and / or a particular operation.
- the elementary processor 430 may be loaded with a point of interest search on behalf of the elementary processor 420 once it has completed its task of motion detection.
- the task delegation process can be repeated over time until the end of the program.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
- Multi Processors (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1855012A FR3082331B1 (en) | 2018-06-08 | 2018-06-08 | MIMD PROCESSOR EMULATED ON SIMD ARCHITECTURE |
PCT/FR2019/051352 WO2019234359A1 (en) | 2018-06-08 | 2019-06-06 | Mimd processor emulated on simd architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3782036A1 true EP3782036A1 (en) | 2021-02-24 |
Family
ID=63637999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19742845.1A Pending EP3782036A1 (en) | 2018-06-08 | 2019-06-06 | Mimd processor emulated on simd architecture |
Country Status (4)
Country | Link |
---|---|
US (1) | US11182170B2 (en) |
EP (1) | EP3782036A1 (en) |
FR (1) | FR3082331B1 (en) |
WO (1) | WO2019234359A1 (en) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4435758A (en) * | 1980-03-10 | 1984-03-06 | International Business Machines Corporation | Method for conditional branch execution in SIMD vector processors |
GB2211638A (en) * | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
US5765011A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
US9830156B2 (en) * | 2011-08-12 | 2017-11-28 | Nvidia Corporation | Temporal SIMT execution optimization through elimination of redundant operations |
FR2984556B1 (en) | 2011-12-20 | 2014-09-26 | Commissariat Energie Atomique | SYSTEM AND METHOD FOR COMMUNICATION BETWEEN ACQUISITION CIRCUIT AND DATA PROCESSING CIRCUIT |
US9229721B2 (en) * | 2012-09-10 | 2016-01-05 | Qualcomm Incorporated | Executing subroutines in a multi-threaded processing system |
-
2018
- 2018-06-08 FR FR1855012A patent/FR3082331B1/en active Active
-
2019
- 2019-06-06 WO PCT/FR2019/051352 patent/WO2019234359A1/en unknown
- 2019-06-06 US US15/734,729 patent/US11182170B2/en active Active
- 2019-06-06 EP EP19742845.1A patent/EP3782036A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2019234359A1 (en) | 2019-12-12 |
FR3082331A1 (en) | 2019-12-13 |
US20210240482A1 (en) | 2021-08-05 |
US11182170B2 (en) | 2021-11-23 |
FR3082331B1 (en) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0020202B1 (en) | Multiprocessing system for signal treatment | |
WO2010037570A1 (en) | Device for the parallel processing of a data stream | |
FR2752466A1 (en) | INTEGRATED PROCESSOR DEVICE FOR DIGITAL SIGNALS | |
FR2587521A1 (en) | SIGNAL PROCESSING APPARATUS FOR CARRYING OUT MULTIPLE RESOLUTION OPERATIONS IN REAL TIME | |
JPS635775B2 (en) | ||
FR3091375A1 (en) | LOADING-STORAGE INSTRUCTION | |
EP1805611A1 (en) | Task processing scheduling method and device for implementing same | |
CN112799726B (en) | Data processing device, method and related product | |
FR3091389A1 (en) | REGISTER BENCHES IN A MULTIPLE PERFORMANCE WIRE PROCESSOR | |
EP1860571B1 (en) | DMA controller, system on a chip comprising such a DMA controller, data exchange method using such a DMA controller | |
FR2583904A1 (en) | MULTIPLE DATA TRAIN AND SINGLE INSTRUCTION (SIMD) TYPE COMPUTER SYSTEM WITH SELECTIVE DATA PROCESSING | |
EP4020475A1 (en) | Memory module suitable for performing computing functions | |
CA2348069A1 (en) | Multi-resource architecture management system and method | |
CN114330686A (en) | Configurable convolution processing device and convolution calculation method | |
WO2019234359A1 (en) | Mimd processor emulated on simd architecture | |
US11276132B2 (en) | Data processing method and sensor device for performing the same | |
EP2553655B1 (en) | Data stream processing architecture enabling extension of neighborhood mask | |
FR2475763A1 (en) | DIGITAL PROCESSOR WITH PIPELINE STRUCTURE | |
WO2016071330A1 (en) | Coarse-grain reconfigurable architecture method and device for executing an application code in its entirety | |
EP0333537A1 (en) | Digital signal-processing device | |
EP0109337A2 (en) | Data processing device with a multi-microcomputer for image processing | |
EP0346420B1 (en) | Process for exchanging information in a multiprocessor system | |
WO2009068419A1 (en) | Circuit comprising a microprogrammed machine for processing the inputs or the outputs of a processor so as to enable them to enter or leave the circuit according to any communication protocol | |
FR2484668A1 (en) | METHOD AND APPARATUS FOR TRANSFERRING EXTERNAL INPUT AND OUTPUT DATA TO A MICROPROCESSOR SYSTEM | |
EP4206938A1 (en) | Direct data transfer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20201119 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20220519 |