DE3933849A1 - Prozessorgesteuerte schnittstelle - Google Patents

Prozessorgesteuerte schnittstelle

Info

Publication number
DE3933849A1
DE3933849A1 DE3933849A DE3933849A DE3933849A1 DE 3933849 A1 DE3933849 A1 DE 3933849A1 DE 3933849 A DE3933849 A DE 3933849A DE 3933849 A DE3933849 A DE 3933849A DE 3933849 A1 DE3933849 A1 DE 3933849A1
Authority
DE
Germany
Prior art keywords
instruction
cache
main memory
block
cycle
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.)
Ceased
Application number
DE3933849A
Other languages
English (en)
Inventor
Thomas J Riordan
Paul S Ries
Edwin L Hudson
Earl A Killian
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.)
MIPS Computer Systems Inc
Original Assignee
MIPS Computer Systems 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 MIPS Computer Systems Inc filed Critical MIPS Computer Systems Inc
Publication of DE3933849A1 publication Critical patent/DE3933849A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (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 vorliegende Erfindung betrifft allgemein einen Digital- Prozessor und insbesondere eine prozessorgesteuerte Schnitt­ stelle zwischen einem Prozessor, einem Schnellzugriffspei­ cher (Cache) und einem Hauptspeicher.
Eine neue Entwicklung bei Computerarchitektur war die Einfüh­ rung von RISC-Geräten (Reduced Instruction Set Computer= Computer mit reduziertem Instruktionsaufwand), bei denen im Idealfall bei jedem Betätigungszyklus eine Instruktion ausge­ geben wird. Der Schlüssel zur Wirksamkeit einer RISC-Maschi­ ne ist die Fähigkeit, eine sehr große Anzahl von Instruktio­ nen pro Sekunde auszuführen. Dementsprechend wird viel dafür getan, die Auslegung dieser Maschinen zu verbessern, um jede Verzögerung der Instruktionsverarbeitung zu beseitigen.
Um eine hohe Bearbeitungsgeschwindigkeit aufrechtzuerhalten, muß auf die Instruktionen vom Instruktionsspeicher bei jedem Zyklus einmal zugegriffen werden. Spezielle hochschnelle Speichergeräte sind erhältlich, aus denen in einem Zyklus eine Instruktion zugänglich ist. Derartige Geräte sind jedoch teuer und werden allgemein als Instruktions-Cache be­ nutzt, um einen Anteil der Instruktionen bei einem bestimm­ ten Programm zu speichern. Die restlichen Instruktionen sind im Hauptspeicher gespeichert.
Falls der Prozessor eine nicht in dem Cache gespeicherte In­ struktion anspricht, tritt ein "Speicherfehler" auf. Dabei muß der Prozessor anhalten, während die angesprochene In­ struktion während eines Cache-Wiederfüllbetriebs von dem Hauptspeicher in den Cache eingeschrieben wird.
Allgemein ist eine einzelne Instruktion nicht in einem Zyk­ lus vom Hauptspeicher zugänglich. Jedoch kann der Hauptspei­ cher eine "Seitenmodus-Eigenschaft" enthalten, die benutzt wird, um nach einer anfänglichen Einrichtungszeit, "Spei­ cher-Wartezeit" (memory latency) genannt, jeweils pro Zyklus eine Instruktion anzugehen. Diese Wartezeit tritt jedesmal auf, wenn bei einem Speicherfehler der Hauptspeicher neu an­ gegangen wird, und ist eine Hardware-Begrenzung des Speicher­ systems.
Die meisten Programme sind so ausgelegt, daß die Instruktio­ nen von sequentiellen Speicherplätzen abgerufen werden, außer bei besonderen Umständen, z.B. beim Auftreten einer Programmverzweigung. Dementsprechend wird, falls eine be­ stimmte Zugriffstelle zu einem Speicherfehler führt, wahr­ scheinlich auch der nachfolgende Zugriff einen Speicherfeh­ ler ergeben. So wird der Cache oft mit einem vom Hauptspei­ cher abgerufenen Instruktionsblock wieder gefüllt, der die verfehlte Instruktion enthält, so daß die nachfolgenden In­ struktionen im Block nacheinander im Cache zugänglich sind. Wenn der Instruktionsblock angegangen wird, kann der Cache nach der Anfangswartezeit mit einer Rate von einer Instruk­ tion pro Zyklus wieder gefüllt werden.
Unglücklicherweise muß der Prozessor während einer Block-Wie­ derfüllung des Caches während der Wiederfüll-Wartezeit ange­ halten werden, und damit wird die Länge der Anhaltezeit gleich der Summe aus der Hauptspeicher-Wartezeit und der Anzahl von Wörtern in einem Block mal Zyklusdauer. So redu­ ziert die Wiederfüll-Wartezeit, die durch den Block-Wieder­ füllvorgang des Instruktions-Caches verursacht wird, die Anzahl der pro Sekunde verarbeiteten Instruktionen.
Dementsprechend ist es Aufgabe der Erfindung, ein System zur wirksamen Wiederfüllung eines Caches ohne bedeutsame Reduzie­ rung der Bearbeitungsrate zu schaffen.
Die vorliegende Erfindung erhöht die Instruktions-Gesamtbear­ beitungsrate eines einen Instruktions-Cache benutzenden Pro­ zessors dadurch, daß für die Übertragung von Bearbeitungsin­ struktionen vom Hauptspeicher zum Instruktions-Cache während eines Cache-Wiederfüllbetriebs gesorgt wird.
Dabei wird eine Block-Wiederfüllung des Caches und ein In­ struktions-Fließbetrieb eingeleitet, wenn ein Instruktionszu­ griff beim Cache fehlgeht. Wenn während des Wiederfüllbe­ triebs des Caches die verfehlte Information vom Speicher aus­ gelesen ist, wird sie während des gleichen Zyklus in den Cache eingeschrieben und durch den Prozessor geladen. Nach­ folgende Instruktionen im Block werden während nachfolgender Instruktions-Übertragungszyklen in den Cache eingeschrieben und bearbeitet. Eine Instruktion vom Cache wird während des letzten Zyklus des Block-Wiederfüll- und des Instruktions­ überleitbetriebes angegangen und während des ersten Zyklus bearbeitet, der der Vollendung der Block-Wiederfüllung folgt.
Weiter enthält der Prozessor eine mehrstufige Übertragungs­ leitung, die durch eine Übertragungsleitungs-Steuereinheit gesteuert wird, und eine Adressiereinheit (AU = address unit), die Hauptspeicheradressen erzeugt, welche ein Hoch­ und ein Nieder-Adreßfeld enthalten. Ein Komparator ver­ gleicht das durch die AU erzeugte Adreßfeld mit einem vom Cache angegangenen Markierungsfeld. Wenn die beiden Felder nicht übereinstimmen, tritt ein Speicherfehler auf, die Über­ tragungsleitung wird angehalten und der Cache mit einem In­ struktionsblock wieder aufgefüllt, der die verfehlte Instruk­ tion enthält und aus der durch das Hoch-Adreßfeld im Haupt­ speicher identifizierten Seite ausgelesen wird. Weiter wird das Nieder-Adreßfeld gespeichert und mit den Nieder-Adreßfel­ dern der Hauptspeicheradressen des Blocks verglichen. Wenn diese Felder gleich sind, wird die aus dem Hauptspeicher aus­ gelesene Instruktion in die erste Stufe der Übertragungslei­ tung geladen, wenn sie in den Cache eingeschrieben wird. Die restlichen Instruktionen im Block werden dann bearbeitet, wenn sie in den Cache geschrieben werden.
Weiter wird der Datenfluß angehalten, wenn ein vorbestimmtes Ereignis, z.B. eine Verzweigung oder ein Datenfehler im Cache auftritt, und der Speicher-Wiederfüllbetrieb wird dann neu gestartet.
Die Erfindung wird nachfolgend anhand der Zeichnung im ein­ zelnen beschrieben; in der Zeichnung zeigt:
Fig. 1 ein Hochpegel-Blockschaltbild einer prozessorge­ steuerten Schnittstelle,
Fig. 2 ein Zeitablaufbild einer Horizontalscheibe der Übertragungsleitung,
Fig. 3 ein detailliertes Blockschaltbild der Prozessor- Steuerschaltung einer bevorzugten Ausführung,
Fig. 4 ein Zustandsdiagramm, und
Fig. 5 ein Zeitablaufbild eines Cache-Wiederfüll- und In­ struktions-Übertragungs-Betriebs.
In der Zeichnung sind für gleiche oder entsprechende Teile gleiche Bezugszeichen verwendet.
In Fig. 1 sind ein Prozessor 10, ein Instruktions-Cache 12, eine Speicherschnittstelle 14 und ein Hauptspeicher 15 mit einer Daten-Sammelleitung (DBUS) 16, einer Nieder-Adreß-Sam­ melleitung (LBUS) 18, einer Markierungs-Sammelleitung (TBUS) 20, einer Steuer-Sammelleitung (CBUS) 22 und einer Instruk­ tionsadreß-Sammelleitung (IADRBUS) 24 über die jeweiligen Daten-, Adreß-, Markierungs- und Steueranschlüsse verbunden.
LBUS 18 und IADRBUS 24 sind durch einen transparenten Zwi­ schenspeicher 26 gekoppelt.
Im Normalbetrieb erzeugt der Prozessor 10 bei jedem Zyklus eine physikalische Hauptspeicher-Instruktionsadresse einer bestimmten, während des nächsten Zyklus zu bearbeitenden In­ struktion. Jede Adresse enthält Hoch- und Nieder-Adreßfel­ der. Das Nieder-Adreßfeld wird auf die LBUS 18 gesetzt und definiert den Adreßraum des Eingangs I zum Speicher 12, wobei jede LBUS-Adresse eine Zeile des Caches 12 angeht.
Die Cachezeile, die an dem der durch die Adresse an der LBUS angesprochenen Speicherplatz im Cache 12 gespeichert ist, enthält ein Markierungs-(TAG-) und ein DATEN-Feld. Der Cache 12 ist viel kleiner als der Hauptspeicher 15, und eine Reihe von Hauptspeicherplätzen ist jeder Cachezeile zugeordnet. Bei der vorliegenden Ausführung sind alle Hauptspeicherplät­ ze mit gleichem Nieder-Adreßfeld der Cachezeile zugeordnet, die durch die Bits des Nieder-Adreßfeldes angesprochen wird. Um das in einer Cachezeile gespeicherte Wort eindeutig zu identifizieren, sind die Bits höherer Ordnung oder Wertig­ keit des Adreßwortes im TAG-Feld (Markierungsfeld) der Cache-Speicherzeile gespeichert.
Wenn eine Cachezeile durch das Nieder-Adreßfeld an der LBUS 18 angesprochen wird, wird das TAG-Feld auf die TBUS 20 und das DATEN-Feld auf die DBUS 16 gesetzt. Falls das TAG-Feld nicht paßt (übereinstimmt), ist die angesprochene Informa­ tion nicht im Cache gespeichert und es tritt ein Speicherfeh­ ler auf.
Im Falle eines Speicherfehlers wird die durch den Prozessor 10 erzeugte Hauptspeicheradresse einschließlich der Hoch­ und Nieder-Felder über die TBUS 20 und LBUS 18 zu der Spei­ cherschnittstelle 14 übertragen, und der Prozessor beginnt einen Anhaltebetrieb mit Unterbrechung der Instruktionsbear­ beitung. Die übertragene Adresse dient als Hauptspeicher­ adresse und bezeichnet den Platz der im Cache verfehlten In­ struktion im Hauptspeicher.
Sobald die Hauptspeicheradresse an der Hauptspeicherschnitt­ stelle 14 angekommen ist, wird ein Seitenmodus-Zugang eines Instruktionsblocks, der die verfehlte Instruktion enthält, errichtet. Die Begrenzungen des Blocks sind gegeben und im allgemeinen wird die verfehlte Instruktion nicht am ersten Platz im Block sitzen. Nach Ablauf der Speicherwartezeit wird zu jedem Zyklus eine Instruktion des Blocks im Haupt­ speicher angesprochen und in den Cache eingeschrieben. Die Hauptspeicheradressen des Blocks werden durch die Speicher­ schnittstelle erzeugt, und die Hoch-Adreßbits jeder Instruk­ tionsadresse in die TAG-Felder der Cachezeilen geschrieben. Damit wird der Cache 12 mit dem Instruktionsblock gefüllt.
Wie bereits bemerkt, werden normalerweise in einem Speicher an aufeinanderfolgenden Plätzen gespeicherte Instruktionen nacheinander bearbeitet. Nach der Erfindung wird der Instruk­ tionsblock während des Speicher-Füllbetriebs sequientiell von dem Hauptspeicher 15 zu der DBUS 16 übertragen. Die In­ struktionen im Block werden in die Cacheplätze geschrieben, die durch die unteren Bits der Hauptspeicheradresse an der LBUS 18 adressiert sind. Der Prozessor 10 geht in einen WIE- DERFÜLL-Zustand, während Instruktionen vor der bestimmten In­ struktion in den Cache 12 geschrieben werden.
Wenn die verfehlte Instruktion während eines bestimmten Zyk­ lus vom Hauptspeicher 15 zu der DBUS 16 übertragen wird, geht der Prozessor in einen FIXUP(Bereit)-Zustand und lädt die Instruktion während des bestimmten Zyklus zur Vorberei­ tung der Wiederaufnahme der Bearbeitung während des nächsten Zyklus′. Der Prozessor geht dann in den Instruktions-Fließ- oder -Strömungszustand (STREAM), in welchem Instruktionen während des Einschreibens in den Cache 12 bearbeitet werden.
Daraufhin wird eine Instruktion aus dem Hauptspeicher 15 ge­ lesen, in den Cache 12 geschrieben und durch den Prozessor 10 während des jeweils nachfolgenden Zyklus bearbeitet, bis alle Instruktionen im Block aus dem Hauptspeicher 15 behan­ delt sind. Die letzte Instruktion im Block wird während eines abschließenden STREAM-Zyklus angesprochen.
Zusätzlich erzeugt der Prozessor während des abschließenden STREAM-Zyklus die Adresse für die während des nächsten Zyk­ lus′ zu bearbeitende Instruktion. Diese Instruktion wird, wenn nicht ein weiterer Cache-Fehler auftritt, vom Cache an­ gesprochen.
Damit verringert dieses System die Dauer der Wiederfüll-War­ tezeit durch Prozessorhalt, welcher beim Auftreten eines Cache-Fehlers mit nachfolgendem Wiederfüllbetrieb des Caches mit einem Block erforderlich ist.
Die nun folgenden Ausdrücke werden bei der detaillierten Be­ schreibung des Systembetriebs benutzt: Ein Zyklus ist die grundlegende Instruktionsbearbeitungseinheit für den Prozes­ sor 10, und alle Zyklen sind entweder Lauf- oder Halt-Zyk­ len. Während der ersten Hälfte eines Zyklus auftretende Pro­ zessorvorgänge werden als Phase 1-Vorgänge bezeichnet, wäh­ rend die in der zweiten Hälfte auftretenden als Phase 2-Vor­ gänge bezeichnet werden. Jeder Lauf-Zyklus wird als mit einem zugeordneten Instruktions-Daten-Paar (ID-Paar) verse­ hen betrachtet, ob nun eine Datenübertragung erfolgt oder nicht.
In Laufzyklen wird eine Vorwärtsbehandlung durchgeführt und eine Instruktion von der Übertragungsleitung abgenommen. Zu­ sätzlich zu regulären Laufzyklen, in denen Instruktionen aus dem Cache-Speicher 12 bearbeitet werden, treten Wiederfüll- Fließ-(Stream-)Zyklen auf, wenn Instruktionen aus dem Haupt­ speicher 15 bearbeitet werden.
Es gibt drei Arten von Halt-Zyklen: Warte-Zyklen, Wieder­ füll-Zyklen und Bereit-Zyklen. Während Warte-Zyklen tritt keine Cache-Aktivität auf. Wiederfüll-Zyklen treten während Hauptspeicher-Lesevorgängen auf und werden zum Wieder-Füllen des Cache 12 benutzt. Bereit-Zyklen treten während des ab­ schließenden Zyklus eines Haltes direkt vor dem nächsten Laufzyklus auf und werden zum Neustarten der Übertragungslei­ tung 30 benutzt.
Die Bearbeitung einer Instruktion während des Laufbetriebs des Prozessors und die zugehörigen Sammelleitungs- oder BUS- Vorgänge werden mit Bezug auf Fig. 2 beschrieben. Die Über­ tragungsleitung ist fünf Stufen tief und in folgender Weise partitioniert: Instruktionsabholung I, Registerabholung R, ALU, Speicherzugriff M und Rückschreibung W. Fig. 2 zeigt eine horizontale Scheibe der Übertragungsleitung und stellt die Ausführung einer Instruktion in fünf Zyklen (A-E) dar.
Während des Zyklus A 1 wird die Adresse der gerade aktuellen Instruktion in eine physikalische Adresse übersetzt und wäh­ rend des Zyklus A 2 zu der LBUS 18 übertragen. Die angespro­ chene Zeile des Cache 12 wird zu der DBUS 17 und der TBUS 20 übertragen (Zyklus B 1). Zusätzlich geschieht während des Zyklus B 1 eine vollständige Übersetzung der virtuellen In­ struktionsadresse, und das TAG-Feld wird mit den Bits hoher Ordnung der Instruktionsadresse verglichen, um ein etwaiges Verfehlen der Referenz im Cache 12 zu erfassen.
Während des Zyklus B 2 wird die Instruktion dekodiert und die Adresse der nächsten zu holenden Instruktion berechnet. Nun ist bekannt, ob das Programm zu einer nicht direkt folgenden Adresse verzweigt. Der Rest der Sammelleitungs-Bearbeitung ist Standard und für die Erfindung nicht wesentlich.
Fig. 3 ist ein Blockschaltbild der zur Ausführung des In­ struktions-Flusses oder -Stromes erforderlichen Prozessor­ schaltung. Die verschiedenen abgebildeten Digitalelemente sind standardmäßige Funktionseinheiten und ihre interne Ver­ schaltung ist für die Erfindung nicht relevant.
In Fig. 3 wird eine Adreßeinheit AU 30 mit einem Überset­ zungs-Seitenblickpuffer TLB 32 durch eine interne Nieder- Adreßbus LAB 34 verbunden. Die Nieder-Adreßbits der durch den TLB 32 erzeugten physikalischen Adressen werden dann zu einem Nieder-Zwischenspeicher LL 36 und dem zweiten Eingang eines LBUS-Mischers MUX 38 durch eine interne Bus PLIB 40 für die niederen Bits physikalischer Adressen übertragen. Die zwei LSB des PLIB 40 sind mit dem ersten Eingang eines Paß-Komparators PC 42 und dem ersten Eingang eines MUX 43 ge­ koppelt. Der Ausgang eines Zählers 44 ist mit dem zweiten Eingang des Paß-Komparators 42 und dem ersten Eingang des MUX 43 über ein eine Verzögerung von einem halben Zyklus bringendes Element V 1 verbunden. Der Ausgang des MUX 43 ist mit den LSB-Eingängen des ersten Eingangs des MUX 38 verbun­ den. Der Ausgang des LBUS-MUX 38 ist mit der LBUS 18 gekop­ pelt.
Die Schaltung zum Ansteuern von Daten-Cache-Adressen an den LBUS während Phase 2-Vorgängen ist nicht gezeigt.
Die Hoch-Adreßbits der durch den TLB 32 erzeugten physikali­ schen Adresse werden durch eine erste interne Hoch-Adreßbus PIHB 56 zu einem Hoch-Zwischenspeicher (latch) HL 50 übertra­ gen, zum ersten Eingang eines TBUS-MUX 52 und zum ersten Ein­ gang eines TAG-Komparators TC 53 über eine erste Ausgangs-An­ steuerung 54. Der Ausgang des HL 50 ist mit dem zweiten Ein­ gang des TBUS-MUX 52 gekoppelt. Der Ausgang des TBUS-MUX 52 ist mit der TBUS 20 über eine zweite Ausgangsansteuerung 57 gekoppelt und der zweite Eingang des TC 53 über eine Ein­ gangsansteuerung 60 mit der TBUS 20.
Die DBUS ist mit den Eingängen einer Übertragungsleitungs- Steuereinheit (PCU), eines Instruktions-Dekodierers 62 und mit einer Ausführungseinheit EU 64 gekoppelt.
Eine Zustandsmaschine ZM 66 empfängt das durch den TC 53 aus­ gegebene Fehlersignal, das durch den MC 32 ausgegebene Paßsi­ gnal, das durch die CNT 44 erzeugte CNT-Signal und das durch die Speicherschnittstelle 14 ausgegebene LeseBelegt-Signal (ReadBusy). Zusätzlich gibt die Zustandsmaschine 66 das an den Steuereingängen von AU 30, MUX 52, PLC 62 und EU 64 auf­ genommene Lauf*Signal (R), das durch PLC 62 und EU 64 aufge­ nommene Vorbereitungs-Signal (FU) und das Speicherlese*Si­ gnal (MR) aus, das durch den MUX 38, den LL 36, die Ansteuer­ kreise 52, 54 und auch 57 (hier ist das SpeicherleseSignal um einen Zyklus verzögert) und HL 50 aufgenommen wird. Die Zustandsmaschine erzeugt auch ein Bereit 2-Signal (FU 2).
Das LeseBelegt-Signal wird an dem Steueranschluß des CNT 44 aufgenommen, das Signal "Fehler ODER Speicherlesen" an den Steueranschlüssen von LL 36 und HL 50, und das Signal Lese- Belegt (um eine Halbzyklus verzögert ODER Bereit 2) am Steuer­ anschluß des MUX 43.
Fig. 4 zeigt ein Zustandsdiagramm für die Zustandsmaschine 66. In Fig. 4 zeigen die vertikalen Linien Signale an, die Zustandsübergänge verursachen. Bei einigen Zuständen treten die Übergänge automatisch nach Durchlauf einer zugeordneten Anzahl von Zyklen auf.
Fig. 5 ist ein Zeitablaufbild für den Betrieb des Systems bei Wiederfüllen eines Cache-Speichers und im Instruktions- Übertragungsbetrieb. Zusätzlich zur Darstellung der Zustände der oben definierten Signale werden auch die Zustände eines XEn*Signals (Hauptspeicherlese-Freigabesignal), eines IWr*Si­ gnals (Cache-Schreibsignal) und eines IRd*Signals (Informa­ tionslese-Freigabesignal) abgebildet. Die folgenden Symbole werden in Fig. 5 verwendet: I für Instruktion, D für Daten, I für nicht korrekte Instruktion und !I für eine unbenutzte Instruktion.
Es sei nach Fig. 1 bis 5 angenommen, daß in dem Halbzyklus vor Zyklus F die Adresse der nächsten zu holenden Instruk­ tion (die Leseadresse) im AU 30 berechnet, durch TLB 32 über­ setzt und auf die LBUS übertragen wird.
In diesem Fall tritt ein Speicherfehler auf, und während des Zyklus F 1 wird die Instruktion I von dem Cache 12 geholt und zu DBUS 16 übertragen, während das TAG-Feld für I geholt und zur TBUS 20 übertragen wird. Das TAG-Feld und die Hoch-Adreß­ bits der Instruktion werden bei TC 53 verglichen; sie stim­ men nicht überein, und so wird durch TC 53 das FEHLER-Signal abgegeben, das die Leseadresse der fehlenden Instruktion in HL 50 und LL 36 einspeichern läßt.
Während des Zyklus F 2 wird die Adresse der nächsten Instruk­ tion !I errechnet und zur LBUS 18 übertragen.
Im Zyklus G 1 geht die Statusmaschine in Reaktion auf das FEH­ LER-Signal in den HALTE-Zustand. Damit wird Lauf* verlassen und MemRd* (SpeicherLesen) zugeordnet. Zusätzlich ordnet die Speicherschnittstelle 14 LeseBelegt zu, um den Halt während der Speicherwartezeit aufrecht zu erhalten. Die Zuordnung von MemRd* läßt MUX 38 seinen ersten Eingang mit der LBUS 18 koppeln, wodurch die zwischengespeicherten MSB-Niederbits der Leseadresse an die LBUS übertragen werden. Da LeseBelegt den MUX 38 und 43 zugeordnet ist, werden die zwischengespei­ cherten LSB-Niederbits auch der LBUS übertragen. Auch die vom Cache geholte Instruktion !I ist in DBUS und TBUS resi­ dent. Zusätzlich läßt die Abordnung von Lauf MUX 52 den Aus­ gang von HL 50 an den Eingang der zweiten Ausgangs-Ansteu­ erung 51 koppeln.
Im Zyklus G 2 geht die DBUS 16 in drei Zustände und die zwei­ te Ausgangs-Ansteuerung 57 koppelt in Reaktion auf die verzö­ gerte Zuordnung des MemRd*Signals den Ausgang des HL 50 an die TBUS 20. Dementsprechend werden die Hoch- und die Nie­ der-Bits der Leseadresse an die Speicherschnittstelle 14 übertragen, die einen Seitenbetriebs-Zugang eines Instruk­ tionsblocks vom Hauptspeicher errichtet.
Während der Zyklen H 1 bis I 1 wird infolge der Speicherwarte­ zeit der Halt aufrechterhalten. Während des Zyklus I 1 wird das Signal LeseBelegt abgelegt und der Zähler gestartet. Der Zähler erzeugt die zwei LSB der Nieder-Adresse des während der nächsten vier Zyklen anzusprechenden Blocks.
Während des Zyklus I 2 überträgt der MUX 39 in Reaktion auf das Ablegen von LeseBelegt um einen halben Zyklus verzögert das CNT-Ausgangssignal (00) zu den LSB-Leitungen der LBUS 18. Dies ist die Adresse von I 0, der ersten Instruktion in dem vom Speicher angesprochenen Block. Die zwischengespei­ cherten Leseadreßbits hoher Ordnung vom HL 50 werden an die TBUS übertragen, um die vollständige Hauptspeicheradresse von I 0 zu schaffen.
Wie bereits festgestellt, entspricht die fehlende Instruk­ tion nicht notwendigerweise der ersten Instruktion (I 0) im Block. Da das CNT 44 die LSB der Wörter im Block erzeugt, werden diese LSB bei MC 42 mit den LSB der im LL 36 zwischen­ gespeicherten Leseadresse verglichen. Wenn diese Bits über­ einstimmen, ordnet MC 42 das Paßsignal zu. Bei diesem Bei­ spiel wird angenommen, daß der Speicherfehler bei der zwei­ ten Adresse I 1 des Blocks auftrat.
Während des Zyklus′ J 1 erzeugt CNT 44 die LSB der Adresse für I 1, dementsprechend passen die Bits an beiden Eingängen des MC 42, und das Paßsignal wird zugeordnet.
Während des Zyklus J 2 ist die Nieder-Adresse für I 1 an der LBUS 18.
Während des Zyklus K 1 gelangt die Zustandsmaschine 66 in Reaktion auf das Paßsignal in den BEREIT-Zustand. Der BEREIT-Zustand wird angelegt, um den PLC 62 I 1 in die Über­ tragungsleitung übertragen zu lassen.
Während des Zyklus K 2 errechnet die AU 30 in Reaktion auf das BEREIT-Signal die Adresse der nächsten Instruktion nach I 1. Der Zähler erzeugt die LSB, um die dritte Instruktion im Block, I 3, anzusprechen.
Im Zyklus L 1 geht die Zustandsmaschine 66 in Reaktion auf das Anlegen des Paßsignals in den Zustand FLIESSEN (STREAM). Das Lauf*Signal wird wieder angelegt, um die Übertragungslei­ tung zu starten, und beginnt die Instruktionen zu bearbei­ ten, wenn sie vom Hauptspeicher abgeholt werden. Das Lauf* Signal läßt MUX 52 den PIHB 46 zu der TBUS koppeln. Damit werden die Hoch-Adreßbits für I 2 von dem TLB zur TBUS über­ tragen und werden durch die Bits an der LBUS 18 in das TAG- Feld der Cache-Zeilenadressen eingeschrieben. Zusätzlich hat der CNT das Auszählen der Instruktionen im Block beendet.
Im Zyklus M 1 wird das MemRd*Signal abgelegt in Reaktion auf das Auszählen der letzten Adresse im Block durch den CNT 44.
Die letzte Instruktion im Block I 3 ist in der DBUS 16, und die zwischengespeicherten Hoch-Adreßbits von I 3 werden an die DATEN-Bus getrieben.
Während des Zyklus M 2 wird I 3 dekodiert und die Adresse für die nächste Instruktion I in der AU 30 berechnet. Das Able­ gen von MemRd* läßt MUX 38 die Nieder-Adreßbits dieser be­ rechneten Adresse zur LBUS koppeln.
Während des Zyklus N 1 wird nach einer Verzögerung von einem Zyklus nach Ablegen von MemRd* der LAUF-Zustand begonnen. Die Ansteuerungen 54, 57 und 60 lassen das TAG-Feld mit den Hoch-Adreßbits der erzeugten Adresse vergleichen. Der Be­ trieb wird fortgeführt, wie anhand Fig. 2 beschrieben.
Im Betrieb besteht eine Wahrscheinlichkeit, daß während des FLIESSENs (STREAM) eine Verzweigungsinstruktion bearbeitet wird. Falls I 1 eine Verzweigungsinstruktion ist, ist die nächste Instruktion im Block nicht unbedingt die als nächste auszuführende Instruktion. Stattdessen kann es erforderlich sein, den Cache 12 wieder mit einem ganzen Instruktionsblock aufzufüllen.
In diesem Fall errechnet die AU 30 während des Zyklus K 1 die Adresse der nächsten durch I 1 gegebenen Instruktion, be­ stimmt, daß eine Verzweigung aufgetreten ist, und gibt das Verzweigungssignal aus. Dieses läßt die Zustandsmaschine 66 wieder in den WIEDERFÜLL-Zustand eintreten, legt das Lauf*Si­ gnal ab, um PLC 62 und EU 64 anzuhalten und MUX 52 die zwi­ schengespeicherten Hoch-Leseadreßbits in HL 50 wieder zur DBUS 20 koppeln.
Das Wiederfüllen setzte sich dann während der Zyklen L und M fort, und während L 2 zählt der Zähler aus und läßt einen Übergang vom Zustand WIEDERFÜLLEN zu BEREIT und die Erzeu­ gung des Bereit 2-Signals einleiten. Damit koppelt MUX 43 die im LL 36 zwischengespeicherten Nieder-Adreßbits zur LBUS, so daß während des Zyklus′ M 2 die Nieder-Adresse zur LBUS ge­ trieben wird, die Instruktion während N 1 zur Datenbus geholt wird und die Adresse für die nächste Instruktion während N 2 errechnet wird. Damit wird der Zustand LAUF während des näch­ sten Zyklus′ begonnen.
So verbleibt das System so lange im Zustand FLIESSEN (STREAM), wie keine Fließunterbrechung, z.B. eine Verzwei­ gung, auftritt. Tritt eine Unterbrechung auf, so wird das WIEDERFÜLLEN des Cache 12 abgeschlossen.
Beginnt FLIESSEN als Ergebnis einer willkürlichen Verzwei­ gung, so ist die Zieladresse gleichmäßig über den ganzen Block verteilt. Tritt jedoch ein Speicherfehler auf nach vollständiger Ausführung eines im Cache 12 gespeicherten Blocks, so dann wird die Zieladresse die erste Adresse im Block sein. Bei der praktischen Durchführung ist in 70% der Fälle die Fehladresse die erste Adresse im Block, und so wird die Wiederfüll-Wartezeit reduziert.
Vorstehend sind bevorzugte Ausführungen beschrieben. Es ist denkbar, daß auch ein direkt-bezogener Instruktions-Cache hier verwendet wird. Die Prinzipien diese Erfindung sind Einsatz eines Speicher-Wiederfüll-Algorithmus. Es können auch bestimmte Zeitgabe- und Steuersignale entsprechend der vorhandenen Umgebung abgeändert werden.

Claims (4)

1. Verfahren zum Ersetzen eines Instruktionsblocks in einem Instruktions-Cache (12) im Falle eines Cache-Fehlers bei einer Prozessorschnittstelle (14) mit einem Prozessor (10), einem Instruktions-Cache und einem Hauptspeicher (15), wobei ein Zyklus die grundlegende Instruktions- Bearbeitungseinheit des Prozessors ist, dadurch gekennzeichnet,
daß eine Speicherreferenz für eine bestimmte angesproche­ ne Instruktion geschaffen wird,
daß festgestellt wird, ob die angesprochene Instruktion im Cache gespeichert ist,
daß bei im Cache gespeicherter Instruktion diese aus dem Cache ausgelesen wird,
daß bei nicht im Cache gespeicherter Instruktion ein die angesprochene Information enthaltender Instruktionsblock im Hauptspeicher angesprochen wird und die angesprochene Instruktion während eines bestimmten Zyklus aus dem Hauptspeicher ausgelesen wird, und
daß die angesprochene Instruktion während des bestimmten Zyklus auch in den Prozessor geladen wird.
2. Verfahren zum Ausführen eines Hauptspeicher-Lese- und Cache-Wiederfüll-Betriebs im Falle, daß eine Instruk­ tions-Referenz den Cache verfehlt, bei einer prozessor­ gesteuerten Schnittstelle (14) zwischen einem Cache (12) und einem Hauptspeicher (15), wobei der Prozessor (10) eine mehrstufige Übertragungsleitung (11) zum gleichzei­ tigen Ausführen einer Übertragungsleiter-Stufe für jede Instruktion in der Übertragungsleitung besitzt und ein Zyklus die grundlegende Instruktions-Bearbeitungseinheit für den Prozessor ist, dadurch gekennzeichnet,
daß während des ersten Zyklus nach einem Speicherfehler ein Übertragungsleitungs-Halt eingeleitet wird, um die Bearbeitung von Instruktionen in der Übertragungsleitung anzuhalten,
daß ein Hauptspeicherblock-Lesevorgang eingeleitet wird,
daß ein die angesprochene Instruktion enthaltender In­ struktionsblock aus dem Hauptspeicher ausgelesen und das Lesen gegenüber dem Einleiten um eine Warte-Zeitlänge verzögert wird, in der die Instruktionen im Block sequen­ tiell während aufeinanderfolgender Hauptspeicher-Zugriff­ zyklen ausgelesen werden, und die angesprochene Instruk­ tion während eines bestimmten Hauptspeicher-Zugriffzyk­ lus aus dem Hauptspeicher ausgelesen wird,
daß der Cache durch Einschreiben jeder Instruktion im Block in den Cache während des Hauptspeicher-Zugriffzyk­ lus wiedergefüllt wird, in welchem die Instruktion aus dem Hauptspeicher ausgelesen wird,
daß ein Bereitschafts-Betrieb während des bestimmten Hauptspeicherzyklus eingeleitet wird, um die angesproche­ ne Instruktion in die Übertragungsleitung zu laden;
daß der Übertragungsleitungs-Haltevorgang während des Hauptspeicher-Zugriffzyklus beendet wird, der dem be­ stimmten Hauptspeicher-Zugriffzyklus folgt, um die Über­ tragungsleitung wieder in Betrieb zu setzen und die Bear­ beitung der Instruktion in dem Block wieder zu beginnen, der der angesprochenen Instruktion folgt, während diese in nachfolgenden Hauptspeicher-Auslesezyklen aus dem Hauptspeicher ausgelesen wird,
daß eine erste nicht im Block befindliche Instruktion angesprochen wird nach der letzten Instruktion des Blocks, während des letzten Haupspeicher-Zugriffzyklus, und
daß die erste nicht zum Block gehörende Instruktion während des Zyklus bearbeitet wird, der dem letzten Hauptspeicher-Zugriffzyklus folgt.
3. Verfahren zum Reduzieren der durch einen Cache-Wieder­ füllbetrieb verursachten Wartezeit, die beim Auftreten einer Verzweigung zu einer willkürlichen Adresse erfor­ derlich ist, welche beim Cache eine Fehlermeldung ergibt, bei einer CPU mit einem Prozessor, einem Instruk­ tions-Cache und einer Speicherschnittstelle, dadurch gekennzeichnet,
daß ein Block-Wiederfüllvorgang für den Cache aus dem Hauptspeicher eingeleitet wird,
daß die sequentiellen Wiederfülladressen des Blocks er­ zeugt werden zu Auslesen des Blocks aus dem Hauptspei­ cher,
daß die erzeugten Wiederfülladressen mit den willkürli­ chen Adressen verglichen werden und ein Paß-Signal ausge­ geben wird, wenn die Adressen gleich sind,
daß auf das Paßsignal durch Einleitung gleichlaufender Ausführung und Wiederfüllung der Instruktionen reagiert wird, nach Ausgabe des Paß-Signals,
daß das Auftreten eines Unterbrechungszustandes über­ wacht wird, der die sequentielle Ausführung der Instruk­ tionen des Blocks verhindert, und
daß die Ausführung der Instruktionen des Blocks ausge­ setzt wird, wenn ein Unterbrechungszustand eintritt, unter gleichzeitigem Fortsetzen des Wiederfüllbetriebs.
4. System zur Reduzierung der Wartezeit infolge eines Cache-Wiederfüllbetriebs, der beim Auftreten einer Ver­ zweigung zu einer willkürlichen Adresse nötig ist, die den Cache verfehlt, bei einer CPU mit einem Prozessor (10), einem Instruktions-Cache (12), einer Speicher­ schnittstelle (14) und einem Hauptspeicher (15), dadurch gekennzeichnet,
daß Mittel zum Einleiten eines Block-Wiederauffüll­ betriebes für den Cache (12) aus dem Hauptspeicher (15) vorgesehen sind,
daß Mittel vorgesehen sind, um die sequentiellen Wieder­ auffülladressen des Blocks zu erzeugen und den Block aus dem Hauptspeicher (15) auszulesen,
daß Mittel vorgesehen sind zum Vergleichen der erzeugten Wiederauffülladressen mit den willkürlichen Adressen und zum Ausgeben eines Paß-Signals, wenn die Adressen gleich sind,
daß auf das Paß-Signal reagierende Mittel vorgesehen sind, welche die gleichlaufende Ausführung und Wieder­ füllung der Instruktionen nach Ausgabe des Paßsignals einleiten,
daß Überwachnungsmittel für das Auftreten eines die se­ quentielle Ausführung der Instruktionen des Blocks sper­ renden Unterbrechnungszustandes vorgesehen sind, und
daß Mittel vorgesehen sind, die die Ausführung der Instruk­ tionen des Blocks bei einem auftretenden Unterbrechungs­ zustand aussetzen unter gleichzeitiger Fortsetzung des Wiederfüllbetriebs.
DE3933849A 1988-10-11 1989-10-10 Prozessorgesteuerte schnittstelle Ceased DE3933849A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/255,791 US5027270A (en) 1988-10-11 1988-10-11 Processor controlled interface with instruction streaming

Publications (1)

Publication Number Publication Date
DE3933849A1 true DE3933849A1 (de) 1990-06-21

Family

ID=22969883

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3933849A Ceased DE3933849A1 (de) 1988-10-11 1989-10-10 Prozessorgesteuerte schnittstelle

Country Status (5)

Country Link
US (1) US5027270A (de)
JP (1) JPH02224023A (de)
KR (1) KR970008187B1 (de)
CA (1) CA1332248C (de)
DE (1) DE3933849A1 (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
JP3018038B2 (ja) * 1990-01-18 2000-03-13 三菱電機株式会社 キャッシュを有するデータ処理装置
WO1991014225A1 (en) * 1990-03-15 1991-09-19 Sun Microsystems, Inc. Apparatus and method for providing a stall cache
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
JP2818249B2 (ja) * 1990-03-30 1998-10-30 株式会社東芝 電子計算機
US5295249A (en) * 1990-05-04 1994-03-15 International Business Machines Corporation Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel
JPH0418648A (ja) * 1990-05-11 1992-01-22 Mitsubishi Electric Corp キャッシュを有するデータ処理装置及びそのデータアクセス方法
US5202973A (en) * 1990-06-29 1993-04-13 Digital Equipment Corporation Method of controlling a shared memory bus in a multiprocessor system for preventing bus collisions and for ensuring a full bus
US5283880A (en) * 1991-01-02 1994-02-01 Compaq Computer Corp. Method of fast buffer copying by utilizing a cache memory to accept a page of source buffer contents and then supplying these contents to a target buffer without causing unnecessary wait states
US5590294A (en) * 1991-03-19 1996-12-31 Silicon Graphics, Inc. Method and apparatus for retarting pipeline processing
JP2637320B2 (ja) * 1991-10-04 1997-08-06 富士通株式会社 バッファ記憶制御方式
US5353419A (en) * 1992-01-09 1994-10-04 Trustees Of The University Of Pennsylvania Memory-side driven anticipatory instruction transfer interface with processor-side instruction selection
US5423016A (en) * 1992-02-24 1995-06-06 Unisys Corporation Block buffer for instruction/operand caches
GB2271201B (en) * 1992-10-01 1995-12-13 Digital Equipment Int Low-overhead,non-coherent cache refreshment mechanism
JPH06222990A (ja) * 1992-10-16 1994-08-12 Fujitsu Ltd データ処理装置
US5596693A (en) * 1992-11-02 1997-01-21 The 3Do Company Method for controlling a spryte rendering processor
US5572235A (en) * 1992-11-02 1996-11-05 The 3Do Company Method and apparatus for processing image data
US5481275A (en) 1992-11-02 1996-01-02 The 3Do Company Resolution enhancement for video display using multi-line interpolation
US5838389A (en) * 1992-11-02 1998-11-17 The 3Do Company Apparatus and method for updating a CLUT during horizontal blanking
US5752073A (en) * 1993-01-06 1998-05-12 Cagent Technologies, Inc. Digital signal processor architecture
US5996062A (en) * 1993-11-24 1999-11-30 Intergraph Corporation Method and apparatus for controlling an instruction pipeline in a data processing system
US5870599A (en) * 1994-03-01 1999-02-09 Intel Corporation Computer system employing streaming buffer for instruction preetching
GB2293670A (en) * 1994-08-31 1996-04-03 Hewlett Packard Co Instruction cache
WO1996012229A1 (en) 1994-10-14 1996-04-25 Silicon Graphics, Inc. Indexing and multiplexing of interleaved cache memory arrays
US5897654A (en) * 1995-02-10 1999-04-27 International Business Machines Corporation Method and system for efficiently fetching from cache during a cache fill operation
JP3251148B2 (ja) * 1995-05-30 2002-01-28 甲府日本電気株式会社 パイプラインデ−タ処理装置
US5924125A (en) * 1995-08-01 1999-07-13 Arya; Siamak Method and apparatus for parallel access to consecutive TLB entries
US5724533A (en) * 1995-11-17 1998-03-03 Unisys Corporation High performance instruction data path
KR19990057839A (ko) * 1997-12-30 1999-07-15 김영환 캐쉬 미스 시 처리 방법
KR100300875B1 (ko) * 1998-12-30 2001-09-06 박종섭 캐쉬 미스 시 처리 방법
US7159041B2 (en) * 2000-03-07 2007-01-02 Microsoft Corporation Method and system for defining and controlling algorithmic elements in a graphics display system
US6819325B2 (en) * 2000-03-07 2004-11-16 Microsoft Corporation API communications for vertex and pixel shaders
US7023431B2 (en) * 2001-03-01 2006-04-04 Microsoft Corporation Method and system for providing data to a graphics chip in a graphics display system
US6874150B2 (en) 2001-03-01 2005-03-29 Microsoft Corporation Method and system for maintaining connections between surfaces and objects in a graphics display system
US6812923B2 (en) 2001-03-01 2004-11-02 Microsoft Corporation Method and system for efficiently transferring data objects within a graphics display system
US6828975B2 (en) * 2001-03-01 2004-12-07 Microsoft Corporation Method and system for managing graphics objects in a graphics display system
US6831635B2 (en) * 2001-03-01 2004-12-14 Microsoft Corporation Method and system for providing a unified API for both 2D and 3D graphics objects
US7203817B2 (en) * 2001-09-24 2007-04-10 Broadcom Corporation Power consumption reduction in a pipeline by stalling instruction issue on a load miss
US8082396B2 (en) * 2005-04-28 2011-12-20 International Business Machines Corporation Selecting a command to send to memory
US10808480B2 (en) 2018-11-19 2020-10-20 Baker Hughes, A Ge Company, Llc Frac plug setting method
US10781651B2 (en) 2018-11-19 2020-09-22 Baker Hughes, A Ge Company, Llc FRAC plug system with integrated setting tool

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4317168A (en) * 1979-11-23 1982-02-23 International Business Machines Corporation Cache organization enabling concurrent line castout and line fetch transfers with main storage
US4646233A (en) * 1984-06-20 1987-02-24 Weatherford James R Physical cache unit for computer
DE3743515A1 (de) * 1987-01-22 1988-08-04 Nat Semiconductor Corp Hochleistungs-mikroprozessor

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3967247A (en) * 1974-11-11 1976-06-29 Sperry Rand Corporation Storage interface unit
US4313158A (en) * 1978-12-11 1982-01-26 Honeywell Information Systems Inc. Cache apparatus for enabling overlap of instruction fetch operations
JPS5687282A (en) * 1979-12-14 1981-07-15 Nec Corp Data processor
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4695943A (en) * 1984-09-27 1987-09-22 Honeywell Information Systems Inc. Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization
JPH0746315B2 (ja) * 1986-08-25 1995-05-17 株式会社日立製作所 電子計算機の命令先読み制御方法
JPH0695305B2 (ja) * 1986-10-22 1994-11-24 三菱電機株式会社 デ−タ処理装置
US4847758A (en) * 1987-10-30 1989-07-11 Zenith Electronics Corporation Main memory access in a microprocessor system with a cache memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4317168A (en) * 1979-11-23 1982-02-23 International Business Machines Corporation Cache organization enabling concurrent line castout and line fetch transfers with main storage
US4646233A (en) * 1984-06-20 1987-02-24 Weatherford James R Physical cache unit for computer
DE3743515A1 (de) * 1987-01-22 1988-08-04 Nat Semiconductor Corp Hochleistungs-mikroprozessor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
design & elektronik, Nr. 19, 13.9.1988, S. 91-98 *

Also Published As

Publication number Publication date
US5027270A (en) 1991-06-25
JPH02224023A (ja) 1990-09-06
KR900006865A (ko) 1990-05-09
KR970008187B1 (ko) 1997-05-21
CA1332248C (en) 1994-10-04

Similar Documents

Publication Publication Date Title
DE3933849A1 (de) Prozessorgesteuerte schnittstelle
DE68918754T2 (de) Datenverarbeitungsgerät mit selektivem Befehlsvorausholen.
DE69021594T2 (de) Hochgeschwindigkeitsdatenübertragung auf einem Rechnersystembus.
DE69124905T2 (de) Datenverarbeitungsvorrichtung zur dynamischen Zeiteinstellung in einem dynamischen Speichersystem
DE19882486B4 (de) Synchroner, nicht-flüchtiger Seitenmodus-Speicher
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE69127101T2 (de) System für verteilte mehrfachrechnerkommunikation
DE69221045T2 (de) Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen
DE3685863T2 (de) Rechnersystem zur steuerung virtueller maschinen.
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69028066T2 (de) Kombinierte synchrone und asynchrone Speichersteuerung
DE69018112T2 (de) Hochleistungsspeichersystem.
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE68920419T2 (de) Verfahren und Anordnung für eine leistungsfähige DRAM-Steuerung.
DE69031524T2 (de) Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen
DE2953861C2 (de)
DE69333319T2 (de) Datenverarbeitungssystem mit synchronem, dynamischem Speicher in integrierter Schaltkreistechnik
DE3885985T2 (de) Speichersteueranordnung für ein Daten verarbeitendes System.
DE69219848T2 (de) Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau
DE60026068T2 (de) System für externe transaktionen mit dynamischen prioritäten
DE3850514T2 (de) Cachespeicher mit Treffervorhersagelogik.
DE2813080A1 (de) Einrichtung zur speicheradressierung
DE69029815T2 (de) Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung
DE102006041444A1 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
DE19908618A1 (de) Gemeinsam genutzter Hochleistungscachespeicher

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8131 Rejection