DE3421737C2 - Vorrichtung zur Ermittlung einer Überlappung von Operanden - Google Patents

Vorrichtung zur Ermittlung einer Überlappung von Operanden

Info

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
Application number
DE3421737A
Other languages
English (en)
Other versions
DE3421737A1 (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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining 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)

Patentansprüche:
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,
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 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)

* 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
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)

* 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

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