WO2011120814A1 - Geteilte zentrale verarbeitung von daten - Google Patents

Geteilte zentrale verarbeitung von daten Download PDF

Info

Publication number
WO2011120814A1
WO2011120814A1 PCT/EP2011/054019 EP2011054019W WO2011120814A1 WO 2011120814 A1 WO2011120814 A1 WO 2011120814A1 EP 2011054019 W EP2011054019 W EP 2011054019W WO 2011120814 A1 WO2011120814 A1 WO 2011120814A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
tasks
processing unit
time
pipeline
Prior art date
Application number
PCT/EP2011/054019
Other languages
English (en)
French (fr)
Inventor
Eberhard Boehl
Ruben Bartholomae
Original Assignee
Robert Bosch Gmbh
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 Robert Bosch Gmbh filed Critical Robert Bosch Gmbh
Priority to US13/637,843 priority Critical patent/US8910181B2/en
Publication of WO2011120814A1 publication Critical patent/WO2011120814A1/de

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/5083Techniques for rebalancing the load in a distributed system
    • 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

Definitions

  • the invention relates to a circuit arrangement for a data processing system for processing a plurality of tasks by means of a central processing unit and to a corresponding method for processing a plurality of tasks in a data processing system.
  • CPUs central processing units
  • the processor or the CPU executes a program or executes a program, which can usually consist of various subprograms, which in turn can be dedicated to different tasks (tasks) (multitasking).
  • multitasking can also effect a so-called "timeshare", which apparently serves several users at the same time.
  • timeshare which apparently serves several users at the same time.
  • multitasking refers to the ability of a CPU to perform multiple tasks concurrently. In doing so, the different processes are always activated alternately at such short intervals that an impression of simultaneity arises.
  • circuitry implemented in a data processing architecture is configured to appropriately assign the processing unit (CPU or ALU) available to the system the tasks to be processed.
  • processing unit CPU or ALU
  • Suitable embodiments of the circuit arrangement presented according to the invention as well as of the method presented according to the invention emerge from the respective dependent claims and the description.
  • a circuitry for a data processing system for processing a plurality of tasks is provided by a central processing unit having a processing capacity associated with the processing unit, the circuitry controlling that the processing capacity of the processing unit is uniform and independent of a need of the respective tasks each task is divided up to their respective processing and assigned to the respective tasks, the processing unit for processing offset in time.
  • the circuit arrangement proposed according to the invention accordingly distributes the processing or computing capacity provided by a central processing unit uniformly to all tasks to be processed. Therefore, there is no need to prioritize the tasks to be processed, and thus also the o. G. Worst case execution time (WCET) automatically determined exactly.
  • the processing unit is assigned to each task independently of a separate request from the task to be processed. As a result, the computation time for all tasks to be processed for n tasks is reduced to 1 / n, which, however, if this computation time is sufficient for each of the tasks to be processed, this does not restrict.
  • the method proposed according to the invention or the circuit arrangement proposed according to the invention can be implemented in a so-called multi-channel sequencer (MCS) of a generic timer module (GTM).
  • MCS multi-channel sequencer
  • GTM generic timer module
  • the Multi Channel Sequencer serves several channels. According to the invention, it can be provided that the circuit arrangement is configured to each assign a channel with its own registers to each of the tasks to be processed and to select the respective registers according to the assignment of the respective task to the processing unit and to connect them accordingly to the processing unit.
  • the circuit arrangement is configured to assign the processing unit each of the tasks for a constant time unit which is the same for all tasks. If a processing takes several time units, for example when copying data from the RAM into a register or vice versa, then the processing can possibly be subdivided into sub-tasks, each with a time unit, the sub-tasks being consecutive but interrupted by the respective other tasks be executed for each unit of time. This means that an assignment of the processing unit to a task, in the case that a plurality of time units are necessary for processing the task, is repeated and preferably carried out periodically with a period corresponding to one processing cycle of the processing unit.
  • time duration corresponds to one clock of a clock cycle of the processing unit and the clock results from the length of the clock cycle and the number of channels or tasks to be processed.
  • the circuit arrangement is configured to execute a processing of commands of the respective registers of the respective channels of the tasks in a pipeline with several stages. in which the respective registers are switched to correspondingly clocked pipeline registers of the pipeline at the time of execution and the pipeline stages are processed in parallel in a time period, but in each case for different channels.
  • an instruction decoding and a memory access for a first task take place in each case in time segments in which a second task is assigned to the processing unit.
  • the present invention relates to a corresponding method for processing a plurality of tasks in a data processing system by means of a central processing unit with a processing capacity allocated to the processing unit.
  • the processing capacity of the processing unit is equally divided into the respective tasks regardless of a need of the respective tasks.
  • the corresponding tasks are processed offset in time until their respective processing.
  • each of the tasks each assigned a channel with registers and the respective registers are selected according to the assignment of the respective tasks to the central processing unit and connected to the processing unit accordingly.
  • FIG. 1 shows an architecture model in which the method proposed according to the invention can be carried out.
  • FIG. 2 shows a possible embodiment of a pipelining, according to which command processing can be carried out according to the method proposed according to the invention.
  • FIG. 1 shows an architecture model of a multi-channel sequencer (MCS), wherein the multi-channel sequencer can be part of a so-called generic timer module (GTM).
  • MCS multi-channel sequencer
  • GTM generic timer module
  • the method proposed according to the invention can be implemented, for example, in such a Multi Channel Sequencer (MCS) of a Generic Timer Module (GTM).
  • MCS Multi Channel Sequencer
  • GTM Generic Timer Module
  • the MCS serves several channels T, for example 8 or 16, which corresponds to the tasks to be processed. This means that each task to be processed is assigned a channel.
  • the MCS 100 has a central processing unit 10 and a memory (RAM) 20.
  • the MCS 100 for example, operates T channels, each channel having its own microprogram located at different locations in the memory is.
  • each channel has its own command register (IR) 35, its own instruction counter (PC) 25, its own status register (STA) 45 and its own so-called general purpose register (GPR) 55 with N registers respectively in the Present illustration with 0 ... N- 1 are designated.
  • IR command register
  • PC instruction counter
  • STA status register
  • GPR general purpose register
  • each channel has its own interface 30, via which data in the respective GPRs 55 can be updated asynchronously, ie without waiting for processing of a corresponding channel, or data can be output is an ARU interface (Advanced Routing Unit Interface) .
  • the plurality of interfaces 30, corresponding to the number of channels to be processed, are again represented in FIGURE 1 by an indicated superposition of the symbols representing the respective interfaces 30.
  • ARU interface 30 of a channel is completed by a respective control bit register (ACB) 65.
  • ACB control bit register
  • control bits are forwarded with the data of the GPRs 55 to the ARU interface 30 and sent there or are updated with each ARU read command.
  • All channels served by the MCS 100 use the same arithmetic logic unit (ALU) 10, the same instruction decoder 40, the same instruction predecoder 50, the same RAM 20, and the same address decoder 15 for the RAM 20, as shown in FIG Figure 1 is shown.
  • ALU arithmetic logic unit
  • an external (host) CPU intervenes via a host CPU interface 60 via the RAM 20 into the process, i. H. Data is transferred from or to the handshake interface 60 of the host CPU in a dedicated time slot or unit of time.
  • the host CPU itself is not located in the MCS.
  • Processing of instructions may, for example, as shown in Figure 2, be carried out in a pipeline with a plurality of pipeline stages. 4 pipeline stages Stage 0, Stage 1, Stage 2, Stage 3 ter Kunststoffen.
  • the pipeline of pipelines is a kind of assembly line for breaking the execution of instructions into sub-instructions according to the number of pipeline stages, whereby the pipeline stages can be performed in parallel for several instructions (ie tasks). This means that, instead of a task being completely processed during a processing cycle 202 of a processor, only one partial task is executed each time, although different subtasks of several tasks are processed simultaneously.
  • the pipeline stages may be preferably:
  • RAM access may be reading a date or command or writing a date.
  • the address is formed from the relevant instruction counter (PC).
  • PC relevant instruction counter
  • Stage 1 then accesses random access memory (RAM), loading the appropriate command from memory.
  • RAM random access memory
  • Stage 2 is then preceded by a command predecode. This pipeline stage is shown in FIGS. 1 and 2 with reference number 2.
  • Stage 3 finally, the command processing is performed, which is performed for all tasks by one and the same processing unit, namely the ALU 10 shown here.
  • This pipeline stage is shown by the reference numeral 3 in FIGS. 1 and 2. All pipeline stages or pipeline stages 0, 1, 2, 3 are processed in parallel, but each time for a different channel or a task assigned to the corresponding channel.
  • FIG. 2 shows by way of example the temporal behavior of the execution of MCS programs. In this example, with a selected cyclic processing cycle 202 of T + 1 clocks, all T MCS channels are active in each pipeline stage, ie stage 0, stage 1, stage 2, stage 3, exactly one clock or other processing time.
  • This provision of a processing time for each of the tasks (channels) occurs regardless of whether a task is to be performed on the corresponding channel at all.
  • the CPU is also allocated a time slot 250 of at least one clock or another processing time (exactly one clock in FIG. 2). During this time, the CPU has the ability to write data to and from RAM 20.
  • channel Co here designated 204
  • channel C is 0 run the RAM access in the next cycle
  • channel Ci here designated 206
  • the corresponding "own" registers T * PC or T * IR are automatically connected depending on the channel. Instructions that require only one processing cycle execution time process the operands 200 and possibly 300 from the own registers (GPRs) 55 or the direct operand from the pipeline in stage 3 (pipeline stage 3)
  • FIG. 2 illustrates the parallel processing of pipeline stages in, for example, T channels.
  • the pipeline comprises 4 pipeline stages, represented as stage 0, stage 1, stage 2 and stage 3.
  • a processing cycle 202 here corresponds to T + 1 clocks.
  • the pipeline stages are processed in parallel but each for a different channel.
  • the CPU will have at least one additional one
  • the designation "t” in the following designates a counter for a particular, here a first processing cycle 202.
  • FIG. 2 shows in detail that in the first pipeline stage 0 during a first processing cycle 202, in which the counter has the value " t ", a zeroth channel C 0 (t) 204, a first channel Ci (t) 206, a second channel C 2 (t) 208, a third channel C 3 (t) 210, etc. are sequentially executed .
  • the processing or execution of a ⁇ -1-th channel C T -i (t) 218 takes place.
  • the value of the counter is increased by 1 to "t + 1".
  • the zeroth channel C 0 (t + 1) 220, the first channel Ci (t + 1) 222 and the second channel C 2 (t + 1) 224 etc. are processed, here then, as a rule, different subtasks of the tasks assigned to the respective channels are processed relative to the processing cycle 202.
  • Stage 1 For the further pipeline stages Stage 1, Stage 2, Stage 3, a processing of the respective channels starts offset by one clock.
  • the zeroth channel C 0 (t) 204, the first channel Ci (t) 206, the second channel C 2 (FIG. t) 208, etc. are processed or executed.
  • a time slot 250 is first provided to the CPU 60 in sequence and the zeroth channel
  • the zeroth channel C 0 (t) 204 is processed during the first processing cycle 202.
  • a processing or execution of a ⁇ -4 th channel C T -4 (t) 212 and the ⁇ 3 th channel C T -3 (t) 214 takes place
  • Next processing cycle with value "t + 1" for the counter is first the processing of the ⁇ -2-th channel C T -2 (t) 216 and the ⁇ -1-th channel C T- i (t) 218th
  • a special register TRG 75 shown in FIG. 1 provides the possibility of triggering channels among one another.
  • the channels themselves can, by comparison with time or position related signals (TBU) 85, place an event into a current time reference or control it in dependence on positions. Such a comparison is also performed in the ALU 10, where the TBU 85 can form an operand. Access to data of the ARU interface 30 is expected from a corresponding channel, and blocking reading ensures that no data inconsistency can occur.
  • TBU time or position related signals
  • the instruction predecoder 50 shown in Figure 1 allows for providing a datum from the RAM 20 in the next processing cycle. For this purpose, a RAM data is converted into an instruction which writes the date in the required destination register. In addition, the instruction predecoder 50 ensures that with blocking instructions enabled, subsequent instructions from the previous pipeline stages are discarded.
  • the proposed circuit arrangement according to the invention has a significant effect on the latency of a command processing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

Die Erfindung betrifft eine Schaltungsanordnung für ein datenverarbeitendes System zur Abarbeitung von mehreren Aufgaben mittels einer zentralen Verarbeitungseinheit mit einer der Verarbeitungseinheit zugeordneten Verarbeitungskapazität, wobei die Schaltungsanordnung dazu konfiguriert ist, die Verarbeitungskapazität der Verarbeitungseinheit gleichmäßig auf die jeweiligen Aufgaben aufzuteilen und in den dadurch entstehenden Zeiteinheiten die jeweiligen Aufgaben bis zu deren jeweiliger Abarbeitung zeitlich versetzt zu bearbeiten. Ferner betrifft die vorliegende Erfindung ein entsprechendes Verfahren.

Description

Beschreibung
Titel
Geteilte zentrale Verarbeitung von Daten Die Erfindung betrifft eine Schaltungsanordnung für ein Datenverarbeitungssystem zur Abarbeitung einer Mehrzahl von Aufgaben mittels einer zentralen Verarbeitungseinheit und ein entsprechendes Verfahren zur Abarbeitung einer Mehrzahl von Aufgaben in einem datenverarbeitenden System. Stand der Technik
In datenverarbeitenden Systemen, wie bspw. in Rechner- und Mikroprozessor- Systemen, Steuereinheiten oder peripheren Einheiten sowie anderen informationsverarbeitenden Systemen, werden zum Zweck der Berechnung und Verarbei- tung von Daten häufig sogenannte CPUs (Central Processing Units) als zentrale
Verarbeitungseinheiten eines Computers oder aber auch lediglich einfache arithmetisch-logische Einheiten (ALUs) verwendet. Ferner werden zur Speicherung von Programmen und Daten entsprechende Speicher wie RAM, ROM, EPROM, EEPROM usw., eingesetzt. Der Prozessor bzw. die CPU arbeitet ein Programm ab bzw. führt ein Programm aus, welches in der Regel aus verschiedenen Teilprogrammen bestehen kann, die wiederum unterschiedlichen Aufgaben (Tasks) gewidmet sein können (Multitasking).
Je nach einem aktuellen Szenario, d. h. welche Aufgaben zu diesem Zeitpunkt eine Abarbeitung anfordern, wird dabei ad hoc entschieden, welche Aufgabe durch die CPU abgearbeitet werden soll. Dabei ist es denkbar, dass unterschiedlichen Aufgaben unterschiedliche Prioritäten zugewiesen sind, so dass bei Abarbeitung der Aufgaben die den Aufgaben jeweils zugeordnete Priorität beachtet wird und entsprechend die Aufgabe der höchsten Priorität vorrangig bearbeitet wird. Dies geschieht bspw. durch einen sogenannten Interrupt, was einer kurzfristigen Unterbrechung eines Programms entspricht, um eine andere, prioritäts- höhere bzw. zeitkritische Verarbeitung einer anderen Aufgabe durchzuführen. Dabei wird zunächst eine Unterbrechungsanforderung gestellt, woraufhin eine Unterbrechungsroutine ausgeführt wird und die zuvor bearbeitete Aufgabe unterbrochen und nach Beendigung des Interrupts diese Aufgabe an der Unterbrechungsstelle fortgesetzt wird. Das bedeutet, dass in der Regel dabei eine aktuelle Anforderung einer Aufgabe mit höchster Priorität vorrangig bearbeitet wird und dafür eine sich bereits in Bearbeitung befindende Aufgabe unterbrochen wird. Der betreffende Interrupt veranlasst die CPU zu einem Sprung in einen betreffenden Programmabschnitt.
Das genannte Multitasking kann auch ein sogenanntes "Timesharing" bewirken, das mehrere Benutzer scheinbar gleichzeitig bedient. Generell bezeichnet Multitasking die Fähigkeit einer CPU, mehrere Aufgaben (Tasks) nebenläufig auszuführen. Dabei werden die verschiedenen Prozesse in so kurzen Abständen immer abwechselnd aktiviert, dass ein Eindruck der Gleichzeitigkeit entsteht.
Die Auswahl der einzelnen Aufgaben zuzuordnenden Prioritäten und die jeweiligen Abarbeitungszeiten hochpriorisierter Aufgaben können allerdings dazu führen, dass Aufgaben mit niedriger Priorität selten und ggf. gar nicht abgearbeitet werden. Dies ist dann der Fall, wenn quasi dauerhaft o. g. Interrupt-Anfragen kommen und somit die Abarbeitung einer niedrigpriorisierten Aufgabe nicht vollendet werden kann. Dieser Fall zwingt einen jeweiligen Anwender zu Maßnahmen, die eine sogenannte Worst Case Execution Time (WCET), d. h. eine maximale Ausführungszeit garantieren und damit ein Mindestmaß an Abarbeitungskapazität der CPU für jede zu bearbeitende Aufgabe gewähren. Allerdings hat sich gezeigt, dass solche Garantien sehr aufwändig sein können und darüber hinaus die Leistungsfähigkeit des zugrundeliegenden Systems einschränken können. Ferner ist hier ein Interrupt Controller mit einer Prioritätssteuerung notwendig. Ein Interrupt Controller ist eine Funktionseinheit, die für die Entgegennahme und Verteilung von Interrupts zuständig ist.
Demnach wäre es wünschenswert, eine Möglichkeit vorzusehen, die zur Verfügung stehende Abarbeitungskapazität einer zentralen Recheneinheit bzw. CPU so zu nutzen, dass auf einfache Weise gewährleistet wird, dass jede abzuarbeitende Aufgabe, egal welcher Priorität, innerhalb einer bestimmten Zeit abgearbeitet wird. Offenbarung der Erfindung
Vor diesem Hintergrund werden eine Schaltungsanordnung nach Anspruch 1 und ein entsprechendes Verfahren mit den Merkmalen von Anspruch 7 bereitgestellt.
Die Schaltungsanordnung, die in einer datenverarbeitenden Architektur implementiert ist, ist dazu konfiguriert, der dem System zur Verfügung stehenden Verarbeitungseinheit (CPU oder ALU), die zu bearbeitenden Aufgaben entsprechend zuzuweisen. Geeignete Ausführungsformen der erfindungsgemäß vorgestellten Schaltungsanordnung sowie des erfindungsgemäß vorgestellten Verfahrens ergeben sich aus den jeweiligen abhängigen Ansprüchen und der Beschreibung.
Kern und Vorteile der Erfindung
Gemäß Patentanspruch 1 wird eine Schaltungsanordnung für ein datenverarbeitendes System zur Abarbeitung einer Mehrzahl von Aufgaben mittels einer zentralen Verarbeitungseinheit mit einer der Verarbeitungseinheit zugeordneten Verarbeitungskapazität bereitgestellt, wobei die Schaltungsanordnung dabei steuert, dass die Verarbeitungskapazität der Verarbeitungseinheit gleichmäßig und unabhängig von einem Bedarf der jeweiligen Aufgaben auf die jeweiligen Aufgaben bis zu deren jeweiliger Abarbeitung aufgeteilt und den jeweiligen Aufgaben die Verarbeitungseinheit zur Verarbeitung zeitlich versetzt zugeordnet wird. Die erfindungsgemäß vorgeschlagene Schaltungsanordnung teilt demnach die durch eine zentrale Verarbeitungseinheit bereitgestellte Verarbeitungs- bzw. Rechenkapazität gleichmäßig auf alle zu bearbeitenden Aufgaben auf. Daher bedarf es keiner Priorisierung der zu bearbeitenden Aufgaben, und ferner wird somit auch die o. g. Worst Case Execution Time (WCET) automatisch genau bestimmt. Ferner wird die Verarbeitungseinheit jeder Aufgabe unabhängig von einer gesonderten Anforderung seitens der zu bearbeitenden Aufgabe zugeteilt. Dadurch verringert sich zwar die Rechenzeit für alle zu bearbeitenden Aufgaben bei n Aufgaben auf 1/n, was allerdings, wenn diese Rechenzeit für jede der zu bearbeitenden Aufgaben ausreichend ist, keine Einschränkung bedeutet.
Durch Einsatz der erfindungsgemäß vorgeschlagenen Schaltungsanordnung bzw. durch Durchführung des erfindungsgemäß vorgeschlagenen Verfahrens ist ferner genau vorhersehbar, wann eine Verarbeitung der jeweiligen Aufgaben abgeschlossen ist.
Das erfindungsgemäß vorgeschlagene Verfahren bzw. die erfindungsgemäß vorgeschlagene Schaltungsanordnung kann in einem sogenannten Multi Channel Sequencer (MCS) eines Generic Timer Modules (GTM) implementiert werden.
Dabei bedient der Multi Channel Sequencer mehrere Kanäle. Erfindungsgemäß kann vorgesehen sein, dass die Schaltungsanordnung dazu konfiguriert ist, jeder der zu bearbeitenden Aufgaben jeweils einen Kanal mit eigenen Registern zuzuteilen und die jeweiligen Register entsprechend der Zuordnung der jeweiligen Aufgabe zu der Verarbeitungseinheit auszuwählen und entsprechend mit der Verarbeitungseinheit zu verbinden.
Ferner ist gemäß einer weiteren Ausführungsform der erfindungsgemäß vorgeschlagenen Schaltungsanordnung vorgesehen, dass die Schaltungsanordnung dazu konfiguriert ist, die Verarbeitungseinheit jeder der Aufgaben jeweils für eine konstante und für alle Aufgaben gleiche Zeiteinheit zuzuordnen. Falls eine Verarbeitung mehrere Zeiteinheiten in Anspruch nimmt, bspw. beim Kopieren von Daten vom RAM in ein Register oder umgekehrt, so kann die Verarbeitung ggf. in Teilaufgaben mit jeweils einer Zeiteinheit aufgeteilt werden, wobei die Teilaufgaben aufeinanderfolgend, aber unterbrochen von den jeweiligen anderen Aufgaben für jeweils eine Zeiteinheit ausgeführt werden. Das bedeutet, dass eine Zuordnung der Verarbeitungseinheit zu einer Aufgabe, im Falle, dass mehrere Zeiteinheiten zum Verarbeiten der Aufgabe nötig sind, wiederholt und vorzugsweise periodisch mit einer Periode entsprechend einem Bearbeitungszyklus der Verarbeitungseinheit erfolgt.
Dabei kann vorgesehen sein, dass die Zeitdauer einem Takt eines Taktzyklus der Verarbeitungseinheit entspricht und der Takt sich ergibt durch die Länge des Taktzyklus und der Anzahl von zu bearbeitenden Kanälen bzw. Aufgaben.
In einer weiteren Ausführungsform der erfindungsgemäß vorgeschlagenen Schaltungsanordnung kann vorgesehen sein, dass die Schaltungsanordnung dazu konfiguriert ist, eine Abarbeitung von Befehlen der jeweiligen Register der jeweiligen Kanäle der Aufgaben in einer Pipeline mit mehreren Stufen vorzuneh- men, wobei die jeweiligen Register zum Zeitpunkt der Abarbeitung in entsprechend getaktete Pipeline-Register der Pipeline umgeschaltet werden und die Pipeline-Stufen in einem Zeitabschnitt parallel, aber jeweils für verschiedene Kanäle verarbeitet werden.
Dabei kann vorgesehen sein, dass bspw. eine Befehlsdecodierung und ein Speicherzugriff für eine erste Aufgabe jeweils in Zeitabschnitten erfolgen, in welchen einer zweiten Aufgabe die Verarbeitungseinheit zugeordnet ist. Dies würde einem zweistufigen Pipelining bzw. einer zweistufigen Pipeline-Architektur entspre- chen.
Ferner betrifft die vorliegende Erfindung ein entsprechendes Verfahren zur Abarbeitung von mehreren Aufgaben in einem Datenverarbeitungssystem mittels einer zentralen Verarbeitungseinheit mit einer der Verarbeitungseinheit zugeordneten Verarbeitungskapazität. Dabei wird die Verarbeitungskapazität der Verarbeitungseinheit gleichmäßig und unabhängig von einem Bedarf der jeweiligen Aufgaben auf die jeweiligen Aufgaben aufgeteilt. In den dadurch entstehenden einzelnen Zeiteinheiten werden die entsprechenden Aufgaben bis zu deren jeweiliger Abarbeitung zeitlich versetzt bearbeitet.
Dabei ist es denkbar, dass jeder der Aufgaben jeweils ein Kanal mit Registern zugeteilt und die jeweiligen Register entsprechend der Zuordnung der jeweiligen Aufgaben zu der zentralen Verarbeitungseinheit ausgewählt und mit der Verarbeitungseinheit entsprechend verbunden werden.
Ferner ist es möglich, dass eine Abarbeitung von Befehlen der jeweiligen Register der den jeweiligen Aufgaben zugeteilten Kanäle in einer Pipeline mit mehreren Pipeline-Stufen vorgenommen wird, wobei die jeweiligen Register zum Zeitpunkt der Abarbeitung in entsprechend getaktete Pipeline-Register der Pipeline umgeschaltet werden und die Pipeline-Stufen in einem Zeitabschnitt parallel, aber jeweils für verschiedene Kanäle verarbeitet werden.
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beiliegenden Zeichnungen. Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
Figur 1 zeigt ein Architektur-Modell, in welchem das erfindungsgemäß vorgeschlagene Verfahren ausgeführt werden kann.
Figur 2 zeigt eine mögliche Ausführungsform eines Pipelining, gemäß welchem Befehlsverarbeitungen gemäß dem erfindungsgemäß vorgeschlagenen Verfahren vorgenommen werden können.
Ausführungsformen der Erfindung
Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird unter Bezugnahme auf die Zeichnungen schematisch ausführlich beschrieben. Dabei wird eine detaillierte Beschreibung von Aufbau und Funktion gegeben.
In Figur 1 ist ein Architektur-Modell eines Multi Channel Sequencers (MCS) gegeben, wobei der Multi Channel Sequencer Teil eines sogenannten Generic Timer Modules (GTM) sein kann. Die hier dargestellte Architektur wird insgesamt mit der Bezugsziffer 100 bezeichnet.
Das erfindungsgemäß vorgeschlagene Verfahren kann bspw. in einem derartigen Multi Channel Sequencer (MCS) eines Generic Timer Modules (GTM) implementiert sein. Der MCS bedient dabei mehrere Kanäle T, bspw. 8 oder 16, was den zu verarbeitenden Aufgaben entspricht. Das bedeutet, dass jeder zu verarbeitenden Aufgabe ein Kanal zugeteilt wird. Der MCS 100 verfügt über eine zentrale Verarbeitungseinheit 10 und einen Speicher (RAM) 20. In dem hier dargestellten Fall werden seitens der MCS 100 bspw. T Kanäle bedient, wobei jeder Kanal ein eigenes Mikro-Programm besitzt, das an unterschiedlichen Stellen des Speichers untergebracht ist. Zur Abarbeitung dieses Programms besitzt jeder Kanal ein eigenes Befehlsregister (IR) 35, einen eigenen Befehlszähler (PC) 25, ein eigenes Status-Register (STA) 45 und eigene sogenannte General Purpose Register (GPR) 55 mit jeweils N Registern, die in der vorliegenden Darstellung mit 0 ... N- 1 bezeichnet sind. Das bedeutet, dass in der hier dargestellten MCS-Architektur 100 T Befehlsregister ("HR) 35, T Befehlszähler (T*PC) 25 und T Status- Register (STA) 45 vorhanden sind, was jeweils durch ein angedeutetes Übereinanderlegen der entsprechenden Symbole kenntlich gemacht ist. Ferner besitzt jeder Kanal eine eigene Schnittstelle 30, über welche Daten in den jeweiligen GPRs 55 asynchron, d. h. ohne ein Warten auf Bearbeitung eines entsprechenden Kanals, aktualisiert werden können bzw. Daten ausgegeben werden können. Bei der Schnittstelle 30 kann es sich bspw. um ein ARU-Interface (Advanced Routing Unit -Interface) handeln. Die Mehrzahl der Schnittstellen 30, entsprechend der Anzahl der zu bearbeitenden Kanäle, ist in Figur 1 wiederum durch ein angedeutetes Übereinanderlegen der die jeweiligen Schnittstellen 30 repräsentierenden Symbole dargestellt. Gleiches gilt für die Darstellung der für jeden Kanal gesondert bereitgestellten jeweiligen Register. Zu Synchronisationszwecken wird eine Bearbeitung eines Kanals blockiert, was bedeutet, dass eine durchzuführende Operation und damit ein weiterer Programmablauf erst dann erfolgt, wenn angeforderte Daten über das jeweilige, dem entsprechenden Kanal zugeordnete ARU-Interface 30 eingetroffen oder abgeholt worden sind. Ein ARU- Interface 30 eines Kanals wird durch jeweils ein eigenes Controlbit-Register (ACB) 65 komplettiert. Auch hier wird durch ein angedeutetes Übereinanderlegen des entsprechenden Symbols kenntlich gemacht, dass für jeden der T Kanäle je ein Controlbit-Register 65 bereitgestellt wird. Diese Controlbits werden mit den Daten der GPRs 55 an das ARU-Interface 30 weitergeleitet und dort ausgesendet bzw. werden mit jedem ARU-Lesebefehl aktualisiert.
Alle von der MCS 100 bedienten Kanäle benutzen die gleiche arithmetischlogische Einheit (ALU) 10, den gleichen Instruktions-Dekoder 40, den gleichen Instruktions-Predekoder 50, den gleichen RAM 20 und den gleichen Adress- Dekoder 15 für den RAM 20, wie dies in Figur 1 dargestellt ist. In der hier dargestellten Architektur greift eine externe (Host-)CPU über ein Host-CPU-Interface 60 über den RAM 20 in den Ablauf ein, d. h. Daten werden in einem dafür reservierten Zeitschlitz bzw. einer Zeiteinheit von oder zum Handshake-Interface 60 der Host-CPU übergeben. Die Host-CPU selbst ist nicht in der MCS lokalisiert.
Eine Abarbeitung von Befehlen kann bspw., wie in Figur 2 dargestellt, in einer Pipeline mit einer Mehrzahl von Pipeline-Stufen vorgenommen werden. Dabei werden vorzugsweise 4 Pipeline-Stufen Stage 0, Stage 1 , Stage 2, Stage 3, un- terschieden. Die Pipeline bzw. Befehls-Pipeline bezeichnet eine Art Fließband, mit dem die Abarbeitung von Befehlen in Teilbefehle entsprechend der Anzahl der Pipeline-Stufen zerlegt wird, wobei die Pipeline-Stufen für mehrere Befehle (d. h. Aufgaben) parallel durchgeführt werden können. Das bedeutet, dass an Stelle, dass eine Aufgabe während eines Bearbeitungszyklus 202 eines Prozessors vollständig abgearbeitet wird, lediglich jeweils eine Teilaufgabe abgearbeitet wird, wobei allerdings verschiedene Teilaufgaben mehrerer Aufgaben dabei gleichzeitig bearbeitet werden. Die Pipeline-Stufen können dabei vorzugsweise sein:
Stage 0: RAM-Zugriffs Dekodierung
Stage 1 : RAM-Zugriff
Stage 2: Befehls-Vordekodierung
Stage 3: Befehls-Abarbeitung
In Stage 0 werden zunächst Adressen und Steuersignale für den in der nächsten Pipeline-Stufe anstehenden RAM-Zugriff gebildet. Ein RAM-Zugriff kann das Lesen eines Datums oder eines Befehls oder das Schreiben eines Datums sein. Im Falle des Lesens eines Befehls wird die Adresse aus dem betreffenden Befehlszähler (PC) gebildet. Diese Pipeline-Stufe wird in Figur 1 und 2 jeweils mit Bezugszeichen 0 dargestellt.
In Stage 1 erfolgt dann der Zugriff auf den Arbeitsspeicher (RAM), wobei der entsprechende Befehl aus dem Arbeitsspeicher geladen wird. Diese Pipeline-Stufe ist in Figur 1 und 2 jeweils mit dem Bezugszeichen 1 dargestellt.
In Stage 2 erfolgt dann eine Befehls-Vordekodierung. Diese Pipeline-Stufe ist in Figur 1 und 2 jeweils mit dem Bezugszeichen 2 dargestellt.
In Stage 3 erfolgt letztlich die Befehls-Abarbeitung, welche für alle Aufgaben durch ein und dieselbe Verarbeitungseinheit, nämlich die hier dargestellte ALU 10 vorgenommen wird. Diese Pipeline-Stufe ist in Figur 1 und 2 jeweils mit dem Bezugszeichen 3 dargestellt. Alle Pipeline-Stufen bzw. Pipeline-Stages 0, 1 , 2, 3 werden parallel verarbeitet, aber jeweils für einen anderen Kanal bzw. einer dem entsprechenden Kanal zugeteilten Aufgabe. Figur 2 verdeutlicht anhand eines Beispiels das zeitliche Verhalten der Abarbeitung von MCS-Programmen. In diesem Beispiel sind bei einem gewählten zyklischen Bearbeitungszyklus 202 von T+1 Takten alle T MCS Kanäle in jeder Pipeline-Stufe, d. h. Stage 0, Stage 1 , Stage 2, Stage 3, genau einen Takt oder eine andere Verarbeitungszeit aktiv. Diese Bereitstellung einer Verarbeitungszeit für jede der Aufgaben (Kanäle) erfolgt unabhängig davon, ob eine Aufgabe in dem entsprechenden Kanal überhaupt durchgeführt werden soll. Zusätzlich wird innerhalb eines Bearbeitungszyklus auch der CPU ein Zeitschlitz 250 von mindestens einem Takt oder einer anderen Verarbeitungszeit reserviert (in Figur 2 genau 1 Takt). Während dieser Zeit hat die CPU die Möglichkeit, Daten in das RAM 20 zu schreiben bzw. vom RAM 20 zu lesen.
Im Detail kann dies wie folgt beschrieben werden: Wenn Kanal Co, hier mit 204 bezeichnet, bspw. zunächst mit Dekodierung der RAM-Adresse beginnt, wird Kanal C0 im nächsten Takt den RAM-Zugriff ausführen, während Kanal Ci, hier mit 206 bezeichnet, mit der Dekodierung der RAM-Adresse beschäftigt ist. Die entsprechenden "eigenen" Register T*PC bzw. T*IR, jeweils dargestellt in Figur 1 durch die Bezugszeichen 25 bzw. 35, werden je nach Kanal automatisch dazu- geschaltet. Befehle, die nur eine Bearbeitungszyklus Ausführungszeit benötigen, verarbeiten in Pipeline-Stufe 3 (Pipeline Stage 3) die Operanden 200 und ggf. 300 aus den eigenen Registern (GPRs) 55 oder den Direktoperanden aus dem
Befehlswort und schreiben das Ergebnis in die entsprechenden Register zurück. Für ein Rückschreiben der Daten in den Arbeitsspeicher (RAM) 20 wird ein weiterer Bearbeitungszyklus benötigt. Dazu wird im jeweiligen Statusregister (STA) 45 des entsprechenden Kanals ein Bit gesetzt, dass das Rückschreiben im nächsten Bearbeitungszyklus bewirkt. Das bedeutet, dass, wenn der Kanal wieder in Pipeline-Stufe 0 bzw. in Pipeline-Stage 0 bearbeitet wird, die entsprechende RAM-Adresse dekodiert wird und die Daten dann in Pipeline-Stage 1 aus dem entsprechenden GPR 55 in den RAM 20 geschrieben werden. Ähnlich verhält es sich mit einem Verarbeiten von Operanden aus dem RAM 20. Ein ganzer Pipeli- ne-Ablauf wird benötigt, um Daten aus dem RAM 20 in das entsprechende GPR- Register 55 zu laden. Erst bei einem nächsten Bearbeitungszyklus kann dann dieser Operand verarbeitet werden.
Figur 2 verdeutlicht die parallele Verarbeitung von Pipeline-Stufen bei bspw. T Kanälen. In dem hier dargestellten Fall umfasst die Pipeline 4 Pipeline-Stufen, dargestellt als Stage 0, Stage 1 , Stage 2 und Stage 3. Ein Bearbeitungszyklus 202 entspricht hier T+1 Takten. Dabei wird, nach einer Anlaufphase, in jedem Takt genau ein Kanal einer Pipeline-Stufe zugeordnet und entsprechend bearbeitet. Daher werden die Pipeline-Stufen parallel, aber jeweils für einen anderen Kanal verarbeitet. Wie bereits erwähnt, wird der CPU mindestens ein zusätzlicher
Zeitschlitz 250 zugeordnet, wodurch der Bearbeitungszyklus 202 T+1 Takte umfasst. Die Bezeichnung "t" bezeichnet im Folgenden einen Zähler für einen jeweiligen, hier einen ersten Bearbeitungszyklus 202. Figur 2 zeigt im Detail, dass in der ersten Pipeline-Stufe bzw. Stage 0 während eines ersten Bearbeitungszyklus 202, bei dem der Zähler den Wert "t" aufweist, nacheinander ein nullter Kanal C0 (t) 204, ein erster Kanal Ci (t) 206, ein zweiter Kanal C2 (t) 208, ein dritter Kanal C3 (t) 210 usw. abgearbeitet bzw. ausgeführt wird. Zuletzt erfolgt während des ersten Bearbeitungszyklus 202 die Abarbeitung bzw. Ausführung eines Τ-1 -ten Kanals CT-i (t) 218. Zuletzt verbleibt noch ein
Zeitschlitz 250 für die CPU bzw. für einen für die CPU reservierten Kanal. In einem nachfolgenden Bearbeitungszyklus wird der Wert des Zählers um 1 auf "t+1 " erhöht. Während dieses nachfolgenden Bearbeitungszyklus werden in Pipeline- Stufe 0 der nullte Kanal C0 (t+1 ) 220, der erste Kanal Ci (t+1 ) 222 und der zweite Kanal C2 (t+1 ) 224 usw. bearbeitet, wobei hier dann in der Regel gegenüber Bearbeitungszyklus 202 jeweils andere Teilaufgaben der den jeweiligen Kanälen zugeordneten Aufgaben abgearbeitet werden.
Für die weiteren Pipeline-Stufen Stage 1 , Stage 2, Stage 3 beginnt eine Bearbei- tung der jeweiligen Kanäle jeweils um einen Takt versetzt.
Hierbei ist für die erste Pipeline-Stufe 1 vorgesehen, dass während des Bearbeitungszyklus 202 mit dem Wert "t" für den Zähler der nullte Kanal C0 (t) 204, der erste Kanal Ci (t) 206, der zweite Kanal C2 (t) 208 usw. bearbeitet bzw. ausge- führt werden. Am Ende des Bearbeitungszyklus werden ein Τ-2-ter Kanal CT-2 (t)
216 und der T-1 -te Kanal CT-i (t) 218 bearbeitet. Im nachfolgenden Bearbei- tungszyklus mit dem Wert "t+1 " für den Zähler werden der Reihe nach zunächst ein Zeitschlitz 250 der CPU 60 zur Verfügung gestellt und der nullte Kanal
Co (t+1 ) 220, der erste Kanal Ci (t+1 ) 222 usw. ausgeführt.
Ebenfalls um einen Takt versetzt erfolgt für die zweite Pipeline-Stufe 2 während des ersten Bearbeitungszyklus 202 zunächst eine Ausführung bzw. Bearbeitung des nullten Kanals C0 (t) 204 und des ersten Kanals Ci (t) 206. Später folgen ein Τ-3-ter Kanal CT-3 (t) 214 und der T-2-te Kanal CT-2 (t) 216. Im nächsten Bearbeitungszyklus mit Wert "t+1 " für den Zähler wird zu Beginn zunächst der Τ-1 -te Kanal CT-i (t) 218 abgearbeitet, dann ein Zeitschlitz 250 für die CPU bereitgestellt und dann der nullte Kanal C0 (t+1 ) 220 usw. abgearbeitet.
Für die dritte Pipeline-Stufe 3 wird während des ersten Bearbeitungszyklus 202 der nullte Kanal C0 (t) 204 bearbeitet. Am Ende des ersten Bearbeitungszyklus 202 mit Wert "t" erfolgt eine Bearbeitung bzw. Ausführung eines Τ-4-ten Kanals CT-4 (t) 212 und des Τ-3-ten Kanals CT-3 (t) 214. Im nächsten Bearbeitungszyklus mit Wert "t+1 " für den Zähler erfolgt zunächst die Bearbeitung des Τ-2-ten Kanals CT-2 (t) 216 und des Τ-1 -ten Kanals CT-i (t) 218.
Ein in Figur 1 dargestelltes Spezialregister TRG 75 schafft die Möglichkeit einer Triggerung von Kanälen untereinander. Die Kanäle selbst können durch Vergleich mit zeit- oder positionsbezogenen Signalen (TBU) 85 ein Ereignis in einen aktuellen Zeitbezug versetzen oder in Abhängigkeit von Positionen steuern. Ein derartiger Vergleich wird ebenfalls in der ALU 10 durchgeführt, bei dem die TBU 85 einen Operanden bilden kann. Ein Zugriff auf Daten des ARU-Interfaces 30 wird von einem entsprechenden Kanal erwartet, und durch das blockierende Lesen wird gewährleistet, dass es zu keiner Dateninkonsistenz kommen kann.
Der in Figur 1 dargestellte Instruktions-Predekoder 50 ermöglicht ein Bereitstellen eines Datums aus dem RAM 20 im nächsten Bearbeitungszyklus. Dazu wird ein RAM-Datum in eine Instruktion gewandelt, die das Datum in das geforderte Zielregister schreibt. Außerdem sorgt der Instruktions-Predekoder 50 dafür, dass bei aktivierten blockierenden Befehlen, die nachfolgenden Befehle aus den vorangehenden Pipeline-Stufen verworfen werden. Die vorgeschlagene erfindungsgemäße Schaltungsanordnung hat eine wesentliche Auswirkung auf die Latenzzeit von einer Befehlsabarbeitung.

Claims

Ansprüche
1 . Schaltungsanordnung für ein datenverarbeitendes System zur Abarbeitung von mehreren Aufgaben mittels einer zentralen Verarbeitungseinheit (10) mit einer der Verarbeitungseinheit (10) zugeordneten Verarbeitungskapazität, wobei die Schaltungsanordnung dazu konfiguriert ist, die Verarbeitungskapazität der Verarbeitungseinheit (10) gleichmäßig und unabhängig von einem Bedarf der jeweiligen Aufgaben auf die jeweiligen Aufgaben aufzuteilen und in den dadurch entstehenden Zeiteinheiten die jeweiligen Aufgaben bis zu deren jeweiliger Abarbeitung zeitlich versetzt zu bearbeiten.
2. Schaltungsanordnung nach Anspruch 1 , wobei die Schaltungsanordnung ferner dazu konfiguriert ist, jeder der Aufgaben jeweils ein Kanal mit eigenen Registern zuzuteilen und die jeweiligen Register entsprechend der Zuordnung der jeweiligen Aufgabe zu der Verarbeitungseinheit (10) auszuwählen und mit der Verarbeitungseinheit (10) zu verbinden.
3. Schaltungsanordnung nach einem der Ansprüche 1 oder 2, wobei die Schaltungsanordnung ferner dazu konfiguriert ist, die Verarbeitungseinheit (10) jeder der Aufgaben jeweils für eine konstante und für alle Aufgaben gleiche Zeiteinheit zuzuordnen.
4. Schaltungsanordnung nach Anspruch 3, wobei die Schaltungsanordnung dazu konfiguriert ist, die Verarbeitungseinheit (10) mindestens einer der Aufgaben wiederholt, insbesondere periodisch mit einer Periode entsprechend der Länge eines Bearbeitungszyklus der Verarbeitungseinheit (10) zuzuordnen, falls die mindestens eine Aufgabe bei Bearbeitung mehr als eine Zeiteinheit benötigt.
5. Schaltungsanordnung nach einem der Ansprüche 2 bis 4, wobei die Schaltungsanordnung ferner dazu konfiguriert ist, eine Abarbeitung von Befehlen der jeweiligen Register der jeweiligen Kanäle der Aufgaben in einer Pipeline mit mehreren Pipeline-Stufen vorzunehmen, wobei die jeweiligen Register zum Zeitpunkt der Abarbeitung in entsprechend getaktete Pipeline-Register der Pipeline umgeschaltet werden und die Pipeline-Stufen in einem Zeitabschnitt parallel, aber jeweils für verschiedene Kanäle verarbeitet werden.
Schaltungsanordnung nach Anspruch 5, wobei Befehlsdekodierung und Speicherzugriffe für eine erste Aufgabe jeweils in Zeitabschnitten erfolgen, in welchen mindestens einer zweiten Aufgabe die Verarbeitungseinheit (10) zugeordnet ist.
Verfahren zur Abarbeitung von mehreren Aufgaben in einem datenverarbeitenden System mittels einer zentralen Verarbeitungseinheit (10) mit einer der Verarbeitungseinheit (10) zugeordneten Verarbeitungskapazität, wobei die Verarbeitungskapazität der Verarbeitungseinheit (10) gleichmäßig und unabhängig von einem Bedarf der jeweiligen Aufgaben auf die jeweiligen Aufgaben bis zu deren jeweiliger Abarbeitung aufgeteilt, und die jeweiligen Aufgaben in den dadurch entstehenden einzelnen Zeiteinheiten zeitlich versetzt bearbeitet werden.
Verfahren nach Anspruch 7, wobei jeder der Aufgaben jeweils ein Kanal mit eigenen Registern zugeteilt und die jeweiligen Register entsprechend der Zuordnung der jeweiligen Aufgabe zu der Verarbeitungseinheit (10) ausgewählt und mit der Verarbeitungseinheit (10) verbunden werden.
Verfahren nach Anspruch 7 oder 8, wobei jeder der Aufgaben die Verarbeitungseinheit (10) jeweils für eine konstante und für alle Aufgaben gleiche Zeiteinheit zugeordnet wird.
10. Verfahren nach Anspruch 8 oder 9, wobei eine Abarbeitung von Befehlen der jeweiligen Register der den jeweiligen Aufgaben zugeteilten Kanäle in einer Pipeline mit mehreren Pipeline-Stufen vorgenommen wird, wobei die jeweiligen Register zum Zeitpunkt der Abarbeitung in entsprechend getaktete Pipeline-Register der Pipeline umgeschaltet werden und die Pipeline- Stufen in einem Zeitabschnitt parallel, aber jeweils für verschiedene Kanäle verarbeitet werden.
PCT/EP2011/054019 2010-03-31 2011-03-17 Geteilte zentrale verarbeitung von daten WO2011120814A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/637,843 US8910181B2 (en) 2010-03-31 2011-03-17 Divided central data processing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102010003512A DE102010003512A1 (de) 2010-03-31 2010-03-31 Geteilte zentrale Verarbeitung von Daten
DE102010003512.2 2010-03-31

Publications (1)

Publication Number Publication Date
WO2011120814A1 true WO2011120814A1 (de) 2011-10-06

Family

ID=44167994

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2011/054019 WO2011120814A1 (de) 2010-03-31 2011-03-17 Geteilte zentrale verarbeitung von daten

Country Status (3)

Country Link
US (1) US8910181B2 (de)
DE (1) DE102010003512A1 (de)
WO (1) WO2011120814A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011083468A1 (de) * 2011-09-27 2013-03-28 Robert Bosch Gmbh Schaltungsanordnung zur Ablaufplanung bei einer Datenverarbeitung
CN103543989A (zh) * 2013-11-11 2014-01-29 镇江中安通信科技有限公司 一种面向大数据的针对可变长度特征提取的自适应并行处理方法
DE102016210345A1 (de) 2016-06-10 2017-12-14 Robert Bosch Gmbh Verfahren zur Abarbeitung von mehreren Aufgaben in einem datenverarbeitenden System mit geteilter zentraler Datenverarbeitung
DE102016210432A1 (de) 2016-06-13 2017-12-14 Robert Bosch Gmbh Verfahren zur Abarbeitung von mehreren Aufgaben in einem datenverarbeitenden System mit geteilter zentraler Datenverarbeitung

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0947926A2 (de) * 1998-04-03 1999-10-06 MMC Networks, Inc. System und Verfahren für Multi-tasking, Betriebsmittelteilung und Ausführung von Rechnerbefehlen
US20030046517A1 (en) * 2001-09-04 2003-03-06 Lauterbach Gary R. Apparatus to facilitate multithreading in a computer processor pipeline

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011083468A1 (de) * 2011-09-27 2013-03-28 Robert Bosch Gmbh Schaltungsanordnung zur Ablaufplanung bei einer Datenverarbeitung

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0947926A2 (de) * 1998-04-03 1999-10-06 MMC Networks, Inc. System und Verfahren für Multi-tasking, Betriebsmittelteilung und Ausführung von Rechnerbefehlen
US20030046517A1 (en) * 2001-09-04 2003-03-06 Lauterbach Gary R. Apparatus to facilitate multithreading in a computer processor pipeline

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TANENBAUM A S: "Modern Operating Systems, PROCESSES AD THREADS", MODERN OPERATING SYSTEMS, XX, XX, 1 January 2001 (2001-01-01), pages 71 - 73,81, XP002372417 *

Also Published As

Publication number Publication date
US20130104141A1 (en) 2013-04-25
DE102010003512A1 (de) 2011-10-06
US8910181B2 (en) 2014-12-09

Similar Documents

Publication Publication Date Title
DE10110504B4 (de) Verfahren und Computersystem zur Verwaltung von Threads
DE60010907T2 (de) Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter
DE60109748T2 (de) Verfahren und gerät zur ausführungsunterbrechung in einem prozessor
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE10085363B4 (de) Verfahren und Einrichtung zum Verwalten von Ressourcen in einem Multithreaded-Prozessor
DE69735575T2 (de) Verfahren und Vorrichtung zur Unterbrechungsverteilung in einem skalierbaren symmetrischen Mehrprozessorsystem ohne die Busbreite oder das Busprotokoll zu verändern
DE4410775C2 (de) Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät
DE19506435C2 (de) Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten
DE2411963B2 (de) Datenverarbeitungsanlage
DE112005002432B4 (de) Verfahren und Vorrichtung zum Bereitstellen eines Quellenoperanden für eine Instruktion in einem Prozessor
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE102007060806A1 (de) Rangbasierter Speicher-Lese/Schreib-Mikrobefehls-Scheduler
WO2011120814A1 (de) Geteilte zentrale verarbeitung von daten
DE202004021684U1 (de) Einrichtungen und Vorrichtungen zur Verwendung bei einem Scheduling
DE102011083468A1 (de) Schaltungsanordnung zur Ablaufplanung bei einer Datenverarbeitung
EP1117037A2 (de) Datenverarbeitungsvorrichtung zum parallelen Verarbeiten von unabhängigen Prozessen (Threads)
EP1308846B1 (de) Datenübertragungseinrichtung
DE10228778B4 (de) Hardware-Verfahren zum Implementieren von atomischen Semaphoroperationen unter Verwendung von Codemakros
DE102019219260A1 (de) Verfahren zum Betreiben einer Recheneinheit
DE2507405A1 (de) Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage
DE102008020782B4 (de) Verfahren zur parallelen Verarbeitung von Programmen sowie zur Durchführung des Verfahrens geeigneter Prozessor
DE102016210345A1 (de) Verfahren zur Abarbeitung von mehreren Aufgaben in einem datenverarbeitenden System mit geteilter zentraler Datenverarbeitung
DE102021129313B4 (de) Flächen- und energieeffizienter mechanismus zum aufwecken speicherabhängiger ladevorgänge durch zusammenführungen beim abarbeiten von speichervorgängen
WO2011120812A1 (de) Zyklischer priorisierungswechsel bei einer datenverarbeitung
EP0108418B1 (de) Vorrichtung zur Mikroprogramm-Steuerung eines Informationstransfers und Verfahren zu ihrem Betrieb

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: 11712793

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13637843

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11712793

Country of ref document: EP

Kind code of ref document: A1