WO2012089579A1 - Method and device for processing data elements having minimal latency - Google Patents

Method and device for processing data elements having minimal latency Download PDF

Info

Publication number
WO2012089579A1
WO2012089579A1 PCT/EP2011/073556 EP2011073556W WO2012089579A1 WO 2012089579 A1 WO2012089579 A1 WO 2012089579A1 EP 2011073556 W EP2011073556 W EP 2011073556W WO 2012089579 A1 WO2012089579 A1 WO 2012089579A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
data processing
processing device
task
tasks
Prior art date
Application number
PCT/EP2011/073556
Other languages
German (de)
French (fr)
Other versions
WO2012089579A9 (en
Inventor
Tobias SCHÜLE
Original Assignee
Siemens Aktiengesellschaft
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
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Publication of WO2012089579A1 publication Critical patent/WO2012089579A1/en
Publication of WO2012089579A9 publication Critical patent/WO2012089579A9/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Definitions

  • the invention relates to a method and a device for data processing of data elements with minimal latency.
  • Data processing devices increasingly consist of several data processing units or processor cores operating in parallel.
  • the calculations to be carried out on them are broken down as far as possible into independent parts, so that these parts can be processed in parallel.
  • assembly line principle For many applications, in particular in the field of digital signal processing, therefore, the data processing takes place according to the so-called assembly line principle.
  • a sequence or sequence of calculations is decomposed in such a way that different elements of a data stream can be processed in parallel in substeps. This is also called "pipelining".
  • Pipelining is increasingly being used in software development. While the allocation of pipeline stages to the resources or functional units is fixed in hardware development, the problem of optimally optimal mapping of the calculation stages to the various processor cores or data processing units of the multicore processor can arise during software development. For systems that are subject to real-time requirements, it must also be ensured that the result of a calculation is available in good time. Therefore, in a parallel execution of a pipeline, it is not just about increasing data throughput, but also also to minimize or limit the latency for the data processing of a single data element of a received data stream. Another problem is that the execution times of the pipeline stages typically vary widely. This can lead to unwanted effects or congestion, which increases the latency considerably.
  • the invention provides a data processing device for data processing of data elements of a serial data stream
  • the assignment of the sub-steps of a calculation to be carried out to the data processing units or processor cores can take place at runtime.
  • the data processing device according to the invention is particularly suitable for applications with real-time requirements, in particular for processing audio, video or sensor data.
  • the data processing device has at least one data interface for receiving the serial data stream.
  • the received data elements of the data stream receive a generated time stamp when they are received to identify their position within the data stream.
  • receive the received data elements of the data stream when they receive a generated data element number to identify their position within the data stream.
  • a task with the highest execution priority is automatically transferred from another local priority queue to the empty priority queue.
  • a task generates at least one successor task after execution by a data processing unit and transfers this data to the task scheduler.
  • the execution priority is derived from the reception order of the received data element within the data stream, wherein tasks for processing previously received data elements receive a higher execution priority.
  • the data processing units are processors which execute the task according to their respective execution priority.
  • the data elements are received in a serial data stream and are processed in parallel by tasks in parallel in multiple stages according to the assembly line principle by a plurality of data processing units having access to a priority queue,
  • a prioritized execution of the tasks takes place in dependence on the execution priorities of the tasks specified in the priority queue, which in each case is derived from the position of the data element to be processed by the task within the received data stream.
  • a diagram for explaining a multi-stage pipeline data processing according to the prior art a block diagram illustrating an embodiment of the data processing device according to the invention; a diagram for explaining a possible data structure of a priority queue used in the inventive apparatus and the method according to the invention; a flow diagram illustrating an embodiment of the inventive method for processing data elements with low maximum latency; a diagram illustrating a multi-level pipeline data processing by various tasks to explain the operation of the method according to the invention; an example for the execution of a data processing pipeline in a system with two data processing units, in which the execution is carried out in a conventional manner; a diagram illustrating a prioritized execution of a data processing pipeline in a system with two data processing units when using the method according to the invention for processing data elements with low maximum latency; Fig.
  • the data processing device includes a plurality of data processing units 2-1, 2-2, ... 2-N. These data processing units 2-i are, for example, processor cores. In the embodiment shown in FIG. 2, each data processing unit or each processor core 2-i has its own local priority queue 3-i. In the illustrated embodiment, the data processing device or the multicore processor 1 according to the invention comprises N data processing units 2-i or processors.
  • the data processing device 1 further includes in the illustrated embodiment a task scheduler 4 which inserts a task into the associated priority queue.
  • the data processing device 1 has at least one data interface for receiving a serial data stream DS.
  • the data processing device 1 has a unit for identifying the position of a received data element within the received data stream DS.
  • the received data elements of the data stream DS are provided with a generated time stamp when they are received, which indicates the time of their reception by the data processing unit 1.
  • the received data elements contain a generated data element number when they are received in order to identify their position within the data stream DS.
  • the data elements can be any data elements, for example also data packets.
  • this additionally contains a calculation unit which calculates the execution priority AP of a task T as a function of the position of the data element to be processed by the task T within the data stream DS by means of a prioritization function PF.
  • the prioritization function PF can be configured in one possible embodiment.
  • the priority queue contains the tasks T to be sequentially executed by the data processing unit 2-i and their respective execution priorities AP.
  • FIG. 3 shows, by way of example, a data structure of a priority queue, as can be used in the data processing device 1 according to the invention.
  • the priority queue contains the tasks ⁇ to be executed sequentially by the respective data processing unit 2-i and their respective execution priorities APi.
  • the priority queue contains furthermore, for the task T to be executed, connect an address pointer P + to a data memory address of a data memory at which the data of the respective data element to be processed by the task T are stored. If the data element is, for example, a video image to be processed, the address pointer or pointer P indicates the memory address at which the data element or video image to be processed by the task T is located.
  • a task T having the highest execution priority is automatically transferred from another local priority queue to the empty priority queue.
  • the assignment of the tasks T takes place in the multicore system or the multicore system shown in FIG. Data processing device 1 with the aid of the task scheduler 4, which distributes executable tasks T to the priority queues.
  • the order of execution of the tasks T does not depend on the time of arrival of the tasks, but on their execution priority AP.
  • a priority queue is empty, the data item with the highest execution priority is stolen from another priority queue to some extent. This is also called "work stealing".
  • FIG. 4 shows a flowchart for illustrating an embodiment of the method according to the invention for processing data elements with a low maximum latency.
  • the process illustrated in FIG. 4 is a pipelining process.
  • step S1 the respective data processing unit 2-i checks whether the associated priority queue is empty. If so, in step S2 a task T is transferred from another priority queue to its own priority queue, preferably that one Task T with the highest execution priority AP is transferred. Conversely, if it is determined that the own priority queue is not empty, the data processing unit 2-i extracts the task T having the highest execution priority AP from its own priority queue in step S3.
  • step S5 at least one successor task is generated or generated and transferred to the task scheduler 4.
  • an entry for a priority waiting queue PWS is also generated for the generated successor task.
  • step S6 the task scheduler 4 outputs the generated PWS entry of the successor task to the priority queue, and the process returns to step S1.
  • a first task ⁇ _ 2 consist in that a video image I is read from an image data memory.
  • the video image is then filtered by a task i_i.
  • the next task ⁇ a display of the filtered video image on a screen.
  • Fig. 6 shows an example of a conventional execution of tasks with a processing pipeline in a system with two processor cores or data processing units.
  • the data processing pipeline consists in the illustrated example of three stages X, Y, Z, as shown in Fig. 5.
  • the first stage X requires two time units for execution, the second stage Y three time units, and the third stage Z only one time unit.
  • the data elements of a data stream may be processed out of order, but must be brought back into the original order by the last stage Z, so that the semantics of the program is preserved. This means that, for example, Z 3 may not be performed before Z 2 .
  • Z 3 may not be performed before Z 2 .
  • the latency for the processing of the second data element in the illustrated example is 11 time units, for the third data element 10 time units and for the fourth data element 9 time units.
  • the maximum latency is thus for the period under consideration in the illustrated example 11 time units, namely the latency of the second data element.
  • FIG. 7 shows the prioritized embodiment of a data processing pipeline of a data processing device having two data processing units or processor cores, which uses the inventive method for processing data elements with a low maximum latency.
  • the data content of the priority queues PWS 1 and PWS 2 of the two data processors is stored. specified processing units or processor cores.
  • the maximum latency time is thus for the considered period when using the method according to the invention only 9 time units namely the latency of the fourth data element.
  • the method according to the invention reduces the maximum latency for the time period considered from 11 time units to 9 time units.
  • a prioritized execution of the tasks T takes place as a function of the point in time at which a data element of the data stream DS is fed into the pipeline. This avoids data elements remaining in the pipeline for an unnecessarily long time and can be surpassed by subsequent data elements.
  • the inventive method thus reduces the maximum latency, which is particularly advantageous in real-time systems.
  • the method according to the invention is not limited to linear data processing pipelines. In some applications, it may be useful to use non-linear data structures that allow duplication or splitting of the data streams.
  • the inventive method is not limited to linear pipelines and can be transferred to non-linear structures.
  • a variant consists in providing a separate priority queue for each processor core or each data processing unit, as is also illustrated in FIG.
  • the data processing units or processor cores can be largely independent of each other. work, where only when work stealing or stealing a task T for an empty priority queue from another priority queue, the involved data processing units or processor cores are synchronized.
  • a global priority queue is provided for all data processing units.
  • the prioritization function PF for calculating the execution priority AP of a task T is preferably configurable. This increases the flexibility of the data processing device 1 for various applications.
  • the execution priority AP of a task is calculated according to a position of the data element to be processed by the task T within the received serial data stream DS.
  • the calculation of the execution priority AP as a function of the position can be carried out in a variant embodiment with a configurable calculation function or prioritization function PF, which is located, for example, in a configuration memory of the data processing device 1.
  • the calculation function can be configured or adapted in a possible embodiment variant via a configuration interface.
  • the data processing device 1 may be, for example, a network node of a network.
  • a network node has at least one data interface for receiving a serial data stream DS.
  • the data can be received via a wired or wireless interface of the data processing device 1 for data processing.
  • the data processed according to the pipeline principle are output by the data processing device 1, for example a network node, via a further data section.
  • the data processing device 1 shown in FIG. 2 may be a multi-core processor that can be used in any computer system, for example an embedded system.
  • the priority queues shown in FIG. 2 are integrated into the data processing units or processor cores 2-i.

Abstract

The invention relates to a data processing device (1) for the data processing of data elements of a serial data stream (DS), wherein a received data element of the serial data stream (DS) is processed in parallel by a plurality of data processing units (2), which have access to a priority queue (3), in several stages according to the pipelining principle using tasks (T), wherein a prioritized execution of the tasks (T) is carried out in accordance with execution priorities (AP) of the tasks (T) indicated in the priority queue (3), the execution being derived in each case from the position of the data element to be processed by the tasks (T) within the received data stream (DS).

Description

Beschreibung description
Verfahren und Vorrichtung zur Verarbeitung von Datenelementen mit minimaler Latenzzeit Method and apparatus for processing data elements with minimal latency
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Datenverarbeitung von Datenelementen mit minimaler Latenzzeit . DatenverarbeitungsVorrichtungen bestehen zunehmend aus mehreren parallel arbeitenden Datenverarbeitungseinheiten bzw. Prozessorkernen. Um die Leistungsfähigkeit derartiger Multi- core-Prozessoren bzw. Multicore-Datenverarbeitungseinheiten ausschöpfen zu können, werden die darauf auszuführenden Be- rechnungen möglichst in unabhängige Teile zerlegt, so dass diese Teile parallel verarbeitet werden können. Für viele Anwendungen, insbesondere im Bereich der digitalen Signalverarbeitung, erfolgt daher die Datenverarbeitung nach dem sogenannten Fließbandprinzip. Dabei wird eine Sequenz bzw. Folge von Berechnungen derart zerlegt, dass in Teilschritten verschiedene Elemente eines Datenstromes parallel verarbeitet werden können. Dies wird auch als „Pipelining" bezeichnet. The invention relates to a method and a device for data processing of data elements with minimal latency. Data processing devices increasingly consist of several data processing units or processor cores operating in parallel. In order to be able to exploit the performance of such multicore processors or multicore data processing units, the calculations to be carried out on them are broken down as far as possible into independent parts, so that these parts can be processed in parallel. For many applications, in particular in the field of digital signal processing, therefore, the data processing takes place according to the so-called assembly line principle. In this case, a sequence or sequence of calculations is decomposed in such a way that different elements of a data stream can be processed in parallel in substeps. This is also called "pipelining".
Fig. 1 zeigt beispielhaft die Ausführung einer aus drei Stu- fen X, Y, und Z bestehenden Verarbeitungspipeline für Datenelemente nach dem Stand der Technik. 1 shows by way of example the execution of a processing stage consisting of three stages X, Y, and Z for data elements according to the prior art.
Pipelining wird zunehmend auch in der Softwareentwicklung eingesetzt. Während bei der Hardwareentwicklung die Zuordnung von Pipelinestufen zu den Ressourcen bzw. Funktionseinheiten fest ist, kann sich bei der Softwareentwicklung das Problem einer möglichst optimalen Abbildung der Berechnungs stufen auf die verschiedenen Prozessorkerne bzw. Datenverarbeitungseinheiten des Multicore-Prozessors stellen. Bei Systemen, die Echtzeitanforderungen unterliegen, muss zudem gewährleistet werden, dass das Ergebnis einer Berechnung rechtzeitig vorliegt. Deshalb gilt es bei einer parallelen Ausführung einer Pipeline nicht nur, den Datendurchsatz zu erhöhen, sondern auch die Latenzzeit für die Datenverarbeitung eines einzelnen Datenelementes eines empfangenen Datenstromes zu minimieren bzw. zu beschränken. Ein weiteres Problem besteht darin, dass die Ausführungszeiten der Pipelinestufen typischerweise stark variieren. Dies kann zu unerwünschten Effekten bzw. Datenstaus führen, wodurch die Latenzzeiten erheblich ansteigen. Pipelining is increasingly being used in software development. While the allocation of pipeline stages to the resources or functional units is fixed in hardware development, the problem of optimally optimal mapping of the calculation stages to the various processor cores or data processing units of the multicore processor can arise during software development. For systems that are subject to real-time requirements, it must also be ensured that the result of a calculation is available in good time. Therefore, in a parallel execution of a pipeline, it is not just about increasing data throughput, but also also to minimize or limit the latency for the data processing of a single data element of a received data stream. Another problem is that the execution times of the pipeline stages typically vary widely. This can lead to unwanted effects or congestion, which increases the latency considerably.
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung zur Datenverarbeitung von Da- tenelementen eines seriellen Datenstromes mit geringer maximaler Latenzzeit zu schaffen. It is therefore an object of the present invention to provide a method and a device for data processing of data elements of a serial data stream with low maximum latency.
Diese Aufgabe wird erfindungsgemäß durch eine Datenverarbeitungsvorrichtung mit den in Patentanspruch 1 angegebenen Merkmalen gelöst. This object is achieved by a data processing device having the features specified in claim 1.
Die Erfindung schafft eine Datenverarbeitungsvorrichtung zur Datenverarbeitung von Datenelementen eines seriellen Datenstromes, The invention provides a data processing device for data processing of data elements of a serial data stream,
wobei ein empfangenes Datenelement des seriellen Datenstromes durch mehre Datenverarbeitungseinheiten, die Zugriff auf eine Prioritätswarteschlange haben, mehrstufig nach dem Fließbandprinzip durch Tasks parallel verarbeitet werden, wherein a received data element of the serial data stream is processed in parallel by tasks in parallel by a plurality of data processing units having access to a priority queue in a multi-stage manner according to the assembly line principle,
wobei eine priorisierte Ausführung der Tasks in Abhängigkeit von in der Prioritätswarteschlange angegebenen Ausführungsprioritäten der Tasks erfolgt, die jeweils von der Position des durch die Tasks zu verarbeitenden Datenelementes innerhalb des empfangenen Datenstromes abgeleitet wird. Bei der erfindungsgemäßen Datenverarbeitungsvorrichtung erfolgt somit eine priorisierte Abarbeitung der Tasks in Abhängigkeit des Zeitpunktes, zu dem ein Datenelement des Datenstromes in die Pipeline eingespeist wird. Auf diese Weise wird vermieden, dass Datenelemente unnötig lange in der Pipe- line bzw. Verarbeitungspipeline verbleiben und von nachfolgenden Datenelementen überholt werden. Mit dem erfindungsgemäßen Verfahren wird somit die maximale Latenzzeit eines Datenelements reduziert. Die maximale Latenzzeit von in Soft- wäre implementierten Pipelines in parallelen Systemen wird auf diese Weise reduziert. Insbesondere die Zuordnung der auszuführenden Teilschritte einer Berechnung zu den Datenverarbeitungseinheiten bzw. Prozessorkernen kann dabei zur Lauf- zeit erfolgen. Die erfindungsgemäße Datenverarbeitungsvorrichtung eignet sich insbesondere für Anwendungen mit Echtzeitanforderungen, insbesondere zur Verarbeitung von Audio-, Video- oder Sensordaten. Bei einer möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung weist die Datenverarbeitungsvorrichtung mindestens eine Datenschnittstelle zum Empfang des seriellen Datenstromes auf. Bei einer möglichen Ausführungsform erhalten die empfangenen Datenelemente des Datenstromes bei ihren Empfang einen generierten Zeitstempel zur Kennzeichnung ihrer Position innerhalb des Datenstromes. Bei einer weiteren möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung erhalten die empfangenen Datenelemente des Datenstromes bei ihrem Empfang eine generierte Datenelement-Nummer zur Kennzeichnung ihrer Position innerhalb des Datenstromes. wherein a prioritized execution of the tasks takes place in dependence on execution priorities of the tasks specified in the priority queue, which in each case is derived from the position of the data element to be processed by the task within the received data stream. In the case of the data processing device according to the invention, there is thus a prioritized execution of the tasks as a function of the point in time at which a data element of the data stream is fed into the pipeline. In this way, it is avoided that data elements remain unnecessarily long in the pipeline or processing pipeline and are overtaken by subsequent data elements. The method according to the invention thus reduces the maximum latency of a data element. The maximum latency of in soft- Implemented pipelines in parallel systems would be reduced in this way. In particular, the assignment of the sub-steps of a calculation to be carried out to the data processing units or processor cores can take place at runtime. The data processing device according to the invention is particularly suitable for applications with real-time requirements, in particular for processing audio, video or sensor data. In one possible embodiment of the data processing device according to the invention, the data processing device has at least one data interface for receiving the serial data stream. In one possible embodiment, the received data elements of the data stream receive a generated time stamp when they are received to identify their position within the data stream. In a further possible embodiment of the data processing device according to the invention receive the received data elements of the data stream when they receive a generated data element number to identify their position within the data stream.
Bei einer möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung wird durch eine Berechnungseinheit mittels einer Priorisierungsfunktion die Ausführungspriorität einer Task in Abhängigkeit von der Position des durch die Task zu verarbeitenden Datenelementes innerhalb des Da- tenstromes berechnet. In one possible embodiment of the data processing device according to the invention, the execution priority of a task is calculated by a calculation unit by means of a prioritization function as a function of the position of the data element to be processed by the task within the data stream.
Bei einer möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung weist diese eine globale Prioritätswarteschlange für alle Datenverarbeitungseinheiten auf. In one possible embodiment of the data processing device according to the invention, this has a global priority queue for all data processing units.
Bei einer alternativen Ausführungsform der erfindungsgemäßen DatenverarbeitungsVorrichtung weist jede Datenverarbeitungseinheit eine eigene lokale Prioritätswarteschlange auf. Bei einer möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung enthält die Prioritätswarteschlange die durch die Datenverarbeitungseinheit sequentiell auszuführenden Tasks und deren jeweilige Ausführungsprioritäten . In an alternative embodiment of the data processing device according to the invention, each data processing unit has its own local priority queue. In one possible embodiment of the data processing device according to the invention, the priority queue contains the tasks to be executed sequentially by the data processing unit and their respective execution priorities.
Bei einer möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung enthält die Prioritätswarte- schlänge ferner für die auszuführende Task einen Adresszeiger bzw. Pointer auf eine Datenspeicheradresse eines Datenspeichers, an der die durch die Task zu verarbeitenden Daten des Datenelementes gespeichert sind. Bei einer möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung besitzt diese einen Task-Schedu- ler, welcher die Tasks und deren berechnete Ausführungsprioritäten in mindestens eine Prioritätswarteschlange einfügt. Bei einer weiteren möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung erfolgt die Zuweisung der Tasks zu verschiedenen Datenverarbeitungseinheiten durch den Task-Scheduler zur Laufzeit der Datenverarbeitung. Bei einer weiteren möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung weist der serielle Datenstrom Datenelemente auf, die Audiodaten, Videodaten oder Sensordaten enthalten, welche in Echtzeit durch die Datenverarbeitungsvorrichtung verarbeitet werden. In one possible embodiment of the data processing device according to the invention, the priority waiting loop also contains an address pointer for the task to be executed, or pointer to a data memory address of a data memory at which the data of the data element to be processed by the task are stored. In one possible embodiment of the data processing device according to the invention, this has a task scheduler, which inserts the tasks and their calculated execution priorities into at least one priority queue. In a further possible embodiment of the data processing device according to the invention, the assignment of the tasks to different data processing units is performed by the task scheduler at runtime of the data processing. In a further possible embodiment of the data processing device according to the invention, the serial data stream comprises data elements which contain audio data, video data or sensor data which are processed in real time by the data processing device.
Bei einer möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung wird, falls eine lokale Prioritätswarteschlange einer Datenverarbeitungseinheit leer ist, eine Task mit der höchsten Ausführungspriorität aus einer an- deren lokalen Prioritätswarteschlange in die leere Prioritätswarteschlange automatisch transferiert. Bei einer möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung erzeugt eine Task nach ihrer Ausführung durch eine Datenverarbeitungseinheit mindestens eine Nachfolge-Tas k und übergibt diese an den Task-Scheduler . In one possible embodiment of the data processing apparatus according to the invention, if a local priority queue of a data processing unit is empty, a task with the highest execution priority is automatically transferred from another local priority queue to the empty priority queue. In one possible embodiment of the data processing device according to the invention, a task generates at least one successor task after execution by a data processing unit and transfers this data to the task scheduler.
Bei einer möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung wird die Ausführungspriorität von der Empfangsreihenfolge des empfangenen Datenelementes innerhalb des Datenstromes abgeleitet, wobei Tasks zur Verarbei- tung früher empfangener Datenelemente eine höhere Ausführungspriorität erhalten. In one possible embodiment of the data processing device according to the invention, the execution priority is derived from the reception order of the received data element within the data stream, wherein tasks for processing previously received data elements receive a higher execution priority.
Bei einer möglichen Ausführungsform der erfindungsgemäßen Datenverarbeitungsvorrichtung sind die Datenverarbeitungsein- heiten Prozessoren, welche die Task entsprechend ihrer jeweiligen Ausführungspriorität ausführen. In one possible embodiment of the data processing device according to the invention, the data processing units are processors which execute the task according to their respective execution priority.
Die Erfindung schafft ferner ein Verfahren mit dem in Patentanspruch 15 angegebenen Merkmalen. The invention further provides a method with the features specified in claim 15.
Die Erfindung schafft ein Verfahren zum Verarbeiten von Datenelementen mit geringer maximaler Latenzzeit, The invention provides a method for processing data elements with low maximum latency,
wobei die Datenelemente in einem seriellen Datenstrom empfangen werden und durch mehrere Datenverarbeitungseinheiten, die Zugriff auf eine Prioritätswarteschlange haben, mehrstufig nach dem Fließbandprinzip durch Tasks parallel verarbeitet werden, wherein the data elements are received in a serial data stream and are processed in parallel by tasks in parallel in multiple stages according to the assembly line principle by a plurality of data processing units having access to a priority queue,
wobei eine priorisierte Ausführung der Tasks in Abhängigkeit von den in der Prioritätswarteschlange angegebenen Ausfüh- rungsprioritäten der Tasks erfolgt, die jeweils von der Position des durch die Task zu verarbeitenden Datenelementes innerhalb des empfangenen Datenstromes abgeleitet wird. wherein a prioritized execution of the tasks takes place in dependence on the execution priorities of the tasks specified in the priority queue, which in each case is derived from the position of the data element to be processed by the task within the received data stream.
Im Weiteren werden mögliche Ausführungsbeispiele des erfin- dungsgemäßen Verfahrens und der erfindungsgemäßen Vorrichtung zur Datenverarbeitung von Datenelementen mit geringer maximaler Latenzzeit unter Bezugnahme auf die beigefügten Figuren näher beschrieben. ein Diagramm zur Erläuterung einer mehrstufigen Pipelinedatenverarbeitung nach dem Stand der Technik; ein Blockschaubild zur Darstellung eines Ausführungsbeispiels der erfindungsgemäßen DatenverarbeitungsVorrichtung ; ein Diagramm zur Erläuterung einer möglichen Datenstruktur einer bei der erfindungsgemäßen Vorrichtung und bei dem erfindungsgemäßen Verfahren eingesetzten Prioritätswarteschlänge ; ein Ablaufdiagramm zur Darstellung eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens zur Verarbeitung von Datenelementen mit geringer maximaler Latenzzeit; ein Diagramm zur Darstellung einer mehrstufigen Pipelinedatenverarbeitung durch verschiedene Tasks zur Erläuterung der Funktionsweise des erfindungsgemäßen Verfahrens; ein Beispiel zur Ausführung einer Datenverarbeitungspipeline bei einem System mit zwei Datenverarbeitungseinheiten, in dem die Ausführung in herkömmlicher Weise erfolgt; ein Diagramm zur Darstellung einer priorisierten Ausführung einer Datenverarbeitungspipeline bei einem System mit zwei Datenverarbeitungseinheiten bei Anwendung des erfindungsgemäßen Verfahrens zur Verarbeitung von Datenelementen mit geringer maximaler Latenzzeit; Fig. 2 zeigt schematisch ein Ausführungsbeispiel einer Datenverarbeitungsvorrichtung 1 gemäß der Erfindung zur Datenverarbeitung von Datenelementen eines seriellen Datenstromes DS . Bei dem dargestellten Ausführungsbeispiel enthält die Daten- verarbeitungsVorrichtung mehrere Datenverarbeitungseinheiten 2-1, 2-2, ... 2-N. Diese Datenverarbeitungseinheiten 2-i sind beispielsweise Prozessorkerne. Bei dem in Fig. 2 dargestellten Ausführungsbeispiel verfügt jede Datenverarbeitungseinheit bzw. jeder Prozessorkern 2-i über eine eigene lokale Prioritätswarteschlange 3-i. In dem dargestellten Ausführungsbeispiel enthält die Datenverarbeitungsvorrichtung bzw. der Multicore-Prozessor 1 gemäß der Erfindung N Datenverarbeitungseinheiten 2-i bzw. Prozessoren. Die Datenverarbeitungsvorrichtung 1 enthält ferner in dem dargestellten Aus- führungsbeispiel einen Task-Scheduler 4, welcher eine Task in die zugehörige Prioritätswarteschlange einfügt. Die Datenverarbeitungsvorrichtung 1 verfügt über mindestens eine Datenschnittstelle zum Empfang eines seriellen Datenstromes DS . Der serielle Datenstrom DS kann aus einer Vielzahl von auf- einanderfolgenden Datenelementen bestehen. Durch die Datenverarbeitungsvorrichtung 1 wird ein empfangenes Datenelement des seriellen Datenstromes DS durch die Datenverarbeitungseinheiten 2-i mehrstufig nach dem Fließbandprinzip durch Tasks T parallel verarbeitet. Die Datenverarbeitungseinheiten 2-i haben dabei jeweils Zugriff auf eine Prioritätswarteschlange PWS . Bei dem in Fig. 2 dargestellten Ausführungsbeispiel verfügt jede Datenverarbeitungseinheit 2-i über eine eigene lokale Prioritätswarteschlange 3-i. In einer alternativen Ausführungsform kann in der Datenverarbeitungsvorrich- tung 1 auch eine globale Prioritätswarteschlange PWS für alle Datenverarbeitungseinheiten 2-i vorgesehen sein, auf die alle Datenverarbeitungseinheiten 2-i zugreifen können. Bei der erfindungsgemäßen Datenverarbeitungsvorrichtung 1 erfolgt eine priorisierte Ausführung der Tasks T in Abhängigkeit von in der Prioritätswarteschlange angegebenen Ausführungsprioritäten AP der Tasks T. Diese Ausführungsprioritäten AP werden dabei jeweils von der Position des durch die Task T zu verar- beitenden Datenelementes innerhalb des empfangenen Datenstromes DS abgeleitet. In the following, possible embodiments of the inventive method and the inventive apparatus for data processing of data elements with low maximum latency will be described in more detail with reference to the accompanying figures. a diagram for explaining a multi-stage pipeline data processing according to the prior art; a block diagram illustrating an embodiment of the data processing device according to the invention; a diagram for explaining a possible data structure of a priority queue used in the inventive apparatus and the method according to the invention; a flow diagram illustrating an embodiment of the inventive method for processing data elements with low maximum latency; a diagram illustrating a multi-level pipeline data processing by various tasks to explain the operation of the method according to the invention; an example for the execution of a data processing pipeline in a system with two data processing units, in which the execution is carried out in a conventional manner; a diagram illustrating a prioritized execution of a data processing pipeline in a system with two data processing units when using the method according to the invention for processing data elements with low maximum latency; Fig. 2 shows schematically an embodiment of a data processing device 1 according to the invention for data processing of data elements of a serial data stream DS. In the illustrated embodiment, the data processing device includes a plurality of data processing units 2-1, 2-2, ... 2-N. These data processing units 2-i are, for example, processor cores. In the embodiment shown in FIG. 2, each data processing unit or each processor core 2-i has its own local priority queue 3-i. In the illustrated embodiment, the data processing device or the multicore processor 1 according to the invention comprises N data processing units 2-i or processors. The data processing device 1 further includes in the illustrated embodiment a task scheduler 4 which inserts a task into the associated priority queue. The data processing device 1 has at least one data interface for receiving a serial data stream DS. The serial data stream DS can consist of a multiplicity of successive data elements. By means of the data processing device 1, a received data element of the serial data stream DS is processed in parallel by the data processing units 2-i in a multi-stage manner according to the assembly line principle by means of tasks T. The data processing units 2-i each have access to a priority queue PWS. In the embodiment shown in FIG. 2, each data processing unit 2-i has its own local priority queue 3-i. In an alternative embodiment, a global priority queue PWS can also be provided in the data processing device 1 for all the data processing units 2-i that can be accessed by all the data processing units 2-i. In the case of the data processing device 1 according to the invention, a prioritized execution of the tasks T occurs as a function of execution priorities AP of the tasks T specified in the priority queue. These execution priorities AP are in each case determined by the position of the task T to be processed. derived data element within the received data stream DS derived.
Bei einer möglichen Ausführungsform verfügt die Datenverar- beitungsvorrichtung 1 über eine Einheit zur Kennzeichnung der Position eines empfangenen Datenelementes innerhalb des empfangenen Datenstromes DS . Bei einer möglichen Ausführungsform werden die empfangenen Datenelemente des Datenstromes DS bei ihrem Empfang mit einem generierten Zeitstempel versehen, der den Zeitpunkt ihres Empfangs durch die Datenverarbeitungseinheit 1 angibt. Bei einer möglichen AusführungsVariante enthalten die empfangenen Datenelemente bei ihrem Empfang eine generierte Datenelement-Nummer zur Kennzeichnung ihrer Position innerhalb des Datenstromes DS . Bei den Datenelementen kann es sich um beliebige Datenelemente, beispielsweise auch Datenpakete, handeln. In one possible embodiment, the data processing device 1 has a unit for identifying the position of a received data element within the received data stream DS. In one possible embodiment, the received data elements of the data stream DS are provided with a generated time stamp when they are received, which indicates the time of their reception by the data processing unit 1. In one possible embodiment variant, the received data elements contain a generated data element number when they are received in order to identify their position within the data stream DS. The data elements can be any data elements, for example also data packets.
Bei einer möglichen Ausführungsvariante der erfindungsgemäßen DatenverarbeitungsVorrichtung 1 enthält diese zusätzlich eine Berechnungseinheit, die mittels einer Priorisierungsfunktion PF die Ausführungspriorität AP einer Task T in Abhängigkeit von der Position des durch die Task T zu verarbeitenden Datenelementes innerhalb des Datenstromes DS berechnet. Die Priorisierungsfunktion PF ist bei einer möglichen Ausfüh- rungsform konfigurierbar. In a possible embodiment variant of the data processing device 1 according to the invention, this additionally contains a calculation unit which calculates the execution priority AP of a task T as a function of the position of the data element to be processed by the task T within the data stream DS by means of a prioritization function PF. The prioritization function PF can be configured in one possible embodiment.
Die Prioritätswarteschlange enthält die durch die Datenverarbeitungseinheit 2-i sequentiell auszuführenden Tasks T und deren jeweilige Ausführungsprioritäten AP. The priority queue contains the tasks T to be sequentially executed by the data processing unit 2-i and their respective execution priorities AP.
Fig. 3 zeigt beispielhaft eine Datenstruktur einer Prioritätswarteschlange, wie sie bei der erfindungsgemäßen Datenverarbeitungsvorrichtung 1 verwendet werden kann. Bei dem in Fig. 3 dargestellten Ausführungsbeispiel enthält die Priori- tätswarteschlange die durch die jeweilige Datenverarbeitungseinheit 2-i sequentiell auszuführenden Tasks ΊΊ und deren jeweilige Ausführungsprioritäten APi . Bei dem in Fig. 3 dargestellten Ausführungsbeispiel enthält die Prioritätswarte- schlänge ferner für die auszuführende Task T einen Adresszeiger bzw. Pointer P± auf eine Datenspeicheradresse eines Datenspeichers, an der die durch die Task T zu verarbeitenden Daten des jeweiligen Datenelementes gespeichert sind. Handelt sich bei dem Datenelement beispielsweise um ein zu verarbeitendes Videobild, gibt der Adresszeiger bzw. Pointer P diejenige Speicheradresse an, an welcher sich das durch die Task T zu verarbeitende Datenelement bzw. Videobild befindet. Um eine besonders hohe Datenverarbeitungsgeschwindigkeit zu erzielen, können anstatt des Adresszeigers bzw. Pointers P auch direkt die Daten des jeweiligen Datenelementes in die Prioritätswarteschlange abgelegt werden. Bei dieser Ausführungsvariante befindet sich in der Prioritätswarteschlange anstatt eines Adresszeigers bzw. Pointers P die durch die jeweilige Task T zu verarbeitenden Nutzdaten des Datenelementes. Auf diese Weise kann die Zeit für einen Zugriff auf den Datenspeicher bei der Datenverarbeitung eingespart werden. Der in Fig. 2 dargestellte Task-Scheduler 4 fügt die Task T und deren berechnete Ausführungspriorität AP in die Prioritätswarteschlange, wie sie beispielhaft in Fig. 3 dargestellt ist, ein. Die Zuweisung der Task T zu verschiedenen Datenverarbeitungseinheiten 2-i durch den Task-Scheduler 4 kann bei einer möglichen Ausführungsform zur Laufzeit der Datenverarbeitung erfolgen. Der durch die Datenverarbeitungsvorrichtung 1 empfangene serielle Datenstrom DS besteht aus Datenelementen, die jeweils z.B. Audiodaten, Videodaten oder Sensordaten enthalten. Diese Daten werden durch die Datenverarbeitungs- Vorrichtung 1 vorzugsweise in Echtzeit verarbeitet. FIG. 3 shows, by way of example, a data structure of a priority queue, as can be used in the data processing device 1 according to the invention. In the exemplary embodiment illustrated in FIG. 3, the priority queue contains the tasks ΊΊ to be executed sequentially by the respective data processing unit 2-i and their respective execution priorities APi. In the embodiment illustrated in FIG. 3, the priority queue contains furthermore, for the task T to be executed, connect an address pointer P + to a data memory address of a data memory at which the data of the respective data element to be processed by the task T are stored. If the data element is, for example, a video image to be processed, the address pointer or pointer P indicates the memory address at which the data element or video image to be processed by the task T is located. In order to achieve a particularly high data processing speed, instead of the address pointer or pointer P, the data of the respective data element can also be stored directly in the priority queue. In this embodiment variant, in the priority queue, instead of an address pointer or pointer P, the user data of the data element to be processed by the respective task T is located. In this way, the time for accessing the data memory during data processing can be saved. The task scheduler 4 illustrated in FIG. 2 inserts the task T and its calculated execution priority AP into the priority queue, as shown by way of example in FIG. 3. The assignment of the task T to different data processing units 2-i by the task scheduler 4 can take place in one possible embodiment at runtime of the data processing. The serial data stream DS received by the data processing device 1 consists of data elements which each contain, for example, audio data, video data or sensor data. This data is preferably processed by the data processing device 1 in real time.
Bei einer möglichen Ausführungsform wird, falls eine lokale Prioritätswarteschlange 3-i der Datenverarbeitungseinheit 2-i leer ist, eine Task T mit der höchsten Ausführungspriorität aus einer anderen lokalen Prioritätswarteschlange in die leere Prioritätswarteschlange automatisch transferiert. Die Zuweisung der Tasks T erfolgt in dem in Fig. 2 dargestellten Multicore-System bzw. der Multicore- DatenverarbeitungsVorrichtung 1 mit Hilfe des Task-Schedulers 4, der ausführbare Tasks T auf die Prioritätswarteschlangen verteilt. Die Reihenfolge der Abarbeitung der Tasks T hängt dabei nicht vom Zeitpunkt des Eintreffens der Tasks ab, son- dern von deren Ausführungspriorität AP. Wenn eine Prioritätswarteschlange leer ist, wird das Datenelement mit der höchsten Ausführungspriorität von einer anderen Prioritätswarteschlange gewissermaßen gestohlen. Dies wird auch als "Work Stealing" bezeichnet. In one possible embodiment, if a local priority queue 3-i of the data processing unit 2-i is empty, a task T having the highest execution priority is automatically transferred from another local priority queue to the empty priority queue. The assignment of the tasks T takes place in the multicore system or the multicore system shown in FIG. Data processing device 1 with the aid of the task scheduler 4, which distributes executable tasks T to the priority queues. The order of execution of the tasks T does not depend on the time of arrival of the tasks, but on their execution priority AP. When a priority queue is empty, the data item with the highest execution priority is stolen from another priority queue to some extent. This is also called "work stealing".
Als Ausführungspriorität AP kann bei einem möglichen Ausführungsbeispiel der negierte Wert der Datenelement-Nummer dienen. Die Task zur Bearbeitung des ersten Datenelementes hat somit die höchste Ausführungspriorität "-1" zur Verarbeitung des zweiten Datenelementes die zweithöchste Ausführungspriorität "-2" usw. Auf diese Weise wird sichergestellt, dass Datenelemente, die früh in die Datenverarbeitungspipeline eingespeist werden, auch vorrangig behandelt werden und die Pipeline vorrangig verlassen. Auf diese Weise wird die maximale Latenzzeit minimiert. Die Ausführungspriorität AP wird bei dieser Ausführungsform von der Empfangsreihenfolge der empfangenen Datenelemente innerhalb des Datenstromes DS abgeleitet. Dabei erhalten Tasks T zur Verarbeitung von früher empfangenen Datenelementen eine höhere Ausführungspriorität, beispielsweise die höchste Ausführungspriorität „-1". In one possible embodiment, the execution priority AP can be the negated value of the data element number. The task for processing the first data element thus has the highest execution priority "-1" for processing the second data element, the second highest execution priority "-2", etc. In this way it is ensured that data elements that are fed into the data processing pipeline early are also given priority and leave the pipeline as a priority. This minimizes the maximum latency. The execution priority AP is derived in this embodiment from the reception order of the received data elements within the data stream DS. In this case, tasks T for processing data elements received earlier receive a higher execution priority, for example the highest execution priority "-1".
Fig. 4 zeigt ein Ablaufdiagramm zur Darstellung eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens zur Verarbeitung von Datenelementen mit geringer maximaler Latenzzeit. Der in Fig. 4 dargestellte Prozess ist ein Pipelining-4 shows a flowchart for illustrating an embodiment of the method according to the invention for processing data elements with a low maximum latency. The process illustrated in FIG. 4 is a pipelining process.
Prozess, der jeweils auf allen Datenverarbeitungseinheiten bzw. Prozessorkernen 2-i abläuft. Process that runs on each of the data processing units or processor cores 2-i.
In einem Schritt Sl überprüft die jeweilige Datenverarbei- tungseinheit 2-i, ob die zugehörige Prioritätswarteschlange leer ist. Ist dies der Fall, wird in Schritt S2 eine Task T von einer anderen Prioritätswarteschlange zur eigenen Prioritätswarteschlange transferiert, wobei vorzugsweise diejenige Task T mit der höchsten Ausführungspriorität AP transferiert wird. Wird umgekehrt festgestellt, dass die eigene Prioritätswarteschlange nicht leer ist, entnimmt die Datenverarbeitungseinheit 2-i die Task T mit der höchsten Ausführungsprio- rität AP aus der eigenen Prioritätswarteschlange in Schritt S3. In a step S1, the respective data processing unit 2-i checks whether the associated priority queue is empty. If so, in step S2 a task T is transferred from another priority queue to its own priority queue, preferably that one Task T with the highest execution priority AP is transferred. Conversely, if it is determined that the own priority queue is not empty, the data processing unit 2-i extracts the task T having the highest execution priority AP from its own priority queue in step S3.
Anschließend wird die in Schritt S2 transferierte bzw. die in Schritt S3 entnommene bzw. geladene Task T durch die Daten- Verarbeitungseinheit 2-i in Schritt S4 ausgeführt. Subsequently, the task T transferred in step S2 and the task T removed or loaded in step S3 are executed by the data processing unit 2-i in step S4.
In einem weiteren Schritt S5 wird mindestens eine Nachfolge- Task generiert bzw. erzeugt und an den Task-Scheduler 4 übergeben. Dabei wird auch ein Eintrag für eine Prioritätswarte- schlänge PWS für die generierte Nachfolge-Task erzeugt. In a further step S5, at least one successor task is generated or generated and transferred to the task scheduler 4. In this case, an entry for a priority waiting queue PWS is also generated for the generated successor task.
In einem Schritt S6 gibt der Task-Scheduler 4 den erzeugten PWS-Eintrag der Nachfolge-Task in die Prioritätswarteschlange ab und der Vorgang kehrt zurück zu Schritt Sl. In a step S6, the task scheduler 4 outputs the generated PWS entry of the successor task to the priority queue, and the process returns to step S1.
Fig. 5 zeigt beispielhaft eine mehrstufige Abarbeitung von Tasks in drei Stufen X, Y, Z zur Verdeutlichung des erfindungsgemäßen Verfahrens . Beispielsweise kann eine erste Task Τι_2 darin bestehen, dass ein Videobild I aus einem Bilddatenspeicher ausgelesen wird. In einer darauffolgenden Stufe Y wird durch eine Task i_i dann das Videobild gefiltert. Anschließend erfolgt in einer weiteren Stufe Z durch die nächste Task ΊΊ eine Anzeige des gefilterten Videobildes auf einem Bildschirm. 5 shows an example of a multi-stage execution of tasks in three stages X, Y, Z to illustrate the method according to the invention. For example, a first task Τι_ 2 consist in that a video image I is read from an image data memory. In a subsequent stage Y, the video image is then filtered by a task i_i. Subsequently, in a further stage Z by the next task ΊΊ a display of the filtered video image on a screen.
Fig. 6 zeigt ein Beispiel einer herkömmlichen Ausführung von Tasks mit einer Verarbeitungspipeline bei einem System mit zwei Prozessorkernen bzw. Datenverarbeitungseinheiten. Zu je- dem Zeitpunkt t ist der Inhalt der konventionellen Warteschlange WS1, WS1 angegeben. Die Datenverarbeitungspipeline besteht bei dem dargestellten Beispiel aus drei Stufen X, Y, Z, wie in Fig. 5 dargestellt. Bei dem dargestellten Beispiel benötigt die erste Stufe X zwei Zeiteinheiten für die Ausführung, die zweite Stufe Y drei Zeiteinheiten und die dritte Stufe Z lediglich eine Zeiteinheit. Die Datenelemente eines Datenstromes dürfen dabei außerhalb der Reihenfolge verarbei- tet werden, müssen jedoch von der letzten Stufe Z wieder in die ursprüngliche Reihenfolge gebracht werden, damit die Semantik des Programms erhalten bleibt. Dies bedeutet, dass beispielsweise Z3 nicht vor Z2 ausgeführt werden darf. Wie man dem Beispiel gemäß Fig. 6 entnehmen kann, werden für die Datenverarbeitung des ersten Datenelementes sechs Zeiteinheiten benötigt, die von der Ausführung von Xi zum Zeitpunkt t=0 bis zur Ausführung von i zum Zeitpunkt t=5 reicht. Die Latenzzeit für die Verarbeitung des zweiten Datenelemen- tes beträgt bei dem dargestellten Beispiel 11 Zeiteinheiten, für das dritte Datenelement 10 Zeiteinheiten und für das vierte Datenelement 9 Zeiteinheiten. Die maximale Latenzzeit beträgt somit für den betrachteten Zeitraum bei dem dargestellten Beispiel 11 Zeiteinheiten, nämlich die Latenzzeit des zweiten Datenelementes. In der in Fig. 6 dargestelltenFig. 6 shows an example of a conventional execution of tasks with a processing pipeline in a system with two processor cores or data processing units. At each time t, the content of the conventional queue WS1, WS1 is indicated. The data processing pipeline consists in the illustrated example of three stages X, Y, Z, as shown in Fig. 5. In the example shown For example, the first stage X requires two time units for execution, the second stage Y three time units, and the third stage Z only one time unit. The data elements of a data stream may be processed out of order, but must be brought back into the original order by the last stage Z, so that the semantics of the program is preserved. This means that, for example, Z 3 may not be performed before Z 2 . As can be seen from the example according to FIG. 6, six time units are required for the data processing of the first data element, which ranges from the execution of Xi at time t = 0 to the execution of i at time t = 5. The latency for the processing of the second data element in the illustrated example is 11 time units, for the third data element 10 time units and for the fourth data element 9 time units. The maximum latency is thus for the period under consideration in the illustrated example 11 time units, namely the latency of the second data element. In that shown in Fig. 6
Ausführungsweise erfolgt die parallele Ausführung einer Pipeline jeweils mit Hilfe eines Tas k-Schedulers . Sobald eine Pipelinestufe ausführbereit ist, also neue Daten zur Verfügung stehen, wird eine Task erzeugt und dem Task-Scheduler überge- ben. Die Task-Erzeugung erfolgt dabei beispielsweise direkt durch die jeweils vorhergehende Pipelinestufe. Falls eine Verarbeitungsstufe langsamer als die vorhergehende Verarbeitungsstufe ist, kann es, wie in Fig. 1 zu sehen, allerdings gewissermaßen zu Verarbeitungsstaus kommen, da mehr Daten produziert als konsumiert werden. In practice, the parallel execution of a pipeline takes place in each case with the aid of a task scheduler. As soon as a pipeline stage is ready for execution, ie new data is available, a task is generated and transferred to the task scheduler. The task generation takes place, for example, directly through the respective preceding pipeline stage. However, as seen in Figure 1, if a processing stage is slower than the previous processing stage, processing jams may as it were come to a certain extent because more data is being produced than consumed.
Fig. 7 zeigt dazu im Vergleich die priorisierte Ausführung einer Datenverarbeitungspipeline einer Datenverarbeitungsvorrichtung mit zwei Datenverarbeitungseinheiten bzw. Prozessor- kernen, welches das erfindungsgemäße Verfahren zur Verarbeitung von Datenelementen mit geringer maximaler Latenzzeit einsetzt. Zu jedem Zeitpunkt t ist der Dateninhalt der Prioritätswarteschlangen PWS 1 und PWS 2 der beiden Datenverar- beitungseinheiten bzw. Prozessorkerne angegeben. Wie man aus Fig. 7 erkennen kann, ergibt sich für die ersten drei Datenelemente jeweils eine Latenzzeit von 6 Zeiteinheiten und für das vierte Datenelement 9 Zeiteinheiten. Die maximale Latenz- zeit beträgt somit für den betrachteten Zeitraum bei Anwendung des erfindungsgemäßen Verfahrens lediglich 9 Zeiteinheiten nämlich die Latenzzeit des vierten Datenelementes. Wie man durch Vergleich der Fig. 6, 7 erkennen kann, wird durch das erfindungsgemäße Verfahren die maximale Latenzzeit für den betrachteten Zeitraum von 11 Zeiteinheiten auf 9 Zeiteinheiten abgesenkt. In comparison, FIG. 7 shows the prioritized embodiment of a data processing pipeline of a data processing device having two data processing units or processor cores, which uses the inventive method for processing data elements with a low maximum latency. At each instant t, the data content of the priority queues PWS 1 and PWS 2 of the two data processors is stored. specified processing units or processor cores. As can be seen from FIG. 7, there is a latency of 6 time units for each of the first three data elements and time units for the fourth data element 9. The maximum latency time is thus for the considered period when using the method according to the invention only 9 time units namely the latency of the fourth data element. As can be seen by comparing FIGS. 6, 7, the method according to the invention reduces the maximum latency for the time period considered from 11 time units to 9 time units.
Durch das erfindungsgemäße Verfahren erfolgt eine priorisier- te Abarbeitung der Tasks T in Abhängigkeit des Zeitpunktes, zu dem ein Datenelement des Datenstromes DS in die Pipeline eingespeist wird. Auf diese Weise wird vermieden, dass Datenelemente unnötig lange in der Pipeline verbleiben und von nachfolgenden Datenelementen gewissermaßen überholt werden können. Durch das erfindungsgemäße Verfahren wird somit die maximale Latenzzeit reduziert, was insbesondere in Echtzeitsystemen von Vorteil ist. By means of the method according to the invention, a prioritized execution of the tasks T takes place as a function of the point in time at which a data element of the data stream DS is fed into the pipeline. This avoids data elements remaining in the pipeline for an unnecessarily long time and can be surpassed by subsequent data elements. The inventive method thus reduces the maximum latency, which is particularly advantageous in real-time systems.
Das erfindungsgemäße Verfahren ist nicht auf lineare Datenverarbeitungspipelines beschränkt. In manchen Anwendungen kann es sinnvoll sein, nichtlineare Datenstrukturen einzusetzen, die eine Duplizierung oder Aufspaltung der Datenströme erlauben. Das erfindungsgemäße Verfahren ist nicht auf lineare Pipelines beschränkt und lässt sich auf nichtlineare Strukturen übertragen. The method according to the invention is not limited to linear data processing pipelines. In some applications, it may be useful to use non-linear data structures that allow duplication or splitting of the data streams. The inventive method is not limited to linear pipelines and can be transferred to non-linear structures.
Bei der Implementierung des Task-Schedulers 4 gibt es zwei mögliche Varianten. In the implementation of the task scheduler 4, there are two possible variants.
Eine Variante besteht darin, für jeden Prozessorkern bzw. je- de Datenverarbeitungseinheit eine eigene Prioritätswarteschlange vorzusehen, wie es auch in Fig. 2 dargestellt ist. Bei dieser Ausführungsvariante können die Datenverarbeitungseinheiten bzw. Prozessorkerne weitgehend unabhängig voneinan- der arbeiten, wobei nur beim Work Stealing bzw. Stehlen einer Task T für eine leere Prioritätswarteschlange aus einer anderen Prioritätswarteschlange die beteiligten Datenverarbeitungseinheiten bzw. Prozessorkerne synchronisiert werden. Bei einer alternativen Ausführungsvariante wird eine globale Prioritätswarteschlange für alle Datenverarbeitungseinheiten vorgesehen. Ein Vorteil dieser Ausführungsvariante besteht darin, dass immer diejenigen Tasks T mit der höchsten Priorität im Gesamtsystem zuerst bearbeitet werden. Allerdings er- fordert dies einen gewissen Kommunikations- und Synchronisationsaufwand. Weiterhin ist es möglich, Kombinationen aus lokalen und globalen Prioritätswarteschlangen in der Datenverarbeitungsvorrichtung 1 vorzusehen. Weitere Ausführungsvarianten betreffen die Berechnung der Ausführungspriorität AP. Statt eine Datenelementnummer zu verwenden, kann man auch die Position der Pipelinestufe dafür heranziehen. Dies bedeutet, dass die Stufen am Ende der Pipeline eine höhere Ausführpriorität erhalten als die Stufen am Anfang. Folglich werden Datenelemente, die schon mehrere Stufen durchlaufen haben, vorrangig behandelt. Auch hier sind Kombinationen verschiedener Ansätze möglich. Die Erfindung schafft somit ein Verfahren zur Reduzierung der maximalen Latenzzeit in parallelen DatenstromverarbeitungsVorrichtungen bzw. ComputerSystemen . Dabei wird die maximale Latenzzeit, d.h. die Zeit zwischen dem Eintritt eines Datenelementes in die Pipeline und dem Austritt des verarbeiteten Datenelementes aus der Pipeline, reduziert bzw. minimiert. Das erfindungsgemäße Verfahren eignet sich insbesondere zur Datenver- arbeitung von Audio, Video oder Sensordaten in Echtzeit. Die Zuweisung der Tasks T erfolgt vorzugsweise dynamisch zur Laufzeit. Durch das erfindungsgemäße Verfahren wird der Datendurchsatz erhöht. Weiterhin kann die Fehlertoleranz gegenüber einem Ausfall einer Datenverarbeitungseinheit erhöht werden. Die Priorisierungsfunktion PF zur Berechnung der Ausführungspriorität AP einer Task T ist vorzugsweise konfigurierbar. Dadurch wird die Flexibilität der Datenverarbeitungsvorrichtung 1 für verschiedene Anwendungsfälle erhöht. Bei einer möglichen Ausführungsvariante erfolgt die Berechnung der Ausführungspriorität AP einer Task entsprechend einer Position des durch die Task T zu verarbeitenden Datenelementes innerhalb des empfangenen seriellen Datenstromes DS . Die Berechnung der Ausführungspriorität AP in Abhängigkeit von der Position kann bei einer Ausführungsvariante mit einer konfigurierbaren Berechnungsfunktion bzw. Priorisierungsfunk- tion PF erfolgen, die sich beispielsweise in einem Konfigurationsspeicher der DatenverarbeitungsVorrichtung 1 befindet. Die Berechnungsfunktion kann bei einer möglichen Ausführungsvariante über eine Konfigurationsschnittstelle konfiguriert bzw. angepasst werden. A variant consists in providing a separate priority queue for each processor core or each data processing unit, as is also illustrated in FIG. In this embodiment, the data processing units or processor cores can be largely independent of each other. work, where only when work stealing or stealing a task T for an empty priority queue from another priority queue, the involved data processing units or processor cores are synchronized. In an alternative embodiment, a global priority queue is provided for all data processing units. An advantage of this embodiment variant is that always those tasks T with the highest priority in the overall system are processed first. However, this requires a certain amount of communication and synchronization. Furthermore, it is possible to provide combinations of local and global priority queues in the data processing device 1. Further variants relate to the calculation of the execution priority AP. Instead of using a data element number, one can also use the position of the pipeline stage for it. This means that the stages at the end of the pipeline receive a higher execution priority than the stages at the beginning. Consequently, data elements that have already passed through several stages are given priority. Again, combinations of different approaches are possible. The invention thus provides a method for reducing the maximum latency in parallel data stream processing devices or computer systems. In doing so, the maximum latency, ie the time between the entry of a data element into the pipeline and the exit of the processed data element from the pipeline, is reduced or minimized. The inventive method is particularly suitable for data processing of audio, video or sensor data in real time. The assignment of the tasks T is preferably carried out dynamically at runtime. By the method according to the invention the data throughput is increased. Furthermore, the fault tolerance against a failure of a data processing unit can be increased. The prioritization function PF for calculating the execution priority AP of a task T is preferably configurable. This increases the flexibility of the data processing device 1 for various applications. In one possible embodiment, the execution priority AP of a task is calculated according to a position of the data element to be processed by the task T within the received serial data stream DS. The calculation of the execution priority AP as a function of the position can be carried out in a variant embodiment with a configurable calculation function or prioritization function PF, which is located, for example, in a configuration memory of the data processing device 1. The calculation function can be configured or adapted in a possible embodiment variant via a configuration interface.
Bei der Datenverarbeitungsvorrichtung 1 gemäß der Erfindung, wie sie beispielsweise in Fig. 2 dargestellt ist, kann es sich beispielsweise um einen Netzwerkknoten eines Netzwerkes handeln. Ein Netzwerkknoten verfügt dabei über mindestens eine Datenschnittstelle zum Empfang eines seriellen Datenstromes DS . Die Daten können über eine drahtgebundene oder draht- lose Schnittstelle der DatenverarbeitungsVorrichtung 1 zur Datenverarbeitung empfangen werden. Die nach dem Pipelineprinzip verarbeiteten Daten werden bei einer möglichen Ausführungsvariante durch die Datenverarbeitungsvorrichtung 1, beispielsweise einem Netzwerkknoten, über eine weitere Daten- schnittsteile wieder ausgegeben. In der in Fig. 2 dargestellten Datenverarbeitungsvorrichtung 1 kann es sich um einen Multicore-Prozessor handeln, der in einem beliebigen Computersystem, beispielsweise einem Embedded System, eingesetzt werden kann. Bei einer möglichen Ausführungsvariante sind die in Fig. 2 dargestellten Prioritätswarteschlangen in die Datenverarbeitungseinheiten bzw. Prozessorkerne 2-i integriert. The data processing device 1 according to the invention, as shown for example in FIG. 2, may be, for example, a network node of a network. A network node has at least one data interface for receiving a serial data stream DS. The data can be received via a wired or wireless interface of the data processing device 1 for data processing. In a possible embodiment variant, the data processed according to the pipeline principle are output by the data processing device 1, for example a network node, via a further data section. The data processing device 1 shown in FIG. 2 may be a multi-core processor that can be used in any computer system, for example an embedded system. In one possible embodiment variant, the priority queues shown in FIG. 2 are integrated into the data processing units or processor cores 2-i.

Claims

Datenverarbeitungsvorrichtung (1) zur Datenverarbeitung von Datenelementen eines seriellen Datenstromes (DS), wobei ein empfangenes Datenelement des seriellen Datenstromes (DS) durch mehre Datenverarbeitungseinheiten (2), die Zugriff auf eine Prioritätswarteschlange (3) haben, mehrstufig nach dem Fließbandprinzip durch Tasks (T) parallel verarbeitet werden, Data processing device (1) for data processing of data elements of a serial data stream (DS), wherein a received data element of the serial data stream (DS) is processed in several stages by tasks (T ) are processed in parallel,
wobei eine priorisierte Ausführung der Tasks (T) in Abhängigkeit von in der Prioritätswarteschlange (3) angegebenen Ausführungsprioritäten (AP) der Tasks (T) erfolgt, die jeweils von der Position des durch die Tasks (T) zu verarbeitenden Datenelementes innerhalb des empfangenen Datenstromes (DS) abgeleitet wird. wherein a prioritized execution of the tasks (T) takes place depending on the execution priorities (AP) of the tasks (T) specified in the priority queue (3), which in each case depend on the position of the data element to be processed by the tasks (T) within the received data stream ( DS) is derived.
Datenverarbeitungsvorrichtung nach Anspruch 1, Data processing device according to claim 1,
wobei die Datenverarbeitungsvorrichtung (1) mindestens eine Datenschnittstelle zum Empfang des seriellen Datenstromes (DS) aufweist, wherein the data processing device (1) has at least one data interface for receiving the serial data stream (DS),
wobei die empfangenen Datenelemente des Datenstromes (DS) bei ihren Empfang einen generierten Zeitstempel oder eine generierte Datenelement-Nummer zur Kennzeichnung ihrer Position innerhalb des empfangenen Datenstromes (DS) erhalten . whereby the received data elements of the data stream (DS) receive a generated time stamp or a generated data element number upon receipt to identify their position within the received data stream (DS).
Datenverarbeitungsvorrichtung nach Anspruch 1 oder 2, wobei durch eine Berechnungseinheit mittels einer Priori- sierungsfunktion (PF) die Ausführungspriorität (AP) einer Task (T) in Abhängigkeit von der Position des durch die Task (T) zu verarbeitenden Datenelementes innerhalb des Datenstromes (DS) berechnet wird. Data processing device according to claim 1 or 2, wherein the execution priority (AP) of a task (T) is determined by a calculation unit using a prioritization function (PF) depending on the position of the data element to be processed by the task (T) within the data stream (DS). is calculated.
Datenverarbeitungsvorrichtung nach einem der vorangehenden Ansprüche 1 bis 3, Data processing device according to one of the preceding claims 1 to 3,
wobei die Datenverarbeitungsvorrichtung (1) eine globale Prioritätswarteschlange (3) für alle Datenverarbeitungseinheiten (2) aufweist. wherein the data processing device (1) has a global priority queue (3) for all data processing units (2).
5. Datenverarbeitungsvorrichtung nach einem der vorangehenden Ansprüche 1 bis 3, 5. Data processing device according to one of the preceding claims 1 to 3,
wobei jede Datenverarbeitungseinheit (2-i) eine eigene lokale Prioritätswarteschlange (3-i) aufweist. wherein each data processing unit (2-i) has its own local priority queue (3-i).
Datenverarbeitungsvorrichtung nach einem der vorangehen den Ansprüche 1 bis 5, Data processing device according to one of the preceding claims 1 to 5,
wobei die Prioritätswarteschlange (3) die durch die Datenverarbeitungseinheit (2) sequentiell auszuführenden Tasks (T) und deren jeweiligen Ausführungsprioritäten (AP) enthält. wherein the priority queue (3) contains the tasks (T) to be executed sequentially by the data processing unit (2) and their respective execution priorities (AP).
Datenverarbeitungsvorrichtung nach Anspruch 6, Data processing device according to claim 6,
wobei die Prioritätswarteschlange (3) ferner für die aus zuführende Task (T) einen Adresszeiger (P) auf eine Datenspeicheradresse eines Datenspeichers enthält, an der die durch die Task (T) zu verarbeitenden Daten des Daten elementes gespeichert sind. wherein the priority queue (3) further contains an address pointer (P) for the task (T) to be executed to a data storage address of a data memory, at which the data of the data element to be processed by the task (T) is stored.
Datenverarbeitungsvorrichtung nach einem der vorangehenden Ansprüche 1 bis 7, Data processing device according to one of the preceding claims 1 to 7,
wobei ein Task-Scheduler (4) vorgesehen ist, welcher die Task (T) und deren berechnete Ausführungspriorität (AP) in mindestens eine Prioritätswarteschlange (3) einfügt. wherein a task scheduler (4) is provided, which inserts the task (T) and its calculated execution priority (AP) into at least one priority queue (3).
9. Datenverarbeitungsvorrichtung nach Anspruch 8, 9. Data processing device according to claim 8,
wobei die Zuweisung der Tasks (T) zu verschiedenen Datenverarbeitungseinheiten 2-i durch den Task-Scheduler (4) zur Laufzeit der Datenverarbeitung erfolgt. wherein the tasks (T) are assigned to different data processing units 2-i by the task scheduler (4) at runtime of the data processing.
Datenverarbeitungsvorrichtung nach einem der vorangehen den Ansprüche 1 bis 9, Data processing device according to one of the preceding claims 1 to 9,
wobei der serielle Datenstrom (DS) Datenelemente aufweist, die Audiodaten, Videodaten oder Sensordaten enthalten, welche in Echtzeit durch die Datenverarbeitungs Vorrichtung (1) verarbeitet werden. wherein the serial data stream (DS) has data elements that contain audio data, video data or sensor data, which are processed in real time by the data processing device (1).
11. Datenverarbeitungsvorrichtung nach einem der vorangehenden Ansprüche 5 bis 10, 11. Data processing device according to one of the preceding claims 5 to 10,
wobei, falls eine lokale Prioritätswarteschlange (3-i) einer Datenverarbeitungseinheit (2-i) leer ist, eine Task (T) mit der höchsten Ausführungspriorität (AP) aus einer anderen lokalen Prioritätswarteschlange (2-i) in die leere Prioritätswarteschlange (2-i) automatisch transferiert wird . wherein, if a local priority queue (3-i) of a data processing unit (2-i) is empty, a task (T) with the highest execution priority (AP) from another local priority queue (2-i) into the empty priority queue (2-i) i) is transferred automatically.
12. Datenverarbeitungsvorrichtung nach einem der vorangehenden Ansprüche 8 bis 11, 12. Data processing device according to one of the preceding claims 8 to 11,
wobei eine Task (T) nach ihrer Ausführung durch eine Datenverarbeitungseinheit (2) mindestens eine Nachfolge- Task erzeugt und an den Task-Scheduler (4) übergibt. wherein a task (T) generates at least one follow-up task after its execution by a data processing unit (2) and hands it over to the task scheduler (4).
13. Datenverarbeitungsvorrichtung nach einem der vorangehenden Ansprüche 1 bis 12, 13. Data processing device according to one of the preceding claims 1 to 12,
wobei die Ausführungspriorität (AP) von der Empfangsreihenfolge des empfangenen Datenelementes innerhalb des Datenstromes (DS) abgeleitet wird, whereby the execution priority (AP) is derived from the reception order of the received data element within the data stream (DS),
wobei Tasks (T) zur Verarbeitung früher empfangener Datenelemente eine höhere Ausführungspriorität (AP) erhalten . where tasks (T) for processing previously received data items are given a higher execution priority (AP).
14. Datenverarbeitungsvorrichtung nach einem der vorangehenden Ansprüche 1 bis 13, 14. Data processing device according to one of the preceding claims 1 to 13,
wobei die Datenverarbeitungseinheiten (2-i) Prozessoren sind, welche die Tasks (T) entsprechend ihrer Ausführungspriorität (AP) ausführen. wherein the data processing units (2-i) are processors that execute the tasks (T) according to their execution priority (AP).
15. Verfahren zum Verarbeiten von Datenelementen mit geringer maximaler Latenzzeit, 15. Method for processing data elements with low maximum latency,
wobei die Datenelemente (DE) in einem seriellen Datenstrom (DS) empfangen werden und durch mehrere Datenverar- beitungseinheiten (2-i), die Zugriff auf eine Prioritätswarteschlange (3) haben, mehrstufig nach dem Fließbandprinzip durch Tasks (T) parallel verarbeitet werden, wobei eine priorisierte Ausführung der Tasks (T) in Abhängigkeit von den in der Prioritätswarteschlange (3) angegebenen Ausführungsprioritäten (AP) der Tasks (T) erfolgt, die jeweils von der Position des durch die Task (T) zu verarbeitenden Datenelementes innerhalb des empfangenen Datenstromes (DS) abgeleitet wird. wherein the data elements (DE) are received in a serial data stream (DS) and are processed in parallel by several data processing units (2-i), which have access to a priority queue (3), according to the assembly line principle by tasks (T), wherein a prioritized execution of the tasks (T) takes place depending on the execution priorities (AP) of the tasks (T) specified in the priority queue (3), which in each case depend on the position of the data element to be processed by the task (T) within the received data stream (DS) is derived.
PCT/EP2011/073556 2010-12-30 2011-12-21 Method and device for processing data elements having minimal latency WO2012089579A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE102010064375.0 2010-12-30
DE102010064375 2010-12-30
DE102011007603A DE102011007603A1 (en) 2010-12-30 2011-04-18 Method and apparatus for processing data elements with minimal latency
DE102011007603.4 2011-04-18

Publications (2)

Publication Number Publication Date
WO2012089579A1 true WO2012089579A1 (en) 2012-07-05
WO2012089579A9 WO2012089579A9 (en) 2013-12-12

Family

ID=45446018

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2011/073556 WO2012089579A1 (en) 2010-12-30 2011-12-21 Method and device for processing data elements having minimal latency

Country Status (2)

Country Link
DE (1) DE102011007603A1 (en)
WO (1) WO2012089579A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2881821A1 (en) * 2013-12-05 2015-06-10 Blue Yonder GmbH Processor core array for characterizing behavior properties of equipment, and method
EP2881820A1 (en) * 2013-12-05 2015-06-10 Blue Yonder GmbH Data processing device and method for characterizing behavior of equipment under observation
FR3034905A1 (en) * 2015-04-09 2016-10-14 Stmicroelectronics (Grenoble 2) Sas DEVICE FOR SYNCHRONIZING TASKS OF INTEGRATED CIRCUITS COUPLED TO A MEMORY ACCESS CONTROLLER
US10169051B2 (en) 2013-12-05 2019-01-01 Blue Yonder GmbH Data processing device, processor core array and method for characterizing behavior of equipment under observation

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107797853B (en) * 2016-09-07 2020-09-08 深圳市中兴微电子技术有限公司 Task scheduling method and device and multi-core processor
US20230275838A1 (en) * 2022-02-28 2023-08-31 Dell Products L.P. Edge node workload acquisition for distribution of edge workloads

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19907085C1 (en) * 1999-02-19 2000-04-13 Siemens Ag Transmission of packet data in radio communications system
US20080219279A1 (en) * 2007-03-06 2008-09-11 Yen Hsiang Chew Scalable and configurable queue management for network packet traffic quality of service
WO2009014868A2 (en) * 2007-07-24 2009-01-29 Microsoft Corporation Scheduling threads in multi-core systems
US20100293312A1 (en) * 2009-04-27 2010-11-18 Sonnier David P Network Communications Processor Architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19907085C1 (en) * 1999-02-19 2000-04-13 Siemens Ag Transmission of packet data in radio communications system
US20080219279A1 (en) * 2007-03-06 2008-09-11 Yen Hsiang Chew Scalable and configurable queue management for network packet traffic quality of service
WO2009014868A2 (en) * 2007-07-24 2009-01-29 Microsoft Corporation Scheduling threads in multi-core systems
US20100293312A1 (en) * 2009-04-27 2010-11-18 Sonnier David P Network Communications Processor Architecture

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FINKEL R A ED - FINKEL R A: "An Operating Systems Vade Mecum", 1 January 1989, OPERATING SYSTEMS VADE MECUM, ENGLEWOOD CLIFFS, PRENTICE HALL, US, PAGE(S) 28 - 59, XP002162713 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2881821A1 (en) * 2013-12-05 2015-06-10 Blue Yonder GmbH Processor core array for characterizing behavior properties of equipment, and method
EP2881820A1 (en) * 2013-12-05 2015-06-10 Blue Yonder GmbH Data processing device and method for characterizing behavior of equipment under observation
US10169051B2 (en) 2013-12-05 2019-01-01 Blue Yonder GmbH Data processing device, processor core array and method for characterizing behavior of equipment under observation
US10481923B2 (en) 2013-12-05 2019-11-19 Jda Software, Inc. Data processing device, processor core array and method for characterizing behavior of equipment under observation
US10922093B2 (en) 2013-12-05 2021-02-16 Blue Yonder Group, Inc. Data processing device, processor core array and method for characterizing behavior of equipment under observation
FR3034905A1 (en) * 2015-04-09 2016-10-14 Stmicroelectronics (Grenoble 2) Sas DEVICE FOR SYNCHRONIZING TASKS OF INTEGRATED CIRCUITS COUPLED TO A MEMORY ACCESS CONTROLLER
US10089156B2 (en) 2015-04-09 2018-10-02 Stmicroelectronics (Grenoble 2) Sas Electronic device for synchronizing tasks of an electronic appliance

Also Published As

Publication number Publication date
DE102011007603A1 (en) 2012-07-05
WO2012089579A9 (en) 2013-12-12

Similar Documents

Publication Publication Date Title
DE102014011332B4 (en) PRIORITIZE INSTRUCTIONS BASED ON TYPE
EP0048767B1 (en) Priority stage controlled interruption device
WO2012089579A1 (en) Method and device for processing data elements having minimal latency
DE19983476B4 (en) Method and circuitry for scheduling operations using a dependency matrix
EP1756714A2 (en) Method for testing the real-time capacity of a system
DE112011102242T5 (en) Apparatus for processing a batch processing unit
DE112020004651B4 (en) MULTI-TENANT ETL RESOURCE SHARING
EP1428084B1 (en) Method and device for determining time in a bus system and corresponding bus system
DE102013206114B3 (en) Method and device for transferring data elements between threads of a parallel computer system
DE60303444T2 (en) PROCESS CONTROL USING QUANTUM VALUES AND DEFICIT VALUES
DE102014103139A1 (en) Parallelized execution of single-core control software on multi-core vehicle control units
DE102004061339A1 (en) Context-scheduling method for e.g. multithreaded microcontroller and/or micro processor system, involves executing scheduling of threads that are to be processed by multithreaded processor, based on index variables assigned by threads
WO2011120814A1 (en) Divided central data processing
DE112015007097B4 (en) Transmission control device, vehicle and transmission control method
DE102013114451B4 (en) Method for distributing a processor load across real-time processor threads
DE102018123563B4 (en) Method for inter-core communication in a multi-core processor
DE102011083468A1 (en) Circuit arrangement for scheduling in a data processing
DE10228778B4 (en) Hardware method for implementing atomic semaphore operations using code macros
DE60315264T2 (en) TIMEBOX-CONTROLLED SCHEDULING OF SOFTWARE COMPONENTS IN HARD REAL-TIME SYSTEMS
DE102021124135B4 (en) Method and device for digital signal processing
DE102012224044B4 (en) Apparatus and method for processing time-stamped data
EP1047990B1 (en) Method and device for controlling processes in a computer system
EP1393173B1 (en) Configuration for executing data processing processes and method for determining the optimal access strategy
DE102005009083A1 (en) Multithread processor, has synchronizing unit with logic circuit, which generates context switching signal with receipt of loading cycle indication flag having positive logical signal level and with validity signal having negative level
DE60304468T2 (en) SPACECAKE COPROCESSOR COMMUNICATION

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11805015

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11805015

Country of ref document: EP

Kind code of ref document: A1