-
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.