DE3931505C2 - Speichersteuerung in einer Datenverarbeitungsanlage - Google Patents

Speichersteuerung in einer Datenverarbeitungsanlage

Info

Publication number
DE3931505C2
DE3931505C2 DE3931505A DE3931505A DE3931505C2 DE 3931505 C2 DE3931505 C2 DE 3931505C2 DE 3931505 A DE3931505 A DE 3931505A DE 3931505 A DE3931505 A DE 3931505A DE 3931505 C2 DE3931505 C2 DE 3931505C2
Authority
DE
Germany
Prior art keywords
memory
data
main memory
address
transferred
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 - Fee Related
Application number
DE3931505A
Other languages
English (en)
Other versions
DE3931505A1 (de
Inventor
Jiro Imamura
Hiroyuki Okura
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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering 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, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Publication of DE3931505A1 publication Critical patent/DE3931505A1/de
Application granted granted Critical
Publication of DE3931505C2 publication Critical patent/DE3931505C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Bus Control (AREA)

Description

Die Erfindung betrifft eine Speichersteuerung in einer Datenverarbeitungsanlage nach dem Oberbegriff des Anspruchs 1.
Herkömmliche Datenverarbeitungsanlagen mit einer Spei­ cherkonfiguration, die zusätzlich zu einem Hauptspeicher einen Erweiterungsspeicher aufweist, enthalten einen Be­ fehlsprozessor (BP), eine Speichersteuerung (SS), einen Eingabe/Ausgabeprozessor (EAP), einen Hauptspeicher (HS) und einen Erweiterungsspeicher (ES). Der Erweiterungs­ speicher der Speicherkonfiguration solcher Datenverar­ beitungsanlagen ist funktional in der gleichen Kategorie angeordnet wie ein externer Speicher und wird als Bau­ stein zur Ausführung von Aufteilungen der Daten in Größen von je einer Seite.
Beispielsweise ist aus US 4476524-A (die JP 9276-A (1983) entspricht) eine Datenverarbeitungsanlage mit ei­ nem Erweiterungsspeicher dieses Typs bekannt. Diese Da­ tenverarbeitungsanlage ist mit einem Seitenübertragungs­ bus, der einen unabhängigen Datenweg zwischen dem Er­ weiterungsspeicher (Seitenspeicher) und dem Hauptspei­ cher darstellt, und mit einer Datenübertragungseinrich­ tung ausgerüstet. In diesem System kann eine Anlagenkon­ figuration verwirklicht werden, mit der die Daten zwi­ schen dem Erweiterungsspeicher und dem Hauptspeicher auf dem Seitenübertragungsbus übertragen werden.
Bei den Datenübertragungen zwischen dem Hauptspeicher und dem Erweiterungsspeicher mittels eines Übertragungsbefehls zum Übertragen der Daten muß die zu übertragende kleinste Dateneinheit eine Seite (4 KB (Kilobytes)) sein; auch die durch den Übertragungsbefehl angewiesene Hauptspeicheradresse muß sich an der Seitengrenze befinden.
Wenn der Erweiterungsspeicher für andere Zwecke als für den Seitenaufteilungsprozeß in der Datenverarbeitungs­ anlage verwendet werden soll, bereiten die Beschränkungen, die durch eine Seite als kleinster zwischen dem Hauptspeicher und dem Erweite­ rungsspeicher mittels des Übertragungsbefehls zu über­ tragender Dateneinheit und durch die Anordnung der Hauptspeicheradresse eines Operanden des Übertragungsbe­ fehls an der Seitengrenze gegeben sind, allerdings die folgenden Probleme:
  • (1) Wenn Daten zwischen dem Hauptspeicher und dem Erwei­ terungsspeicher in einer beliebigen Menge übertragen werden sollen, kann die Datenübertragungsverarbei­ tung zwischen einem Datenbereich und einem Arbeits­ bereich im Hauptspeicher beispielsweise mittels ei­ nes SCHIEBE-Befehls ausgeführt werden. Daher ist es möglich, im Erweiterungsspeicher den Datenbereich und im Hauptspeicher den Arbeitsbereich vorzusehen, um die von der Übertragungsbefehlverarbeitung be­ werkstelligte Datenübertragung zwischen dem Erwei­ terungsspeicher und dem Hauptspeicher mittels des SCHIEBE-Befehls zu ermöglichen. Bei der Implemen­ tierung eines neuen Programms, das den Übertragungs­ befehl für diese Verarbeitung enthält, hat jedoch die Tatsache, daß die kleinste Einheit für die Da­ tenübertragung zwischen dem Hauptspeicher und dem Erweiterungsspeicher mittels des Übertragungsbefehls 4 kB umfaßt, den Nachteil zur Folge, daß die von dem Programm in den Bereichen des Hauptspeichers und des Erweiterungsspeichers geforderte Kapazität ansteigt.
  • (2) Wenn ein herkömmliches bestehendes Programm modifi­ ziert wird und sowohl im Datenbereich als auch im Arbeitsbereich die Mehrzahl der Adressen einen 4- Byte-Grenzabstand oder einen 8-Byte-Grenzabstand aufweisen, müßte das Programm in großem Umfang modi­ fiziert werden. Eine solch große Modifikation des Programms ist jedoch praktisch unmöglich.
Durch die DE-Z Elektrotechnik, 22.8.85, Heft 4, Seiten 153-156, ist es bekannt geworden die Übertragung von Daten zwischen zwei Speichern durch einen von einem Prozessor ausgegebenen Befehl mit Übergabe der (realen) Adresse und der Anzahl der zu über­ tragenden Datenworte vorzubereiten worauf das Lesen der Daten aus dem einen Speicher und, nach Zwischenspeicherung, das Ein­ schreiben in den anderen Speicher unter der Zieladresse veran­ laßt wird.
Im DE-Buch U. Tietze Ch. Schenk, Halbleiter-Schaltungstechnik, 6. Auflage, Springer Verlag; Seiten 672 bis 675, wird die Ausgabe von Datenfeldern durch direkten Speicherzugriff (DMA) behandelt durch Steuerung der Adressenangabe mit einem Mikro­ prozessor beziehungsweise durch einen Zähler, der als Adreß- Generator wirkt.
Ähnliche Techniken der Datenübertragung sind in der DE-Firmen­ schrift der Siemens AG "Microcomputer Components", 1987, Seiten 635-665, Datenblatt SAB 82257, beschrieben.
Bei den vorstehend genannten Veröffentlichungen wird jedoch im Gegensatz zur vorliegenden Erfindung nicht das Problem be­ handelt, das sich ergibt, wenn ein seitenweise organisierter Erwei­ terungsspeicher bei der Übertragung einer Datenmenge verwendet wird, die nicht ein ganzes Vielfaches der Datenmenge einer Seite ist. Auch fehlen bei den genannten Veröffentlichungen Hinweise wann und wie Adressen umzuwandeln sind um einen raschen Daten­ transfer nicht zu hindern.
Aufgabe der Erfindung ist es, eine rasche Übertragung von Daten beliebiger Länge zwischen einem virtuell adressierten und in Seiten strukturierten Hauptspeicher und einem real adressierten, blockweise strukturierten Erweiterungsspeicher zu ermöglichen.
Diese Aufgabe wird gelöst durch die im Patentanspruch 1 angegebenen Merkmale.
Die Datenübertragungseinheit soll zwischen dem Haupt­ speicher und dem Erweiterungsspeicher Daten übertragen, indem an eine Firmware der Speichersteuerung (einer Mi­ kroprogrammsteuerung) eine reale Hauptspeicheradresse, die aus einer durch den Übertragungsbefehl vorgegebenen virtuellen Hauptspeicheradresse so übersetzt worden ist, daß sie auf eine vom Erweiterungsspeicher verarbeitete Dateneinheit abgestimmt ist, eine Anzahl von vom Haupt­ speicher zu übertragenden Daten, eine reale Erweite­ rungsspeicheradresse und eine Anzahl von vom Erweite­ rungsspeicher zu übertragenden Daten geschickt werden.
Wenn die Daten zwischen dem Hauptspeicher und dem Er­ weiterungsspeicher mit der den Befehlsprozessor, die Speichersteuerung, den Hauptspeicher und den Erweite­ rungsspeicher enthaltenden Datenverarbeitungsanlage übertragen werden, wobei die Speichersteuerung mit der Datenübertragungseinheit zur Übertragung von Daten durch den Befehl, der die zwischen dem Hauptspeicher und dem Erweiterungsspeicher zu übertragende Datenmenge vorgibt, versehen ist, so werden die Daten in der Größe einer Seite übertragen, so daß diese Daten von jeweils einer Seite durch eine einzige Operation übertragen werden, wobei die vom Hauptspeicher zu übertragenden Daten auf der Grundlage der virtuellen Hauptspeicheradresse, die durch den Übertragungsbefehl zur Übertragung zwischen dem Hauptspeicher und dem Erweiterungsspeicher vorgegeben wird, und auf der Grundlage der zwischen dem Hauptspei­ cher und dem Erweiterungsspeicher zu übertragenden Da­ tenmenge in Seiteneinheiten unterteilt werden. Wenn ei­ nerseits die unterteilte Seite die Seitengrenze über­ schreitet, wird die Seite weiter in zwei Blöcke unter­ teilt und die Anfangsadressen der beiden Blöcke in reale Hauptspeicheradressen übersetzt, die anschließend zusam­ men mit der Anzahl ihrer Bytes ebenso wie die reale Er­ weiterungsspeicheradresse und die Anzahl der vom Erwei­ terungsspeicher zu übertragenden Bytes an die Speicher­ steuerung geschickt werden, wobei die Daten auf die oben beschriebene Weise übertragen werden. Wenn andererseits die unterteilte Seite die Seitengrenze nicht überschrei­ tet, wird eine reale Hauptspeicheradresse, die mittels Adressenübersetzung einer Anfangsadresse der unterteil­ ten Seiten erhalten wurde, zusammen mit der Anzahl der zu übertragenden Bytes ebenso wie die reale Erweite­ rungsspeicheradresse und die Anzahl der zu übertragenden Bytes der Speichersteuerung zugeführt; die Daten einer Seite werden zwischen dem Hauptspeicher und dem Erwei­ terungsspeicher auf der Grundlage zweier realer Haupt­ speicheradressen, der Anzahl der zu übertragenden Bytes, der realen Erweiterungsspeicheradresse und der Anzahl der zu übertragenden Bytes, die alle der Speichersteue­ rung zugeführt werden, übertragen. Wenn die zu übertra­ gende Datenmenge, die durch den Übertragungsbefehl vor­ gegeben wird, eine Mehrzahl von Seiten umfaßt, wird die Datenübertragung durch eine analoge Übertragung der restlichen Seiten fortgesetzt.
Im einzelnen werden die Daten seitenweise zwischen dem Hauptspeicher und dem Erwei­ terungsspeicher durch eine einzige Operation übertragen, nachdem die Daten in Seiteneinheiten unterteilt worden sind, so daß die Daten vom Hauptspeicher zum Erweite­ rungsspeicher oder vom Erweiterungsspeicher zum Haupt­ speicher im Umfang einer Seite als einer Einheit der Da­ tenübertragung übertragen werden. In diesem Fall wird die gesamte Datenmenge vom Hauptspeicher durch Untertei­ lung dieser Menge in Seiteneinheiten auf der Grundlage der virtuellen Hauptspeicheradresse, die durch den Über­ tragungsbefehl zur Übertragung vom Hauptspeicher an den Erweiterungsspeicher und durch die Anzahl der zu über­ tragenden Daten vorgegeben ist, übertragen.
Mit anderen Worten kann die Datenübertragung vom Haupt­ speicher zum Erweiterungsspeicher auf die folgende Weise ausgeführt werden:
  • (1) Wenn die durch Teilung der Übertragungsdaten in Sei­ teneinheiten erhaltene Seite die Seitengrenze über­ schreitet, wird die Seite weiter in zwei zu übertra­ gende Blöcke unterteilt, während eine virtuelle An­ fangsadresse des vorderen Blocks und eine virtuelle Seitengrenzenadresse des hinteren Blocks in zwei Realadressen übersetzt werden, die anschließend zu­ sammen mit der Anzahl ihrer zu übertragenden Bytes, mit der realen Erweiterungsspeicheradresse und der 4 KB umfassenden Anzahl von zu übertragenden Bytes der Speichersteuerung zugeführt werden. Die Daten zweier Übertragungsblöcke werden vom Hauptspeicher geholt, gemischt und dann unter der realen Erweiterungsspei­ cheradresse gespeichert.
  • (2) Wenn die durch Unterteilung der Übertragungsdaten in eine Seiteneinheit erhaltene Seite die Seitengrenze nicht überschreitet, gibt es in der zu übertragenden Seite nur einen Block, so daß die virtuelle Anfangs­ adresse dieses Blocks in eine reale Hauptspeicher­ adresse übersetzt wird. Die reale Hauptspeicher­ adresse und die Anzahl ihrer zu übertragenden Bytes werden dann zusammen mit der realen Erweiterungs­ speicheradresse und der Anzahl ihrer zu übertragen­ den Bytes zur Speichersteuerung geschickt, wodurch die Daten des Übertragungsblocks vom Hauptspeicher geholt und unter der realen Erweiterungsspeicher­ adresse gespeichert werden.
    Wenn die zu übertragende Datenmenge, die durch den Übertragungsbefehl vorgegeben wird, eine Mehrzahl von Seiten umfaßt, wird die Verarbeitung durch die Kombination der obigen Prozedur (1) mit der obigen Prozedur (2) ausgeführt.
    Die Daten werden vom Erweiterungsspeicher zum Haupt­ speicher auf dieselbe Weise übertragen, wie oben in bezug auf die Übertragung vom Hauptspeicher zum Er­ weiterungsspeicher beschrieben worden ist, indem die zu übertragenden Daten durch die virtuelle Haupt­ speicheradresse und die zu übertragende Datenmenge in Seiteneinheiten unterteilt werden.
    Mit anderen Worten, die Datenübertragung vom Erwei­ terungsspeicher zum Hauptspeicher kann in die fol­ genden Abläufe unterteilt werden.
  • (3) Wenn bei der Unterteilung der Übertragungsdaten in Seiteneinheiten die Seite die Seitengrenze über­ schreitet, werden die Übertragungsdaten wie bei der Verarbeitung der obigen Prozedur (1) weiter in zwei Übertragungsblöcke unterteilt, während zwei reale Hauptspeicheradressen und die Anzahl der zu über­ tragenden Bytes zusammen mit der realen Erweite­ rungsspeicheradresse und der Anzahl der zu übertra­ genden Bytes an die Speichersteuerung geschickt wer­ den, wodurch vom Erweiterungsspeicher Daten geholt und in Übertragungsblöcke unterteilt werden, die an­ schließend unter den beiden entsprechenden realen Hauptspeicheradressen gemäß der Anzahl der Daten ge­ speichert werden.
  • (4) Wenn die durch Unterteilung der zu übertragenden Da­ ten in Seiteneinheiten erhaltene Seite die Seiten­ grenze nicht überschreitet, werden die reale Haupt­ speicheradresse und die Anzahl der zu übertragenden Bytes, die reale Erweiterungsspeicheradresse und die Anzahl der zu übertragenden Bytes an die Speicher­ steuerung geschickt, wodurch die durch die Anzahl der zu übertragenden Bytes gegebenen Übertragungsda­ ten vom Erweiterungsspeicher geholt und unter der realen Hauptspeicheradresse auf die gleiche Weise gespeichert werden, wie in der obigen Prozedur (2), bei der die Seite die Seitengrenze ebenfalls nicht überschritten hat.
Wenn die Menge der zu übertragenden Daten, die durch den Übertragungsbefehl vorgegeben wird, eine Mehrzahl von Seiten umfaßt, wird die Verarbeitung durch die Kombina­ tion der obigen Prozedur (3) mit der obigen Prozedur (4) ausgeführt.
Wie weiter oben beschrieben, ermöglicht die Datenverar­ beitungsanlage, die einen Befehlsprozessor, eine Spei­ chersteuerung, einen Hauptspeicher und einen Erweite­ rungsspeicher aufweist, die Datenübertragung zwischen dem Hauptspeicher und dem Erweiterungsspeicher mittels eines Befehls vom Befehlsprozessor, der die Datenmenge vorgibt. Daher ermöglicht die erfindungsgemäße Datenver­ arbeitungsanlage die Übertragung einer beliebigen Menge von Daten zwischen Hauptspeicher und Erweiterungsspei­ cher.
Dieser Aufbau gestattet es, daß eine zwischen dem Haupt­ speicher und dem Erweiterungsspeicher aufgrund eines Übertragungsbefehls übertragene Dateneinheit in beliebi­ ger Größe festgesetzt werden kann, wodurch die Beschrän­ kungen hinsichtlich der Adressierung der Hauptspeicher­ adresse beseitigt werden und eine Verwendung der Spei­ chersteuerung für andere Zwecke, die von der Seitenauf­ teilungsverarbeitung verschieden sind, ermöglicht wird.
Die Erfindung wird im folgenden anhand eines Ausfüh­ rungsbeispiels mit Bezug auf die Zeichnungen näher er­ läutert; es zeigen
Fig. 1 ein Blockschaltbild der wesentlichen Struktur einer Ausführungsform der erfindungsgemäßen Datenverarbeitungsanlage;
Fig. 2 die Erläuterung eines Beispiels von Übertragungs­ befehlen zur Übertragung von Daten zwischen dem Hauptspeicher und dem Erweiterungsspeicher; und
Fig. 3 eine schematische Erläuterung der Adressenabbil­ dung, um die Beziehung zwischen der virtuellen Hauptspeicheradresse, der realen Hauptspeicher­ adresse und der Erweiterungsspeicheradresse der zwischen dem Hauptspeicher und dem Erweiterungs­ speicher zu übertragenden Daten zu erklären.
Nun wird mit Bezug auf Fig. 1, in der ein Blockschalt­ bild der wesentlichen Struktur einer Ausführungsform der Erfindung erläutert wird, die erfindungsgemäße Datenver­ arbeitungsanlage beschrieben. Die Datenverarbeitungsan­ lage weist einen Befehlsprozessor (BP) 1, eine Speicher­ steuerung (SS) 2, einen Eingabe/Ausgabeprozessor (EAP) 3, einen Hauptspeicher (HS) 4 und einen Erweiterungs­ speicher (ES) 5 auf. Zur Ermöglichung einer Datenüber­ tragung zwischen dem Hauptspeicher 4 und dem Erwei­ terungsspeicher 5 mittels eines Übertragungsbefehls ent­ hält die Speichersteuerung 2 zusätzlich zu einer Firm­ ware-Konfiguration zur Speichersteuerung (einer Mikro­ programmsteuerung) als Datenübertragungseinheit Register 10, 11, 12 und 13 zum Halten einer Adresse, einer Anzahl von zu übertragenden Daten usw., die für eine Datenüber­ tragungssteuerung verwendet werden, Additions/Subtrak­ tionsschaltungen 14, 16, 18 und 20, Selektoren 15, 17, 19 und 21 und Datenpuffer 30 und 31.
In der Datenverarbeitungsanlage werden die Daten zwi­ schen dem Hauptspeicher 4 und dem Erweiterungsspeicher 5 aufgrund des vom Befehlsprozessor 1 ausgegebenen Über­ tragungsbefehls, der die zu übertragende Datenmenge an­ gibt, übertragen. Somit legt der Übertragungsbefehl zum Übertragen der Daten vom Hauptspeicher 4 zum Erweite­ rungsspeicher 5 eine virtuelle Hauptspeicheradresse, ei­ ne reale Erweiterungsspeicheradresse und eine zu über­ tragende Datenmenge fest.
In Fig. 2 ist ein Beispiel des Formats eines Übertra­ gungsbefehls zum Übertragen von Daten zwischen dem Hauptspeicher und dem Erweiterungsspeicher erläutert. Wie in Fig. 2 gezeigt, weist der Übertragungsbefehl zum Übertragen der Daten zwischen dem Hauptspeicher und dem Erweiterungsspeicher eine Befehlscode 41, der angibt, ob eine Datenübertragung vom Hauptspeicher zum Erweite­ rungsspeicher oder eine Datenübertragung vom Erweite­ rungsspeicher zum Hauptspeicher ausgeführt werden soll, eine Hauptspeicheradresse 42, eine Erweiterungsspeicher­ adresse 43 und die Anzahl 44 von zu übertragenden Daten, die die zu übertragende Datenmenge vorgibt, auf.
In Fig. 3 ist eine Adressenabbildung dargestellt, um die Beziehung zwischen der virtuellen Hauptspeicheradresse, der realen Hauptspeicheradresse und der Erweiterungs­ speicheradresse der zwischen dem Hauptspeicher und dem Erweiterungsspeicher übertragenen Daten zu erläutern.
Anhand von Beispielen, in denen die Verarbeitung des Übertragungsbefehls zum Übertragen von Daten vom Haupt­ speicher zum Erweiterungsspeicher ausgeführt wird, wird die Operation der in Fig. 1 gezeigten Datenverarbei­ tungsanlage mit Bezug auf Fig. 3 beschrieben. Wenn die Daten zwischen dem Hauptspeicher und dem Erweiterungs­ speicher übertragen werden, werden die an den Erweite­ rungsspeicher 5 zu übertragenden Daten durch eine ein­ zige Operation aus dem Hauptspeicher 4 geholt; eine zu speichernde Dateneinheit besitzt die Größe einer Seite (4 KB). Die vom Hauptspeicher 4 geholten und zum Erwei­ terungsspeicher 5 übertragenen Daten werden in Fig. 3 durch das Bezugszeichen A dargestellt. Die Daten A wer­ den in Seiten, z. B. in drei Seiten A0, A1 und A2, unter­ teilt. Die Seiten A0 und A1 besitzen beide die Größe von 4 KB, während die Seite A2 einen kleineren Umfang als 4 KB hat. Die Seite A0 ist bei der 4 KB-Grenze der vir­ tuellen Hauptspeicheradresse durch die Seitengrenze L1 in zwei Blöcke B0 und B1 unterteilt. Genauso ist die Seite A1 bei der 4 KB-Grenze in zwei Blöcke B2 und B3 unterteilt. Die Seite A2 kann jedoch nicht unterteilt werden, da sie die alle 4 KB auftretende Seitengrenze nicht erreicht, so daß ein entsprechender Block in einer Einheit der Datenübertragung lediglich durch den Block B4 gegeben ist.
Bei der Übertragung der Daten A vom Hauptspeicher 4 zum Erweiterungsspeicher 5 werden die virtuelle Hauptspei­ cheradresse L0 des Blocks B0 der Daten A und die vir­ tuelle Hauptspeicheradresse L1 des Blocks B1 an der Sei­ tengrenze durch eine Mikroprogrammsteuerung des Befehls­ prozessors 1 in zwei reale Hauptspeicheradressen, d. h. in die reale Hauptspeicheradresse M0 bzw. die reale Hauptspeicheradresse M1 übersetzt.
Um den Block B0 vom Hauptspeicher 4 zu holen und im Er­ weiterungsspeicher 5 zu speichern, werden die reale Hauptspeicheradresse M0, die Anzahl der vom Hauptspei­ cher zu übertragenden Bytes, die reale Erweiterungsspei­ cheradresse und die Anzahl der zum Erweiterungsspeicher zu übertragenden Bytes in den Registern 10, 11, 12 bzw. 13 der Speichersteuerung 2 gesetzt. Im Register 13 ist eine Datenmenge von 4 KB gesetzt, die einer Übertra­ gungseinheit von einer Seite entspricht. In der Spei­ chersteuerung 2 werden die gemäß der im Register 11 ge­ setzten Anzahl der vom Hauptspeicher zu übertragenden Daten bestimmten Daten aus der im Register 10 gesetzten realen Hauptspeicheradresse M0 geholt und im Datenpuffer 30 gesetzt.
Wenn, mit anderen Worten, die Ausgabe des Registers 10 in die Additionsschaltung 14 zur Adressenaddition einge­ geben wird und eine Leseanforderung zum Lesen vom zu übertragenden Daten an den Hauptspeicher 4 ausgegeben wird, wird eine Leseadresse addiert, um eine nächste Übertragungsdatenleseanforderung zu erzeugen, woraufhin die erneuerte nächste Adresse über den Selektor 15 wie­ der im Register 10 gesetzt wird. Wenn die Ausgabe des Registers 11 in eine Subtraktionsschaltung 16 zum byte­ weisen Subtrahieren der Anzahl der zu übertragenden Bytes eingegeben wird und eine Datenleseanforderung an den Hauptspeicher 4 ausgegeben wird, wird die Anzahl der übertragenen Bytes von der Anzahl der im Register 11 ge­ setzten Übertragungsbytes subtrahiert, woraufhin die ak­ tualisierte Anzahl von zu übertragenden Bytes über den Selektor 17 wieder im Register 11 gesetzt wird, um eine nächste Datenleseanforderung zu erzeugen.
Wenn die Anzahl der im Register 11 gesetzten zu übertra­ genden Bytes 0 ist, wird die Ausgabe der Datenleseanfor­ derung an den Hauptspeicher 4 beendet. Die Daten vom Hauptspeicher 4 werden im Datenpuffer 30 gesetzt, an­ schließend werden die Daten des Datenpuffers 30 in den Erweiterungsspeicher 5 geschrieben.
Dann werden die reale Hauptspeicheradresse M1 und die Anzahl übertragenen Bytes des Blocks B1 in den Registern 10 bzw. 11 gesetzt. Genauso wie die Verarbeitung im Block B0 werden die zu übertragenden Daten aus dem Hauptspeicher 4 geholt und im Datenpuffer 30 gesetzt.
Die im Datenpuffer 30 gesetzten Daten werden entspre­ chend der im Register 12 gesetzten realen Erweiterungs­ speicheradresse im Erweiterungsspeicher 5 gespeichert, indem eine übertragene Datenmenge durch die Anzahl der im Register 13 gesetzten Speicherübertragungsdaten ver­ waltet wird. Der Ausgang des Registers 12 ist mit der Additionsschaltung 18 zur Adressenaddition verbunden, während der Ausgang des Registers 13 mit der Subtrak­ tionsschaltung 13 zur Subtraktion der Anzahl der über­ tragenen Bits verbunden ist. Die Verarbeitung der Spei­ cherung im Erweiterungsspeicher 5 wird nach der Ausgabe einer Speicheranforderung durch Addition der Adresse und durch Subtraktion der Anzahl der übertragenen Bytes aus­ geführt, während die erneuerte Adresse und die Anzahl der zu übertragenden Bytes über die Selektoren 19 bzw. 20 in den ursprünglichen Registern 12 und 13 gesetzt werden. Die Verarbeitung zum Speichern der Daten aus dem Datenpuffer 30 im Erweiterungsspeicher 5 wird durch eine Mikroprogrammsteuerung der Speichersteuerung 2 unmittel­ bar dann veranlaßt, wenn die Daten im Datenpuffer 30 ge­ setzt werden. Wenn die Anzahl der übertragenen Bytes des Registers 13 0 erreicht, wird die Ausgabe einer Spei­ cheranforderung an den Erweiterungsspeicher 5 beendet.
Bei der Übertragung der die Seite A1 unterteilenden Blöcke B2 und B3 werden die zu übertragenden Daten aus dem Hauptspeicher 4 geholt und im Erweiterungsspeicher 5 über den Datenpuffer 30 auf die gleiche Weise wie bei der oben beschriebenen Datenübertragung der Blöcke B0 und B1 gespeichert.
Wenn die Daten des Blocks B4 übertragen werden, wird ei­ ne virtuelle Hauptspeicheradresse L4 einer Adressenüber­ setzung unterworfen, die eine reale Hauptspeicheradresse M4 liefert. Die reale Hauptspeicheradresse M4, die An­ zahl der Bytes der zu übertragenden Daten des Blocks 4 und die reale Erweiterungsspeicheradresse E2 werden an die Speichersteuerung 2 geschickt, während die Daten zur Steuerung der Datenübertragung in den Registers 10, 11, 12, 13 gesetzt werden. Die reale Hauptspeicheradresse M4 wird im Register 10 gesetzt, die reale Erweiterungsspei­ cheradresse E2 wird im Register 12 gesetzt. Die entspre­ chende Anzahl der übertragenen Bytes wird in den jewei­ ligen Registern 11 und 13 gesetzt. Die Anzahl der über­ tragenen Bytes ist kleiner als 4 KB. Die Daten des Blocks B4 werden vom Hauptspeicher 4 geholt und im Er­ weiterungsspeicher 5 auf die gleiche Weise wie bei der oben beschriebenen Datenübertragung gespeichert.
Wie oben beschrieben worden ist, wird die Datenübertra­ gung vom Hauptspeicher 4 zum Erweiterungsspeicher 5 von einer Mikroprogrammsteuerung der Speichersteuerung mit­ tels eines vom Befehlsprozessor ausgegebenen Befehls, der die Anzahl der zu übertragenden Bytes vorgibt, ge­ leitet.
Im folgenden wird die Verarbeitung des Befehls zum Über­ tragen von Daten vom Erweiterungsspeicher 5 zum Haupt­ speicher 4 beschrieben.
Im Übertragungsbefehl zur Datenübertragung vom Erweite­ rungsspeicher 5 zum Hauptspeicher 4 werden die zu über­ tragenden Daten durch Seitenwechsel, Unterteilung einer Seite in Blöcke und Adressenübersetzung auf die gleiche Weise ausgeführt wie im Übertragungsbefehl zur Daten­ übertragung vom Hauptspeicher 4 zum Erweiterungsspeicher 5. Der Befehlsprozessor 1 gibt an die Speichersteuerung 2 eine reale Hauptspeicheradresse, die Anzahl der zum Hauptspeicher zu übertragenden Bytes, eine reale Erwei­ terungsspeicheradresse und die Anzahl der vom Erweite­ rungsspeicher zu übertragenden Bytes, die in den ent­ sprechenden Registern 10, 11, 12 und 13 gesetzt sind, auf analoge Weise wie oben beschrieben aus.
In Fig. 3 ist die Richtung der Datenblöcke, die vom Er­ weiterungsspeicher 5 zum Hauptspeicher 4 übertragen wer­ den, durch eine Strichlinie mit Pfeil dargestellt. Wie in Fig. 3 gezeigt, werden die Blöcke B0 und B1 der in einer Seite der realen Erweiterungsspeicheradresse (E0 bis E1) des Erweiterungsspeichers 5 gespeicherten Seite A0 für 4 KB ohne Unterbrechung aus dem Erweiterungsspei­ cher 5 geholt und im Datenpuffer 31 gesetzt. Wenn die Daten aus dem Datenpuffer 31 im Hauptspeicher 4 gespei­ chert werden, werden sie in zwei Blöcke (Blöcke B0 und B1) unterteilt, die wiederum entsprechend unter den rea­ len Hauptspeicheradressen M0 und M1 gespeichert werden. Die Daten der Seite A1 werden durch Setzen der Daten ei­ ner zu übertragenden Seite im Datenpuffer 31 und durch Unterteilung in Blöcke, d. h. in die Blöcke B2 und B3 auf die gleiche Weise wie bei der Übertragung der in die Blöcke B0 und B1 unterteilten Daten übertragen. Die Da­ tenübertragung des Blocks B4 der Seite A2 wird dadurch ausgeführt, daß die Daten mit einem Umfang von weniger als 4 KB, die vom Erweiterungsspeicher 5 geholt worden sind, im Datenpuffer 31 gesetzt und unverändert im Hauptspeicher 4 gespeichert werden.
Obwohl die vorliegende Erfindung anhand einer Ausfüh­ rungsform gezeigt und beschrieben worden ist, versteht es sich, daß die Erfindung nicht auf diese Ausführungs­ form beschränkt ist und verschiedene Änderungen und Ab­ wandlungen einschließt, ohne daß vom Geist und vom Um­ fang der Erfindung abgewichen wird.
Erfindungsgemäß ist die Datenverarbeitungsanlage mit ei­ ner Datenübertragungseinheit ausgerüstet, die die Daten­ übertragungen zwischen dem Hauptspeicher und dem Erwei­ terungsspeicher durch einen Übertragungsbefehl, der die zu übertragende Datenmenge vorgibt, ermöglicht, wodurch die Menge der Daten für eine Datenübertragung beliebig gemacht wird; so daß die Beschränkungen hinsichtlich der Adressierung der virtuellen Hauptspeicheradresse, die durch den Befehl vorgegeben wird, vermieden werden.
Es wird weiterhin festgestellt, daß die Menge der Daten, die aufgrund eines Befehls zur Ausführung eine Daten­ übertragung vom Hauptspeicher zum Erweiterungsspeicher oder umgekehrt übertragen werden, beliebig gesetzt wer­ den kann, ohne daß sie durch eine Seiteneinheit be­ schränkt wäre. Außerdem wird festgestellt, daß eine Hauptspeicheradresse und eine Erweiterungsspeicheradres­ se nicht notwendig an der Seitengrenze angeordnet sein müssen, so daß der Erweiterungsspeicher auch für Zwecke verwendet werden kann, die von Seitenaufteilungsprozes­ sen verschieden sind.

Claims (2)

1. Speichersteuerung (2) in einer Datenverarbeitungsanlage mit einem Befehlsprozessor (1) zur Datenübertragung von einem in Seiten eingeteilten Hauptspeicher (4) zu einem Erweiterungsspeicher (5) oder von dem Erweiterungsspei­ cher (5) zu dem Hauptspeicher (4) aufgrund eines vom Befehlsprozessor (1) ausgegebenen Übertragungsbefehls, der die Menge, die Richtung der Übertragung und die Adressen der zu übertragenden Daten angibt und der bei seiner Ausführung veranlaßt, daß zur Speichersteuerung (2) gesendet wird:
eine reale Hauptspeicheradresse (M0, M1 . . . M4), die aus einer virtuellen Adresse (L0, L1 . . . L4) übersetzt ist,
eine Zahl, die angibt, wie viele Bytes vom Hauptspeicher (4) zu übertragen sind,
eine reale Adresse (E0, E1 . . . E4) des Erweiterungsspei­ chers (5), und
eine Zahl, die angibt, wie viele Bytes vom Erweiterungs­ speicher (5) zu übertragen sind,
wobei das Senden zur Speichersteuerung (2) so erfolgt, daß die zu übertragenden Dateneinheiten mit den Daten­ einheiten des Erweiterungsspeichers (5) übereinstimmen;
dadurch gekennzeichnet, daß
  • - die Speichersteuerung (2) die Daten, die vom Haupt­ speicher (4) zum Erweiterungsspeicher (5) zu über­ tragen sind, in Einheiten von der Größe einer Seite unterteilt aufgrund der Mengenangabe der zu übertra­ genden Daten im Übertragungsbefehl und der Angabe der virtuellen Hauptspeicheradresse in diesem Befehl, wo­ bei eine Seite die Dateneinheit darstellt, die mit einer einzigen Transferoperation vom Hauptspeicher (4) zum Erweiterungsspeicher (5) übertragen werden kann;
  • - eine zu übertragende Seite in zwei Blöcke aufgeteilt wird, wenn diese mit ihrem Inhalt im Hauptspeicher (4) eine Seitengrenze überschreitet, wobei die virtuellen Anfangsadressen der zwei Blöcke in reale Hauptspei­ cheradressen umgewandelt werden und die beiden realen Hauptspeicheradressen zusammen mit der Angabe der Zahl der zu übertragenden Bytes der Blöcke, der realen Er­ weiterungsspeicheradresse und der Angabe der Zahl der zu übertragenden Bytes zur Speichersteuerung (2) über­ tragen werden;
  • - wenn die zu übertragende Datenmenge eine Seitengrenze im Hauptspeicher (4) nicht überschreitet, die virtuel­ le Anfangsadresse der Seite in eine reale Hauptspei­ cheradresse umgewandelt wird und diese zusammen mit der Angabe der Anzahl der zu übertragenden Bytes, der realen Adresse im Erweiterungsspeicher (5) und der Angabe der Zahl der zu übertragenden Bytes des Erwei­ terungsspeichers (5) an die Speichersteuerung (2) ge­ geben wird; und
  • - die Datenübertragung von jeweils einer Seite zwischen dem Hauptspeicher (4) und dem Erweiterungsspeicher (5) ausgeführt wird aufgrund der realen Hauptspeicher­ adresse, der Anzahl der Bytes eines jeden zu übertra­ genden Blocks, der realen Erweiterungsspeicheradresse und der Anzahl der Bytes des Erweiterungsspeichers (5), die zu übertragen sind.
2. Speichersteuerung (2) nach Anspruch 1, dadurch gekennzeichnet, daß diese umfaßt:
  • - einen ersten Datenpuffer (30) für Daten, die vom Hauptspeicher (4) zum Erweiterungsspeicher (5) über­ tragen werden;
  • - einen zweiten Datenpuffer (31) für Daten, die vom Erweiterungsspeicher (5) zum Hauptspeicher (4) über­ tragen werden;
  • - ein erstes Adressenregister (10), zur Aufnahme einer realen Hauptspeicheradresse, das mit einer ersten Ad­ ditionsschaltung (14) und einem ersten Selektor (15) zur Aktualisierung der realen Hauptspeicheradresse verbunden ist;
  • - ein erstes Datenmengenregister (11) zur Aufnahme der Anzahl der Bytes, die unter der im ersten Adressen­ register (10) angegebenen Adresse im Hauptspeicher (4) ausgelesen bzw. eingeschrieben werden, das mit einer ersten Subtraktionsschaltung (16) und einem zweiten Selektor (17) zur Aktualisierung der Anzahl der zu übertragenden Bytes verbunden ist;
  • - ein zweites Adressenregister (12), zur Aufnahme einer realen Erweiterungsspeicheradresse, das mit einer zweiten Additionsschaltung (18) und einem dritten Selektor (19) zur Aktualisierung der realen Erweite­ rungsspeicheradresse verbunden ist; und
  • - ein zweites Datenmengenregister (13), zur Aufnahme der Anzahl von Bytes, die unter der im zweiten Adressenre­ gister (12) angegebenen Adresse im Erweiterungsspei­ cher (5) ausgelesen bzw. eingeschrieben werden, das mit einer zweiten Subtraktionsschaltung (20) und einem vierten Selektor (21) zur Aktualisierung des im Regi­ ster (13) stehenden Wertes verbunden ist.
DE3931505A 1988-09-21 1989-09-21 Speichersteuerung in einer Datenverarbeitungsanlage Expired - Fee Related DE3931505C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63238600A JP3005626B2 (ja) 1988-09-21 1988-09-21 データ処理システムおよびデータ転送方法

Publications (2)

Publication Number Publication Date
DE3931505A1 DE3931505A1 (de) 1990-03-22
DE3931505C2 true DE3931505C2 (de) 1996-11-28

Family

ID=17032599

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3931505A Expired - Fee Related DE3931505C2 (de) 1988-09-21 1989-09-21 Speichersteuerung in einer Datenverarbeitungsanlage

Country Status (3)

Country Link
US (1) US5134698A (de)
JP (1) JP3005626B2 (de)
DE (1) DE3931505C2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04305741A (ja) * 1991-04-02 1992-10-28 Nec Corp データベース入出力制御方式
US5386560A (en) * 1991-05-23 1995-01-31 International Business Machines Corporation Execution of page data transfer by PT processors and issuing of split start and test instructions by CPUs coordinated by queued tokens
US5278963A (en) * 1991-06-21 1994-01-11 International Business Machines Corporation Pretranslation of virtual addresses prior to page crossing
EP0549924A1 (de) * 1992-01-03 1993-07-07 International Business Machines Corporation Verfahren und Vorrichtung zur Datenübertragung durch einen Asynchronzusatzprozessor
JP3549003B2 (ja) * 1993-08-31 2004-08-04 株式会社日立製作所 情報送出装置および情報送出/受信システム
JPH0869408A (ja) * 1994-08-31 1996-03-12 Kofu Nippon Denki Kk 拡張記憶データ転送制御システム
US6658552B1 (en) * 1998-10-23 2003-12-02 Micron Technology, Inc. Processing system with separate general purpose execution unit and data string manipulation unit

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR111576A (de) * 1973-12-13 1900-01-01
JPS5211729A (en) * 1975-07-17 1977-01-28 Hitachi Ltd Information processing unit
JPS5338937A (en) * 1976-09-22 1978-04-10 Hitachi Ltd Address conversion mechanism of electronic computer system
US4296465A (en) * 1977-11-03 1981-10-20 Honeywell Information Systems Inc. Data mover
US4344130A (en) * 1979-09-26 1982-08-10 Sperry Corporation Apparatus to execute DMA transfer between computing devices using a block move instruction
JPS59167761A (ja) * 1983-03-14 1984-09-21 Hitachi Ltd 計算機システム
US4713748A (en) * 1985-02-12 1987-12-15 Texas Instruments Incorporated Microprocessor with block move instruction
JPS6261132A (ja) * 1985-09-12 1987-03-17 Fujitsu Ltd デ−タ転送命令制御方式
JPS6364144A (ja) * 1986-09-04 1988-03-22 Hitachi Ltd 記憶装置間デ−タ転送方式
JPH0648486B2 (ja) * 1986-10-08 1994-06-22 日本電気株式会社 ベクトルデ−タ処理装置
US4891754A (en) * 1987-07-02 1990-01-02 General Datacomm Inc. Microinstruction sequencer for instructing arithmetic, logical and data move operations in a conditional manner

Also Published As

Publication number Publication date
JPH0285941A (ja) 1990-03-27
US5134698A (en) 1992-07-28
JP3005626B2 (ja) 2000-01-31
DE3931505A1 (de) 1990-03-22

Similar Documents

Publication Publication Date Title
DE3338345C2 (de)
DE2350884C2 (de) Adreßumsetzungseinheit
DE3689488T2 (de) Speicheranordnung mit vereinfachtem und schnellem Daten-Cachespeicher.
DE69325774T2 (de) Programmierbare Externspeichersteuerungseinrichtung
DE3751540T2 (de) Verfahren und Vorrichtung zur Datenverarbeitung.
DE2953861C2 (de)
EP0600112A1 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE3726168C2 (de)
DE2718110A1 (de) Datenverarbeitungseinheit
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE3043653A1 (de) Datenverarbeitungsanlage
DE2625113C2 (de) Speicherschutzeinrichtung
DE69227740T2 (de) Verarbeitungsanordnung zur dynamischen Adressübersetzung in einem Datenverarbeitungssystem
DE3931505C2 (de) Speichersteuerung in einer Datenverarbeitungsanlage
DE69618831T2 (de) ECC-geschützte Speicherorganisation mit Lese-Änderungs-Schreib-Pipelinezugriff
DE3932695A1 (de) Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ
DE69032776T2 (de) Steuerungsschaltung zum Zugriff auf partiellen Speicher
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas
DE69229424T2 (de) Adressengeneration in einer Datenverarbeitungseinheit
DE69622608T2 (de) Informationsprozessor
DE69118392T2 (de) Adressengenerator für einen ringpuffer
DE69031529T2 (de) Speichersteuerungssystem
DE4021784C2 (de)

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