DE3421737A1 - Vorrichtung zur erfassung von operandenueberlappungen - Google Patents
Vorrichtung zur erfassung von operandenueberlappungenInfo
- Publication number
- DE3421737A1 DE3421737A1 DE19843421737 DE3421737A DE3421737A1 DE 3421737 A1 DE3421737 A1 DE 3421737A1 DE 19843421737 DE19843421737 DE 19843421737 DE 3421737 A DE3421737 A DE 3421737A DE 3421737 A1 DE3421737 A1 DE 3421737A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- register
- read
- write
- overlap
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 claims description 33
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 244000025221 Humulus lupulus Species 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Memory System (AREA)
Description
HITACHI, LTD., Tokyo, Japan
Vorrichtung zur Erfassung von Operandenüberlappungen
Die Erfindung betrifft eine Vorrichtung zur Erfassung von Überlappungen von in einem Speicher gespeicherten Operanden,
die jeweils durch einen Schreibbefehl bzw. einen Lesebefehl in einem Pipeiine-Datenverarbeitungssystem gekennzeichnet
sind.
In einem Pipeline-Datenverarbeitungssystem wird die effektive Befehlsverarbeitungszeit durch parallele Ausführung mehrerer
Befehle verringert. Obwohl im Pipeline-Datenverarbeitungssystem mehrere Befehle parallel verarbeitet werden, muß dennoch
die Ausfühkiungsfolge 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 Holanforderurig
auftreten, noch bevor eine auf dem Schreibbefehl beruhende Speicheranforderung vorliegt. Um in dieser Situation die Befehlsausführungsfolge
zu garantieren, prüft das System, ob
81 -A8763-02/AtAl ~ ,...
BpO Copy
-S-
der durch den vorangehenden Schreibbefehl zu ändernde Speicherbereich
mit dem 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 Pipeline-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 Byte-Speichergrenze
liest, obwohl doch tatsächlich keine Überlappung existiert. Weil das Auslesen eines Datums aus dem Speicher
durch den folgenden Lesebefehl verzögert wird, bis der vorangehende Befehl ein Datum komplett in dem Speicherbereich,
bei dem eine Überlappung erfaßt wurde, abgespeichert hat, ist der Pipeline-Betrieb ungenau und der Wirkungsgrad verschlechtert.
Es ist deshalb Aufgabe der Erfindung, eine Vorrichtung anzugeben, die eine Operandenüberlappung in kleineren Einheiten
als der Speicher-zugriffsbreite erfassen kann.
Zur Lösung der obigen Aufgabe enthält die erfindungsgemäße
Vorrichtung zur Erfassung von Operandenüberlappungen eine erste Erfassungseinrichtung, die die Speicheradresse, die
durch den vorangehenden Schreibbefehl gekennzeichnet ist mit der Leseadresse, die im folgenden Lesebefehl steht
vergleicht und erfaßt, ob sich die Operanden in Speicherzugrif fsbreiteneinheit überlappen und eine zweite Erfassungs-
copy m.
einrichtung , die erfaßt, ob sich die Operanden innerhalb der Speicherzugriffsbreite überlappen , indem sie eine
Speichermarke, die angibt, ob effektiv Speicherdaten vorhanden sind oder nicht, die Adresse innerhalb der Speicherzugriff
sbreiteneinheit, die in der Leseadresse gespeichert ist, und die Lesedatenlänge verwendet. Ein Überlappungsssignal wird
durch eine Ausgabeeinrichtung ausgegeben, wenn jeweils die erste Erfassungseinrichtung und die zweite Erfassungseinrichtung
die Operandenüberlappung erfaßt haben.
Die .Erfindung ist im folgenden anhand der Zeichnung näher beschrieben.
Es zeigen:
Fig. 1 ein Blockschaltbild eines Ausführungsbeispiels gemäß der Erfindung;
Fig. 2a,
2b und
3a bis 3c Beispiele von vorhandenen bzw. nicht vorhandenen Überlappungen der Schreib- und Lesespeicherbereiche,
wobei die Überlappungseinheit kleiner als die Speicherzugriff
sbreite ist;
Fig. 4a · .
und 4 b die Bedingungen für vorhandene bzw. nicht vorhandene 4 Byte-Überschneidungen der 4 Byte-Überschneidungserfassungsschaltung,
die in Figur 1 dargestellt ist.
In dem in Figur 1 dargestellten Ausführungsbeispiel gemäß der
Erfindung wird der Speicher mit einer 32 Bit-Adresse (Bit 0 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 Überlappungserfassungseinheit beträgt 4 Byte und wird durch Halbierung der Zugriffsbreite erreicht. Folglich
geben die Adress-Bitstellen 0-19 eine Seitenadresse, die
COPY
Adress-Bitstellen 20 - 28 eine innerhalb einer Seite liegende 8 Byte-Adresseinheit und die Adress-Bitstellen 29 - 31 eine
Byte-Adresse in einem 8 Byte-Einheitsfeld an.
In Figur 1 wird eine Datenschreibadresse im Schreibadressregister 1 gespeichert und die Bitstellen 20 - 28 der Adresse geben
eine Adresse einer 8-Byte-Zugriffsbreiteneinheit in einer
Seite an. Das Markenregister 2 hat 8 Bits und wird zum Speichern einer Schreibmarke verwendet, die angibt, ob Schreibdaten
für jedes Byte der 8 Byte-Zugriffsbreite vorhanden sind oder nicht. 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 Byte-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-Zugriffsbreite. Das Leseadressregister 3 speichert
die erste Adresse der zu lesenden Daten. Die Bit-Positionen 20 - 28 geben eine Adresse der 8 Byte-Zugriffsbreite in
einer Seite und die Bitstelle 29 - 31 eine Adresse im 8-Byte-FeId
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 "000" enthält, ist die Lesedatenlänge 1 Byte und falls es den Wert "111"
enthält, ist die Lesedatenlänge 8 Byte. Die Schreibadresse und 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 Adress-Koinzidenzerfassungsschaltung 5 erfaßt eine Koinzidenzsituation
zwischen Schreib- und Leseadressen in 8-Byte-Einheiten entsprechend der Speicherzugriffsbreite.
EPO COPY ft
Bine ^-Byte-Überschneidungserfassungsschaltung 6 erfaßt, ob
die zu lesenden Daten eine 4-Byte-Datengrenze überschneiden oder nicht. Die Bitstellen 0-3 und die ßitstellen 4-7
des Marken registers 2 werden jeweils mittels ODER-Gliedern 7 und 8 ODER-verknüpft.· Die Invertierschaltung 9 invertiert
den Wert der Bitstelle 29 des Leseadressregisters 3, das UND-Glied 10 verknüpft die Ausgänge der 4-Byte-Überschneidungserfassungsschaltung
6 mit dem Ausgang der Invertierschaltung 9 und das ODER-Glied 11 verknüpft mit einem logischen
ODER die Bitstelle 29 des Leseadressregisters 3 mit dem Ausgang des UND-Glieds 10. Die Ausgänge des ODER-Glieds 7 und
des Invertierglieds 9 werden durch eine UND-Schaltung 12 UND-verknüpft;
die Ausgänge der ODER-Glieder 8 und 11 werden durch ein UND-Glied 13 UND-verknüpft; die Ausgänge der UND-Glieder
12 und 13 werden durch eine ODER-Schaltung 14 ODER-verknüpft;
und die Ausgänge der Adress-Koinzidenzerfassungsschaltung 5
und der ODER-Schaltung 14 werden durch ein UND-Glied 15 UND-verknüpf t.
Im folgenden wird der Betrieb des in Figur 1 dargestellten
Ausführungsbeispiels beschrieben. Wir nehmen an, daß jeweils eine Schreibadresse und eine Schreibmarke im Schreibadressregister
1 bzw. im Markenregister 2 aufgrund eines zum Dateneinschreiben in den Speicher ausgegebenen Schreibbefehls
gespeichert sind und daß die erste Leseadresse und die Lesedaten-Bytelänge jeweils im Leseadressregister 3 bzw.
im Lesedaten-Längenregister 4 aufgrund eines nach dem Schreibbefehl ausgegebenen Lesebefehls gespeichert sind , um Daten
aus dem Speicher auszulesen. Die Adress-Koinzidenzerfassungsschaltung
5 vergleicht den Inhalt des Schreibadressregisters mit den Bitstellen 20 - 28 des Leseadressregisters 3, die
eine Adresse innerhalb einer Seite angeben. Wenn die Adresskoinzidenzerfassungsschaltung
5 Übereinstimmung gefunden hat, gibt sie eine "1" und anderenfalls eine "0" aus.
EPO COPY
Im dargestellten Ausführungsbeispiel werden logische Adressen
als Schreib- und Leseadressen verwendet und in das Schreibadressregister 1 bzw. das Leseadressregister 3 gesetzt. Man
weiß, daß in einem einen virtuellen Raum behandelnden Datenverarbeitungssystem
logische Adressen durch einen Speicherzugriff sbefehl spezifiziert werden und daß der Zugriff zum
realen Speicher mittels realer durch Übersetzung der logischen Adressen gewonnenen Adressen erfolgt. Nur der eine
Speicheradresse kennzeichende Teil der Bitstellen 0-19 wird übersetzt, d.h. daß die Bitstellen 20 - 31, die eine
Adresse innerhalb einer Seite angeben, logischen und realen Adressen gemeinsam sind. Die reale Adresse für den Zugriff
zum'/realen Speicher sollte zur Erfassung der Überlappung verwendet werden; da jedoch nach der Adressumsetzung 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 für die Adressumsetzung benötigte Zeitverzögerung zur Erfassung der Überlappung
tolerierbar ist.
Die Adress-Koinzidenzerfassungsschaltung verarbeitet eine logische Adresse, somit wird eine durch die Bitstellen ZO 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, daß 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 Adress-Koinzidenzerfassungsschaltung
5 auch die Schreibadress-Bits 0 - 28 mit den Leseadress-Bits 0. - 28 vergleichen.
Wenn die Adress-Koinzidenzerfassungsschaltung 5 eine "0"
"ausgibt überlappen sich die Operanden der Schreib- und Leseoperation
nicht innerhalb dor 8-Hyto-Grcnzc (Speichcrzugriffs-
EPO COPV
breiteneinheit) 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-Byte-Speichergrenze, falls das Ausgangssignal
der Adress-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 Figur 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, wenn 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 Figuren 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 jeweils "1" und "0". Wie Figur 2a zeigt, ist.das Bit 29 des Leseadressregist.es
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.
Figur 2b zeigt andererseits, daß das Bit 29 des Leseadressregisters
3 "1" ist, falls die Leseadresse ein willkürliches Byte
copy
der letzten 4 Byte innerhalb der 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 Adress-Koinzidenzerfassungsschaltung
5 "1" ist, eine "0" aus und es wird, angenommen, daß keine Überlappung erfaßt ist.
Figur 3 verdeutlicht die Operationen für einen Fall, bei dem in den Speicher zu schreibende, gültige Daten nur innerhalb
der letzten 4' Bytes eines 8-Byte-Bereichs stehen.
In diesem Fall sind die Ausgänge der ODER-Glieder 7 und 8 jeweils "0" bzw. "1". Gemäß der Darstellung in Figur 3a
ist der Wert der Bitstelle 29 des Leseadressregisters 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 11 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 Leseadressregisters 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 Lesedatenlänge verwendet. Falls eine Ü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 Leseadressregister
EPO COPY
und die Lesedatenlänge vom Register 4. Falls diese Eingangsgrößen eine der in Figur 4a aufgelisteten logischen Bedingungen
erfüllen, wird eine 4-Byte-Grenzüberschneidung angenommen. Falls eine der in Figur 4b aufgelisteten logischen Bedingungen
erfüllt ist, wird eine 4-Byte-Grenzüberschneidung als nicht erfaßt angenommen. Falls beispielsweise die Bits 30 und 31
des Leseadressregisters 3 "00 " sind (das Bit 29 ist "0") gibt die im Leseadressregister 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 5 Byte oder mehr ist (der Wert des Registers ist mindestens "100"). Falls die Lesedatenlänge gleich 4 Byte
oder kleiner ist (der Wert des Registers 4 ist höchstens "011")
wird eine 4-Byte-Grenzüberschneidung nicht angenommen. Falls die Bits 30 und 31 des Leseadressregisters 3 "01" 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 Leseadressregisters 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 ."010"), 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
"001"). Falls die Bitstellen 30 und 31 des Leseadressregisters 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 Lesendatenlä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 I.Byte beträgt (der Wert des Registers 4 ist "000").
EpO COPY
Wenn die 4-Byte-Überschneidungserfassungsschaitung 6 eine
4-Byte-Überschneidungssituation gemäß der obigen Beschreibung
erfaßt, gibt sie eine "1" und andernfalls eine "0" aus. Da Bit 29 des Leseadressregisters 3 dann "0" Ist, ist die IJND-Bedingung,
die das UND-Glied 10 durchführt, erfüllt, falls die 4-Byte-Überschneidungserfassungsscha1tung 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 "1" 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 15 über das ODER-Glied 14 "1". Damit
ist eine Überlappung erfaßt. Dieser Fall ist in Figur 3b dargestellt, wo die im Leseadressregister gespeicherte Adresse
Byte 1 im 8-Byte-Bereich angibt (die Bits 30 und 31 des Leseadressregisters
3 sind "01") und die Lesedaten 1änge 5 Byte
beträgt (der Wert des Registers 4 ist "100").
Falls andererseits die 4 Byte-Überschneidungserfassungsschaltung
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 Leseadressregisters 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-Glieds 7 "0" 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-Grenzc erfaßt
ist und die Adress-Koinz idenzerf assungsschal t.ung 5 eine "1" ausgibt. Dieser Fall ist in Figur 3c dargestellt, wo die im
Leseadressregister gespeicherte Adresse Byte 1 im 8-Bytc-Bereich angibt und die Lesedatenlänge 3 Byte beträgt (der
Wert des Registers 4 ist "010").
CUPY
Beim vorliegenden anhand der Figurenbeschriebenen Ausführungsbeispiels ist die Speicherzugriffsbreite als 8-Byte angenommen.
Die Erfindung ist jedoch nicht darauf beschränkt. Außerdem ist beim vorliegenden Beispiel die Überlappungserfassung für
die Schreib- und 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 Speicherzugriffsbreite
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 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.
EPO COPY
Claims (12)
- BEETZ & PARTNER -: ·" -· Patentanwälte
- Steinsdorfstr. 10 · D-8000 München 22 European Patent Attorneys 3421737
- Telefon (089) 227201 - 227244 - 295910 Dipl-Ing. R.
- BEETZ sen.
- Telex 522048 - Telegramm Allpat® München _ . o n___._.
- Ur.-lng. K. Dcbi^jun.
- R,_ofi o oft ρ Dr.-lng.W.TIMPE
- öl jo . j jo r DipL-Ing. J. SIEGFRIED
- Priv.-Doz. Dipl.-Chem. Dr. rer. nat. W. SCHMITT-FUMIAN
- DipL-Ing. K.
- LAMPRECHT 11981
- 12. Juni 1984PatentansprücheM.) Vorrichtung zur Erfassung von Operandenüberlappungen in einem Speicher eines Pipeline-Datenverarbeitungssystems, -"geköTinf?"e ichnet durchein erstes Register (1) in das eine Schreibadresse des Speichers,die durch einen Schreibbefehl gekennzeichnet ist, gesetzt wird,ein zweites Register (2), in das eine Schreibmarke gesetzt wird, die in einer Speicherzugriffsbreite in Byte-Einheiten die Anwesenheit oder Abwesenheit von Schreibdatenblöcken angibt,ein drittes Register (3) in das eine Leseadresse des Speichers gesetzt wird, die durch einen dem Schreibbefehl folgenden Lesebefehl spezifiziert ist,ein viertes Register "(4) in das die Länge eines durch die im dritten Register (3) gesetzte Leseadresse als erste Adresse adressierten Datenblocks gesetzt wird, ·ein erste Erfassungseinrichtung(5) die aufgrund der .im ersten Register (1) gesetzten Schreibadresse und der im dritten Register C3) gesetzten Leseadresse erfaßt, ob sich die Operanden, zu denen im Speicher zugegriffen werden soll, in Zugriffsbreiteneinheiten überlappen oder nicht,81-A8763-02/AtAlEPO COPYeine zweite Erfassungseinrichtung (6 - 14), die aufgrund der im zweiten Register (2) gesetzten Schreibmarke, von Bitstellen, die eine Adresse innerhalb der Zugriffsbreiteneinhei.t der Leseadresse im dritten Register (3) angeben und der Lesedatenlänge im vierten Register (4) erfaßt, ■ ob sich die Operanden innerhalb eines Bereichs der Zugriff sbreiteneinheit überlappen oder nicht, undeine Einrichtung (15), die aufgrund der Bedingung, daß die erste Erfassungseinrichtung (5) und die zweite Erfassungseinrichtung (6 - 14) eine Überlappung erfassen, ein Ausgangssignal ausgibt, das die Operandenüberlappung anzeigt.2. Vorrichtung nach Anspruch 1 ,
dadu.rch 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 - 10), die die Teileinheit aufgrund von Bitstellen, die eine Adresse innerhalb der Zugriffsbreiteneinheiten angeben und der Lesedatenlänge angibt, undeine Einrichtung, die eine Überlappung innerhalb der Zugriffseinheit aufgrund der durch die erste Logik (7, 8) und die zweite Logik (6, 9-10) gelieferten Information ■erfaßt.3. Vorrichtung nach Anspruch 2,
dadurch gekennzeichnet,daß die erste Logik (7, 8) eine ODER-Einrichtung aufweist, die die Schreibmarke in jeder Teileinheit ODER-verknüpft.* COPY4. Vorrichtung nach Anspruch 1 ,dadurch gekennzeichnet, daß die Schreib- und Leseadressen logische Adressen anheben.-,. Vorrichtung nach Anspruch 4,dadurch gekennzeichnet,daß die Adressen einen Seitenadressteil (Bitstellen 0-19) einen Teil für eine Adresse innerhalb einer Seite (Bitsteilen 20 - 28) und einen Teil für eine Adresse in Zugriff sbreiteneinheit (Bitstellen 29 - 31) aufweisen, unddaß die erste Erfassungseinrichtung (5) eine Einrichtung enthält, die eine 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. ·EPO COPY 01
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 true DE3421737A1 (de) | 1984-12-13 |
DE3421737C2 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0550289A2 (de) * | 1992-01-02 | 1993-07-07 | Amdahl Corporation | Mechanismus zur Entdeckung von Speicherbefehlen in einem Befehlsstrom |
EP0727737A2 (de) * | 1995-02-14 | 1996-08-21 | Hal Computer Systems, Inc. | Adressierungsverfahren zur nicht-sequentiellen Ausführung von Ladebefehlen hinsichtlich Speicherungsbefehlen |
Families Citing this family (12)
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 |
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 |
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
Non-Patent Citations (1)
Title |
---|
Computing Surveys, Vol. 9, No. 1, March 1977, S. 70-73 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0550289A2 (de) * | 1992-01-02 | 1993-07-07 | Amdahl Corporation | Mechanismus zur Entdeckung von Speicherbefehlen in einem Befehlsstrom |
EP0550289A3 (en) * | 1992-01-02 | 1993-11-10 | Amdahl Corp | A mechanism to detect stores into the instruction stream |
EP0727737A2 (de) * | 1995-02-14 | 1996-08-21 | Hal Computer Systems, Inc. | Adressierungsverfahren zur nicht-sequentiellen Ausführung von Ladebefehlen hinsichtlich Speicherungsbefehlen |
EP0727737A3 (de) * | 1995-02-14 | 1999-11-17 | Hal Computer Systems, Inc. | Adressierungsverfahren zur nicht-sequentiellen Ausführung von Ladebefehlen hinsichtlich Speicherungsbefehlen |
Also Published As
Publication number | Publication date |
---|---|
US4670836A (en) | 1987-06-02 |
JPS59231652A (ja) | 1984-12-26 |
DE3421737C2 (de) | 1986-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69505717T2 (de) | Verfahren und Vorrichtung zur Feststellung und Durchführung von kreuzweisen Unterprogrammanrufen | |
DE2521289C2 (de) | Datenverarbeitungsanordnung mit Datenfeld-Hilfsprozessor | |
DE3151745C2 (de) | ||
DE3421737A1 (de) | Vorrichtung zur erfassung von operandenueberlappungen | |
DE69509024T2 (de) | Emulator mit Detektierungsmechanismus eines illegalen Zugriffs auf ein Spezialregister | |
DE3228405C2 (de) | Steuerung für einen Emulator zur Entwicklung von Mikroprozessorsystemen | |
DE2644441A1 (de) | Datenverarbeitungssystem | |
DE3900187A1 (de) | Ein-chip-mikrocomputer | |
DE2556661A1 (de) | Steuerschaltung mit adressenerweiterung | |
DE69119149T2 (de) | Struktur zur direkten Speicher-zu-Speicher-Übertragung | |
DE3718750A1 (de) | Datenverarbeitungssystem mit adressenumsetzung | |
DE68924883T2 (de) | Mikroprozessor mit Befehlspipeline. | |
DE4117672A1 (de) | Verfahren und vorrichtung zur steuerung eines zwischen einer zentraleinheit und einem arbeitsspeicher angeordneten cache-speichers | |
DE2134816A1 (de) | Einrichtung zur adressenuebersetzung | |
DE3689217T2 (de) | Datenverarbeitungseinrichtung mit einer Schaltung zur Prüfung der Adressgrenzen in einem virtuellen Speicher. | |
DE2617485C3 (de) | Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen | |
DE3932695A1 (de) | Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ | |
DE3226214C2 (de) | Datenverarbeitungsanlage | |
DE2723706A1 (de) | Einrichtung zum adressenvergleich | |
DE3486276T2 (de) | Verfahren zum Steuern eines Pufferspeichers in einem Datenverarbeitungsgerät. | |
DE69028655T2 (de) | Pipelineprozessor und Pipelineverarbeitungsverfahren | |
DE3121046A1 (de) | Arithmetik-logikeinheit mit bit-manipulation | |
DE2702722A1 (de) | Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen | |
DE3340956C2 (de) | ||
DE2349253C3 (de) | Rechnersystem |
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 |