DE19722803A1 - Schaltung zur Verschiebung von Daten zwischen entfernten Speichern und ein diese Schaltung enthaltender Rechner - Google Patents
Schaltung zur Verschiebung von Daten zwischen entfernten Speichern und ein diese Schaltung enthaltender RechnerInfo
- Publication number
- DE19722803A1 DE19722803A1 DE19722803A DE19722803A DE19722803A1 DE 19722803 A1 DE19722803 A1 DE 19722803A1 DE 19722803 A DE19722803 A DE 19722803A DE 19722803 A DE19722803 A DE 19722803A DE 19722803 A1 DE19722803 A1 DE 19722803A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- memory
- blocks
- read
- circuit
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
Die Erfindung betrifft die Verschiebung (englisch: move) von
Daten zwischen entfernten Speichern von Datenverarbeitungssy
stemen.
Der anhaltende Preisverfall von binären Speichern ermöglicht
heute beträchtliche Kapazitätserweiterungen. Diese Erweiterung
der Kapazität bringt jedoch die Gefahr der Erhöhung einer ge
wissen Trägheit bei der Nutzung des Speichers mit sich. Be
kanntermaßen werden aus diesem Grund eine Hauptspeicherein
heit, die trotz beträchtlicher Größe einen schnellen Zugriff
erlaubt, und eine Massenspeichereinheit oder mehrere Massen
speichereinheiten verwendet, deren Inhalt über den Hauptspei
cher mit Hilfe einer virtuellen Adressierung zugänglich ist.
Einzig die von dem System tatsächlich verwendeten Daten liegen
physikalisch in dem Hauptspeicher. Um die Verarbeitung von in
einer Massenspeichereinheit liegenden Daten durchzuführen,
verschiebt (englisch: move) das System diese Daten in den
Hauptspeicher. Um in der Hauptspeichereinheit Platz zu schaf
fen, verschiebt das System in gleicher Weise Daten zu der Mas
senspeichereinheit.
Die Entfernung zwischen einer Massenspeichereinheit und der
Hauptspeichereinheit hat unvermeidlicherweise eine gewisse La
tenzzeit zwischen dem Beginn und dem Ende einer Verschiebung
zur Folge. Für gewöhnlich ist eine Speichereinheit in Seiten
aufgeteilt, die selbst aus Datenblöcken bestehen. Um die Lei
stung des Systems nicht durch zu häufige Verschiebungen zu be
einträchtigen, werden diese vorzugsweise blockweise und sogar
seitenweise durchgeführt.
Man kann sich vorstellen, in dem Quellenspeicher eine Lesean
forderung für eine Anzahl zugänglicher Blöcke mit Hilfe einer
einzigen Leseanforderung auszugeben, indem der erste Block der
Anforderung adressiert wird und von der Gesamtzahl der zu le
senden Blöcke heruntergezählt wird. Sobald man die Antwort auf
die Anforderung erhalten hat, schickt man eine Schreibanforde
rung in den Zielspeicher, indem der erste Block der Anforde
rung adressiert wird und von der Gesamtzahl der zu schreiben
den Blöcke zur Aussendung neuer Schreibanforderungen herunter
gezählt wird, bis die Gesamtzahl der zu schreibenden Blöcke
erreicht ist. Man beginnt die vorstehenden Operationen erneut,
um neue Anforderungen bis zum Erreichen der Gesamtzahl der zu
lesenden Blöcke auszugeben. Da der Quellenspeicher jedoch vom
Zielspeicher entfernt ist, existiert indessen eine gewisse La
tenzzeit zwischen der Ausgabe der Anforderung und dem Empfang
der Antwort. Dieses Verfahren weist den Nachteil auf, daß sich
die Summierung der aufeinanderfolgenden Latenzzeiten auf die
Gesamtdauer der Verschiebung auswirkt.
Es ist auch vorstellbar, alle Leseanforderungen auszugeben,
indem die Leseanforderungen gespeichert werden, ohne die Ant
worten abzuwarten und die Schreibanforderungen beim Empfang
der entsprechenden Antworten, die jeder Leseanforderung ent
sprechen, auszugeben. Diese Lösung hat jedoch den Nachteil,
daß eine Zwischenspeicherung erforderlich ist, deren Durchfüh
rung die Gefahr einer Verlangsamung der Übertragungen mit sich
bringt. Diese Lösung weist auch einen weiteren Nachteil auf.
Die Unterbrechung einer Verschiebung durch die Detektierung
eines Fehlers oder durch eine andere Verschiebung mit höherer
Priorität würde eine spezielle Speicherung erfordern, deren
Steuerung sich schwierig darstellen würde.
Mit der Erfindung soll die Latenzzeit zwischen dem Anfang und
dem Ende einer Verschiebung durch minimale Zwischenspeicherung
auf das geringstmögliche Maß verringert werden. Dies wird mit
Hilfe einer elektrischen Schaltung zur Verschiebung von Daten
blöcken von einer Quellenspeichereinheit zu einer Zielspei
chereinheit über einen Datenpfad erreicht, die dadurch ge
kennzeichnet ist, daß sie
- - Mittel zum Ausgeben von Leseanforderungen in einer gegebenen Reihenfolge für Blöcke in dem Quellenspeicher, die Mittel zur Erzeugung einer Endmarkierung in der Leseanforderung des letz ten Blocks aus dem Quellenspeicher aufweisen,
- - Mittel zu Speicherung, um die gelesenen Blöcke in Form von Antwortnachrichten in der Reihenfolge zu empfangen, in der die Anforderungen ausgegeben wurden,
- - und Mittel zum Ausgeben von Schreibanforderungen für Blöcke in dem Zielspeicher aufweist, die in den Mitteln zur Speiche rung entsprechend dem Empfang der Antwortnachrichten empfangen wurden.
Die Erfindung wird nachfolgend anhand der Zeichnung beschrie
ben. Hierbei zeigt:
Fig. 1 ein Datenverarbeitungssystem mit einem erfindungsgemä
ßen Rechner, der Zugang zu wenigstens einer Massenspeicherein
heit hat,
Fig. 2 eine Ausführungsform der erfindungsgemäßen Schaltung in
dem System der Fig. 1,
Fig. 3 eine erste Stufe der Weiterentwicklung der erfindungs
gemäßen Schaltungsarchitektur,
Fig. 4 die Architektur der Verschiebeeinrichtung der Fig. 3,
und
a
a
die Fig. 5 bis 7 zeigen eine zweite Stufe der Weiterentwick
lung der erfindungsgemäßen Schaltungsarchitektur.
Wie in der Fig. 1 gezeigt ist, enthält ein Rechner 1 eine
Hauptspeichereinheit MMU 9, auf die wenigstens eine Prozes
soreinheit PU 2 über ein Bussystem ASB 9′ zugreift. An den Bus
ASB 9′ ist eine Schnittstelle oder sind mehrere Schnittstellen
EMA für den Zugang zu dem Massenspeicher angeschlossen. Die
Schnittstelle EMA 5 ist mit einer Steuerung EMC 7 für den Mas
senspeicher über eine Verbindung EML 6 verbunden, die in ei
nem, vom Rechner 1 entfernten Raum 3 angeordnet ist. Eine Ver
bindung EML kann eine serielle oder eine parallele Verbindung
sein, die eine Informationsübertragung mit erhöhtem Durchsatz
erlaubt. Der Raum 3 enthält eine Massenspeichereinheit EMU 8,
auf die die Steuerung 7 des Massenspeichers über das Bussystem
ASB 13 zugreift. Weitere Steuerungen EMC 16, 17, ohne daß die
in der Figur gezeigte Anzahl eine Begrenzung darstellen würde,
können vorgesehen sein, um ebenfalls auf die Massenspeicherein
heit EMU 8 über das Bussystem 8 zuzugreifen. Die Steuerung 16
erlaubt beispielsweise, Daten mit einem anderen, nicht darge
stellten Rechner gemäß dem gleichen Schema wie für den Rechner
1 auszutauschen. Es ist auch möglich, daß die Schnittstelle 5
ebenfalls mit einer Steuerung EMC 11 für Massenspeicher, die in
einem Raum 4 angeordnet ist, über eine Verbindung EML 10 ver
bunden ist. Wie der Raum 3 enthält der Raum 4 eine Massenspei
chereinheit EMU 12, auf die die Steuerung 11 für den Massen
speicher über ein Bussystem ASB 14 zugreift. Andere Steuerun
gen EMC 18, 19, ohne daß die in der Figur gezeigte Anzahl eine
Begrenzung darstellen würde, können vorgesehen sein, um eben
falls auf die Massenspeichereinheit EMU 12 über das Bussystem
ASB 14 zuzugreifen. Die Steuerung 18 erlaubt beispielsweise,
Daten mit einem anderen, nicht gezeigten Rechner gemäß dem
gleichen Schema wie für den Rechner 1 auszutauschen. Die Mas
senspeichereinheit 12 ermöglicht die Sicherung oder die Erwei
terung der Kapazität der Massenspeichereinheit 8. Bei der Si
cherung bewirkt die Massenspeichereinheit 12 die Redundanz der
gespeicherten Daten. Bei der Erweiterung der Kapazität macht
die Massenspeichereinheit 12 einen größeren ausgedehnten Spei
cher verfügbar.
Der Rechner 1 der Fig. 1 weist eine zweite Schnittstelle EMA
15 auf, die ebenfalls mit dem Bussystem 9′ verbunden ist.
Durch die Verbindung eines ersten Anschlusses der Schnittstel
le EMA 15 mit einem zweiten Anschluß der Steuerung EMC 16 und
eines zweiten Anschlusses der Schnittstelle 15 mit einem zwei
ten Anschluß der Steuerung EMC 18 mit Verbindungsmitteln EML,
die zur Vereinfachung der Figur nicht dargestellt sind, kann
die Redundanz der Verbindungen des Rechners 1 mit den Räumen 3
und 4 erreicht werden.
Die Massenspeichereinheiten EMU 8 und 12 sind jeweils in 2j
Seiten unterteilt, deren Adressen mit j Bits kodiert sind. Je
de Seite ist ihrerseits in 2k Datenblöcke unterteilt, deren
Adressen mit k Bits kodiert sind. Die Breite des Datenpfades
von der Schnittstelle EMA 5 zu der Steuerung EMC 7 über die
Verbindung EML 6 beträgt 2m Bytes. Ein Byte besteht beispiels
weise aus einem Byte zu acht Byte oder einem Byte zu neun
Byte. 2 m Bytes bilden daher einen Unterblock eines Daten
blocks. Jeder Datenblock enthält 2n Unterblöcke, die innerhalb
eines Blocks durch n Bits adressierbar sind.
Innerhalb des Rechners 1 erfolgt eine Datenverschiebung zwi
schen der Hauptspeichereinheit MMU 9 und der Massenspei
chereinheit EMU 8 oder der Massenspeichereinheit EMU 12 auf
Anforderung einer Prozessoreinheit PU des Rechners 1. Eine
Prozessoreinheit PU des Rechners 1 kann ebenfalls eine direkte
Datenverschiebung zwischen der Massenspeichereinheit EMU 8 und
der Massenspeichereinheit EMU 12 anfordern. Hierfür schickt
die Prozessoreinheit PU auf Befehl eines in der Einheit PU ab
laufenden Prozesses eine Verschiebeanforderung an die Schnitt
stelle EMA 5, indem sie dieser die Quellenspeichereinheit, der
die Daten blockweise entnommen werden sollen, und die
Zielspeichereinheit angibt, in die die Daten blockweise einge
geben werden sollen. Wenn die Quellenspeichereinheit die
Hauptspeichereinheit MMU 9 ist, ist die Zielspeichereinheit
die Massenspeichereinheit EMU 8 oder die Massenspeichereinheit
EMU 12. Wenn die Quellenspeichereinheit die Massenspeicherein
heit EMU 8 beziehungsweise 12 ist, ist die Zielspeichereinheit
die Hauptspeichereinheit MMU 9 oder die Massenspeichereinheit
EMU 12 beziehungsweise 8. Der Ausgangsprozeß der Verschiebung
gibt in seiner Anforderung sowohl die Adresse des ersten Un
terblocks in dem Quellenspeicher und die Adresse des ersten
Unterblocks in dem Zielspeicher, wo die Verschiebung beginnt,
als auch die Anzahl der zu verschiebenden Unterblöcke an. Da
nach bewirkt die Schnittstelle EMA 5 die Verschiebung unabhän
gig von der Prozessoreinheit PU.
Ein Prozeß kann eine synchrone Verschiebung oder eine asyn
chrone Verschiebung anfordern. Im Fall einer synchronen Ver
schiebung wird der Prozeß unterbrochen und nicht wiederaufge
nommen, bis die Verschiebung abgeschlossen ist. Eine synchrone
Verschiebung muß folglich schnell erfolgen. Im Fall einer
asynchronen Verschiebung fährt der Prozeß fort, ohne das Ende
der Verschiebung abzuwarten, die unabhängig erfolgt. Um einen
Prozeß, der eine synchrone Verschiebung erfordert, nicht zu
benachteiligen, wenn eine asynchrone Verschiebung im Gang ist,
kann eine Anforderung einer synchronen Verschiebung in der
Schnittstelle EMA eine im Gang befindliche asynchrone Ver
schiebung unterbrechen, die nach Abschluß der synchronen Ver
schiebung wiederaufgenommen wird. Die Schnittstelle EMA er
zeugt die Unterbrechungen und die Wiederaufnahmen der Ver
schiebungen in einer für die von den Prozessoreinheiten PU
ausgeführten Prozesse transparenten Weise.
Eine Schnittstelle EMA oder eine Steuerung EMC sind durch eine
Schaltung 41 realisiert, wie sie detaillierter in der Fig. 2
dargestellt ist. Die Schaltung 41 weist im wesentlichen eine
integrierte Schaltung MEP 42 auf, die detaillierter in der
Fig. 3 dargestellt ist und die durch einen Taktgenerator ARG
47 getaktet und durch einen Mikroprozessor 43 gesteuert ist.
Ein Festwertspeicher FPROM 46 enthält ein Mikroprogramm für
den Betrieb der integrierten Schaltung 42. Ein Speicher mit
wahlfreiem Zugriff SRAM 48 ist für die Daten vorgesehen, die
die von der Schaltung 41 übernommenen Verschiebungen kenn
zeichnen. Mit der Initialisierung der Schaltung 41 lädt die
integrierte Schaltung 42 das in dem Speicher 46 enthaltene Mi
kroprogramm in den Speicher 48. Um dies zu bewirken, greift
die Schaltung 42 über eine Verbindung 58 direkt auf den Spei
cher 46 zu. Der Speicher 46 garantiert im wesentlichen die Be
ständigkeit der bei der Initialisierung vorhandenen Informa
tionen, während der Speicher 48 den leistungsfähigen Zugriff
beim Betrieb sicherstellt. Wenn die Lese-/Schreibstandards in
den Speichern 46 und 48 verschieden sind, beispielsweise ein
Byte in dem Speicher 46 und acht Byte in dem Speicher 48,
führt die integrierte Schaltung 42 die notwendigen Umgruppie
rungen der Bytes durch und nimmt die entsprechenden Pari
tätsprüfungen vor. Eine Busanpassungsschaltung IOBA 45 ermög
licht es, die Schaltung 41 an das Bussystem ASB zur Datenüber
tragung zwischen dem Bus ASB und der integrierten Schaltung 42
anzupassen. Die Schaltung 45 und der Mikroprozessor 43 werden
durch den Taktgenerator 47 synchronisiert. Der Mikroprozessor
43 tauscht aus und verarbeitet die Daten des Speichers 48 und
der Schaltung 42 mit Hilfe eines Busses PIBD 44 und dem Mikro
programm im Speicher 48. Die Schaltung 42 weist einen Ein
gangs-/Ausgangsport 55, der in Verbindung mit der Anpassungs
schaltung 45 steht, und zwei Eingangs-/Ausgangsports 51 und 54
auf, die über die Verbindung EML an eine entfernte Schaltung
angeschlossen sind, die zu der Schaltung 41 identisch ist. Ei
ne Schaltung 41, die als Schnittstelle EMA wirkt, ist mit ei
ner Schaltung 41 verbunden, die als Steuerung EMC wirkt. Die
Breite des Datenpfades ist auf den Ports 51, 54 und 55 iden
tisch und beträgt 2m Bytes. Der Nutzen der Anpassungschaltung
45 liegt darin, eine von der Standard-Adressierbarkeit ver
schiedene Adressierbarkeit auf den Ports 51, 54 und 55 zu er
möglichen. Beispielsweise kann die Adressierung auf den Ports
51, 54 und 55 mit 40 Bit durchgeführt werden, während die
Adressierung der Hauptspeichereinheit MMU mit 32 Bit durchge
führt werden kann.
Fig. 3 zeigt die Architektur der integrierten Schaltung 42.
Ein Rumpfprozessor CP 57 ermöglicht den Austausch von Daten,
um eine Verschiebung mit dem Mikroprozessor 43 über den Bus
PIBD zu kennzeichnen. Der Rumpfprozessor 57 ist über die Ver
bindung 58 direkt mit dem Speicher 46 verbunden, um bei der
Initialisierung das Mikroprogramm in dem Speicher 46 in den
Speicher 48 zu laden. Eine Rumpfverschiebeeinrichtung CM 50
wird von dem Rumpfprozessor 57 nur in dem Fall aktiviert, in
dem die integrierte Schaltung 42 in einer Schaltung 41 ange
bracht ist, die als Schnittstelle EMA wirkt. Eine Rumpfsteue
rung CS 59 wird von dem Rumpfprozessor 57 nur in dem Fall ak
tiviert, in dem die integrierte Schaltung 42 in einer Schal
tung 41 angebracht ist, die als Steuerung EMC wirkt.
Über den Port 55 gehen die mit dem in demselben Raum wie die
Schaltung 41 angeordneten Speicher ausgetauschten Daten. Wenn
die Schaltung 41 in dem Rechner 1 angeordnet ist, ist der lo
kale Speicher die Hauptspeichereinheit MMU, und wenn die
Schaltung 41 in dem Raum 3 oder 4 angeordnet ist, ist der lo
kale Speicher die Massenspeichereinheit EMU. Ein Bus M2CB
überträgt die Daten von dem Port 55 zu dem Rumpfprozessor 57,
zu der Rumpfverschiebeeinrichtung CM 50 oder zu der Rumpf
steuerung CS 59. Ein Bus C2MB überträgt die Daten des Rumpf
prozessors 57, der Rumpfverschiebeeinrichtung CM 50 oder der
Rumpfsteuerung CS 59 zu dem Port 55. Über die Ports 51 und 54
gehen die mit den entfernten Speichern ausgetauschten Daten.
Wenn die Schaltung 41 in dem Rechner 1 angeordnet ist, ist der
entfernte Speicher die Massenspeichereinheit EMU eines Raums 3
oder 4 und wenn die Schaltung 41 in einem Raum 3 oder 4 ange
ordnet ist, ist der entfernte Speicher die Hauptspeicherein
heit MMU eines Rechners. Ein Bus L2CB überträgt die Daten von
den Ports 51, 54 zu dem Rumpfprozessor 57, der Rumpfverschie
beeinrichtung CM 50 oder der Rumpfsteuerung CS 59. Ein Bus
C2LB überträgt die Daten des Rumpfprozessors 57, der Rumpfver
schiebeeinrichtung CM 57 oder der Rumpfsteuerung CS 59 zu den
Ports 51, 54. Ein bidirektionaler Bus CPB ermöglicht es dem
Rumpfprozessor 57 Daten mit den Ports 51, 54, 55, mit der
Rumpfverschiebeeinrichtung 50 oder mit der Rumpfsteuerung 59
auszutauschen.
Fig. 4 zeigt die Architektur der Verschiebeeinrichtung CM 50.
Man findet hier den Bus C2LB für das Aussenden von Anforderun
gen zu der Massenspeichereinheit EMU, den Bus C2MB für das
Aussenden von Anforderungen zu der Hauptspeichereinheit MMU,
den Bus L2CB für den Empfang von Antworten von der Massenspei
chereinheit EMU und den Bus M2CB für den Empfang von Antworten
von der Hauptspeichereinheit MMU wieder. Der Bus CPB ist in
einen Datenbus CPBD und einen Adressierungsbus CPBA aufge
teilt.
Die Verschiebeeinrichtung CM 50 besteht aus drei Hauptbestand
teilen:
- - Eine logische Einheit 60 erzeugt Adressen in einem Zielspei cher, der in der Hauptspeichereinheit MMU oder in der Massen speichereinheit EMU angeordnet ist. Wie im Zusammenhang mit der Fig. 5 zu entnehmen ist, weist die logische Einheit 60 verschiedene interne Register zur Verarbeitung von Schreiban forderungen auf, die mit Hilfe einer Schaltung 61 zur Übertra gung von Nachrichtenköpfen zu einer Seite mit 2k+n+m Bytes des Zielspeichers geleitet werden. Die Hauptspeichereinheit MMU und die Massenspeichereinheit EMU weisen nicht notwendigerwei se die gleiche Seitenzahl auf, und auch 2k stellt eine unter schiedliche Zahl dar, abhängig davon, ob der Zielspeicher die Hauptspeichereinheit MMU oder die Massenspeichereinheit EMU ist. Die Schaltung 61 sendet auf dem Bus C2LB aus, wenn der Zielspeicher die Massenspeichereinheit EMU ist, und sie sendet auf dem Bus C2MB aus, wenn der Zielspeicher die Hauptspei chereinheit MMU ist. Andererseits ist die logische Einheit 60 mit dem Bus CPBD verbunden, um die Daten ihrer internen Regi ster mit dem Mikroprogramm auszutauschen, das von dem Mikro prozessor 43 ausgeführt wird. Die logische Einheit 60 ist auch direkt mit dem Schnittstellensteuerungsprozessor CP 57 verbun den, um Interruptsignale mit dem Mikroprogramm über eine Ver bindung 62 auszutauschen.
- - Eine logische Einheit 70 erzeugt Adressen in einem Quellen speicher, der in der Hauptspeichereinheit MMU oder in der Mas senspeichereinheit EMU liegt. Wie der Fig. 6 zu entnehmen ist, weist die logische Einheit 70 verschiedene interne Register auf, um Leseanforderungen zu verarbeiten, die mit Hilfe einer Schaltung 71 zur Übertragung von Nachrichtenköpfen zu einer Seite des Quellenspeichers mit 2k+n+m Bytes geleitet werden. Die Hauptspeichereinheit MMU und die Massenspeichereinheit EMU weisen nicht notwendigerweise die gleiche Seitenzahl auf und auch 2k stellt eine unterschiedliche Zahl dar, abhängig davon, ob der Quellenspeicher die Hauptspeichereinheit MMU oder die Massenspeichereinheit EMU ist. Die Schaltung 71 sendet auf dem Bus C2LB aus, wenn der Quellenspeicher die Massenspeicherein heit EMU ist, und sie sendet auf dem Bus C2MB aus, wenn der Quellenspeicher die Hauptspeichereinheit MMU ist. Andererseits ist die logische Einheit 70 mit dem Bus CPBD verbunden, um die Daten ihrer internen Register mit dem Mikroprogramm auszutau schen, das von dem Mikroprozessor 43 ausgeführt wird.
- - Eine Ausrichtungsschaltung 80 überträgt die auf einem der Busse L2CB oder M2CB vorhandenen Daten zu dem Bus C2MB, wenn der Zielspeicher die Hauptspeichereinheit MMU ist, oder zu dem Bus C2LB, wenn der Zielspeicher die Massenspeichereinheit EMU ist. Wie der Fig. 7 zu entnehmen ist, weist die Ausrichtungs schaltung verschiedene interne Register auf, deren Inhalt über den Bus CPBD mit dem Mikroprogramm ausgetauscht wird.
Die Verschiebeeinrichtung CM 50 weist noch drei interne Regi
ster WE, SID und TID auf, die beim Schreibvorgang über den Bus
CPBA durch ein Mikroprogramm zugänglich sind. Das Register WE
enthält eine Autorisierung für einen Schreibvorgang in dem
Zielspeicher. Die zwei Register SID und TID enthalten globale
Information für einen Verschiebeprozeß. Das Register SID ent
hält zwei Bits, deren Kombination den Quellenspeicher identi
fiziert. Beispielsweise zeigt das auf den Wert Null gesetzte
erste Bit an, daß der Quellenspeicher die Hauptspeichereinheit
MMU ist, und das auf den Wert Eins gesetzte erste Bit zeigt
an, daß der Quellenspeicher eine Massenspeichereinheit EMU
ist; das zweite Bit steht zur Verfügung, um zu präzisieren,
welche Massenspeichereinheit EMU der Quellenspeicher ist. Das
Register TID enthält die Identifizierung des Ziels 51, 54, 55
der Verschiebung. Beispielsweise zeigt das auf den Wert Null
gesetzte erste Bit an, daß der Zielspeicher die Hauptspei
chereinheit MMU ist, und das auf den Wert Eins gesetzte erste
Bit zeigt an, daß der Zielspeicher eine Massenspeichereinheit
EMU ist; das zweite Bit steht zur Verfügung, um zu präzisie
ren, welche Massenspeichereinheit der Zielspeicher ist. Es ist
daher möglich, eine Verschiebung von der Hauptspeichereinheit
MMU 9 zu der Massenspeichereinheit EMU 8 oder zu der Massen
speichereinheit EMU 12 und von der Massenspeichereinheit EMU 8
oder der Massenspeichereinheit EMU 12 zu der Hauptspeicherein
heit MMU 9 durchzuführen. Es ist weiterhin möglich, eine Ver
schiebung direkt von der Massenspeichereinheit EMU 8 zu der
Massenspeichereinheit EMU 12 oder von der Massenspeicherein
heit EMU 12 zu der Massenspeichereinheit EMU 8 durchzuführen,
ohne über die Hauptspeichereinheit MMU zu gehen.
Fig. 5 zeigt die logische Einheit 60 mit mehr Einzelheiten.
Auf dieser Figur sind die Register, die eine Adresse des
Zielspeichers enthalten, mit einer mnemotechnischen Abkürzung
bezeichnet, die von der Nummer des ersten Bits und der ver
wendbaren Länge des Registers, ausgedrückt in Bits, gefolgt
ist. Die anderen Register sind nur mit einer mnemotechnischen
Abkürzung bezeichnet.
Vier Register OVFB, WMSKB, OVFE und WMSKE sind beim
Schreibvorgang über den Bus CPBD durch ein Mikroprogramm zu
gänglich. Das Register OVFB enthält eine Angabe für den
Schreibzugriff auf den ersten Block des Zielspeichers, der die
Verschiebung empfangen soll. Wie bereits ausgeführt, besteht
ein Block aus 2n Unterblöcken. Das Register WMSKB enthält eine
Maske, die mit n Bits kodiert ist und die in dem besagten er
sten Block den aus 2m Bytes bestehenden Unterblock bezeichnet,
an dem der Schreibvorgang beginnt. Das Register OVFE enthält
eine Angabe für den Schreibzugriff auf den letzten Block des
Zielspeichers, der die Verschiebung empfangen soll. Das Regi
ster WMSKE enthält eine Maske, die mit n Bits kodiert ist und
die in dem besagten letzten Block den aus 2m Bytes bestehenden
Unterblock bezeichnet, an dem der Schreibvorgang endet. Eine
Schaltung 63 ist dazu vorgesehen, zu der Schaltung 61 die
Adresse des ersten Unterblocks in dem Zielspeicher, der ver
schoben werden soll, zu übertragen. Diese Adresse wird mit
Hilfe des Inhalts der Register OVFB und WMSKB bestimmt. Eine
Schaltung 64 ist dazu vorgesehen, zu der Schaltung 61 die
Adresse des letzten Unterblocks in dem Zielspeicher, der ver
schoben werden soll, zu übertragen. Diese Adresse wird mit
Hilfe des Inhalts der Register OVFE und WMSKE bestimmt.
Zwei Register WPA und WIPA sind beim Schreibvorgang und beim
Lesevorgang über den Bus CPBD durch ein Mikroprogramm zugäng
lich. Das Register WPA enthält die mit j Bits kodierte Adresse
der Seite des Zielspeichers, zu der die Verschiebung im Gang
ist. Das Register WIPA enthält die mit k Bits kodierte Adresse
des Blocks, zu dem die Verschiebung im Gang ist, auf der Sei
te, auf die der Inhalt des Registers WPA zeigt. Der Inhalt der
Register WPA und WIPA wird zu der Schaltung 61 übertragen.
Von der Schaltung EMA 5 aus gesehen, ist es möglich,
Schreibvorgänge W2n+mB mit 2n+m Bytes und partielle
Schreibvorgänge PW2n+mB auf einem vollständigen Block der ent
fernten Massenspeichereinheit EMU durchzuführen. Die
Schreibanforderungen in vollständigen Blöcken erhöhen die Da
tenübertragungsgeschwindigkeiten. Vom Beginn des Schreibvor
gangs in dem Zielspeicher an, wenn dieser eine Massenspei
chereinheit EMU ist, wird das Register WIPA inkrementiert, wie
im folgenden Absatz erläutert wird. Die Schaltung EMA 5 sieht
mögliche Schreibvorgänge W2pB innerhalb eines Blocks der loka
len Hauptspeichereinheit MMU vor, durch Unterblöcke aus 2p
Bytes mit partiellen Schreibvorgängen PW2pB innerhalb eines
Unterblocks mit 2p Bytes, wobei p verschiedene Werte kleiner
oder gleich 2n+m annehmen kann. Beim Beginn eines Schreibvor
gangs in dem Zielspeicher, wenn dieser die Hauptspeicherein
heit MMU ist, kann es notwendig sein, einen partiellen
Schreibvorgang PW2pB innerhalb eines Unterblocks mit 2p Bytes,
gefolgt von Schreibvorgängen W2pB innerhalb eines Blocks mit
2n+m Bytes, durchzuführen, bevor der Schreibvorgang sich am
Anfang des Blocks des Zielspeichers fortsetzt. In diesem Fall
bleibt der Inhalt des Registers WIPA unverändert, bis sich der
Schreibvorgang am Anfang des Blocks des Zielspeichers fort
setzt und das Register WIPA inkrementiert wird, wie im folgen
den Absatz erläutert wird.
Bei jeder Übertragung des Inhalts des Registers WIPA zu der
Schaltung 61 wird der Inhalt des Registers WIPA mit Hilfe ei
ner Schaltung 65 um eine Einheit inkrementiert, um auf den
folgenden Block auf derselben Seite zuzugreifen. Bei jedem
Überlauf des Registers WIPA erzeugt eine Schaltung 66 eine Un
terbrechung in einem Register EVENT, das über die Verbindung
62 direkt mit dem Schnittstellensteuerungsprozessor CP 57 ver
bunden ist. Das Register EVENT ermöglicht es, die Quelle einer
Unterbrechung zu speichern und ist beim Lesevorgang über den
Bus CPBD durch ein Mikroprogramm zugänglich.
Zwei Register WNV und WNPA sind beim Schreibvorgang über den
Bus CPBD durch ein Mikroprogramm zugänglich. Das Register WNPA
enthält die mit j Bits kodierte Adresse einer Seite, die auf
die Seite folgt, zu der die Verschiebung im Gang ist. Der In
halt des Registers WNPA wird in das Register WPA geladen, wenn
das Register WNV anzeigt, daß dieser Inhalt gültig ist, und
wenn die vorhergehende Seite abgeschlossen ist.
Fig. 6 zeigt die logische Einheit 70 detaillierter und mit
denselben Bezeichnungskonventionen wie in der Fig. 5.
Vier Register RPA, RIPA, RAC und RLP sind beim Schreibvorgang
über den Bus CPBD durch ein Mikroprogramm zugänglich. Das Re
gister RPA enthält die mit j Bits kodierte Adresse der Seite
des Quellenspeichers, von der ausgehend die Verschiebung gera
de angefragt wird. Das Register RIPA enthält die mit k Bits
kodierte Adresse des Blocks auf der Seite, auf die der Inhalt
des Registers RPA zeigt, von dem ausgehend die Verschiebung
gerade angefragt wird. Die Ausgänge der Register RPA und RIPA
sind mit der Schaltung 71 zur Erzeugung der Zugriffsadressen
im Quellenspeicher verbunden. Bei jeder Übertragung des In
halts des Registers RIPA zu der Schaltung 71 wird der Inhalt
des Registers RIPA mit Hilfe einer Schaltung 75 um eine Zahl q
inkrementiert. Das Register RAC enthält die mit h Bits kodier
te Anzahl der Blöcke, die für den Zugriff auf der Seite, auf
die der Inhalt des Registers RPA zeigt, verbleiben. Allgemein
ist h gleich zu k+1, so daß die maximale Anzahl 2k der auf ei
ner Seite vorhandenen Blöcke kodiert werden kann. Bei jeder
Übertragung des Inhalts des Registers RAC zu der Schaltung 71,
wird der Inhalt des Registers RAC mit Hilfe einer Schaltung 72
um die Zahl q dekrementiert. Die Zahl q stellt eine Anzahl be
nachbarter Blöcke dar, die mit einem einzigen Lesebefehl zu
gänglich sind. Das Register RLP enthält eine Markierung, die
anzeigt, ob die Seite, auf die der Inhalt des Registers RPA
zeigt, die letzte Seite ist, auf die zur Zeit einer Verschie
bung zugegriffen wird. Die Register RLP, RPA und RIPA sind
beim Lesevorgang über den Bus CPBD durch ein Mikroprogramm zu
gänglich.
Vier Register RNPA, RNAC, RNLP und RNV sind beim Schreibvor
gang über den Bus CPBD durch ein Mikroprogramm zugänglich. Das
Register RNPA enthält die mit j Bits kodierte Adresse der Sei
te des Quellenspeichers, die auf die Seite folgt, von der aus
gehend die Verschiebung gerade angefragt wird. Das Register
RNAC enthält die mit h Bits kodierte Anzahl der Blocks, die
für den Zugriff auf der Seite, auf die der Inhalt des Regi
sters RNPA zeigt, verbleiben. Das Register RNLP enthält eine
Markierung, die anzeigt, ob die Seite, auf die der Inhalt des
Registers RNPA zeigt, die letzte Seite ist, auf die bei einer
Verschiebung zugegriffen wird. Der Inhalt jedes Registers
RNPA, RNAC und RNLP wird jeweils zu den Registern RPA, RAC und
RLP übertragen, wenn der Inhalt des Registers RNV anzeigt, daß
die Inhalte der Register RNPA, RNAC und RNLP für die Übertra
gung gültig sind.
Fig. 7 zeigt die Ausrichtungsschaltung 80 detaillierter. Ein
Stapel 81 vom Typ PEPS (Premier-Entre-Premier-Sortie: First-
In-First-Out) empfängt eingangseitig von dem Bus L2CB oder dem
Bus M2CB ausgehende Daten und führt seine Daten ausgangsseitig
dem Bus C2MB oder dem Bus C2LB zu. Der Stapel 81 besteht aus
2n Elementen, von denen jedes eine Anzahl Bits enthält, die
gleich der Breite des Datenpfades auf den Bussen C2LB, C2MB,
L2CB und M2CB ist. Zwei Register DSWP und DSRP sind beim
Schreibvorgang über den Bus CPBD durch ein Mikroprogramm zu
gänglich. Das Register DSRP enthält einen Zeiger auf ein Ele
ment des Stapels 81, um dieses auf den Bus C2LB zu schreiben,
wenn der Zielspeicher die Massenspeichereinheit EMU ist, oder
um dieses auf den Bus C2MB zu schreiben, wenn der Zielspeicher
die Hauptspeichereinheit MMU ist. Der Inhalt des Registers
DSRP wird bei jedem Schreiben eines Elements auf einen der
Busse C2LB oder C2MB mit Hilfe einer Schaltung 83 um eine Ein
heit inkrementiert. Das Register DSWP enthält einen Zeiger auf
ein Element des Stapels 81, um dieses von dem Bus L2CB zu le
sen, wenn der Quellenspeicher die Massenspeichereinheit EMU
ist, oder um dieses von dem Bus M2CB zu lesen, wenn der Quel
lenspeicher die Hauptspeichereinheit MMU ist. Der Inhalt des
Registers DSWP wird bei jedem Lesen eines Elements von einem
der Busse L2CB oder M2CB mit Hilfe einer Schaltung 82 um eine
Einheit inkrementiert. Das Register DSRP ist beim Lesevorgang
über den Bus CPBD durch ein Mikroprogramm zugänglich.
Der folgende Teil der Beschreibung erläutert den Ablauf einer
Verschiebung. Eine Verschiebung wird mit Hilfe der Verschiebe
einrichtung 50 auf Anfrage eines Prozessors des Rechners
durchgeführt, der die Hauptspeichereinheit MMU enthält. Hierzu
schickt der Prozessor, der die Verschiebung anfragt, über den
Bus ASB zu der Schaltung 41 eine Folge von Initialisierungsda
ten, die die Verschiebung kennzeichnen. Diese Initialisie
rungsdaten werden in die Schaltung 41 gesendet, und zwar zu
dem Speicher 48 über den Bus M2CB, den Schnittstellensteue
rungsprozessor CP 57 und den Bus PID. Mit Hilfe des in dem
Speicher 48 vorhandenen Mikroprogramms steuert der Mikropro
zessor die Verschiebung ausgehend von diesen Daten.
Anhang 1 und Anhang 2 geben ein Beispiel für Sequenzen des be
sagten Mikroprogramms zur Initialisierung des Inhalts der zu
vor beschriebenen Register beim Start einer Verschiebung. Um
das Verständnis zu erleichtern sind die Werte der Register,
die in den Figuren mit Großbuchstaben bezeichnet sind, in den
Befehlszeilen mit kleinen Buchstaben bezeichnet.
Anhang 1 beschreibt die Initialisierung für die Lesezugriffe
auf die erste Seite des Quellenspeichers und den Schreibzu
griff auf die erste Seite des Zielspeichers.
- - Die Zeilen 1 bis 4 speichern für eine Verschiebung ausgehend von einer entfernten Massenspeichereinheit EMU, die mit 0 oder 1 markiert ist, in das Register TID den Wert 00 oder 01 ein, oder sie speichern für eine Verschiebung ausgehend von dem lo kalen Hauptspeicher MMU den Wert 1x ein.
- - Die Zeile 5 speichert in das Register SID die Kennzeichnung des Ports ein, der mit dem Quellenspeicher in Verbindung steht, beispielsweise 00 für den Port 55, 10 für den Port 51 und 11 für den Port 54.
- - Die Zeile 6 verzögert die Übertragung des Schreibzugriffs in dem Zielspeicher, indem der Inhalt des Registers WE auf Null gesetzt wird.
- - Die Zeilen 7 bis 16 ermöglichen die Initialisierung der Le sezugriffe auf der Seite des Quellenspeichers, auf der die Verschiebung beginnt.
Die Massenspeichereinheit EMU und die Hauptspeichereinheit MMU
sind in Seiten aufgeteilt. Jede Seite ist ihrerseits in 2k
Blöcke aus 2n Unterblocks aufgeteilt. Jeder Unterblock enthält
2m Bytes. In einem Speicher mit höchstens 2j Seiten ist die
Adresse jedes Bytes folglich mit j+k+n+m Bits kodiert.
Von den Initialisierungsdaten werden drei Werte erläutert:
- - rad[{i}0:j+k+n+m] stellt eine Ausgangsadresse der i-ten Sei te des Quellenspeichers dar, die beginnend mit dem Bit 0 auf einer Länge von j+k+n+m Bits kodiert ist; entsprechend dersel ben Schreibkonvention ist es möglich, aus diesen Daten bei spielsweise rad[{0}j+k:n] zu extrahieren, womit die Adresse des ersten auf die Seite übertragenen Unterblocks bezeichnet ist.
- - wad[{i}0:j+k+n+m] stellt eine Ausgangsadresse der i-ten Sei te des Zielspeichers dar, die beginnend mit dem Bit 0 auf ei ner Länge von j+k+n+m Bits kodiert ist;
- - Eine Zahl lgthxmB stellt eine Länge der Verschiebung in Ein heiten von Unterblöcken mit 2m Bytes dar.
- - Zeile 7 des Mikroprogramms berechnet die Länge der Verschie bung in Blöcken mit 2n+m Bytes. Die Grundlage der verwendeten Formel wird nun erläutert. Um die Verschiebung zu beschleuni gen, wird das Auslesen des Quellenspeichers in Blöcken mit 2n+m Bytes durchgeführt. Eine Anzahl lgthxn an Blöcken mit 2n+m Bytes, auf die beim Lesen in dem Quellenspeicher zuge griffen wurde, wird ausgehend von der Zahl lgthxmB berechnet.
Eine Verschiebung beginnt an irgendeinem Unterblock innerhalb
des Blocks. Der erste aus dem Quellenspeicher auszulesende
Block weist also eine Anzahl x an Unterblöcken auf, die durch
die Formel
x = 2n - rad[{0}j+k:n]
gegeben ist. Die ganzzahlige Division der Zahl (lgthxmB-x)
durch 2n ergibt eine Anzahl y an vollständigen zu verschieben
den Blöcken:
y = (lgthxmB - x)/2n.
Wenn der Rest der ganzzahligen Division eine Zahl z ungleich 0
ist, ist es erforderlich, einen zusätzlichen Block aus dem
Quellenspeicher auszulesen, um die verbleibenden z Unterblöcke
zu verschieben. Da die Zahl z zwischen 0 und 2n-1 liegt, er
gibt die ganzzahlige Division von (z + 2n-1) mit 2n eine Zahl
q von zusätzlichen Blöcken ( höchstens gleich Eins):
q = (z + 2n-1)/2n.
Schließlich ist die Anzahl lgthxn der aus dem Quellenspeicher
auszulesenden Blöcke durch die Formel:
lgthxn = 1 + y + q = 1 + (2ny + z + 2n-1)/2n
gegeben.
Schreibt man z = lgthxmB - x - 2ny
wird lgthxn = 1 + (lgthxmB + rad[{0}j+k:n] - 1)/ 2n.
wird lgthxn = 1 + (lgthxmB + rad[{0}j+k:n] - 1)/ 2n.
- - Die Zeile 8 speichert auf den j Bits des Registers RPA die Adresse der ersten Seite des Quellenspeichers, auf der die Verschiebung beginnt.
- - Die Zeile 9 speichert auf den k Bits des Registers RIPA die Adresse des ersten Unterblocks des Quellenspeichers, mit dem die Verschiebung beginnt.
- - Die Zeilen 10 bis 16 ermöglichen es, in das Register RAC die mit (k+1) Bits kodierte Anzahl der von der ersten Seite, auf die in dem Quellenspeicher zugegriffen wurde, auszulesenden Blöcke einzuspeichern und in das Register RLP einen Wert ein zuspeichern, der anzeigt, ob die erste Seite, auf die zuge griffen wurde, die letzte ist oder ob sie nicht die letzte ist. Wenn die Anzahl lgthxn der aus dem Quellenspeicher auszu lesenden Blöcke größer oder gleich zu der Anzahl der Blöcke ist, die zwischen der Adresse des ersten auszulesenden Blocks und dem maximalen in Blöcken gezählten Inhalt einer Seite lie gen, ist es erforderlich, auf die folgenden Seiten zuzugrei fen, um alle Blöcke aus dem Quellenspeicher auszulesen. Ein Wert, beispielsweise 0, wird in das Register RLP eingespei chert, um anzuzeigen, daß die erste Seite, auf die zugegriffen wurde, nicht die letzte ist. Die Anzahl der Blöcke, die zwi schen der Adresse des ersten auszulesenden Blocks und dem ma ximalen Inhalt einer Seite liegen, wird in das Register RAC eingespeichert. Die verbleibende Anzahl der Blöcke, die über die erste Seite hinaus ausgelesen werden sollen, ist wie eine neue Zahl lgthxn von aus dem Quellenspeicher auszulesenden Blöcken zu behandeln. Wenn die Anzahl der aus dem Quellenspei cher auszulesenden Blöcke kleiner ist als die Anzahl der Blöcke, die zwischen der Adresse des ersten auszulesenden Blocks und dem in Blöcken gezählten maximalen Inhalt einer Seite lie gen, ist es nicht erforderlich, auf die folgenden Seiten zuzu greifen, um alle Blöcke aus dem Quellenspeicher auszulesen. Ein Wert, beispielsweise i, wird in das Register RLP einge speichert, um anzuzeigen, daß die erste Seite, auf die zuge griffen wurde, die letzte ist. Die erste Seite, auf die zuge griffen wurde, enthält alle Blöcke, die quantitativ durch die Anzahl lgthxn der aus dem Quellenspeicher auszulesenden Blöcke bestimmt ist, und die Anzahl lgthxn wird in das Register RAC eingespeichert. Ein von Null verschiedener Inhalt des Regi sters RAC führt zu einem Lesezugriff in dem Quellenspeicher.
Die Zeilen 17 bis 27 initialisieren Schreibzugriffe auf der
ersten Seite des Zielspeichers, auf der die Verschiebung be
ginnt.
- - Die Zeile 17 speichert die Adresse wad[{0}0:j] der ersten Seite, auf die zugegriffen wurde, in das Register WPA ein, das für die Adresse der derzeitigen Seite in dem Zielspeicher vor gesehen ist.
- - Die Zeile 18 speichert die Adresse wad[{0}j:k] des ersten Blocks, auf den zugegriffen wurde, in das Register WIPA ein, das für die Adresse auf der derzeitigen Seite in dem Zielspei cher vorgesehen ist.
- - Die Zeile 19 speichert die Adresse wad[{0}j+k:n] des ersten Unterblocks, auf den zugegriffen wurde, in das Register WMSKB ein, das für die Maske vorgesehen ist, die den Beginn des Schreibvorgangs in dem Zielspeicher kennzeichnet.
- - Die Zeile 20 speichert die Adresse (wad[{0}j+k:n)+lgthmB-1) modulo 2n des letzten Unterblocks, auf den innerhalb des letz ten Blocks zugegriffen wurde, in das Register WMSKE ein, das für die Maske vorgesehen ist, die das Ende des Schreibvorgangs in dem Zielspeicher kennzeichnet.
- - Die Zeile 21 berechnet die Differenz zwischen der Adresse wad[{0}j+k:n] des ersten Unterblocks, auf den beim Schreibvor gang innerhalb des ersten Blocks zugegriffen wurde, und der Adresse rad[{0}j+k:n] des ersten Unterblocks, auf den beim Le sevorgang innerhalb des ersten Blocks zugegriffen wurde. Diese Differenz stellt die Abweichung der Ausrichtung in dem ersten verschobenen Block zwischen dem Ort, an den der erste Unter block in den ersten Block des Zielspeichers geschrieben wird, und dem Ort dar, von dem der erste Unterblock in dem ersten Block des Quellenspeichers gelesen wird. Diese Differenz modu lo 2n wird in das Register DSWP eingespeichert. Wenn innerhalb des verschobenen Blocks die Lage des ersten geschriebenen Un terblocks vor der des ersten gelesenen Unterblocks liegt, ruft die Berechnung der Differenz einen Überlauf hervor, der an zeigt, daß der Lesevorgang des ersten Blocks in dem Quellen speicher nicht ausreicht, um den Schreibvorgang des ersten Blocks in dem Zielspeicher abzuschließen.
- - Die Zeile 22 speichert in das Register OVFB eine Anzeige des Überlaufs aus der Berechnung der Zeile 21 ein.
- - Die Zeile 23 berechnet die Differenz zwischen der Adresse des letzten in den Zielspeicher einzuschreibenden Blocks und der in Zeile 21 berechneten Abweichung. In der Zeile 7 wurde die Anzahl lgthxn der in dem Quellenspeicher zu lesenden Blöcke berechnet, um den Zielspeicher auf den neuesten Stand zu bringen. Wenn die in der Zeile 21 berechnete Abweichung größer ist als die Adresse des ersten Unterblocks, ruft die Berech nung der Differenz einen Überlauf hervor, der in das Register OVFE eingespeichert wird. Dies ermöglicht es der kombinatori schen Hardware der Schaltung 60 die Tatsache zu berücksichti gen, daß der letzte von dem Quellenspeicher empfangene Block zwei Blöcke in dem Zielspeicher überlappt.
- - Die Zeilen 24 bis 27 ermöglichen es, in das Register DSRP den Zeiger des Lesevorgangs in dem Stapel 81 einzuspeichern. Wenn der Zielspeicher die lokale Hauptspeichereinheit MMU ist, wird das Register DSRP mit dem Wert initialisiert, der in dem Register WMSKB enthalten ist. Dies ermöglicht es, den Schreibvorgang des ersten Unterblocks an der geeigneten Adres se innerhalb eines Blocks des Zielspeichers mit Hilfe der Schreibbefehle W2pB zu beginnen, auch wenn ein erster partiel ler Schreibbefehl P W2pB erforderlich ist. Wenn der Zielspei cher die entfernte Massenspeichereinheit EMU ist, wird das Re gister DSRP mit einem Wert Null initialisiert, da der Schreibvorgang des ersten Unterblocks an der geeigneten Adres se innerhalb eines Blocks des Zielspeichers direkt innerhalb eines vollständigen Blocks mit Hilfe eines partiellen Schreibvorgangs PW2n+mB durchgeführt werden kann.
- - Die Zeile 28 setzt das Register WE auf 1, um die Übertragung des Schreibzugriffs in dem Zielspeicher gültig zu machen, die entsprechend dem Empfang der aus dem Quellenspeicher herrüh renden Antworten durchgeführt wird.
Anhang 2 beschreibt die Initialisierung, die für den Lesezu
griff auf die folgende Seite des Quellenspeichers und den
Schreibzugriff auf die folgenden Seite des Zielspeichers er
forderlich ist.
- - Zeile 1 speichert in die j Bits des Registers RNPA die Adresse der zweiten Seite des Quellenspeichers ein, auf der die Verschiebung durchgeführt wird.
- - Die Zeilen 2 bis 8 greifen die Zeilen 10 bis 16 des Anhangs 1 wieder auf, die auf die folgende Seite angewendet werden, unter Berücksichtigung der Tatsache, daß der erste Unterblock an den Beginn der Seite geschrieben wird.
- - Zeile 9 macht den Inhalt der Register RNLP, RNPA und RNAC nach der Ausführung der Zeilen 1 bis 8 gültig.
- - Zeile 10 speichert die Adresse wad[{1}0:j) der zweiten Sei te, auf die zugegriffen wurde, in das Register WNPA ein, das für die Adresse der folgenden Seite in dem Zielspeicher vorge sehen ist.
- - Zeile 11 macht den Inhalt des Registers WNPA nach der Aus führung der Zeile 10 gültig.
Weiterhin wird nun erläutert, wie eine Verschiebung nach der
Phase der Initialisierung abläuft. Die Inhalte der Register
RLP, RPA, RIPA und RAC werden zu der Schaltung 71 übertragen.
Die Schaltung 71 erzeugt ausgehend von den Inhalten der Regi
ster RPA und RIPA eine Leseanforderung für q Blöcke in dem
Quellenspeicher. Bei jeder Übertragung des Inhalts der Regi
ster wird der Inhalt des Registers RIPA mit Hilfe der Schal
tung 75 um q inkrementiert und der Inhalt des Registers RAC um
denselben Wert q dekrementiert. Nachfolgend werden die vorste
henden Operationen wiederholt, bis der Inhalt des Registers
RAC über Null läuft. Wenn der Inhalt des Registers RAC über
Null läuft und wenn der Inhalt des Registers RLP eine letzte
Seite anzeigt, liest die Schaltung 71 ein Bit LMOS in die An
forderung ein, um das Ende einer Verschiebung anzuzeigen. Wenn
der Inhalt des Registers RLP keine letzte Seite anzeigt, ruft
ein gültiger Inhalt des Registers RNV die Übertragung der Re
gister RNLP, RNPA und RNAC jeweils in die Register RLP, RPA
und RAC hervor und der Inhalt des Registers RNV wird ungültig
gemacht. Das Mikroprogramm lädt die Register RNLP, RNPA, RNAC
und RNV erneut. Die vorstehend beschriebenen Operationen wie
derholen sich bis zum Ende der Verschiebung, das durch das
Einlesen des Bits LMOS angezeigt wird, das eine Endmarkierung
der Verschiebung darstellt.
Die Leseanforderungen werden über den Bus C2MB und die
Schnittstelle IOBXA als Nachrichten zu der Hauptspeicherein
heit MMU geschickt, wenn der Quellenspeicher die Hauptspei
chereinheit MMU ist, oder sie werden über den Bus C2LB und die
geeignete Schnittstelle SLC an die Massenspeichereinheit EMU
geschickt, wenn der Quellenspeicher die Massenspeichereinheit
EMU ist. Für jede Leseanforderung schickt der Quellenspeicher
eine oder mehrere Antwortnachrichten an die Schaltung 42. Jede
Antwortnachricht enthält einen Block gelesener Daten. Die
Schaltung 42 empfängt eine Antwort auf eine Anforderung mit
einer Latenz zeit, die von der Länge der Verbindungen und der
Verarbeitung in dem Quellenspeicher abhängt. Die Reihenfolge
der Anforderungsnachrichten wird für die Antwortnachrichten
beibehalten. Wenn eine Anforderungsnachricht auf q zu lesende
Blöcke Bezug nimmt, kehren q Antwortnachrichten in der Reihen
folge der q Blöcke innerhalb der Anforderungsnachricht zurück.
Die Reihenfolge wird dadurch beibehalten, daß die auf dem ge
samten Weg der Anforderungen und dann der Antworten liegenden
Register vom First-In-First-Out-Typ sind.
Beim Empfang der ersten Antwortnachricht wird der erste Daten
block der Nachricht zu der Ausrichtungsschaltung 80 übertra
gen, indem der erste Unterblock dieses Blocks in das Element
des Stapels 81 eingeschrieben wird, auf das der Inhalt des Re
gisters DSWP zeigt, der bei der Initialisierung geladen wurde.
Der Inhalt des Registers DSWP wird dann bei jedem Schreibvor
gang eines Unterblocks mit Hilfe der Schaltung 82 inkremen
tiert, um durch Unterblöcke den gesamten empfangenen Block zu
schreiben, d. h. bis der Inhalt des Registers DSWP erneut sei
nen anfänglichen Wert erreicht. In diesem Moment erzeugt die
Schaltung 61 eine Schreibanforderung in dem Zielspeicher an
hand der Inhalte der Register WPA, WIPA, OVFB, WMSKB, OVFE und
WMSKE, wie sie bei der Initialisierung geladen wurden. In der
Tat beginnt der Schreibvorgang so früh wie möglich. Der erste
in den Zielspeicher zu schreibende Block wird ausgehend von
der Ausrichtungsschaltung 80 in diesen Speicher eingespei
chert. Hierzu ist der erste aus dem Stapel 81 ausgelesene Un
terblock derjenige, der in dem Element enthalten ist, auf das
der Inhalt des Registers DSRP zeigt, der bei der Initialisie
rung geladen wurde. Bei jedem Lesevorgang eines Unterblocks
aus dem Stapel 81 wird der Inhalt des Registers DSRP mit Hilfe
der Schaltung 83 inkrementiert, um den folgenden Unterblock zu
lesen.
Außer möglicherweise zu Beginn der Verschiebung, wie zuvor
ausgeführt wurde, ruft jede Verwendung des Inhalts des Regi
sters WIPA durch die Schaltung 61 eine Inkrementierung des Re
gisters WIPA mit Hilfe der Schaltung 65 hinsichtlich des
Schreibvorgangs des folgenden Blocks in dem Zielspeicher her
vor.
Wenn der Inhalt des Registers DSRP über Null läuft, wird der
folgende, von dem Quellenspeicher empfangene Block ausgehend
von dem Element, auf das der Inhalt des Registers DSWP zeigt,
in den Stapel 81 geschrieben. Die Schaltung 61 erzeugt eine
Schreibanforderung in dem Zielspeicher anhand der Inhalte der
Register WPA, WIPA, OVFB, WMSKB, OVFE und WMSKE. Jede Inkre
mentierung des Registers DSWP erlaubt das Lesen eines Elements
des Stapels 81, auf das der Inhalt des Registers DSRP zeigt,
das weiterhin inkrementiert wird, um einen vollständigen Block
in die Nachricht der Schreibanforderung in dem Zielspeicher
einzuschreiben. Die Ausrichtungsschaltung verhält sich demnach
wie ein Verschieberegister, bei dem jedes Element eine Kapazi
tät aufweist, die gleich der Breite des Datenpfades ist und so
die Übertragung aller Blöcke einer Antwortnachricht zu dem
Quellenspeicher ermöglicht, die in dem Zielspeicher korrekt
angeordnet sind. Bei der Inkrementierung des Registers WIPA
zeigt der Durchgang seines Inhalts durch Null an, daß das Ende
der derzeitigen Seite erreicht wurde. Der Inhalt des Registers
WPA wird neu mit dem Inhalt des Registers WNPA geladen, der
durch das Register WNV gültig gemacht ist. Das Register WNV
wird ungültig gemacht. Der Durchgang des Inhalts des Registers
WIPA durch Null ruft gleichzeitig mit Hilfe der Schaltung 61
eine Unterbrechung hervor, die in das Register EVENT einge
speichert wird und zu dem Mikroprozessor 43 übertragen wird,
um die Register WNV und WNPA, falls erforderlich, neu zu la
den.
Der in dem vorstehenden Absatz beschriebene Prozeß wird bis
zum Ende des Empfangs der letzten Antwortnachricht durch die
Schaltung 42 fortgesetzt, die von dem Quellenspeicher kommt,
und wird wie durch die Endmarkierung angezeigt, die durch das
Bit LMOS angezeigt wird, das der Quellenspeicher in seinen
Antworten, ausgehend von den empfangenen Anforderungen, syste
matisch zurücksendet.
Es ist festzustellen, daß das Register WIPA in der Schaltung
60 die gleiche Rolle spielt wie das Register RIPA in der
Schaltung 70. Die Schaltung 60 benötigt indessen keinen Zähler
wie das Register RAC der Schaltung 70. Der Schreibvorgang der
Blöcke in den Zielspeicher wird so durchgeführt, wie die Blöc
ke in der Ausrichtungsschaltung 80 ankommen. Andererseits er
möglichen die Vorwegnahme-Register RNPA, beziehungsweise WNPA,
einen Lesevorgang in Seiten des Quellenspeichers, beziehungs
weise einen Schreibvorgang in Seiten des Zielspeichers, die
nicht notwendigerweise aneinandergrenzen. Es ist ebenfalls
festzustellen, daß die Anforderungen und die Antworten unab
hängig voneinander sind. Tatsächlich hindert nichts die Schal
tungen 70 und 71 daran, Leseanforderungen zu dem Quellenspei
cher auszugeben, während die Schaltungen 60 und 61 Schreiban
forderungen zu dem Zielspeicher ausgeben, die sich aus Antwor
ten auf vorausgehende Leseanfragen ergeben. In der Schaltung
42 ist der Eingang der Leseantworten dadurch synchron mit dem
Ausgang der Schreibanforderungen, daß die verschobenen Daten
blöcke von ihrem Empfang von dem Quellenspeicher an zu dem
Zielspeicher über die Ausrichtungsschaltung 80 übertragen wer
den. Auf diesem Niveau wird keine zusätzliche Latenzzeit ver
ursacht.
Eine Verschiebung kann aus verschiedenen Gründen unterbrochen
werden. Dies kann beispielsweise die Detektierung eines Feh
lers beim Schreiben oder beim Lesen sein. Dies kann ebenfalls
eine Unterbrechung sein, die durch einen Prozeß, der in dem
Rechner abläuft, in der Weise hervorgerufen wird, daß eine
Verschiebung mit höherer Priorität vorgezogen wird. Eine asyn
chrone Verschiebung vom Ein-Ausgabe-Typ ermöglicht es, eine
beträchtliche Anzahl an Daten weiterzugeben, ohne den Ablauf
des Prozesses zu behindern, der die Verschiebung angestoßen
hat. Im Gegensatz dazu ermöglicht eine synchrone Verschiebung
vom Befehlstyp es dem Prozeß, der die Verschiebung angestoßen
hat, nicht, einen folgenden Befehl weiterzugeben, bis die Ver
schiebung abgeschlossen ist. Synchrone Verschiebungen sind im
allgemeinen schneller als asynchrone Verschiebungen, da sie
eine beschränkte Anzahl an Daten weitergeben. Um einen Prozeß,
der eine synchrone Verschiebung anstößt, nicht zu lange zu un
terbrechen, wird eine synchrone Verschiebung vorzugsweise mit
höherer Priorität versehen als eine asynchrone Verschiebung.
Wenn die Schaltung 50 einen Fehler detektiert, verursacht sie
ein Anhalten entsprechend der im folgenden Absatz erläuterten
Sequenz. Wenn ein im Rechner ablaufender Prozeß eine vorrangi
ge Verschiebung anfordert, gibt er dies dem Mikroprozessor
über den Port 55, den Bus CPB, den Rumpfprozessor CP 57 und
den Bus PID bekannt. Wenn der Mikroprozessor 43 feststellt,
daß die angefragte Verschiebung eine höhere Priorität hat als
die derzeit ablaufende Verschiebung, schickt er über den Bus
CPBA einen Anhaltebefehl an die Schaltung 50. Die Schaltung 50
verursacht dann ein Anhalten entsprechend der im folgenden Ab
satz erläuterten Abfolge.
Die Schaltung 71 gibt mit der folgenden Anforderung des ablau
fenden Prozesses die Endmarkierung aus, indem sie das Bit LMOS
auf Eins setzt. Das Register RNV macht die Übertragung der Re
gister RLP, RPA, RIPA und RAC zu der Schaltung 71 ungültig, um
die Ausgabe von neuen Leseanforderungen zu dem Quellenspeicher
zu verbieten. Der Inhalt der Register RLP, RPA, RIPA und RAC
wird in dem Speicher 48 durch den Mikroprozessor 43 über den
Bus CPBD gesichert. Ein "schwebender" Zustand wird durch den
Empfang einer Antwortnachricht des Quellenspeichers detek
tiert, die die Endmarkierung enthält, wenn der Inhalt der Re
gister RAC, RLP, RNAC und RNLP nicht Null ist.
Wenn der "schwebende" Zustand durch die Detektierung eines
Fehlers verursacht wurde, bestimmt der Mikroprozessor 43 durch
Lesen der Inhalte der Register die Seite des Quellenspeichers
oder des Zielspeichers, auf der der Fehler aufgetreten ist.
Der Mikroprozessor 43 gibt dann den Fehler mit seiner Lokali
sierung zum Ergreifen von Maßnahmen dem Prozeß bekannt, der
die Verschiebung angestoßen hatte.
Wenn der "schwebende" Zustand durch die Anforderung einer Ver
schiebung mit höherer Priorität als die derzeit ablaufende
Verschiebung hervorgerufen wurde, lädt der Mikroprozessor 43
die Register der Schaltung 50 mit den Daten der Verschiebung
mit höherer Priorität. Wenn die Verschiebung mit höherer Prio
rität abgeschlossen ist, was durch die Endmarkierung detek
tiert wird, kann der Mikroprozessor 43 die schwebende Ver
schiebung wieder aufnehmen, indem die Register der Schaltung
50 mit den gesicherten Daten geladen werden. Die Unterbrechung
einer gerade ablaufenden Verschiebung ist dann für den Prozeß,
der die Verschiebung angestoßen hatte, transparent.
1 Wenn der Zielspeicher die Hauptspeichereinheit MMU ist
2 tid := 1x;
3 wenn nicht
4 tid := 0x;
5 sid := "Kennzeichnung der Ports 51, 54, 55, die in Verbin dung mit dem Quellenspeicher stehen";
6 we := 0
7 lgthxn := 1 + (lgthxmB + rad[{0}j+k:n) -1)/2n;
8 rpa 0:j := rad[{0} 0:j];
9 ripa 0:k : = rad[{0} j: k);
10 wenn ((2n - rad[{0} j:k]) <= lgthxn)
11 rlp := 0;
12 rac 0: k+ 1 := 2n - rad[{0} j:k);
13 lgthxn := lgthxn - (2n - rad[{0} j:k]);
14 wenn nicht
15 rlp := 1;
16 rac 0:k+1 := lgthxn;
17 wpa0:j := wad[{0}0:j];
18 wipa0:k := wad[{0}j:k));
19 wmskb0:n := wad[{0}j+k:n);
20 wmske0:n := (wad[{0}j+k:n]+lgthmB-1) modulo 2n;
21 dswp 0:n := wad{0}j+k:n] - rad[{0}j+k:n);
22 ovfb := Überlauf (wad[{0}j+k:n) - rad[{0}j+k:n])
23 ovfe := Überlauf (wmske0: n - dswp0: n);
24 wenn die Zielspeichereinheit die entfernte Speichereinheit ist
25 dsrp0:n := 000;
26 wenn nicht
27 dsrp0:n := wad[{0}j+k:n);
28 we:= 1
2 tid := 1x;
3 wenn nicht
4 tid := 0x;
5 sid := "Kennzeichnung der Ports 51, 54, 55, die in Verbin dung mit dem Quellenspeicher stehen";
6 we := 0
7 lgthxn := 1 + (lgthxmB + rad[{0}j+k:n) -1)/2n;
8 rpa 0:j := rad[{0} 0:j];
9 ripa 0:k : = rad[{0} j: k);
10 wenn ((2n - rad[{0} j:k]) <= lgthxn)
11 rlp := 0;
12 rac 0: k+ 1 := 2n - rad[{0} j:k);
13 lgthxn := lgthxn - (2n - rad[{0} j:k]);
14 wenn nicht
15 rlp := 1;
16 rac 0:k+1 := lgthxn;
17 wpa0:j := wad[{0}0:j];
18 wipa0:k := wad[{0}j:k));
19 wmskb0:n := wad[{0}j+k:n);
20 wmske0:n := (wad[{0}j+k:n]+lgthmB-1) modulo 2n;
21 dswp 0:n := wad{0}j+k:n] - rad[{0}j+k:n);
22 ovfb := Überlauf (wad[{0}j+k:n) - rad[{0}j+k:n])
23 ovfe := Überlauf (wmske0: n - dswp0: n);
24 wenn die Zielspeichereinheit die entfernte Speichereinheit ist
25 dsrp0:n := 000;
26 wenn nicht
27 dsrp0:n := wad[{0}j+k:n);
28 we:= 1
1 rnpa0:j := rnad[{i}0 : 28];
2 wenn (2n <= lgthxn)
3 rnlp := 0;
4 rnac0:h := 2n
5 lgthxn := lgthxn - 2n;
6 wenn nicht
7 rnlp := 1;
8 rnac0:h := lgthxn;
9 rnv := 1;
10 wnpa0:j := wad[{i}0:j];
11 wnv := 1;
12 Ende
2 wenn (2n <= lgthxn)
3 rnlp := 0;
4 rnac0:h := 2n
5 lgthxn := lgthxn - 2n;
6 wenn nicht
7 rnlp := 1;
8 rnac0:h := lgthxn;
9 rnv := 1;
10 wnpa0:j := wad[{i}0:j];
11 wnv := 1;
12 Ende
Claims (10)
1. Elektrische Schaltung (5) zur Verschiebung von Datenblöcken
von einer Quellenspeichereinheit (8, 9, 12) zu einer Zielspei
chereinheit (9, 12, 8) über einen Datenpfad (5, 6, 7), dadurch
gekennzeichnet, daß sie
- - Mittel (70, 71) zum Ausgeben von Leseanforderungen in einer gegebenen Reihenfolge für Blöcke in dem Quellenspeicher, die Mittel (RLP, RAC) zur Erzeugung einer Endmarkierung in der Le seanforderung des letzten Blocks aus dem Quellenspeicher auf weisen,
- - Mittel zu Speicherung (80), um die gelesenen Blöcke in Form von Antwortnachrichten in der Reihenfolge zu empfangen, in der die Anforderungen ausgegeben wurden,
- - und Mittel (60, 61) zum Ausgeben von Schreibanforderungen für Blöcke in dem Zielspeicher aufweist, die in den Mitteln zur Speicherung (80) nach Maßgabe des Empfangs der Antwort nachrichten empfangen wurden.
2. Schaltung nach Anspruch 1, dadurch gekennzeichnet, daß die
Mittel zur Erzeugung einer Endmarkierung im wesentlichen aus
- - einem Register (RLP) für die Anzeige, ob die Seite des Quel lenspeichers, auf die die Leseanforderungen gerichtet sind, die letzte Seite einer Verschiebung ist,
- - einem Register (RAC), das die Anzahl der Blöcke enthält, die in der Seite des Quellenspeichers, auf die die Leseanforderun gen gerichtet sind, noch zu lesen sind,
- - und einer logischen Schaltung (71) besteht, die eine Endmar kierung ausgibt, wenn das Register (RAC) über Null läuft, wäh rend das Register (RLP) anzeigt, daß die Seite des Quellen speichers, auf die Leseanforderungen gerichtet sind, die letz te Seite einer Verschiebung ist.
3. Schaltung nach Anspruch 2, dadurch gekennzeichnet, daß das
Mittel (70)
- - ein Register (RNLP) für die Anzeige, ob die folgende Seite des Quellenspeichers, auf die die Leseanforderungen gerichtet sein werden, die letzte Seite einer Verschiebung ist,
- - ein Register (RNAC), das die Anzahl der auf der folgenden Seite des Quellenspeichers, auf die die Leseanforderungen ge richtet sein werden, zu lesenden Blöcke enthält,
- - und ein Register (RNV) aufweist, das die Übertragung der In halte der Register (RNLP, RNAC) zu den Registern (RLP, RAC) beim Durchgang des Inhalts des Registers (RAC) durch Null gül tig macht.
4. Schaltung nach Anspruch 3, dadurch gekennzeichnet, daß das
Mittel (70)
- - ein Register (RPA), das die Adresse der Seite des Quellen speichers enthält, auf die die Leseanforderungen gerichtet sind,
- - ein Register (RIPA), das die Adresse des Blocks auf der be sagten Seite des Quellenspeichers enthält, bei dem der Lese vorgang beginnt,
- - und ein Register (RNPA) aufweist, das die Adresse der fol genden Seite des Quellenspeichers enthält, auf die Leseanfor derungen gerichtet sein werden.
5. Schaltung nach Anspruch 2, dadurch gekennzeichnet, daß das
Mittel (60)
- - ein Register (WPA), das die Adresse der Seite des Zielspei chers enthält, auf die die Schreibanforderungen gerichtet sind,
- - und ein Register (WIPA) aufweist, das die Adresse des Blocks auf der Seite des Zielspeichers enthält, bei dem der Schreibvorgang beginnt.
6. Schaltung nach Anspruch 5, dadurch gekennzeichnet, daß das
Mittel (60)
- - ein Register (WNPA), das die Adresse der folgenden Seite des Zielspeichers enthält, auf die Schreibanforderungen gerichtet sein werden,
- - und ein Register (WNV) aufweist, das die Übertragung des In halts des Registers (WNPA) zu dem Register (WPA) beim Überlauf des Inhalts des Registers (WIPA) gültig macht.
7. Rechner (1) mit wenigstens einer Prozessoreinheit (2) zum
Anstoßen von Verschiebungen zwischen seiner Hauptspeicherein
heit (9) und wenigstens einer entfernten ausgedehnten Spei
chereinheit (8) über einen Datenpfad (5, 6, 7), dadurch ge
kennzeichnet, daß er wenigstens eine Schaltung (5) nach einem
der vorstehenden Ansprüche enthält.
8. Verfahren zum Verschieben von Datenblöcken von einer Quel
lenspeichereinheit (8, 9, 12) zu einer Zielspeichereinheit (9,
12, 8) über einen Datenpfad (5, 6, 7), dadurch gekennzeich
net, daß es aus den folgenden Schritten besteht:
- - Ausgeben von Leseanforderungen für Blöcke in dem Quellen speicher in einer vorgegebenen Reihenfolge, wobei in der Le seanforderung des letzten Blocks aus dem Quellenspeicher eine Endmarkierung erzeugt wird,
- - Empfangen der gelesenen Blöcke in Form von Antwortnachrich ten in der Reihenfolge, in der die Anforderungen ausgegeben wurden, und
- - Ausgeben von Schreibanforderungen in dem Zielspeicher für die empfangenen Blöcke, nach Maßgabe des Empfangs der Antwort nachrichten.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die
Endmarkierung durch die Kombination zweier Bedingungen erzeugt
wird:
- - die Anzahl der noch zu lesenden Blöcke auf der Seite des Quellenspeichers, auf die die Leseanforderungen gerichtet sind, ist Null.
10. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß
- - die Endmarkierung bei Anforderung eines Anhaltens der Ver schiebung mit der nächsten Leseanforderung erzeugt wird, so daß der Prozeß in einen "schwebenden" Zustand überführt wird, und
- - der Inhalt der Register gesichert wird, um den "schwebenden" Zustand des Prozesses zu berücksichtigen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9607163A FR2749682B1 (fr) | 1996-06-10 | 1996-06-10 | Circuit pour transborder des donnees entre memoires distantes et calculateur comprenant un tel circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19722803A1 true DE19722803A1 (de) | 1997-12-11 |
Family
ID=9492880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19722803A Ceased DE19722803A1 (de) | 1996-06-10 | 1997-05-30 | Schaltung zur Verschiebung von Daten zwischen entfernten Speichern und ein diese Schaltung enthaltender Rechner |
Country Status (5)
Country | Link |
---|---|
US (1) | US6029233A (de) |
JP (1) | JP3210880B2 (de) |
DE (1) | DE19722803A1 (de) |
FR (1) | FR2749682B1 (de) |
GB (1) | GB2314181B (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6978323B1 (en) | 1999-08-26 | 2005-12-20 | Fujitsu Limited | Interface control device and computer system for controlling data transfer |
US8943228B2 (en) | 2008-09-30 | 2015-01-27 | Carl Zeiss Microscopy Gmbh | Peripheral interface, data stream, and data transfer method |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7490283B2 (en) * | 2004-05-13 | 2009-02-10 | Sandisk Corporation | Pipelined data relocation and improved chip architectures |
US7158421B2 (en) * | 2005-04-01 | 2007-01-02 | Sandisk Corporation | Use of data latches in multi-phase programming of non-volatile memories |
US7120051B2 (en) | 2004-12-14 | 2006-10-10 | Sandisk Corporation | Pipelined programming of non-volatile memories using early data |
US7849381B2 (en) * | 2004-12-21 | 2010-12-07 | Sandisk Corporation | Method for copying data in reprogrammable non-volatile memory |
US7409473B2 (en) * | 2004-12-21 | 2008-08-05 | Sandisk Corporation | Off-chip data relocation |
US7463521B2 (en) * | 2005-04-01 | 2008-12-09 | Sandisk Corporation | Method for non-volatile memory with managed execution of cached data |
US7447078B2 (en) * | 2005-04-01 | 2008-11-04 | Sandisk Corporation | Method for non-volatile memory with background data latch caching during read operations |
US7206230B2 (en) * | 2005-04-01 | 2007-04-17 | Sandisk Corporation | Use of data latches in cache operations of non-volatile memories |
US8275963B2 (en) * | 2008-02-01 | 2012-09-25 | International Business Machines Corporation | Asynchronous memory move across physical nodes with dual-sided communication |
US8327101B2 (en) * | 2008-02-01 | 2012-12-04 | International Business Machines Corporation | Cache management during asynchronous memory move operations |
US8095758B2 (en) * | 2008-02-01 | 2012-01-10 | International Business Machines Corporation | Fully asynchronous memory mover |
US8356151B2 (en) * | 2008-02-01 | 2013-01-15 | International Business Machines Corporation | Reporting of partially performed memory move |
US8015380B2 (en) * | 2008-02-01 | 2011-09-06 | International Business Machines Corporation | Launching multiple concurrent memory moves via a fully asynchronoous memory mover |
US8245004B2 (en) * | 2008-02-01 | 2012-08-14 | International Business Machines Corporation | Mechanisms for communicating with an asynchronous memory mover to perform AMM operations |
US20090327535A1 (en) * | 2008-06-30 | 2009-12-31 | Liu Tz-Yi | Adjustable read latency for memory device in page-mode access |
US8472280B2 (en) | 2010-12-21 | 2013-06-25 | Sandisk Technologies Inc. | Alternate page by page programming scheme |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4855903A (en) * | 1984-12-20 | 1989-08-08 | State University Of New York | Topologically-distributed-memory multiprocessor computer |
GB2176917B (en) * | 1985-06-19 | 1989-01-05 | Stc Plc | Data port |
FR2644260B1 (fr) * | 1989-03-08 | 1993-10-29 | Nec Corp | Dispositif de commande d'acces en memoire pouvant proceder a une commande simple |
DE68916945T2 (de) * | 1989-04-28 | 1995-03-16 | Ibm | Synchronisierschaltung für Datenüberträge zwischen zwei mit unterschiedlicher Geschwindigkeit arbeitenden Geräten. |
DE69230134T2 (de) * | 1991-08-16 | 2000-06-29 | Cypress Semiconductor Corp | Dynamisches hochleistungsspeichersystem |
US5506953A (en) * | 1993-05-14 | 1996-04-09 | Compaq Computer Corporation | Memory mapped video control registers |
US5446848A (en) * | 1993-06-25 | 1995-08-29 | Unisys Corp | Entry level data processing system which is expandable by a factor of two to a partitionable upgraded system with low overhead |
DE4340551A1 (de) * | 1993-11-29 | 1995-06-01 | Philips Patentverwaltung | Programmspeichererweiterung für einen Mikroprozessor |
-
1996
- 1996-06-10 FR FR9607163A patent/FR2749682B1/fr not_active Expired - Fee Related
-
1997
- 1997-05-30 DE DE19722803A patent/DE19722803A1/de not_active Ceased
- 1997-06-02 US US08/867,410 patent/US6029233A/en not_active Expired - Lifetime
- 1997-06-09 GB GB9711943A patent/GB2314181B/en not_active Expired - Fee Related
- 1997-06-10 JP JP15177797A patent/JP3210880B2/ja not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6978323B1 (en) | 1999-08-26 | 2005-12-20 | Fujitsu Limited | Interface control device and computer system for controlling data transfer |
DE10029986B4 (de) * | 1999-08-26 | 2006-03-23 | Fujitsu Limited, Kawasaki | Schnittstellensteuervorrichtung, Computersystem und Verfahren zum Steuern der Datenübertragung |
US8943228B2 (en) | 2008-09-30 | 2015-01-27 | Carl Zeiss Microscopy Gmbh | Peripheral interface, data stream, and data transfer method |
Also Published As
Publication number | Publication date |
---|---|
JPH1083372A (ja) | 1998-03-31 |
FR2749682B1 (fr) | 1998-07-10 |
GB2314181B (en) | 2000-06-28 |
JP3210880B2 (ja) | 2001-09-25 |
GB9711943D0 (en) | 1997-08-06 |
GB2314181A (en) | 1997-12-17 |
US6029233A (en) | 2000-02-22 |
FR2749682A1 (fr) | 1997-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19722803A1 (de) | Schaltung zur Verschiebung von Daten zwischen entfernten Speichern und ein diese Schaltung enthaltender Rechner | |
DE2350884C2 (de) | Adreßumsetzungseinheit | |
DE3338345C2 (de) | ||
DE2657848C2 (de) | ||
DE3004827C2 (de) | Datenverarbeitungsanlage | |
DE2637054C3 (de) | Steuervorrichtung für einen Pufferspeicher | |
DE1774296B2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE3301628A1 (de) | Schaltungsanordnung fuer den datenaustausch zwischen zwei rechnern | |
DE2719247B2 (de) | Datenverarbeitungssystem | |
DE4142756A1 (de) | Datenweg-einrichtung zur kopplung zweier busse | |
DE2635592A1 (de) | Multiprozessor-abrufsystem | |
DE2130299A1 (de) | Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen | |
DE19614237C1 (de) | Kommunikationssystem mit einer Meisterstation und mindestens einer Sklavenstation | |
DE69724732T2 (de) | Atomare Operation in Fernspeicher und Vorrichtung zur Durchführung der Operation | |
EP0739509B1 (de) | Anordnung mit master- und slave-einheiten | |
DE3343348A1 (de) | Anordnung zur datenuebertragung zwischen mehreren prozessoren und einem speicher | |
DE3142504A1 (de) | Mehrfachplattenspeicher-uebertragungssystem | |
EP0409330A2 (de) | Schaltungsanordnung zum Steuern des Zugriffs auf einen Speicher | |
DE4135031A1 (de) | Eingabe/ausgabeeinrichtungen | |
DE1774845A1 (de) | Einrichtung zur Adressenpruefung und -modifizierung in einem Datenverarbeitungssystem mit dynamischer Adressenverschiebung | |
DE2902477A1 (de) | Datenverarbeitungsanordnung | |
DE102008001739A1 (de) | Verfahren zum Steuern eines Zugriffs auf Bereiche eines Speichers aus mehreren Prozessen heraus und Kommunikations-Modul mit einem Nachrichten-Speicher zur Realisierung des Verfahrens | |
EP2728477A1 (de) | Verfahren und Logikschaltung zum Kopieren von Daten, Speichervorrichtung und Datenverarbeitungsvorrichtung | |
DE3016269C2 (de) | ||
DE2629311C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: BULL S.A., LES CLAYES SOUS BOIS, FR |
|
8131 | Rejection |