DE3421737C2 - Vorrichtung zur Ermittlung einer Überlappung von Operanden - Google Patents
Vorrichtung zur Ermittlung einer Überlappung von OperandenInfo
- Publication number
- DE3421737C2 DE3421737C2 DE3421737A DE3421737A DE3421737C2 DE 3421737 C2 DE3421737 C2 DE 3421737C2 DE 3421737 A DE3421737 A DE 3421737A DE 3421737 A DE3421737 A DE 3421737A DE 3421737 C2 DE3421737 C2 DE 3421737C2
- Authority
- DE
- Germany
- Prior art keywords
- address
- overlap
- read
- byte
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
Abstract
Die Erfindung betrifft eine Vorrichtung zur Erfassung von Operandenüberlappungen. Damit die Befehlsausführungsfolge in einem Pipeline-Datenverarbeitungssystem erhalten bleibt, wird erfaßt, ob sich die Operanden in Zugriffsbreiteneinheiten überlappen oder nicht, indem die durch einen Schreibbefehl spezifizierte Schreibadresse mit der durch einen Lesebefehl, der dem Schreibbefehl folgt, spezifizierten Leseadresse verglichen wird. Zusätzlich wird erfaßt, ob innerhalb eines durch die Zugriffsbreite gegebenen Bereichs eine Überlappung auftritt oder nicht. Diese Erfassung basiert auf einer Schreibmarke in einem Markenregister (2), der Adresse in Zugriffsbreiteneinheit, die in einem Leseadreßregister (3) gespeichert ist und der Lesedatenlänge in einem Datenlängenregister (4). Eine tatsächliche Überlappung wird gemäß der Erfindung durch beide Operationen zur Erfassung der Überlappungsbedingungen angegeben.
Description
dadurch gekennzeichnet, daß die Vorrichtung zusätzlich aufweist:
— ein zweites Register (2) zur Aufnahme einer Schreibuarke zur Anzeige des Vorhandenseins
bzw. Fehlens vor; Speic$-irdaten in jedem Byte
innerhalb der Wortlänge (Zugriffsbreite) des Wortes, das im ersten Regier (1) angegeben ist,
— ein viertes Register (4) zur Aufnahme der Datenlange
des zu lesenden Operanden aufgrund der im
dritten Register (3) vorangestellten Adresse,
— einer zweiten Erfassungseinrichtung (6 bis 14) zur Ermittlung, ob sich die Operanden innerhalb der
Wortlänge (= Zugriffsbreite) überlappen aufgrund der Schreibmarke im zweiten Register (2),
aufgrund der abgetrennten niedrigwertigen Entstellen, mit denen in der Leseadresse des dritten
Registers (3) innerhalb der Zugriffsbreite (= Wortlänge) die Bytes adressiert sind, und aufgrund
der im vierten Register (4) angegebenen Datenlänge, und
— einer Ausgabeeinrichtung (15) zur Anzeige, ob
eine Operandenüberlappung aufgrund der Ermittlungen der ersten (5) und der zweiten (6 bis
14) Erfassungseinrichtungen vorhanden ist.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die zweite Erfassungseinrichtung
aufweist:
eine erste Logik (7, 8), die aufgrund der Schreibmarke
im zweiten Register (2) die Anwesenheit oder Abwesenheit der Schreibdaten in jedem Feld angibt,
wobei das Feld durch Teilen der Zugriffsbreite durch η erhalten wird,
eine zweite Logik (6, 9 bis 10), die die Teileinheit
aufgrund von Bitstellen, die eine Adresse innerhalb der Zugriffsbreiteneinheiten angeben und der Lesedatenlänge
angibt, und
eine Einrichtung, die eine Überlappung innerhalb der Zugriffseinheit aufgrund der durch die erste
Logik (7. 8) und die zweite Logik {6, 9 bis 10) gelieferten Information erfaßt.
3. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die erste Logik (7, 8) eine
ODER-Einrichtung aufweist, die die Scnreibmarke in jeder Teileinheit ODER-verknüpft.
4. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Schreib- und Leseadressen
logische Adressen angeben.
5. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Adressen einen Seitenadreßteü
(Bitstellen 0 bis 19), einen Teil für eine Adresse innerhalb einer Seite (Bitstellen 20 bis 28)
und einen Teil für eine Adresse in Zugriffsbreiteoeinheit (Bitstellen 29 bis 31) aufweisen, und daß die
erste Erfassungseinrichtung (5) eine Einrichtung enthält, die erae Koinzidenz zwischen der Schreibadresse im ersten Register (1) und der Leseadresse
im dritten Register (3) und eine Koinzidenz zwischen der Adresse innerhalb einer Seite der Schreibadresse
und der Adresse innerhalb einer Seite der Leseadresse erfaßt.
In einem Pipeline-Datenverarbeitungssystem wird die effektive Befehlsverarbeitungszeit du^ch parallele Ausführung
mehrerer Befehle verringert.Obwohl im Pipeline-Datenverarbeitungssystem
mehrere Befehle parallel verarbeitet werden, muß dennoch die Ausführungsfolge
solcher Befehle sichergestellt sein. Bei der Pipeline-Steuerung kann, wenn einem Schreibbefehl, der
Daten in den Speicher einschreibt, ein Lesebefehl, der Daten aus dem Speicher ausliest, folgt, eine auf dem
dem Speicherbefehl folgenden Lesebefehl beruhende Holanforderung auftreten, noch bevor eine auf dem
Schreibbefehl beruhende -Speicheranforderung vorliegt. Um in dieser Situation die Befehlsausführungsfolge zu
garantieren, prüft das System, ob der durch den vorangehenden Schreibbefehl zu. ändeiede Speicherbereich,
aus dem durch den nachfolgenden Lesebefehl Daten gelesen werden, überlappt oder nicht. Wenn sich herausstellt,
daß sich diese Bereiche überlappen, muß die Verarbeitung des Lesebefehls in den Wartezustand versetzt
werden und darin verbleiben, bis die Verarbeitung des vorangehenden Schreibbefehls vollständig ist. Solche
Überlappungen zwischen Schreib- und Lesebefehlen wird beim Stand der Technik in Speicherzugriffsbreite
erfaßt. Deshalb wird eine Überlappung auch dann erfaßt, wenn tatsächlich gar keine Überlappung
auftritt, wodurch die Vorteile der Pipline-Steuerung verringert werden. Beispielsweise wird in einem Datenverarbeitungssystem,
dessen Speicherzugriffsbreite 8 Byte beträgt, eine Überlappung erfaßt, wenn der vorangehende
Schreibbefehl die ersten 4 Byte innerhalb einer 8 Byte-Speichergrenze ändert und der darauffolgende
Lesebefehl die letzten 4 Byte innerhalb der 8 Bytc-Speichergrenze liest, obwohl doch tatsächlich keine
Überlappung existiert. Weil das Auslesen eines Datums aus dem Speicher durch den folgenden Lesebefehl vcrzögert
wird, bis der vorangehende Befehl ein Datum komplett in dem Speicherbereich, bei dem eine Über'
lappung erfaßt wurde, abgespeichert hat, ist der Pipeline-Betrieb ungenau und der Wirkungsgrad verschlechtert.
Es ist bereits bei Datenverarbeitungsanlagen, die nach dem Prinzip der Pipeline-Steuerung die Datenverarbeitung
durchführen kann, bekannt, zur Ermittlung eines Operanden-Konfliktfalles, bei dem ein Operand
mit der gleichen Adresse aus einem Speicher ausgelesen werden soll, die in einem vorhergehenden Schreibbefehl
enthalten ist, eine Detektorschaltung zur Ermittlung dieses Falles zu verwenden (Computing Surveys,
Vol. 9, No 1, March 1977,Seiten 70 bis 73). Im Gegensatz zur vorliegenden Erfindung beschränkt sich dabei
die Ermittlung des Konfliktfalles lediglich auf die Gleichheit der Schreib- mit der Leseadresse.
Es ist deshalb Aufgabe der vorliegenden Erfindung, eine Vorrichtung zu schaffen, mit der die Überlappung
der Operanden hinsichtlich der tatsächlichen Speicherbelegung innerhalb der Zugriffsbreite (= verwendete
Wortlänge) ermittelt werden kann. Gelöst wird diese Aufgabe durch die im kennzeichnenden Teil des Patentanspruchs
1 angegebenen Merkmale. Zweckmäßige Weiterbildungen und Ausgestaltungen der Erfindung
sind in den Unteransprüchen angegeben.
Die Erfindung ist im folgenden anhand der Zeichnung näher beschrieben. Es zeigt
Fig. 1 ein Blockschaltbild eines Ausführungsbeispiels gemäß der Erfindung;
Fig. 2a, 2b und 3a bis 3c Beispiele von arhandenen bzw. nicht vorhandenen Überlappungen der Schreibund Lesespeicherbereiche, wobei die Uberlappungseinheit
kleiner als die Speicherzugriffsbreite ist.
Fig. 4a und 4b die Bedingungen für vorhandene bzw. nicht vorhandene 4 Byte-Überschneidungen der 4 Byte-Überschneidungsfassungsschaltung,
die in Fig. 1 dargestellt ist.
indem in Fig. 1 dargestellten Ausführungsbeispiel gemäß der Erfindung wird der Speicher mit einer 32 Bit-Adresse
(Bit O ist das höchstwertige Bit und Bit 31 das niedrigstwertige Bit) in Byte-Einheiten adressiert, die
Speicherseitengröße beträgt 4 Kilobyte, die Speicherzugriffsbreite
beträgt 8 Byte und die Uberlappungsfassiingseinheit
beträgt 4 Byte und wird durch die Halbierung der Zugriffsbreite erreicht. Folglich geben die
Adreß-Bitstellen O bis 19 eine Seitenadresse, die Adreß-Bitstellen
20 bis 28 eine innerhalb einer Seite liegende 8 Byte-Adrcsseinheit und die Adress-Bitstellen 29 bis 31
eine Byte-Adresse in einem 8 Byte-Einheitsfeld an.
In Fig. 1 wird eine Datenschreibadresss im Schreibadreßregister
1 gespeichert und die Bitstellen 20 bis 28 der Adresse geben eine Adresse einer 8-Byte-Zugriffsbrciteneinheit
in einer Seite an. Das Markenregister 2 hat 8 Bit» und wird zum Speichern einer Schreibmarke
verwendet, die angibt, ob Schreibdaten für jedes der 8 Byte-Zugriffsbreite vorhanden sind oder nioht. Das
heißt, daß jedes Bit des Markenregisters einer Byte-Position der 8 Byte-Zugriffsbreite entspricht. Falls ein
Bit »1« ist, existiert ein Schreibdatum an der entsprechenden Öyte-Position und falls das Bit »0« ist, existiert
kein Schreibdatum an der entsprechenden Position. Falls beispielsweise die 8-Bit-Schreibmarke »00111100«
lautet, steht das Schreibdatum an den Byte-Positionen 2 bis 5 innerhalb der 8-Byte-Zugriffrsbreite. Das Leseadressregister
3 speichert die erste Adresse der zu lesenden Daten. Die Bit-Positionen 20 bis 28 geben eine
Adresse der 8 Byte-Zugriffsbreite in einer Seite und die Bitstellc 29 bis 31 eine Adresse im 8-Byte-Feld an. Das
Datenlängenregister 4 gibt die Lesedatenlänge innerhalb der 8-Byte-Grenze an; 3 Bitstellen werden zur
Angabe der Datenlänge (1 Byte bis 8 Byte) verwendet. Falls beispielsweise das Datenlängenregister den Wert
»(XX)« enthält, ist die Lesedatenlänge 1 Byte und falls es den Wert »111« enthält, ist die Lesedatenlänge 8 Byte.
Die Schreibadresse uiüj' die Marke werden in die Register
1 bzw. 2 jeweils durch einen Schreibbefehl gesetzt, während die Leseadresse und die Datenlänge in die
Register 3 bzw. 4 jeweils durch einen dem Schreibbefehl folgenden Lesebefehl gesetzt werden.
Eine Adreß-Koinzidenzerfassungsschaltung 5 erfaßt eine Koinzidenzsituation zwischen Schreib- und Leseadressen
in 8-Byte-Einheiten entsprechend der Speicherzugriffebreite.
Eine 4-Byte-Überschneidungserfassungsschaltung 6
erfaßt, ob die zu lesenden Daten eine 4-Byte-Datengrenze überschneiden oder nicht. Die Bitstellen 0 bis 3
und die Bitstellen 4 bis 7 des Markenregisters 2 werden jeweils mittels ODER-Gliedern 7 und 8 ODER-verknüpft.
Die Invertierschaltung 9 invertiert den Wert der Bitstelle 29 des Leseadreßregisters 3, das UND-Glied
10 verknüpft die Ausgänge der 4-Byte-Überschneidungserfassungsschaltung
6 mit dem Ausgang der Invertierschaltung 9 und das ODER-G'jed 11 verknüpft mit
einem logischen ODER die Bitstelle 29 des Leseadreßregisters 3 mit dem Ausgang des UND-Glieds 10. Die
Ausgänge des ODER-Glieds 7 UDi? des Invertierglieds 9
werden durch eine UND-Schaltung 12 UND-verinüpft; die Ausgänge der ODER-Glieder 8 und 11 werden
durch ein UND-Glied 13 UND-verknüpft; aie Ausgänge der UND-Glieder 12 und 13 werden durch eine
ODER-Schaltung 14 ODER-verknüpft; uad die Ausgänge der Adreß-Koinzidenzerfassungsschaitung 5 und
der ODER-Schaltung 14 werden durch ein UND-Glied 15 UND-verknüpft.
Im folgenden wird der Betrieb d^s in Fig. 1 dargestellten
Ausführungsbeispiels beschrieben. Wir nehmen an, daß jeweils eine Schreibadresse und eine Schreibmarke im Schreibadreßregister 1 bzw. im Markenregister
3 aufgrund eines zum Dateneinschreiben in den Speicher ausgegebenen Schreibbefehls gespeichert sind
und daß die erste Leseadresse und die Lesedaten-Bytelänge jeweils im Leseadreßregister 3 bzw. im Lesedaten-Längenregister
4 aufgrund eines nach dem Schreibbefehl ausgegebenen Lesebefehls gespeichert sind, um
Daten aus dem Speicher auszulesen. Die Adreß-Koinzidenzerfassungsschaltung 5 vergleicht den Inhalt des
Schreibadreßregisters 1 mit den Bitstellen 20 bis 28 des Lerseadreßregisters 3, die eine Adresse innerhalb einer
Seite angeben. Wenn die Adreß-Koinzidenzerfassungsschaltung
5 eine Übereinstimmung gefunden hat, gibt sie eine »1« und andernfalls eine »0« aus.
Im dargestellten Ausführungsbeispiel werden logische Adressen als Schreib- und Leseadressen verwendet
und in das Schreibadreßregister 1 bzw. das Leseadreßregister 3 gesetzt. Man weiß, daß in einem einen virtuellen
Raum behandelnden Datenverarbeitungssystem logische Adressen durch einen Speicherzugriffsbefehl
spezifiziert werden und daß der Zugriff zum realen Speicher mittels realer durch Übersetzung der logischen
Adresse gewonnenen Adressen erfolgt. Nur der eine .■55 Speicheradresse, kennzeichnende Teil der Bitsteilen 0
bis 19 wird übersetzt, d.h. das die Bitstellen 20 bis 31, die eine Adresse innerhalb einer Seite angeben, logischen
und realen Adressen gemeinsam sind. Die resSe Adresse für den Zugriff zum realen Speicher sollte zur
<» Erfassung der Überlappung verwendet werden; da
jedoch nach der Adreßumsetzung ein Vergleich der realen Adresse zeitraubend ist, dienen für den Vergleich
die logischen Adressen. Der Vergleich realer Adressen kann natürlich immer dort erfolgen, wo die
<>5 für die Adreßumseizung benötigte Zeitverzögerung zur
Erfassung der Überlappung tolerierbar ist.
Die Adreß-Koinzidenzerfassungsschaltung 5 verarbeitet
eine logische Adresse, somit wird eine durch die
Bitstellen 20 bis 28 spezifizierte Adresse innerhalb einer
Seite verglichen. Deshalb wird auch dann die Überlappung erfaßt, wenn dieselbe Adresse innerhalb einer
Seite für verschiedene Seiten gefunden wurde. Das rührt daher, das verschiedene logische Adressen durch
manche Software-Einrichtung in dieselben realen Adressen umgesetzt werden. Falls die Software garantiert,
daß unterschiedliche logische Adressen nicht derselben realen Adresse zugeordnet sind, kann die Adreß-Koinzidenzerfassungsschaltung
5 auch die Schreibadreß-Bits 0 bis 28 mit den Leseadreß-Bits 0 bis 28
vergleichen.
Wenn die Adreß-Koinzidenzerfassungsschaltung 5
eine »0« ausgibt, überlappen sich die Operanden der Schreib- und Leseoperation nicht innerhalb der 8-Byte-Grenze
(Speicherzugriffsbreiteneinheit) im Speicher; Somit funktioniert die Pipeline-Steuerung normal bei
der parallelen Ausführung des vorangehenden Schreibbefehls und des folgenden Lesebefehls. Andererseits
überlappen sich die Operanden des Schreib- und Lesebefehls innerhalb einer 8-Syte-Speichergrenze, falls das
Ausgangssignal der Adreß-Koinzidenzerfassungsschaltung
5 eine »1« ist. In diesem Falle wird herkömmlich das Auftreten einer Überlappungssituation angenommen,
so daß die Speicherleseoperation durch den folgenden Lesebefehl bis zur völligen Ausführung des
vorangehenden Schreibbefehls, nämlich bis alle Daten in den Speicher gespeichert sind, verzögert wird.
Abweichend vom bekannten Verfahren prüft das in Fig. 1 dargestellte Ausführungsbeispiel eine Überlappung
in den ersten und zweiten 4-Byte des Bereichs innerhalb der 8-Byte-Speichergrenze. Wenn keine
Überlappung innerhalb dieser 4-Byte-Felder erfaßt wird, wird auch dann, wennn innerhalb der 8-Byte-Grenze
eine Überlappungssituation erfaßt ist, die Überlappung als nicht erfüllt angenommen. Im folgenden
werden die dazu nötigen Systemoperationen näher beschrieben.
Zunächst werden anhand der Fig. 2a und 2b die Operationen für einen Fall beschrieben, wo die in den
Speicher zu schreibenden gültigen Daten nur in den ersten 4 Byte innerhalb der 8-Byte-Speichergrenze vorhanden
sind.
In diesem Fall sind die Ausgänge der ODER-Glieder 7 und 8 jedweils »1« und »0«. Wie Fig. 2a zeigt, ist das
Bit 29 des Leseadreßregisters 3 »0«, falls die Leseadresse ein willkürliches Byte der ersten 4 Byte innerhalb
der 8-Byte-Grenze spezifiziert. Das Invertierglied 9 invertiert den logischen Wert der Bitstelle 29 und der
sich ergebende Wert wird im UND-Glied 12 UND-verknüpft. Dann wird der Ausgang des UND-Glieds 15
über das ODER-Glied 14 »1« und gibt somit eine erfaßte Überlappung wieder.
Fig. 2b zeigt andererseits, daß das Bit 29 des Leseadreßregisters 3 »1« ist, falls die Leseadresse ein willkürliches
Byte der letzten 4 Byte innerhalb deT 8-Byte-Grenze spezifiziert, wodurch die UND-Bedingung
durch das UND-Glied 12 nicht erfällt ist. Da außerdem das ODER-Glied 8 eine »0« ausgibt, ist auch die UND-Bedingung
des UND-Glieds 13 nicht erfüllt. Folglich gibt das UND-Glied 15 auch wenn eine Überlappung in
der 8-Byte-Grenze erfaßt wurde und der Ausgang der
Adreß-Kcinzidenzerfassrangsschaltung 5 »1« ist, eine
»0« aus und es wird angenommen, daß keine Überlappung erfaßt ist.
Fig. 3 verdeutlicht die Operationen für einen Fall, bei dem in den Speicher zu schreibende, gültige Daten
nur innerhalb der letztem 4 Bytes eines 8-Byte-Bereichs
stehen.
In diesem Fall sind sie Ausgänge der ODER-Glieder 7 und 8 jeweils »0« bzw. »1«. Gemäß der Darstellung in
Fig. 3a ist der Wert der Bitstelle 29 des Leseadreßregis sters 3 »1«, falls die Leseadresse ein willkürliches Byte
der letzten 4-Bytes in der 8-Byte-Grenze kennzeichnet. Das Bit 29 wird dem UND-Glied 13 über das ODER-Glied
U eingegeben, was heißt, daß die UND-Bedingung im UND-Glied 13 erfüllt ist. Somit wird aufgrund
ίο des Ausgangs des UND-Glieds 15 eine Überlappung
erfaßt.
Falls andererseits die Leseadresse ein willkürliches Byte der ersten 4 Byte innerhalb der 8-Byte-Grenze
kennzeichnet, ist der Wert der Bitstelle 29 des Leseadreßregisters 3 »0«. In diesem Fall wird geprüft, ob die
Lesedaten die 4-Byte-Grenze innerhalb der 8-Byte-Grenze überschneidet oder nicht. Dazu wird die LesedatealängÄ
verwendet. Falls CJr1C Überschneidung
erkannt ist, muß angenommen werden, daß eine Überlappung vorliegt. Diese Operationen werden von der
4-Byte-Überschneidungserfassungsschaltung 6 ausgeführt.
Die 4-Byte-Überschneidungserfassungsschaltung erhält
an ihren Eingängen die Werte der Bits 30 und 31 vom Leseadreßregistcr 3 und die Lesedatenlänge vom
Register 4. Falls diese Eingangsgrößen eine der in Fig. 4 i aufgelisteten logischen Bedingungen erfüllen,
wird eine 4-Byte-Grenzüberschneidung angenommen. Falls eine der in Fig. 4b aufgelisteten logischen Bedingungen
erfüllt ist, wird eine 4-Byte-Grenzüberschncidung als nicht erfaßt angenommen. Falls beispielsweise
die Bits 30 und 31 des Leseadreßregisters 3 »00« sind (das Bit 29 ist »0«) gibt die im Leseadreßregister gespeicherte
Adresse Byte 0 im 8-Byte-Bereich an. In diesem Falle wird deshalb eine 4-Byte-Grenzüberschneidung
als erfaßt angenommen, falls die Lesedatenlänge S Byte
oder mehr ist (der Wert des Registers 4 ist mindestens »►100«). Falls die Lesedatenlänge gleich 4 Byte oder
kleiner ist (der Wert des Registers 4 ist höchstens »Uli«)
wird eine 4-Byte-Grenzüberschneidung nicht angenommen. Falls die Bits 30 und 31 des Leseadreßregisters 3
»1« sind, gibt die Adresse Byte 1 im 8-Byte-Bereich an. In diesem Fall wird eine 4-Byte-Grenzüberschneidung
erfaßt, falls die Lesedatenlänge 4 Byte oder mehr beträgt (der Wert des Registers 4 ist mindestens »011«).
Dagegen wird keine 4-Byte-Grenzüberschneidung angenommen, falls die Lesedatenlänge 3 Byte oder
weniger beträgt (der Wert des Registers 4 ist höchstens »010«). Falls die Bitstellen 30 und 31 des Löeseadreßregisters
3 »10« sind, gibt die Adresse Byte 2 im 8-Byte-Bereich an. In diesem Falle wird eine 4-Byte-Grenzüberschneidung
angenommen, falls die Lesedatenlänge
3 Byte oder mehr ist (der Wert des Registers 4 ist mindestens »10«), während eine 4-Byte-Grenzüberschneidung
nicht angenommen wird, falls die Lesedatenlänge 2 Byte oder weniger ist (der Wert des Registers
4 ist höchstens rflOl«). Falls die Bitstellen 30 und 31 des
Leseadreßregisters 3 »11« sind, gibt die Adresse Byte 3 im 8-Byte-Bereich an. In diesem Fall wird eine 4-Byte-Grenzüberschneidung
erfaßt, falls die Lesedatenlänge 2 Byte oder mehr beträgt ( der Wert des Registers 4 ist
mindestens »001«), während eine 4-Byte-Grenzüberschneidung
nur dann nicht erfaßt ist, wenn die Lesedatenlänge 1 Byte beträgt (der Wert des Registers 4 ist
»000«). Wenn die 4-Byte-Überscbneidungserfassungsschaltung
6 eine 4-Byte-Überschneidungssituation
gemäß der obigen Beschreibung erfaßt, gibt sie eine »1«
und andernfalls eine »0« aus. Da Bit 29 des Leseadreß-
registers 3 dann »0« ist, ist die UND-Bedingung, die das
UND-Glied IO durchführt, erfüllt, falls die 4-Byte-Überschneidungserfassungsschaltung
6 eine »1« ausgibt. Da die in den Speicher zu schreibenden gültigen Daten in den letzten 4 Byte des 8-Byte-Bereichs stehend
angenommen werden, ist der Ausgang der ODER-Schaltung 8 eine »I« und die UND-Bedingung im UND-Glied
13 ist gemäß dem UND-verknüpften Ergebnis vom UND-Glied 10 erfüllt. Deshalb wird der Ausgang
des UND-Glieds IS über das ODER-Glied 14 »1«. in
Damit ist eine Überlappung erfaßt. Dieser Fall ist in Fig. 3b dargestellt, wo die im Leseadreßregister gespeicherte
Adresse Byte 1 im 8-Byte-Bereich angibt (die Bits 30 und 31 des Leseadreßregisters 3 sind »01«) und
die Lcscdatenlänge 5 Byte beträgt (der Wert des Registers
4 ist »KM)«).
!-'»Ils andererseits die 4-Byte-Überschneidungerfassnngsschaltung
6 eine »0« ausgibt, ist die UND-Bedingung durch das UND-Glied 10 nicht erfüllt. Außerdem
gibt das ODER-Glied 11 eine »0« aus, da Bit 29 des Leseadreßregisters 3 »0« ist. Deshalb ist die UND-Bedingung
durch das UND-Glied 13 nicht erfüllt. Da die in den Speicher zu schreibenden gültigen Daten in
den letzten 4 Byte innerhalb der 8-Byte-Grenze angenommen werden, ist der Ausgang des ODER-Gliedes 7
»()« und die UND-Bedingung durch das UND-Glied 12 auch nicht erfüllt. Als Ergebnis gibt das UND-Glied 15
eine »0« aus, und eine Überlappung ist nicht erfaßt, auch wenn eine Überlappung in der 8-Byte-Grenze
erfaßt ist und die Adreß-Koinzidenzerfassungsschaltung χ
5 ei«)c »I« ausgibt. Dieser Fall ist in Fig. 3c dargestellt,
wo die im Leseadreßregister gespeicherte Adresse Byte 1 im K-Byte-Bereich angibt und die Lesedatenlänge 3
Byte beträgt (der Wert des Registers 4 ist »010«).
Beim vorliegenden, anhand der Figuren beschriebenen Ausführungsbeispiel ist die Speicherzugriffsbreite
als K-Byte angenommen. Die Erfindung ist jedoch nicht darauf beschränkt. Außerdem ist beim vorliegenden
Beispiel die Überlappungserfassung für die Schreibund Leseoperationen auf 4 Byte festgelegt, was jedoch
nur als Beispiel verstanden sein soll. Im Sinne der Erfindung kann eine Überlappungserfassungseinheit
verwendet werden, die gleich oder kleiner als die Speichcr/ugriffsbreite
ist. Sie kann beispielsweise 1 oder 2 Byte betragen.
Die vorangehende Beschreibung macht deutlich, daß gemäß der Erfindung eine Überlappung zwischen den
Operanden im Speicher, die durch den vorangehenden Schreibbefehl und den darauffolgenden Lesebefehl
gekennzeichnet sind, in einer Einheit, die gleich oder so kleiner als die Speicherzugriffsbreite ist, erfaßt wird;
folglich wird die Erfassung einer Überlappung, falls sich die Operanden tatsächlich nicht überlappen, fast vollständig
ausgeschlossen und dadurch die Effektivität der Pipeline-Steuerung erhöht.
Hierzu 3 Blatt Zeichnungen
60
65
Claims (1)
1. Vorrichtung zur Ermittlung einer Überlappung von Operanden, auf die in einem Speicher in einer
Pipeline-Datenverarbeitungsanlage zugegriffen wird, mit
— einem ersten Register (1) zur Aufnahme einer Schreibadresse für den Speicher, die in einem
Schreibbefehl angegeben ist,
— einem dritten Register (3) zur Aufnahme einer
Leseadresse für den Speicher, die in einem Lesebefehl angegeben ist, der auf den Schreibbefehl
folgt, wobei im Speicher Schreiben und Lesen mit einer Zugriffsbreite (= Wortlänge) von mehreren
Bytes ausgeführt werden und wobei das Wort, dessen Länge gleich der Zugriffsbreite ist, mit
einem Adressenteil adressiert ist, der durch Abtrennpr»
von niedrigwertigen Bitstellen von der im ersten (1) und dritten (3) Register angegebenen
Adresse gebildet ist, und
— einer ersten Erfassungseinrichtung (S) zur Ermittlung,
ob die vom Speicher abzurufenden Operanden die gleiche Wortadresse besitzen,
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58105528A JPS59231652A (ja) | 1983-06-13 | 1983-06-13 | メモリアクセス・オ−バラツプ検出方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3421737A1 DE3421737A1 (de) | 1984-12-13 |
DE3421737C2 true DE3421737C2 (de) | 1986-11-06 |
Family
ID=14410085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3421737A Expired DE3421737C2 (de) | 1983-06-13 | 1984-06-12 | Vorrichtung zur Ermittlung einer Überlappung von Operanden |
Country Status (3)
Country | Link |
---|---|
US (1) | US4670836A (de) |
JP (1) | JPS59231652A (de) |
DE (1) | DE3421737C2 (de) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4734852A (en) * | 1985-08-30 | 1988-03-29 | Advanced Micro Devices, Inc. | Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor |
JPS6275860A (ja) * | 1985-09-30 | 1987-04-07 | Toshiba Corp | デ−タ転送制御装置 |
JPH0823820B2 (ja) * | 1985-10-23 | 1996-03-06 | 富士通株式会社 | アドレス・オーバラップ・チェック処理装置 |
JPS63311438A (ja) * | 1987-06-12 | 1988-12-20 | Fujitsu Ltd | ストア命令不一致制御回路 |
JP2667849B2 (ja) * | 1988-01-06 | 1997-10-27 | 株式会社日立製作所 | 情報処理装置 |
US5019967A (en) * | 1988-07-20 | 1991-05-28 | Digital Equipment Corporation | Pipeline bubble compression in a computer system |
JPH0774994B2 (ja) * | 1988-09-21 | 1995-08-09 | 株式会社日立製作所 | バッファ記憶制御装置のosc検出方式 |
JP2671438B2 (ja) * | 1988-10-06 | 1997-10-29 | 日本電気株式会社 | 情報処理装置 |
JP2504156B2 (ja) * | 1989-01-25 | 1996-06-05 | 日本電気株式会社 | 情報処理装置 |
US5193167A (en) * | 1990-06-29 | 1993-03-09 | Digital Equipment Corporation | Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system |
EP0550289A3 (en) * | 1992-01-02 | 1993-11-10 | Amdahl Corp | A mechanism to detect stores into the instruction stream |
US5692151A (en) * | 1994-11-14 | 1997-11-25 | International Business Machines Corporation | High performance/low cost access hazard detection in pipelined cache controller using comparators with a width shorter than and independent of total width of memory address |
US5784586A (en) * | 1995-02-14 | 1998-07-21 | Fujitsu Limited | Addressing method for executing load instructions out of order with respect to store instructions |
US6070238A (en) * | 1997-09-11 | 2000-05-30 | International Business Machines Corporation | Method and apparatus for detecting overlap condition between a storage instruction and previously executed storage reference instruction |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3728692A (en) * | 1971-08-31 | 1973-04-17 | Ibm | Instruction selection in a two-program counter instruction unit |
AR204115A1 (es) * | 1974-01-18 | 1975-11-20 | Reynolds Tobacco Co R | Aparato para formar impresiones axiles en filtros de cigarrillos |
JPS522139A (en) * | 1975-06-24 | 1977-01-08 | Hitachi Ltd | Information processing apparatus |
US4085450A (en) * | 1976-12-29 | 1978-04-18 | Burroughs Corporation | Performance invarient execution unit for non-communicative instructions |
JPS5466048A (en) * | 1977-11-07 | 1979-05-28 | Hitachi Ltd | Information processor |
JPS5621240A (en) * | 1979-07-27 | 1981-02-27 | Hitachi Ltd | Information processor |
CA1174370A (en) * | 1980-05-19 | 1984-09-11 | Hidekazu Matsumoto | Data processing unit with pipelined operands |
JPS57185545A (en) * | 1981-05-11 | 1982-11-15 | Hitachi Ltd | Information processor |
-
1983
- 1983-06-13 JP JP58105528A patent/JPS59231652A/ja active Pending
-
1984
- 1984-06-07 US US06/618,257 patent/US4670836A/en not_active Expired - Fee Related
- 1984-06-12 DE DE3421737A patent/DE3421737C2/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
JPS59231652A (ja) | 1984-12-26 |
DE3421737A1 (de) | 1984-12-13 |
US4670836A (en) | 1987-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3421737C2 (de) | Vorrichtung zur Ermittlung einer Überlappung von Operanden | |
DE3151745C2 (de) | ||
DE2629459C2 (de) | ||
DE60224774T2 (de) | Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit | |
DE2644441A1 (de) | Datenverarbeitungssystem | |
DE10048072A1 (de) | Linklisten-DMA-Descriptor-Architektur | |
EP0010186B1 (de) | Vorrichtung zum Bearbeiten bezeichneter Hinweise | |
DE3439302A1 (de) | Speichersteuerungsvorrichtung | |
DE19983098B4 (de) | Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren | |
DE19526008A1 (de) | Vertikal partitionierter, primärer Befehls-Cache-Speicher | |
DE3911721C2 (de) | ||
DE4117672A1 (de) | Verfahren und vorrichtung zur steuerung eines zwischen einer zentraleinheit und einem arbeitsspeicher angeordneten cache-speichers | |
DE2134816A1 (de) | Einrichtung zur adressenuebersetzung | |
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen | |
DE2723706A1 (de) | Einrichtung zum adressenvergleich | |
DE3340956A1 (de) | Verfahren und vorrichtung zur erfassung von speicherzugriffen | |
DE2349253A1 (de) | Programmgesteuerte rechenanlage | |
DE3226214A1 (de) | Arithmetisches betriebssystem | |
DE3241357A1 (de) | Vorrichtung zur mikrobefehls-bereitstellung fuer mindestens zwei unabhaengig arbeitende funktionseinheiten in einem integrierten, mikroprogrammierten elektronischen baustein und verfahren zu ihrem betrieb | |
EP1750283B1 (de) | Überprüfung eines Adressdecoders | |
DE4218622C2 (de) | Parallelcomputer mit Beschleunigungsfunktion | |
DE2523795C3 (de) | Verfahren zum wiederholten Ausführen von Maschinenbefehlen durch eine festverdrahtete Steuerung in einer Verarbeitungseinheit einer Datenverarbeitungsanlage | |
DE3917537C2 (de) | ||
DE4038328C2 (de) | ||
DE3824306A1 (de) | Mikroprozessor mit seriellem datenbus und signalleitung(en) zur ermittlung der datenlaenge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |