-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft das Gebiet der Verwendung von Registerfiles.
Spezieller betrifft die vorliegende Erfindung die Verwendung zusätzlicher
Bits in dem Registerfile, um Schreib-nach-Schreib-Fehler zu behandeln,
und um Bypass-Komparatoren
zu eliminieren.
-
Beschreibung
des Standes der Technik
-
Registerfiles
sind Arrays in Prozessoren, die ein oder mehrere Register speichern.
Bei Prozessoren, die in der Lage sind, mehr als einen Befehl gleichzeitig
zu verarbeiten, ist es üblich,
jedem dieser Register ein Bit zuzuordnen, das anzeigt, ob die in
dem jeweiligen Register befindlichen Daten entweder: (1) aktualisiert und
zur Verwendung bereit sind; oder (2) modifiziert oder angezeigt
werden, und somit nicht verfügbar
sind. Dieses Bit wird "Kennzeichen"- bzw. "Scoreboard"-Bit genannt.
-
Beispielsweise
kann dann, wenn ein Kennzeichenbit für ein bestimmtes Register gesetzt
ist, der nächste
Befehl, der auf dieses Register zugreifen muß, nicht ausgeführt werden,
bis das Kennzeichenbit für dieses
Register rückgesetzt
wurde. Um das Registerbit rückzusetzen,
muß die
Ausführung
einer vorhergehenden Operation (d.h. der Operation, die die Daten
erzeugt/ändert,
die in dieses Register geschrie ben/zurückgeschrieben werden sollen)
beendet worden sein. Somit gibt es, wenn ein Programm z.B. (1) ein
LADEN eines ersten Wertes ausführt
und ihn in ein Register R4 schreibt, und (2) ein ADDIEREN des ersten
Wertes mit einem zweiten Wert ausführt, der in einem Register
R5 enthalten ist, zweifellos eine Abhängigkeit bei der LADE-Operation.
Die Verwendung eines Kennzeichenbits durch eine Schaltung, um den
Zugriff auf ein Register, welches gerade verwendet wird, zu "sperren", wird als "Hardware-Sperrung" bezeichnet. Die
Hardware-Sperrung
wird verwendet, anstatt den zusätzlichen
Aufwand der Software aufzuerlegen.
-
Somit
wird in einem Prozessor, bei welchem es mehrere Ausführungseinheiten
gibt und bei welchem eine der Ausführungseinheiten eine Operation
aufweist, die auf die Ausführung
wartet, und die von einem Ergebnis einer vorhergehenden Operation
abhängt,
das Register, das auf den Empfang des Ergebnisses wartet, für einen
Zugriff "gesperrt", bis das Kennzeichenbit
des Registers rückgesetzt
ist. Nachdem das Ergebnis in das Register geschrieben wurde und
das Kennzeichenbit rückgesetzt
wurde, kann die Ausführungseinheit,
die die wartende Operation aufweist, auf die Daten in dem Register
zugreifen.
-
In
Fällen,
in denen eine Operation darauf wartet, daß ein Ergebnis von einer Ausführungseinheit
zurückkommt,
kann dadurch Zeit gespart werden, daß nicht darauf gewartet werden
muß, daß das Ergebnis
zunächst
in das Register geschrieben wird, und dann wieder von der wartenden
Ausführungseinheit
ausgelesen wird. Stattdessen wird ein Bypass verwendet, um das Ergebnis
zur gleichen Zeit, zu der das Ergebnis an das Register gesendet
wird, an die wartende Ausführungseinheit
zu senden – wodurch
Operationen erheblich schneller ausgeführt werden.
-
Ein
Bypass wird verwendet, wenn ein Prozessor mehrere Daten in einem
Registerfile enthält,
und auch einen Satz Ausführungseinheiten
enthält,
von denen jede eine unterschiedliche Zeitdauer benötigen kann,
um eine Operation zu beenden. Eine Ausführungseinheit kann eine variierende
Zeitdauer benötigen, um
eine Operation zu beenden, da beispielsweise die Ausführungseinheit
eine Mehrfachzyklus-Ausführungseinheit
sein kann, oder weil der Prozessor so ausgeführt ist, daß er zeitverschachtelt arbeitet,
wobei keine Operation sofort beendet wird.
-
Ohne
einen Bypass muß eine
Ausführungseinheit,
die darauf wartet, daß eine
weitere Operation beendet wird, warten, bis die Operation beendet
wurde, und das Ergebnis zurück
an das Registerfile gesendet wurde, bevor das Ergebnis wieder ausgelesen
wird. Die Ausführungseinheit
muß auch
warten, bis das Kennzeichenbit für
das Ergebnis rückgesetzt
wurde; das Ergebnis wird ausgelesen, bevor der Befehl ausgegeben wird.
-
Somit
führt die
Zeit, die verstreicht, bis das Ergebnis in das Registerfile geschrieben
wird, und das Ergebnis wieder ausgelesen wird, bevor der Befehl
ausgeführt
wird, der von dem Ergebnis abhängt,
zu einer zusätzlichen
Verzögerung.
-
1 zeigt eine Bypass-Schaltung
gemäß dem Stand
der Technik (wie beispielsweise in der
DE 195 06 990 A1 oder
US 5,699,537 A offenbart
ist, bei welcher ein Satz Multiplexer (MUX)
12,
14,
22 und
24 in
einem Satz Ergebnisrückführdatenpfaden
16 und
26 angeordnet
ist. Der Satz Ergebnisrückführdatenpfade
16 und
26 führt jeweils
Ergebnisse von Ausführungseinheiten
10 und
20 an
ein Registerfile
30 zurück
(der Einfachheit halber ist in
1 keine
Steuerschaltung gezeigt).
-
Bei 1 sind entlang des Registerfiles 30 ein
Satz Registerfilekennzeichenbits 28 vorgesehen. Die Ausgabe
des Registerfiles 30 wird dem MUX 12, MUX 14,
MUX 22 und MUX 24 zugeführt. Die Ausgabe des MUX 12 wird
als eine Eingabe an die Ausführungseinheit 10 verwendet,
während
die Ausgabe des MUX 14 als die andere Eingabe an die Ausführungseinheit 10 verwendet
wird. Die Ausgabe des MUX 22 wird als eine Eingabe an die
Ausführungseinheit 20 verwendet,
während
die Ausgabe des MUX 24 als die andere Eingabe für die Ausführungseinheit 20 verwendet
wird.
-
Die
Ausgabe der Ausführungseinheit 10 wird
auf einem Ergebnisrückführdatenpfad 16 an
das Registerfile 30 zurückgeführt. Auf ähnliche
Weise wird die Ausgabe der Ausführungseinheit 20 auf
einem Ergebnisrückführdatenpfad 26 an
das Registerfile 30 zurückgeführt.
-
Es
sei angemerkt, daß der
Ergebnisrückführdatenpfad 16 und
der Ergebnisrückführdatenpfad 26 auch von
anderen Ausführungseinheiten
verwendet werden könnten,
die in der Figur nicht gezeigt sind. Außerdem empfangen die MUX 12,
MUX 14, MUX 22 und MUX 24 jeweils unter
Verwendung des Ergebnisrückführdatenpfads 16 und
des Ergebnisrückführdatenpfads 26 sowohl
die Ausgabe von der Ausführungseinheit 10 als
auch die Ausgabe von der Ausführungseinheit 20.
-
Somit
hat in 1 jeder Eingang
jeder Ausführungseinheit
einen Multiplexer mit drei (3) Eingängen, der als Eingabe entweder
die Ausgabe von dem Registerfile oder das Ergebnis zur Verfügung stellt,
das auf einem der zwei Ergebnisrückführdatenpfaden
zurückgeführt wird.
Wie unten beschrieben, kann jede Ausführungseinheit auch in der Lage
sein, die Werte, die auf ihren Eingängen erscheinen, zu speichern,
um mit Situationen umzugehen, bei denen nicht alle Eingaben gleichzeitig
erhältlich
sind.
-
Beispielsweise
können,
wenn eine Ausführungseinheit 10 ein
Addierer ist, der einzyklisch arbeitet, und der nächste Befehl,
der ebenfalls ein ADDIEREN-Befehl ist, das Ergebnis benötigt, beide
Operationen sequentiell ausgegeben werden, da das Ergebnis des ersten
ADDIEREN-Befehls zu der gleichen Zeit, zu der es in das Registerfile
geschrieben wird, wieder in den Addierer nebengeleitet wird, so
daß ein
darauffolgender ADDIEREN-Befehl es sofort verwenden kann.
-
Am
Ausgang jedes MUX werden Daten von einem der drei Eingänge ausgewählt, abhängig davon, welche
Steuerleitung aktiv ist. Die Steuerleitungen stammen von dem in 2, unten, beschriebenen
System.
-
2 zeigt eine Bypass-Steuerschaltung 40 mit
einer Registerfile-Auswahlsteuerleitung (SRF) 66,
einer B1-Auswahlsteuerleitung (SB1) 68 und
einer B2-Auswahlsteuerleitung (SB2) 70,
um zu bestimmen, von wo eine Ausführungseinheit einen Operanden
empfängt.
SRF 66, SB1 68 und
SB2 70 werden an einen der MUXs von 1 gesendet. Somit empfängt jeder
der MUXs in 1, spezieller
der MUX 12, MUX 14, MUX 22 und MUX 24,
Steuersignale SRF 66, SB1 68 und SB2 70 von
einer Bypass-Steuerschaltung, die ähnlich wie die Bypass-Steuerschaltung 40 ist.
Eine Kennzeichenbitleitung, die aus dem Registerfile 30 stammt,
stellt in 2 für das spezielle
Register, auf welches zugegriffen wird, den Wert des Kennzeichenbits
zur Verfügung,
um zu bestimmen, ob der Wert von dem Registerfile oder ein Wert
von einem der Ergebnisrückführdatenpfade
verwendet werden soll.
-
Die
Bypass-Steuerschaltung 40 enthält auch einen ersten Komparator 50 und
einen zweiten Komparator 60. Einer der Eingänge sowohl
des ersten Komparators 50 als auch des zweiten Komparators 60 zeigt die
Operanden-Registeradresse des Operanden an, auf den die momentane
Operation wartet. Beim ersten Komparator 50 ist der andere
Eingang die Ergebnisrückführdatenpfad 16 – Registeradresse,
die die Registerfileadresse anzeigt, in die das auf dem Ergebnisrückführdatenpfad 16 enthaltene
Ergebnis zurückgeführt wird, nachdem
die erste Ausführungseinheit 10 die
vorhergehende Operation beendet hat. Bei dem zweiten Komparator 60 ist
der andere Eingang die Ergebnisrückführdatenpfad 26 – Registeradresse,
welche die Registerfileadresse anzeigt, in die das auf dem Ergebnisrückführdatenpfad 26 enthaltene
Ergebnis zurückgeführt wird, nachdem
die zweite Ausführungseinheit 20 die
andere vorhergehende Operation beendet hat.
-
Der
erste Komparator 50 und der zweite Komparator 60 arbeiten
beide auf die gleiche Weise; sie geben nämlich eine logische eins aus,
wenn beide Eingaben gleich sind. Zum Beispiel gibt der erste Komparator 50 eine
logische eins aus, wenn die Operand-Registeradresse gleich der Ergebnisrückführdatenpfad 16 – Registeradresse
ist.
-
Die
Ausgabe des ersten Komparators 50 wird von einem ersten
AND-Gatter 52 empfangen. Das erste AND-Gatter 52 empfängt auch
die Eingabe eines NOT-Gatters 64. Auf ähnliche Weise wird die Ausgabe
des zweiten Komparators 60 von einem zweiten AND-Gatter 62 empfangen.
Das zweite AND-Gatter 62 empfängt auch die Eingabe des NOT-Gatters 64.
-
Der
Eingang an das NOT-Gatter 64 ist die Kennzeichenbitleitung,
die, wie oben erläutert,
den Wert liefert, der von einem der Kennzeichenbits von den Registerfilekennzeichenbits 28 stammt.
Speziell ist das verwendete Kennzeichenbit das zu den Registerdaten
zugeordnete Bit, die von der Ausführungseinheit angefordert werden.
-
Während des
Betriebs der Schaltung von 2 wird,
wenn das von den Registerfilekennzeichenbits 28 stammende
Kennzeichenbit anzeigt, daß der
Operand aus den Registerfilekennzeichenbits 28 ausgelesen werden
soll, der von der Kennzeicheneinheit stammende Wert verwendet, da
SRF einen Wert einer logischen eins hat.
Wenn das aus den Registerfilekennzeichenbits 28 stammende
Kennzeichenbit eine logische eins ist, was anzeigt, daß die Daten
in dem Registerfile 30 nicht gültig sind, verwendet der MUX
das von einem der Ergebnisrückführdatenpfade
stammende Ergebnis, abhängig
von der Ausgabe der Bypass-Steuerschaltung 40. Im Ergebnis
bestimmen diese drei Steuerleitungen (SRF 66,
SB1 68 und SB2 70)
zusammen, ob für
die Operation ein gültiges
Ergebnis erhältlich
ist, wodurch dem Prozessor ermöglicht
wird, den Befehl auszugeben, und den Befehl ausführen zu lassen.
-
Die
Operand-Adresse stammt von dem Befehlswort und ist die Registeradresse,
an der sich der gewünschte
Operand für
die Operation befindet. Beispielsweise wartet dann, wenn ein Befehl
lautet, den Wert in dem Registerfile 30 an einer Stelle
4 zu dem Wert in dem Registerfile 30 an einer Stelle 5
zu addieren, und an der Stelle 4 in dem Registerfile 30 keine
gültigen
Daten vorliegen, die Ausführungseinheit,
die den Befehl ausführt,
bevor sie mit dem Ausführen
beginnt, bis sie ermittelt, daß ein
Wert, der für
die Stelle 4 des Registerfiles 30 bestimmt ist, auf einem
Ergebnisrückführdatenpfad
zurückgeführt wird.
-
Für jede mögliche Kombination
von Bestimmungsbus und Ausführungseinheiteingang
ist ein Komparator notwendig, da jede Ausführungseinheit bei jedem beliebigen
Ergebnisrückführdatenpfad
auf ein Ergebnis warten kann. Deswegen werden in 1, wo es zwei Ergebnisbusse und insgesamt
vier Operandeneingänge gibt,
acht Komparatoren benötigt,
weil die Bypasslogik, die aus zwei Komparatoren pro Ausführungseinheiteingang
besteht, eine für
jeden Bus, für
jede dieser Stellen dupliziert werden muß.
-
Allgemein
steigt die Anzahl an Komparatoren als Produkt aus der Anzahl an
Ausführungseinheiten und
der Anzahl an Ergebnisrückführdatenpfaden
an. Die Anzahl an Rückführpfaden
kann mit der Anzahl an Ausführungseinheiten
ansteigen, um zu ermöglichen,
daß alle
oder die meisten Ausführungseinheiten
gleichzeitig Ergebnisse erzeugen. Dies würde dazu führen, daß die Anzahl an Komparatoren
im Quadrat mit der Anzahl an Ausführungseinheiten ansteigt. Zum
Beispiel kann dann, wenn die Anzahl an Ausführungseinheiten verdoppelt
wird, die Anzahl an Komparatoren um einen Faktor 4 steigen.
-
Der
Erfindung liegt die Aufgabe zugrunde, bei einem Prozessor die Anzahl
an Komparatoren zu vermindern.
-
Sie
löst diese
Aufgabe mit dem Gegenstand des unabhängigen Anspruchs 1. Weitere
bevorzugte Ausgestaltungen der Erfindung sind in den Unteransprüchen beschrieben.
-
KURZE BESCHREIBUNG DER
ZEICHNUNG
-
1 ist ein Blockdiagramm
eines Systems gemäß dem Stand
der Technik zum Nebenschließen
von Daten, mit einem Multiplexer zur Auswahl der Bypassdaten.
-
2 ist ein Blockdiagramm
eines Steuersystems gemäß dem Stand
der Technik zum Steuern des Multiplexers des Systems gemäß dem Stand
der Technik zum Nebenschließen
von Daten.
-
3 ist ein System zum Nebenschließen von
Daten, das gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ausgestaltet ist.
-
4 ist ein System zum Nebenschließen von
Daten, das gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung ausgestaltet ist.
-
GENAUE BESCHREIBUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung stellt ein Verfahren und eine Vorrichtung
zur Mehrfach-Bitkennzeichnung zur Verfügung. Die Erfindung kann zur
Behandlung von Schreib-nach-Schreib-Fehlern verwendet werden, oder
um Bypass-Komparatoren zu eliminieren, oder für beides. Zum Zweck der Erläuterung
sind spezielle Ausführungsbeispiele
dargestellt, um ein tiefgehendes Ver ständnis der vorliegenden Erfindung
zu ermöglichen. Jedoch
wird der Fachmann beim Lesen der Offenbarung verstehen, daß die Erfindung
ohne diese Details ausgeführt
werden kann. Außerdem
sind, obwohl die vorliegende Erfindung unter Verwendung von Registerfilekennzeichnungs-Anzeigern
beschrieben wird, die meisten, wenn nicht sogar alle, Aspekte der
vorliegenden Erfindung allgemein bei Registerfiles anwendbar. Desweiteren
werden allgemein bekannte Elemente, Vorrichtungen, Verfahrensschritte
und dergleichen nicht im Detail erläutert, um zu vermeiden, daß die vorliegende
Erfindung unklar wird.
-
Um
einen großen
Teil des Bypass-Schaltkreises zu eliminieren, werden zusätzliche
Kennzeichenbits in dem Registerfile verwendet, um den Ergebnisbus
anzuzeigen, von dem das Ergebnis rückgeführt wird. Zusätzlich wird
angezeigt, daß ein
Ergebnis in das Registerfile rückgeschrieben
werden muß.
-
Bei
einem Ausführungsbeispiel
werden mehrere Bits verwendet, wobei eine Konfiguration, bei der
alle Bits null sind, anzeigt, daß das Ergebnis in dem Registerfile
gültig
ist. Bei einem alternativen Ausführungsbeispiel
wird ein separates Kennzeichenbit verwendet, um anzuzeigen, ob der
Operand in dem Registerfile gültig ist.
Ein zusätzlicher
Satz "Rückführpfad"-Bits kann verwendet
werden, um den Ergebnisrückführpfad anzuzeigen.
-
In 3 ist eine Bypass-Steuerschaltung 80 dargestellt,
die gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ausgestaltet ist. Die Bypass-Steuerschaltung 80 stellt
einen effizienten Bypass zur Verfügung, wie unten beschrieben
wird, und ist an ein Registerfile 104 angeschlossen, das
einen Scoreboard/Ergebnispfadanzeiger 100 aufweist, der
zusätzliche
Informationen über
den Status jedes Registers in dem Registerfile 104 speichert.
-
Die
Bypass-Steuerschaltung 80 ist auch an einen MUX 12 angeschlossen,
um die Auswahl von Daten zu steuern, die entweder vom Registerfile 104,
von einem Ergebnisrückführdatenpfad 16 oder
einem Ergebnisrückführpfad 26 einem
der Eingänge
der Ausführungseinheit 10 zugeführt werden.
Bei einem Ausführungsbeispiel
ist eine weitere Bypass-Steuerschaltung (nicht gezeigt) vorgesehen,
die so angeschlossen ist, daß sie die
Auswahl der Daten steuert, die an den anderen Eingang der Ausführungseinheit 10 durchgeschaltet
werden sollen. Bei einem weiteren Ausführungsbeispiel weist jeder
MUX jeder Ausführungseinheit
eine Bypass-Steuerschaltung auf, die ähnlich ist wie die Bypass-Steuerschaltung 80.
Bei einem noch weiteren Ausführungsbeispiel
kann jede Ausführungseinheit
bei ihren Eingängen
Zwischenspeicher aufweisen, um mit Fällen umzugehen, bei denen ansonsten
nicht alle ihre Eingaben gleichzeitig zur Verfügung stehen würden. Diese Zwischenspeicher
werden dadurch gesteuert, daß "Operand bereit"-Anzeigen verwendet
werden, die von der Bypass-Steuerschaltung erzeugt werden, die jedem
Eingang zugeordnet ist.
-
In
der Bypass-Steuerschaltung 80 wird ein AND-Gatter 82 mit
logisch invertierten Eingängen
verwendet, um festzustellen, ob die in dem Registerfile 30 enthaltenen
Daten verwendet werden sollen oder nicht, wie unten erklärt. Die
Eingaben an das AND-Gatter 82 stammen von dem Scoreboard/Ergebnispfadanzeiger 100. Der
Ausgang des AND-Gatters 82 ist eine Registerfile-Auswahlsteuerleitung
(SRF) 84.
-
Wenn
der Scoreboard/Rückführpfadanzeiger 100 anzeigt,
daß die
Daten in dem Registerfile 30 nicht gültig sind (d.h., daß die Daten
gekennzeichnet sind), wird der MUX 86 verwendet, um die
Ergebnisrückführdatenpfad-Registeradresse
für den
Ergebnisrückführdatenpfad,
der von dem Scoreboard/Rückführpfadanzeiger 100 angezeigt
wird, auszuwählen
und durchzuschalten. Die Ausgabe des MUX 86 wird einem
Komparator 88 zugeführt,
der auch die Registeradresse des Operanden empfängt, auf den die Ausführungseinheit
wartet. Die Ausgabe des Komparators 88 wird einem zweiten
AND-Gatter 90 und einem dritten AND-Gatter 92 zugeführt, die
verwendet werden, um jeweils zwischen dem Ergebnisrückführdatenpfad 16 und
dem Ergebnisrückführdatenpfad 26 auszuwählen.
-
Wenn
ein Register gekennzeichnet wurde, bestimmt der Adressdekodierer 94,
wenn überhaupt,
von welchem der Ergebnisrückführdatenpfade
ein Ergebnis rückgeführt werden
soll, indem die Bits in dem Scoreboard/Rückführpfadanzeiger 100, die
zu diesem Register gehören,
dekodiert werden. Wenn der Adressdekodierer 94 feststellt,
daß die
Daten, die in das Register rückgeführt werden
sollen, vom Ergebnisdatenpfad 16 stammen sollen, legt der
Adressdekodierer 94 eine logische eins an dem Ausgang an,
der an das zweite AND-Gatter 90 angeschlossen ist. Auf ähnliche
Weise legt der Adressdekodierer 94, wenn der Adressdekodierer 94 feststellt,
daß die
Daten, die in das Register rückgeführt werden
sollen, von dem Ergebnisdatenpfad 26 stammen sollen, eine
logische eins an dem Ausgang an, der an das dritte AND-Gatter 92 angeschlossen
ist.
-
Die
Bypass-Steuerschaltung 80 enthält auch ein OR-Gatter 102,
welches die Ausgaben des AND-Gatters 82, des zweiten AND-Gatters 90 und
des dritten AND-Gatters 92 empfängt, um ein "Operand-bereit"-Signal anzuzeigen.
Ein OR-Gatter wird deshalb verwendet, da dann, wenn irgendeines
der AND-Gatter (d.h. das AND-Gatter 82, das zweite AND-Gatter 90 und
das dritte AND-Gatter 92) angesteuert wird, ein zur Verwendung
bereiter Operand vorliegt.
-
Weiterhin
bezogen auf 3, ist ein
Beispiel für
die Funktionsweise des Systems, wenn ein Befehl ausgegeben wird,
ein Ergebnis an ein Register 0 [R0] rückzuführen. Somit wird das Kennzeichenbit
von R0 gesetzt. Zur gleichen Zeit, zu der das Kennzeichenbit gesetzt
wird, wird auch Ergebnisrückführdatenpfad-Anzeigeinformation
in den Rückführpfad-/Scoreboardbits
kodiert, um den Ergebnisrückführdatenpfad
anzuzeigen, von dem das Ergebnis für R0 rückgeführt wird. Die Information,
die den Ergebnisrückführdatenpfad
spezifiziert, auf dem das Ergebnis rückgeführt wird, kann in einigen Fällen direkt
aus dem Befehl hergeleitet werden oder muß von der Hardware erhalten
werden, die entscheidet; welche Ausführungseinheit die Operation durchführt. Dann
wird, wenn ein darauffolgender Be fehl ausgegeben wird, der den Wert
in R0 benötigt,
bevor der erste Befehl ein Ergebnis in R0 rückgeführt hat, der Befehl "gekennzeichnet" (d.h. der Befehl
muß darauf warten,
daß der
erste Befehl ein Ergebnis an R0 rückführt, bis er die Ausführung fortsetzen
kann).
-
Im
Stand der Technik konnte ein permanenter Bypass nur dadurch verwirklicht
werden, daß sämtliche Ergebnisrückführdatenpfade
hinsichtlich des Ergebnisses überwacht
wurden, das an R0 rückgeführt werden soll.
Im Gegensatz hierzu kann das vorliegende System dadurch einen Bypass
erreichen, daß nur
die Kodierung der Rückführpfad-/Scoreboardbits
für R0 überwacht
wird. Die Kodierung und deren Bedeutung ist wie folgt: Tabelle
1 – Rückführpfad-/Scoreboardbit-Kodierung
-
Bei
einem Ausführungsbeispiel
werden für
jedes Register zwei Bits verwendet, um die insgesamt mögliche Anzahl
an Stellen für
Quellen für
das Ergebnis darzustellen. Der logisch inverse Wert von beiden wird
als Eingabe an das AND-Gatter 82 zugeführt. Wenn beide Bits null sind,
soll das Ergebnis von dem Registerfile 104 stammen, so
daß der
Wert in dem Registerfile 104 ausgewählt wird und an die Ausführungseinheit
durchgeschaltet wird. Wenn das erste Bit keine null ist, wird auch
das zweite Bit untersucht, um festzustellen, von welchem Ergebnisrückführdatenpfad
das Ergebnis stammt. Der Ergebnisrückführdatenpfad zeigt die Registeradresse
an, an der sich die Daten befinden.
-
Der
Komparator 88 zeigt an, wenn das relevante Ergebnis auf
dem Ergebnisrückführdatenpfad
auftaucht, da es eine beliebige Anzahl von Zyklen dauern könnte, bevor
das relevante Ergebnis vorliegt. In der Zwischenzeit können mehrere
andere Ergebnisse über
den Bus gesendet werden, so daß die
Bypass-Steuerschaltung
nicht nur sicherstellt, daß das
System über
den Ergebnisrückführdatenpfad
des relevanten Ergebnisses informiert wird, sondern auch, daß das System
das relevante Ergebnis von dem richtigen Ergebnisrückführdatenpfad
empfängt.
-
Anstelle
eines Vergleichs mit allen möglichen
Ergebnisrückführdatenpfaden,
die das Ergebnis rückführen könnten, und
eines Auswählens
unter diesen, kann ein Ergebnisrückführdatenpfad
identifiziert werden, so daß nur
Ergebnisse, die auf diesem Ergebnisrückführdatenpfad zu dem Registerfile 104 rückgeführt werden, auf
ihre Bestimmungsadresse hin untersucht werden. Beispielsweise wird
bei einem System mit fünf
Ergebnisrückführdatenpfaden,
die Ergebnisse rückführen, anstatt
daß fünf Komparatoren
in der Bypass-Steuerschaltung benötigt werden, die Bypass-Steuerschaltung 80 so
modifiziert, daß sie
nur einen einzelnen Komparator verwendet, wobei die einzigen Änderungen
ein MUX mit fünf
Eingängen
anstelle eines MUX mit zwei Eingängen
und eine erhöhte
Anzahl an Bits, die in dem Scoreboard/Ergebnisrückführ-datenpfadanzeiger 100 gespeichert
sind, um fünf
mögliche
Ergebnisrückführdatenpfade
anzuzeigen, sind.
-
Ein
OR-Gatter 102 empfängt
die Signale von SRF 84, SRP16 96 und SRP26 98 und
stellt eine logische OR-Verbindung zwischen ihnen her, so daß, wenn
von diesen irgendein Signal wahr ist, ein gültiges Ergebnis erhältlich ist
(d.h. der Operand ist "bereit") und an die Ausführungseinheit 10 gesendet
werden kann (d.h. durch Nebenleiten oder durch direktes Lesen von
dem Registerfile), möglicherweise
zur gleichen Zeit, zu der das Ergebnis an das Registerfile 104 gesendet
wird.
-
Nachdem
das gültige
Ergebnis an das Registerfile 104 rückgeführt ist, werden die zwei Bits,
denen die Anzeige des Status des Ergebnisses in dem Registerfile 104 in
dem Scoreboard/Ergebnisrückführdatenpfadanzeiger 100 obliegt,
rückge setzt
(d.h. auf logisch null eingestellt), um anzuzeigen, daß das Ergebnis
in dem Registerfile 104 jetzt gültig ist.
-
Das
in 3 gezeigte und oben
beschriebene System funktioniert gut in Systemen, die keine Mehrfachbefehle
zulassen, die zur simultanen Ausführung alle ein Ergebnis an
die gleiche Registeradresse rückführen. Dies
ist in vielen Prozessoren der Fall. Jedoch kann häufig eine
bessere Leistungsfähigkeit
erzielt werden, indem diese Restriktion gelockert wird, wobei zugelassen
wird, daß mehrere
Befehle zur simultanen Ausführung
alle ihr Ergebnis an das gleiche Register rückführen, sogar dann, wenn zwischen
ihnen weitere Befehle ausgegeben werden, die diese Ergebnisse verwenden.
Eine erhöhte
Leistungsfähigkeit
kann in dieser Situation auch erreicht werden, wenn die Befehle
ihre Ergebnisse in einer Reihenfolge rückführen, die sich von der Reihenfolge,
in der sie ausgegeben wurden, unterscheidet. Dies wird als von der
Reihenfolge abweichendes Ausführen
bezeichnet. In diesem Fall müssen
zusätzliche
Anstrengungen unternommen werden, um sicherzustellen, daß die Befehle
unter Verwendung der richtigen Eingabewerte ausgeführt werden.
-
4 ist ein Blockdiagramm
einer Bypass-Steuerschaltung 80, die so modifiziert ist,
daß ein Schreib-nach-Schreib
(write-after-write bzw. WAW)-Fehler vermieden wird. Ein WAW tritt
in einem Prozessor auf, wenn verschiedene Befehle Ergebnisse an
die gleiche Registerstelle in einer Reihenfolge rückführen, die sich
von der Reihenfolge, in der die Befehle ausgegeben wurden, unterscheidet.
-
Beispielsweise
enthält
die Tabelle 2a ein Beispiel für
eine WAW-Fehlersituation, bei welcher vier Befehle ausgegeben werden: Tabelle
2a – WAW-Fehler
-
Dabei
ist LADEN(X,Y) ein Befehl, der einen Wert X in ein Register Y lädt; ADDIEREN(X,Y,Z)
addiert einen Wert X und einen Wert Y und speichert das Ergebnis
an einer Stelle Z; VERSCHIEBEN(X,Y) ist ein Befehl, der die Daten
in einer Speicherstelle X in ein Register Y verschiebt; und SP(X,Y)
ist ein Befehl, der den Wert in einem Register X in einer Speicherstelle
Y speichert. Die Ausführungseinheit-Spalte
zeigt an, an welche Ausführungseinheit
der Befehl ausgegeben wird; und die Rückführpfad-Spalte zeigt an, auf
welchem Rückführpfad das
Ergebnis des Befehls rückgeführt wird.
-
Ein
WAW kann auftreten, wenn der LADEN- und der VERSCHIEBEN- Befehl ihre Ergebnisse
entweder von der Reihenfolge abweichend oder auf parallele Weise
rückführen. Ohne
den WAW-Schutz kann
der VERSCHIEBEN-Befehl vor dem LADEN-Befehl ausgeführt und
beendet werden. Wenn der LADEN-Befehl die Ausführung nach dem VERSCHIEBEN-Befehl
beendet, wird R1 mit dem Wert 4 geladen, der den Wert 8 überschreibt,
der von dem VERSCHIEBEN-Befehl rückgeführt wird.
Somit speichert der SP-Befehl,
anstatt richtigerweise einen Wert 4 in der Speicherstelle 12 zu
speichern, fälschlicherweise
den Wert 8 in die Speicherstelle 12.
-
Um
WAW-Fehler zu vermeiden, kann der Scoreboard/Ergebnisrückführdatenpfadanzeiger 100,
der den relevanten Rückführpfad anzeigt,
auf dem ein Ergebnis rückgeführt werden soll,
verwendet werden, um einem darauffolgenden Befehl, der dieses Ergebnnis
verwenden soll, zu ermöglichen,
die Rückführung der
Daten auf dem relevanten Rückführpfad zu überwachen.
Bei einem Ausführungsbeispiel
dürfen
aufeinanderfolgende Befehle, die auch den gleichen Rückführpfad zum
Rückführen eines
Werts in das gleiche Register verwenden, nicht ausgegeben werden.
Darauffolgende Befehle, die entweder ein Ergebnis an ein unterschiedliches
Register rückführen oder
die einen unterschiedlichen Pfad verwenden, dürfen ausgegeben werden. Die Kombination
aus dem Register, für
das das Ergebnis bestimmt ist, und dem Rückführpfad, auf dem es rückgeführt wird,
werden kombiniert, um das Ergebnis eindeutig zu identifizieren.
Der Ausführungseinheit,
die dazu bestimmt ist, einen darauffolgenden Befehl zu verarbeiten,
der auf ein Ergebnis wartet, wird dieses eindeutige Register/Rückführpfadpaar
zugeführt
(und nicht nur das Register, wie es im Stand der Technik der Fall
wäre), wenn
dieser darauffolgende Befehl ausgegeben wird. Sie speichert/verwendet
diese eindeutige Identifizierung, um sicherzustellen, daß der darauffolgende
Befehl nur das richtige Ergebnis verwendet.
-
Unter
Verwendung des in Tabelle 2a dargestellten Beispiels zur Veranschaulichung
dieses Vorgangs wird zunächst
der Ladebefehl ausgegeben. Angenommen, es dauert beliebig lange,
bis das Laden beendet ist. Wenn der nächste Befehl, der das Ergebnis
des Ladens verwendet, ausgegeben wird (der ADDIEREN-Befehl), wird der
Ausführungseinheit,
zu der der Befehl zugeordnet ist, sowohl die Registeradresse (R1)
als auch der Ergebnisrückführdatenpfad
(16) zugeführt.
Sie beginnt, darauf zu warten, daß das Ergebnis ("R1 auf dem Ergebnisrückführdatenpfad 16") erscheint. Dann
wird der VERSCHIEBEN-Befehl ausgegeben. Angenommen, der VERSCHIEBEN-Befehl
führt sein
Ergebnis nicht sofort zurück.
Dann wird der SP-Befehl ausgegeben und die Ausführungseinheit, der er zugeordnet
ist, muß nach
einem "R1 auf dem
Ergebnisrückführdatenpfad 26" Ausschau halten.
-
Bei
einem Szenario kann der LADEN-Befehl als erstes sein Ergebnis zurückführen. In
diesem Fall beobachtet die Einheit, die den ADDIEREN-Befehl ausführt, daß das Ergebnis
auf dem Ergebnisrückführdatenpfad 16 rückgeführt wird,
und veranlaßt
einen Bypass des Ergebnisses an sich selbst. Die Einheit, die den SP-Befehl
ausführt,
beobachtet den Ergebnisrückführdatenpfad 16 nicht
und stellt deshalb nicht fest, daß ein Ergebnis an R1 rückgeführt wird.
Später,
wenn der VERSCHIEBEN-Befehl sein Ergebnis auf dem Ergebnisrückführdatenpfad 26 rückführt, sieht
die Einheit, die den SP-Befehl ausführt, dieses Ergebnis und veranlaßt einen
Bypass desselben an sich selbst.
-
Bei
einem anderen möglichen
Szenario kann der VERSCHIEBEN-Befehl
sein Ergebnis vor dem LADEN-Befehl rückführen. In diesem Fall sieht
die Einheit, die den SP-Befehl ausführt, das Ergebnis, da es auf dem
Ergebnisrückführdatenpfad 26 rückgeführt wird,
und die Einheit, die den ADDIEREN-Befehl ausführt, sieht das Ergebnis nicht,
da es sich nicht auf dem Ergebnisrückführdatenpfad 16 befindet.
Deswegen veranlaßt
die Einheit, die den SP-Befehl ausführt, einen Bypass des Ergebnisses
an sich selbst, und nicht die Einheit, die den ADDIEREN-Befehl ausführt. Später, wenn
der LADEN-Befehl (von der Reihenfolge abweichend) sein Ergebnis über den
Ergebnisrückführdatenpfad 16 rückführt, sieht
die Einheit, die den ADDIEREN-Befehl ausführt, das Ergebnis und veranlaßt einen
Bypass desselben an sich selbst.
-
Bei
beiden Szenarien werden durch die Verwendung der Ergebnisrückführdatenpfadinformation
in Kombination mit der Registeradresse jeder Operation die richtigen
Eingabewerte zur Verfügung
gestellt. Dies wäre
auch beim dritten möglichen
Szenario der Fall, bei welchem beide Ergebnisse gleichzeitig rückgeführt werden.
-
Ein
von der Reihenfolge abweichendes Rückführen von Ergebnissen an das
Registerfile selbst (im Gegensatz zum Rückführen an die Bypass-Mechanismen),
kann durch eine Anzahl von Mechanismen bewerkstelligt werden, abhängig von
den Erfordernissen der Befehlssatzarchitektur. Speicher, die die
Reihenfolge wiederherstellen, sind nur eine mögliche Lösung. Sie speichern die von
der Reihenfolge abweichenden Ergebnisse, bis alle Befehle, die vor
demjenigen ausgegeben wurden, der das Ergebnis erzeugt hat, ihre
Ergebnisse rückgeführt haben.
Dieser Mechanismus stellt die Reihenfolge der von der Reihenfolge
abweichenden Ergebnisse wieder her, so daß sie in der ursprünglichen
Programmreihenfolge in das Registerfile geschrieben werden. Einige
Architekturen können
jedoch die vorliegende Erfindung ausnützen, um den Vorgang zu vereinfachen,
mit dem Ergebnisse in das Registerfile geschrieben werden.
-
Wenn
ein Prozessor dafür
garantieren kann, daß alle
Befehle, sobald sie ausgegeben wurden, ein Ergebnis rückführen, kann
ein Ergebnis, das an das Registerfile rückgeführt wird, gelöscht werden
(anstatt in das vorgesehene Register geschrieben zu werden), wenn
es einen weiteren Befehl gibt, der nach demjenigen ausgegeben wurde,
der dieses Ergebnis erzeugt hat, der ein Ergebnis an das gleiche
Register rückführen wird oder
bereits rückgeführt hat.
Dies ist der Fall, weil sämtliche,
bereits ausgegebenen Befehle, die dieses spezielle Ergebnis benötigten,
es durch den Bypass-Mechanismus erhalten haben, und da sämtliche
Befehle, die noch nicht ausgegeben wurden, dieses Ergebnis nicht
benötigen,
sondern statt dessen das Ergebnis benötigen, das von dem darauffolgenden
Befehl erzeugt wird, der bereits ausgegeben wurde. Wenn dies der
Fall ist, kann die Information in den Kennzeichenbits verwendet
werden, um das Schreiben in das Registerfile zu steuern. Für jedes
Register enthalten die Kennzeichenbits entweder den Ergebnisrückführdatenpfad,
den der zuletzt ausgegebene Befehl, der ein Ergebnis zu diesem Register
zurückführt, verwenden
wird, oder es wird angezeigt, daß der zuletzt ausgegebene Befehl,
der ein Ergebnis an dieses Register rückführt, die Ausführung beendet
hat und sein Ergebnis rückgeführt hat.
In jedem Fall kann ein Ergebnis, das rückgeführt wird und nicht mit den
Erwartungen der Kennzeichenbits übereinstimmt,
nur von einem Befehl stammen, der vor dem letzten Befehl ausgegeben
wurde, der einen Wert an dieses Register rückführt oder rückgeführt hat. Deswegen kann das
rückgeführte Ergebnis
sicher ignoriert werden.
-
Wenn
dieser Mechanismus zum Steuern des Schreibens von Ergebnissen in
das Registerfile verwendet wird, wird bei dem in Tabelle 2a dargestellten
Beispiel, unter der Annahme, daß der
VERSCHIEBEN-Befehl ausgegeben wird, bevor der LADEN-Befehl sein
Ergebnis rückführt, ungeachtet
dessen, ob der LADEN-Befehl seinen
Befehl rückführt, bevor
oder nachdem der VERSCHIEBEN-Befehl sein Ergebnis rückführt, das
Ergebnis des LADEN-Befehls nicht in R1 geschrieben. Dies ist der
Fall, da die Kennzeichenbits anzeigen, daß das aktuellste Ergebnis für R1 auf
dem Ergebnisrückführdatenpfad 26 ankommen
wird und nicht auf dem Ergebnisrückführdatenpfad 16,
den der LADEN-Befehl
zum Rückführen seines
Ergebnisses verwendet. Der ADDIEREN-Befehl wird dennoch über den
vorher beschriebenen Bypass-Mechanismus den richtigen Wert empfangen.
-
4 ist ein Blockdiagramm
der Schaltung von 3,
die so modifiziert wurde, daß sie Schreib-nach-Schreib(WAW)-Fehler behandeln
kann, und enthält
einen Sp-Speicher 122 und einen regadr-Speicher 120,
die die benötigte
Information über
die Quelle der Eingabe speichern. Die Figur zeigt nur die Bypass-Steuerlogik
für einen
MUX 12. Es wird eine identische Schaltung verwendet, um
einen MUX 14 zu steuern. Die Ausführungseinheit 10 hat
die Fähigkeit,
die Eingabe, die sie vom MUX 12 und MUX 14 empfängt, zu
speichern, wenn die zu jedem zugeordnete "Operand-bereit"-Anzeige einen wahren Wert hat. Sie
muß auch die
auszuführende
Operation speichern, wenn diese Operation an sie ausgegeben wird.
Wenn die Ausführungseinheit 10 alle
Eingaben empfangen und gespeichert hat, die für die ausgegebene Operation
benötigt werden,
führt sie
die gespeicherte Operation aus und führt das Ergebnis über den
Ergebnisrückführdatenpfad 16 zurück.
-
Wenn
ein auszuführender
Befehl an die Ausführungseinheit 10 ausgegeben
wird, werden die folgenden Operationen durchgeführt:
- 1.
Die Ausführungseinheit 10 speichert
den auszuführenden
Befehl.
- 2. Die Bypass-Steuerschaltung 80 speichert die Registeradresse
und den Zugriffspfadspezifizierer für den Operanden, der über den
MUX 12 zugeführt
wird. Der Zugriffspfadspezifizierer wird aus der Information in dem
Scoreboard/Rückführpfadanzeiger 100 abgeleitet
und zeigt an, daß der
Operand entweder vom Registerfile 104, vom Ergebnisrückführdatenpfad 16 oder
vom Ergebnisrückführdatenpfad 26 erhalten
wird.
- 3. Die Bypass-Steuerschaltung für den MUX 14 (nicht
gezeigt), die in einem Ausführungsbeispiel
der Erfindung identisch mit der Bypass-Steuerschaltung 80, die den
MUX 12 steuert, ist, speichert die Registeradresse und
den Zugriffspfadspezifizierer für
den Operanden, der durch den MUX 14 zugeführt wird.
-
Die
Bypass-Steuerschaltung 80 funktioniert dann auf eine der
folgenden drei, sich gegenseitig ausschließenden Weisen:
- 1. Wenn der in dem Sp-Speicher 122 gespeicherte Zugriffspfadspezifizierer
anzeigt, daß das
Ergebnis aus dem Registerfile 104 erhalten werden muß, wird
der MUX 12 so gesteuert, daß der Wert am Eingang, welcher
an das Registerfile 104 angeschlossen ist, am Ausgang des
MUX 12 anliegt. Nachdem dies erreicht wurde, veranlaßt das Aktivieren
der "Operand-bereit"-Anzeige die Ausführungseinheit 10,
den Wert des Eingangs zu speichern, der an den Ausgang des MUX 12 angeschlossen
ist.
- 2. Wenn der in dem Sp-Speicher 122 gespeicherte Zugriffspfadspezifizierer
anzeigt, daß der
Operand von dem Ergebnisrückführdatenpfad 16 erhalten
wird, wird der MUX 86 so gesteuert, daß die Ergebnisrückführdatenpfad 16 – Registeradresse
an seinem Ausgang anliegt und deshalb an einem der Eingänge des
Komparators 88. Der Adressdekodierer 94 erzeugt
an dem an das AND-Gatter 90 angeschlossenen Ausgang einen
wahren Wert, und an dem an das AND-Gatter 92 angeschlossenen
Ausgang einen falschen Wert. Wenn der Ergebnisrückführdatenpfad 16 den
in ein Register zu schreibenden Wert enthält, erscheint die Adresse dieses
Registers auf dem Registeradressen-Ergebnisrückführdatenpfad 16. Wenn
diese gleich ist mit der in dem regadr-Speicher 120 gespeicherten
Registeradresse, erhält
die Ausgabe des Komparators 88 einen wahren Wert. Dies
führt dazu,
daß die
Ausgabe des AND-Gatters 90 einen wahren Wert erhält, da seine
beiden Eingaben einen wahren Wert haben. Die Tatsache, daß die Ausgabe
des AND-Gatters 90 einen wahren Wert hat, führt dazu,
daß der
MUX 12 so gesteuert wird, daß der Wert auf dem Ergebnisrückführdatenpfad 16 an
den Ausgang des MUX 12 geleitet wird. Die Tatsache, daß die Ausgabe
des AND-Gatters 90 ebenfalls einen wahren Wert hat, führt dazu,
daß die "Operand-bereit"-Anzeige einen wahren
wert erhält.
Dies führt
dazu, daß die
Ausführungseinheit 10 den
Wert speichert, der vom MUX 12 ausgegeben wird.
- 3. Wenn der in dem Sp-Speicher 122 gespeicherte Zugriffspfadspezifizierer
anzeigt, daß der
Operand von dem Ergebnisrückführdatenpfad 26 erhalten
wird, wird der MUX 86 so gesteuert, daß die Registeradresse des Ergebnisrückführdatenpfads 26 an
seinem Ausgang anliegt und deshalb an einem der Eingänge des Komparators 88.
Der Adressdekodierer 94 erzeugt an dem Ausgang, der an
das AND-Gatter 92 angeschlossen
ist, einen wahren Wert, und einen falschen Wert an dem Ausgang,
der an das AND-Gatter 90 angeschlossen ist. Wenn der Er gebnisrückführdatenpfad 26 den
in ein Register zu schreibenden Wert enthält, erscheint die Adresse dieses
Registers auf dem Registeradressen-Ergebnisrückführdatenpfad 26. Wenn
diese gleich ist mit der in dem regadr-Speicher 120 gespeicherten
Registeradresse, erhält
die Ausgabe des Komparators 88 einen wahren Wert. Dies
führt dazu,
daß die
Ausgabe des AND-Gatters 92 einen wahren Wert erhält, da seine
beiden Eingaben einen wahren Wert haben. Die Tatsache, daß die Ausgabe des
AND-Gatters 92 einen wahren Wert hat, führt dazu, daß der MUX 12 so
gesteuert wird, daß der
Wert auf dem Ergebnisrückführdatenpfad 26 an
den Ausgang des MUX 12 geleitet wird. Die Tatsache, daß die Ausgabe
des AND-Gatters 92 ebenfalls einen wahren Wert hat, führt dazu,
daß die "Operand-bereit"-Anzeige einen wahren
Wert erhält.
Dies führt
dazu, daß die
Ausführungseinheit 10 den
vom MUX 12 ausgegebenen Wert speichert.
-
Nachdem
eine dieser drei Operationen durchgeführt wurde, hat die Ausführungseinheit 10 den
korrekten Wert für
den Operanden gespeichert, der vom MUX 12 erhalten wird.
Bei einem Ausführungsbeispiel
der Erfindung tritt ein identischer Vorgang in Bezug auf den Operanden
auf, der vom MUX 14 erhalten werden soll. Wenn diese beiden
Vorgänge
beendet wurden, kann die Ausführungseinheit 10 den
Befehl ausführen,
der ausgegeben wurde.
-
Es
sei angemerkt, daß beim
Beschreiben der Arbeitsweisen des Systems nur eine beschränkte Anzahl von
Ausführungseinheiten
und weiterer Komponenten verwendet wurde. Jedoch kann das System
skaliert werden, so daß eine
unbeschränkte
Anzahl von Ausführungseinheiten,
Rückführpfaden
und Komponenten verwendet werden kann. Es sei ebenfalls angemerkt,
daß beim
Beschreiben der Arbeitsweisen des Systems jedem Datenrückführpfad nur
eine einzelne Ausführungseinheit
zugeordnet war. Jedoch ermöglicht
das System einer beliebigen Anzahl von Ausführungseinheiten, Daten auf
dem gleichen Rückführpfad rückzuführen. Außerdem ermöglicht es,
daß eine
Ausführungseinheit
auf mehreren Rückführpfaden
Ergebnisse rückführt.
-
Während die
Erfindung insbesondere unter Bezug auf die verschiedenen Figuren
beschrieben wurde, ist zu verstehen, daß diese Figuren nur zur Veranschaulichung
dienen und nicht so aufgefaßt
werden sollen, daß sie
den Schutzbereich der Erfindung beschränken. Der Fachmann kann bei
der Erfindung viele Änderungen
und Modifikationen vornehmen, ohne den Grundgedanken und den Schutzbereich
der Erfindung zu verlassen. Ebenfalls ist verständlich, daß viele der Details des Timings
und des Steuerschaltkreises, die benötigt werden, um eine vollständig funktionierende
Ausgestaltung des erfindungsgemäßen Systems
zu schaffen, nicht im Detail beschrieben werden. Ein solches kann
vom Fachmann komplett aufgebaut werden, ohne vom Grundgedanken und
Schutzbereich der Erfindung abzuweichen.