DD262725A1 - Anordnung zur wahlfreien, stochastischen und kollosionsfreien belegung eines koppelbusses - Google Patents

Anordnung zur wahlfreien, stochastischen und kollosionsfreien belegung eines koppelbusses Download PDF

Info

Publication number
DD262725A1
DD262725A1 DD30522187A DD30522187A DD262725A1 DD 262725 A1 DD262725 A1 DD 262725A1 DD 30522187 A DD30522187 A DD 30522187A DD 30522187 A DD30522187 A DD 30522187A DD 262725 A1 DD262725 A1 DD 262725A1
Authority
DD
German Democratic Republic
Prior art keywords
computer
output
input
bus
signals
Prior art date
Application number
DD30522187A
Other languages
English (en)
Inventor
Gerhard Matz
Original Assignee
Robotron Messelekt
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 Robotron Messelekt filed Critical Robotron Messelekt
Priority to DD30522187A priority Critical patent/DD262725A1/de
Publication of DD262725A1 publication Critical patent/DD262725A1/de

Links

Landscapes

  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

Die Anordnung zur wahlfreien, stochastischen und kollosionsfreien Belegung eines Koppelbusses zum gleichberechtigten Datentransfer zwischen mehreren, autonom arbeitenden, gemeinsam getakteten Mikrorechnern eines ueber Parallel-Ein-/Ausgabe-Schnittstellen gekoppelten Mehrrechnersystems loest auch Konflikte, die durch einen gleichzeitigen Zugriff durch mehrere Rechner auf den Koppelbus auftreten. Es erfolgt eine kurzzeitige hasardfreie Verriegelung des Buszugriffs zu gunsten des Erstzugreifers bei phasenverschobener Taktversorgung der einzelnen Rechner aus einer gemeinsamen Taktquelle. Jeweils die disjunktive Verknuepfung aller Quittungssignale mit den Anforderungssignalen der nichteigenen Koppelwege wird zur Triggerung je eines Monostabilen Multivibrators benutzt, deren Ausgangssignale die Anforderungssteuerleitung der nicht- oder zu spaet zugegriffenen Rechner verriegeln. Fig. 1

Description

Hierzu 2 Seiten Zeichnungen
Anwendungsgebiet der Erfindung
Die Erfindung betrifft eine Anordnung zur wahlfreien, stochastischen und kollisionsfreien Belegung eines Koppelbusses zum gleichberechtigten Datentransfer zwischen mehreren autonom arbeitenden gemeinsam getakteten Mikrorechnern eines über Parallel-Einausgabe-Schnittstellen (PIO) gekoppelten Mehrrechnersystems.
Charakteristik des bekannten Standes der Technik
Im DD-WP 232569 ist eine Anordnung zur Steuerung der Speicherzugriffe von η Zentraleinheiten auf einen gemeinsamen Arbeitsspeicher ohne Prioritätsentscheidung vorgeschlagen, bei der die η Zentraleinheiten mit gegeneinander in der Phase um 360°/n verschobenen Takten gespeist werden und durch eine einfache Verriegelungslogik Mehrfachzugriffe verhindert werden.
Es sind weiterhin peripherieartige Kopplungen über spezielle Anschlußsteuerungen bekannt. Nach DE-OS 2645341 ist dabei jeder Koppelstrecke zwischen zwei Recheneinheiten eine Koppelanordnung zugeordnet. Diese kann als kompakte selbständige Einheit ausgeführt oder jeder zu koppelnden Recheneinheit zugeordnet sein. Bei Anordnungen mit mehr als zwei Recheneinheiten lassen sich Mehrrechnersysteme in Ring- oder Sternstrukturen aufbauen.
Durch DD-WP 137627 ist eine Schaltkreisanordnung zur Kopplung von Mikrorechnern zu einem Mehrrechnersystem bekannt, bei dem alle beteiligten Rechner gleichberechtigt aktiv werden können, wobei die ausgewählte Recheneinheit die anderen in einen inaktiven Zustand versetzen kann und der Rechnersystembus einer jeden Recheneinheit über in den Koppelgliedern enthaltene Bustreiber mit einem allen Koppelgliedern gemeinsamen Koppelbus verbunden ist. Der Koppelbus besteht hierbei aus dem Adreß-, Daten-, Steuerbus und dem Anforderungsbus. Dabei enthält die Schaltkreisanordnung einen über Anmelde- und Freigabeleitungen die Freigabeentscheidung realisierenden Kommunikationsrechner.
Für Mikrorechner wurden preiswerte parallele und serielle hochintegrierte Interface-Bausteine entwickelt, die bei einem Mehrrechnersystem eine Entkopplung der Mikrorechner gestatten und keinen erhöhten speziellen Hardwareaufwand bedeuten.
Trotz des geringen Hardwareaufwandes bei einigen bekannten peripherieartigen Kopplungen bestand für letztere das Hindernis einer zu geringen Datenaustauschrate. Bei asynchronem Austausch jedes Datenwortes mußten im Mikrorechner mehrere Befehle abgearbeitet und auf dem Koppelbus mehrere Signale ausgetauschtLwerden, und durch die nötigen Wartezyklen ergaben sich zusätzliche Zeitverluste.
Durch DD-WP 133482 ist ebenfalls eine Anordnung zur peripherieartigen Mikrorechnerkopplung, mit Parallel-Interface-Bausteinen, bei Einbus- und Mehrbus-Multi-Mikrorechnersystemen bekannt, bei der je Kopplung gleichartiger Mikrorechner ein im Eingabemodus arbeitender programmierbarer Ein-/Ausgabekanal eines programmierbaren Pafallel-Ein-Ausgabe-Interface-Bausteins verwendet wird und eine, durch logische Verknüpfung von Anforderungs- und Bereitschaftssignalen auf beiden Seiten des Datenaustausches, sowohl für die Eingabe als auch für die Ausgabe, Wartesignale erzeugende, doppelte Zusatzwartelogik vorgesehen ist. Durch dieses WP ist auch bekannt, daß ein Busorbiter mit einer Prioritätslogik ausgestattet ist, der mit Hilfe einer zyklischen Abfrageimpulsschaltung die Steuerung des Einbus-Multi-Mikrorechnersystems vornimmt. Viele dieser bekannten Lösungen unterscheiden sich nur durch die Art der Herstellung des Synchronismus zwischen Datensender und Datenempfänger.
Dabei werden entweder zusätzliche Steuerleitungen der Parallel-Ein-Ausgabe-Schnittsteilen benutzt, wie zum Beispiel die vorgesehene Verbindung des Bereitausganges „RDY"des sendenden Tores mit dem Aktivierungseingang „STB" des empfangenen Tores oder es werden bis zur Bereitmeldung des Datenempfängers zusätzliche Wartetakte erzeugt. Als Folge davon tritt in beiden Fällen eine Verringerung der Übertragungsgeschwindigkeit, bezogen auf die theoretisch mögliche Maximalgeschwindigkeit, auf.
Durch DD-WP 142135 ist auch eine Mehrrechnerkopplung für autonom arbeitende, aktive Recheneinheiten bekannt, von denen eine als „master"-Recheneinheit und die übrigen als „slave"-Recheneinheiten mit an diesen angeschlossenen, programmierbaren Eingabe-/Ausgabetorschaltungen ausgebildet sind und über Adressen-, Steuer- und Datenleitungen zur Lösung ihnen zugeordneter Aufgaben miteinander zum asynchronen Datenaustausch nach einem .Unterbrechungsprinzip verbunden sind. Danach ist jede Recheneinheit über eine Eingabe-/Ausgabetorschaltung an gemeinsame Sammelleitungen für Daten- und Adreßinformationen angeschlossen. Jede Eingabe-/Ausgabetorschaltung ist über eine besondere Steuerschaltung zur Übertragung der Steuersignale „RDY" und „STB" an eine Sammelleitung zum asynchronen, direkten und konfliktfreien Datenaustausch zwischen der „master"-Recheneinheit und einer der „slave"-Recheneinheiten angeschlossen. Die der „master"-Recheneinheit zugeordnete Eingabe-/Ausgabetorschaltung weist einen durch diese betätigbaren Datenrichtungssignalausgang auf, der mit den übrigen Eingabe-/Ausgabetorschaltungen zur Festlegung der Übertragungsrichtung und der Priorität der „master"-Recheneinheit verbunden ist.
Dabei ist die Eingabe-Musgabetorschaltung der „master"-Recheneinheit mit einer Einrichtung zur Bestimmung der Priorität bei mehreren gleichzeitig anfordernden „slave"-Recheneinheiten ausgestattet. Die Steuerschaltung weist ein konjunktives Verknüpfungsglied für das von der „master"-Recheneinheit ausgegebene und von den „slave"-Recheneinheiten über einen Negator empfangene Datenrichtungssignal und für das EinleseVAuslesebereitschaftssignal „RDY" auf, dessen Ausgang auf ein zweites konjunktives Verknüpfungsglied mit einer Zeitschaltcharakteristik geführt ist. Der zweite Eingang des letzteren ist mit dem Anschluß für das Einlese-/Auslesebereitschaftssignal „RDY" verbunden, und dessen Ausgang ist über ein drittes Verknüpfungsglied mit dem Daten-Richtungssignal für die „master"-Recheneinheit und dessen Negation für die „slave"-Recheneinheiten auf die Einlese-ZAusleseanforderungseingänge der übrigen Recheneinheiten und über ein viertes Verknüpfungsglied, das mit seinem anderen Eingang an dem zweiten Eingang des zweiten konjunktiven Verknüpfungsgliedes und dem Anschluß für das Einlese-/Auslesebereitschaftssignal „RDY" angeschlossen ist, auf den Einlese-/ Ausleseanforderungseingang „STB" der der angeschlossenen Recheneinheit zugeordneten Eingabe-/Ausgabetorschaltung geführt. Die Steuerschaltung weist einen Aktivierungseingang auf, über den sie mit ihrer Recheneinheit über die zugehörige Eingabe-/Ausgabetorschaltung zum Aufruf für den Datenaustausch verbunden ist.
Durch das DD-WP 214011 wird eine Reduzierung des notwendigen Aufwandes für Mehrrechnerkopplungen durch einen höheren Vereinheitlichungsgrad der Sammelleitungen und Schnittstellen angestrebt. Dazu wird eine unmittelbare Kopplung der Sammelleitung der „master"-Recheneinheit und einer angeforderten „slave"-Recheneinheit über programmierbare Koppeleinrichtungen, die den „slave"-Recheneinheiten zugeordnet sind, vorgeschlagen. Diese Koppeleinrichtungen weisen einen Dekoder für die von der „master"-Recheneinheit übertragenen Signale auf, an den ein Ausgaberotor zur Abschaltung der Zentraleinheit und zur Quittung des Betriebszustandes der Zentraleinheit angeschlossen ist. Die Zentraleinheit der „slave"-Recheneinheit ist während des Datenaustausches abgeschaltet und die Sammelleitung der „master"-Recheneinheit um die der „slave"-Recheneinheit verlängern.
Bei dem DD-WP 224702 ist der „master"-Rechner mit einem Adreßdekoder ausgerüstet, der die Adressierung von 32 „slave"-Rechnern ermöglicht. Die „slave"-Rechner erhalten u. a. eine Anmeldeschaltung, die die Priorität der Anmeldungen der „slave"-Rechner festlegt. Die Datenübertragung vom „master"-Rechner hat Vorrang gegenüber einem Übertragungswunsch eines „slave'^Rechners.
Bei dem DD-WP 223555 erfolgt der Datenaustausch interrupt organisiert über PIO's und einem Bus aus Status- und Datenleitungen derart, daß über die Datenleitungen Slave-Adresse, Steuerworte und Daten gemultiplext werden. Der „Master"-PIO verfügt über einen Bit-Ausgang zum Adressenaufruf des „Slaves" und eine Zeitschaltung zur Zeitsteuerung des Handshakings. Der „Slave"-PIO wird über eine Adressenerkennungsschaltung aus D-Flipflops aktiviert und bildet im Zusammenwirken mit einem weiteren D-Flipflop ein Quittungssignal, so daß eine geschlossene Kanalkette der Datenübertragung entsteht. Die Daten- und Statussignale werden über Pegelwandler und Open-Collector-NAND'S für den Bus auf einen höheren Spannungspegel gehoben.
DD-WP 215888 beschreibt ebenfalls ein Mehrrechnersystem nach dem Master-Slave-Prinzip mit zwei Koppel-PIO's pro Koppelweg. Jeweils ein Port dieser PIO's wird im Ausgabe-, das andere im Eingabemode betrieben, wobei das Ausgabe-Port des Masterrechners mit dem Eingabeport des Slaverechners und umgedreht miteinander verbunden sind. Zum Datenaustausch sind die Bereitschafts- und Bestätigungssignale der PIO's derart verknüpft, daß das Bereitschaftssignal des Ausgabeports des Masterrechners über ein Monoflop zum Bestätigungssignaleingang des Eingabeports des Slaverechners geführt ist und das Bereitschaftssignal dieses Ports auf den Bestätigungseingang des Ausgabeports des Masterrechners geführt ist. Weiterhin wurden die Bereitschafts- und Bestätigungssignale über einen Bustreiberbaustein auf den Datenbus des diese PIO bedienenden Rechners gelegt, womit der Rechner direkt den Datenaustausch steuert und beim Start des gesamten Systems den Zeitpunkt des Beginns des Datenaustausches selbst bestimmt.
Bei diesen bekannten Lösungen treten zum einen die oben angeführten Nachteile auf und zum anderen setzen sie in der Regel voraus, daß einem Rechner eine Vorrangstellung (Master) derart eingeräumt wird, daß der Master mit allen übrigen Rechnern (Slaves) in beiden Richtungen Daten austauschen kann, ein Datenaustausch zwischen den Slaves untereinander jedoch im allgemeinen nicht möglich ist.
Durch DE-OS 2713304 sind ebenfalls Mehrrechnersysteme bekannt, bei denen die Adreß- und Datenleitungen der einzelnen Rechner über steuerbare Zweiweg-Treiberbausteine miteinander verbunden sind, wobei die Richtungssteuerung durch eine Zusatzlogik erfolgt, die mehrere Steuersignal-Ein- und Ausgänge der beteiligten Rechner miteinander verknüpft. Nachteilig an dieser Lösung ist die Tatsache, daß alle Rechner wechselseitig in die Speicherbereiche der anderen Rechner eingreifen, so daß ein autonomer Betrieb einschließlich Speicherverwaltung der einzelnen Rechner nicht mehr gewährleistet ist. Bei der Mehrrechnerkopplung wurde eine Anzahl von unterschiedlichen Verfahren geschaffen, um den Zugriff zum Bus in einem Netz mit einem einzigen bidirektionalen Bus zu kontrollieren.
Bei einem bekannten Verfahren, das als Auswahlverfahren bekannt ist, hat eine Rechnerstation nur dann die Möglichkeit für einen Zugriff zum Bus, wenn sie ein Signal bekommt, daß sie mit dem Zugriff an der Reihe ist (DE-OS 3334123,3409885). Die Signale, die die Rechner steuern, werden durch eine zentrale Steuereinheit erzeugt und dann zu den verschiedenen Rechnerstationen durch eine Daisy-Chain-Anordnung, durch eine Aufrufanordnung (Polling) oder eine Anordnung übertragen, die als „unabhängige Anforderungen" (independent-requests) bekannt ist. Bei einer anderen Art ist keine zentrale Steuereinheit vorgesehen; statt dessen ist die Steuerlogik gleichmäßig unter den Rechnerstationen verteilt. Die Steuersignale, die durch die Rechnerstationen erzeugt werden, werden von der einen zur anderen durch daisy-chaining, Aufruftechnik oder durch unabhängige Anforderungen übertragen. Das hauptsächliche Problem beider Auswahltechnik für die Steuerung des Zugriffs besteht darin, daß das Netz vollständig von der Tätigkeit einer einzigen Einheit abhängig ist. Wenn das Netz eine zentrale Steuereinheit enthält und die zentrale Steuereinheit ausfällt, kann das Netz nicht arbeiten. Das gilt auch, wenn das Netz keine zentrale Steuereinheit aufweist und die zur Zeit die Steuerung wahrnehmende Rechnerstation ausfällt. Bei anderen bekannten Verfahren des wahlfreien Zugriffs (random access) muß eine Rechnerstation, die Zugriff zum Bus wünscht, nicht warten, bis sie angesteuert wird, sondern sie überwacht einfach den Bus auf eine Tätigkeit. Wenn keine Tätigkeit oder Aktivität vorhanden ist, nimmt die Rechnerstation an, daß der Bus frei ist, und überträgt ihre Nachricht. Das Problem bei diesem Verfahren besteht darin, daß zwei (oder mehr) Rechnerstationen zu der Schlußfolgerung, daß der Bus frei ist, zu ungefähr der gleichen Zeit kommen können und gleichzeitig zum Bus Zugriff nehmen. Wenn dies eintritt, kollidieren die zwei Nachrichten und gehen verloren. Beim Reservierungsverfahren gibt eine Rechnerstation, die wünscht, eine Nachricht zu übertragen, eine Anforderung hierfür ab und erhält dann eine in derZukunft liegende reservierte Zeit, während der sie ihre Nachricht übertragen kann. Die Hauptprobleme bei diesem Verfahren bestehen darin, daß es von der Operation der Einheit, durch die Anforderungen bearbeitet werden müssen, abhängt und daß es relativ langsam ist.
Eine genauere Diskussion der obengenannten Verfahren kann in der rfe33 (1984) H. 4 ff., Dipl.-Ing. W. Matthes, „Multimikrorechnersysteme" gefunden werden.
Die Erfindungsbeschreibung DE-OS 3119394 schlägt ein weite Entfernungen überbrückendes Rechnernetz vor, das einen einzigen bidirektionalen Bus und eine Mehrzahl von Rechnerstationen aufweist. Jede Rechnerstation besitzt einen Rechner und eine Adaptereinheit. Jede Adaptereinheit besitzt eine Leitungsaktivitätsanzeiger zum Überwachen des Busses auf Aktivität, einen Zeitgeber zum Messen der Zeit der Inaktivität auf dem Bus, eine Einrichtung zum Erzeugen von Impulsen, eine Steuerlogik und eine Interfacelogikschaltung.
Bekannt durch die DE-OS 3126384 ist eine Prioritätsauswahleinrichtung zur Auswahl einer an eine zentrale Steuerung gerichteten Operationsanforderung aus mehreren gleichzeitig vorliegenden Operationsanforderungen, die von Prozessoren eines Multiprozessorsystems ausgegeben werden. Im Normalbetrieb wird die Zuordnung von Prioritäten zu den einzelnen Prozessoren nach jeder Auswahl einer Operationsanforderung vertauscht. Dazu enthält die Auswahleinrichtung jedem Eingang zugeordnete Multiplexer, deren Dateneingänge mit den Ausgängen der die Anforderungssignale ausgebenden Elemente in verschiedener Reihenfolge ohne Wiederholung verbunden sind. Mit den Stufenausgängen eines Binärzählers sind sowohl die Steuereingänge aller Multiplexer als auch die Eingänge eines Registers verbunden, in das der jeweilige Zählerstand gleichzeitig mit der Aktivierung des Prioritätsnetzwerkes mit dem Beginn eines ersten Impulses übernommen wird. Mit den Ausgängen des Prioritätsnetzwerkes einerseits und des Registers andererseits sind die Eingänge von Exclusiv-ODER verbunden, deren Ausgänge Signale zur Kennzeichnung der aktuellen Nummer des ausgewählten Anforderungssignals bzw. des aussendenden Elements in binärer Codierung führen. Nach Abschluß der Prioritätsentscheidung wird bei Eintreffen eines zweiten Impulses am Zähleingang des Binärzählers der Zählerstand um eine Zählereinheit erhöht.
Bei der DE-OS 3026362 erfolgt ein schneller blockorientierter Datentransfer zwischen zwei Rechnern, die hierzu jeweils einen E/A-Baustein und eine Steuereinrichtung aufweisen. Die E/A-Bausteine beider Rechner stehen durch eine Datenübertragungsleitung miteinander in Verbindung, und die Steuereinrichtungen sind über Leitungen zu einer Befehlssteuereinrichtung zusammengefaßt. Zur Durchführung eines Datentransfers fordert der sendende Rechner mit einer Unterbrechungsanforderung über die Befehlssteuereinrichtung den anderen Rechner hierzu auf, aktiviert seinen E/A-Baustein und setzt sich still. Die Befehlssteuereinrichtung erzeugt bei Bereitschaft des aufgeforderten Rechners eine Unterbrechungsanforderung als Rückmeldung für den sendenden Rechner und aktiviert seinen E/A-Baustein, wonach über die Datenübertragungsleitung eine synchrone Ausgabe/eingäbe des zu transferierenden Datenblocks erfolgt. Die beiden Unterbrechungsanforderungen dienten nur zur Aktivierung der E/A-Bausteine beider Rechnerund werden danach nicht mehr beachtet.
Durch DD-WP 155662 ist ein Mehrrechnersystem bekannt, bei dem von mehreren gleichartigen, zwei gleichberechtigt gekoppelte, aus gleicher Taktquelle gespeiste Mikrorechner, die über je einen Unterbrechungseingang, je einen den Software-Haltezustand signalisierenden Halt-Ausgang, je eine programmierbare Parallel-Ein-Ausgabe-Schnittstelle, sogenannte PlO und jeweils eigenen Speicherbereich verfügen, mittelst Blockausgabe- und Blockeingabe- oder andere Aus/Eingangsbefehle gleicher Taktlänge einen Datentransfer ausführen. Die wahlweise als Ein- oder Ausgänge dienenden Klemmen eines ersten Ports jeder PIO sind mit den wahlweise als Ein- oder Ausgänge dienenden Klemmen der ersten Ports aller übrigen PIO in Form eines zur Kopplung dienenden Daten-Koppelbus-Systems verbunden.
Je Kopplungskanal eines Rechners zu einem gleichberechtigten Rechner sind zwei wahlweise Anforderungs- oder Quittungssignal führende Leitungen von Klemmen eines zweiten Ports der PIO des einen Rechners zu zwei Klemmen des zweiten Ports des anderen Rechners und außerdem zu zwei Eingängen einer bei aktivem Zustand aller Eingänge am Ausgang Tiefpegel einnehmenden je Kopplungskanal vorhandenen logischen NAND-Schaltung mit offenem Kollektor geschaltet. Zwei weitere Eingänge der NAND-Schaltung sind mit den HALT-Ausgängen der beiden Rechner verbunden, und der Ausgang der NAND-Schaltung ist mit je einem, eine gemeinsame Unterbrechung auslösenden Eingang des zweiten Ports aller Rechner oder mit einer im Bedarfsfall auf Unterbrechungsauslösung beim empfangenden Rechner programmierten Leitung des Daten-Koppelbus-Systems verbunden.
Ziel der Erfindung
Die starre als auch wechselnde Zuordnung von Prioritäten bei der Benutzung des gemeinsamen Koppelbusses kann nachteiligerweise dazu führen, daß bei diskontinuierlichem Datenanfall ein Sender, der zu einem betrachteten Augenblick sehr viele Daten zu transferieren hätte, aufgrund niederer Priorität wiederholte erfolglose Zugriffversuche unternehmen muß und in dieser Zeit keine anderen Aufgaben erledigen kann.
Bei dem gewählten Lösungsweg eines Multimikrorechnersystems mit Kopplung über parallele E/A-Ports sollen einschränkende und erschwerende Bedingungen, wie Master-Slave-Verhältnis, relativ langsame Datenübertragung lediglich zwischen zwei Rechnern, langwierige Busvermittlung und Prioritätsentscheidungen, unökonomische SpezialSchaltkreise usw. weitestgehend vermieden werden.
Darlegung des Wesens der Erfindung
Ausgehend von vorstehender Zielstellung verfolgt die Erfindung nachstehende Aufgabenstellung:
— Alle Mikrorechner arbeiten autonom mit eigenem Speicherbetrieb, jedoch mit einer gemeinsamen Taktquelle und treten nur zum Datenaustausch miteinander in Verbindung.
— Jeder Mikrorechner kann nach dem Prinzip des wahlfreien Zugriffes auf jeden anderen bzw. auch zu mehreren oder allen anderen in einem einzigen Übertragungszyklus Datenblöcke übertragen.
— Der sendewillige Mikrorechner initiiert den Sendewunsch zu einem ihm passenden Programmzeitpunkt nach Zusammenstellung der zu übertragenden Datenpakete und greift auf den oder die Empfänger zu, welche im Interruptbetrieb auf die Kopplung eingehen.
— Der Koppelhardwareaufwand ist gering und zu einem Teil auf einer zentralen Koppelleiterkarte und zum anderen als identische Zusatzlogik bei den einzelnen Rechnern realisierbar.
— Der Koppelbus ist standardisierbar, und das System ist ohne weiteres durch Nichtbelegung abrüstbar.
— Die Koppelbusbenutzung soll sich dem Anfall der zu übertragenden Datenpakete anpassen und gestaltet sich in erster Linie stochastisch ohne Prioritätenzuordnung.
Das Prinzip des unabhängigen stochastischen Koppelbuszugriffs ohne Prioritätenverteilung kann, wenn auch mit einer sehr geringen Wahrscheinlichkeit, dazu führen, daß zwei sendewillige Rechner zur gleichen Zeit den Koppelbus auf „frei" vorprüfen und zur gleichen Zeit belegen wollen. Dieser Konflikt wird derart gelöst, daß der wirklich zeitlich zuerst zugreifende Rechner den Koppelbus bekommt.
Für ein Mehrrechnersystem, bei dem je Kopplungskanal eines Rechners zu einem gleichberechtigten Rechner je zwei wahlweise Anforderungs- oder Quittungssignale führende Steuerleitungen, vorzugsweise jeweils benachbarte, als Ein- bzw. Ausgang programmierte Portklemmen verbinden, wird die Aufgabe erfindungsgemäß dadurch gelöst, daß die Portausgangsklemmen je über Treibertore mit den Steuerleitungen verbunden sind, deren Torverriegelungssignale jeweils vom Ausgang eines monostabilen Multivibrators abgeleitet sind, dessen Flanken-Triggereingang an den Ausgang eines alle Quittungssignale und sämtliche Anforderungssignale der nichteigenen Koppelwege disjunktiv verknüpfenden Gatters geschaltet ist. Zur Vermeidung von Hasardfehlern ist vorgesehen, daß die Taktversorgung der einzelnen Mikrorechner phasenverschoben erfolgt. Erfindungsgemäß werden synchrone Buszugriffe für den erstzugreifenden Rechner erfindungsgemäß dadurch entschieden, daß die Ausgänge der Steuersignale disjunktiv verknüpfenden Gatter der jeweils anderen Rechner konjunktiv verknüpft an einen Triggersperreingang des monostabilen Multivibrators geschaltet sind.
Eine Selbsthaltesicherung der Triggerfähigkeit gegen Hasards und eine Triggerverriegelung während des gesamten Koppelintervalls für alle monostabilen Multivibratoren wird erfindungsgemäß dadurch erzielt, daß die Ausgänge sämtlicher Steuersignale disjunktiv verknüpfenden Gatter mittelst eines weiteren Gatters disjunktiv verknüpft sind und der Ausgang dieses Gatters über ein weiteres Gatter mit sämtlichen Ausgängen der monostabilen Multivibratoren konjunktiv verknüpft ist, wobei der Ausgang des letzteren Gatters an einen zweiten Triggersperreingang sämtlicher monostabilen Multivibratoren geschaltet ist.
Ausführungsbeispiel
An Hand von zwei Figuren soll im nachfolgenden Ausführungsbeispiel die Erfindung an Hand eines 4-Rechner-Systems näher erläutert werden. Fig. 1 zeigt den erfindungswesentlichen Teil einer sogenannten Koppelleiterkarte als Logikplan. Zu dieser Leiterkarte führt von jedem Rechner des Systems ein sogenannter Steuer-Koppelbus, der im wesentlichen die Anforderungsund Quittungsleitungen umfaßt, die auf der Koppelleiterkarte entsprechend einem Rechnerverbindungscode RC... miteinander gebrückt sind.
Es werden über diese Koppelleiterkarte immer ein Steuerausgang Bit 7 + 5 + 3 der Koppel-ΡΙΟ eines Rechners als Anforderungsleitung zu einem Steuereingang Bit 6 + 4 + 2 eines anderen Rechners hin- und von dessen nächsthöheren Ausgangsbit als Quittungsleitung zum nächstniederen Eingangsbit des ersten Rechners zurückgeführt. Diese Überkreuzschaltung sichert programmäßig lediglich durch Links- bzw. Rechtsschiebebefehl die Quittungsgenerierung bzw. Kontrolle. Es existieren zwischen 4 Rechner (J) = 6 Koppelwege und pro Koppelweg eine Anforderungs- und eine Quittungsleitung. Die z.B. vom Rechner 1 zum Rechner 2 geführte Anforderungsleitung wird mit „1.2" und die vom Rechner 2 zum Rechner 1 geführte Quittungsleitung mit „2.1" gekennzeichnet, wobei gleichzeitig auch die auf ihnen übertragenen Signale so bezeichnet werden. Bezüglich der Signalrichtung von Anforderungs- und Quittungssignal bezeichnet jeweils die erste Ziffer die Quelle und die zweite Ziffer die Senke des Signals. Anforderungs- und Quittungsleitungen tauschen ihre Funktion bei entgegengesetztem Datentransfer zwischen den bezeichneten Rechnern.
Die Koppelleiterkarte enthält einen nicht dargestellten zentralen Taktgenerator (T = 400 ns) mit einer Kette von nachgeschalteten invertierenden Treibern, deren Signalverzögerungszeiten (2 χ 30 ns) vier phasenverschobene Taktsignale für die vier Rechner erzeugen. Durch diese Phasenverschiebung (60 ns, 230 ns, 290 ns) werden Hasardfehler bei der Generierung eines B1 -Signals und einer Verriegelung der Ausgangssteuersignale B7; 5; 3 der Koppel-ΡΙΟ vermieden, wenn zufällig einmal zwei Rechner zyklussynchron den Koppelbus belegen wollen.
Die drei Ausgänge des Port B Bit 7, 5,3 (high-aktiv) jeder Koppel-ΡΙΟ (Fig. 2) sind überTreiber-NAND mit offenem Kollektor nur dann auf dem Koppelbus (low-aktiv) wirksam, wenn das von der Koppelleiterkarte generierte Busverriegelungssignal B1 nicht aktiv (H) ist.
Es erfolgt in dem dargestellten Schaltungskomplex auf der Koppelleiterkarte (Fig. 1) die Generierung der vier Busverriegelungssignale B 1.1 bis B 1.4. Für jeden Rechner erfolgt jeweils durch ODER-Verknüpfungen aller durch die anderen Rechner möglichen Anforderungssignale (während die eigenen drei möglichen Anforderungssignale beim eigenen B1-Signal nicht mit verknüpft werden) die Bildung eines Triggersignals R1, R 2, R3, R4 durch das je ein Monoflop MM (DL 123) an R-Eingang in Form einer L-H-Flanke getriggert werden kann. Ein getriggertes Monoflop macht an seinem Ausgang über Leitungstreiberfür eine bestimmte Zeit die B1.-Signalleitung jedes nicht zugreifenden Rechners low-aktiv.
Als Busverriegelungssignal werden jeweils die generierten Signale B1.1. bis B1.4 (low-aktiv) mit Porteingang B1 des betreffenden Rechners invertiert verbunden.
Das Monoflop MM läßt sich durch eine L-H-Flanke am Eingang R jedoch nur triggern, wenn ein Eingang A auf „low" und sein Eingang B auf „high" liegen. Wie Fig. 1 zeigt, ist Eingang A eines jeden Monoflops über ein Drei-Eingangs-AND an jeweils den Ausgang R der anderen Rechnern zugeordneten 8-Eingangs-NANDR geschaltet und gibt somit vor einem Buszugriff ein „low" an den Eingang A. An den NANDR erscheinen die Triggerflanken R = LH nach der Buslaufzeit und den Signalverzögerungszeiten des Leitungstreibers und des NANDR (ca. 70 ns) ab Ausgabe des Rechnerverbindungscodes RC.. auf Port B des erstzugreifenden Senders. Der Α-Eingang des Erst-Sender-Monoflops geht dann um die Signalverzögerungszeit des AND (15 ns) später auf „high", so daß dieses nicht mehr triggerbar ist. Ein anderer (maschinenzyklussynchron) zugreifender Rechner kann jedoch frühestens 60ns (infolge der Phasenverschiebung des Taktes) später eine Triggerflanke am Eingang R des Monoflops des erstzugreifenden Senderserzeugen. Da jedoch bereits nach 15 ns die Triggerbarkeit des eigenen Monoflops (der zwar durch die synchrone Zweitbelegung an seinem R-Eingang die L-H-Flanke bekommt) nicht mehr gegeben ist, wird ein B1-Signalfürden Erst-Sender-Rechner nicht generiert. Die B 1-Signale für die drei anderen Rechner sind jedoch noch ca. 145ns aktiv (L) und verriegeln nach Rückdurchlauf der Busleitung und der Signalverzögerungszeit der Bustreiber für die Steuerausgänge B7,5,3 nach weiteren 45ns den Zugriff auf den Steuerbus nunmehr generell für die anderen drei Rechner.
Diese Verriegelungsschaltungen sollen im Rahmen des Beispiels anhand der Fig. 1 von der Sicht des zugreifenden Rechners 4, der mit Rechner 1 koppeln möchte, näher erläutert werden. Dabei wird jedoch angenommen, daß bereits Rechner 3 mit einem Sendewunsch an Rechner 4zyklussynchron (d. h. 60 ns früher) den Rechnerverbindungscode RC4 (Signal 3.4) auf den Bus gelegt
Der Triggereingang R4 des Monoflops-MM4 liegt am Ausgang des NAN DR4, an dessen Eingänge alle durch die anderen Rechner möglichen Anforderungssignale (1.2; 2.1; 1.3; 3.1; 1.4; 2.3; 3.2; 2.4; 3.4;) gelegt sind. Wird auch nur eines dieser 9 Signale (z.B.
3.4) „low", so wird derNANDR4-Ausgang „high" und kippt das Monoflop MM4in den zeitweiligen Zustand.
Der Triggereingang R4 des Monoflops MM 4 zur Bildung von B 1.4 wird nach Funktion (1) angesteuert, weichein NAND-Technik wie folgt realisiert ist:
R4=(1.2-2.1)-1.3-3.1-2.3-3.2-1.4-4.1-3.4 (D
Es war angenommen, daß Rechner 3 sein Anforderungssignal 3.4 bereits aktiviert hat. Daher sind vorstehende Funktion (1) wie auch die Funktionen für die Triggersignale R1 und R2 erfüllt (H).
Haben dabei die Eingänge B der Monoflops MM4, MM1 und MM 2 „high "-Pegel und die Eingänge A „Iow"-Pegel, so werden sie getriggert. Eingang B4 liegt parallel mit den anderen Eingängen B3, B2 und Bi am Ausgang eines NAND8 entsprechend nachstehender Funktion (2), das noch solange Η-Pegel führt, bis alle Monoflopausgangssignale Q1, Q2, Q3, Q4 gemäß Funktion (2) wieder in der stabilen Lage, d.h. „high", sind:
B = Q1-Q2-Q3-Q4-R1-R2-R3-R4 (2)
Gemäß (2) sind vier NANDB-Eingänge jeweils an den Monoflopausgang Q geschaltet, der im zeitweiligen Zustand „Iow"-Pegel hat und im stabilen Zustand wieder auf „high"-Pegel geht.
Der 5. Eingang des NAND8 gemäß Funktion (2) liegt am Ausgang eines weiteren NANDr8, dessen vier Eingänge über Inverter an Ausgänge der vier NANDr entsprechend Funktion (1) für R1, R 2, R 3 und R4 geschaltet sind. Etwa nach 3 χ 15ns = 45 ns, nachdem eine dieser Teilfunktionen „low" wurde, wäre infolge des 5. Eingangs der auf „high" geht, der Ausgang des NAND8 gemäß Funktion (2) „low" und könnte damit die Triggerfähigkeit der anderen Monoflops beeinträchtigen. Um das zu verhindern, sichern alle Monoflopausgänge Qi, Q2, Q3 und Q4, die bereits nach einer Signalverzögerungszeit tpHL = 27nsabTriggerung „low" sind, das „high" an den Eingängen B der Monoflops über die instabile Zeitphase tM der Monoflop. Durch vorstehend beschriebene Schaltung ist darüber hinaus gewährleistet, daß nur beim erstmaligen Koppelbuszugriff alle · vier Monoflops triggerbar sind und diejenigen triggern, bei denen die Triggeransteuerbedingungen (R = L —» H; A = L, B =' H) auch erfüllt sind (im Beispiel hat Rechner 3 das Anforderungssignal 3.4. auf den Steuerbus gelegt, so daß MM 4, MM1 und MM 2 getriggert werden). Nach Ablauf der instabilen Monoflopzeitphasen tM gehen alle Q-Ausgänge wieder in „high", so daß (einschließlich der Teilfunktion am 5. Eingang) der NANDB-Ausgang und damit die Eingänge Baller Monoflops in „low" gehen. Nunmehr sind die Monoflops erst wieder triggerbar, wenn das Koppelintervall beendet ist, wobei alle Steuer-Signale wieder *
inaktiv (H) und damit der 5. Eingang des NAND8 gemäß Teilfunktion (2) wieder „low" wird.
Die Rechner 1; 2 und 4 hatten während der MonoflopzeittM ein aktives B1-Signal und konnten aufgrund der dadurch gesperrten B7; 5; 3-AusgängederKoppel-PIO keine aktiven Signale auf den Koppelsteuerbus legen. Lediglich Rechner 4 legte, wie im Beispiel angenommen, den Rechnerverbindungscode RC1 ca. 60 ns später als Rechner 3 seinen Code RC4 auf den Bus. Der Code RC4 brachte nach ca. 70 ns eine L-H-Flanke der Triggersignale R1, R 2, R4. Als Folge (15 ns später) war auch der Ausgang des diese 3 Signale verknüpfenden AND3 auf „high " gegangen. Der Ausgang dieses AND3 liegt am Eingang A3 des Monoflops MM 3 und verhinderte mit „high" dessen Triggerbarkeit. Der vom Rechner 4 ausgegebene Code RC1 brachte frühestens nach weiteren 45 ns eine L-H-Flanke des Triggersignals R 3, die jedoch MM 3 nicht mehr triggern konnte, d. h. es erfolgte keine Generierung des Verriegelungssignals B1.3.
-6- ZBZ 7Z5
Rechner 3 hatte nach ca. 190 ns ab Erstzugriff bei allen anderen Rechnern die Bustreiber durch Generierung des B1.1 -, B1.2- und B1.4-Signals verriegelt. Der durch Rechner 4 im zyklussynchronen Zweitzugriff ausgegebene Code RC1 war daher nur für ca. 130 ns auf dem Bus. -
Rechner 3 als auch Rechner 4 hatten mit Abstand von 60 ns durch Ausgabe auf Port B ihrer Koppel-ΡΙΟ einen Buszugriff unternommen. Das Anforderungssignal 4.1 von Port B Rechner 4 wurde nach ca. 130ns gegenüber dem Bus verriegelt, steht jedoch noch im Ausgangsregister Port B der Koppel-ΡΙΟ des Rechners 4. Das Verriegelungssignal B1.4 liegt seit ca. 190 ns ab Erstzugriff an dem B1-Eingang des Port B Rechner 4. Jeder Rechner, derauf den Bus zugegriffen hat, fragt programmgemäß anschließend mittels eines Eingabebefehls das Bit 1 Port B auf Aktivität ab. Rechner 3 hat kein aktives B 1.3-Signal, schließt daraus auf seine wirksame Busbelegung und bereitet sich auf das Datensenden vor, indem er seine PIO neu programmiert und dabei auch einen; anderen 2. Interruptvektor in Port B lädt. Dagegen läßt das aktive B1.4-Signal Rechner 4 erkennen, daß er mit seinem Zugriff zu spät gekommen ist und daß er sich mit seinem Sendewunsch programmgemäß zurückziehen muß. Die MonoflopsMMI, MM 2 und MM4 müssen mindestens solange den zeitweiligen Zustand tim und damit die Busverriegelungssignale B1.1, B1.2 und B1.4 aktiv halten, bis Rechner 4 im ungünstigsten Fall wieder sein Anforderungssignal 4.1 softwaremäßig von Port B gelöscht hat (ca. 60 Takte = 24ps). Sowie er programmäßig nach einigen Rückzugbefehlen das Unterprogramm verlassen hat und wieder Interrupt erlaubt, bearbeitet er (jedoch als Empfänger) den durch das Anforderungssignal 3.4 vom Rechner 3 anstehende Interrupt. In dessen Verlauf ist programmiert vorgesehen, daß er das Anforderungssignal 3.4. des Senders 3 seinerseits mit der Aktivierung des diesbezüglichen Quittungssignals 4.3 zu beantworten hat. Eine erneute Triggerung durch dieses Quittungssignal 4.3 infolge der L-H-Flanken an den R-Eingängen der Monoflops MM 3, MM1 und MM 2 wird jedoch durch die noch auf low liegenden B-Eingänge verhindert.

Claims (4)

1. Anordnung zur wahlfreien, stochastischen und kollosionsf reien Belegung eines Koppelbusses zum gleichberechtigten Datentransfer zwischen mehreren autonom arbeitenden, gemeinsam getakteten Mikrorechnern eines über Parallel-Einausgabe-Schnittstellen (PIO) gekoppelten Mehrrechnersystems, bei dem je Kopplungskanal eines Rechners zu einem gleichberechtigten Rechner, je zwei wahlweise Anforderungs- oder Quittungssignale führende Steuerleitungen, vorzugsweise jeweils benachbarte, als Ein- bzw. Ausgang programmiertePortklemmen verbinden, gekennzeichnet dadurch, daß_die Portausgangsklemmen (B7; 5; 3) je überTreibertore (T7; T5; T3) mit den Steuerleitungen (B7, B5; B3) verbunden sind, deren Torverriegelungssignale (B 1) jeweils vom Ausgang (Q) eines monostabilen Multivibrators (MM) abgeleitet sind, dessen Flanken-Triggereingang (R) an den Ausgang eines alle Quittungssignale und sämtliche Anforderungssignale der nicht eigenen Koppelwege disjunktiv verknüpfenden Gatters (NANDR) geschaltet ist.
2. Anordnung nach Anspruch 1, gekennzeichnet dadurch, daß die Taktversorgung der einzelnen Mikrorechner phasenverschoben erfolgt.
3. Anordnung nach Anspruch 1 und 2, gekennzeichnet dadurch, daß die Ausgänge (R) der Steuersignale disjunktiv verknüfenden Gatter (NANDb) der jeweils anderen Rechner konjunktiv verknüpft an einen Triggersperreingang (A) des monostabilen Multivibrators (MM) geschaltet sind.
4. Anordnung nach Anspruch 1 bis 3, gekennzeichnet dadurch, daß die Ausgänge (R) sämtlicher Steuersignale disjunktiv verknüpfenden Gatter (NANDr) mittelst eines weiteren Gatters (NANDr8) disjunktiv verknüpft sind und der Ausgang dieses Gatters (NANDRB) über ein weiteres Gatter (NANDb) mit sämtlichen Ausgängen (Q) der monostabilen Multivibratoren konjunktiv verknüpft ist, wobei der Ausgang des letzteren Gatters (NANDB) an einen zweiten Triggersperreingang (B) sämtlicher monostabilen Multivibratoren (MM) geschaltet ist.
DD30522187A 1987-07-22 1987-07-22 Anordnung zur wahlfreien, stochastischen und kollosionsfreien belegung eines koppelbusses DD262725A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DD30522187A DD262725A1 (de) 1987-07-22 1987-07-22 Anordnung zur wahlfreien, stochastischen und kollosionsfreien belegung eines koppelbusses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DD30522187A DD262725A1 (de) 1987-07-22 1987-07-22 Anordnung zur wahlfreien, stochastischen und kollosionsfreien belegung eines koppelbusses

Publications (1)

Publication Number Publication Date
DD262725A1 true DD262725A1 (de) 1988-12-07

Family

ID=5590945

Family Applications (1)

Application Number Title Priority Date Filing Date
DD30522187A DD262725A1 (de) 1987-07-22 1987-07-22 Anordnung zur wahlfreien, stochastischen und kollosionsfreien belegung eines koppelbusses

Country Status (1)

Country Link
DD (1) DD262725A1 (de)

Similar Documents

Publication Publication Date Title
DE3300261C2 (de)
EP0179936B1 (de) Verfahren und Einrichtung zur Steuerung einer Sammelleitung
DE69334171T2 (de) Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph
DE2913288C2 (de) Multiprozessoranlage mit einer Vielzahl von Prozessorbausteinen
DE3506118C2 (de)
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE3238532C3 (de) Datenübertragungseinrichtung
DE69021186T2 (de) "Master-Slave" industrielles Netzwerk mit Tokenübergabe.
EP1361517A2 (de) Datenverarbeitungsverfahren und Vorrichtung hierfür
EP1398706A2 (de) Internes Bussystem für programmierbare Zellstrukturen
DE3789728T2 (de) Serieller Datenbus für verschiedene Betriebsarten (SCI, SPI und gepufferte SPI) und Verfahren für serielle Peripherieschnittstelle in einem seriellen Datenbus.
EP1784737A1 (de) Kommunikationsbaustein mit einem kommunikationsschnittstellenelement und kommunikationsschnittstellenelement
DE68920443T2 (de) Systembus mit multiplexbetriebenen steuer-kennzeichnungsinformationen und daten.
DE68927157T2 (de) Deblockierverfahren eines Multiprozessor-Multibus-Systems
EP0280767B1 (de) Verfahren zur Übertragung von Daten
DE68906224T2 (de) Zentrale datenverarbeitungseinheit fuer ein datenverarbeitungssystem.
DE2713304A1 (de) Mehrrechnersystem
DD262725A1 (de) Anordnung zur wahlfreien, stochastischen und kollosionsfreien belegung eines koppelbusses
DE3324504C1 (de) Verfahren zur Informationsuebertragung zwischen Mikrorechnern in einem dezentralen Prozesssteuersystem,insbesondere fuer Fernsprechanlagen
DE3333847C2 (de)
EP1248987B1 (de) Multi-master-bus-system
DE2554775C2 (de) Vorrichtung zur Datenübertragung bei Elektronikschaltungen für Kraftfahrzeuge
DE2900380C2 (de)
DE10216920A1 (de) Verfahren und Vorrichtung zur Überprüfung einer Überwachungsfunktion eines Bussystems und Bussystem
EP1121646A1 (de) Datenbus und verfahren zum kommunizieren zweier baugruppen mittels eines solchen datenbusses

Legal Events

Date Code Title Description
ENJ Ceased due to non-payment of renewal fee