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 Rechner

Info

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
Application number
DE19722803A
Other languages
English (en)
Inventor
Jack Abily
Jean-Francois Autechaud
Christophe Dionet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull Sa Les Clayes Sous Bois Fr
Original Assignee
Bull SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull SA filed Critical Bull SA
Publication of DE19722803A1 publication Critical patent/DE19722803A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling 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
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.
  • - 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.
Anhang 1
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
Anhang 2
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

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.
DE19722803A 1996-06-10 1997-05-30 Schaltung zur Verschiebung von Daten zwischen entfernten Speichern und ein diese Schaltung enthaltender Rechner Ceased DE19722803A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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