DE3226214C2 - Datenverarbeitungsanlage - Google Patents

Datenverarbeitungsanlage

Info

Publication number
DE3226214C2
DE3226214C2 DE3226214A DE3226214A DE3226214C2 DE 3226214 C2 DE3226214 C2 DE 3226214C2 DE 3226214 A DE3226214 A DE 3226214A DE 3226214 A DE3226214 A DE 3226214A DE 3226214 C2 DE3226214 C2 DE 3226214C2
Authority
DE
Germany
Prior art keywords
operand
byte
read
address
main memory
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
DE3226214A
Other languages
English (en)
Other versions
DE3226214A1 (de
Inventor
Hideo Hadano Sawada
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 DE3226214A1 publication Critical patent/DE3226214A1/de
Application granted granted Critical
Publication of DE3226214C2 publication Critical patent/DE3226214C2/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
    • 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/383Operand prefetching

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)

Abstract

Die Erfindung betrifft ein Verfahren für ein arithmetisches Betriebssystem und eine arithmetische Verarbeitungseinrichtung zur schnellen Ausführung eines Befehls, dessen Operand eine arithmetische Operation betrifft, die in einem Hauptspeicher (1) gespeichert ist. Ein für die nachfolgende arithmetische Verarbeitung nötiger Operand wird aus dem Hauptspeicher (1), vor dem Einschreiben eines Verarbeitungszwischen ergebnisses in den Hauptspeicher, ausgelesen, so daß die nachfolgende arithmetische Verarbeitung und das Einschreiben des Verarbeitungszwischenergebnisses sich zeitlich überlappen.

Description

  • Die Erfindung betrifft eine Datenverarbeitungsanlage gemäß dem Oberbegriff des Anspruchs 1.
  • Eine solche Datenverarbeitungsanlage ist aus dem US-Buch "Introduction to Computer Architecture" Science Research Associates Inc., S. 383-393 bekannt.
  • In einer herkömmlichen Datenverarbeitungsanlage wird zur Ausführung eines Befehls zur Verarbeitung von in einem Hauptspeicher stehenden Operanden (weiterhin Speicher- Speicher-Befehl [SS] genannt) ein Teil eines ersten Operanden und ein Teil eines zweiten Operanden aus dem Hauptspeicher geholt, darauf werden die Daten in einer Datenbreite auf die die Datenverarbeitungseinheit gleichzeitig zugreifen kann verarbeitet, ein Ergebnis in dieser Datenbreite in ein erstes Operandenfeld im Hauptspeicher eingeschrieben, eine Zugriffsadresse dann überschrieben, um einen zusätzlichen Teil des ersten Operanden zu holen und die obigen Operationen solange wiederholt, bis eine gegebene Datenlänge verarbeitet ist.
  • Entsprechend wird das Holen der nachfolgenden Operanden verzögert, bis das Einschreiben des Ergebnisses beendet ist, und die Datenverarbeitung wird unterbrochen, da die zu verarbeitenden Daten fehlen. Daraus ergibt sich, daß die Ausführung des SS-Befehls lange Zeit braucht.
  • In dem genannten US-Buch "Introduction to Computer Architecture" wird anhand der Datenverarbeitungsanlagen 7094 und 360 von IBM und der UNIVAC LARC eine Überlappung von Befehlsauslese-, Befehlsdecodierung und Datenauslese- sowie Ausführungszyklen in mehreren Möglichkeiten beschrieben. Eine Möglichkeit, um die Speicherzugriffszeit für die überlappende Verarbeitung zu verkürzen, besteht darin, zwei separate Speicherworte jeweils in einer geradzahlig und einer ungeradzahlig adressierten Speicherbank vorzusehen (7094 II von IBM, beschrieben anhand der Fig. 9-5 auf Seite 384).
  • Auch das IBM-System 360, Modell 75 verwendet eine zweifache Überlappung von Befehlsauslese-, Befehlsdecodierung und Datenauslese- sowie Befehlsausführungszyklen.
  • Das genannte US-Buch erwähnt auch, daß bei solcher überlappender Verarbeitung das eigentliche Problem in dem Speicherzugriff besteht.
  • Als weiteres Beispiel einer überlappenden Befehlsverarbeitung führt das genannte US-Buch die Verarbeitung im Pipeline-Betrieb an.
  • Eine Pipeline-Verarbeitung kommt jedoch bei dem Anmeldungsgegenstand nicht in Betracht.
  • Eine Erfassungseinheit, die aktiv wird, wenn für die Ausführung desselben Befehls das Einschreiben eines durch die Verarbeitung eines Teils des Operanden angefallenen Verarbeitungsteilergebnis in den Hauptspeicher in derselben Befehlsausführungsphase mit dem Auslesen eines weiteren Teils des Operanden in der vorgegebenen Phase angefordert wird, oder eine Prioritätseinrichtung, die das Einschreiben des Verarbeitungsteilergebnisses in den Hauptspeicher nach dem Auslesen des weiteren Operandenteils so steuert, daß die Verarbeitung für den ausgelesenen weiteren Operandenteil überlappend mit der Einschreiboperation ausgeführt werden kann, ist in dem genannten US-Buch nicht beschrieben.
  • Der Erfindung liegt die Aufgabe zugrunde, bei einer Datenverarbeitungsanlage der gattungsgemäßen Art die Ausführungszeit für Befehle bei längeren Operanden zu verkürzen.
  • Diese Aufgabe wird bei einer gattungsgemäßen Datenverarbeitungsanlage erfindungsgemäß durch die im Kennzeichen des Anspruchs 1 angegebenen Merkmale gelöst.
  • Die Unteransprüche 2 bis 8 kennzeichnen jeweils eine vorteilhafte Ausbildung davon.
  • Die Erfindung wird im folgenden anhand der Zeichnung näher beschrieben. Es zeigen:
  • Fig. 1 ein Format eines SS-Befehls,
  • Fig. 2 ein Blockschaltbild einer Datenverarbeitungsanlage gemäß der Erfindung,
  • Fig. 3 Einzelheiten peripherer Schaltkreise eines in Fig. 2 dargestellten Datenleseregisters und eines ersten Operandenregisters.
  • Fig. 4 eine Verarbeitungszeittabelle einer herkömmlichen Datenverarbeitungsanlage und
  • Fig. 5 eine Verarbeitungszeittabelle bei der vorgeschlagenen Datenverarbeitungsanlage.
  • Fig. 1 zeigt ein typisches Beispiel des Formats eines Speicher- Speicher-Befehls. Ein Operandenfeld ist 8 Bit breit und enthält einen Befehlscode, der eine mit Operanden durchgeführte Verarbeitung kennzeichnet. Ein L-Feld ist 8 Bit breit und bezeichnet eine Länge von zu verarbeitenden Operanden und enthält eine Binärzahl, die gleich der Operandenlänge minus eins ist. Demgemäß können 1 bis 256 Byte (ein Byte besteht aus 8 Bits) Operanden vom L-Feld gekennzeichnet werden. Ein ADR 1-Feld und ein ADR 2-Feld sind jeweils 16 Bit breit und kennzeichnen Startadressen jeweils eines ersten und eines zweiten Operanden. Demgemäß befinden sich die zur arithmetischen Verarbeitung gehörenden Operanden jeweils in ADR 1~ADR 1+L und ADR 2~ADR 2+L und die Operanden werden bei anwachsenden Adressen verarbeitet. Ein Verarbeitungsergebnis wird in ein erstes Operandenfeld eingeschrieben.
  • Anhand der Fig. 2 bis 5 wird nun eine Ausführung der vorgeschlagenen Datenverarbeitungsanlage beschrieben.
  • Fig. 2 zeigt ein Blockschaltbild einer Ausführungsart der Datenverarbeitungsanlage. Mit dem Bezugszeichen 1 ist ein Hauptspeicher (MS), in dem Operanden für den SS-Befehl und Befehle gespeichert sind, bezeichnet. Der Zugriff zum Hauptspeicher 1 kann gleichzeitig 8 Byte über einen MS-Adreßbus 53 umfassen und die Lesedaten werden in ein 8 Byte tiefes Lesedatenregister (MSRDR) 5 über einen 8 Byte breiten Lesebus 2 geladen. 8 Byte breite Schreibdaten werden von einem Schreibdatenregister (MSWDR) 4 dem Hauptspeicher 1 über einen Schreibbus 3 geliefert. Das Bezugszeichen 10 bezeichnet ein 8 Byte breites erstes Operandenregister (FOPR). Zum Setzen des Operanden werden die Bytes im MSRDR 5 an das FOPR 10 über MSRDR-Ausgangsleitungen 101-108, FOPR-Eingabewähler 111-118, von denen jeweils einer für jedes Byte des FOPR 10 vorgesehen ist und Datenleitungen 121-128 übertragen. Das Bezugszeichen 20 bezeichnet ein 8 Byte breites zweites Operandenregister (SOPR). Die Bytes im MSRDR 5 werden an das SOPR 20 gleichzeitig zu 8 Bytes über einen 8 Byte breiten MSRDR-Datenbus 21 übertragen.
  • Die in das FOPR 10 und das SOPR 20 geladenen Operanden werden an eine Arithmetik-Logik-Einheit (ALU) 31 mit 1 Byte breiten Eingängen über Wähler 32 und 33, von denen jeder 1 Byte vom entsprechenden 8 Byte breiten Register auswählt, angelegt.
  • Die ALU 31 führt eine Arithmetik-Logik-Operation mit den Eingabedaten gemäß einer in einem Befehlscoderegister (F) 30 gespeicherten Operation, aus und erzeugt Ausgangsdaten auf einer 1 Byte breiten ALU-Ausgangsleitung 34.
  • Die Ausgangsdaten der ALU 31 werden zu den Byte-Stellen des FOPR 10, in denen die ALU-Eingangsdaten gespeichert waren, über die FOPR-Eingabewähler 111-118, die Setzsignale nur zu diesen Byte-Stellen hinzufügen, gesendet. Der so in das FOPR 10 geladene Operand wird der ALU 31 1-Byte- weise geliefert und die ALU-Ausgangsdaten in die Byte- Stellungen 1-Byte-weise eingeschrieben. Wenn das Einschreiben des Ergebnisses beendet ist, werden ein Erstoperanden-Byte-Zeiger (FBP) 141 und ein Zweitoperanden- Byte-Zeiger (SBP) 241, die die Byte-Stellen des FOPR 10und des SOPR 20 jeweils kennzeichnen, um eines inkrementiert. Die Funktionen des FBP 141 und des SBP 241 werden später erklärt.
  • Am Schluß jeder 1-Byte-Verarbeitung wird ein nicht verarbeiteter Byte-Zähler (BCNT) 40 mit einer Subtrahier- Ausgangsleitung 43 eines Subtrahierers 41 über einen BCNT- Eingangswähler 42 verbunden, so daß der Inhalt des BCNT 40 um eins dekrementiert wird.
  • Beim Lesen oder Schreiben des ersten Operanden wird die Zugriffsadresse zum MS 1 von einem ersten Operandenadreßregister (FMSAR) 50 über einen Adreßwähler 52 und den MS- Adreßbus 53 dem MS 1 angelegt. Der MS-Adreßbus 53 ist auch mit einem Eingang eines Adressenaddierers-Subtrahierers (AA) 54, der die MS-Zugriffsadressen auffrischt, verbunden.
  • Beim Lesen des zweiten Operanden wird ein Inhalt eines zweiten Operandenadreßregisters (SMSAR) 51 als die MS-Zugriffsadresse verwendet.
  • Der Adressenaddierer-Subtrahierer 54 empfängt die Adresse vom FMSAR 50 oder dem SMSAR 51 an einem seiner Eingänge und eine Konstante (0, 8 oder 16) von einem Konstantengenerator (C) 58 am anderen Eingang. Der Adressenaddierer-Subtrahierer 54 kann eine Addieroperation und eine Subtrahieroperation durchführen. Die Operationsart und der Wert der Konstanten des Generators 58 werden von einer (nicht gezeigten) Systemsteuerung bestimmt, die die Verarbeitungen des Systems, gesteuert von einem Mikroprogramm, regelt.
  • Der Ausgang des Adressenaddierer-Subtrahierer 54 ist zum Eingangsregister über eine AA-Ausgangsleitung 55, einen Adreßregister-Eingangswähler 56und eine Adreßregister-Eingangsleitung 57 zurückgeführt, so daß das Adreßregister aufgefrischt wird.
  • Fig. 3 zeigt Einzelheiten peripherer Schaltungen des MSRDR 5 und des FOPR 10, die in Fig. 2 gezeigt sind.
  • Das FBP 141 steuert den Wähler 32, der ein Byte, das an die ALU 31 geliefert wird, auswählt. Zu Beginn der Ausführung des Befehls wird die erste Operandenadresse, das sind die drei niederwertigen Bits des FMSAR 50, in das FBP 141 geladen, das ein dekodiertes Signal erzeugt. Wenn der Inhalt des FBP 141 in binärer Schreibweise "000" ist, so kennzeichnet dies die erste Byte-Stelle oder die höchstwertige Byte-Stelle (an der Daten mit der kleinsten Adresse gespeichert sind) des FOPR 10. Wenn der Inhalt des FBP 141 "010" ist, so kennzeichnet dieser die dritte Byte-Position und wenn er "111" ist, wird die achte Byte-Position oder die niederwertigste Byte-Position spezifiziert.
  • Der Ausgang 140 des FBP 141 wird ebenfalls an die FOPR- Eingangswähler 111-118 angelegt, um den ALU-Ausgang in die gekennzeichneten Stellen des FOPR 10 (die identisch mit den für die Eingänge der ALU 31 gekennzeichneten Byte- Stellen sind) einzuschreiben.
  • Wenn die 8 Bytes des MSRDR 5 parallel ausgewählt werden sollen, geben die FOPR-Eingabewähler 111-118 ein 8-Byte- Setzsignal 132 aus und unterdrücken ein 1-Byte-Setzsignal 131, so daß die Bytes vom MSRDR 5 an das FOPR 10 übertragen werden. Auf der anderen Seite wird, wenn 1 Byte von der ALU 31 eingeschrieben werden soll, das Byte nur in ein Byte eingeschrieben, das von dem FBP 141 mittels UND- Schaltungen, gesteuert vom Ausgang 140 des FBP 141, dem Ausgang 34 der ALU 31 und dem 1-Byte-Setzsignal 131 gekennzeichnet wird.
  • Am Ende jeder 1-Byte-Verarbeitung wird der Inhalt des FBP 141 um eins durch einen Addierer 142 inkrementiert. Wenn der Inhalt des FBP 141 "111" in binärer Schreibweise erreicht, wird er zyklisch auf "000" gesetzt.
  • Das SPB 241 für den zweiten Operanden ist für den SOPR 20 in gleicher Weise wie für den FOPR 10 vorhanden. Die Operationen des SOPR 20 und des SBP 241 sind mit denen des FOPR 10 und des FBP 141 identisch mit der Ausnahme, daß die 1-Byte-Schreiboperation von der ALU 31 nicht ausgeführt wird. Deshalb fehlt an dieser Stelle die Beschreibung dieser Operation.
  • Ein MCC 200 stellt eine Speichersteuerschaltung dar, das die Zugriffe zum MS 1, gesteuert von einem Mikroprogramm, steuert und ist ein Teil der Systemsteuerung. Dem MCC 200 liegen Ausgänge des FBP 141, SBP 241 und BCNT 40 an. Das MCC 200 erfaßt die Anwesenheit einer Schreibanforderung, wenn der Inhalt des BCNT 40 gleich 0 oder der Inhalt des FBP 141 gleich "000" ist sowie die Anwesenheit einer Leseanforderung, wenn der Inhalt des FBP 141 gleich "000" oder der Inhalt des SBP 241 gleich "000" ist.
  • Der im MS 1 gespeicherte SS-Befehl tritt auf dem Datenbus 60 ein-Byte-weise über den Datenlesebus 2, das MSRDR 5, den Datenbus 21, das SOPR 20, den Wähler 33, die ALU 31 und die ALU-Ausgangsleitung 34 auf und wird dann so übertragen, daß Teile von ihm, die sich auf die entsprechenden, in Fig. 1 gezeigten Felder beziehen, in das F 30, das BCNT 40, das FMSAR 50, das FBP 141, das SMSAR 51 und das SBP 241 geladen werden. Bei dieser Operation gehen die Daten lediglich durch die ALU 31.
  • Zum Vergleich ist nachfolgend eine Operationsfolge eines herkömmlichen Systems dargestellt:
    • Schritt 1: Lies den ersten Operanden (MS →MSRDR →FOPR)
      Schritt 2: Lies den zweiten Operanden SMSAR +8 →SMSAR (MS →MSRDR →SOPR)
      Schritt 3: Wähle Bytes durch das FBP, SBP aus
      Schritt 4: 1-Byte-Verarbeitung durch ALU. Ergebnis →FOPR
      Schritt 5: FBP + 1 →FBP. SBP +1 →SBP
      Schritt 6: Falls BCNT = 0 fahre fort mit Schritt 15
      Schritt 7: BCNT-1 →BCNT
      Schritt 8: Falls FBP ≠0 und SBP ≠0 fahre mit Schritt 3 fort
      Schritt 9: Falls FBP ≠0 und SBP ≠0 fahre mit Schritt 2 fort
      Schritt 10: FOPR →MSWDR
      Schritt 11: Schreibe das Ergebnis in den MS. FMSAR +8 →FMSAR (MSWDR →MS)
      Schritt 12: Lies den ersten Operanden (vom FMSAR adressiert) (MS →MSRDR →FOPR)
      Schritt 13: Falls SBP = 0 ist, lies den zweiten Operanden (MS →MSRDR →SOPR) SMSAR +8 →SMSAR
      Schritt 14: Fahre mit Schritt 3 weiter
      Schritt 15: FOPR →MSWDR
      Schritt 16: Schreibe das Ergebnis in den MS (adressiert durch das FMSAR) (MSWDR →MS)
      Schritt 17: Ende des Befehls.

  • Bei jedem Schritt geht die Verarbeitung, falls keine bedingte Abfrage (Test) enthalten ist, mit dem nächsten Schritt weiter. Falls die Bedingung nicht erfüllt ist, fährt die Verarbeitung ebenfalls mit dem nächsten Schritt fort. Die Schritte stellen logische Verarbeitungen dar und jeder Schritt entspricht nicht einem Zyklus oder einem Mikroschritt der Verarbeitungseinheit.
  • Das FMSAR 50 wird überschrieben, wenn das Einschreiben des Ergebnisses in die erste Operandenstelle gekennzeichnet wurde und das SMSAR 51 wird überschrieben, wenn das Lesen des zweiten Operanden spezifiziert wurde. Beidesmal wird die Additionsverarbeitung im AA 54 ausgeführt.
  • Eine erfindungsgemäße Verarbeitungsfolge wird durch die folgenden Schritte beispielshaft dargestellt:
    • Schritt 1: Lies den ersten Operanden. FMSAR +8 →FMSAR (MS →MSRDR →FOPR)
      Schritt 2: Lies den zweiten Operanden. SMSAR +8 →SMSAR (MS →MSRDR →SOPR)
      Schritt 3: Wähle die Bytes aus durch FBP, und SBP
      Schritt 4: 1-Byte-Verarbeitung durch die ALU. Ergebnis →FOPR
      Schritt 5: FBP +1 →FBP. SBP +1 →SBP
      Schritt 6: Falls BCNT = 0 fahre fort mit Schritt 15
      Schritt 7: BCNT-1 →BCNT
      Schritt 8: Falls FBP ≠0 und SBP ≠0 fahre mit Schritt 3 fort.
      Schritt 9: Falls FBP ≠0 und SBP ≠0 fahre mit Schritt 2 fort.
      Schritt 10: FOPR →MSWDR
      Schritt 11: Lies den ersten Operanden. FMSAR -8 →FMSAR (MS →MSRDR →FOPR)
      Schritt 12: Falls SBP = 0 ist, lies den zweiten Operanden (MS →MSRDR →SOPR) SMSAR +8 →SMSAR
      Schritt 13: Schreibe das Ergebnis in das MS (adressiert vom FMSAR) (MSWDR →MS) FMSAR +16 →FMSAR
      Schritt 14: Fahre mit Schritt 3 fort. Schritt 15: FOPR →MSWDR, FMSAR-8 →FMSAR
      Schritt 16: Schreibe das Ergebnis in den MS (adressiert durch das FMSAR) (MSWDR →MS)
      Schritt 17: Ende des Befehls.

  • In den Schritten 1, 2, 11, 12 und 15 erzeugt der C 58 eine Konstante 8 und setzt sie in das AA 54 und im Schritt 13 erzeugt der C 58 eine Konstante 16 und setzt sie in das AA 54. Das AA 54 führt die Additionsverarbeitung in den Schritten 1, 2, 12 und 13 und die Subtraktionsverarbeitung in den Schritten 11 und 15 durch.
  • Die Merkmale der vorgeschlagenen Datenverarbeitungsanlage werden am deutlichsten durch Schritt 1 und die Schritte 10-15 dargestellt. Insbesondere prüft das MCC 200 den Inhalt des BCNT 40 in Schritt 6 und prüft den Inhalt des FBP 141 in den Schritten 8 und 9. Daraus ergibt sich, daß, wenn der Inhalt des BCNT 40 größer als Null ist und der Inhalt des FBP 141 gleich "000", das Lesen des ersten Operanden, der im darauffolgenden 8-Byte-Block (Tiefe) gespeichert ist, vor dem zeitaufwendigen Einschreiben des Ergebnisses erfolgt. Falls der Inhalt des SBP 241 in Schritt 12 zu "000" und dadurch die Notwendigkeit nachfolgender Daten erkannt wird, wird das Lesen des zweiten Operanden ebenfalls ausgeführt. Danach wird das Ergebnis eingeschrieben.
  • Das FMSAR 50 wird aufgefrischt, wenn das Auslesen des ersten Operanden, oder das Einschreiben des Ergebnisses in die erste Operandenstelle gekennzeichnet sind. In diesen Fällen führt das AA 54 die Addition oder Subtraktion aus. Das SMSAR 51 wird aufgefrischt, wenn das Auslesen des zweiten Operanden gekennzeichnet wird, wie es im herkömmlichen System erfolgt, und die Addition wird im AA 54 ausgeführt.
  • Ein spezielles Beispiel wird für eine herkömmliche und die vorgeschlagene Datenverarbeitung anhand der Fig. 4 und 5 beschrieben. In diesem speziellen Beispiel benötigt das Auslesen des MS 1 zwei Zyklen, das Einschreiben in den MS 1 sechs Zyklen, die ALU 31 kann ein Byte pro Zyklus verarbeiten, das L -Feld des Befehls enthält "7" (gibt die Verarbeitung von acht Bytes an), die niederwertigen drei Bits des ADR 1- Feldes enthalten eine Binärzahl "110" und die niederwertigen drei Bits des ADR 2-Feldes enthalten eine Binärzahl "000".
  • Zum Vergleich zeigt Fig. 4 ein Zeitdiagramm der Verarbeitung des herkömmlichen Systems. Das Auslesen des ersten und zweiten Operanden dauert 4 Zyklen und nach zwei Zyklen ALU-Verarbeitung wird eine Binärzahl "000" in das FBP 141 gesetzt. Das Einschreiben des Ergebnisses für das FBP = 0 braucht sechs Zyklen und das Auslesen des nachfolgenden ersten Operanden zwei Zyklen und nach sechs Zyklen ALU-Verarbeitung wird in das BCNT 40 Null gesetzt. Am Schluß braucht das Einschreiben des Ergebnisses für BCNT = 0 sechs Zyklen. So ergibt sich eine Summe von 26 Zyklen.
  • Fig. 5 zeigt ein Zeitdiagramm der Verarbeitung der vorgeschlagenen Datenverarbeitungsanlage. Das Auslesen des ersten und zweiten Operanden braucht vier Zyklen und die ALU-Verarbeitung zwei Zyklen. Das Einschreiben des Ergebnisses für FBP = 0 ist an diesem Punkt erlaubt, aber das Auslesen des nachfolgenden ersten Operanden wird zuerst in zwei Zyklen ausgeführt. Zu dieser Zeit sind die für die ALU-Verarbeitung nötigen Daten im FOPR 10 und dem SOPR 20 erhältlich und die ALU-Verarbeitung wird wieder aufgenommen. Die ALU-Verarbeitung benötigt sechs Zyklen. Das Einschreiben des Ergebnisses für FBP = 0 wird parallel mit der ALU-Verarbeitung in sechs Zyklen ausgeführt. Wenn die ALU-Verarbeitung beendet ist, wird eine Null in das BCNT 40 gesetzt und das Einschreiben des Ergebnisses für BCNT = 0 wird in sechs Zyklen ausgeführt. Auf diese Weise benötigt man insgesamt 20 Zyklen. Die vorgeschlagene Datenverarbeitungsanlage ist ebenfalls für die Ausführung von Befehlen geeignet, deren Operanden in anderen Speichern oder anderen Registern stehen.
  • Der in der vorgeschlagenen Datenverarbeitungsanlage verwendete Hauptspeicher kann ein magnetischer, elektrostatischer oder ein optischer Speicher, sowie ein Halbleiter- oder ein Plattenspeicher sein. Die vorliegende Erfindung ist besonders wirksam, wenn die Schreibzeit länger als die Lesezeit ist.
  • Beim beschriebenen Beispiel wird durch die vorgeschlagene Datenverarbeitungsanlage das Einschreiben und die nachfolgende ALU-Verarbeitung parallel ausgeführt und die Ausführungszeit des Befehls, verglichen mit dem herkömmlichen System, um sechs Zyklen verringert. Entsprechend wirkt sich dies in einer schnellen Befehlsausführung aus.

Claims (8)

1. Datenverarbeitungsanlage mit einer Überlappung von Befehlsausführungsphasen zur schrittweisen Verarbeitung von Operanden, die in mehreren Lesezyklen aus einem Hauptspeicher (1) in vorgegebener Byte-Tiefe ausgelesen, nach Maßgabe eines Befehls in Teilschritten in einer Arithmetik/Logik-Einheit (31) verarbeitet werden, wobei die Verarbeitungsteilergebnisse in den Hauptspeicher (1) eingeschrieben werden, dadurch gekennzeichnet, daß
- eine Erfassungseinheit (40, 141, 241) aktiv wird, wenn für die Ausführung desselben Befehls das Einschreiben eines durch die Verarbeitung eines Teils des Operanden angefallenen Verarbeitungsteilergebnisses in den Hauptspeicher (1) in derselben Befehlsausführungsphase mit dem Auslesen eines weiteren Teils des Operanden in der vorgegebenen Byte-Tiefe angefordert wird, wobei der weitere Operandenteil an Speicherstellen im Hauptspeicher (1) gespeichert ist, die den Speicherstellen des ersten Operandenteils folgen, und
- daß bei Aktivwerden der Erfassungseinheit (40, 141, 241)
- eine Prioritätseinrichtung (200) das Einschreiben des Verarbeitungsteilergebnisses in den Hauptspeicher (1) nach dem Auslesen des weiteren Operandenteils so steuert, daß die Verarbeitung für den ausgelesenen weiteren Operandenteil überlappend mit der Einschreiboperation ausgeführt werden kann.

2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet,
daß die Lesedauer kürzer als die Einschreibdauer des Hauptspeichers (1) ist.
3. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet,
daß das Operationsergebnis an Speicherstellen gespeichert wird, an denen der für die arithmetische und logische Operation ausgelesene Operandenteil gespeichert war.
4. Datenverarbeitungsanlage nach Anspruch 1 oder 2, dadurch gekennzeichnet,
daß die arithmetische Verarbeitung mit geringerer Datenbreite als die Operanden-Byte-Tiefe ausgeführt wird.
5. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet,
daß die im Hauptspeicher (1) gespeicherten Daten erste und zweite Operanden variabler Länge enthalten, die jeweils eine Operandenadresse und eine von einem Befehl gekennzeichnete Operandenlänge haben,
die Arithmetik/Logik-Einheit (31) eine vorgegebene Byte- Verarbeitungstiefe aufweist und die arithmetischen und logischen Operationen mit den aus dem Hauptspeicher (1) ausgelesenen ersten und zweiten Operanden so oft ausgeführt, wie die durch den jeweiligen Befehl gekennzeichnete Operandenlänge angibt,
eine Operandenlängen-Fortschreibeeinrichtung (40, 41) die vom Befehl angegebene Operandenlänge der ersten und zweiten Operanden hält und diese bei jeder von der Arithmetik/Logik-Einheit (31) ausgeführten Arithmetik/Logik-Operation fortschreibt,
eine Operandenadressen-Fortschreibeeinrichtung (141, 241) die Operandenadresse jedes Operanden fortschreibt, ein Leseregister (10, 20) die aus dem Hauptspeicher (1) gelesenen ersten und zweiten Operanden hält und sie der Arithmetik/Logik-Einheit (31) in vorgegebener Byte-Tiefe eingibt,
ein Schreibregister (4) das von der Arithmetik/Logik- Einheit erhaltene Operationsergebnis in den Hauptspeicher (1) in dessen erste Operandenposition in der vorgegebenen Byte-Tiefe einspeichert,
eine erste und zweite Operandenadressiereinrichtung (50, 51) eine Speicherzugriffsadresse kennzeichnen, und die Prioritätseinrichtung (200) Mittel aufweist, die auf die Ausgänge der Operandenlängen-Fortschreibeeinrichtung und der Operandenadressen-Fortschreibeeinrichtung anspricht und die Lese- und Schreiboperationen im Hauptspeicher (1) so steuert, daß
wenn der erste Lesezugriffszyklus für die vorgegebene Byte-Tiefe des jeweiligen Operanden beendet ist, die erste und zweite Adressiereinrichtung (50, 51) jeweils die Operandenadresse des Hauptspeichers (51) fortschreiben und damit eine nachfolgende Leseadreßposition angeben, und
wenn der nachfolgende Lesezugriffszyklus in vorgegebener Byte-Tiefe des ersten Operanden aufgrund der Leseanforderung beendet ist, die erste Operandenadressiereinrichtung (50) die Operandenadresse des Hauptspeichers (1) zur Vorbereitung eines Schreibzugriffszyklus aufgrund der Schreibanforderung fortschreibt und die Adresse für die nachfolgende Leseoperation nach Beendigung des Schreibzugriffszyklus fortschreibt.

6. Datenverarbeitungsanlage nach Anspruch 5, dadurch gekennzeichnet, daß die Operandenadressen-Fortschreibeeinrichtung (141, 241) einen Byte-Zeiger (141) für einen ersten Operanden und einen Byte-Zeiger (241) für einen zweiten Operanden aufweist, die jeweils die Byte-Position für das Leseregister (10, 20) kennzeichnet, sobald eine Arithmetik/Logik-Operation ausgeführt wurde,
die Operandenlängen-Fortschreibeeinrichtung (40, 41) einen Byte- Zähler (40) für unverarbeitete Bytes aufweist, der die Anzahl unverarbeiteter Bytes des Operanden durch Vermindern des Inhalts des Zählers nach der Beendigung jeder Byte-Verarbeitung angibt, und
die Prioritätseinrichtung (200) die Anwesenheit einer Schreibanforderung erfaßt, wenn der Byte-Zähler (40) den Zählerstand Null hat oder wenn der Zeiger (141) für das erste Operanden-Byte eine vorbestimmte Byte-Position angibt und die Anwesenheit einer Leseanforderung erfaßt, wenn die Zeiger (141, 241) für das erste oder zweite Operanden-Byte die vorgegebene Byte-Position angeben.
7. Datenverarbeitungsanlage nach Anspruch 5, dadurch gekennzeichnet, daß die Byte-Verarbeitungstiefe der Arithmetik/Logik-Einheit (31) kleiner als die vorgegebene Byte-Tiefe jedes Operanden ist.
8. Datenverarbeitungsanlage nach Anspruch 6, dadurch gekennzeichnet,
daß die erste und zweite Adressiereinrichtung (50, 51) die Operandenadresse des Speichers nach Beendigung des ersten Lesezyklus fortschreiben, indem sie einen positiven Wert gleich der vorgegebenen Lese/Schreib-Byte-Tiefe zur laufenden Adresse addieren,
die erste Operandenadressiereinrichtung (50) die Operandenadresse des Hauptspeichers (1) nach dem Ende eines dem ersten Lesezyklus folgenden Lesezyklus fortschreibt, indem sie zur laufenden Adresse einen negativen Wert addiert, der gleich der vorgegebenen Lese/Schreib-Byte- Tiefe ist und dadurch einen Schreibzyklus vorbereitet, durch den ein von der Arithmetik/Logik-Einheit (31) gewonnenes Operationsergebnis in diejenige Adreßposition der vorgegebenen Byte-Tiefe eingeschrieben wird, an der der dem Operationsergebnis zugrundeliegende Operand gespeichert war und daß dann die erste Operandenadressiereinrichtung (50) die Adresse für die folgende Leseoperation durch Addition eines positiven Werts fortschreibt, der gleich der doppelten vorgegebenen Byte-Tiefe ist.
DE3226214A 1981-10-02 1982-07-13 Datenverarbeitungsanlage Expired DE3226214C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56156267A JPS5858653A (ja) 1981-10-02 1981-10-02 デ−タ処理装置

Publications (2)

Publication Number Publication Date
DE3226214A1 DE3226214A1 (de) 1983-04-21
DE3226214C2 true DE3226214C2 (de) 1987-04-23

Family

ID=15624069

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3226214A Expired DE3226214C2 (de) 1981-10-02 1982-07-13 Datenverarbeitungsanlage

Country Status (4)

Country Link
US (1) US4580238A (de)
JP (1) JPS5858653A (de)
DE (1) DE3226214C2 (de)
GB (1) GB2123995B (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6015746A (ja) * 1983-07-08 1985-01-26 Hitachi Ltd デ−タ処理装置
JPH0769818B2 (ja) * 1984-10-31 1995-07-31 株式会社日立製作所 デ−タ処理装置
US4739472A (en) * 1984-12-07 1988-04-19 Nec Corporation Information processing device capable of rapidly processing instructions of different groups
JPH0752390B2 (ja) * 1985-05-07 1995-06-05 株式会社日立製作所 命令処理装置
JPH0743648B2 (ja) * 1985-11-15 1995-05-15 株式会社日立製作所 情報処理装置
JPS62159274A (ja) * 1986-01-08 1987-07-15 Hitachi Ltd 条件分岐の分割・複写によるベクトル化方式
US4802085A (en) * 1987-01-22 1989-01-31 National Semiconductor Corporation Apparatus and method for detecting and handling memory-mapped I/O by a pipelined microprocessor
US5168571A (en) * 1990-01-24 1992-12-01 International Business Machines Corporation System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data
WO2001067235A2 (en) * 2000-03-08 2001-09-13 Sun Microsystems, Inc. Processing architecture having sub-word shuffling and opcode modification

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL136146C (de) * 1957-12-09
GB888732A (de) * 1959-12-30
GB1077339A (en) * 1965-04-05 1967-07-26 Ibm Control device for a data processor
GB1148471A (en) * 1965-04-05 1969-04-10 Ibm Data processing apparatus
US3840861A (en) * 1972-10-30 1974-10-08 Amdahl Corp Data processing system having an instruction pipeline for concurrently processing a plurality of instructions
US3903516A (en) * 1973-06-26 1975-09-02 Ibm Control logic for gas discharge display panel
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
CA1059639A (en) * 1975-03-26 1979-07-31 Garvin W. Patterson Instruction look ahead having prefetch concurrency and pipe line features
JPS51144142A (en) * 1975-06-06 1976-12-10 Hitachi Ltd Information processing
US4168523A (en) * 1975-11-07 1979-09-18 Ncr Corporation Data processor utilizing a two level microaddressing controller
DE2704560C2 (de) * 1977-02-03 1979-01-18 Siemens Ag, 1000 Berlin Und 8000 Muenchen Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen
JPS5440537A (en) * 1977-09-07 1979-03-30 Hitachi Ltd Pipeline control system
JPS5447438A (en) * 1977-09-21 1979-04-14 Mitsubishi Electric Corp Control system for scratch memory
US4167779A (en) * 1978-03-10 1979-09-11 Digital Equipment Corporation Diagnostic apparatus in a data processing system
US4197579A (en) * 1978-06-06 1980-04-08 Xebec Systems Incorporated Multi-processor for simultaneously executing a plurality of programs in a time-interlaced manner
CA1127315A (en) * 1978-10-27 1982-07-06 Shigeyuki Unagami Digital signal processing system with overlap processings
US4313158A (en) * 1978-12-11 1982-01-26 Honeywell Information Systems Inc. Cache apparatus for enabling overlap of instruction fetch operations
CA1134952A (en) * 1979-04-24 1982-11-02 Thomas E. Kloos Means and method within a digital processing system for prefetching both operation codes and operands
JPS5621240A (en) * 1979-07-27 1981-02-27 Hitachi Ltd Information processor

Also Published As

Publication number Publication date
JPH0363092B2 (de) 1991-09-30
US4580238A (en) 1986-04-01
GB2123995A (en) 1984-02-08
DE3226214A1 (de) 1983-04-21
GB2123995B (en) 1985-11-13
JPS5858653A (ja) 1983-04-07

Similar Documents

Publication Publication Date Title
DE69129565T2 (de) Hochleistungsfähiger Emulator mit Pipelining
DE3751503T2 (de) Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE3587277T2 (de) System fuer die umgehungssteuerung beim pipelinebetrieb eines computers.
DE3151745C2 (de)
DE2521289C2 (de) Datenverarbeitungsanordnung mit Datenfeld-Hilfsprozessor
DE3210816C2 (de)
DE3424962C2 (de)
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE3689595T2 (de) Datenverarbeitungssystem.
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE3781794T2 (de) Vorrichtung und verfahren zum versehen eines cachespeichers mit einer schreiboperation mit zwei systemtaktzyklen.
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE69033131T2 (de) Logikvorrichtung und Verfahren zur Verwaltung einer Befehlseinheit in einer Pipeline-Verarbeitungseinheit
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE2714805A1 (de) Datenverarbeitungssystem
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE69616718T4 (de) Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten
DE2332971C2 (de) Mikroprogrammsteuereinrichtung
DE3856139T2 (de) Mikroprozessor
DE3226214C2 (de) Datenverarbeitungsanlage
DE69618831T2 (de) ECC-geschützte Speicherorganisation mit Lese-Änderungs-Schreib-Pipelinezugriff
DE68924883T2 (de) Mikroprozessor mit Befehlspipeline.

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