DE3850903T2 - Steuerungssystem mit zwei Mikroprozessoren. - Google Patents
Steuerungssystem mit zwei Mikroprozessoren.Info
- Publication number
- DE3850903T2 DE3850903T2 DE3850903T DE3850903T DE3850903T2 DE 3850903 T2 DE3850903 T2 DE 3850903T2 DE 3850903 T DE3850903 T DE 3850903T DE 3850903 T DE3850903 T DE 3850903T DE 3850903 T2 DE3850903 T2 DE 3850903T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- address
- microprocessor
- bus
- channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Communication Control (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Microcomputers (AREA)
- Hardware Redundancy (AREA)
Description
- Die folgende US-Patentanmeldung, die am gleichen Tag wie die vor liegende Anmeldung eingereicht wurde und dem gleichen Inhaber wie die vorliegende Anmeldung zugewiesen ist, ist mit der vorliegenden Anmeldung verwandt:
- "Firmware State Machine" von Thomas Holtey, et al, USA, Seriennummer 032,896, eingereicht am 31. März 1987. Diese entspricht der veröffentlichten EP-Anmeldung Nr. 285,003.
- Die vorliegende Erfindung bezieht sich allgemein auf ein Dual-Mikroprozessor-Steuersystem und betrifft insbesondere die Dual-Mikroprozessorsteuerung in einem asynchronen Datenkommunikationssystem, welches vorzugsweise einen Empfangsmikroprozessor und einen Sendemikroprozessor einsetzt.
- In einem elektronisch gesteuerten Telekommunikations-Vermittlungssystem ist eine verteilt verarbeitende Telexvermittlung in dem US-Patent 4,425,616 offenbart, wobei die Systemverarbeitungsanforderungen auf unterschiedliche Ebenen der Prozessorsteuerung verteilt worden sind und wobei jeder Prozessor in jeder Steuerebene einen redundanten parallelen Prozessor als Ersatzeinheit hat, um dadurch die Systemzuverlässigkeit zu erhöhen. Um Hochgeschwindigkeitsverarbeitung zu ermöglichen, während der Software-Overhead beschnitten wird, werden zwei Cache-Speicher für Daten von zwei unterschiedlichen Dateien verwendet. Daten für den nächsten Anschluß, der im Teilnehmerbetrieb verarbeitet werden soll, wird in die Cache-Speicher geladen, und zwar ein Teilnehmer-Intervall, bevor sie verwendet werden, so daß die Programmausführung ununterbrochen am Ende eines jeden Teilnehmer-Intervalls fortfahren kann.
- In einem Datenkommunikationssystem, welches eine Telefon-PBX einsetzt, können die Leitungsdatenraten von 300 bis 19200 Bits pro Sekunde variieren. Bei einer Rate von 19200 Bits pro Sekunde, wobei 16 Kanäle arbeiten, bedeutet dies, daß ein Zeichen für die Sendung alle 52,1 us geliefert werden muß. In ähnlicher Weise kann ein Zeichen alle 52,1 us empfangen werden. Bei solchen Datenvolumenanforderungen ist es typisch, ein Paar von Mikroprozessoren zu verwenden. Ein Mikroprozessor ist dazu bestimmt, Signale zu senden, und der andere ist dazu bestimmt, Signale zu empfangen. Selbst bei der Verwendung dieser dualen Mikroprozessoren erlaubt dies nur eine kurze Zeit für Steueraufgaben, wie z. B. Packetieren/Entpacketieren von Daten, das Handhaben von Modem- Statuserneuerungsnachrichten, die Anniiverarbeitung, usw . .
- Zusätzlich zu den spezifischen Aufgaben des Sendens und Empfangens des jeweiligen Sende-Mikroprozessors und Empfangs-Mikroprozessors ist es auch erwünscht, daß der Sende- und Empfangs-Mikroprozessor in der Lage sind, miteinander zu kommunizieren. Wenn die zwei Prozessoren Information untereinander austauschen, ist es erwünscht, die Kommunikation keinem Wettlauf auszusetzen. Dies wird gewöhnlich mit unterbrechungsgesteuerten Techniken erreicht, welche "Mailboxen" und "Sperren" einsetzen. Jedoch ist ein solches Unterbrechungs-gesteuertes System relativ langsam im Betrieb. Für relevanten Stand der Technik wird auf das US- Patent 4,482,982, erteilt am 13. November 1984 an Yu et al., und das US-Patent 4,488,231, erteilt am 11. Dezember 1984 an Yu et al., verwiesen, welche beide vom gleichen Inhaber wie hier gehalten werden.
- Es ist demgemäß ein Ziel der vorliegenden Erfindung, ein verbessertes Dualmikroprozessor-Steuersystem bereitzustellen, bei dem die Effizienz der Interkommunikation zwischen den Prozessoren wesentlich verbessert ist.
- Die vorangegangenen und andere Ziele, Merkmale und Vorteile der Erfindung werden durch eine Vorrichtung, wie sie in Anspruch 1 gekennzeichnet ist, erreicht.
- Ein Dualmikroprozessor-Steuersystem wird in einem asynchronen Datenkommunikationssystem mit einem Empfangsprozessor und einem Sendeprozessor eingesetzt. Das Mikroprozessorsteuersystem der Erfindung erlaubt eine verbesserte Effizienz des Datentransfers innerhalb des Datenkommunikationssystems einschließlich zwischen Mikroprozessoren. Das Dualmikroprozessor-System der Erfindung kann in einem System für den Datentransfer; die Steuerung und Signalisierung von Information eingesetzt werden, wie es erforderlich ist, um einen Betrieb zwischen einer Anzahl von Endgerätevorrichtungen und einem Computersystem zu unterstützen. Ein spezifisches Beispiel einer Betriebsumgebung ist in einem Datenkommunikationssystem zwischen mehreren Endgerätevorrichtungen (größer als die Anzahl von Prozessoren), einer PBX-Sammelleitung und einem Computersystem, wie z. B. dem Honeywell DPS-6. Obwohl die Konzepte der vorliegenden Erfindung in Zusammenhang mit einem solchen System beschrieben sind, wird verstanden, daß diese Konzepte einen breiteren Anwendungsbereich haben.
- Die hier beanspruchte Erfindung ist in einem Dualmikroprozessor-Steuersystem ausgeführt, welches einen ersten Mikroprozessor; der vorzugsweise als ein Empfangs-Mikroprozessor mit dazugehörigen Adreß- und Datenbussen bezeichnet wird, und einen zweiten Mikroprozessor, vorzugsweise einen Sende-Mikroprozessor ebenso mit dazugehörigen Adreß- und Datenbussen, aufweist. Es sind auch Speichereinrichtungen mit dazugehörigen Adreß- und Datenbussen enthalten. Es sind Einrichtungen bereitgestellt, welche die Datenbusse des ersten und zweiten Mikroprozessors mit dem Datenbus der Speichereinrichtung untereinander koppelt. Es sind Einrichtungen bereitgestellt, welche die Adreßbusse des ersten und zweiten Mikroprozessors mit dem Adreßbus der Speichereinrichtung untereinander koppelt, und zwar einschließlich einer Einrichtung zum Festlegen von Kanalnummern entsprechend Leitungstabellen der Speichereinrichtung für beide Mikroprozessoren und weiterhin einschließlich einer Steuereinrichtung zum Ändern der Kanalnummern, jedoch zum Verhindern des gleichzeitigen Adressierens des gleichen Kanals. Die Einrichtung zum Festlegen von Kanalnummern weist vorzugsweise ein Empfangskanal-Nummerregister und ein Sendekanal-Nummerregister auf, von denen jedes z. B. vier Bit breit ist. Die Steuereinrichtung kann einen programmierbaren Speicher aufweisen. Leitungen koppeln die Kanalnummerregister mit dem Eingang des programmierbaren Speichers. Es gibt einen weiteren Eingang zum programmierbaren Speicher; um anzuzeigen, welches Register die Nummer ändern soll. Der programmierbare Speicher ist angepaßt, um das Ändern der Kanalnummern so zu steuern, daß ein Mikroprozessor angepaßt ist, um auf die Kanäle in einer inkrementierenden Weise zuzugreifen, während der andere in einer dekrementierenden Weise zugreift. Z.B. kann der Empfangs-Mikroprozessor durch die Kanalnummern in einer Umkehrrichtung rückschreiten, wohingegen der Sende-Mikroprozessor in der normalen Vorwärtsrichtung fortschreiten kann. Wenn es einen Konflikt gibt, dann kann entweder der Sende- oder Empfangs-Mikroprozessor eine Adresse überspringen, welche eine Adresse darstellt, bei der sich der andere Mikroprozessor befindet.
- Zahlreiche andere Ziele, Merkmale und Vorteile der Erfindung sollten nun nach dem Lesen der folgenden detaillierten Beschreibung, genommen in Verbindung mit der begleitenden Zeichnung, erkennbar werden, in welcher Zeichnung:
- Fig. 1 ein Blockdiagramm eines Datenkommunikationssystems ist, welches die Prinzipien der vorliegenden Erfindung für Dual-Mikroprozessorsteuerung ausführt;
- Fig. 2 und 3 weitere spezifische Blockdiagramme für Teile des in Fig. 1 veranschaulichten Systems veranschaulichen;
- Fig. 4 ein Leitungstabellendiagramm für eine der 16 gespeicherten Leitungstabellen ist;
- Fig. 5 ein Segment eines Firmware-Zustandsdiagramms ist, welches zum Veranschaulichen des Aufgabenanhaltekonzepts der Erfindung brauchbar ist;
- Fig. 6 schematisch jede der mehreren in Seiten eingeteilten Leitungstabellen mit zugehörigen Codes schematisch veranschaulicht;
- Fig. 7 die Sequenz von sowohl dem Sende- als auch dem Empfangs- Mikroprozessor veranschaulicht, wobei das Aneinanderreihen der Kanalnummern veranschaulicht wird;
- Fig. 8 ein Zeitdiagramm ist, welches das Verschachteln von Zyklen für den Sende- und Empfangs-Mikroprozessor veranschaulicht; und
- Fig. 9 ein Zeitdiagramm ist, welches die Anhaltefunktion in einer Kanalnummer-Konfliktsituation veranschaulicht.
- Es wird nun auf das Blockdiagramm von Fig. 1 Bezug genommen. Dieses Blockdiagramm veranschaulicht ein digitales asynchrones Multiplex- Adaptersystem, das den Transfer von Daten, Steuerinformation und Signalisierungsinformation gewährleistet, wie es erforderlich ist, um Operationen zwischen einer Anzahl von Endgerätevorrichtungen zu unterstützen, welche durch eine Telefonleitung zur linken in dem Diagramm gekoppelt sind, sowie zwischen einem Computersystem und einer zugehörigen Steuereinrichtung zu unterstützen, welche von der rechten des Diagramms von Fig. 1 gekoppelt werden würden. Insbesondere können die Endgerätevorrichtungen über AT&T-Terminaladapter; eine AT&T- System-85-PBX und die digitale PBX-Multiplex-Schnittstellensammelleitung, und Anwendungen verbunden sein, welche in einem Computersystem, wie z. B. einem Honeywell DPS-6, laufen, welches über das asynchrone Multiplexadaptersystem und eine Mehrfachleitung-Kommunikationssteuereinrichtung unterstützt wird. Zum Zwecke der Einfachheit sind hier die Endgerätevorrichtungen und die Vielfachleitung-Kommunikationssteuereinrichtung nicht im Detail beschrieben.
- Die Mikroprozessoren, deren Steuerung der Gegenstand der vorliegenden Erfindung ist, sind in Fig. 1 als ein Empfangs-Mikroprozessor 10 und ein Sende-Mikroprozessor 12 veranschaulicht. Beide diese Mikroprozessoren können vom herkömmlichen Typ 68008 sein. Zugehörig zum Empfangs- Mikroprozessor 10 ist der Empfangsdatenbus 14 und auch der Empfangsadreßbus 16. Zugehörig zum Sende-Mikroprozessor 21 ist der Sendedatenbus 18 und der Sendeadreßbus 20.
- Fig. 1 veranschaulicht den XRAM 22 mit zugehörigem Datenbus 24 und Adreßbus 26. In dem Blockdiagramm von Fig. 1 ist der IRAM 28 benachbart zum XRAM 22 angeordnet. Der IRAM 28 hat in ähnlicher Weise zugehörig einen Datenbus 30 und einen Adreßbus 32. Der Datenbus 30 koppelt mittels eines Transceivers 31 mit dem Ausgabedatenbus 33, welcher angepaßt ist, um mit einer Vielfachleitung-Kommunikationssteuereinrichtung, welcher hier nicht veranschaulicht ist, zu koppeln. In ahnlicher Weise ist der Adreßbus 32 angepaßt, um mittels eines Transceivers 35 mit dem Adreßbus 36 zu koppeln. Der Adreßbus 36 ist angepaßt, um in ähnlicher Weise mit einer Vielfachleitung-Kommunikationssteuereinrichtung, welche hier nicht veranschaulicht ist, zu koppeln.
- Hier wird Bezug genommen auf die Verwendung von Transceivern, die in Zusammenhang mit Adreß- und Datenbussen verwendet werden, wie z. B. der zuvor genannte Transceiver 35. Jedoch können in einigen Fällen diese Vorrichtungen durch Puffer; die in drei Zuständen schaltbar sind, ersetzt werden.
- Wie zuvor angezeigt, ist das in dem Blockdiagramm von Fig. 1 veranschaulichte System angepaßt, um bis zu 16 Endgerätevorrichtungen zu irgendeinem Zeitpunkt über eine digitale Multiplex-Schnittstellensammelleitung zu verwenden. In diesem Zusammenhang sei zur Linken in dem Blockdiagramm von Fig. 1 der Koppeltransformator X1 für die Übertragung von Signalen vom Sender 40 bemerkt. Es sei auch der Koppeltransformator X2 für den Empfang von Signalen durch den Empfänger 42 bemerkt. Zwischen dem Sender und dem Empfänger ist ein Rahmenformer 41 gekoppelt. Der Sender 40, der Empfänger 42 und der Rahmenformer 41 sind alles Standard-AT&T-Schaltungen. Der Sender ist vom Typ 606 HM. Die Rahmenbilder-Schaltung ist vom Typ 229 GB. Der Empfänger ist vom Typ 630 AG.
- Das Blockdiagramm von Fig. 1 zeigt auf eine Kommunikation zwischen dem Sender 40 und dem Empfänger 42 zu den Datenschaltungen 44. Die Schaltungen 44 werden gewöhnlich als DUSCC-Chips bezeichnet. Jeder dieser Chips ist eine duale serielle Universal-Kommunikationssteuereinrichtung (DUSCC, dual universal serial communication controller). Diese Schaltungschips sind herkömmlich und werden durch die Signetics-Teile Nr. 68562 identifiziert. Wie in Fig. 1 veranschaulicht, gibt es acht dieser Datenschaltungen 44. Jede Schaltung 44 weist zwei Kommunikationskanalprozessoren auf. Es sei auch in Fig. 1 der Adreßbus 46 bemerkt. Mit jeder dieser Datenschaltungen 44, welche aus zwei Kommunikationskanälen besteht, gibt es insgesamt 16 Leitungen, die mit dem DUSCC-Datenbus 48 koppeln.
- Bezüglich der Kommunikation bei den Datenschaltungen 44 sei ebenso in Fig. 1 bemerkt' daß ein Multiplexer 50 vorgesehen ist, der eine Kommunikation gewährleistet, wie sie in größerem Detail hiernach beschrieben werden soll, und zwar zwischen den Datenschaltungen 44 und dem Sender 40. Im Blockdiagramm von Fig. 1 ist auch ein Empfangstakt-Kommutator 52 veranschaulicht, der den Transfer von Daten von den Datenschaltungen 44 zum Empfänger 42 steuert. Dieser Betrieb wird auch in weiterem Detail hiernach beschrieben werden.
- Grundsätzlich werden die Ausgaben der Datenschaltungen 44 durch den Multiplexer 50 gemultiplext und werden zum Sender 40 auf eine Zeitteilungsmultiplex-Weise gekoppelt. Die Empfängereingaben jeder der Datenschaltungen 44 sind gemeinsam verbunden, wie veranschaulicht im Diagramm, und es ist ein Taktgabeschema (siehe Kommutator 52) vorgesehen, welches acht Taktimpulse an jede der Datenschaltungen 44 nacheinander liefert. Die Taktsignale von Empfänger 42 werden demultiplext und dekodiert und werden an jeden der 16 Kanäle der Datenschaltungen 44 auf einer Zeitteilungsmultiplex-Basis geliefert.
- Wie zuvor angezeigt, haben die Datenschaltungen 44 einen gemeinsamen Adreßbus 46. Dieser Adreßbus ist aus sechs Adreßleitungen zusammengesetzt' die semidirekt vom Sende-Mikroprozessor 12 angesteuert werden können. Man bemerke in Fig. 1, daß der Sendeadreßbus 20 mittels eines Puffers 47 zum Datenschaltungs-Adreßbus 46 koppelt. Wie zuvor angezeigt, ist der Sende-Mikroprozessor 12 vom Typ 68008. Der Sende- Mikroprozessor 12 gewährleistet an seinem Adreßbus ein im wesentlichen direktes Adressieren der Datenschaltungen 44. Man bemerke auch, daß der Adreßbus 46 für die Datenschaltungen 44 von der Direktspeicherzugrifs-(DMA)-Steuerlogik gesteuert sein kann. In diesem Zusammenhang bemerke man das Koppeln beim Puffer 45 in Fig. 1. Diese bestimmte DMA-Adreßsteuerung wird verwendet, um auf die Datenschaltungen 44 zum Empfangen von Daten zuzugreifen. Der Sende-Mikroprozessor 12 greift auf der anderen Seite auf den gleichen Bus 46 direkt zum Senden von Daten und auch zum Einstellen zu.
- Die Datenschaltungen 44 haben alle einen gemeinsamen Datenbus 48, welcher als der DUSCC-Datenbus bezeichnet wird. Es sei bemerkt, daß dieser Datenbus 48 vom Empfangs-FIFO-Datenbus 54 durch einen Transceiver 55 getrennt ist. In ähnlicher Weise ist der Datenbus 48 der Datenschaltungen 44 vom Sendedatenbus 18 durch einen weiteren Transceiver 56 getrennt. Bezüglich des Zugriffs auf den Adreßbus 46 ist eine herkömmliche Steuerlogik vorgesehen, um sicherzustellen, daß der Sende- Mikroprozessor 12 nicht zur gleichen Zeit auf dem Bus 46 ist, zu der die DMA-Steuereinrichtung ist.
- Wie zuvor angezeigt, koppelt der DUSCC-Datenbus 48 mittels eines Transceivers 55 mit dem Empfangs-FIFO-Datenbus 54. Ein FIFO großer Kapazität ist vom Bus 54 gekoppelt, wie veranschaulicht im Blockdiagramm von Fig. 1, und zwar in zwei Teilen einschließlich einem Empfangsdaten-FIFO 60A und einem Empfangsstatus-FIFO 60B. Hiernach wird dies manchmal als FIFO 60 bezeichnet werden. Der Empfangsdaten- FIFO 60A koppelt mit dem FIFO-Datenbus 54 mittels des Transceivers 62. In ähnlicher Weise koppelt der Empfangsstatus-FIFO 60B mit dem FIFO-Datenbus 54 mittels des Transceivers 63. In Fig. 1 ist auch die Empfangsdaten-DMA-Steuereinrichtung 64 veranschaulicht, welche eine Steuerung zum FIFO 60 gewährleistet. Man bemerke auch in Fig. 1 die Leitung 65, die vom DUSCC-Datenbus 48 zur Steuereinrichtung 64 koppelt.
- In zwei Buszyklen werden Daten aus den Datenschaltungen 44 über die Transceiver 55, 62 und 63 ausgelesen, und zwar einschließlich sowohl Status und Daten, wobei diese Information in den FIFO unter der Steuerung der Empfangsdaten-DMA-Steuereinrichtung 64 gespeichert wird. Diese Daten- und Statusinformation wird in dem FIFO 60 gespeichert, und es wird darauf durch den Empfangs-Mikroprozessor 10 zugegriffen. Man bemerke diesbezüglich, daß der Datenbus 14, welcher zum Empfangs-Mikroprozessor 10 gehört, mit dem FIFO-Datenbus 54 mittels des Transceivers 66 gekoppelt ist. Der Empfangs-Mikroprozessor 10 greift auf den FIFO 60 zu, immer wenn er eine Möglichkeit hat, und tut dies mittels eines Abfrageschemas. Insbesondere befragt der Empfangs-Mikroprozessor 10 den FIFO 60 und prüft die Statusanzeige dahingehend, um herauszufinden, ob etwas im Datenabschnitt des FIFO 60 gespeichert ist. Wenn dem so ist, liest er den Status und die Dateninformation in den XRAM 22, wo sie gespeichert werden. Er speichert eigentlich die Daten in dem XRAM 22, prüft den Status und trifft eine geeignete Maßnahme, falls erforderlich. Man bemerke in diesem Zusammenhang, daß die Kommunikation vom Empfangs-Miicroprozessor 10 mittels des Empfangsdatenbus 14 und des Transceivers 68 zum X-Datenbus 24 erfolgt. Es gibt auch einen weiteren Transceiver 69, der den X-Datenbus 24 mit dem I- Datenbus 30 untereinander koppelt.
- Der Empfangsdatenbus 14 hat daran gekoppelt, und zwar zusätzlich zum Empfangs-Mikroprozessor 10, den Firmware-PROM 70. Dieser PROM 70 ist vorzugsweise ein 16 K · 8 Bit PROM oder EPROM.
- Wie zuvor angezeigt, ist der X-Datenbus 24 mit dem R-Datenbus 14 durch den Transceiver 68 verbunden. In ähnlicher Weise gibt es auch einen weiteren Transceiver 71, der den X-Datenbus 24 mit dem Sendedatenbus 18 untereinander koppelt. Steuerlogik-Schaltteclinik stellt sicher; daß der Empfangs-Mikroprozessor 10 und der Sende-Mikroprozessor 12 niemals beide gleichzeitig auf dem Datenbus 24 sind.
- Wie zuvor angezeigt, koppelt der X-Datenbus 24 zum I-Datenbus mittels des Transceivers 69. Der I-Datenbus 30 seinerseits koppelt mit dem Steuereinrichtung-Ausgabebus 33 mittels des Transceivers 31. In ähnlicher Weise koppelt der I-Adreßbus 32 zwischen dem X-Adreßbus 26 und dem Steuereinrichtungs-Adreßbus 36. Das untereinander Koppeln wird mittels Transceiver 29 und 35 gewährleistet. Der Mikroprozessor; der die Steuerung des X-Bus hat, ist zu diesem Zeitpunkt der einzige, der auf den I- Bus zugreifen kann. Diesbezüglich wird die X-Bus-Konkurrenzlogik zum Steuern des Zugriffs auf den X-Bus verwendet. Die X-Bus-Konkurrenzlogik ist in Fig. 1 bei 73 veranschaulicht. Es soll weiterhin bemerkt werden, daß entweder der Empfangs-Mikroprozessor 10 oder der Sende- Mikroprozessor 12 auf den X-Datenbus 24 zugreifen kann.
- Zusätzlich zum Empfangsdatenbus 14, welcher zum Empfangs-Mikroprozessor 10 gehört, gibt es auch einen Empfangs-Adreßbus 16, der zum Empfangs-Mikroprozessor 10 gehört. Der Empfangs-Adreßbus 16 koppelt auch mit dem Firmware-PROM 70. Eine Dekodierung des Adreßbus 16 tritt auch auf, und in diesem Zusammenhang sei auf Fig. 1 auf den Empfangsadreß-Dekodierer 76 verwiesen. Der Dekodierer 76 dekodiert höherwertige Bits des Adreßbusses 16.
- Der Dekodierer 76 hat an dessen Ausgang drei separate Leitungen veranschaulicht, welche Dekodierungen zur Kommunikation mit unterschiedlichen Systemkomponenten anzeigen. Z.B. zeigt eine Dekodierung an der Ausgangsleitung 77 einen Datenzugriff auf den Empfangs-Mikroprozessor-PROM 70 an. Eine andere Dekodierung bei Leitung 78 zeigt einen Datenzugriff auf den XRAM 22 an. Noch eine weitere Dekodierung bei der Leitung 79 zeigt einen Datentransfer vom FIFO 60 an.
- Im Blockdiagramm von Fig. 1 sei auch auf den Sendeadreßbus 20 verwiesen. Es sei bemerkt, daß es auch einen Sendeadreß-Dekodierer 80 gibt, welcher von diesem Adreßbus gekoppelt ist. Dieser Dekodierer 80 weist auch drei daran gekoppelte Ausgangsleitungen auf. Eine erste Dekodierung bei Leitung 81 zeigt einen Datentransfer vom Sende-Mikroprozessor-PROM 84 an. Diesbezüglich sei bemerkt, daß der Firmware- PROM 84 ein 16 K · 8 Bits PROM ist, welcher sowohl mit dem Sendedatenbus 18 als auch dem Sendeadreßbus 20 koppelt. Der Adreßdekodierer 80 weist einen zweiten Dekodierungsausgang bei Leitung 82 auf, welcher den Zugriff auf den XRAM 22 dekodiert. Es gibt auch eine dritte Dekodierung bei Leitung 83 vom Sendeadreß-Dekodierer 80, welche einen Datentransfer zum DUSCC-Bus 48 anzeigt.
- Da der Sende-Mikroprozessor 12 hardware-seitig nicht auf den FIFO 60 zugreifen kann, wird der gleiche Adreßraum für die Datenschaltungen 44 auf dem Sende-Mikroprozessor verwendet. In ähnlicher Weise kann der Empfangs-Mikroprozessor 10 physisch nicht die Datenschaltungen 44 adressieren, da weder die Adreß- noch die Datenbusse direkt daran koppeln. Daher wird dieser Adreßraum für den Empfangsdaten-FIFO 60 verwendet.
- Einer der Mikroprozessoren 10 oder 12 kann auf einen Adreßraum zugreifen, der zum IRAM 28 zeigt. In dem offenbarten Ausführungsbeispiel ist dies eine Adreßbasis zwischen 16,000 hexadezimal und 18,000 hexadezimal. Ein Zugriff auf den IRAM 28 erfolgt über den X-Bus (Datenbus 24 und Adreßbus 26).
- In Fig. 1 ist auch, wie zuvor bereits darauf Bezug genommen, die X- Bus-Konkurrenzlogik 73 veranschaulicht. Die Eingaben dazu sind zwei separate Signale, welche anzeigen, daß der Empfangs-Mikroprozessor auf den XRAM 22 gehen möchte oder der Sende-Mikroprozessor auf den XRAM 22 gehen möchte. Diese Signale sind mit der Logik 73 auf der Logik 85 und 86 gekoppelt. In ähnlicher Weise gibt es Ausgaben auf den Leitungen 87 und 88, die in Fig. 1 als jeweilige Signale R2XBUS und T2XBUS identifiziert sind. Die Buskonkurrenzlogik 73 erlaubt grundsätzlich einem, aber nicht beiden Prozessoren, auf den XRAM zuzugreifen. Die jeweiligen Signale sind die Signale R2XBUS auf Leitung 87 und T2XBUS auf Leitung 88. Es sei bemerkt, daß diese Signale jeweils zu den Adreßmultiplexern 90 und 92 koppeln, und zwar als Freigabeeingänge dazu. Die X-Bus-Konktirrenzlogik 73 wird als von gut bekannter herkömmlicher Konstruktion angesehen.
- Es wird nun auf das detailliertere Schaltungsblockdiagramm von Fig. 2 Bezug genommen, welches weitere Details von einigen der Blöcke von Fig. 1 veranschaulicht, einschließlich den Empfangsadreßdekodierer 76 und den Sendeadreßdekodierer 80. Jeder dieser Dekodierer 76 und 80, die in Fig. 2 veranschaulicht sind, sind durch eine programmierbare Matrixiogik (PAL, programmable array logic) implementiert. In diesem Zusammenhang wird auf den Anhang A, welcher hier angefügt ist, zur Veranschaulichung der PAL-Gleichungen für die Dekodierer 76 und 80 verwiesen. Beide Dekodierer 76 und 80 können vom Typ 16L8A sein. In Fig. 2 sind auch die Ausgangsleitungen 77 und 79 identifiziert, welche zu dem Empfangsadreßdekodierer 76 gehören, der zuvor in Fig. 1 identifiziert wurde, und auch, wie zuvor identifiziert in Fig. 1, die Ausgangsleitungen 81 bis 83 vom Sendeadreß-Dekodierer 80.
- Im Zusammenhang mit Anhang A sei bemerkt, daß für beide Dekodierer 76 und 80 Gleichungen zum Dekodieren jedes der Ausgangssignale angegeben sind. Diese Gleichungen veranschaulichen Dekodierungen der Adressen RADR03-RADR05 auf der Empfängerseite und der Adressen TADR03-TADR05 auf der Sendeseite. Zusammen mit diesen Adressen gibt es auch die jeweiligen Hinweissignale. Zum Empfangs-Mikroprozessor gehört das Signal RXASTB, und zum Sende-Mikroprozessor gehört das Signal TXASTB. Dies sind jeweilige Mikroprozessor-Hinweissignale, welche anzeigen, daß einer der Mikroprozessoren eine gültige Adresse auf den Bus gelegt hat.
- Der Empfängeradreß-Dekodierer 76 teilt den Empfangs-Mikroprozessor- Adreßraum grundsätzlich in vier Teile. Ein erster Teil ist das Signal RXAROM auf Leitung 77, welches den Firmware-PROM 70 dekodiert. Es gibt auch das Signal REEPRM auf Leitung 93, welches grundsätzlich von geringem Interesse hier ist, weil der EEPROM hier nicht veranschaulicht ist. Das nächste ist das Signal auf Leitung 78, welches das Signal RXXACC- ist, welches ein Empfangs-Mikroprozessorzugriff auf den X-Bus ist. Schließlich gibt es das Signal auf Leitung 79, welches das Signal RXGKFA- für den FIFO 60 ist.
- In Fig. 2 befindet sich unter dem Dekodierer 76 der Dekodierer 80, welcher auch ähnliche Signale und ähnliche Adreßräume herausbricht, und zwar einschließlich dem Signal auf Leitung 82, welches als Signal WXkCC- identifiziert ist, welches anzeigt, daß der Sende-Mikroprozessor auf den X-Bus geht. Auch gibt es das Signal auf Leitung 83, welches als das Signal TXDUSC- identifiziert ist, welches anzeigt, daß der Sende- Mikroprozessor auf die Datenschaltungen 44 geht.
- Es sei bemerkt, daß das Signal RXXACC in Fig. 2 mit einem Register 94 gekoppelt ist. Mit diesem Register ist auch das Signal XBSROT (Busanforderung) gekoppelt, welches vom Gatter 95 gekoppelt ist. Das Gatter 95 kann vom Typ 741-500 sein. Es sei bemerkt, daß das Gatter 95 auch beide Signale TXXACC- und RXXACC- empfängt. Diese zwei Signale sind die Signale, welche den XRAM 22 anfordern. Die obersten zwei Ausgaben des Registers 94 sind die Signale XBSCYC+ und XBSCYC-. Dies sind die Busanforderungssignaie. Man bemerke auch die Signale R2XBUS+ und R2XBUS- vom Register 94. Diese Signale, kombiniert mit dem Signal XBSCYC, steuern, ob der Empfangs- oder der Sende-Mikroprozessor auf den X-Bus geht.
- Wie zuvor angezeigt, gibt es auch das Signal RXXACC+, welches mit dem Register 94 gekoppelt ist und anzeigt, daß es der Empfangs-Mikroprozessor ist, welcher gerade anfordert. Dies erzeugt die zwei zuvor genannten Signale R2XBUS+ und R2XBUS-. X-Buszyklen werden immer einem der zwei Mikroprozessoren gestattet, welcher durch den Zustand des Signals R2XBUS bestimmt ist. Wenn es eine X-Buszyklusanforderung beim Nichtvorhandensein des R2XBUS-Signals gibt, dann zeigt dies an, daß es eine P2XBUS-Anforderung ist.
- Es sei bemerkt, daß der Ausgang des Registers 94, welches vom Typ 745175 sein kann, mit einem weiteren Dekodierer 97 koppelt, der vom Typ 745139 sein kann. Insbesondere koppelt das Signal XBSCYC- mit dem Freigabeeingang dieses Dekodierers. Der Dekodierer 97 nimmt die Adreßbits XBAD05+ und XBAD06+ vom Mikroprozessor auf, welcher gewinnt, um beim Dekodieren des nächsten Zyklus einen Vorsprung zu geben.
- Unter der Annahme, daß einer der Mikroprozessoren 10 und 12 bezüglich des X-Bus nachgefragt hat und ihn erhalten hat, koppeln die Adressen vom Mikroprozessor entweder über den Empfangsadreßbus 16 oder den Sendeadreßbus 20 mit den in Fig. 1 veranschaulichten jeweiligen Multiplexern 90 und 92. Der Multiplexer 90 empfängt die Empfangs- Mikroprozessoradressen, und der Multiplexer 92 empfängt die Sende- Mikroprozessoradressen. Diese Adressen werden durch die Multiplexer abhängig davon gekoppelt, welcher davon durch die Signale freigegeben wurde, die mit deren Freigabeeingängen gekoppelt sind. Dieses sind die jeweiligen Signale R2XBUS und T2XBUS. Die Ausgaben der Multiplexer koppeln gemeinsam mit dem X-Adreßbus 26.
- Mit weiterem Bezug auf Fig. 1 wird bemerkt, daß eine weitere Dekodierung vom X-Adreßbus 26 weg auftritt. In diesem Zusammenhang bemerke man die Adreßleitung 96, welche mit dem X-Adreßbus-Adreßdekodierer 97 koppelt. Eine weitere Leitung 98 zusammen mit einer Leitung 99 vom Dekodierer 97 koppelt mit einem weiteren Dekodierer 100. Die mit den Dekodierern 97 und 100 gekoppelten Adressen sind Bits höherer Ordnung des Adreßbus 26. Es wird erneut Bezug genommen auf Fig. 2 und das Register 94 mit zwei von deren unteren angeordneten Stufen, welche die Speicherung der Adreßbits 5 und 6 (XBAD05 und XBAD06) zeigen. Diese werden beim Vorhandensein eines X-Buszyklus (XX5CYC) dekodiert, um zu bestimmen, ob Signale mit dem XRAM, IRAM, SRAM oder Hardware-Hinweissignalen gekoppelt werden sollen. In Fig. 1 sind diese unterschiedlichen Signale am Ausgang des X-Bus-Adreßdekoders 97 dargestellt. Fig. 1 veranschaulicht auch zur Rechten jedes dieser Signale die bestimmten dazugehörigen Adressen. Die Hardware-Hinweissignale sind bei einer Adresse 12XXX hex, der XRAM-Zugriff wird bei einer Adresse 10XXX hex dekodiert, der SRAM-Buszugriff ist bei Adresse 14XXX hex, und die I-Busadresse ist bei 16XXX hex.
- In Fig. 1 ist auf den X-Bus-Adreßdekodierer 97 Bezug genommen worden. Dies ist der gleiche Dekodierer; der in Fig. 2 als Dekodierer 97 veranschaulicht ist, und es sind darin die vier Ausgabesignale gezeigt. Auf der ersten Leitung ist das Signal XRAMEN, welches das XRAM- Freigabesignal ist. Auf der nächsten Leitung ist das Signal XREGEN, welches die Hardware-Hinweissignal-Registerfreigabe ist. Die nächste Leitung ist das Signal SBUSAC, weiches das SRAM-Zugriffssignal ist. Schließlich ist auf der letzten Leitung das Signal IBUSAC, welches das IRAM-Zugriffssignal ist. Hinsichtlich der Bezugnahme auf den SRAM sei bemerkt, daß diese Vorrichtung hier nicht beschrieben worden ist, da davon ausgegangen wird, daß dies für die Erklärung der Konzepte der vorliegenden Erfindung nicht erforderlich ist.
- Es sei in beiden Fig. 1 und 2 bemerkt, daß die Signale XREGEN mit einem weiteren Dekodierer koppeln. Dies ist in Fig. 1 als der Dekodierer 100 identifiziert, und es ist in Fig. 2 als separater Dekodierer 100A und 100B identifiziert. Beide Dekodierer 100A und 100B können vom Typ 741-5138 sein. Die Dekodierer 100A und 100B stellen Hardware-Dekoderhinweissignale bereit. Der Dekodierer 100A steht für die Nur- Lese-Hinweissignale. Dies stellt Freigaben auf den Bussen, hauptsächlich den X-Bus, bereit. Der Dekodierer 100B steht für die Nur-Schreib-Hinweissignale, und es gibt insbesondere zwei Signale von Interesse, die davon gekoppelt sind. Dies sind die Signale POPRCN- und POPTCN- entsprechend den physischen Hardware-Adressen 12,004 und 12,005 hex. Die Adresse 12,004 ist das Signal POPRCN-, welches die Empfangskanalnummer ändert. Die Adresse 12,005 ist das Signal POPTCN-, welches die Sende-Mikroprozessor-Kanalnummer ändert. In diesem Zusammenhang bemerke man die zwei jeweiligen Ausgänge von Dekodierer 100 in Fig. 1, welche als die jeweiligen Empfangs- und Sendekanal- Nummernsignale identifiziert sind.
- Es wird erneut Bezug genommen auf das Blockdiagramm von Fig. 1 für den Abschnitt des Systems, welches eindeutig die Sende- und Empfangskanalnummern steuert. In diesem Zusammenhang sei auf den Steuer- PROM 104 verwiesen. Die Kapazität des PROM 104 soll mindestens 1 K · 4 bit sein. In Fig. 1 ist auch das Empfangskanalnummerregister 106 und das Sendekanalnummerregister 108 veranschaulicht. Es sei bemerkt, daß jedes dieser Register 106 und 108 ein 4 Bit-Register ist. Die 4 Bits identifizieren bis zu 16 separate Kanäle oder Tabellen. Somit gibt es 4 Bits, welche über die Leitung 107 vom Register 106 mit dem Eingang des PROM 104 gekoppelt sind. In ähnlicher Weise gibt es 4 Bits, die auf Leitung 109 von dem Register 108 ebenso mit dem Eingang des PROM 104 gekoppelt sind. Die Ausgänge der Register 106 und 108 an den jeweiligen Leitungen 111 und 112 koppeln mit den Empfangs- und Sende-Mikroprozessor-X-Bus-Multiplexern 90 und 92. Die Multiplexer stellen eine alternative Weise des Adressierens des X-Bus 26 bereit. Wie in Fig. 1 angezeigt, sind an einer Seite der Multiplexer die Adressen von den Registern 106 und 108 zusammen mit anderen Adressen entweder vom Empfangsadreßbus oder vom Sendeadreßbus 20 gekoppelt. Die vier Bits von diesen Registern ändern einige der Adreßbits mittlerer Gewichtung. Sie tun das auf eine solche Weise, daß, wenn der X-Bus adressiert wird, sie die X-Bus-Adressen in 256 Byte-Stücke aufbrechen. Es gibt acht Adreßbits unterhalb dieser vier; und dann gibt es Bits höherer Ordnung, die verwendet werden, um die X-Adresse tatsächlich zu dekodieren.
- Es sei angenommen, daß der Sende-Mikroprozessor 12 auf den in Seiten eingeteilten XRAM 22 bei Kanal Nummer 4 zugreifen soll. Zugriff soll auf die Leitungstabelle für Kanal Nummer 4 gewährt werden. Diesbezüglich sei auf das schematische Diagramm von Fig. 6 verwiesen, welches den XRAM 22 zeigt, der in mehrere Leitungstabellen unterteilt ist. Es gibt tatsächlich 16 Leitungstabellen. Jedoch sind zur Einfachheit in Fig. 6 nur die Leitungstabellen 0 bis 7 veranschaulicht. Fig. 6 veranschaulicht auch die zugehörigen Adressen zur Linken der Leitungstabellenbezeichnungen. Die physischen Adressen für die Leitungstabelle Nummer 4 ist 10,400. Die zwei Ziffern niedrigerer Ordnung sind der eigentliche Ort innerhalb der Leitungstabelle für 256 Orte. Die nächste Ziffer oberhalb dieser ist die vierziffrige Leitungsnummer; so daß die Adresse für die Leitungsnummer 4 104 betragen würde.
- Bezüglich den separaten Leitungstabellen sei nun auf das detailliertere Diagramm von Fig. 4 Bezug genommen, welches eine der Leitungstabellen zeigt, nämlich die Leitungstabelle Nr. 1 mit einer Adresse von 10,100. Es sei bemerkt, daß diese Leitungstabelle aus 256 Bytes besteht, welche auf eine tabellarische Weise durch die Stellen 0 bis 9 und A bis F bezeichnet sind. Jedes dieser Bytes besteht aus acht Bits. Damit der XRAM 22 in der Lage ist, alle diese Leitungstabellendaten zu speichern, ist eine Kapazität von 256 Stellen mal den 16 Leitungstabellen oder mit anderen Worten eine Kapazität von 4 K mal 8 Bits erforderlich. In der bestimmten in Fig. 1 veranschaulichten Implementierung beträgt die eingesetzte Kapazität tatsächlich das Doppelte dieser Menge, wobei der Rest auf eine nicht in Seiten eingeteilte Weise verwendet wird.
- Wie zuvor angezeigt, ist die Adresse für Kanal 4 10,4XX. Wenn es die gleiche Stelle, jedoch auf Kanal Nr. 5 wäre, dann ist die Adresse 10,5 XX. In ähnlicher Weise ist, wenn das System den IRAM in Seiten einteilt, welcher ebenso vom gleichen Bus aus angetrieben wird, er auf die gleiche Weise durch den gleichen Mechanismus in Seiten eingeteilt. Man würde zu Adresse 16,4XX für etwas auf Leitung 4 oder 16,5XX für etwas auf Leitung 5 gehen. Die gleichen Nummern sind für den Empfangsmikroprozessor gültig, und dies ist die Weise, wie die Empfangs- und Sendemikroprozessoren Information untereinander sehr leicht austauschen können.
- Wenn nun einer der Mikroprozessoren 10 oder 12 den XRAM 22 unter Verwendung des Seitenschemas adressieren will, dann tritt, anstelle des Adressierens durch die Leitung 4, Adresse XX (104XX), das Adressieren über ein Schema unter Verwendung eines einzelnen höherwertigen Bits auf. Die Adresse ist statt dessen 50,OXX. Dies zieht die Empfangs- oder Sendeleitungsnummer herein, und zwar abhängig davon, welcher Mikroprozessor gerade steuert. Abhängig davon, ob man sich im Sende- oder im Empfangsmodus befindet, wird die Adresse in die mittleren Bits dieses Bytes in der gleichen physischen Adressposition gemultiplext. Mit dieser Technik braucht der Empfangsmikroprozessor und der Sendemikroprozessor niemals zu wissen, auf welche Leitung gerade zugegriffen wird, um auf die geeignete Leitungstabelle zuzugreifen. Der Prozessor adressiert einfach 50,OXX und erhält ihre Leitungsnummer; und zwar gezwungen durch Hardware auf die richtige physische Adresse, ungeachtet des Bytes, an dem sie vielleicht interessiert ist.
- Als nächstes folgt eine Diskussion der tatsächlichen Hardware und Firmware zum Ändern der Leitungsnummern, entweder am Empfangsmikroprozessor 10 oder am Sendenkkroprozessor 12. Das folgende ist eine Diskussion darüber, wie die Logik arbeitet und auf welche Weise sie in Firmware implementiert ist. Die Kanalnummerauswahl zum Auswählen spezifischer Leitungstabellen des XRAM 22 involviert den in Fig. 1 veranschaulichten PROM 104 zusammen mit den Registern 106 und 108 und den Multiplexern 90 und 92. Es sei nun auf das detailliertere Diagramm von Fig. 3 verwiesen, welches den Kanalauswahl-PROM 104 zeigt. Dieser ist durch eine Schaltung 825185 implementiert. Fig. 3 zeigt auch das Empfangskanalregister 106 und das Sendekanalregister 108. Beide können durch Schaltungstypen 745175 implementiert sein. Fig. 3 zeigt auch die Seitenmultiplexer zum Empfangen und Senden, und zwar veranschaulicht durch die jeweiligen Multiplexer 90 und 92. Diese können durch den Schaltungstyp 741-5257 implementiert werden. Es sei bemerkt, daß beide Multiplexer Freigabeeingänge haben, weiche eine negative Logikeingabe zur Freigabe erfordern. Somit wird der Seitenmultiplexer zum Empfangen durch das Signal R2XBUS- freigegeben, wohingegen der Seitenmultiplexer für den Sendemode durch das Signal R2XBUS+ freigegeben wird. Das heißt, das Signal R2XBUS+ ist im Empfangsmodus positiv; und somit ist das Signal R2XBUS- negativ; wodurch nur der Multiplexer 90 freigegeben wird, die Empfangsmikroprozessoradressen an den XBUS anzusteuern.
- Der Kanalauswähler-PROM 104 kann ein 1 K oder 2 K mal 4 Bits PROM sein. Der PROM 104 empfängt 9 Adreßbits. Vier dieser Adreßbits sind vom Empfangsleitungsregister und vier Bits sind vom Sendeleitungsregister. Ein Bit bestimmt, ob der Sende- oder Empfangsmikroprozessor die Tabellennummer wechselt. Dies ist das Signal XADR19+, das mit einem der Eingänge des PROM 104 gekoppelt gezeigt ist. Die vier Eingänge des Empfangskanalregisters 106 sind die Signale RCHNO2+; RCHN04+; RCHN08+; und RCHN16+. Die vier Eingänge des Sendekanalregisters 108 sind die Signale TCHNO2+; TCHN04+; TCHN08+; und TCHN16 +. Die Ausgänge des KanaiauswähIer-PROM 14 sind die Signale XCHNO2 +; XCHN04 +; XCHN08 +; und XCHNI6 +.
- Die vier Ausgänge vom Kanalauswähler-PROM 104 koppeln mit den zwei Registern 106 und 108. Diese sind die jeweiligen Empfangskanal- Nummerregister und Sendekanal-Nummerregister. Beide diese Register sind 4 Bit-Register. Die Ausgänge vom Register 106 enthalten die Signale RCHN02; RCHN04+; RCHN08+; und RCHN16+. Die Signale vom Senderegister 108 enthalten die Signale TCHN02+; TCHN04+; TCHN08+; und TCHN16+.
- Fig. 3 veranschaulicht auch rechts des Diagramms die Multiplexer 90 und 92, welche entweder die Mikroprozessoradressen direkt oder die Mikroprozessoradressen mit den durch die Zeilennummern ersetzten mittleren Bits ausgeben. Der Sendemultiplexer gibt auch die direkten Sendemikroprozessoradressen oder die mit der Zeilennummer ersetzten mittleren Bits des Mikroprozessors aus. Diese Signale sind mit einer OR-Einrichtung gekoppelt, die allgemein bei 110 veranschaulicht ist. Die vier Signale von dem Multiplexer 90 sind die Signale XADR08+R0; XADR09+R0; XADR10+R0; und XADR11+R0. In ähnlicher Weise enthalten die vier Ausgangssignale des Multiplexers 92 die Signale XADR08+T0; XADR09+T0; XADR10+T0; und XADR11+T0. Diese Signale werden bei der Schaltung 110 OR-verknüpft und es sind vier separate Ausgangssignale vorgesehen, die mit dem XRAM koppeln. Dieses sind die Signale XADR08+00; XADR09+00; XADR10+00; und XADR11+00.
- Wie zuvor angezeigt, kann der X-Bus und der XRAM entweder in einem Direktmodus oder in einem Zeilenseitenmodus durch jedweden Mikroprozessor analysiert werden. In diesem Zusammenhang sei auf die Fig. 1 und 3 verwiesen, wo bemerkt ist, daß z. B. der Empfangsadreßbus 16 direkt ohne irgendeine Bitsubstitution mit einer Seite des Multiplexers 90 koppelt. In ähnlicher Weise koppelt der Sendeadreßbus 20 auch direkt mit einer Seite des Multiplexers 92. Diese abwechselnde Form des Adressierens des X-Adreßbuas 26 tritt auf, da es in manchen Umständen, bei denen die Steuerung sich in einem Nicht-Zeilennummer-Kontext befindet, wie z. B. in einem Unterbrechungsmodus, wenn einer etwas für . . eine Leitung vornehmen soll, es nicht bekannt ist, welche Leitung es ist, und es tatsächlich eine andere Leitung sein kann, als jene, an der gerade gearbeitet wird.
- Wie zuvor angezeigt, sind vier Bits des Kanalwähler-PROM 104 mit dem Empfangsleitungsregister 106 gekoppelt. In diesem Zusammenhang bemerke man die Rückkehrleitung 107 in Fig. 1. Es gibt auch vier Bits, die mit dem PROM 104 vom Sendeleitungsregister 108 gekoppelt sind. Man bemerke die Rückkehrleitung 109 in Fig. 1. Es gibt auch zwei weitere Bits, die mit dem PROM 104 auf insgesamt 10 Bits gekoppelt sind, wodurch es effektiv zu einem 1K PROM gemacht wird, obwohl er tatsächlich durch ein 2K PROM implementiert worden ist. Von den zwei weiteren Bits wird eines für einen QLT-Modus verwendet, welcher sich auf einen Qualitätslogiktest bezieht. Dies ist hier nicht im Detail beschrieben, da es nicht als direkt relevant für die vorliegende Erfindung erachtet wird. Das andere Signal zum Kanalwähler-PROM ist das Signal XADR19+00. Die Adresse XADR19 ist das niederrangiste Bit des X- Adreßbus.
- Bezüglich des Blockdiagramms von Fig. 1 sei erneut auf den Decodierer 97 und den Decodierer 100 verwiesen. Bezüglich des Decodierers 97 ist die daran koppelnde niedrigste Leitung als Hardware-Hinweissignale, Adresse 12,XXX, bezeichnet worden. Dieser Ausgang koppelt durch die Leitung 99 den Decodierer 100, um Hinweissignale bereit zu stellen, die durch Hardware decodiert sind. Es gibt ein Schreib-Hinweissignal, und es gibt zwei Anschlüsse, die aus dem Decodierer 100 herausgezogen gezeichnet sind. Es wird erneut auf Fig. 2 verwiesen und auf die Decodierer 100A und 100B und insbesondere auf den Decodierer 100B. Dies sind die Signale POPRCN- und POPTCN-, wie zuvor beschrieben. Die Empfangskanalnummer hat eine physische Adresse von 12,004, wohingegen die Sendekanalnummer eine physische Adresse von 12,005 hat. Wenn einer der Mikroprozessoren ein physisches Schreiben auf die Adresse 12,004 vornimmt, geht das Signal POPRCN- auf niedrig und dann auf hoch. Die Zeitperiode dieses Signais ist etwa zwei Buszyklen oder 250 Nanosekunden. Die Zyklen des PROM 104 betragen etwa 85 Nanosekunden, und daher werden die Ausgaben am Ende freigegeben.
- Vom Decodierer 100 gibt es unterhalb des Empfangskanalnummer-Ausgabesignais das Sendekanalnummersignal, weiches eine Adresse von 12,005 hat. Wenn einer der Mikroprozessoren ein Schreiben auf eine physische Adresse von 12,005 vornimmt, wird diese Leitung auf niedrig gehen und dann zurück auf hoch wiederum nach etwa zwei Zyklen oder 250 Nanosekunden.
- Es wird nun erneut auf Fig. 3 Bezug genommen und insbesondere auf die Empfangs- und Sendekanalregister 106 und 108, und es wird bemerkt, daß das Signal POPRCN-00 das Register 106 taktet, wohingegen das Signal POPTCN-00 das Register 108 taktet. Es sollte bemerkt werden, daß jedweder Mikroprozessor 10 oder 12 die anderen oder seine eigenen Leitungsregister takten kann. Jedoch muß man daher eine strenge Disziplin auferlegen, so daß nur der Empfangsmikroprozessor jemals ein Schreiben auf die physische Adresse 12,004 vornimmt und nur der Sendemikroprozessor jemals ein Schreiben auf die Adresse 12,005 vornimmt. Sobald diese Disziplin eingerichtet ist, ist das am wenigsten signifikante Adreßbit immer eine "1", wenn der Sendenkkroprozessor versucht, seine Kanalnummer zu ändern, und sie ist immer eine "0", wenn der Empfangsmikroprozessor versucht, seine Kanalnummer zu ändern. Somit kann mit einem niederrangigen Bit, nämlich das Signal XADR19+00, welches zum PROM 104 gebracht wird, der PROM dann bestimmen, welche der zwei Kanalnummern geändert werden soll.
- Es wird nun auf die Weise Bezug genommen, auf die der PROM 104 programmiert ist, um die Weise zu bestimmen, auf die die Register 106 und 108 geändert werden. Nur ein Mikroprozessor kann eine Kanalnummer zu einem Zeitpunkt ändern, weil nur ein Mikroprozessor auf den X- Bus während eines Buszyklus Zugriff haben kann. Die zwei Register 106 und 108, die gerade gesteuert werden, haben getrennte Takte, so daß die Mikroprozessoren ihre Kanäle unabhängig ändern können. Wie weiterhin angezeigt, ist das Takten dieser Register durch Hardware-Decodierungen von Speicheradressen verursacht, die sich nur durch ein Adreßbit unterscheiden. Dann würde durch Übereinkommen nur der Empfangsmikroprozessor auf sein Hinweissignal zugreifen, und nur der Sendemikroprozessor auf sein Hinweissignal. Die Bestimmung darüber; weicher der nächste Kanal für jedweden Mikroprozessor wäre, wird durch den PROM 104 vorgenommen. Der PROM weiß über den gegenwärtigen Kanal für jeden Mikroprozessor bescheid und darüber; welcher Mikroprozessor seine Kanalnummer ändern möchte.
- Der PROM 104 ist mit den nachfolgend gemachten Überlegungen programmiert. Der Empfangsmikroprozessor 10 schreitet rückwärts durch Kanalnummern in einer Umkehrrichtung. Von den hexadezimal identifizierten Kanälen 0-9 und A-F bedient der Empfangsmikroprozessor Kanal F und dann die Kanäle E, D, C, B, A' 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, F. Der Sendemikroprozessor schreitet in der normalen Vorwärtsrichtung wie folgt fort 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A' B, C, D, E, F; 0. Es ist herausgetunden worden, daß durch die Verwendung dieses Fortschreitend- Rückschreitend-Schemas auf alle Kanäle zugegriffen wird, ohne einen auszuschließen. Auf irgendeinen übersprungenen Kanal wird in einem nachfolgenden Zyklus zugegriffen.
- Die vorgenannte Sequenz geht davon aus, daß es niemals einen Konflikt gibt. Jedoch gibt es bei diesem Schema die Neigung, daß es einmal um die Sequenz einen Konflikt gibt. Dies wird durch den PROM 104 behandelt.
- Der Sende- und Empfangsmikroprozessor arbeiten zusammen, um die kombinierte Aufgabe des Sendens und Empfangens von Daten über mehrfache (im offenbarten Ausführungsbeispiel 16) Datenkanäle zu handhaben. Wenn ein Mikroprozessor seinen Betriebsprozeßzugriff auf irgendeine spezifische Leitungstabelle durch Anhalten gewinnen läßt, ist es garantiert, daß er einen scheinbar exklusiven Zugriff zu dieser Leitungstabelle und all ihrer Information darin hat. Die einzigen Ausnahmen sind solche Informationsteile, welche durch Unterbrechungen auf einem der Mikroprozessoren behandelt werden. Diese Ausnahmen, die nicht auf die Erfindung gerichtet sind, sind hier nicht im weiteren Detail beschrieben. Diese Annahme bedeutet, daß ein Mikroprozessor nicht prüfen muß, um zu sehen, ob der andere Mikroprozessor Zugriff hat, da durch Hardware-/Firmware-Definition der andere Mikroprozessor diese Information nicht zur gleichen Zeit verwenden oder ändern kann.
- Wenn es einen Konflikt gibt, ist die gerade freigegebene Adresse die Adresse 12,005, wenn der Sendemikroprozessor gerade versucht, von "0" auf "1" zur gleichen Zeit zu gehen, zu der der Empfangsmikroprozessor auf Leitung "1" ist, da es ein Sendemikroprozessor ist. Das am wenigsten signifikante Bit dieser Adresse ist eine "1", und daher wird das Signal XADR19 in dem PROM eine "1" sein. Zu diesem Zeitpunkt in dem Moment, bei dem das Signal auf eine "1" geht, schaltet der PROM seine Adressen. Er wird sehen, daß der Sendemikroprozessor bei Kanal 0 ist, und versucht auf Kanal 1 zu gehen. Wenn jedoch der Empfangsmikroprozessor bereits bei Kanal 1 ist, wird die Nummer; die in diesem PROM an dieser Stelle codiert wird, eine 2 sein, so daß der Sendemikroprozessor einfach Kanal 1 überspringen wird und statt dessen zu Kanal 2 gehen wird. Wenn der Takt auf hoch geht, wird die Adresse von Kanal 2 in die Sendekanalnummer getaktet.
- Es sei bemerkt, daß der PROM 104 die Kanalnummern fortlaufend überwacht. Jedoch ist der einzige Zeitpunkt, zu dem man sich über die Ausgabe des PROM 104 kümmert, jener; wenn entweder das Signal POPRCN- auf niedrig geht oder das Signal POPTCN- auf niedrig geht.
- Als nächstes folgt eine Diskussion der Firmware, die zu den Konzepten der Erfindung gehört. In diesem Zusammenhang sei bemerkt, daß das vorliegende System auf der Grundlage des Anhaltens von Aufgaben bei der Kommunikation zwischen Mikroprozessoren arbeitet, anstelle der Verwendung von Unterbrechungen. Wenn einer der Mikroprozessoren Steuerung über die Leitungstabelle gewinnt, indem er daran anhält, führt er in diesem Zusammenhang den Prozeß fort, den er für diesen Kanal bereits begonnen hat, indem er am "Anhaltepunkt", welcher in der Leitungstabelle angezeigt ist, startet und mit diesem Arbeitsstück fortfährt, bis er erneut von dieser Leitungstabelle weg zu einer anderen anhält. Während dieser Zeitperiode hat der Mikroprozessor die exklusive Benutzung dieser Leitungstabelle, welche er aufgibt, wenn er von dieser Leitungstabelle weg anhält.
- Dieses Konzept wird gemäß dem vorher erwähnten Schema ausgeführt, bei dem man einen der Mikroprozessoren an Aufgaben für Kanäle in aufsteigender Rangordnung arbeiten läßt' während der andere herunterzählt. Die Anhaltekonzepte beinhalten das Sichern der Anhalteadresse zur Verwendung beim Wiederbeginn. Darauf folgt das Indexieren des geeigneten Kanalnummerregisters. Als nächstes wird die Wiederaufnahmeadresse aufgenommen und dorthin verzweigt.
- Es wird nun auf weitere Zeitdiagramme Bezug genommen, die zur Veranschaulichung der Steuerkonzepte der vorliegenden Erfindung hilfreich sind, welche auf duale Mikroprozessoren für Sende- und Empfangsfunktionen angewandt werden. Kurz veranschaulicht Fig. 7 die Sequenz sowohl des Sende- als auch des Empfangsmikroprozessors, wobei die Aneinanderreihung von Kanalnummern veranschaulicht wird. Fig. 8 ist ein Zeitdiagramm, welches das Verschachteln von Zyklen für den Sende- und Empfangsmikroprozessor veranschaulicht. Fig. 9 ist auch ein Zeitdiagramm, welches die Anhaltefunktion bei einer Kanalnummer-Konfliktsituation veranschaulicht.
- Das Zeitdiagramm von Fig. 7 veranschaulicht die Tatsache, daß jeder der zwei Mikroprozessoren für einen Kanal zu einem Zeitpunkt arbeitet. Fig. 7 veranschaulicht ebenso, daß jeder Mikroprozessor vom Arbeiten für irgendeinen Kanal ausgeschlossen ist, wenn der andere Mikroprozessor bereits an "diesem" Kanal arbeitet. In Fig. 7 bemerke man insbesondere den Punkt, wo der Sendemikroprozessor von Kanal 4 auf Kanal 6 geht. Dies ist ein Beispiel eines erfaßten Konflikts, weil der Empfangsmikroprozessor bereits auf Kanal 5 zu dem Zeitpunkt arbeitete, zu dem der Sendemikroprozessor anhält. Gemäß der hier beschriebenen Hardware wird der Sendemikroprozessor statt dessen zu Kanal 6 geschickt, wodurch vermieden wird, daß beide Mikroprozessoren zum gleichen Zeitpunkt auf die gleiche Leitungstabelle zugreifen.
- Übrigens zeigen in Fig. 7 die Markierungen M allgemein X Buszyklen an. Typischerweise beträgt die Dauer eines Kanals mehrere Mikrosekunden. Man bemerke in Fig. 7 den Kanal 0 mit einer Dauer von z. B. 20 Mikrosekunden.
- Fig. 8 ist auch ein Zeitdiagramm, welches repräsentativ für ein kleines Segment des Diagramms von Fig. 7 im Bereich des Sendekanals 1 und des Empfangskanals 9 ist. Fig. 8 veranschaulicht das Verschachteln der Zyklen für den Sende- und Empfangsmikroprozessor auf dem X-Bus, wobei gezeigt ist, daß nur ein Mikroprozessor während eines Buszyklus Zugriff hat. Wenn es auf dieser Ebene einen Konkurrenzkonflikt gibt, wird der verlierende Mikroprozessor angehalten, bis der andere Mikroprozessor diesen Buszyklus beendet. Weil die Signale POPTCN und POPRCN Signale sind, die vom X-Bus weg decodiert werden, können sie nicht gleichzeitig auftreten.
- Man bemerke in Fig. 8, daß der Empfangsmikroprozessor Zugriff hat, wobei er zuerst auf die Leitungstabelle entsprechend Kanal 9 zugreift. Es gibt dann eine Anforderung für einen Zugriff durch den Sendemikroprozessor; und während des nächsten Buszyklus hat der Sendemikroprozessor Zugriff, und dieser Zugriff ist auf die Leitungstabelle entsprechend Kanal 1. Es sei in Fig. 8 bemerkt, daß die Periode jedes Buszyklus in der Größenordnung von 250 Nanosekunden sein kann.
- Fig. 9 ist auch ein Zeitdiagramm, welches den Sendemikroprozessor veranschaulicht, der von Kanal 4 auf Kanal 6 anhält. Man bemerke in Fig. 9, daß es anfänglich zwei Buszyklen gibt, die sich auf den Sendemikroprozessor zum Einrichten eines neuen Anhaltepunkts beziehen, nämlich die aufzunehmende Stelle, bei der man zu dieser Leitungstabelle zurückkehrt. Man bemerke auch das Signal POPTCN bei der physischen Adresse 12005, welches den Effekt des Taktens des Senderegisters hat. In diesem bestimmten Beispiel, weil der Empfänger bereits auf Kanal 5 ist, taktet die Logik, welche den PROM 104 enthält, somit von Kanal 4 zu Kanal 6 für das Senderegister.
- In Fig. 9 stellt das Signal TC# den Inhalt des Sendekanals oder des Leitungsnummerregisters dar. Das Signal RC# stellt den Inhalt des Empfangskanals oder des Leitungsnummerregisters dar.
- Es soll ebenso im Zusammenhang mit Fig. 9 bemerkt werden, daß, obwohl Kanal 5 übersprungen worden ist, soweit der Sendemikroprozessor betroffen ist, dieser Kanal zu einem späteren Zeitpunkt in der Sequenz aufgenommen werden wird. Somit ist keiner der Mikroprozessoren vom Zugreifen auf irgendeine der Leitungstabellen ausgeschlossen, lediglich vom Zugreifen auf die gleiche Leitungstabelle wie der andere Mikroprozessor zum gleichen Zeitpunkt.
- Wie zuvor angezeigt, sind sowohl der Empfangsmikroprozessor als auch der Sendemikroprozessor vom Typ 68008. Diese Mikroprozessoren haben typischerweise 8 Adreßregister und 8 Datenregister. Die Adreßregister werden typischerweise als die Register A0-A7 bezeichnet. In jedem Mikroprozessor ist ein Adreßregister dafür bestimmt, auf die geeignete Anhalteadresse in der Leitungstabelle zu weisen. Das Register A0 ist angepaßt, um auf die physische Adresse 50,000 zu weisen, welches die Stelle 0 am Beginn der Leitungstabelle ist. Das Adreßregister A4 weist zur physischen Adresse 50,002. Dies weist zur Empfangsmikroprozessor- Anhalteadresse in der Leitungstabelle. Es wird erneut auf Fig. 4 Bezug genommen. Das Adreßregister A4 weist immer nach links zur physischen Adresse 50,002, um das Auslesen einfacher zu machen. Das Auslesen findet in Mengen von 2 Byte statt.
- Wenn eine Aufgabe durch einen der Mikroprozessoren angehalten werden soll, dann wird in dieser bestimmten Leitungstabelle die geeignete Anhalteadresse, die Adresse, zu der zurückgekehrt werden soll, in geeigneter Weise gespeichert. Nachfolgend wird diese Anhalteadresse in das Register As gelesen. Das Register A4 betrachtet den Inhalt des Registers As, und der Inhalt wird zum Mikroprozessor-Programmzähler transferiert. Der Firmware-Code, der dieser Adresse entspricht, wird dann gelesen, und die Bearbeitung wird von dieser Position aus wieder aufgenommen. Es sollte bemerkt werden, daß gemäß der Erfindung ein ablaufinvarianter Code eingesetzt wird, so daß alle 16 Leitungen unter Verwendung des gleichen Codes arbeiten. Der Code wird nicht modifiziert, sondern nur die Daten. Der Code ist in dem PROM abgelegt, der zu jedem Mikroprozessor gehört.
- Für eine Diskussion der Firmware sei hier auf Fig. 5 verwiesen, welches eines von mehreren Blättern von Firmware ist. Diese bestimmte Firmware-Liste ist als RXDAT identifiziert, was bedeutet, daß sie dem Zustand entspricht, bei dem der Empfangsmikroprozessor sich nach Daten umsieht, die für ihn im Empfangs-FIFO 60 verfügbar sein sollen. In der folgenden Diskussion wird auf die Listennummern in der linken Spalte von Fig. 5 Bezug genommen. Bei Listennummer 1134 wird ein Wort von RXDATO zu RXSTAD bewegt. Dies stellt einen Neustartpunkt dar, wenn ein Fehler auftritt. Der nächste Schritt bei Listenzeile 1136 zeigt ein Löschen des Signals NOGKFCT an. Dies stellt ein Zählerlöschen dar. Die nächste Sequenz involviert das Anhalten, wie angezeigt durch die Beschreibung zur rechten in Fig. 5. Gemäß der vorliegenden Erfindung wird ein Wort bewegt, welches der Adresse von RXDA00 von der X-RAM-Leitungstabelle zum Register A4 gleicht. Das Register A4 ist eines von acht Adreßregistern des jeweiligen Mikroprozessors. Dies bedeutet, daß das Register A4 zuvor eingestellt worden ist und normalerweise immer auf den Empfangsmikroprozessor eingestellt ist, um zu seiner Anhalteadresse zu weisen. Diese Adresse wird in eine physische Stelle in der Leitungstabelle im XRAM für diese Leitungsnummer bewegt, welche gerade 50,000 ist, welches eine in Seiten eingeteilte Adresse äquivalent zu 10,000 ist, und zwar zusammen mit der Kanalnummer. Wenn dies z. B. Kanalnummer 4 war, wäre es gleich 10,400. Jedoch kann angenommen werden, daß die Adresse 50,000 ist, da das System nicht weiß, auf welchem Kanal es ist. Das System kann auf irgendeinem Kanal sein.
- Der nächste Schritt ist zum Bewegen eines Bytes in D0 zu RXCHM (As). In diesem Zusammenhang sei auf die Listennummern 1138 und 1139 in Fig. 5 verwiesen. Dieses Bewegen wird ein Schreiben auf die physische Stelle mit der Adresse 12,004 einleiten. Dieses taktet die Empfangskanalnummer. Zu diesem Zeitpunkt werden dem PROM 104 sowohl die Sender-, als auch die Empfängerleitungsnummern zugeführt. Der PROM weiß auch, daß es der Empfangsmikroprozessor ist, welcher aktiv ist, weil die Adresse XADR19 eine Null ist, weil dies die Stelle 4 und nicht die Stelle 5 der Adresse ist. Das am wenigsten signifikante Bit ist eine "Null". Diese Aktion stellt die richtige Kanalnummer für den Empfangskanal ein, und zwar mit dem Wissen, wo das Sendekanalregister eingestellt ist. Dies wird alles automatisch durch den PROM 104 erreicht, ohne sich darum zu kümmern, wo sich der Sendemikroprozessor tatsächlich befindet.
- Der nächste Schritt von der Firmware-Liste in Fig. 5 wird durch die Listennummern 1140 repräsentiert. Der nächste Schritt ist ein Bewegen eines Worts vom Inhalt des Registers A4, welches immer noch auf die Adresse 50,000 weist, (nun ist es auf einer unterschiedlichen Leitungstabelle), in das Register As (ein anderes der Mikroprozessor-Adreßregister). Somit wird ein Wort vom Inhalt des Registers A4 in das Register As bewegt. Ein Wort wird aus dieser neuen Zeilennummer ausgelesen. Der nächste Schritt ist ein Sprung zum Inhalt des Registers As, so daß, immer wenn das Anhalten auftrat, dies die Stelle ist, wo die Operation wieder aufgenommen wird. Der OPCODE, welcher geholt wird, wird an der Anhalteadresse sein.
- Nachdem die obige Sequenz vervollständigt worden ist, befindet man sich nun bei Listennummer 1143. Dies ist der Schritt RXDA00. Dies stellt einen neuen Anhaltepunkt ein.
- Es ist aus Fig. 5 ersichtlich, daß die Sequenz eine Sequenz ist, bei der eine Reihe von Mikro-Anweisungen ausgeführt werden und bei der dann am Ende dieser Anweisungen ein Anhalten auftritt. Im Zusammenhang mit Fig. 5 sei auch auf die repräsentative Leitungstabelle von Fig. 4 verwiesen. Bezüglich des Empfangsmikroprozessors wird die Stelle 0 aus der Leitungstabelle ausgelesen, welches die physische Adresse von 10X00 (wobei X die Leitungsnummer ist) ist. Dies ist die Position, bei der die Anhalteadresse gespeichert wird, und wenn ein Anhalten auftritt, ist die erste auszuführende Sache ein Inkrementieren des Leitungsregisters. Als nächstes, lies aus dieser Stelle aus, lege es in das Register As und springe dann zu dieser Stelle, welches die Stelle von Register As ist. In grundsätzlich einem dreischrittigen Prozeß ist ein Bewegen von einer Leitung zu einer anderen durchgeführt worden, ohne einen Kontext zu sichern. Der ganze Kontext liegt in der Tatsache, daß dies eine Firmware-Zustandsmaschine ist. Der Vorgang des Anhaltens besteht tatsächlich aus dem Bewegen des Bytes D0 zu RXCHN, welches die Adresse 12,004 ist. Bewege das Wort, mit anderen Worten, lies das Wort aus der neuen Leitungstabellen-Anhalteadresse, die Empfangs- oder Sende-Anhalteadresse, und springe dann dort hin. Dies ist der Mechanismus des Anhaltens.
- Es wird nun weiterhin Bezug genommen auf den Algorithmus für den PROM 104. Wie zuvor angezeigt worden ist, ist der PROM 104 angepaßt, um die Sende- und Empfangskanalregister 106 und 108 zu steuern. Der PROM 104 ist angepaßt, um die Leitungsregister so zu steuern, daß der Empfangsmikroprozessor mit einer zunehmenden Zählung fortschreitet, wohingegen der Sendemikroprozessor mit einer abnehmenden Zählung fortschreitet. Der Algorithmus besagt, daß die Empfangskanalnummer von einer Nummer geht, wie z. B. von F auf E, wobei immer dekrementiert wird, außer der Sendekanal ist bereits um 1 weniger als das, was die Empfangskanalnummer ist. In diesem Fall wird die Empfangskanalnummer auf zwei weniger eingestellt, als sie gerade ist. In ähnlicher Weise wird der Sendekanalnummer erlaubt, immer zu inkrementieren, außer die Empfangskanalnummer ist in diesem Moment um eins größer als der gegenwärtige Zustand der Sendekanalnummer, in welchem Fall die Sendekanalnummer gleich zwei oder größer ist, als die gegenwärtige Kanalnummer. Dieser Algorithmus ist in den PROM gebrannt.
- Die vorliegende Erfindung ist unter Verwendung eines einzelnen Sendemikroprozessors und eines einzelnen Empfangsmikroprozessors beschrieben worden. Jedoch können die Prinzipien der vorliegenden Erfindung auch in einem System eingesetzt werden, in welchem mehr als zwei Mikroprozessoren verwendet werden. Zum Beispiel kann es zwei Empfangsmikroprozessoren und zwei Sendemikroprozessoren geben. In diesem Fall und im Zusammenhang mit dem Blockdiagramm von Fig. 1 wird es zwei Empfangskanalregister und zwei Sendekanalregister geben. Es wird auch zusätzliche Eingänge davon zum PROM 104 geben.
- RXRAM = RXASTB * /RADR03 * / RADR04
- RXROM = RXASTB *g /RADR03 * / RADR04 * /RADR05
- RXXACC = RXASTB * RADR03 * /RADR04
- RXGKFA = RXASTB * RADR03 * RADR04
- REEPRM = RXASTB * /RADR03 * RADR04
- TXRAM = TXASTB * /TADR03 * /TADR04
- TXROM = TXASTB * /TADR03 * /TADR04 * /TADR0S
- TXXACC = TXASTB * TADR03 * /TADR04
- TXDUSC = TXASTB * TADR03 * TADR04
- wobei * = AND und
- 1 = Negierung
Claims (3)
1. Datenkommunikationssystem, wobei eine Anzahl von Vorrichtungen
zur Kommunikation mit einem Computersystem über eine Vielzahl
von Kommunikationskanälen gekoppelt sind, wobei das System
aufweist:
- einen Speicher (22), der eine Tabelle für jeden Kanal hält und
wobei jede solche Tabelle Kommunikationsinformation für den
jeweiligen Kanal gespeichert hat;
- eine erste Datenbuseinrichtung (14);
- eine zweite Datenbuseinrichtung (18); und
- einen Adreßbus (26);
gekennzeichnet durch:
- einen ersten Datenprozessor- und eine
Empfangs-Firmware-Speichereinrichtung (10, 70) zum Steuern des Empfangs von Daten
von den Vorrichtungen über die Kanäle, wobei die Einrichtung
(10, 70) gekoppelt ist
- über die erste Datenbuseinrichtung (14) mit dem Speicher
(22) zum Austauschen von Daten mit dem Speicher;
- über eine erste Kopplungseinrichtung (90) und den
Adreßbus (26) mit dem Speicher (22) zum Liefern von Adressen,
um auf Stellen in dem Speicher zuzugreifen; und
- über die erste Datenbuseinrichtung (14) mit den Kanälen
zum Empfangen von Daten von den Kanälen;
- eine zweite Datenprozessor- und
Übertragungs-Firmware-Speichereinrichtung (12, 84) zum Steuern der Übertragung von
Daten zu den Vorrichtungen über die Kanäle, wobei die
Einrichtung (12, 84) gekoppelt ist
- über die zweite Datenbuseinrichtung (18) mit dem Speicher
(22) zum Austauschen von Daten mit dem Speicher;
- über eine zweite Kopplungseinrichtung (92) und den
Adreßbus (26) mit dem Speicher (22) zum Liefern von Adressen
um auf Stellen in dem Speicher zuzugreifen: und
- über die zweite Datenbuseinrichtung (18) mit den Kanälen
zum Übertragen von Daten zu den Kanälen; und
- eine Adreßteil-Liefereinrichtung (104, 106, 108), die an die erste
(90) und zweite (92) Kopplungseinrichtung gekoppelt ist, zum
Liefern von Adreßteilen an den Speicher (22), um Daten von
den Kanaltabellen bezüglich der Kanäle bereitzustellen, um die
Kommunikation von Daten über die Kanäle in einer jeweiligen
sequentiellen Reihenfolge zu steuern, indem in einer jeweiligen
Abfolge die Tabellen adressiert werden, jedoch zum Verhindern
des gleichzeitigen Zugreifens auf die gleiche Tabelle für beide
Datenprozessor- und
Empfangs-/Übertragungs-Firmware-Speichereinrichtungen (10, 70; 12, 84).
2. System nach Anspruch 1, dadurch gekennzeichnet, daß die Adreßteil-
Liefereinrichtung (104, 106, 108) Empfangs- und
Übertragungs-Kanalnummerregister (106, 108) aufweist, die die jeweiligen
Datenprozessoren (10,12) befähigen, auf geeignete Kanaltabellen in dem Speicher
(22) zuzugreifen.
3. System nach Anspruch 2, dadurch gekennzeichnet, daß das Zugreifen
auf die Kanaltabellen in dem Speicher (22) durch den ersten und
den zweiten Datenprozessor (10, 12) durch die
Adreßteil-Liefereinrichtung (104, 106, 108) gesteuert wird, so daß der Inhalt der
Empfangs- und Übertragungs-Kanalnummerregister (106, 108) in einer
jeweiligen Sequenz geändert wird, jedoch zum Verhindern, daß beide
Kanalnummerregister (106, 108) den gleichen Wert enthalten,
wodurch verhindert wird, daß beide Datenprozessoren (10, 12) auf
eine Kanaltabelle in dem Speicher (22) zugreifen, auf den der
andere Datenprozessor zu dieser Zeit gerade Zugriff hat.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/032,902 US4979104A (en) | 1987-03-31 | 1987-03-31 | Dual microprocessor control system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3850903D1 DE3850903D1 (de) | 1994-09-08 |
DE3850903T2 true DE3850903T2 (de) | 1995-04-06 |
Family
ID=21867476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3850903T Expired - Fee Related DE3850903T2 (de) | 1987-03-31 | 1988-03-24 | Steuerungssystem mit zwei Mikroprozessoren. |
Country Status (17)
Country | Link |
---|---|
US (1) | US4979104A (de) |
EP (1) | EP0289771B1 (de) |
JP (1) | JPS6478359A (de) |
KR (1) | KR930003402B1 (de) |
CN (1) | CN1020810C (de) |
AU (1) | AU608582B2 (de) |
BR (1) | BR8801411A (de) |
CA (1) | CA1301945C (de) |
DE (1) | DE3850903T2 (de) |
DK (1) | DK181788A (de) |
FI (1) | FI881449A (de) |
IL (1) | IL85863A (de) |
MX (1) | MX173004B (de) |
NO (1) | NO881409L (de) |
NZ (1) | NZ223881A (de) |
PH (1) | PH25694A (de) |
YU (1) | YU64888A (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155857A (en) * | 1987-05-29 | 1992-10-13 | Hitachi, Ltd. | Communication processing system in which communication by terminals is controlled according to a terminal management table |
US5182800A (en) * | 1990-11-16 | 1993-01-26 | International Business Machines Corporation | Direct memory access controller with adaptive pipelining and bus control features |
CN1081367C (zh) * | 1995-11-23 | 2002-03-20 | 联华电子股份有限公司 | 限定使用次数的集成电路 |
US8145869B2 (en) * | 2007-01-12 | 2012-03-27 | Broadbus Technologies, Inc. | Data access and multi-chip controller |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3651482A (en) * | 1968-04-03 | 1972-03-21 | Honeywell Inc | Interlocking data subprocessors |
US3670306A (en) * | 1971-03-01 | 1972-06-13 | Honeywell Inf Systems | Process for data communication between data processing systems |
US4318174A (en) * | 1975-12-04 | 1982-03-02 | Tokyo Shibaura Electric Co., Ltd. | Multi-processor system employing job-swapping between different priority processors |
US4164787A (en) * | 1977-11-09 | 1979-08-14 | Bell Telephone Laboratories, Incorporated | Multiple microprocessor intercommunication arrangement |
JPS564854A (en) * | 1979-06-22 | 1981-01-19 | Fanuc Ltd | Control system for plural microprocessors |
US4425616A (en) * | 1979-11-06 | 1984-01-10 | Frederick Electronic Corporation | High-speed time share processor |
US4488231A (en) * | 1980-09-29 | 1984-12-11 | Honeywell Information Systems Inc. | Communication multiplexer having dual microprocessors |
US4482982A (en) * | 1980-09-29 | 1984-11-13 | Honeywell Information Systems Inc. | Communication multiplexer sharing a free running timer among multiple communication lines |
JPS59202561A (ja) * | 1983-05-04 | 1984-11-16 | Nec Corp | マルチマイクロプロセツサシステムにおけるメモリアクセス方式 |
DE3335357A1 (de) * | 1983-09-29 | 1985-04-11 | Siemens AG, 1000 Berlin und 8000 München | Systemarchitektur fuer ein signalprozessorsystem zur funktionalen integration einer automatischen spracheingabe/-ausgabe |
JPS60247763A (ja) * | 1984-05-24 | 1985-12-07 | Matsushita Electric Ind Co Ltd | ブロツク単位並行処理メモリ |
-
1987
- 1987-03-31 US US07/032,902 patent/US4979104A/en not_active Expired - Fee Related
-
1988
- 1988-03-15 NZ NZ223881A patent/NZ223881A/xx unknown
- 1988-03-21 PH PH36670A patent/PH25694A/en unknown
- 1988-03-24 DE DE3850903T patent/DE3850903T2/de not_active Expired - Fee Related
- 1988-03-24 EP EP88104729A patent/EP0289771B1/de not_active Expired - Lifetime
- 1988-03-25 IL IL85863A patent/IL85863A/xx unknown
- 1988-03-28 BR BR8801411A patent/BR8801411A/pt not_active Application Discontinuation
- 1988-03-28 AU AU13801/88A patent/AU608582B2/en not_active Ceased
- 1988-03-28 FI FI881449A patent/FI881449A/fi not_active Application Discontinuation
- 1988-03-29 NO NO881409A patent/NO881409L/no unknown
- 1988-03-30 CA CA000562884A patent/CA1301945C/en not_active Expired - Lifetime
- 1988-03-30 DK DK181788A patent/DK181788A/da not_active Application Discontinuation
- 1988-03-30 MX MX010951A patent/MX173004B/es unknown
- 1988-03-31 CN CN88102351A patent/CN1020810C/zh not_active Expired - Fee Related
- 1988-03-31 YU YU00648/88A patent/YU64888A/xx unknown
- 1988-03-31 JP JP63080178A patent/JPS6478359A/ja active Granted
- 1988-03-31 KR KR1019880003665A patent/KR930003402B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
IL85863A0 (en) | 1988-09-30 |
KR930003402B1 (ko) | 1993-04-26 |
AU608582B2 (en) | 1991-04-11 |
YU64888A (en) | 1991-01-28 |
US4979104A (en) | 1990-12-18 |
DE3850903D1 (de) | 1994-09-08 |
CN88102351A (zh) | 1988-11-02 |
NO881409L (no) | 1988-10-03 |
FI881449A0 (fi) | 1988-03-28 |
JPS6478359A (en) | 1989-03-23 |
DK181788D0 (da) | 1988-03-30 |
IL85863A (en) | 1991-07-18 |
FI881449A (fi) | 1988-10-01 |
NO881409D0 (no) | 1988-03-29 |
DK181788A (da) | 1989-02-07 |
MX173004B (es) | 1994-01-28 |
AU1380188A (en) | 1988-09-29 |
JPH0583938B2 (de) | 1993-11-30 |
EP0289771A3 (en) | 1990-07-11 |
KR880011653A (ko) | 1988-10-29 |
CN1020810C (zh) | 1993-05-19 |
PH25694A (en) | 1991-09-04 |
EP0289771B1 (de) | 1994-08-03 |
CA1301945C (en) | 1992-05-26 |
EP0289771A2 (de) | 1988-11-09 |
BR8801411A (pt) | 1988-11-01 |
NZ223881A (en) | 1990-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0013737B1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE3586487T2 (de) | Kohaerentes interface mit zurueckgeschleiften sende- und empfangsspeichern. | |
DE2230830C2 (de) | Datenverarbeitungsanlage | |
DE3642324C2 (de) | Multiprozessoranlage mit Prozessor-Zugriffssteuerung | |
DE2854397A1 (de) | Pufferspeichereinheit fuer ein datenverarbeitungssystem | |
DE3586486T2 (de) | Interface-vorrichtung zwischen mindestens einem kanal und mindestens einem bus. | |
DE2755897A1 (de) | Ein/ausgabe-system | |
DE1299145B (de) | Schaltungsanordnung zum Steuern von peripheren Ein- und Ausgabegeraeten von Datenverarbeitungssystemen | |
DE2130299A1 (de) | Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen | |
DE2806045A1 (de) | Dv-system mit pufferspeicher | |
DE2519497A1 (de) | Kopplungsanordnung fuer datenuebertragungsanlagen | |
DE2831261A1 (de) | Kanaladapter-anordnung | |
DE2523372B2 (de) | Eingabe-ZAusgabe-Anschlußsteuereinrichtung | |
DE68924435T2 (de) | Nichtblockierender NxM-Arbitrierungsschalter mit grosser Bandbreite. | |
DE2944419A1 (de) | Digitalrechnersystem | |
DE3650249T2 (de) | Hochkapazitätsspeicher für Multiprozessorsystem. | |
EP0895165B1 (de) | Kommunikationssystem mit einer DMA-Einheit | |
DE2809602A1 (de) | Kanalbus-steuereinrichtung | |
DE2556624A1 (de) | Schaltungsanordnung zur asynchronen datenuebertragung | |
DE60008662T2 (de) | FIFO-System mit Schnittstelle mit veränderlicher Breite zum Hostprozessor | |
DE3586491T2 (de) | Kohaerentes interface mit zurueckgeschleiftem empfangsspeicher. | |
EP0141247B1 (de) | Multiprozessor-Rechner, insbesondere Multiprozessor-Zentralsteuereinheit eines Fernsprech-Vermittlungssystems | |
DE3889962T2 (de) | Vorrichtung und Verfahren zur Durchführung der Datenübertragung als Folge von Betriebszuständen in einem Kommunikationssystem. | |
EP0185260B1 (de) | Schnittstelle für direkten Nachrichtenaustausch | |
DE3850903T2 (de) | Steuerungssystem mit zwei Mikroprozessoren. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8327 | Change in the person/name/address of the patent owner |
Owner name: BULL HN INFORMATION SYSTEMS INC., BILLERICA, MASS. |
|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |