DE3931505C2 - Speichersteuerung in einer Datenverarbeitungsanlage - Google Patents
Speichersteuerung in einer DatenverarbeitungsanlageInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 28
- 238000012546 transfer Methods 0.000 claims description 62
- 230000005540 biological transmission Effects 0.000 claims description 27
- 239000000872 buffer Substances 0.000 claims description 15
- 238000000034 method Methods 0.000 description 10
- 238000013519 translation Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000021184 main course Nutrition 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement 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ß
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.
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)
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)
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 |
-
1988
- 1988-09-21 JP JP63238600A patent/JP3005626B2/ja not_active Expired - Fee Related
-
1989
- 1989-09-20 US US07/409,764 patent/US5134698A/en not_active Expired - Fee Related
- 1989-09-21 DE DE3931505A patent/DE3931505C2/de not_active Expired - Fee Related
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 |