DE3933849A1 - Prozessorgesteuerte schnittstelle - Google Patents
Prozessorgesteuerte schnittstelleInfo
- 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
Links
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 14
- 238000000034 method Methods 0.000 claims description 8
- 230000003111 delayed effect Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims 3
- 239000004020 conductor Substances 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 235000021184 main course Nutrition 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241000219492 Quercus Species 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- 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
-
- 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
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.
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.
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.
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.
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.
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)
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)
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)
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 |
-
1988
- 1988-10-11 US US07/255,791 patent/US5027270A/en not_active Expired - Lifetime
-
1989
- 1989-09-25 CA CA000612989A patent/CA1332248C/en not_active Expired - Lifetime
- 1989-10-10 DE DE3933849A patent/DE3933849A1/de not_active Ceased
- 1989-10-11 JP JP1263130A patent/JPH02224023A/ja active Pending
- 1989-10-11 KR KR1019890014555A patent/KR970008187B1/ko not_active IP Right Cessation
Patent Citations (3)
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)
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 |