DD220439B1 - Verfahren zur schnellen blockweisen datenuebertragung zwischen den speichern zweier rechnern - Google Patents
Verfahren zur schnellen blockweisen datenuebertragung zwischen den speichern zweier rechnernInfo
- Publication number
- DD220439B1 DD220439B1 DD25867383A DD25867383A DD220439B1 DD 220439 B1 DD220439 B1 DD 220439B1 DD 25867383 A DD25867383 A DD 25867383A DD 25867383 A DD25867383 A DD 25867383A DD 220439 B1 DD220439 B1 DD 220439B1
- Authority
- DD
- German Democratic Republic
- Prior art keywords
- data
- address
- target computer
- computer
- memory
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 19
- 230000005540 biological transmission Effects 0.000 title claims description 16
- 230000015654 memory Effects 0.000 claims description 73
- 230000004913 activation Effects 0.000 description 11
- 230000000977 initiatory effect Effects 0.000 description 11
- 239000003999 initiator Substances 0.000 description 10
- 230000008878 coupling Effects 0.000 description 8
- 238000010168 coupling process Methods 0.000 description 8
- 238000005859 coupling reaction Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 235000021251 pulses Nutrition 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000032258 transport Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004804 winding Methods 0.000 description 2
- 101100272280 Gibberella fujikuroi (strain CBS 195.34 / IMI 58289 / NRRL A-6831) BEA1 gene Proteins 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Landscapes
- Multi Processors (AREA)
Description
Hierzu 3 Seiten Zeichnungen
Anwendungsgebiet der Erfindung
Die Erfindung betrifft ein Verfahren zur schnellen blockweisen Datenübertragung zwischen den Speichern von Rechnern, deren interne Datenbusse über Bustrenneinheiten an einem gemeinsamen Datenbus liegen, wobei der Initiativrechner Lese- bzw. Schreibbefehle auf den Speicher des Zielrechners ausführt. : .
Charakteristik des bekannten Standes der Technik
Die Kopplung von Rechnern hat allgemein den Austausch von Daten zum Inhalt. Dieser Datenaustausch kann so gewünscht sein, daß Speicher- oder E/A-Einheiten eines anderen Rechners direkt mitbenutzt werden, der allgemeine und für eine arbeitsteilige Arbeitsweise interessante Fall ist aber der, daß Anfangs- bzw. Ergebnisdaten sowie Befehlsanweisungen ausgetauscht werden, so daß eine verhältnismäßig autonomer Betrieb der einzelnen Rechner möglich ist.
Hieraus resultiert der Wunsch, Daten vom Speicher eines Rechners auf möglichst direktem Wege zum Speicher eines anderen Rechners zu transportieren.
Dieses Problem wird bei einem bekannten Mehrrechnersystem (DT-OS 2713304) gelöst, indem die Adreß-und Datenschienen der einzelnen Rechner über Tristate-Zweiwegtreiberbausteine miteinander verbunden sind und Schaltungsmaßnahmen vorgesehen sind, die es gestatten, die Schreib- und Lesesteuersignale sowohl an den eigenen als auch an den Speicher des Rechners zu führen, mit dem Daten ausgetauscht werden sollen. Jedem Rechner steht im Schreib-Lesespeicher jedes anderen Rechners ein eigener Speicherbereich zur Verfügung, in den er mittels direktem Speicherzugriff die zu übermittelnden Daten einschreiben bzw. lesen kann.
Diese Anordnung bietet infolge des direkten Speicherzugriffs die Möglichkeit derfreien Adressierbarkeit des Austauschspeichers im Zielrechner. Diese Eigenschaft wird durch einen verhältnismäßig hohen Aufwand an Tristate-Zweiwegtreiberbausteinen und Busleitungen erkauft, da die elektrische Übertragung einer Adreßinformation von 10... 16 Bit Breite erforderlich ist. Neben dem hohen Aufwand weist diese Vielzahl von Verbindungsleitungen und Treiberbausteinen den Nachteil einer geringeren Zuverlässigkeit bzw. größeren Störanfälligkeit sowie einer komplizierteren Fehlersuche auf.
Eine andere bekannte Schaltungsanordnung (DD-PS 137627) schlägt eine ähnliche Rechnerverbindungsanordnung vor, die einen Koppelbus, bestehend aus Adreß-, Daten-, Steuer- und Anforderungsbus, verwendet. Zusätzlich wird ein spezieller Kommunikationsrechner vorgeschlagen, der die Einleitung des Datenaustauschs mit geringem Zeitaufwand sowie die Reihenfolge der Rechner organisieren soll. Grundsätzlich liegen hier die gleichen, bereits beim vorher beschriebenen Mehrrechnersystem festgestellten Nachteile vor.
Bei einer anderen Mehrrechnerkopplung (DD-PS 142135) wird vorgeschlagen, jede Recheneinheit über eine Eingabe-/ Ausgabetorschaltung an gemeinsame Sammelleitungen for Daten- und Adreßinformationen anzuschließen, wobei jede E/A-Torschaltung über eine besondere Steuerschaltung zur Übertragung der Steuersignale an eine Sammelleitung zum asynchronen, direkten und konfliktfreien Datenaustausch angeschlossen ist. Der Datenaustausch selbst erfolgt mit E/AOperationen im Übergabeverfahren mittels Quittungsbetrieb.
Dieser Ablauf setzt die Datenaustauschrate spürbar herab, da für das Übermitteln eines Datenbytes mehrere Operationen beider beteiligter Rechner erforderlich sind. Weiterhin muß als Nachteil angesehen werden, daß ein spezieller Adreßbus an jede Recheneinheit geführt werden muß, um eine Auswahl des Partners zu ermöglichen.
Bei einer weiteren bekannten Mikrorechnerkopplung (DD-PS 133482) wird angestrebt, eine peripherieartige Mikrorechnerkopplung mit Parallel-Interface-Bausteinen so zu realisieren, daß bei niedrigem Aufwand trotzdem eine hohe Datenaustauschrate, Flexibilität und Universalität erreicht wird. Hierzu wird neben den programmierbaren Parallel-E/A-Interface-Bausteinen eine auf beiden Seiten des Datenaustausches Wartesignale erzeugende, doppelte Zusatzwartelogik vorgesehen. Diese Lösung weist noch den Nachteil auf, daß das Wirken der Wartesignale auf beiden Seiten Abstriche von der maximal möglichen Datenaustauschrate zur Folge hat.
Eine weitere bekannte Einrichtung (DT-OS 3026362) schlägt zur Schaffung einer aufwandsarmen, aber schnelleren Mikrorechnerkopplung mit E/A-Bausteinen einen voll synchronen und blockorientierten Datenaustausch vor. Durch eine Befehls/Steuereinrichtung soll der Datenaustausch auf beiden Seiten am Anfang einmal eingeleitet werden und dann synchron ablaufen. Bei einheitlicher Taktversorgung der austauschenden Rechner kann der zu übertragende Datenblock beliebig lang sein. Bei unterschiedlicher Taktversorgung darf die maximale Blocklänge in Abhängigkeit von der relativen Taktgenauigkeit nur so groß sein, daß Übertragungsfehler mit Sicherheit ausgeschlossen werden.
Diese Eigenschaft ist ein wesentlicher Nachteil. Hinzu kommt, daß die notwendige synchrone Arbeitsweise beider Rechner aus unterschiedlichen Gründen nicht immer gegeben ist. Weiterhin ist nachteilig, daß das Datenübergabeverfahren mit Ein-/ Ausgabefehlern auf beiden Seiten arbeitet, wobei für das Übertragen eines Bytes auf der Senderseite sogar erst eine SpeicherTeseoperation und anschließend eine Ausgabeoperation zum Übergabeport erforderlich ist. Das hat eine nur geringe Datenaustausch rate gegenüber dem direkten Speicherzugriff zur Folge.
Ziel der Erfindung .
Die Erfindung hat zum Ziel, einen blockweisen Datenaustausch zwischen zwei Rechnern mit einer hohen Datenaustauschrate bei geringem Schaltungsaüfwand zu erreichen. Dabei soll keine Beschränkung der Blocklänge vorliegen und es soflen keine Zeitprobleme beim Zugriff auf die weiter hinten stehenden Speicherzellen eines Blockes entstehen.
Darlegung des Wesens der Erfindung
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur schnellen blockweisen Datenübertragung zwischen den Speichern von Rechnern, deren interne Datenbusse über Bustrenneinheiten an einem gemeinsamen Datenbus liegen, zu schaffen, das bei separaterTaktversorgung der Rechner ohne deren taktmäßige Synchronisation einen blockweisen Datenaustausch nur mix den Ein/Ausgabebefehlen des Initiativrechners und mit weniger Hardware-Aufwand, insbesondere von Busleitungen und Tristaie-Zweiwegtreiberbausteinen ermöglichen soll.
Erfindungsgemäß wird die Aufgabe dadurch gelöst, daß der Zielrechner vom Initiativrechner über Steuersignale in einen Adreß-Modus versetzt wird, in dem der Prozessor des Zielrechners auf seinen Adreßbus in inkrementierender Arbeitsweise eine Adresse ausgibt, die als Zeiger für die jeweilige Speicherzelle eines Datenblockes genutzt wird und auf dieser Adresse durch ein Warte-Steuersignal solange festgehalten wird, bis die Datenübertragung für diese Speicherzelle beendet ist. Der Initiativrechnertastet am Ende seines Übertragungszyklus das Warte-Steuersignal solange aus, daß der Prozessor des Zielrechners seinen Wartezustand verläßt und die nächste Adresse erzeugt und ausgibt.
Vorzugsweise wird im Initiativrechner ein erster Adreßteil für den Speicher des Zielrechners als Blockeinsprungadresse zur Auswahl des Datenblockanfanges ausgegeben und im Zielrechner zwischengespeichert und mit einem zweiten vom Zielrechner ausgegebenen Adreßteil zusammengesetzt. Eine vorteilhafte Ausgestaltung des Verfahrens besteht darin, daß der Adreß-Modus von einer Befehlsgebereinheit erzeugt wird, deren Ausgang einen NOP-Befehl auf den Dateneingang des Prozessors gibt, wobei der Zugriff des Prozessors auf seinen Programmspeicher unterbrochen wird.
Eine weitere Ausgestaltung des Verfahrens besteht darin, daß für die Datenübertragung zwischen mehr als zwei Rechnern ein Rechner als Initiativrechner und die übrigen Rechner als Zielrechner arbeiten, wobei die Daten über den Speicher des Initiativrechners übertragen werden.
Eine andere günstige Möglichkeit für die Datenübertragung zwischen mehr als zwei Rechnern sieht vor, einen Rechner als Zielrechner und die übrigen Rechner als Initiativrechner arbeiten zu lassen, wobei die Daten über den Speicher des Zielrechners übertragen werden.
Ausführungsbeispiel
In den Zeichnungen ist ein Ausführungsbeispiel der Erfindung dargestellt. Dabei zeigen:
Fig. 1: Ein Blockschaltbild mit der Grundstruktur der Datenübertragung, Fig.2: eine Schaltungsanordnung für den Datenaustausch Fig. 3: eine Schaltungsvariante für die Adreßbildung
In Fig. 1 ist zunächst das grundlegende Datenübergabeverfahren anhand des Wirkungszusammenhanges veranschaulicht. Ein Initiativrechner 1 und ein Zielrechner 2 stehen über eine Bustrenneinheit 3 und einem Datenbus DAT miteinander in Verbindung.
Eine Verbindungssteuerschaltung 5 unterstützt die Einleitung, Durchführung und Beendigung des Datenaustausches. Der Initiativrechner 1 soll der Datenaustausch wünschende und der Zielrechner 2 der gewünschte Partner sein. Der Initiativrechner 1 übernimmt deshalb die aktive Funktion.
Die Einleitung des Datenaustausches beinhaltet, daß die zentrale Recheneinheit ZRE2 des Zielrechners 2 durch Einwirkung auf ihre Steuersignaleingänge (INT, RESET7WAIT) in einen NOP-Modus versetzt wird, in dem sie von ihrem Programmspeicher abgetrennt wird und von einem NOP-Befehlsgeber 6 einen fortlaufenden NOP-Befehl aufgezwungen erhält. Dies hat zur Folge, daß die zentrale Recheneinheit ZRE 2 auf ihrem Adreßbus eine mit „Null" beginnende, inkrementierende Adresse A ausgibt, die als Zeiger für die auszutauschende Speicherzelle ZEL genützt wird.
Auf jeder Adresse wird die zentrale Recheneinheit ZRE 2 des Zielrechners 2 durch eine WAIT-Steuerung so lange festgehalten, bis der Datenaustausch für die betreffende Speicherzelle ZEL beendet ist.
Gleichzeitig zur Adresse A sendet die zentrale Recheneinheit ZRE2 im NOP-Modus die erforderlichen Speichersteuersignale aus, so daß der Speicher Sp2 des Zielrechners 2 den Inhalt der gerade adressierten Speicherzelle aussendet.
Der Initiativrechner 1 und insbesondere seine zentrale Recheneinheit ZRE1 hat somit die Möglichkeit, das vom Speicher Sp 2 ausgegebene Datum direkt über die Bustrenneinheit 3 zu empfangen, was vorzugsweise mit einer Leseoperation L1 erfolgen soll. Anschließend kann die zentrale Recheneinheit ZRE1 dieses Datum in ihrem Speicher Sp 1 ablegen, in der Fig. 1 durch eine Schreiboperation S1. Damit ist der Transport eines Datums ypm Speicher Sp 2 des Zielrechners 2 in den Speicher SpI des
initiativrechners 1 abgeschlossen. Umgekehrt weist die Anordnung auch die Möglichkeit auf, den Datentranspnrt auch in der entgegengesetzten Richtung durchzuführen, was mit dem Lesevorgang L2 und dem Schreibvorgang S 2 veranschaulicht ist. Die Schreibsteuerung des Speichers Sp2 im Zielrechner 2 erfolgt mit einem Lese-/Schreibsteuersignal R/W des Initiativrechners 1 über die Verbindungssteuerschaltung 5.
Die inkrementierende Adressierungsweise des Speichers SP2 durch die zentrale Recheneinheit ZRE 2 begünstigt vorteilhaft einen vom Befehlsaufbau her blockorientiert arbeitenden Blocktransportbefehl, über den die meisten Mikroprozessoren verfügen, und der einen schnei I enund bequemen Datentransfer bietet. Aus der Sicht der zentral en RecheneinheitZREI wird der Speicher Sp2 des fremden Zielrechners 2 wie der eigene behandelt, wobei der Speicher SP2 scheinbar einen noch schnelleren Zugriff erlaubt, da die Adreßzugriffszeit im Zielrechner 2 wegfällt, wie weiter unten näher beschrieben. Zur weiteren Erhöhung der Austauschgeschwindigkeit kann die zentrale Recheneinheit ZRE1 auch eine eigene nicht dargestellte DMA-Einheit, die als Kaufteil verfügbar ist, mit dem Blocktransfer beauftragen.
Das Zugriffsproblem zu im Austauschblock weiter hinten stehenden Daten wird erfindungsgemäß durch Blockunterteilung gelöst, wobei jeder Teil block direkt über eine eigene Blockeinsprungadresse BEA erreicht werden kann. Die Blockeinsprungadresse BEA wird dabei vom Initiativrechner 1 über den Datenbus DAT bei der Einleitung des Datenaustauschers in einen Adreßspeicher7 ausgegeben. Dieser Adreßspeicher 7 addiert seinen Inhalt zum höherwertigenTeil der im Zielrechner 2 wirksamen Adresse, wodurch eine Verschiebung der Anfangsadresse herbeigeführt wird. In Fig. 1 sind zwei Beispiele für die Blockeinsprungadresse BEA1 und BEAn dargestellt, wobei diese jeweils auf den Anfang des Teilblockes zeigt und der niederwertige Adreßteil von der zentralen Recheneinheit ZRE2 des Zielrechners 2 bereitgestellt wird und die laufende Speicherzelle ZEL des Teilblocks adressiert.
Die Schaltungsanordnung (Fig. 2) zeigt, wie das angegebene Datentauschverfahren realisiert werden kann, wobei der verbreitete Prozessor Z80 zugrunde gelegt ist. Andere Prozessortypen weisen ähnliche Signale auf und können analog verwendet werden.
Der hauptsächliche Teil der erfindungsgemäße/i Schaltungsanordnung befindet sich auf der Seite des Zielrechners 2.
Die zentrale Recheneinheit ZRE2 ist.in bekannter Weise über Datentreiberschaltungen 21, 22 und Adreßtreiberschaltungen 23 a, 23b mit ihren Speicher- und E/A-Einheiten verbunden, wobei in Fig.2 nur derfür den Datenaustausch interessierende Lese-/ Schreibspeicher Sp 2 dargestellt ist. Die Bustrenneinheit 3 ist eine parallele bidirektionale Tristate-Treiberschaltung, z.B. aus zwei integrierten Schaltungen 8216, die die internen Datensammelleitungen 20 des Zielrechners 2 über den Datenbus DAT mit dem Initiativrechner 1 verbindet.
Der Adreßspeicher 7 dient zur Übergabe, Speicherung und Aufschaltung des Blockeinsprungzeigers für den Datenaustausch.
Über eine Zustandslogik 19, bestehend aus einem Aktivierungs-Flipflop 26 und einem Status-Flipflop 27 wird der gewünschte Datenaustauschpartner (Zielrechner 2) bei mehr als zwei Recheneinheiten angefordert. Alle weiteren Funktionselemente dienen zur Ablaufsteuerung des Datenaustausches.
Dabei ist keine Adreßsammelleitung vom Initiativrechner 1 an den Zielrechner 2 geführt, sondern die Ankopplung erfolgt über den gemeinsamen Datenbus DAT, der die Datenbreite des Systems aufweisen muß. Darüber hinaus sind zur flexiblen Wahl des Zeipunktesfür den Datenaustausch in Abhängigkeit vom Stand der Problembearbeitung eine Zielrechneraufrufleitung ZRA, eine Ruf leitung RUF und eine Abfrageleitung FRA und für die Datenaustauschsteuerung eine Zyklussteuersignalleitung ZYK und eine Lese/Schreibsteuerleitung R/W vorgesehen.
Im folgenden soll das Zusammenwirken der Schaltelemente anhand des Ablaufes einer Datenaustauschverbindung dargestellt werden. Im Ausgangszustand sollen beide, Initiativrechner 1 und Zielrechner 2 unabhängig voneinander ihre Programme bearbeiten. Dieser Zustand soll auf der Seite des vorgesehenen Zielrechners 2 durch ein L-Signal am Ausgang des Aktivierungs-Flipflops 26 gekennzeichnet sein. Über ein Status-Flipflop 27 sind dann die Bustrenneinheit 3 und der Adreßspeicher 7 hochohmig und die Daten- und Adreßtreiberschaltungen 21,22,23 aktiv geschaltet, so daß ein ungestörter Betrieb der zentralen Recheneinheit ZRE2 an ihrem Speicher Sp2 und ihren E/A-Einheiten möglich ist.
Bei einem bestimmten Programmbearbeitungsstand entsteht beim Initiativrechner 1 der Wunsch, Daten mit einem anderen Rechner, z. B. dem Zielrechner 2 auszutauschen. Zu diesem Zeitpunkt sollen keine Anforderungen für einen Datenaustausch von anderen Rechnern vorliegen. Hierzu fordert der Initiativrechner 1 über eine spezielle Ausgabeoperation den Zielrechner 2 zum Datenaustausch an.
Die Ausgabe beinhaltet, daß über einen ersten Teil 24a des Datenbus DAT die Adresse des Zielrechners 2 an die Erkennungsschaltung 25 und über einen zweiten Teil 24b die Blockeinsprungadresse BEA an den Adreßspeicher 7 ausgegeben wird. Bei einem 8 Bit breiten Datenbus DAT könnten z.B. 4 Bit für die Adresse des Zielrechners 2 und ebenfalls 4 Bit für die Blockeinsprungadresse BEA zugeordnet werden. Damit können 15 Zielrechneradressen — alle 4 Bit LOW soll Rücksetzfunktion haben — und 16 Blockeinsprungadressen kodiert werden, was bereits den Aufbau umfangreicher Mehrrechnersysteme erlaubt.
Die Zielrechneraufrufleitung ZRA stellt den Ausgang eines Ausgabeentschlüsslers auf dem Initiativrechner 1 dar und ist parallel an jeden Zielrechner 2 geführt und sorgt dort einerseits für das Einschreiben der Blockeinsprungadresse BEA in den Adreßspeicher7, wenn eine Freigabe an dessen Eingang E1 durch Aktivierung der Erkennungsschaltung 25 im Falle einer zutreffenden Zielrechneradresse erfolgt. Andererseits bewirkt das Zielrechneraufrufsignal ZRA am Takteingang T des Aktivierungs- Flipflop 26 die Abspeicherung des Ausganges der Erkennungsschaltung 25 an seidem eigenen Ausgang. Bei zutreffender Zielrechneradresse erscheint am Ausgang der Erkennungsschaltung 25, und nach Übernahme in das Aktivierungs-Flipflop 26 am Ausgang des Aktivierungs-Flipflops 26 ein Η-Signal, das auch nach Beendigung der Ausgabe dort stehen bleibt. Die Zielrechneraufrufsignalleitung ZRA führt weiterhin über einen Negator 28 und ein Gatter 29 auf den Interrupt-Eingang INT der zentralen Recheneinheit ZRE2 des Zielrechners 2. In der anschließenden Interruptbehandlungsroutine kann die zentrale Recheneinheit ZRE 2 entscheiden, ob sie zum Datenaustausch bereit ist und ggf. Vorbereitungen für den Datenaustausch treffen. Im Fall, daß Bereitschaft vorliegt, geht die zentrale Recheneinheit ZRE 2 in einen programmierten „HALT"-Zustand, der über ihren entsprechenden HALT-Ausgang und einen Negator 30 die Zustandslogik 19 aktiviert, und über einen aus NAND-Gattern 31, 32,33, Wickelverbindungen 34 und Ziehwiderständen 35 bestehenden Kennwortgeber 50 sowie den Datenbus DAT dem Initiativrechner 1 mitteilt. Der Initiativrechner 1 fragt hierzu periodisch mittels der Abfrageleitung FRA, die über einen Eingabeentschlüssler auf dem Initiativrechner 1 gesteuert wird, den Datenbus DAT ab, ob das Kennwort für den gewünschten Zielrechner 2 erscheint. Dieses Kennwort kann z. B. durch eine einfache Wortkodierung mit den NAND-Gattern 32,33 und den wählbaren Wickelverbindungen 34 in Verbindung mit den Ziehwiderständen 35 realisiert werden.
Erscheint bis zu einem maximal zulässigen Zeitpunkt das gewünschte Kennwort nicht, wird vom Initiativrechner 1 angenommen, daß kein Datenaustausch erwünscht ist, und er löscht seine Anforderung durch Ausgabe derfiktiven LOW-Adresse an die Erkennungsschaltung 25, was zur Abschaltung des Aktivierungs-Flipflops 26 führt. In diesem Fall würde der Zielrechner 2 seine eigene Programmbearbeitung fortsetzen und der Initiativrechner 1 könnte ggf. Datenaustausch mit anderen Rechnern suchen oder ein autonomes Programm bearbeiten. Zu einem späteren Zeitpunkt könnte die Datenaustauschforderung wiederholt werden.
Ist das Kennwort erschienen, so ist der Zielrechner zum Datenaustausch bereit, wobei im Zielrechner 2 noch folgender Ablauf wirksam wird.
Der aktivierte HALT-Ausgang von der zentralen Recheneinheit ZRE 2 führt über den Negator30undein U N D-Gatter 36 sowie ein Monoflip37zu einem Rücksetzimpuls am Rücksetzeingang RESET der zentralen Recheneinheit ZRE 2. Dadurch wird die zentrale Recheneinheit ZRE 2 in ihre Grundstellung versetzt und insbesondere der Befehlsadreßzähler auf Null zurückgestellt. Gleichzeitig bewirkt die Einschaltflanke des"HALT-Signals über Negator 30 in der Zustandslogik 19 die Übernahme des Ausganges des Aktivierungs-Flipflops 26 in das Status-Flipflop 27 durch Aktivierung dessen Takteinganges T. Vom invertierten Ausgang des Status-Flipflops 27 wird die Umschaltung bzw. Freigabe des Zielrechners 2 in den Datenaustauschzustand vorgenommen. Dazu wird ein erster Schaltvorgang an den Datentreiberschaltungen 21,22 ausgelöst, indem die Datentreiberschaltung 22 über ihren Freigabe-Eingang E abgeschaltet (hochohmiger Zustand) und die Datentreiberschaltung 21 zum Lesen über ihren Rücksetz-Eingang R rückgesetzt wird, so daß diese an ihren Ausgängen, die mit den Dateneingängen der zentralen Recheneinheit ZRE 2 verbunden sind, im Lesezustand LOW-Potential führt, was dem Befehlskode für den NOP-Befehl entspricht. Dieser Befehl ist bei der zentralen Recheneinheit des Prozessors Z80 dadurch gekennzeichnet, daß keine Datenverarbeitung stattfindet, jedoch ein Auffrischvorgang abläuft und der Befehlsadreßzähler um „Eins" erhöht wird.
Ein weiterer Schaltvorganghinsichtlich der Umschaltung des Zielrechners 2 in den Datenaustauschzustand führt zur Abschaltung der Tore 23 b und damit eines Teiles 38 b der Adreßbusleitungen 38, so daß nur der zur Adressierung des Datenblockanfangesjm Speicher Sp2 benötigte Teil der Adresse an eine digitale Additionsschaltung 39 gelangt. Weiterhin aktiviert der Ausgang des Status-Flipflop 27 über ein Negationsglied 42 den Adreßspeicher 7, und das WAIT-Logik-Element 46, so daß durch L-Signal der Warteeingang WAIT der zentralen Recheneinheit ZRE 2 aufgerufen ist. Außerdem wird vom Status-Flipflop 27 über das NAND-Gatter 31 der Kennwortgeber 50 aktiviert. Für die zentrale Recheneinheit ZRE2 ergibt sich folgender Ablauf:
Der Rücksetzimpuls des Monoflip 37 bringt die zentrale Recheneinheit ZRE 2 in ihre Grundstellung, wobei der HALT-Ausgang abgeschaltet wird. Die zentrale Recheneinheit ZRE 2 beginnt nun ihren ersten Zyklus auf der Befehlsadresse „Null" und erhält dabei von der als Befehlsgebereinheit ausgebildeten Datentreiberschaltung 21 den NOP-Befehlskode aufgezwungen. Die Aktivierung des Warteeinganges WAIT hat jedoch zur Folge, daß die zentrale Recheneinheit ZRE 2 beim Lesen des Befehlskodes anhält, dabei aber weiter ihre Befehlsadresse und die Speichersteuersignale aussendet. Damit kann der Initiativrechner 1 nach erfolgreicher Abfrage der Bereitschaft über das Kennwort sofort mit dem Datenaustausch beginnen, der in Form von normalen Schreib-oder Lesevorgängen durchgeführt wird.
Der Datenaustausch soll z.B. zum Ziel haben, zuerst eine Anzahl von Datenworten aus dem Speicher Sp2 des Zielrechners 2 in den Speicher Sp 1 des Initiativrechners 1 zu laden. Gemäß des anfangs erläuterten Prinzips führt der Initiativrechner 1 hierzu Lesebefehle auf den fremden Speicher Sp2 und Schreibbefehle auf den eigenen Speicher Sp 1 aus. Zur Erhöhung der Datenaustauschsicherheit kann das erste Datenwort einen Kennschlüssel zum nochmaligen Prüfen des richtigen Zielrechners enthalten. ·
Weitere folgende Datenworte können Informationen über den Status, den Charakter oder die Menge der nachfolgenden Datenworte enthalten. Für die eigentlichen Daten bietet sich eine Organisation an, die berücksichtigt, daß häufig benötigte bzw. austauschende Daten näher am Blockanfang stehen, insbesondere z. B. Status- und Steuerworte.
Die Verbindungssteuerschaltung 5, zielrechnerseitig bestehend aus den Schaltgliedern 40...45, realisiert folgende Funktionen: Jeder Lese- aber auch Schreibzyklus zum Zielrechner 2, der immer nur mit einer einzigen Adresse ausgeführt werden kann und damit praktisch keinen Adreßraum benötigt, führt zur Aktivierung desZyklussteuersignalsauf derZyklussignalleitungZYKdurch einen Ausgang einer Speicherauswahleinrichtung des Initiativrechners 2. Das Zyklussteuersignal schaltet über das UND-Gatter 43 die Bustrenneinheit 3 aktiv, gibt über das NAND-Gatter 44 und das UND-Gatter 45 die Lese-/Schreiblogikfrei und steuert ein WAIT-Logik-Element 46 an. Das gleichzeitig über die Lese/Schreibsteuerleitung R/W zugeführte Lese-/Schreibsteuersignal legt über das NAND-Gatter 44 sowie das UND-Gatter45 am Schreib/Lese-Eingang des Speichers Sp 2 den Lese- oder Schreibzustand und am Richtungssteuereingang Dl der Bustrenneinheit 3 die Datenschaltrichtung fest, d. h. im Fall des Lesezyklus die Datenschaltrichtung vom ZielrechneF 2 zum Initiativrechner 1. , . ,
Das WAIT-Logik-Element 46 hat die Aufgabe, bei jeder Aktivierung durch das Zyklussteuersignal im Verlauf eines Lese- oder Schreibzyklus zum Zielrechner 2 das Wartesteuersignal am Warteeingang WAIT der zentralen Recheneinheit ZRE2 kurzzeitig
auszutasten, damit die zentrale Recheneinheit ZRE2 durch Übergang vom laufenden in den nächstfolgenden NOP-Befehl ihren Befehlsadreßzähier um „Eins" erhöht, wodurch die Adressierung des nächsten auszutauschenden Datums vorbereitet wird. Im Fall, daß der Zielrechner 2 mit größerer Systemfrequenz arbeitet als der Initiativrechner 1 oder auch für Schrittbetrieb mittels „WAIT" im Initiativrechner 1, ist in die Zyklussignalleitung ZYK vor dem WAIT-Logik-Element 46 ein monostabiles Zeitglied 47 eingefügt, um abzusichern, daß bis zum nächsten Zyklus der Befehlsadreßzähier nur um „Eins" erhöht wird.
Die vorschlagsgemäße Adreßbildung.für die auszutauschende Speicherzelle ZEL im Zielrechner 2 erfolgt durch Zusammensetzung aus zwei Bestandteilen mittels der digitalen Additionsschaltung 39. Diese erhält über eine Adreßsammelleitung 48 vom Adreßspeicher 7 die Blockeinsprungadresse BEA, die die erste Speicherzelle ZEL des auszutauschenden Datenblocks kennzeichnet, und über den Adreßbus 38 den von „Null" beginnenden inkrementierten Adreßteil von der zentralen Recheneinheit ZRE2, der die fortlaufende Adressierung übernimmt, zugeführt. Die von den Additionsschaltung 39 zusammengesetzte Adresse gelangt über eine Adreßsammelleitung 49 zum Speicher Sp2.
Eine einfache Ausführungsform mit geringem Schaltungsaufwand zeigt hierzu Fig. 3, die jedoch bereits am Beispiel eines 16-Bit-Adreßbusses 16 Einzeldatenblöcke zu je 256 Datenwörtern erlaubt. Im Datenaustauschzustand ist der höherwertige Teil der Adreßbusleitung 38 b der zentralen Recheneinheit ZRE 2 mittels der Tore 23 b abgeschaltet und wird teilweise vom Adreßspeicher 7 beaufschlagt. Die restlichen über Ziehwiderstände 51 fest belegten Adreßsammelleitungen 48 bieten zusätzliche Flexibilität für die Lage der zu adressierenden Speicherzelle ZEL im Speicher Sp2. Der Datenaustausch erfolgt in der dargelegten Form aufgrund der inkrementierenden Adressierungsweise vorteilhaft blockorientiert, d. h. es können bei einem Austausch immer gleich mehrere adreßmäßig zusammenhängende Datenwörter übertragen werden. Das begünstigt die Nutzung der in den üblichen Prozessoren implementierten Blocktransferbefehle oder den Einsatz spezieller leistungsfähiger DMA-Bausteine im Initiativrechner 1. Hierbei kann die volle Geschwindigkeit des Prozessors oder der DMA-Einheit genutzt werden, da der Zielrechner 2, weil er immer nur einen NOP-Befehl abarbeiten muß, bereits seine Adresse inkrementiert hat, bevor der nächste Zyklus auf ihn erfolgt.
Dadurch weist der Speicher Sp2 des Zielrechners 2 aus der Sicht des Initiativrechners 1 scheinbar eine geringere Zugriffszeit als tatsächlich auf, da nur die Freigabezeit der Bustrenneinheit 3 wirksam wird und nicht die Adreßzugriffszeit.
Natürlich ist auch der Austausch von Einzelbits möglich. Weiterhin können Lese- und Schreibzyklen zum Zielrechner 2 in beliebiger Reihenfolge durchgeführt werden.
Nach dem Austausch der gewünschten Daten wird die Verbindung zwischen Initiativrechner 1 und Zielrechner 2 aufgehoben, indem der Initiativrechner 1 die fiktive Zielrechneradresse „Null" über den Datenbus DATanden-Zielrechner 2 ausgibt. Über die Erkennungsschaltung 25 wird das Aktivierungs-Flipflop 26 und damit auch das Status-Flipflop 27 gelöscht und am invertierten •Eingang vom Monoflip37 ein Rücksetzimpuls ausgelöst. Dadurch wird die zentrale Recheneinheit ZRE 2 auf Normalbetrieb umgeschaltet, wobei der Rücksetzimpuls zur Abarbeitung einer Startroutine genutzt werden kann. Sollte die vor dem Datenaustausch erreichte Adresse gerettet worden sein, kann nun dort weiter bearbeitet werden.
Jedoch kann auch eine Startadresse, die vom Initiativrechner 1 während des Datenaustausches im Zielrechner 2 hinterlegt wurde, berücksichtigt werden.
Im folgenden werden weitere Möglichkeiten zum Aufbau von Mehrrechnersystemen mit dem vorgeschlagenen Datenaustauschverfahren erläutert. Bei mehr als zwei Rechnern ist es vorteilhaft, einen einzigen Initiativrechner vorzusehen und die anderen als Zielrechner anzuschließen.
Die Rechner können dabei zur Lösung der ihnen zugeordneten Aufgabe verschiedenen Aufbau in Speicher, Peripherie und sonstigen Komponenten aufweisen. Zum Ansprechen für den Datenaustausch wird jedem Einzelrechner eine eigene Zielrechneradresse zugewiesen, die jeweils vom Zielrechneradreßdekoder erkannt wird.
Der Initiativrechner weist einen abweichenden Aufbau auf, der hauptsächlich den Zweck hat, die Steuerleitungen beaufschlagen zu können. Die Datentreiberschaltung puffert den Datenbus zum Koppelbus hin ab. Der Ein-/Ausgabedekoder bildet aus bestimmten E/A-Adressen die Signale auf der Zielrechneraufrufeleitung und der Abfrageleitung.
In analoger Weise bildet der Speicherdekoder das Zyklussignal für den Speicherzugriff im Zielrechner. Eine Treiberschaltung schaltet das Lese-/Schreibsignal der zentralen Recheneinheit des Initiativrechners zu den Zielrechnern durch und die Unterbrechungslogik bildet aus dem Rufsignal der Zielrechner ein Unterbrechungssignal für die zentrale Recheneinheit des Initiativrechners.
Alle Steuerleitungen sind parallel an alle Rechner geführt, ebenso der Datenbus. Intern besitzt der Initiativrechner einen Austauschspeicherbereich, der als Lese-/Schreibspeicher aufgebaut ist und vorzugsweise für den Datenaustausch im gesamten System verwendet wird.
Weitere mögliche Strukturen sind:
— „Master-slave"-System: Der Initiativrechner arbeitet als „master"-Rechner mit allen „slave"-Rechnern (Zielrechnern) zusammen. Hierzu kann der Initiativrechner den gesamten Datenaustausch nach programmierbarem Zeltregime oder/mit Anfrage an den Partner wie oben beschrieben organisieren.
Eine weitere Möglichkeit nutzt die „RUF"-Leitung, wobei der den Datenaustausch wünschende „slave"-Rechner sich in einen programmierbaren „HALT"-Zustand begibt und durch Aktivierung seines „HALT"-Ausganges und weiter über die „RUF"-Schaltung und die Unterbrechungslogik dem „master"-Rechner seinen Datenaustauschwunsch mitteilt. Dadurch ist eine größere zeitliche Flexibilität möglich.
— Koppelrechner-System mit Zwischenspeicherung:
Der Initiativrechner arbeitet als spezialisierter Datenaustauschrechner, der in der Hauptsache den Datenaustausch zwischen den einzelnen Funktionsrechnern abwickelt, wobei ein dynamischer programmierbarer Prioritätsalgorithmus Anwendung finden kann. Die einzelnen Zielrechner sind hierbei eigenständig funktionierende Rechner. Der Datenaustausch erfolgt mit Zwischenspeicherung in einem Lese-/Schreibspeicherbereieh des Koppelrechners.
— Koppelrechner-System ohne Zwischenspeicherung:
Der Initiativrechner transportiert die Daten direkt von einem in den anderen Rechner. Hierzu sind die zwei betreffenden Rechner in den Datenaustauschzustand zu steuern, wobei dem einen wahlweise ein Lese- und dem anderen ein Schreibsignal zuführbar sein muß.
Claims (5)
- Patentansprüche:1. Verfahren zur schnellen blockweisen Datenübertragung zwischen den Speichern von Rechnern, deren Datenbusse über Bustrenneinheiten an einem gemeinsamen Datenbus liegen, wobei der Initiativrechner Lese- bzw. Schreibbefehle auf den Speicher des Zielrechners ausführt, dadurch gekennzeichnet, daß der Zielrechner (2) vom Initiativrechner (1) über Steuersignale in einen Adreß-Modus versetzt wird, in dem der Prozessor (ZRE 2) des Zielrechners (2) auf seinen Adreßbus (38) in inkrementierender Arbeitsweise eine Adresse (A) ausgibt, die als Zeiger für die jeweilige Speicherzelle (ZEL) eines Datenblockes genutzt wird und auf dieser Adresse (A) durch ein Warte-Steuersignal solange festgehalten wird, bis die Datenübertragung für diese Speicherzelle (ZEL) beendet ist, wobei der Initiativrechner (1) am Ende seines Übertragungszyklus das Warte-Steuersignal solange austastet, daß der Prozessor (ZRE 2) des Zielrechners (2) seinen Wartezustand verläßt und die nächste Adresse (A) erzeugt und ausgibt.
- 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß daß vom initiativrechner (1) ein erster Adreßteil für den Speicher (Sp 2) des Zielrechners (2) als Blockeinsprungadresse (BEA) zur Auswahl des Datenblockanfanges ausgegeben.wird und im Zielrechner (2) zwischengespeichert wird und mit einem zweiten vom Zielrechner (2) ausgegebenen Adreßteil zusammengesetzt wird.
- 3. Verfahren nach Anspruch 1 und 2, dadurch gekennzeichnet, daß der Adreß-Modus von einer Befehlsgebereinheit (6) erzeugt wird, deren Ausgang einen NOP-Befehl auf den Dateneingang des Prozessors (ZRE2) gibt, wobei derZugriff des Prozessors (ZRE2) auf seinen Programmspeicher unterbrochen wird.
- 4. Verfahren nach Anspruch 1 bis 3, dadurch gekennzeichnet, daß für die Datenübertragung zwischen mehr als zwei Rechnern ein Rechner als Initiativrechner (1) und die übrigen Rechner als Zielrechner (2) arbeiten, wobei die Daten über den Speicher (Sp 1) des Initiativrechners (1) übertragen werden.
- 5. Verfahren nach Anspruch 1 bis 3, dadurch gekennzeichnet, daß für die Datenübertragung zwischen mehr als zwei Rechnern ein Rechner als Zielrechner (2) und die übrigen Rechner als Initiativrechner (1) arbeiten, wobei die Daten über den Speicher (Sp 2) des Zielrechners (2) übertragen werden.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DD25867383A DD220439B1 (de) | 1983-12-27 | 1983-12-27 | Verfahren zur schnellen blockweisen datenuebertragung zwischen den speichern zweier rechnern |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DD25867383A DD220439B1 (de) | 1983-12-27 | 1983-12-27 | Verfahren zur schnellen blockweisen datenuebertragung zwischen den speichern zweier rechnern |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DD220439A1 DD220439A1 (de) | 1985-03-27 |
| DD220439B1 true DD220439B1 (de) | 1988-08-03 |
Family
ID=5553550
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DD25867383A DD220439B1 (de) | 1983-12-27 | 1983-12-27 | Verfahren zur schnellen blockweisen datenuebertragung zwischen den speichern zweier rechnern |
Country Status (1)
| Country | Link |
|---|---|
| DD (1) | DD220439B1 (de) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE4307139C2 (de) * | 1993-03-06 | 1997-02-13 | Ibm | Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System |
-
1983
- 1983-12-27 DD DD25867383A patent/DD220439B1/de not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| DD220439A1 (de) | 1985-03-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE2641741C2 (de) | Rechenanlage aus mehreren miteinander über ein Sammelleitungssystem verbundenen und zusammenwirkenden Einzelrechnern und einem Steuerrechner | |
| DE4222043C1 (de) | ||
| EP0006164B1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
| DE2936913C2 (de) | Anordnung zur Steuerung von Eingabe und Ausgabe bei einer programmierbaren Logiksteuerung | |
| CH620306A5 (de) | ||
| DE2130299B2 (de) | Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage | |
| DE2855673C2 (de) | ||
| DE2157982A1 (de) | Digitales Multiprozessor-Datenverarbeitungssystem | |
| DE3687867T2 (de) | Mikrorechner. | |
| DE2723466A1 (de) | Sammelleitungsanordnung | |
| DE3502147A1 (de) | Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung | |
| DE2813080A1 (de) | Einrichtung zur speicheradressierung | |
| DE3123382C2 (de) | Verfahren und Einrichtung zum Übertragen von Daten in einem Mehrprozessorsystem | |
| DE4005042C2 (de) | Mehrrechnersystem zur Durchführung von Bewegungssteuerungen | |
| DE2935101C2 (de) | ||
| DE2905676A1 (de) | Integrierte schaltung mit einem einzigen chip | |
| DE3142504A1 (de) | Mehrfachplattenspeicher-uebertragungssystem | |
| DE2720842C3 (de) | Datenübertragungssystem | |
| EP0064574B1 (de) | Anordnung zum Auslesen eindeutiger Informationen aus einem digitalen Schaltwerk bei zueinander asynchronen Steuersignalen für das Weiterschalten des Schaltwerkes und das Übernehmen der Informationen | |
| DE2404887C2 (de) | Schaltungsanordnung für den Informationsaustausch mit einem Rechner | |
| EP0113379B1 (de) | Rechnerkopplung | |
| DE2713304C2 (de) | ||
| DE2610428C3 (de) | Anordnung zur Steuerung der Zwischenspeicherung von zwischen zwei Funktionseinheiten zu übertragenden Daten in einem Pufferspeicher | |
| DD220439B1 (de) | Verfahren zur schnellen blockweisen datenuebertragung zwischen den speichern zweier rechnern | |
| DE2824557C2 (de) | Anordnung in Mikroprozessoren für den Aufbau von Multiprozessor-Systemen |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ENJ | Ceased due to non-payment of renewal fee |