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
Application number
DE19782856680
Other languages
English (en)
Other versions
DE2856680A1 (de
Inventor
John E. Glendale Ariz. Us Wilhite
William A. Shelly
Charles P. Phoenix Ariz. Us Ryan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Honeywell Bull Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Bull Inc filed Critical Honeywell Bull Inc
Publication of DE2856680A1 publication Critical patent/DE2856680A1/de
Application granted granted Critical
Publication of DE2856680C2 publication Critical patent/DE2856680C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction 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.
DE19782856680 1977-12-30 1978-12-29 Befehlspuffer fuer ein datenverarbeitungssystem Granted DE2856680A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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