DE3421737A1 - Vorrichtung zur erfassung von operandenueberlappungen - Google Patents

Vorrichtung zur erfassung von operandenueberlappungen

Info

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
Application number
DE19843421737
Other languages
English (en)
Other versions
DE3421737C2 (de
Inventor
Kanji Hadano Kubo
Kenichi Odawara Shiozaki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3421737A1 publication Critical patent/DE3421737A1/de
Application granted granted Critical
Publication of DE3421737C2 publication Critical patent/DE3421737C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining 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)

  1. BEETZ & PARTNER -: ·" -· Patentanwälte
  2. Steinsdorfstr. 10 · D-8000 München 22 European Patent Attorneys 3421737
  3. Telefon (089) 227201 - 227244 - 295910 Dipl-Ing. R.
  4. BEETZ sen.
  5. Telex 522048 - Telegramm Allpat® München _ . o n___._.
  6. Ur.-lng. K. Dcbi^jun.
  7. R,_ofi o oft ρ Dr.-lng.W.TIMPE
  8. öl jo . j jo r DipL-Ing. J. SIEGFRIED
  9. Priv.-Doz. Dipl.-Chem. Dr. rer. nat. W. SCHMITT-FUMIAN
  10. DipL-Ing. K.
  11. LAMPRECHT 11981
  12. 12. Juni 1984
    Patentansprüche
    M.) Vorrichtung zur Erfassung von Operandenüberlappungen in einem Speicher eines Pipeline-Datenverarbeitungssystems, -
    "geköTinf?"e ichnet durch
    ein 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/AtAl
    EPO COPY
    eine 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, und
    eine 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, und
    eine 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.
    * COPY
    4. 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, und
    daß 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
DE3421737A 1983-06-13 1984-06-12 Vorrichtung zur Ermittlung einer Überlappung von Operanden Expired DE3421737C2 (de)

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)

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

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

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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Computing Surveys, Vol. 9, No. 1, March 1977, S. 70-73 *

Cited By (4)

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