DE102010003512A1 - Geteilte zentrale Verarbeitung von Daten - Google Patents

Geteilte zentrale Verarbeitung von Daten Download PDF

Info

Publication number
DE102010003512A1
DE102010003512A1 DE102010003512A DE102010003512A DE102010003512A1 DE 102010003512 A1 DE102010003512 A1 DE 102010003512A1 DE 102010003512 A DE102010003512 A DE 102010003512A DE 102010003512 A DE102010003512 A DE 102010003512A DE 102010003512 A1 DE102010003512 A1 DE 102010003512A1
Authority
DE
Germany
Prior art keywords
processing
tasks
processing unit
time
pipeline
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102010003512A
Other languages
English (en)
Inventor
Eberhard Boehl
Ruben Bartholomae
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
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 DE102010003512A priority Critical patent/DE102010003512A1/de
Priority to PCT/EP2011/054019 priority patent/WO2011120814A1/de
Priority to US13/637,843 priority patent/US8910181B2/en
Publication of DE102010003512A1 publication Critical patent/DE102010003512A1/de
Withdrawn legal-status Critical Current

Links

Images

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

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

  • 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 Verarbeitung 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ätshö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 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.
  • 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 entsprechen.
  • 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.
  • 1 zeigt ein Architektur-Modell, in welchem das erfindungsgemäß vorgeschlagene Verfahren ausgeführt werden kann.
  • 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 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 (SPA) 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 (T·IR) 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 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 arithmetisch-logische 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 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 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, unterschieden. 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 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 1 und 2 jeweils mit dem Bezugszeichen 1 dargestellt.
  • In Stage 2 erfolgt dann eine Befehls-Vordekodierung. Diese Pipeline-Stufe ist in 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 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.
  • 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 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 C0, 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 C1, 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 1 durch die Bezugszeichen 25 bzw. 35, werden je nach Kanal automatisch dazugeschaltet. 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 Pipeline-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.
  • 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.
  • 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 C1 (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 T – 1-ten Kanals CT-1 (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 C1 (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 Bearbeitung 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 C1 (t) 206, der zweite Kanal C2 (t) 208 usw. bearbeitet bzw. ausgeführt werden. Am Ende des Bearbeitungszyklus werden ein T – 2-ter Kanal CT-2 (t) 216 und der T – 1-te Kanal CT-1 (t) 218 bearbeitet. Im nachfolgenden Bearbeitungszyklus 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 C0 (t + 1) 220, der erste Kanal C1 (t + 1) 222 usw. ausgeführt.
  • Ebenfalls um einen Takt versetzt erfolgt für die zweite Pipelinestufe 2 während des ersten Bearbeitungszyklus 202 zunächst eine Ausführung bzw. Bearbeitung des nullten Kanals C0 (t) 204 und des ersten Kanals C1 (t) 206. Später folgen ein T – 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 T – 1-te Kanal CT-1 (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 ”1” erfolgt eine Bearbeitung bzw. Ausführung eines T – 4-ten Kanals CT-4 (t) 212 und des T – 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 T – 2-ten Kanals CT-2 (t) 216 und des T – 1-ten Kanals CT-1 (t) 218.
  • Ein in 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 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 (10)

  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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
DE102010003512A 2010-03-31 2010-03-31 Geteilte zentrale Verarbeitung von Daten Withdrawn DE102010003512A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102010003512A DE102010003512A1 (de) 2010-03-31 2010-03-31 Geteilte zentrale Verarbeitung von Daten
PCT/EP2011/054019 WO2011120814A1 (de) 2010-03-31 2011-03-17 Geteilte zentrale verarbeitung von daten
US13/637,843 US8910181B2 (en) 2010-03-31 2011-03-17 Divided central data processing

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=44167994

Family Applications (1)

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

Country Status (3)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Families Citing this family (2)

* 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 镇江中安通信科技有限公司 一种面向大数据的针对可变长度特征提取的自适应并行处理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330584B1 (en) 1998-04-03 2001-12-11 Mmc Networks, Inc. Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US20030046517A1 (en) 2001-09-04 2003-03-06 Lauterbach Gary R. Apparatus to facilitate multithreading in a computer processor pipeline
DE102011083468A1 (de) * 2011-09-27 2013-03-28 Robert Bosch Gmbh Schaltungsanordnung zur Ablaufplanung bei einer Datenverarbeitung

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE10110504B4 (de) Verfahren und Computersystem zur Verwaltung von Threads
DE69130620T2 (de) Datenübertragungsadapter und Verfahren zu dessen Betrieb
DE60010907T2 (de) Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE69129526T2 (de) Multiprozessorsystem und Verfahren zur Überwachung der Ausführung von Tasks in einem Multiprozesorsystem
DE112010003595B4 (de) Verfahren, Systeme und maschinenverarbeitbares Medium zur Bereitstellung einer verteiltenPrädikatvorhersage
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE112005002432B4 (de) Verfahren und Vorrichtung zum Bereitstellen eines Quellenoperanden für eine Instruktion in einem Prozessor
DE69735575T2 (de) Verfahren und Vorrichtung zur Unterbrechungsverteilung in einem skalierbaren symmetrischen Mehrprozessorsystem ohne die Busbreite oder das Busprotokoll zu verändern
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE19506435A1 (de) Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten
DE19506990A1 (de) Einrichtung zur Datenumleitung in einem Prozessor mit mehreren Ausführungseinheiten
DE69219848T2 (de) Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
EP1599794B1 (de) Prozessor mit verschiedenartigen steuerwerken für gemeinsam genutzte ressourcen
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
DE102010003512A1 (de) Geteilte zentrale Verarbeitung von Daten
DE69230118T2 (de) Prozessor mit hierarchischer Struktur
DE102012222391B4 (de) Mehrkanal-Zeitscheibengruppen
DE102004009610B4 (de) Heterogener paralleler Multithread-Prozessor (HPMT) mit geteilten Kontexten
DE10063915B4 (de) Informationsverarbeitungsgerät, das eine Mehrzweckverarbeitung und Transaktionsverarbeitung ausführt
DE102011083468A1 (de) Schaltungsanordnung zur Ablaufplanung bei einer Datenverarbeitung
EP1117037A2 (de) Datenverarbeitungsvorrichtung zum parallelen Verarbeiten von unabhängigen Prozessen (Threads)
DE102017130552B3 (de) Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung
DE102019219260A1 (de) Verfahren zum Betreiben einer Recheneinheit

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination