DE2856680C2 - - Google Patents
Info
- Publication number
- DE2856680C2 DE2856680C2 DE19782856680 DE2856680A DE2856680C2 DE 2856680 C2 DE2856680 C2 DE 2856680C2 DE 19782856680 DE19782856680 DE 19782856680 DE 2856680 A DE2856680 A DE 2856680A DE 2856680 C2 DE2856680 C2 DE 2856680C2
- Authority
- DE
- Germany
- Prior art keywords
- unit
- memory
- command
- data
- counter
- 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.)
- Expired - Lifetime
Links
- 239000000872 buffer Substances 0.000 claims description 53
- 238000012545 processing Methods 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 claims 1
- 238000012546 transfer Methods 0.000 description 14
- 230000007704 transition Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
Die Erfindung betrifft Datenverarbeitungssysteme und bezieht
sich insbesondere auf einen Befehlspuffer, der Befehle für
eine Zentraleinheit bereitstellt, entsprechend dem Oberbegriff
des Patentanspruchs 1.
Mit der Entwicklung großer Datenverarbeitungssysteme ist
ständig das Bedürfnis gewachsen, den Durchsatz des zentralen
Verarbeitungssystems zu erhöhen, ohne aber gleichzeitig die
Kosten des Systems in eine Größenordnung zu steigern, die
nicht mehr akzeptabel ist. Einen Schritt in diese Richtung
brachte die Einführung des Cachespeichers. Eine weitere Ver
besserung wurde erreicht, als zusätzlich zum Cachespeicher
ein Befehlspuffer vorgesehen wurde.
Aus dem Stand der Technik sind Datenverarbeitungssysteme mit
einem Befehlspuffer bereits bekannt (z. B. GB 12 71 127 und
DE 24 04 459 B2). Bei diesen Systemen wird jedoch auf den
Cachespeicher verzichtet, so daß die Möglichkeiten einer
weiteren Leistungssteigerung noch nicht ausgeschöpft sind.
In einer prioritätsälteren, nicht vorveröffentlichten, von
derselben Anmelderin stammenden Anmeldung (DE-OS 28 56 680)
wird hingegen ein Datenverarbeitungssystem beschrieben, in
dem ein Befehlspuffer für einen Cachespeicher vorgesehen ist.
Trotz Vorhandenseins eines Cachespeichers und eines Befehls
puffers können sich Einschränkungen in der Leistungsfähigkeit
des Datendurchsatzes ergeben beim Übergang von einer operativen
Befehlsfolge zu einer alternativen operativen Befehlsfolge der
die Operation der Zentraleinheit steuernden Befehle. Kompli
ziert sind solche Übergänge insbesondere dann, wenn sie vom
Eintreten bestimmter Ereignisse oder Bedingungen abhängig sind
(z. B. bedingte Sprünge), deren vorherige Festlegung nicht ohne
die Ausführung gewisser Datenmanipulationen möglich ist. So
ist es sogar bei der Identifizierung eines Übergangsbefehls
nicht möglich sicherzustellen, daß der Übergang zu einer al
ternativen operativen Befehlsfolge - so wie im Transferbefehl
definiert - von der Zentraleinheit gefordert wird.
Der Erfindung liegt demgemäß die Aufgabe zugrunde, einen
verbesserten Befehlspuffer in einem Datenverarbeitungssystem
mit Cachespeicher zu schaffen, der den Übergang von einer ope
rativen Befehlsfolge zu einer alternativen operativen Befehls
folge unter minimaler Unterbrechung des Betriebs des Zentral
prozessors ermöglicht durch Signalisierung des Speicherzu
standes von die Befehlsfolgen temporär speichernden Speicher
platzgruppen zur Sicherstellung eines optimalen Nachladens der
abzuarbeitenden operativen Befehlsfolgen.
Gelöst wird die vorstehend aufgezeigte Aufgabe durch einen
Befehlspuffer mit den im kennzeichnenden Teil des Patent
anspruchs 1 aufgezeigten Merkmalen.
Anhand von Zeichnungen wird die Erfindung nachstehend
beispielsweise näher erläutert.
Fig. 1 zeigt in einem Blockdiagramm ein
eine Cachespeichereinheit verwendendes Datenverarbei
tungssystem.
Fig. 2 zeigt das Adressenformat, welches in
dem Datenverarbeitungssystem
ver
wendet wird.
Fig. 3 zeigt in einem Blockdiagramm eine
Cachespeichereinheit unter Veranschaulichung der
generellen Organisationsstruktur.
Fig. 4 zeigt in einem Blockschaltbild
die Organisation eines Befehlspuffers gemäß der be
vorzugten Ausführungsform der Erfindung.
Fig. 5 zeigt schematisch die
Inhalte der Befehlspuffer
register und veranschaulicht deren Bedeutung
für die der Zentraleinheit zuzuführenden Signale.
In Fig. 1 ist die generelle Organisation eines Daten
verarbeitungssystems veranschaulicht, in welchem eine
Cachespeichereinheit verwendet ist. Eine Zentralein
heit 50 ist dabei mit einer Cachespeichereinheit 100
und einer Systemschnittstelleneinheit 60 gekoppelt.
Die Systemschnittstelleneinheit ist an eine Hauptspeicher
einheit 70 angeschlossen. Die Zentraleinheit 50, die Haupt
speichereinheit 70 und die Systemschnittstellenein
heit 60 können aus einer Vielzahl von einzelnen Ein
heiten bestehen, die alle in geeigneter Weise miteinan
der gekoppelt und zur genauen Ausführung einer Daten
verarbeitung gesteuert werden.
In Fig. 2 ist das Format einer Datenadresse veranschau
licht, die aus 24 binären Datenbits besteht und in
dem Datenverarbeitungssystem verwendet wird. Die
ersten 15 Bits höchster Wertigkeit kennzeichnen eine
Seitenadresse von Daten. Jede Seitenadresse der Daten
besteht aus 512 Datenwörtern. Bei der vorliegenden Aus
führungsform besteht jedes Wort aus 50 binären Daten
bits. Diese Zahl ist eine Frage der entsprechen
den Schaltungsauslegung. Von den durch die
übrigen elf Bits jeder Datenseite bezeichneten 512 Da
tenwörtern ist jede Gruppe der nächsten sieben Datenbits
einem Speicherplatz von Gruppen von Speicherplatzzellen
in dem Cachespeicher zugehörig, und ferner stellt die
betreffende Gruppe eine Speicherplatzadresse in dem
Cachespeicher dar. Dies bedeutet, daß in dem Cachespei
cher 128 Speicherplätze vorhanden sind, deren jeder
durch eine Kombination der binären Bits in der Bitzu
sammenstellung zweithöchster Wertigkeit festgelegt ist.
Die vier Bitzusammenstellungen niedrigster Wertigkeit
des Adressenformats werden bei der vorliegenden Aus
führungsform nicht zur Kennzeichnung einer Wortadresse
in der Cachespeichereinheit genutzt. Für einen effizien
ten Datenaustausch zwischen der Cachespeichereinheit und
der Hauptspeichereinheit wird bei jeder Datenübertragungsoperation
ein Block von vier Datenwörtern übertragen. Da
die Datenübertragung in Blöcken
erfolgt, existiert keine Forderung dahingehend, die
Bits niedrigster Wertigkeit zur Identifizierung der
übertragenen Information zu dem Hauptspeicher hin aus
zunutzen. Die den Block bildenden vier Wörter sind bei
der normalen Datenübertragung in jedem Falle stets vor
handen. Gemäß Fig. 2 beginnt das Adressenformat an der
Bitposition Null. Dies ist jedoch eine Frage der
entsprechenden Schaltungsauslegung; es können auch
andere Adressenformate benutzt werden. In entsprechen
der Weise kann das Adressenformat eine zusätzliche In
formation enthalten, wie Paritäts- oder Statusbezeich
nungen, wenn das Adressenformat größere Gruppen von
binären Datenbits (mehr als 24 Bits) enthält.
In Fig. 3 sind schematisch in einem Blockdiagramm die
Hauptkomponenten der Cachespeichereinheit des Daten
verarbeitungssystems dargestellt. Die Datensignale
werden in einer Cachespeicher
einheit 101 gespeichert. Dieser Cache besteht aus
Speichereinrichtungen mit wahlfreiem Zugriff, aus denen
Datensignale gelesen oder in die Datensignale einge
speichert werden können, und zwar aus bzw. in adressier
ten Speicherzellen. Die Organisation der Cachespeicher
einheit 101 ist so getroffen, daß 128 Speicherplätze vor
handen sind, die mit Speicherplatz 0 bis Speicherplatz 127
bezeichnet sind. Für jeden Speicherplatz gibt es vier
Gruppen von Blöcken von Speicherzellen, die mit Block 0
bis Block 3 bezeichnet sind. Jeder der vier Blöcke kann
vier Speicherwörter enthalten, die mit Wort 0 bis Wort 3
bezeichnet sind. Vier Datenwörter aus einem ausgewählten
Block eines ausgewählten Speicherplatzes der Cachespeicher
einheit 101 können an die Befehlspufferschaltung 300 und
zur anschließenden Übertragung zu der Zentral
einheit weitergeleitet werden. Die Datensignale
werden in die Cachespeichereinheit 101
über die Steuerschaltungen 140 eines Daten
registers eingegeben, welches unter der Steuerung
von Cachespeicher-Steuerschaltungen 200 steht. Die
Cachespeicher-Steuerschaltungen 200 steuern außerdem
ein Adreßregister 130. Das Adreßregister 130 ist an
der Cachespeichereinheit 101, einem Cachespeicher-
Verzeichnis 102 und an Cachespeicher-Verzeichnissteuer
schaltungen 150 angeschlossen. Das Cachespeicher-Ver
zeichnis 102 ist in vier Blöcke unterteilt, deren jeder
128 Speicherzellen und eine ähnliche Struktur wie die Cache
speichereinheit 101 aufweist, allerdings ohne die
zusätzliche Wort-Struktur. Das Cachespeicher-Verzeichnis
enthält ebenfalls Speicherschaltungen mit wahlfreiem
Zugriff. Die Inhalte der Blöcke eines adressierten
Speicherplatzes in dem Speicher-Verzeichnis 102 werden
an vier Vergleichernetzwerke 111 bis 114 abgegeben. Die
Ausgangssignale der Vergleichernetzwerke werden dem Da
tenstatus-Entscheidungsnetzwerk 120 zugeführt. Die Aus
gangssignale des Datenstatus-Entscheidungsnetzwerks 120
können an die vier Blöcke der Speicherzellen in der Cache
speichereinheit und an die vier Blöcke der Speicher
zellen abgegeben werden, die in dem Cachespeicher-Ver
zeichnis enthalten sind, um den die in Frage kommenden
Signale aufnehmenden Block zu aktivieren. Die Ausgangs
signale des Datenstatus-Entscheidungsnetzwerks 120 werden
außerdem den Cachespeicher-Verzeichnissteuerschaltungen 150
zugeführt. Das Adreßregister 130 ist ebenfalls mit den vier
Blöcken der Speicherzellen des Cachespeicher-Verzeichnisses
102 und mit den Vergleichernetzwerken 111 bis 114 verbun
den. Die Cachespeicher-Verzeichnissteuerschaltungen 150
sind in ein Verzeichnis-Steuerregister und in Verzeich
nis-Steuerschaltungen unterteilt.
In Fig. 4 ist die den Befehlspuffer enthaltende An
ordnung gemäß der vorliegenden Erfindung dargestellt.
Der Befehlspuffer besteht aus zwei Speicherplatzgruppen umfassende Befehlspuffer
einheiten A und B, die mit 310 bzw. 320 bezeichnet sind.
Die
beiden Speicherplatzgruppen enthalten jeweils acht Einzel
wort-Speicherplätze (das sind 40 Bits), die sequentiell
numeriert sind. Die acht-Wort-Speicherplätze sind weiter
hin in zwei 4-Wort-Gruppen unterteilt. Demgemäß wird durch
einen einzigen Zugriff von dem Cachespeicher
die Vier-Wort-Gruppe der Re
gister erfüllt. Bei der bevorzugten Ausführungsform wird
der einzelne Zugriff zu der Cachespeichereinheit als
Ladebefehlspufferaufruf (LD-IBUF) bezeichnet. Dieser Be
fehl führt zu einem Maschinenzyklus. Wie in Fig. 4 veran
schaulicht, sind in jeder Speicherplatzgruppe der Befehlspuffereinheiten acht Spei
cherplätze enthalten, so daß zwei Ladebefehle erforderlich
sind, um jede Einheit zu füllen (das sind LD-IBUF-IF1 und
LD-IBUF-IF2). Wenn die Daten aus dem Hauptspeicher über
die Systemschnittstelleneinheit an den Befehlspuffer ab
gegeben werden, ohne zunächst in den Cachespeicher einge
geben zu werden, dann werden in entsprechender Weise die
Wörter in der Weise abgegeben, daß jeweils zwei Wörter aus
dem Hauptspeicher entweder in die Befehlspuffereinheit A oder in die
Befehlspuffereinheit B abgegeben werden.
Der Befehlspuffer ist generell ein Teil der Zentralein
heit; er wird direkt von der Zentraleinheit her gesteuert.
Die Zentraleinheit gibt Einleitungssignale an einen Eingabezäh
ler A (311) und an einen Eingabezähler B (321) ab, um die Adresse
festzulegen, in der Daten gespeichert werden.
Die Zentraleinheit gibt die Adressensignale an einen Aus
gabezähler A (312) und an einen Ausgabezähler B (322) ab.
Diese Zähler sind mit der Befehlspuffereinheit A bzw.
B verbunden; sie steuern den Speicherplatz
der abzugebenden Daten über den Schalter 333 zu der
Zentraleinheit hin. Darüber hinaus werden die Ausgangs
signale der Zähler 311 und 312 an die Vergleicherschaltung
313 abgegeben. Die Ausgangssignale der Zähler 321
und 322 werden an die Vergleicherschaltung 323 abgegeben.
Die Vergleicherschaltungen 313 und 323 versorgen die
Zentraleinheit und weitere Steuerschaltungen mit Status
signalen, die sich auf die Befehlspuffereinheit A bzw.
B beziehen.
In Fig. 5 sind die möglichen Signale veranschaulicht, die
an jede der Vergleicherschaltungen von den zugehörigen
Zählern abgegeben werden. Darüber hinaus ist die Inter
pretation der Zählersignale durch die Vergleicherschal
tung angegeben. Das Weiterschalten und Erreichen jedes
der Zählerzustände ist ebenfalls veranschaulicht.
Nunmehr sei die Arbeitsweise der bevorzugten Ausführungs
form der Erfindung erläutert. Die grundsätzliche Anwendung
einer Cachespeichereinheit besteht darin, für die Zentral
einheit Daten verfügbar zu machen, die in der Hauptspeicher
einheit gespeichert sind, ohne daß dazu die Wartezeit in
Kauf genommen werden muß, die normalerweise mit dem
Wiederauffinden bzw. der Wiedergewinnung der Daten aus
der Hauptspeichereinheit verknüpft ist. Der Cachespeicher ist
daher ein Hochgeschwindigkeits-Speicher, der diejenigen
Daten enthält, die mit einer gewissen Unverzüglichkeit
von der Zentraleinheit für einen ununterbrochenen Betrieb
benötigt werden. Wie in Fig. 1 gezeigt, ist der Cache
speicher mit der Zentraleinheit und der Systemschnitt
stelleneinheit gekoppelt. In entsprechender
Weise kann die Zentraleinheit mit der Systemschnitt
stelleneinheit in gewissen Datenverarbeitungssystemen
direkt gekoppelt sein. Die tatsächliche Ausnutzung der
elektrischen Verbindungswege, welche die Systemkomponenten
verbinden, hängt von dem Betriebsverfahren ab. So können
beispielsweise in gewissen Datenverarbeitungssystemen
Daten direkt an die Zentraleinheit unter gewissen Voraus
setzungen abgegeben werden. In anderen Systemen müssen
die von der Zentraleinheit benötigten Daten stets an
die Cachespeichereinheit abgegeben werden, bevor sie
zu der Zentraleinheit hin übertragen werden. Wie einzu
sehen sein dürfte, existiert eine Vielzahl von Verfahren,
nach denen das Datenverarbeitungssystem den Cachespeicher
für einen effektiveren Betrieb ausnutzen kann.
Bei der bevorzugten Ausführungsform wird das in Fig. 2
dargestellte Adressenformat dazu herangezogen, eine
Adresse in der Hauptspeichereinheit festzulegen. Die
15 Bits höchster Wertigkeit bezeichnen eine Seitenadres
se, die 7 Bits zweithöchster Wertigkeit bezeichnen eine
Speicherplatzadresse, während die beiden Bits niedrigster
Wertigkeit in Verbindung mit den übrigen 22 Bits ein be
stimmtes Wort oder eine bestimmte Gruppe von Datensigna
len bezeichnen, die in dem Hauptspeicher gespeichert sind.
Bei der bevorzugten Ausführungsform der Erfindung werden
die Bits niedrigster Wertigkeit von der Hauptspeicher
einheit beim normalen Betrieb nicht benutzt. Bei der
typischen Datenübertragung werden vier Datengruppen oder
Wörter mit Abgabe eines Befehls übertragen. Nachdem die
Zentraleinheit die Hauptspeicheradresse gebildet hat,
werden somit lediglich die 22 Bits höchster Wertigkeit
ausgenutzt, und sämtliche dadurch bezeichneten vier
Wörter werden übertragen.
Nachdem die Zentraleinheit die Adresse der geforderten
Daten in dem Hauptspeicher gebildet hat, wird die be
treffende Hauptspeicheradresse an die Cachespeicher-
Steuerschaltungen 200 abgegeben und in das Adreßre
gister 130 eingeführt.
Zu diesem Zeitpunkt beginnen die Cachespeicher-Steuer
schaltungen 200 mit der Ausführung eines Verzeichnis-
Suchzyklus. Im Zuge des Verzeichnis-Suchzyklus wird
nach der Adresse der Daten gesucht, die von der Zentral
einheit in der Cachespeichereinheit angefordert werden.
Die Hauptspeicheradresse wird in das Adreßregister 130
eingeführt, da die 15 Bits höchster Wertigkeit, der Sei
tenadressenteil der Adresse, an die vier Vergleichernetz
werke 111 bis 114 abgegeben wird.
Gleichzeitig werden die sieben Bits des Speicherplatz
adressenteiles der Hauptspeicheradresse an den damit in
Verbindung stehenden einen Speicherplatz der 128 Speicher
plätze der Cachespeichereinheit, des Cachespeicher-
Verzeichnisses 102 und des Cachespeicher-Verzeichnis-Steuer
registers der Verzeichnis-Steuerschaltungen abgegeben. Die
Speicherplatzadresse gibt die die vier Datenblöcke in dem
Cachespeicher-Verzeichnis enthaltenen Schaltungen frei,
und der Inhalt des Verzeichnisses wird an die Verglei
chernetzwerke 111 bis 114 abgegeben. Der Inhalt der
vier Blöcke des Cachespeicher-Verzeichnisses stellt die
15 Bit umfassenden Seiten-Hauptspeicheradressen dar. Wenn
der Seitenadressenteil der Hauptspeicheradresse in dem
Adreßregister in einem der vier Blöcke des Cachespeicher-
Verzeichnisses ermittelt wird, dann wird ein "Treffer"-
Signal an das Datenstatus-Entscheidungsnetzwerk 120
abgegeben. Das "Treffer"-Signal zeigt an, daß die ge
wünschten Daten in dem entsprechenden Block unter der
selben Speicherplatzadresse in der Speicherungseinheit
gespeichert sind.
Der Speicherplatzadressenteil des Adreßregisters 130
gibt bei Signalabgabe an die Verzeichnis-Steuerschal
tungen 150 die Registerzelle frei, welche Statussignale
speichert, wobei diese Statussignale an das Entscheidungs
netzwerk 120 abgegeben werden. Bei der bevorzugten Aus
führungsform werden die Arten der Statussignale in
folgender Weise ausgenutzt: 1) Eine Voll/Leer-Anzeige
tritt als positives Signal auf, wenn gültige Daten in
der Cachespeichereinheit gespeichert
sind; 2) eine noch nicht erledigte Bit-Anzeige ist
positiv, wenn Daten in den Übertragungsprozeß zur Über
tragung von dem Hauptspeicher zu der Cachespeicher
einheit einbezogen sind, so daß die Seitenadresse be
reits in das Cachespeicher-Verzeichnis eingegeben worden
ist; 3) eine Fehlerblock-Anzeige tritt mit positivem Vor
zeichen dann auf, wenn der diesbezügliche eine Block der
vier Blöcke der Cachespeicherzellen als ein Fehler in den
in dem betreffenden Block gespeicherten Daten hervorrufen
der Block identifiziert worden ist.
Unter der Annahme, daß die Statussignale geeignet sind,
wenn ein "Treffer" von dem Datenstatus-Entscheidungsnetz
werk festgestellt wird, befinden sich die
gültigen Daten sodann in der Cachespeichereinheit.
Durch die Speicherplatzadresse des Adreßregisters 130
sind vier Datenblöcke (deren jeder vier Wörter enthält)
freigegeben worden, die sich auf die Speicherplatzadres
se in dem Cachespeicher-Verzeichnis beziehen. Der "Treffer"
in der Seitenadresse eines der vier Blöcke des Cache
speicher-Verzeichnisses zeigt an, daß die vier Daten
wörter in dem damit in Verbindung stehenden Block der
Cachespeichereinheit enthalten sind. Das
Datenstatus-Entscheidungsnetzwerk gibt ein Signal an den
geeigneten Block der Cachespeichereinheit ab. Wenn die Signale
von der Zentraleinheit einen LD-IBUF-Befehl anzeigen, dann
werden die vier benötigten Datenwörter in dem Befehlspuf
fer abgelegt, und jedes Datenwort wird von der Zentralein
heit bei Bedarf abgeholt. Die von der Zentraleinheit be
nötigten Daten werden aus der Cache
speichereinheit direkt an diese abgegeben.
Die Befehlspufferschaltungen halten diese Befehle fest,
bezüglich welcher eine unmittelbare Anforderung seitens
der Zentraleinheit besteht. Wenn die Befehlspufferein
heit (A oder B) entleert worden ist, werden zwei Zentral
einheits-Zeitintervalle dazu ausgenutzt, die nunmehr
leere Befehlspuffereinheit wieder aufzufüllen, indem
die gerade aktive Ablauffolge ausgeführt wird. Das Heraus
holen jedes in dem Befehlspuffer gespeicherten Wortes er
fordert jedoch einen Zentraleinheitszyklus. Demgemäß be
trägt die Gesamtzeit für die Befehlspuffereinheit (d. h.
die Zeitspanne zum Auffüllen der Einheit und sodann zum
Leeren der Einheit) zehn Zentraleinheitszyklen. Im Falle
der sequentiellen Speicherung von Befehlen, den idealen
Verhältnissen, enthält der Befehlspuffer sieben Wörter
vor der unmittelbaren Anforderung durch die Zentralein
heit gespeichert.
Bei dieser Operationsart ist angenommen, daß die Zentral
einheit eine Vorausschaueigenschaft besitzt.
Die Geschwindigkeit eines modernen Prozessors kann jedoch
so sein, daß der Inhalt des Cachespeichers in gewissen
Fällen gelöscht sein kann, bevor die angeforderten Daten
in die Cachespeichereinheit eingeführt worden sind. In
diesem Fall können zur beschleunigten Abgabe der Daten
an die Zentraleinheit die Daten aus dem Hauptspeicher
direkt in die Befehlspufferschaltungen bei der bevorzug
ten Ausführungsform der Erfindung über die Datenwege D₀
und D₁ eingegeben werden. Die Zentraleinheit empfängt
jedoch Signale, die ein "Fehlen" in der Cachespeicher
einheit anzeigen; die betreffende Zentraleinheit ist
dabei für die längere Zeitspanne vorbereitet, die er
forderlich ist, um Daten aus dem Hauptspeicher abzurufen.
Bei der bevorzugten Ausführungsform werden die Befehle
LD-IBUF-IF1 und LD-IBUF-IF2 im allgemeinen nach der
Abgabe des Inhalts des Speicherplatzes 7 an die Zentral
einheit ausgegeben. Es hat sich gezeigt, daß die Abgabe
des Befehls, beispielsweise nach Beendigung der Abgabe
des Inhalts des Speicherplatzes 3, verschiedentlich
Steuerprobleme bezüglich der Abgabe von Signalen her
vorrufen kann. Dabei ist insbesondere eine hohe Wahr
scheinlichkeit dafür vorhanden, daß
ein Übertragungsbefehl in der zweiten Gruppe von Daten
übertragungen auftritt, was dazu führt, daß die gerade
erst abgegebene Anforderung nach der Einführung von
Daten in den Befehlspuffer nutzlos ist. Es ist daher wirksamer,
die Daten aus zwei Cachespeicherblöcken in die Befehls
pufferspeicherplätze einzugeben.
Das Vorhandensein eines Operationstransfers von einer
Datenablauffolge zu einer zweiten Datenablauffolge tritt
in den meisten Programmen häufig auf. Die Flexibilität
der Programmierung besteht darin, die Fortsetzung des
Betriebs der Datenverarbeitung unabhängig vom Ergebnis
eines Entscheidungsprozesses zu ermöglichen. Um jedoch
mit einer minimalen Unterbrechung in der Verarbeitungs
operation auszukommen, muß die neue Ablauffolge verfüg
bar sein. Dies bedeutet, daß die neue Ablauffolge unab
hängig davon verfügbar sein sollte, ob eine bedingte
Übertragung oder eine unbedingte Übertragung festgelegt bzw.
bezeichnet ist.
Die Übertragung einer Datenfolge, und zwar unabhängig
ob bedingt oder unbedingt, wird durch die Zentralein
heit gekennzeichnet. Diese Kennzeichnung der Datenüber
tragung zusammen mit der Identifizierung der zweiten
Folge von Informationsströmen kann für die Zentraleinheit
dadurch verfügbar gemacht sein, daß das Befehlsformat
interpretiert wird. Da der typische Befehl jedoch eine
einzige Registergruppe enthält, die von der Zentral
einheit her adressiert werden kann, wird die neue Be
fehlsfolge vor der Fortsetzung der Ausführung der Daten
ablauffolge eingeführt.
Um die bedingte und unbedingte Datenübertragung wirksam
zu verarbeiten, besteht der Befehlspuffer bei der vor
liegenden Erfindung aus zwei Registergruppen. Eine Re
gistergruppe, bei der es sich um irgendeine Register
gruppe handeln kann, wird für die Speicherung des Be
fehls in der gerade ausgeführten Ablauffolge vorgesehen.
Nachdem ein Übertragungs- bzw. Transferbefehl identifiziert
ist und nachdem die Ablauffolge, gemäß der die Übertragung,
sofern vollendet, stattfindet, in entsprechender Weise
identifiziert ist, gibt das zentrale Verarbeitungssystem
einen Befehl LD-IBUF-IF1 und einen Befehl LD-IBUF-IF2 an
den Cachespeicher ab. Diese Identifizierung und Anforderung
an den Cachespeicher erfolgt in einer entsprechenden Weise
wie ein normales Laden des Befehlspuffers, allerdings mit
der Ausnahme, daß das Laden in der gerade nicht benutzten
Befehlspuffereinheit A erfolgt. Diese Operation beansprucht zwei
Zentraleinheitszyklen, um abgeschlossen zu werden. Es ist
festgelegt worden, daß ein Hauptteil der Transferbefehle
zu einer Änderung der gerade ausgeführten Ablauffolge führt.
Demgemäß werden die Aufrufbefehle unmittelbar auf die
Identifizierung hin ausgeführt, und zwar obwohl der be
dingte Transfer in der gegenwärtigen Ablauffolge auf
treten kann, die weiterhin auszuführen ist.
Nachdem der den Ablauffolge-Übergang bzw. -Transfer an
zeigende Befehl ausgeführt ist, steht in dem Speicher
die bezeichnete Befehlsfolge für die Ausführung zur Ver
fügung. Der Zugriff zu jeglicher Registereinheit des
Befehlspuffers, und zwar entweder zur Speicherung oder
zum Abholen von Daten, ist das Ergebnis von Signalen,
die zwischen dem zugehörigen Zähler und der Zentralein
heit ausgetauscht werden. Die Signale von der Zentral
einheit her geben die richtige Gruppe der vier Register
speicherplätze in der gerade aktiven Befehlspuffereinheit
über den zugehörigen Eingabe-Zähler frei, um Daten auf
zunehmen, und außerdem wird der gerade vorliegende Einzel
wort-Speicherplatz in der gegenwärtig aktiven Befehlspuffereinheit
über den zugehörigen Ausgabezähler freigegeben, und
zwar für die Übertragung von Daten zu der Zentralein
heit hin. Nachdem jedes Wort nacheinander aus einer Befehlspuffer
einheit abgeholt worden ist, gibt der Zähler
ein geeignetes Signal an die zugehörige Vergleicherschal
tung ab. Da die Daten in vier Datenwortblöcke eingegeben
werden und da Datenwörter individuell abgeholt werden,
muß er zugehörige Zähler die Diskrepanz in der Abgabe
von Signalen an die Vergleichernetzwerke mit berück
sichtigen.
Die Signale von den Ver
gleichernetzwerken identifizieren den Status der zugehöri
gen Befehlspuffereinheit für die Zentraleinheit.
In Fig. 5 ist eine Übersicht der bei der bevorzugten Aus
führungsform der Erfindung möglichen Signale der vor
handenen Eingabezähler und Ausgabezähler gezeigt. Die
das Register für die jeweilige Gruppe einschließende
Aktivität wird durch die Vergleichernetzwerke ver
glichen. Die der jeweiligen Gruppe von Registersignalen
zugehörigen Statussignale sind ebenfalls in Fig. 5 ver
anschaulicht. Wenn beispielsweise die Inhalte der Zäh
ler gleich sind, dürfte einzusehen sein, daß dieselbe
Anzahl von Datenwörtern aus der Befehlspuffereinheit abgeholt
worden ist, die zuvor in diese Befehlspuffereinheit eingegeben
worden ist.
Obwohl der Befehlspuffer bei der bevorzugten Ausführungs
form generell als Teil der Zentraleinheit betrachtet wor
den ist, ist er physikalisch der Cachespeicher
einheit zugehörig. Diese Beziehung ermöglicht der Cache
speichereinheit, einen 4-Datenwort-Block an den Befehls
puffer während eines Zentraleinheitszyklus abzugeben.
Die Zentraleinheit holt während
eines Zentraleinheitszyklus nacheinander jeweils ein
Datenwort aus dem Befehlspuffer
ab. Wenn es möglich
ist, den Cachespeicher in unmittelbarer Nähe der
Zentraleinheit unterzubringen (z. B.
auf denselben Schaltungskarten
wie die Zentraleinheit), dann kommt man mit kurzen elektrischen
Leitungen aus.
Claims (5)
1. Befehlspuffer in einem Datenverarbeitungssystem mit
einer Zentraleinheit (50), einem Befehlsregister und einer
Cachespeichereinheit (100), zur Übertragung einer Befehlsfol
ge aus der Cachespeichereinheit in das Befehlsregister, wo
bei in dem Befehlspuffer (Fig. 4) erste und zweite Speicher
platzgruppen (310, 320) vorgesehen sind und in jeder Spei
cherplatzgruppe eine Mehrzahl von Befehlen gespeichert werden
kann, die alternativ zur Übertragung in das Befehlsregister
bestimmt sind, gekennzeichnet durch
- (a) einen ersten, auf Signale der Zentraleinheit ansprechen den Zähler (311, Eingabezähler A), der anzeigt, daß die erste Speicherplatzgruppe (310, Befehlspuffereinheit A) zumindest Teile einer ersten Befehlsfolge aufgenommen hat;
- (b) einen zweiten, auf andere Signale der Zentraleinheit an sprechenden Zähler (312, Ausgabezähler A), der anzeigt, daß aus der ersten Speicherplatzgruppe (310) zumindest Teile einer dort temporär gespeicherten Befehlsfolge in das Befehls register übertragen wurden;
- (c) eine, mit dem ersten und dem zweiten Zähler (311, 312) verbundene, erste Vergleicherschaltung (313), die in Abhängig keit von, von den genannten Zählern abgegebenen Signalen der Zentraleinheit (50) ein Statussignal zuführt, das hinsichtlich der ersten Speicherplatzgruppe (310) anzeigt, welche Speicher plätze für eine Informationsabspeicherung zur Verfügung stehen;
- (d) einen dritten, auf wieder andere Signale der Zentralein heit ansprechenden Zähler (321, Eingabezähler B), der anzeigt, daß die zweite Speicherplatzgruppe (320, Befehlspuffer einheit B), zumindest Teile einer zweiten Befehlsfolge aus der Cachespeichereinheit (100) aufgenommen hat;
- (e) einen vierten, auf nochmals andere Signale der Zentral einheit ansprechenden Zähler (322, Ausgabezähler B), der an zeigt, daß aus der zweiten Speicherplatzgruppe (320) zumin dest Teile einer dort temporär gespeicherten Befehlsfolge in das Befehlsregister übertragen wurden; und
- (f) eine, mit dem dritten und dem vierten Zähler (321, 322) verbundene, zweite Vergleicherschaltung (323), die in Abhängigkeit von, von diesen Zählern (321, 322) abgegebenen Signalen der Zentraleinheit (50) ein weiteres Statussignal zuführt, das hinsichtlich der zweiten Speicherplatzgruppe (320) anzeigt, welche Speicherplätze für eine Informations abspeicherung zur Verfügung stehen.
2. Befehlspuffer nach Anspruch 1, dadurch gekennzeichnet,
daß die erste Vergleicherschaltung (313) drei unterschiedli
che Statussignale an die Zentraleinheit (50) abzugeben in der
Lage ist, die signalisieren, ob die erste Speicherplatzgruppe
(310) entweder voll besetzt, leer oder nur teilweise leer ist,
woraufhin die Zentraleinheit die Einspeicherung von Befehls
sequenzen in leere Befehlspufferspeicherplätze der ersten
Gruppe (310) veranlaßt.
3. Befehlspuffer nach Anspruch 1, dadurch gekennzeichnet,
daß jede der ersten und zweiten Speicherplatzgruppen (310,
320) jeweils zweigeteilt (0-3 bzw. 4-7) ausgeführt sind.
4. Befehlspuffer nach Anspruch 1, dadurch gekennzeichnet,
daß die Stellenzahl der genannten Zähler (311, 312, 321, 322)
durch die Anzahl der vorgesehenen Speicherplatzpositionen
innerhalb der jeweiligen Speicherplatzgruppen (310/0-3;
310/4-7; 320/0-3; 320/4-7) bestimmt ist.
5. Befehlspuffer nach Anspruch 4, dadurch gekennzeichnet,
daß die genannten Zähler (311, 312, 321, 322) als Zwei-Bit-
Zähler ausgebildet sind.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US86608377A | 1977-12-30 | 1977-12-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2856680A1 DE2856680A1 (de) | 1979-08-23 |
DE2856680C2 true DE2856680C2 (de) | 1990-05-17 |
Family
ID=25346880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19782856680 Granted DE2856680A1 (de) | 1977-12-30 | 1978-12-29 | Befehlspuffer fuer ein datenverarbeitungssystem |
Country Status (5)
Country | Link |
---|---|
JP (1) | JPS5494841A (de) |
AU (1) | AU529675B2 (de) |
DE (1) | DE2856680A1 (de) |
FR (1) | FR2413752A1 (de) |
GB (1) | GB2011682B (de) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2037037B (en) * | 1978-12-11 | 1983-07-27 | Honeywell Inf Systems | Data-processing apparatus |
DE2934771C3 (de) * | 1979-08-28 | 1982-03-25 | Siemens AG, 1000 Berlin und 8000 München | Speichervorrichtung. |
FR2479532B1 (fr) * | 1980-04-01 | 1986-09-19 | Bull Sa | Procede et dispositif pour gerer les transferts d'informations entre un ensemble memoire et les differentes unites de traitement d'un systeme de traitement numerique de l'information |
US4742451A (en) * | 1984-05-21 | 1988-05-03 | Digital Equipment Corporation | Instruction prefetch system for conditional branch instruction for central processor unit |
US4775927A (en) * | 1984-10-31 | 1988-10-04 | International Business Machines Corporation | Processor including fetch operation for branch instruction with control tag |
JPS6168641A (ja) * | 1985-09-17 | 1986-04-09 | Hitachi Ltd | 情報処理装置 |
EP0264077A3 (de) * | 1986-10-14 | 1991-01-30 | Honeywell Bull Inc. | Puffer-Adressenspeicher |
JPH0769812B2 (ja) * | 1987-12-29 | 1995-07-31 | 富士通株式会社 | データ処理装置 |
US4974155A (en) * | 1988-08-15 | 1990-11-27 | Evans & Sutherland Computer Corp. | Variable delay branch system |
US5127091A (en) * | 1989-01-13 | 1992-06-30 | International Business Machines Corporation | System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor |
JPH0421129A (ja) * | 1990-05-16 | 1992-01-24 | Nec Corp | 命令キャッシュ装置 |
US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5961629A (en) * | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
ATE188786T1 (de) * | 1991-07-08 | 2000-01-15 | Seiko Epson Corp | Risc-mikroprozessorarchitektur mit schnellem unterbrechungs- und ausnahmemodus |
EP1526446A3 (de) * | 1991-07-08 | 2007-04-04 | Seiko Epson Corporation | RISC-Prozessor mit erweiterbarer Architektur |
US5438668A (en) * | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
EP0663083B1 (de) | 1992-09-29 | 2000-12-20 | Seiko Epson Corporation | System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor |
DE19546882C2 (de) * | 1995-12-15 | 1998-11-26 | Webasto Thermosysteme Gmbh | Fahrzeugheizgerät |
US6256727B1 (en) * | 1998-05-12 | 2001-07-03 | International Business Machines Corporation | Method and system for fetching noncontiguous instructions in a single clock cycle |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5021821B1 (de) * | 1968-10-31 | 1975-07-25 | ||
JPS51138355A (en) * | 1975-05-26 | 1976-11-29 | Hitachi Ltd | Processing apparatus with a high speed branching feature |
JPS5282149A (en) * | 1975-12-29 | 1977-07-09 | Fujitsu Ltd | Instruction address control system |
AU521383B2 (en) * | 1977-12-16 | 1982-04-01 | Honeywell Information Systems Incorp. | Cache memory command circuit |
-
1978
- 1978-12-13 AU AU42470/78A patent/AU529675B2/en not_active Expired
- 1978-12-18 FR FR7835609A patent/FR2413752A1/fr active Granted
- 1978-12-19 JP JP15678478A patent/JPS5494841A/ja active Pending
- 1978-12-28 GB GB7850151A patent/GB2011682B/en not_active Expired
- 1978-12-29 DE DE19782856680 patent/DE2856680A1/de active Granted
Also Published As
Publication number | Publication date |
---|---|
AU4247078A (en) | 1979-07-05 |
DE2856680A1 (de) | 1979-08-23 |
JPS5494841A (en) | 1979-07-26 |
AU529675B2 (en) | 1983-06-16 |
GB2011682A (en) | 1979-07-11 |
GB2011682B (en) | 1982-04-21 |
FR2413752B3 (de) | 1981-10-16 |
FR2413752A1 (fr) | 1979-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2856680C2 (de) | ||
DE3131341C2 (de) | ||
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE10084556B4 (de) | Optimierte Ausführung von statisch sehr wahrscheinlich vorhergesagten Verzweigungsbefehlen | |
DE2828544C2 (de) | ||
DE1424732C3 (de) | Einrichtung zum gegenseitigen Austausch von Angabenwörtern zwischen einem unmittelbar zugänglichen Hauptspeicher eineT Ziffernrechenmaschine und einem an diese angeschlossenen Sekundärspeicher vergleichsweise längerer Zugriffszeit | |
CH627580A5 (de) | Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie. | |
DE1549522B1 (de) | Datenverarbeitungsanlage mit simultanverarbeitung mehrerer programme mittels mehrerer rechner | |
DE2750721A1 (de) | Ein/ausgabe-system | |
DE2902080A1 (de) | Daten-kanal-steueranordnung | |
DE1549474C3 (de) | Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
DE1929010B2 (de) | Modular aufgebaute datenverarbeitungsanlage | |
DE2547488A1 (de) | Mikroprogrammierte datenverarbeitungsanlage | |
DE2054830B2 (de) | Informationsverarbeitungsanlage mit mitteln zum zugriff zu speicher-datenfeldern variabler laenge | |
DE3802025C1 (de) | ||
DE2720864A1 (de) | Verfahren und anordnung zum lueckenfreien einspeichern einer anzahl von datenblocks unbestimmter laenge | |
DE2538978C2 (de) | ||
DE2906685A1 (de) | Instruktionsdecodierer | |
DE2610428C3 (de) | Anordnung zur Steuerung der Zwischenspeicherung von zwischen zwei Funktionseinheiten zu übertragenden Daten in einem Pufferspeicher | |
DE2704560C2 (de) | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen | |
DE2853165C2 (de) | ||
DE2854286A1 (de) | Schaltungsanordnung mit einem befehlspuffer fuer eine cachespeichereinheit eines datenverarbeitungssystems | |
DE3009121B1 (de) | Mikroprogramm-Steuereinrichtung | |
DE10025952B4 (de) | Datenverarbeitungseinheit mit einer Superscaler-Struktur sowie Verfahren zum Zuführen einer Mehrzahl von Befehlen | |
DE2000608A1 (de) | Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8128 | New person/name/address of the agent |
Representative=s name: BARDEHLE, H., DIPL.-ING., PAT.-ANW., 8000 MUENCHEN |
|
8125 | Change of the main classification |
Ipc: G06F 12/00 |
|
8127 | New person/name/address of the applicant |
Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: INTEL CORP., SANTA CLARA, CALIF., US |