PatentDe  


Dokumentenidentifikation DE3789008T2 15.09.1994
EP-Veröffentlichungsnummer 0272547
Titel Datenverarbeitungssystem mit einem durch ein Teilsystem zu Gunsten eines anderen Teilsystems erzeugten Bussteuerbefehl.
Anmelder Bull HN Information Systems Inc., Wilmington, Del., US
Erfinder Peters, Arthur, Lawrence Massachusetts 01840, US;
Zelley, Richard C., North Chelmsford Massachusetts 01863, US;
Carroll, Elmer W., Billerica Massachusetts 01866, US;
Barlow, George J., Tewksbury Massachusetts 01876, US;
Nibby, Chester M., Jr., Beverly Massachusetts 01915, US;
Keeley, James W., Nashua Massachusetts 03063, US
Vertreter Bardehle, H., Dipl.-Ing.; Dost, W., Dipl.-Chem. Dr.rer.nat.; Altenburg, U., Dipl.-Phys.; Hoffmann, W., Dipl.-Phys.; Rost, J., Dipl.-Ing., 81679 München; Bonnekamp, H., Dipl.-Ing.Dipl.-Wirtsch.-Ing.Dr.-Ing., Pat.-Anwälte, 40474 Düsseldorf; Geißler, B., Dipl.-Phys.Dr.jur., Pat.- u. Rechtsanw.; Pagenberg, J., Dr.jur.; Frohwitter, B., Dipl.-Ing., Rechtsanwälte, 81679 München; Kahlhöfer, H., Dipl.-Phys., Pat.-Anw., 40474 Düsseldorf
DE-Aktenzeichen 3789008
Vertragsstaaten DE, FR, GB
Sprache des Dokument En
EP-Anmeldetag 09.12.1987
EP-Aktenzeichen 871182598
EP-Offenlegungsdatum 29.06.1988
EP date of grant 02.02.1994
Veröffentlichungstag im Patentblatt 15.09.1994
IPC-Hauptklasse G06F 13/42
IPC-Nebenklasse G06F 15/16   

Beschreibung[de]
Verwandte Anmeldungen

Die folgenden Patentanmeldungen, die auf denselben Rechtsnachfolger lauten wie diese Anmeldung, wurden mit dem gleichen Datum wie diese Anmeldung eingereicht und haben verwandte Gebiete zum Gegenstand. Bestimmte Abschnitte des hierin offenbarten Systems und Verfahrens sind nicht unsere Erfindung, sondern sind die Erfindung der untengenannten Erfinder, so wie durch die Ansprüche in den folgenden Patentanmeldungen definiert:

1. Apparatus and method of loading a control store memory of a central sub-system, erfunden von Richard C. Zelley, Mark J. Kenna, Jr., Wallace A. Martland, US-A-4,914,576.

2. Apparatus for loading and verifying a control store memory of a central sub-system, erfunden von Chester M. Nibby, Jr., Richard C. Zelley, Kenneth E. Bruce, George J. Barlow und James W. Keeley, EP-A-0 273 260.

3. Apparatus and method of loading different control stores of a multiprocessor to provide a multi-personality system, erfunden von Richard C. Zelley, Mark J. Kenna, Jr., und Wallace A. Martland, US Ser. No. 943 985.

Die folgenden Patentanmeldungen lauten auf denselben Rechtsnachfolger und beziehen sich auf die vorliegende Patentanmeldung:

1. Universal Peripheral Controller Self-Configuring Bootloadable Ramware, erfunden von John A. Klashka, Sidney L. Kaufman, Krzysztof A. Kowal, Richard P. Lewes, Susan L. Raisbeck und John L. McNamara Jr., EP-A-0 273 136.

2. System management apparatus for a multiprocessor system, erfunden von George J. Barlow, Elmer W. Carroll, James W. Keeley, Wallace A. Martland, Victor M. Morganti, Arthur Peters und Richard C. Zelley, EP-A-0 247 605.

HINTERGRUND DER ERFINDUNG Gebiet der Erfindung

Diese Erfindung bezieht sich auf Datenverarbeitungssysteme und insbesondere auf die Benutzung von Befehlen auf einem Systembus, die von einem Subsystem gesendet werden, um einem anderen Subsystem mitzuteilen, einen Antwortbefehl an ein drittes Subsystem zu senden.

Beschreibung des Standes der Technik

Die US-A-4,030,075 beschreibt ein Datenverarbeitungssystem, in dem eine Anzahl von Subsystemen durch einen Systembus miteinander verbunden sind. Die Systeme kommunizieren durch Aussenden von Befehlen auf den Systembus miteinander. Ein Befehl kann eine eine empfangende Einheit identifizierende Kanalnummer, eine sendende Einheit identifizierende Kanalnummer und einen eine Operation spezifizierenden, vom empfangenden Subsystem auszuführenden Funktionskode beinhalten. Der Funktionskode kann erfordern, daß das empfangende Subsystem einen Antwortbefehl erzeugt. Diese Antwort oder zweite Hälfte des Buszyklus- Befehls beinhaltet die das sendende Subsystem identifizierende Kanalnummer. Das sendende Subsystem antwortet auf seine Kanalnummer und quittiert das Empfangen der zweiten Hälfte des Buszyklus-Befehls.

Die EP-A-194 462 offenbart Inter-Prozessor-Kommunikation in einem busgesteuerten Informationsverarbeitungssystem mit einer Vielzahl von Verarbeitungselementen, von denen jedes in der Lage ist, unabhängig bestimmte Informationsverarbeitung oder bestimmte Betriebsoperationen auszuführen. Die verschiedenen verarbeitenden Elemente (Subsysteme) kommunizieren miteinander, ähnlich wie oben, durch Aussenden von Befehlen auf einen Systembus, der eine Topologie der umlaufenden Verschiebung der Zugriffspriorität auf den Bus unter den angeschlossenen verarbeitenden Elementen aufweist.

Die EP-157 075 offenbart ein modulares Datenverarbeitungssystem mit einer Vielzahl von diskreten funktionellen Hardware-Schaltungsbaugruppen, wobei jede der Baugruppen mit einem gemeinsamen Bussystem verbunden ist und mindestens ein Teil der Baugruppen einen Steuerschaltungskomplex für intermodulare Kommunikation besitzt, in dem sie besondere Aufgaben unter Verwendung distributiver Verarbeitungstechniken ausführen. Kommunikation findet zwischen einer rufenden Baugruppe und einer Zielbaugruppe statt. Jedoch, anstatt direkt die Ergebnisse der durchgeführten Operationen zurück an die rufende Baugruppe zu übermitteln, speichert die Zielbaugruppe nur die Ergebnisse an einer auch für die rufende Baugruppe zugänglichen Speicherstelle, wobei das rufenden Modul danach so eine Speicherstelle für späteren Gebrauch liest. Diese Art der Kommunikation, über die passive Nutzung einer Speicherstelle, ist die bekannte Form der "Computer-Mailbox-Nachrichtenübermittlung".

Es ist infolgedessen Aufgabe dieser Erfindung, ein verbessertes Datenverarbeitungssystem vorzusehen, in dem alle Subsysteme gemeinsam mit einem Systembus verbunden sind, um verschiedene Typen von Kommunikationsoperationen zwischen einer Vielzahl solcher Subsysteme mit einem vielseitigeren Befehlssystem für das Übertragen von Befehlen über den Systembus zwischen "Master-" und "Slave-" Subsystemen in Antwort auf einen Befehl von einem weiteren Subsystem auszuführen, um zu bewirken, daß ein Master einen Slave zur Ausführung eines Befehls für ein anderes Subsystem veranlaßt.

Diese Aufgabe wird gelöst in dem busorientierten Datenverarbeitungssystem gemäß den kennzeichnenden Merkmalen von Anspruch 1. Weitere vorteilhafte Ausgestaltungen können aus den Unteransprüchen entnommen werden.

Die neuen Merkmale dieser Erfindung können zusammen mit weiteren Aufgaben und Vorteilen aus der folgenden Beschreibung besser verstanden werden, wenn sie in Verbindung mit den beiliegenden Zeichnungen betrachtet werden.

ZUSAMMENFASSUNG DER ERFINDUNG

Ein Hauptspeicher, ein zentrales Subsystem (CSS) und eine Systemverwaltungsvorrichtung (SMF) sind alle gemeinsam zu einem Systembus verbunden. Die SMF kann einen Speicher-Referenz-Lesebefehl an einen Hauptspeicher senden und den Inhalt der durch den Befehl spezifizierten Speicherstelle empfangen. Der Befehl umfaßt eine Adresse im Hauptspeicher und eine Kanalnummer der SMF. Dies gestattet es dem Hauptspeicher die SMF-Kanalnummer in den zweiten halben Buszyklusbefehl miteinzubeziehen, beim Senden der Daten vom Hauptspeicher an die SMF.

Jedoch kann die SMF den Speicher-Referenz-Lesebefehl senden, der die Kanalnummer eines Ports des CSS als sendende Einheit umfaßt. Der Hauptspeicher wird den zweiten halben Buszyklusbefehl, der das adressierte Datenwort enthält, an das CSS senden. Die SMF umfaßt eine Vorrichtung zum Rücksetzen des Lesebefehls, wenn sie das Rückmeldesignal vom Hauptspeicher empfängt, das anzeigt, daß der Befehl empfangen wurde. Für die sendende Einheit ist es die normale Operation, die Befehlslese-Logik aktiviert zu halten, bis der zweite halbe Buszyklusbefehl von der sendenden Einheit empfangen ist.

KURZBESCHREIBUNG DER ZEICHNUNGEN

Fig. 1 zeigt ein Blockdiagramm des Datenverarbeitungssystems.

Fig. 2 zeigt ein Blockdiagramm der Systemverwaltungsvorrichtung.

Fig. 3 zeigt ein Blockdiagramm einer Systembus-Schnittstelle.

Fig. 4 zeigt ein Blockdiagramm eines zentralen Subsystems.

Die Fig. 5A bis 5E zeigen die Formate von verschiedenen Befehlen, die an ein Bussystem angelegt werden.

Fig. 6 ist ein Flußdiagramm der Firmware, die den Steuerspeicher ladet.

Fig. 7 ist ein Zeitdiagramm der Signale des zentralen Subsystems, die das Laden und Verifizieren des Ladens des Steuerspeichers steuern.

BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM

Fig. 1 zeigt eine dicht angeschlossene Multiprozessor-Datenverarbeitungs- Einheit (DPU) 1, die eine Vielzahl von mit einer Systembus-Schnittstelle 2-10A bzw. 2-10B verbundenen zentralen Subsystemen (CSS) 3-5 umfaßt; und eine Vielzahl von Hauptspeichern 10-12, eine Vielzahl von Peripherie-Kontrollern 14 bis 16 und eine Systemverwaltungsvorrichtung (SMF) 20, die alle gemeinsam zu einem Systembus 2 über ihre betreffende Systembus-Schnittstelle 2-10 verbunden sind.

Eine Vielzahl von Vorrichtungen 1 18 sind mit Peripherie-Kontroller 1 14 verbunden und eine Vielzahl von Vorrichtungen N 17 sind mit Peripherie-Kontroller N 16 verbunden. Die Vielzahl von Peripherie- Kontrollern 14 bis 16 kann Platten-Kontroller, Band-Kontroller, Kommunikations-Kontroller und Einheits-Speicher-Vorrichtungen umfassen, an die ihre jeweiligen Plattenantriebe, Bandeinrichtungen, Verbindungsleitungen und Aufnahmeeinrichtungen der Einheit angeschlossen sind.

Die Organisation jedes CSS der Vielzahl von CSS 3 bis CSS 5 ist die gleiche. Das CSS 3 umfaßt eine zentrale Prozessoreinheit (CPU1A 4 und eine CPU1B 6), die beide unabhängig voneinander mit einem Cache 1 8 operieren, der mit dem Systembus 2 verbunden ist. Das CSS 5 umfaßt eine CPUNA 24 und eine CPUNB 26, die beide unabhängig voneinander mit einem Cache N 28 operieren, der mit dem Systembus 2 verbunden ist. CPUNA 24 und CPUNB 26 greifen auf Hauptspeicher 10 bis Hauptspeicher 12 über Cache N 28 zu. Die CSS 3 bis CSS 5 operieren als dicht angeschlossene Multiprozessoren, da sie ein gemeinsames Betriebssystem ausführen und einen gemeinsamen Hauptspeicher haben.

Es sei bemerkt, daß im folgenden CPU1A 4 und CPU1B 6 im folgenden als CPU 4 und CPU 6 bezeichnet werden. Genauso werden CPUNA 24 und CPUNB 26 als CPU 24 und CPU 26 bezeichnet. Ein Port 0 und ein Port 1 verbinden CPU 4 bzw. CPU 6 mit einer Schnittstelle 2-10A, und ein Port 2 und ein Port 3 verbinden CPU 24 bzw. CPU 26 mit Schnittstelle 2-10B.

Die SMF 20 sorgt für die zentralisierte Steuerung von DPU 1. Diese zentralisierte Steuerung umfaßt die Initialisierung des gesamten DPU 1 Systems, die zentralisierte Steuerung der Qualitäts-Logik-Test-Operation (QLT), die System-Timer-Zentralisation und sorgt für die Energieversorgung und die Gehäusetemperaturwarnungen für die mit Systembus 2 verbundenen Subsysteme. Eine Anzahl von Steuersignalen wird zwischen dem Energieversorgungssystem 22 und der SMF 20 über eine Energie- Steuer-Schnittstelle (PCI) 21 geliefert. Steuersignale vom Energieversorgungssystem 22 zeigen der SMF 20 den Status der DPU-1-Energie an. Steuersignale von der SMF 20 an das Energieversorgungssystem 22 über PCI 21 spezifizieren die vorgeschriebenen Spannungstoleranzen, innerhalb derer das Energiesystem 22 beim Testen der DPU 1 arbeiten sollte. Die SMF 20 wird die QLT-Operation bei den vorgeschriebenen Spannungstoleranzen ausführen, um marginale Logikelemente zu isolieren und zu identifizieren.

Eine Anzeigekonsole 34 gestattet es einem Bediener, mit der DPU 1 über eine Anzeige-Terminal-Schnittstelle (DTI) 29 mit SMF 20 zu kommunizieren. Die SMF 20 empfängt Informationen von der Anzeigekonsole 34 und legt sie an einen Systembus 2 über eine Konsolen-Adapter- Schnittstelle (CAI) 31 und einen Konsolen-Adapter 30. Information von DPU 1 wird durch die Anzeigekonsole 34 über Systembus 2, Konsolenadapter 30, CAI 31, SMF 20 und D- 29 empfangen. Die Anzeigekonsole 34 ist typischerweise ein Honeywell VIP 7300 Terminal mit einer Tastatur und einer Kathodenstrahlenröhren-(CRT)-Anzeige. CAI 31 und DTI 29 sind typischerweise RS232 oder RS422 Kommunikations-Schnittstellen.

Die SMF 20 unterstützt Fern-Wartungs-Fähigkeit. Eine Fern-Konsole 42 kann ein vom Bediener gesteuertes Anzeigeterminal oder ein unbedienter Computer sein. Die Fernkonsole 42 ist mit der SMF 20 über ein Modem 38, eine Kommunikationsleitung 40, ein Modem 36, und eine Fern- Wartungs-Options-Schnittstelle (RMO) 37 verbunden. Die Modems 36 und 38 sind typischerweise RIXON Modems, z. B. ein T113C Modem, das Anrufe bei 300 baud erzeugt, ein T103J Modem, das Anrufe bei 300 baud erzeugt und beantwortet, und ein T212A Modem, das Anrufe bei 1200 baud erzeugt und beantwortet.

Die Fernwartungsoperation gestattet dem fernen Standort, Software- und Operationsfehler zu analysieren, Hardwarefehler zu identifizieren, Informationen, wie Softwarekorrekturen, an das zentrale DPU 1 System zu senden, und Reserve-Unterstützung für die Vor-Ort-Wartungsoperation vorzusehen.

Die SMF 20 wird dem Fernanschluß auf DPU 1 bis SMF 20 Zugriff gewähren, um eine zentralisierte Steuerung nur zuzulassen, wenn das richtige Paßwort von SMF 20 empfangen wird.

Eine Hilfseinrichtungs-Schnittstelle (ADI) 33, typischerweise eine RS232C Schnittstelle, verbindet eine Hilfseinrichtung 32 mit der SMF 20. Die Hilfseinrichtung 32 ist typischerweise ein Drucker zum Ausdrucken von Statusinformation oder Anfertigen einer Hardcopy der auf der CRT von Anzeigekonsole 34 angezeigten Information.

Die SMF 20 veranlaßt während des Hochfahrens der DPU 1 einen Qualitätslogiktest (QLT) um sicherzustellen, daß alle Subsysteme mit dem Systembus 2 verbunden sind und fehlerfrei arbeiten. Wenn die Tests nicht erfolgreich verlaufen, signalisiert die SMF 20 dem (Energie-)Versorgungssystem 22 über PCI 21, den Zustand anzugeben und zeigt auch den Fehler auf Anzeigekonsole 34, Fernkonsole 42 und Hilfseinrichtung 32 an.

Alle Subsysteme suchen um Zugriff zum Systembus 2 nach, wobei das mit höchster Priorität nachsuchende Subsystem den Zugriff gewinnt. Entsprechend dem Erfordernis, daß die SMF 20 schnell auf bestimmte Echtzeitsystemzustände reagiert, wie Energieausfallerkennung, wird der SMF 20 höchste Priorität für den Zugriff auf Systembus 2 eingeräumt.

Fig. 2 ist ein Blockdiagramm, das die mit dem Systembus 2 verbundene SMF 20 zeigt. Systembus 2 ist als Systembus (Steuerung) 2-2, Systembus (Daten) 2-4 und Systembus (Adresse) 2-6 gezeigt. Die Systembus-Schnittstelle 2-10 arbeitet im allgemeinen so wie im US Patent Nummer 3,995,258, mit dem Titel "Data Processing System Having a Data Integrity Technique", erfunden von George J. Barlow, gezeigt.

Ein Mikroprozessor 20-2 steuert die SMF 20/Systembus 2 Schnittstelle über in einen Mikroprozessor-Direktzugriffsspeicher (RAM) 20-44 gespeicherte Softwareroutinen. Der Mikroprozessor 20-2 ist eine Zilog Z80 CPU, die in dem Zilog Gold Book 1983/1984 Bauelemente-Datenbuch, Band 3, 10. Auflage beschrieben ist. Der Mikroprozessor 20-2 wird selbst von in einem Mikroprozessor-programmierbaren Festwertspeicher (PROM) 20-38 gespeicherter Software gesteuert. Sowohl RAM 20-44 als auch PROM 20-38 empfangen Adressensignale A0 bis A15 vom Mikroprozessor 20-2 über einen 16-Bit-Mikroprozessor-Adreßbus 20-54 über einen Treiber 20-24. Die Datensignale D0 bis D7 werden zwischen RAM 20-44 und Mikroprozessor 20-2, und von PROM 20-38 über einen 8-Bit-Mikroprozessor-Datenbus 20-56 und einen Transceiver 20-26 übertragen.

Wenn die SMF 20 Zugriff auf den Systembus 2 hat, können 32 Datensignale BSDT00-31 von den Empfängern 20-68 empfangen und vom Systemdatenbus 2-4 in ein Eingangsdatenregister 20-16 gespeichert werden. Unter Steuerung durch Mikroprozessor 20-2 werden die Daten aus Register 20-16 ausgelesen und an einer Stelle in RAM 20-44 gespeichert, und zwar gleichzeitig 8 Bits über einen Multiplexer (MUX) 20-17, einen Datenbus 20-52, einen Transceiver 20-22, einen Transceiver 20-26 und Datenbus 20-56. 32 Adreßsignale BSAD A-H,00-23 werden vom Systemadreßbus 2-6 durch Receiver 20-70 und einem Eingangsadreßregister 20- 36 empfangen und an Plätzen in RAM 20-44 gespeichert, und zwar gleichzeitig 8 Bits unter Steuerung durch Mikroprozessor 20-2, und 32 Kontrollsignale werden durch die Receiver 20-64 vom Systemsteuerbus 2- 2 und einem Eingangssteuerregister 20-12 empfangen und an Plätzen in RAM 20-44 gespeichert, und zwar 8 Bits gleichzeitig, auf eine ähnliche Weise wie die Datensignale. Der Mikroprozessor 20-2 identifiziert die Eingangsregister 20-36, 20-16 und 20-12 als Plätze in RAM 20-44 und sendet die passende Adresse an RAM 20-44 über einen Treiber 20-24 und Adreßbus 20-54.

Mikroprozessor 20-2 veranlaßt das Laden von Datensignalen BSDT00-31 in ein 32-Bit-Ausgangsdatenregister 20-14 durch Adressierung korrespondierender Stellen in RAM 20-44 und durch Auslesen von Daten, und zwar 8 Bits gleichzeitig. Ein 32-Bit-Ausgangsadressenzähler 20-34 wird mit Adreßsignalen BSAD00-31 durch den Mikroprozessor 20-2 geladen, der entsprechende Plätze im RAM 20-44 adressiert und die Adreßsignale ausliest, und zwar 8 Bits gleichzeitig. In ähnlicher Weise wird ein 32-Bit- Ausgangssteuerregister 20-10 mit Bussteuerinformation durch den Mikroprozessor 20-2 geladen, der entsprechende Plätze im RAM 20-44 adressiert und Steuerinformation ausliest, und zwar 8 Bits gleichzeitig.

Ein Boot- und QLT-ROM 20-39 speichert Testmuster und Softwaretestroutinen, die im Hauptspeicher 10 bis 12 geschrieben sind. CSS 3 bis 5 greifen auf diese Testmuster und Softwaretestroutinen zu, um zu verifizieren, daß die CSS 3 bis 5 operativ sind. Das ROM 20-39 wird direkt in das Ausgangsdatenregister 20-24 unter Steuerung des Mikroprozessors 20- 2 geladen. Wenn die SMF 20 um Zugriff auf Systembus 2 ansucht und gewinnt, wird die im Ausgangsdatenregister 20-14, Ausgangssteuerregister 20-10 und Ausgangsadreßzähler 20-34 gespeicherte Information an den Systembus 2 durch die Treiber 20-66, 20-62 und 20-72 übermittelt, die durch ein MY-Data-Cycle, now MYDCNN-Signal freigegeben werden.

Systemtimer 20-32 stellt eine zentralisierte Steuerung des Timings aller Subsysteme zur Verfügung und beinhaltet einen Echtzeittaktgeber, einen Zeitüberwachungstimer und eine Tageszeituhr und eine Anzahl von Timeouts (Zeitabläufen).

Der Echtzeittaktgeber wird durch einen Befehl von irgendeiner CPU 4 bis CPU 26 von CSS 3 bis 5 mit einem Wert geladen, der der Differenz zwischen der gegenwärtigen Tageszeit und der Anlaufzeit für den Vorgang an oberster Stelle der Echtzeitschlange entspricht. Wenn die gegenwärtige Tageszeit der Anlaufzeit entspricht, wird ein Interruptsignal des Echtzeittaktgebers erzeugt. Dieses Signal veranlaßt die SMF 20 einen Befehl zu erzeugen, um die CPU zu unterbrechen, die die Lesezeituhr geladen hat, um das Betriebssystem zu warnen, den Vorgang an oberster Stelle der Schlange zu starten und den Echtzeittaktgeber für den nächsten Vorgang erneut zu laden. Die maximale Zeitspanne beträgt annähernd 8,4 Sekunden.

Der Zeitüberwachungstimer wird eingesetzt, die DPU 1 gegen bestimmte Softwarefehlfunktionen zu schützen, die sich durch einen "zu lang" laufenden Vorgang zeigen. Ein Befehl von irgendeiner CPU 4 bis CPU 26 ladet den dekrementierenden Zeitüberwachungstimer mit einer vorbestimmten Zeit. Wenn der Zeitüberwachungstimer nicht wieder geladen wird, bevor er bis Null dekrementiert, wird ein Interruptsignal erzeugt, das die SMF 20 veranlaßt, einen Befehl an die CPU 4 bis CPU 26 zu erzeugen, um das Betriebssystem zu warnen, daß ein Vorgang in einer Endlosschleife hängen kann. Die maximale Zeitspanne beträgt annähernd 8,95 Minuten.

Die Tageszeituhr wird von einem batteriegepufferten Echtzeitkalender geladen und wird jede Mikrosekunde einmal inkrementiert. Der Echtzeitkalender speichert in 12 binär kodierten Dezimalstellen das laufende Jahr, den laufenden Monat, das laufende Datum, Stunde, Minute und Sekunde.

Die SMF 20 kann als Master oder Slave auf Systembus 2 Operationen ausführen. SMF 20 handelt als Master, wenn sie Befehle veranlaßt und an andere mit dem Systembus 2 verbundene Subsysteme sendet. Als Master veranlaßt die SMF allgemeine Befehle auf Systembus 2 an irgendein Subsystem und veranlaßt spezielle Befehle an CPU 4 bis CPU 26.

SMF 20 handelt als Slave, wenn sie ohne Anforderung einen Befehl von einer CPU 4 bis CPU 26 erhält, und auch, wenn sie eine erwartete Antwort von irgendeiner der anderen mit dem Systembus 2 verbundenen Subsysteme empfängt.

Die SMF handelt sowohl als Master als auch als Slave während einer Umbruchstestoperation des Systembus 2, bei der die SMF 20 Daten auf Systembus 2 als Master aussendet und dieselben Daten vom Systembus 2 als Slave empfängt. Bezugnehmend auf Fig. 2 werden während der Umbruchstestoperation 32 Datenbits in das Ausgangsdatenregister 20-14 vom RAM 20-44 geladen. SMF 20 gibt dann eine Nichtspeichersystembus-2-Anfrage an sich selbst aus. Die SMF 20 erkennt diese Anforderung und schaltet auf Systembus 2, um den Inhalt der Ausgangsdatenregister 20-14 an die Eingangsdatenregister 20-16 über Treiber 20-66, Systemdatenbus 2-4 und Receiver 20-68 zu übertragen. Ein Komparator 20-20 prüft, daß der Inhalt der zwei Register 20-14 und 20-16 für fehlerfreien Betrieb gleich sind.

Die SMF 20 erzeugt Befehle an die anderen, mit dem Systembus 2 verbundenen Subsysteme als Standardbefehle mit Bussteuerungssignal BSYELO low. Die SMF 20 erzeugt spezielle Befehle an CPU1A 4 bis CPUNB 26, mit dem Bussteuersignal BSYELO high und dem Steuersignal BSMREF low, die anzeigen, daß die Adreßsignale eine CPU-Kanaladresse und einen Betriebskode und keine Speicheradresse 10 bis 12 repräsentiert.

Eine Systembusanforderung- und Antwortsteuerung 20-18 umfaßt drei Timeout-Schaltungen. Wenn die SMF 20 als Master Zugriff auf den Systembus 2 anfordert und drei Mikrosekunden ohne Antwort vom angeforderten Subsystem verstreichen, dem Slave, dann ist der Systembus- 2-Zyklus beendet.

Wenn eines der anderen Subsysteme als Master Zugriff zu Systembus 2 anfordert und keine Antwort vom Slave innerhalb von 5 Mikrosekunden da ist, dann ist der Systembus-2-Zyklus abgeschlossen.

Wenn der SM-20-Lesezyklus ausgelöst wird und ein erwarteter Systembus- 2-Antwortzyklus (zweite Hälfte des Buszyklus) nicht innerhalb einer Millisekunde empfangen wird, dann ist die Systembus-2-Operation beendet.

Wenn die SMF 20 auf eine Systembus-2-Anforderung als Slave antwortet, erzeugt die SMF 20 entweder die Bussignale BSACKR, um die Anforderung zu bestätigen oder BSNAKR um die Anforderung abzulehnen.

Die Anzeigekonsole 34 ist über die DTI-Schnittstelle 29 mit einem Kommunikationskontroller 20-8 verbunden. Der Kommunikationskontroller 20-8 ist über die Schnittstelle CAI 31 mit dem Systembus 2 und dem Konsolenadapter 30 verbunden. Diese Anordnung gestattet der SMF 20, die Kommunikation zwischen der Konsole und dem DPU-1-System zu steuern.

Die SMF 20 steuert die Fernwartung über Schnittstelle RMO 37, die mit einem Kommunikationskontroller 20-6 verbunden ist. Der Kommunikationskontroller 20-6 steuert auch die Hilfseinrichtung 32 über die ADI-33- Schnittstelle. Die Kommunikationskontroller 20-6 und 20-8 werden durch die Adreßsignale A14 und A15 vom Mikroprozessor 20-2, dem Treiber 20-24 und dem Adreßbus 20-60 gesteuert. Das Signal A14 wählt Kanal A oder Kanal B. Das Signal A15 veranlaßt die Plazierung von entweder Daten oder Steuerinformation auf die Leitungen von Datenbus 20 bis 58. Daten oder Steuerinformation wird zwischen Mikroprozessor 20-2 und Kommunikationskontroller 20-6 und 20-8 und Datenbus 20-58 übertragen.

Ein vom Bediener beschreibbares E²&supmin;PROM 20-46 speichert Informationen, die ein Paßwort beinhalten, um unautorisierten Zugriff über die Fernwartungsschnittstelle zu verhindern; identifiziert die Boot-Software speichernde Einrichtung und auch die Hauptspeicherplätze 10 bis 12, in die die Boot-Software zur Ausführung geschrieben ist; Steuerbits zur Anzeige verschiedener, durch das DPU-1-System auszuführender QLT- Testfunktionen, und identifiziert, welches Peripheriegerät die Software zur Steuerung von CSS 3 bis 5 und der Hauptspeicherplätze 10 bis 12, in die die Software geschrieben ist, speichert.

Ein Modusregister 20-30 ist mit dem Datenbus 20-52 verbunden und führt folgende Funktionen aus:

1. Definiert die SMF-20-Diagnosesteuerung der Prioritätsbits des Systembus 2;

2. steuert das Aufwärts-/Abwärtszählen des Ausgangsadreßzählers 20-34;

3. gibt den Komparator 20-20 frei, um Datensystembus-2-4-Vergleiche auszuführen;

4. Antworten der SMF-20-Steuerung auf Befehle von CSS 3 bis 5; und

5. steuert spezielle Systembus-2-Operationen während der QLT- und power-up-Initialisierung.

Modusregister 20-30 wird durch den Mikroprozessor 20-2 über Transceiver 20-22 und Datenbus 20-52 ein- und ausgelesen.

Das Modusregister 20-30 wird durch das Signal ENBLIX freigegeben, dessen Boolesche Gleichung lautet:

· · · A11 · A0 · A1 · A2 · · · · MREQ.

Die das Modusregister 20-30 taktenden Signale CKMDB0-2 werden erzeugt durch den Booleschen Ausdruck:

ENBLIX · · WR · · (A14 · A15).

(Für CKMDBO, · ; für CKMDB1, A15 · , und für CKMDB2, A14 · .

Die Signale der Schnittstelle PCI 21 des Energieversorgungssystems 22 werden durch SMF 20 empfangen. Diese Signale zeigen eine Anzahl von Zuständen an.

Ein Versorgung-Ein-/Ausfall-Signal SYSPWN zeigt der SMF 20 an, daß die Eingangswechselspannung und die logischen Ausgangsspannungen innerhalb der Spezifikationen sind. Die SMF 20 startet dann die DPU-1- System-Initialisierungs-Operationen. Wenn die Wechselspannung weggenommen wird, geht das Versorgung-Ein-/Ausfall-Signal SYSPWN auf low. Die logische Ausgangsspannung bleibt jedoch für drei Millisekunden innerhalb der Spezifikationen, was dem DPU-1-System, zur Vermeidung von Datenverlusten, Zeit gibt, sich auf konkrete Weise abzuschalten.

Ein Versorgungsstatussignal PWRYLO zeigt an, daß alle Energieversorgungen gemäß den Spezifikationen arbeiten. Das auf low gehende Versorgungsstatussignal zeigt eine nichtoperative Energieversorgung an.

Das Versorgungssystem 22 kann eine batteriegepufferte Spannungsversorgung beinhalten, um die Daten im Hauptspeicher 10 bis 12 zu allen Zeiten gültig zu halten. Ein Speicher-gültig-Signal BBUATV auf low zeigt an, daß trotz der batteriegepufferten Versorgung die Speicher-Spannung auf low ging und die Information in Hauptspeicher 10 bis 12 ungültig sein kann und ein Neuladen des Speichers gestartet ist.

Ein Sperrsignal von einem Schalter auf der Kontrolltafel des Versorgungssystems 22 verursacht ein Schalttafel-Sperrsignal, um einen Bedienerzugriff auf die Betriebsfähigkeit des DPU-1-Systems zu steuern.

Diese durch die SMF 20 von der PCI-21-Schnittstelle empfangenen Signale werden an einen Multiplexer 20-28 angelegt. Der Mikroprozessor 20-2 empfängt diese Signale über den Datenbus 20-52 und den Transceiver 20-22, um geeignete Prozesse vorzunehmen.

Die SMF 20 sendet ein Versorgung-Ein-Signal BSPWON auf Systembus 2 aus, um allen mit dem Systembus 2 verbundenen Subsystemen anzuzeigen, daß die Versorgung innerhalb der Spezifikation ist. Ein verschwindendes Signal BSPWON gibt allen Subsystemen drei Millisekunden Zeit zum "Aufräumen".

Auch das Versorgung-Ein-/Ausfall-Signal SYSPWN, das während Versorgung-Ein auf high geht, erzwingt über den Systembus 2 ein Master- Clear-Signal BSMCLR über einen Treiber 20-63, um alle geeigneten Logikfunktionen zurückzusetzen.

Die SMF 20 sendet eine Anzahl von Signalen über die PCI-21-Schnittstelle zum Versorgungssystem 22. Ein Ausgangsspannungs-Grenzwert- Steuersignal HIMARG auf high und ein Ausgangsspannungs-Grenzwert- Steuersignal LOMARG auf low werden von einem Mikroprozessor 20-2 während Testoperationen erzeugt, um die Ausgangsgrenzwerte auf allen Energiesubsystemen um +/- 2% zu variieren.

Ein Systembussignal BSQLTI zeigt an, daß alle mit dem Systembus 2 verbundenen Subsysteme korrekt angeschlossen, eingeschaltet sind und alle Testprogramme (QLT's) erfolgreich abgeschlossen haben. Die QLT- Logik 19 empfängt das Bussignal BSQLTI und ein Datensignal vom Datenbus 20-52, das anzeigt, daß die SMF 20 ihren QLT korrekt ausführte, und erzeugt das Signal BSQLTA, das an das Versorgungssystem 22 und die Schnittstelle 21 gesendet wird, das anzeigt, daß das DPU-1- System vollständig ausgetestet ist. Das Signal BSQLTA ist wahr, immer wenn irgendeine Einheit ihren QLT ausführt oder irgendein QLT-Versagen hat. Das BSQLTA ist falsch, immer wenn der QLT-Test erfolgreich ist.

Die SMF 20 umfaßt eine Temperatur-Prüf-Vorrichtung 20-40, um die Gehäusetemperatur des DPU-1-Systems zu überwachen, und erzeugt ein Temperatur-High-Signal TMPYLO, wenn die Gehäusetemperatur über der Maximaltemperatur von 38ºC ist. Wenn die Gehäusetemperatur abnormal hoch geht, öffnet ein thermischer Sensor (nicht gezeigt), der die Versorgung abschaltet. Dies veranlaßt das Versorgung-Ein-/Ausfall-Signal SYSPWN, das Systembus-2-Signal BSPWON zu erzeugen, um allen Subsystemen auf Systembus 2 anzuzeigen, in ihre jeweiligen Versorgungs- Abschalt-Sequenzen zu gehen.

Das Temperatur-High-Signal TMPYLO wird an MUX 20-28 angelegt, um es für den Mikroprozessor 20-2 zugänglich zu machen.

Signale von den Kommunikations-Kontrollern 20-6 und 20-8 werden ebenso an MUX 20-28 angelegt, um dem Mikroprozessor 20-2 zu ermöglichen, die Sendedatenleitungen abzutasten und ebenso zu erkennen, wenn die empfangende Vorrichtung für einen Datenempfang bereit ist.

MUX 20-28 wird durch das Signal ENBMUX, das durch den folgenden Booleschen Ausdruck erzeugt wird, freigegeben:

ENBMUX = · A9 · · · ENMBOR · ·

wobei

ENMBOR = A0 · A1 · A2 · · .

Ein Signal MREQ wird vom Mikroprozessor 20-2 erzeugt, um anzuzeigen, daß der Adreßbus 20-54 keine RAM 20-44 Adresse enthält. Ein Signal MI wird vom Mikroprozessor 20-2 erzeugt, um anzuzeigen, daß es sich nicht um eine Operations-Kode-Abrufoperation handelt. Die Signale A14 und A15 des Adreßbus 20-54 wählen jedes der vier Ausgangssignale von MUX 20-28.

Das Ausgangsregister von SMF 20, das Ausgangsdatenregister 20-14, das Ausgangssteuerregister 20-10 und der Ausgangs-Adreß-Zähler 20-34 sind über die invertierenden Treiber 20-66, 20-62 bzw. 20-72 mit dem Systembus 2 (2-4, 2-2, 2-6) verbunden.

Vom Datenbus 20-52 werden Daten, ein Byte zu einer Zeit, in diese Ausgangsregister gegeben. Diese Ausgangsregister werden vom Mikroprozessor 20-2 als Plätze des RAM 20-44 adressiert. Die Ausgangsdatenregister 20-14 können auch breitseitig vom Systemtimer 20-32 oder vom Boot- und QLT-ROM 20-39 geladen werden. Ferner wird ein Ausgangs- Adreß-Register 20-41 vom Mikroprozessor 20-2 mit aufeinanderfolgenden Adressen für einen Blocktransfer von Daten an den Hauptspeicher 10 bis 12 geladen.

Signale zum Laden des Ausgangsregisters werden durch Decodierung geeigneter Adreßleitungen und Kombinieren mit Steuersignalen vom Mikroprozessor 20-2 erzeugt. Die Logik, die die Erzeugung und die Paritätsprüfung zeigt, ist nicht in der Beschreibung enthalten, da sie sich nicht auf die Erfindung bezieht, aber es für einen Durchschnittsfachmann offensichtlich ist, daß die Parität nach jedem Byte-Transfer geprüft wird.

Das Ausgangsdatenregister 20-14, das nicht die Parität beinhaltet, ist typischerweise zusammengesetzt aus acht 74LS298-Multiplexer-Registern, wobei der "Null"-Eingang mit Datenbus 20-52 verbunden ist und der "Eins"-Eingang mit dem Ausgang des Boot- und QLT-ROM 20-39 gekoppelt ist. Das Register 20-14 wird durch eine Logik in den Adreß-Decodern 20-4 geladen, so wie es durch folgenden Booleschen Ausdruck gezeigt wird:

Ein Freigabe-Signal ENBLOX =

· MREQ · A0 · A1 · · · · · · ·

Man beachte, daß jeder der Booleschen Ausdrücke in der Beschreibung die Logik der Adreß-Decoder 20-4 repräsentiert. Die Eingangssignale zum Adreß-Decoder sind die Adreß-Signale A0 bis A15 und Signale MI, MREQ, IORQ, WR und RD des Mikroprozessors 20-2. Die Adreß- Decoder 20-4 erzeugen die Logik-Steuer-Signale, die die Logikelemente der SMF steuern.

Die Multiplexerregister 20-14 werden, zwei auf einmal (ein Byte zu einer Zeit), durch die Taktsignale CKDTB0, CKDTB1, CKDTB2 und CKDTB3 geladen, da jedes Multiplexerregister 4 Bits speichert.

CKDTB0 = ENBLOX A12

CKDTB1 = ENBLOX A12 A15

CKDTB2 = ENBLOX A12 A14

CKDTB3 = ENBLOX A12 A14 A15

Ein Signal BPTDOT wählt den Ausgang von ROM 20-39 oder den Ausgang der Systemtaktgeber 20-32. Der Boolesche Ausdruck für BPTDOT ist:

(A8 · A9 · A10 · A11 · A12 · A13 · IORQ · · TODRWST)

Die Signale des Mikroprozessors 20-2 zeigen das Folgende an. zusammen mit MREQ zeigt an, daß dies keine Operations-Kode-Abrufoperation ist. MREQ zeigt an, daß der Adreßbus keine gültige Adresse für eine Speicher-Lese- oder Schreiboperation hält.

zeigt an, daß der Mikroprozessor 20-2 Daten aus dem Speicher oder einem I/O-Gerät lesen will. zeigt an, daß der Datenbus des Mikroprozessors 20-2 gültige Daten zur Speicherung an dem adressierten Speicherplatz oder I/O-Stelle hält.

IORQ · zeigt an, daß dies keine Adresse eines Eingabe-Ausgabe- Geräts und kein Operations-Kode-Abruf-Zyklus des Mikroprozessors 20-2 ist. Das Signal TODRWT zeigt einen Transfer der Tageszeit vom Systemtaktgeber 20-32 über das Ausgangsdatenregister 20-14 an den Systembus 2 an.

Für das breitseitige Laden des Ausgangsdatenregisters 20-14 erzeugt ein Signal MYDTCK vom Systemtaktgeber 20-32, das den Transfer der Tageszeit oder ein vom Mikroprozessor 20-2 erzeugtes Signal BP2MDT anzeigt, die Taktsignale CKDTB0 bis CKDTDB3 parallel.

Der Boolesche Ausdruck für das Signal BP2MDT ist:

(A8 · A9 · A10 · A11 · A12 · A12 · A13 · IORQ · )

Das Ausgangssteuerregister 20-10 besteht typischerweise aus zwei 74LS273- Registern, einem 74LS174-Register und einem 74LS374-Register, die alle mit dem 8-Bit-Datenbus 20-52 verbunden sind. Die Steuersignale werden in die Register jeweils durch die Signale CKCMB0 bis CKCMB3 getaktet. Die Booleschen Ausdrücke lauten:

CKCMB0 = ENBLOX · · ·

CKCMBO = ENBLOX · · · A15

CKCMB2 = ENBLOX 2 · · A14 ·

CKCMB3 = ENBLOX · · A14 · A15

Ein Signal TDSHBD sperrt den Ausgang des 74LS374-Registers, das während des Transfers der Tageszeit durch das Signal CKCMB0 getaktet ist. Das System-Rücksetz-Signal CLRFLP setzt die verbleibenden drei Register zurück.

Das 74LS374-Register speichert die in den Fig. 5A-5E gezeigten 8 Befehlssignale. Das sind die Signale BSYELO, BSBYTE, BSDBPL, BSDBWD, BSSHBC, BSLOCK, BSWRIT und BSMREF. Außerhalb des Tageszeit-Transfers werden diese Bussignale direkt an den Treiber 20-61 angelegt. Der Ausgangsadreßzähler 20-34 umfaßt vier 74AS869-Zähler, die im ALS/AS Logic Circuits Data Book 1983 von Texas Instruments (Advanced Low-Power Schottky/Advanced Schottley) beschrieben sind. Die Zähler haben vier Betriebsarten: Löschen, Dekrementieren, Laden und Inkrementieren. Eine Ladeoperation eines Zählers wird durch das Signal MYADUP das an die 4 Zähler angelegt wird, und durch die Signale CKADB 0 bis CKADB 3, die an den jeweiligen Zähler angelegt werden, ausgelöst. Die Booleschen Ausdrücke sind:

CKADB0 = ENBLOX · A13 · ·

CKADB1 = ENBLOX · A13 · · A15

CKADB2 = ENBLOX · A13 · A14 ·

CKADB3 = ENBLOX · A13 · A14 · A15

Das Signal MYADUP wird im Modusregister 20-30 durch Mikroprozessor 20-2 gespeichert, um eine Lade- oder Inkrementierungs-Betriebsart anzuzeigen. Während einer Boot- und QLT-Operation würden die Zähler anfänglich mit einem Byte auf einmal geladen und dann in Reihe mit den Adreßregistern 20-41 inkrementiert werden, wobei die Daten aus dem ROM 20-39 zum Transfer zum Ausgangsdatenregister 20-14 ausgelesen werden.

Ein Taktsignal MYADCK wird an einen Takt-Eingabeanschluß jedes Zählers 20-34 angelegt, um den Zähler zu takten. Das Signal MYADCK wird durch ein verzögertes Rückmeldesignal BSACKR erzeugt.

Das Eingabedatenregister 20-16 wird aus vier 74S374-Registern gebildet. Das Eingabeadreßregister 20-36 wird aus vier 74L5374-Registern gebildet und das Eingabesteuerregister 20-12 wird aus zwei 74L5374-Registern, einem 74L5374-Register und einem 74AS823-Register gebildet. Das 74AS823-Register empfängt die acht Bussignale BSYELO, BSBYTE, BSDBPL, BSDBWD, BSSHBC, BSLOCK, BSWRIT und BSMREF, die die auf den Systembus 2 ausgegebenen Befehle der SMF 20 steuern.

Alle der oben genannten Eingabe-Register 20-16, 20-36 und 20-12 werden unter Steuerung eines Taktsignals MBIPCK geladen, das unter 3 Bedingungen erzeugt wird.

1. Die Systembusanforderungs- und Antwortsteuerung 20-18 handelt als Slave und akzeptiert ein Rückmelde-Befehlssignal BSACKR oder ein Befehlssignal BSSHBC der zweiten Hälfte eines Buszyklus vom Systembus 2.

2. Die Antwortsteuerung 20-18 erkennt einen 3 Mikrosekunden-Timeout während eines Umlauftests.

3. Die SMF 20 quittiert sich selbst während eines Testmodus. Die 32 Ausgangsdatensignale vom Eingangsdatenregister 20-16 werden am Komparator 20-20 während des Umlauf-Testmodus angelegt. Die Datensignale werden auch an einen MUX 20-17 zwecks Transfer eines Bits zu einer Zeit unter Steuerung des Mikroprozessors 20-2 an den Datenbus 20-52 angelegt. Die Ausgänge von MUX 20-17 werden durch das Signal ENBL2X freigegeben, dessen Boolescher Ausdruck ist:

A0 · A1 · · · · · · A10 · · · MREQ

Die Wahl des MUX 20-17 wird durch die Signale REGSL0, REGSL1 und REGSL2 bewerkstelligt. Die Booleschen Ausdrücke sind:

REGSL0 = (ENBL2X (A12 · A13 · · + A12 · · + A12 · A14 · ) + · A15) RD

RSGSL1 = (ENBL2X (A12 · · A14 + A12 · A13) + · A14) RD

RSGSL2 = (ENBL2X ( + A12 · A13) + · A13) RD

Die vier, das Eingabeadreßregister 20-36 bildenden Register haben ihre Ausgangssignale unter Steuerung der jeweiligen Signale RDD024, RDD025, RDD026 und RDD027 an Datenbus 20-52 angelegt. Die vier, das Eingangssteuerregister 20-12 bildenden Register haben ihre Ausgangssignale unter Steuerung der jeweiligen Signale RDD020, RDD021, RDD022 und RDD023 an Datenbus 20-52 angelegt. Signal MBIPCK taktet die Adreßsignale in das Register 20-36.

Der Boolesche Ausdruck für RDD02X, wobei X von 0 bis 7 variiert, ist:

ENBL2X · RD · A12 · A13 · A14 · A15

wobei binär

A13 · A14 · A15 = X

Der Mikroprozessor 20-2 speichert die Adreßbytes, Datenbytes und Befehlsbytes, die auf Datenbus 20-52 empfangen wurden, in vorbestimmte Plätze im RAM 20-44 für spätere Bearbeitung unter Softwaresteuerung.

Die folgenden Steuersignale werden als ein Teil der durch SMF 20 über den Systembus 2 gesendeten und empfangenen Befehle benutzt:

BSYELO (gelb)

Wenn dieses Signal während der zweiten Hälfte eines Buszyklus wahr ist, zeigt es an, daß die übermittelte Begleitinformation korrekt gewesen ist. Es bezeichnet so einen Soft-Fehler und wird hergenommen um zu bedeuten, daß möglicherweise eine Wartungsaktion in Betracht gezogen werden sollte, ehe der Fehler hart wird. Dieses Signal wird durch Hauptspeicher 10 bis 12 auf eine Leseantwort hin benutzt, um einen Fehler anzuzeigen, der gefunden und korrigiert wurde.

Wenn dieses Signal während einer Speicher-Lese-Anforderung wahr ist, qualifiziert es die Leseanforderung. Die Antwort auf ein Wahr während einer Leseanforderung BSYELO hängt vom Speicher und der bezogenen Adresse ab.

Wenn ein BSELO während eines Befehls der SMF 20 an das CSS 3 bis 5 wahr ist, identifiziert es den Befehl der SMF 20, vorausgesetzt, BSMREF falsch zeigt an, daß die Adreßleitungen eine Kanaladresse und einen Funktionskode enthalten.

BSBYTE (Byte)

Wenn dieses Signal wahr ist, zeigt es an, daß die laufende Übertragung vielmehr eine Byte-Übertragung als eine Wort-Übertragung ist.

BSDBWD (Doppelwort)

Dieses Signal und BSDBPL werden während der Leseanforderungen benutzt, um anzuzeigen, wieviele Datenwörter und in welchem Format vom Hauptspeicher 10 bis 12 erwartet werden. Während des Lese-Antwort- Zyklus (vom Speicher an den Anfordernden) zeigt BSDBWD an, ob ein oder zwei Datenwörter auf dem Systembus 2 sind. Auf Schreibanforderungen wird dieses Signal in der Kombination mit BSAD23, BSBYTE und BSDBPL benutzt, um zu identifizieren, welche Bytekombination in einem 32-Bitoperanden in den Speicher geschrieben werden soll.

BSDBPL (Doppeltes Ziehen)

Dieses Signal wird in Verbindung mit BSDBWD benutzt. Während eines Lese-Antwort-Zyklus zeigt BSDBPL an, ob die Antwort das letzte oder nicht das letzte angeforderte Datenelement ist.

BSSHBC (Zweiter halber Buszyklus)

Dieses Signal kann entweder dazu dienen, den zweiten Buszyklus als Antwort auf eine Leseanforderung oder als Information, um die Sperre in Verbindung mit BSLOCK zu setzen oder rückzusetzen zu identifizieren.

BSLOCK (Verriegelung)

Wenn dieses Signal wahr ist, zeigt es an, daß dieser Zyklus vom Status des Verriegelungs-Flip-Flop im Slave abhängig ist, üblicherweise Hauptspeicher 10 bis 12, um anzuzeigen, daß dieser Zyklus entweder den Verriegelungs-Flip-Flop in Verbindung mit BSSHBC testen und setzen oder zurücksetzen wird, um die Systemprozesse zu synchronisieren.

BSWRIT (Bus-Schreiben)

Wenn dieses Signal wahr ist, zeigt es an, daß diese Übertragung vom Master an den Slave erfolgt. Wenn dieses eine Übermittlung begleitende Signal falsch ist, fordert der Master Informationen vom Slave an. Wenn diese Information verfügbar wird, wird sie als separate Übermittlung zur Verfügung gestellt.

BSMREF (Speicher-Verweisung)

Wenn dieses Signal wahr ist, zeigt es an, daß die Adreßleitungen eine Speicheradresse enthalten. Wenn dieses Signal falsch ist, zeigt es an, daß die Adreßleitungen eine Kanalnummer und einen Funktionskode beinhalten.

BSREDL (rot links)

Wenn dieses Signal wahr ist, zeigt es an, daß die übermittelte Begleitinformation fehlerhaft ist. Dieses Signal wird vom Speicher auf Lese- Antwort hin benutzt, um einen nichtkorrigierbaren Fehler im äußerst linken, zurückgesendeten Wort (wenn zwei Wörter parallel zurückgesendet werden) oder einem einzelnen Wort anzuzeigen.

BSREDR (rot rechts)

Wenn dieses Signal wahr ist, zeigt es an, daß die übermittelte Begleitinformation fehlerhaft ist. Dieses Signal wird vom Speicher auf die Lese- Antwort hin benutzt, um einen nichtkorrigierbaren Fehler im äußerst rechten, zurückgesendeten Wort (wenn zwei Wörter parallel zurückgesendet werden) anzuzeigen.

BSLKNC (Verriegelung: kein Speicher-Zyklus)

Dieses Signal hat nur während der gesperrten Speicher-Lese-Anforderungen (BSLOCK wahr) Bedeutung. Wenn es wahr ist, weist es den Speicher an, die aktuelle, angeforderte Leseoperation zu sperren, während zur selben Zeit den anderen mit der Anforderung verknüpften Operationen die Fortsetzung gestattet wird. Die Antwort auf die Anforderung, BSACKR oder BSNAKR wird dieselbe sein, unabhängig davon, ob BSLKNC wahr oder falsch ist, und das Setzen, Löschen und Testen des Verriegelungs-Flip-Flop im Hauptspeicher 10-12 ausgeführt werden wird. Der zyklische Betrieb des Speichermoduls wird gesperrt werden; die zweite Hälfte des Buszyklus wird nicht auftreten und der Speicher wird nicht auf belegt gehen.

BSRINT (Wiederaufnahme des Interrupt-Betriebs

Dieses Signal wird üblicherweise durch das CSS 3 bis 5 ausgegeben (und kann in manchen Fällen durch die SMF-20 ausgegeben werden), wenn es wieder in einem Status ist, Interrupts zu empfangen. Nachdem eine oder mehrere frühere Interrupt-Anforderungen NAK unterzogen worden sind, werden die Interrupt (S) in den Peripherie-Kontrollern 14 bis 16 "gestapelt". Nach Erfassen eines Übergangs auf wahr des BSRINT werden diese Kontroller wieder versuchen, den Interrupt an das CSS 3 bis 5 zu senden (was zu einer anderen NACK-Antwort führen kann).

Es ist zu beachten, daß dieses Signal von den empfangenden Kontrollern 14 bis 16 als asynchron behandelt wird, jedoch ein Sender von BSRINT mit einem Zyklus des Systembus 2 synchronisiert werden muß, um zu verhindern, daß mehr als eine Treiberquelle in einem Multiprozessor- System gleichzeitig auf dem Systembus 2 aktiv ist.

BSRINT muß für ein Minimum von 100 Nanosekunden gültig sein und kann wegen der 'unscharfen' Übergänge der Abfallflanke von BSRINT ein anormales Systemverhalten aufweisen.

BSPWON (Bus-Versorgung Ein)

Dieses asynchrone Signal ist normalerweise wahr, wenn alle Energieversorgungen in Ordnung sind und die interne Gehäusetemperatur innerhalb akzeptabler Betriebsgrenzen ist. Das Signal wird falsch, wenn ein System (d. h., Versagen der Steuerung der Leistungsversorgung, Überlastung, "Rotpegel"-Übertemperatur, etc.).

Das Signal BSPWON wird normalerweise durch die SMF 20 durch vom Versorgungssystem 22 bereitgestellte Information erzeugt, kann aber in einigen Fällen durch bestimmte Kommunikations-Kontroller 20-6 und 20-8 angesteuert werden, um eine Systemerholung von einem Hauptrechner in Aufwärtsrichtung zu simulieren. Während eines Versorgungs-Ein-Übergangs, zeigt eine positiv gehende Flanke von BSPWON an, daß die Systemversorgung hochgefahren ist und stabil geworden ist und eine Systeminitialisierung stattfinden muß. Auf die Initialisierung folgend, zeigt ein konstanter Einschaltzustand einen stabilen Satz von Systemoperationsbedingungen an. Nach Erfassen eines Fehlers oder Ausschaltzustandes wird BSPWON auf Aus übergehen und alle Peripherie-Kontroller 14-16 müssen jeden Verkehr auf dem Bus einstellen und eine Selbstinitialisierung durchführen, um dem CSS 3-5 zu ermöglichen, den Systemstatus und die Rückgewinnungsinformation im Hauptspeicher 10-12 zu speichern (der Speicher muß wegen den Neustart-Bedingungen nicht flüchtig sein). Ein Übergang auf falsch von BSPWON muß dem aktuellen Verlust der Gleichspannungsregelung mit einem Minimum von 3,0 Millisekunden vorhergehen und die Speicher-Kontroller müssen 2,5 bis 3,0 Millisekunden, nachdem ein Fehler erfaßt worden ist, in einen Geschütztstatus eintreten (kein Buszyklus akzeptiert), um die System-Status-Information zu bewahren.

BSACKR (ACK)

Der Slave signalisiert dem Master, daß er diese Übertragung akzeptiert, indem er dieses Signal auf wahr setzt.

BSNAKR (NAK)

Der Slave signalisiert dem Master, daß er diese Übertragung verweigert, indem er das Signal auf wahr setzt.

BSWAIT (WAIT)

Der Slave signalisiert dem Master, daß er vorübergehend die Übertragung verweigert, indem er das Signal auf wahr setzt.

BSDCNN (Datenzyklus jetzt)

Wenn dieses Signal wahr ist, zeigt es an, daß ein bestimmter Master eine Übertragung auf Systembus 2 vornimmt und auf dem Systembus 2 Information zur Benutzung durch einige, bestimmte Slaves plaziert hat. Wenn falsch, ist der Systembus ungenutzt oder zwischen zwei Buszyklen.

BSMCLR (Bus-Master löschen)

Dieses asynchrone Signal ist normalerweise falsch und wird wahr, wenn eine Systembedingung erkannt wird, die eine Systemoperation zum vollständigen Abbruch erfordert und eine 'Halt-', 'Neustart-' oder 'Reboot'- Operation durch die SMF 20 ausgeführt werden muß. Ursprünge von Master-Löschen werden normalerweise von der Versorgung-Ein-Sequenz und dem Druckknopf des Bedienungspults (beide von der SMF 20 erzeugt) abgeleitet, können aber von bestimmten Kommunikations-Kontrollern herrühren, die die Fähigkeit haben, ein aufwärtsgerichtetes Laden von einem angeschlossenen Hauptrechner durchzuführen.

Wenn BSMCLR wahr ist, werden alle Einheiten auf dem Systembus 2 initialisieren. Zusätzlich werden Einheiten, die dazu in der Lage sind, ihre QLT ausführen. Ein erfolgreicher Abschluß der QLT wird angezeigt, wenn die SMF 20 das BSQLTA-Signal empfängt.

BSRESO (Antwort-Unterscheider)

Dieses Signal wird in Verbindung mit BSACKR angesteuert werden, um dem anfordernden Bus-Master anzuzeigen, daß der Slave den Aufruf der Betriebsfähigkeit erkennt und entsprechend antwortet. Drei Typen von Anforderungen können diese qualifizierte Antwort wählen:

- Leseanforderungen, die einen Zweiwort-Buszyklus der zweiten Hälfte ergeben (angezeigt durch BSDBWD--wahr);

- Schreibanforderungen, die Datensignale BSDT16 bis BSDT31 zu schreiben versuchen (angezeigt durch BSDBWD--wahr); und

- Leseanforderungen, die einen Speicher, ohne es periodisch wiederkehrend zu tun, zu verriegeln oder zu entriegeln versuchen (angezeigt durch BSLKNC-wahr).

Eine Systembus-Anforderungs- und -Antwort-Steuerlogik 20-18 umfaßt eine Haupt-Steuerlogik, um für die SMF 20 die Kontrolle von Systembus 2 zu erlangen und den Befehl oder die Antwort der SMF 20 auf einen Befehl über Systembus 2 an die untergeordnete Einheit zu senden.

Da die SMF 20 die höchste Prioritätsposition auf Systembus 2 belegt, wird der nächste Zyklus zugelassen, sobald der gegenwärtige Buszyklus abgeschlossen ist, wenn Anforderungen der SMF 20 auf Systembus 2 zugreifen. Die Logik 20-28 wird ein Signal MYDCNN erzeugen, das an die Treiber 20-66, 20-62 und 20-72 angelegt wird, um Daten-Adreß- und Steuerinformation auf Systembus 2 zu geben. Die Logik 20-18 sendet auch ein Bussignal BSDCNN über Systembus 2, um allen Subsystemen anzuzeigen, daß der Systembus 2 "in Gebrauch" ist.

Die Logik 20-18 erwartet irgendeine aus einer Anzahl von Antworten von dem Systembus 2. Die möglichen Antworten sind:

1. Es ist eine Nein-Antwort seit 3us empfangen worden.

2. Eine Warte-Antwort ist empfangen worden (BSWAIT).

3. Eine Nicht-Rückmelde-Antwort ist empfangen worden (BSNAKR).

4. Ein Verriegelung-Nein-Zyklus (LKNC) wird quittiert (BSLKNC) (BSACKR).

5. Ein Schreibvorgang (Ein-Wort-Schreiben oder BSRESQ Empfangen) wird quittiert (BSACKR).

6. Ein Schreibvorgang (BSRESQ nicht empfangen und Doppelwort) wird quittiert (BSACKR).

7. Ein LESE-Zyklus wird quittiert (BSACKR).

Die Logik 20-18 wird diesen Systembus-Zyklus beenden und erneut auf Systembus 2 Zugriff anfordern, wenn eine BSWAIT- oder BSNAKR- Antwort erhalten wurde oder wenn eine BSDACKR-Antwort für eine Doppelwort-Schreiben-Anforderung empfangen wurde.

Die Logik 20-18 umfaßt eine Slave-Steuer-Logik, die aktiviert ist, wenn ein zweiter halber Buszyklus in Antwort auf einen durch SMF 20 an Hauptspeicher 10-12, CSS 3-5 oder Peripherie-Kontroller-14-16-Lesebefehl erwartet wird. Die Slave-Steuerlogik wird auch aktiviert, wenn ein Buszyklus die SMF 20 Kanalnummer hexadezimal 0F umfaßt. Die zweite Hälfte des Buszyklus wird von SMF 20 akzeptiert, wenn keine Fehlerzustände vorhanden sind und durch SMF 20 eine Rückmeldeantwort BSACKR auf den Systembus 2 an den Master ausgesendet wird.

Wenn der zweite halbe Buszyklus akzeptiert ist, dann steuern Signale vom Modus-Register das Inkrementieren oder Dekrementieren des Ausgangs-Adreßzählers 20-34 abhängig von der Zahl der Datenwörter, die entsprechend der Anzeige durch Bus-Steuersignal BSDBWD übermittelt werden.

SMF 20 wird einen nicht angeforderten Befehl akzeptieren, wenn die Kanalnummer hexadezimal 0F ist, keine Paritätsfehler vorliegen, dies nicht die zweite Hälfte eines Buszyklus ist (BSSHBC falsch), die Bus- Adreßsignale einen Funktionskode und eine Kanalnummer (BSMREF falsch) beinhalten und der Funktionskode für die SMF 20 zulässig ist. Die SMF 20 wird über Systembus 2 ein Nicht-Rückmeldesignal BSNAKR mit einem Rückmeldesignal BSACKR erwidern oder wird den Befehl ignorieren, wenn eine verkehrte Parität oder ein unzulässiger Funktionskode vorhanden ist.

Die SMF 20 kann einen Befehl zum Lesen eines Platzes im Hauptspeicher 10-12 senden und die Inhalte dieser Stelle an ein anderes Subsystem, typischerweise das CSS 3 oder CSS 5, senden. In diesem Fall wird der zweite halbe Buszyklus nicht an SMF 20 adressiert sein. Hauptspeicher 10 bis 12 wird das Rückmeldesignal BSACKR auf den Systembus 2 aussenden und den zweiten halben Buszyklus-Befehl auf Systembus 2 aussenden, der die Kanalnummer des Ziel-Subsystems besitzt. Da die SMF 20 den zweiten halben Buszyklus nicht empfangen wird, muß sie den Befehl beenden.

Das Rückmeldesignal BSACKR wird von der Systembus-Zyklusende- Steuerlogik 20-19 empfangen. Der Mikroprozessor 20-2 erzeugt Adreßsignale, die durch Adreßdekoder 20-4 dekodiert werden, um Signal CKMDO2 zu erzeugen. Auch erzeugt Mikroprozessor 20-2 über Datenbus 20-52 ein Datensignal D00. Die Signale BSACKR, CKMD02 und D00 setzen auf Signal SMFCLY den SMF 20 Zyklus zurück, der am System- Timer 20-32 angelegt ist, um die Zeitabläufe rückzusetzen, um dadurch den Befehl zu beenden. Während einer Normaloperation verifizieren die Zeitabläufe, daß der erwartete zweite halbe Buszyklusbefehl durch die SMF 20 innerhalb einer vorbestimmten Zeit empfangen ist. Wenn der Befehl nicht innerhalb der vorbestimmten Zeit empfangen ist, wird ein Zeitablauf-Signal die SMF 20 veranlassen, den Speicher-Lese-Befehl zu wiederholen.

Die Schnittstelle ADI 33 verbindet den Kanal B des Kommunikations- Kontrollers 20-6 mit der Hilfseinrichtung 32. Dies ist eine Standardschnittstelle EIA RS-232C vom Typ Z mit einer Datenrate bis zu 1200 Baud. Die Schnittstellensignale sind typischerweise sende Daten, empfange Daten, Empfangsbereitschaft und Aufforderung zum Senden.

Die Schnittstelle CAI 31 verbindet den Kanal A des Kommunikations- Kontrollers 20-8 mit dem Konsolen-Adapter 30. Diese Schnittstelle kann die asynchrone Schnittstelle RS 232C auf der asynchronen Schnittstelle RS 422 sein. Die RS-232C-Schnittstellensignale sind sende Daten, empfange Daten, Auslösen zum Senden und Empfangsbereitschaft. Die RS- 422-Schnittstellensignale sind sende Daten, empfange Daten und Datenflußsteuerung. Die Schnittstelle RMO 37 verbindet den Kanal A des Kommunikations-Kontrollers 20-6 mit der Fernkonsole 42.

Die RMO 37 bildet die Schnittstelle mit einem typischen Modem 36, wie in der Diskussion von Fig. 1 beschrieben. Die Schnittstelle D- 29 verbindet den Kanal B des Kommunikations-Kontrollers 20-8 und paßt die Schnittstelle CAI 31 an.

Die Kommunikationskontroller 20-6 und 20-8 sind serielle Zilog Z 80 SIO/O Ein-/Ausgabe-Kontroller, die im vorher erwähnten Zilog Gold Book beschrieben sind.

Die Kommunikations-Kontroller 20-6 und 20-8 unterbrechen Mikroprozessor 20-2 über eine gemeinsame Interrupt-Leitung. Mikroprozessor 20-2 antwortet auf die Unterbrechung mit dem Aussenden von MI- und IORQ-Signalen, dazu der Signale A14 und A15. Der unterbrechende Kontroller 20-6 oder 20-8 antwortet mit dem Senden des Status über den Datenbus 20-58. Mikroprozessor 20-2 zweigt dann in eine Software-Routine ab, die auf dem Status basiert, um die Aktivität auszuführen. Typische Funktionen, die von der Software mit dem Antworten auf die Statussignale der Kommunikationskontroller 20-6 und 20-8 ausgeführt werden, sind: übertrage Pufferspeicher leer, leite Statuswechsel weiter, wobei Zeichen verfügbar und eine spezielle Empfangsbedingung empfangen wird.

Lade-Modus

Fig. 3 zeigt ein Blockdiagramm der Systembus-Schnittstelle 2-10A. Befehle vom Systembus 2 werden an ein FIFO-Register 2-34 durch die Empfänger 2-32 angelegt. Das Format der verschiedenen Befehle wird in den Fig. 5A-5E gezeigt. Die Befehle beinhalten eine Kanalnummer, die die Zieleinheit des Befehls spezifiziert, und einen Funktionskode, der die Operation spezifiziert, die die empfangende Einheit ausführen wird. Eine FIFO-Steuerung 2-33 empfängt über die Empfänger 2-30 vom Systembus 2 spezifizierte Befehlssignale. Die spezifizierten Befehlssignale geben die FIFO-Steuerung 2-33 frei, um die spezifischen Befehle in das FIFO 2-34 zu laden.

Wenn der Befehl der SMF an Hauptspeicher von Fig. 5C die Kanalnummer hexadezimal 00 hat, dann spricht die FIFO-Steuerung 2-33 auf die Datensignale 0-9 an, um zum Laden des Befehls in das FIFO ein Signal zu erzeugen. Die FIFO-Steuerung 2-33 ist auch dafür ausgelegt, einen zweiten halben Buszyklus zu empfangen.

Die FIFO-Steuerung 2-33 spricht auf das an die CPU-Befehlskanalnummer hexadezimal 00 gerichtete SHBC an, welche durch die Adreßsignale 8-17 spezifiziert wird, um den Inhalt des Hauptspeichers in das FIFO 2- 34 für anschließende Speicherung in Steuerspeicher 3-2 von Fig. 4 zu laden.

Das Master-Lösch-Signal BSMCLR wird an die Steuerlogik CNTL 0 2-15 und CNTL 1 2-25 angelegt, um das Master-Synchronisationssignal P0MSYN bzw. P1MSYN zu erzeugen, um die normale Operation CSS 3 zu steuern. Der Lademodus wird durch die SMF 20 erzeugt, die einen Ladebefehl sendet, der eine Kanalnummer und einen Funktionskode umfaßt. Steuerlogik CNTL 0 2-15 wird durch die hexadezimale Kanalnummer 00 freigegeben. Steuerlogik CNTL 1 2-25 wird durch die hexadezimalen Kanalnummer-Bits 01 freigegeben. Eine gleichartige Steuerlogik in Systembus-Schnittstelle 2-10B spricht auf die hexadezimalen Kanalnummern 02 bzw. 03 an.

CNTL 0 2-15 spricht auf den Ladebefehl-Funktionskode hexadezimal 0D an, um Signal P0CSLD zu erzeugen, wenn die Kanalnummer hexadezimal 00 spezifiziert ist. CNTL 1 2-25 spricht auf den hexadezimalen Funktionskode 0D an, um Signal P1CSLD zu erzeugen, wenn die Kanalnummer hexadezimal 01 spezifiziert ist.

Gleichartigerweise sprechen CNTL 0 2-15 und CNTL 1 2-25 auf ihre jeweilige Kanalnummern und einen Funktionskode hexadezimal 11 an, die eine Operation des Lade-Steuer-Speicher-Adreßzählers spezifizieren, um Signale P0LADD und P0LSYN oder P1LADD und P1LSYN zu erzeugen.

Während der Lade-Steuer-Speicher-Datenübermittlungs-Operation werden Daten vom Hauptspeicher 10 bis 12 im internen Daten-(P0) Register 2- 12 der SMF gespeichert, wenn die Ladebefehle die Kanalnummer hexadezimal 00 spezifizieren. Gleichartigerweise werden die Daten der Lade- Steuerspeicher-Operation vom Hauptspeicher 10-12 im SMF-Daten-Interrupt-Register 2-22 gespeichert, wenn die Ladebefehle die Kanalnummer hexadezimal 01 spezifizieren. Register 2-12 und Register 2-22 werden vom Systembus 2 über Empfänger 2-30 und FIFO 2-34 geladen.

Ein Syndrom-Register 2-13 speichert vom Port 0 empfangene Information und ein Syndrom-Register 2-23 speichert vom Port 1 empfangene Information. Das in Syndrom-Register 2-23 gespeicherte Signal P0PRES zeigt an, daß CPU0 4 im System vorhanden ist, Signal P0LERR zeigt an, daß ein Fehler beim Laden des Kontrollspeichers auftrat und Signal P0CSBY zeigt an, daß die Ladeoperation nicht abgeschlossen war. Die im Syndrom-Register 2-23 gespeicherten Signale P1PRES, P1LERR und P1CSBY zeigen diese Zustände für CPU1 6 an.

Ein Befehl zum Lesen des Syndrom-Registers mit einem Funktionskode hexadezimal 00 hat zur Folge, daß CNTL 0 2-15 ein Signal P0SSYE für eine Kanalnummer hexadezimal 00 erzeugt und daß CNTL 1 2-25 ein Signal P1SSYE für eine Kanalnummer hexadezimal 01 erzeugt. Der Inhalt von Syndrom-Register 2-13 wird auf dem Bussystem 2 über einem Register 2-14, einem Daten-Aus-Register 2-11 und Treibern 2-32 erscheinen, wenn Register 2-13 durch Signal P0SSYE freigegeben wurde.

Auf gleiche Weise wird der Inhalt von Syndrom-Register 2-23 auf Systembus 2 über ein Register 2-24 einem Daten-Aus-Register 2-21 und Treibern 2-32 erscheinen.

Syndrom-Register 2-13 speichert eine Hardware-Revisions-Nummer, die die Personalität, die CSS 3 haben wird, anzeigt. Sie wird aus der Logik 2-16 geladen. Die Hardware-Revisions-Nummer wird während der Ladeoperation benutzt, um die in die Steuerspeicher 3-2 von Fig. 4 zu ladende Firmware zu wählen. Zu beachten ist, daß nur Syndrom-Register 2-13 von Port 0 die Hardware-Revisions-Nummer speichert. Wenn die Hardware-Revisions-Nummer nicht aus Port 0 gelesen wird, dann wird Port 1 nicht benutzt, und das Laden der Firmware für CSS 3 wird abgebrochen.

Die Interrupt-Datenregister 2-12 und 2-22 der SMF stellen einen Ausgang zur Verfügung, wenn die Steuerlogik CNTL 0 2-15 einen Befehl empfängt, der die Kanalnummer hexadezimal 00 und den Funktionskode mit hexadezimal 06 besitzt, um Signal CN0 zu erzeugen. CNTL 1 2-25 empfängt Kanalnummer hexadezimal 01 und den Funktionskode hexadezimal 06, um Signal CN1 zu erzeugen. Signal CN0 gibt Register 2-12 frei und Signal CN1 gibt Register 2-22 frei. Während des Lademodus ist der Vorgabefall das Signal CN0 oder CN1, das freigegeben wird, wenn die SMF 20 nicht einen Funktionskode mit hexadezimal 00 sendet. Während des Steuerspeicher-Lademodus werden Daten in das 32-Bit-Register 2-12 oder 2-22 über vier Buszyklen geladen, um 104 Datenbits zum Steuerspeicher 3-2, Fig. 4, zu übermitteln. Jeder Zyklus erzeugt ein P0LSYN- oder P1LSYN-Signal.

Die SMF 20 sendet einen Lesebefehl mit einem Funktionskode mit hexadezimal 00 zum aktiven Port 0 oder Port 1, um den Inhalt der Syndromregister 2-13 bzw. 2-23 zu lesen.

Die Signale P0SSYE oder P1SSYE geben den Ausgang des gewählten Syndromregisters 2-13 oder 2-23 frei, um den Inhalt auf dem Systembus 2 über Register 2-14 oder 2-24, Daten-Aus-Register 2-11 oder 2-21 und Treiber 2-32 zu plazieren.

Fig. 4 ist ein Blockdiagramm von CSS 3, das mit der Systembusschnittstelle 2-10A durch Port 0 und Port 1 verbunden ist. Port 0 arbeitet mit CPU0 4-2 und VMMUO 4-4 von CPU1A 4, Fig. 1. Port 1 arbeitet mit CPU1 6-2 und VMMU1 6-4 von CPU1B 6. CSS 5 arbeitet in gleicher Weise durch Ports 2 und 3.

Der Steuerspeicher 3-2 speichert die Firmware zum Steuern des Betriebs von CPU0 4-2 und VMMU0 4-4 und ihrer zugeordneten Register und Logik; und auch, um den Betrieb von CPU1 6-2 und VMMU1 6-4 und ihrer zugeordneten Register und Logik zu steuern. Der Steuerspeicher 3- 2 speichert 16K Wörter mit 104 Bits pro Wort.

Ein Adreßzähler 3-4 stellt Adreßsignale zur Verfügung, die Stellen des Steuerspeichers 3-2 wählen, in die die Daten des Steuerspeichers geschrieben werden. Ein Laderegister 0 4-14 ist mit Register P0 2-14 verbunden, Fig. 3, von Port 0, um eine Anfangs-Steuerspeicher-Adresse und Steuerspeicher-Datenwörter zu empfangen, die in den Steuerspeicher 3-2 an vom Zähler 3-4 spezifizierten Stellen geschrieben werden, wenn der Ladebefehl die Kanalnummer hexadezimal 00 beinhaltet. In einer ähnlichen Weise ist ein Laderegister 1 6-14 mit Register P1 2-24, Fig. 3, von Port 1 verbunden, um die Anfangs-Steuerspeicher-Adresse und Steuerspeicher-Datenwörter zu empfangen, die in den Steuerspeicher 3-2 an vom Zähler 3-4 spezifizierten Stellen durch den Ladebefehl, der die Dezimalzahl hexadezimal 01 beinhaltet, zu empfangen.

Ein Taktgeber 3-8 stellt Taktsignale bereit und eine Steuerspeicher-Lade- Steuerung 3-6 stellt Steuersignale bereit, die in Verbindung mit den Taktsignalen die Ladeoperation steuern. Taktgeber 3-8 spricht auch auf Signal P0MSYN und P1MSYN an, um Taktsignale zum Steuern von Normaloperationen zu erzeugen.

Parität L 3-18 erzeugt während der Ladeoperation ein Fehlersignal PXLDER, wenn die vom Register 0 4-14 oder Register 1 6-14 ausgegebenen Steuerspeicher-Wörter einen Paritätsfehler anzeigen.

Paritäts-Fehlerlogik 3-20 erzeugt während einer Überprüfung der Steuerspeicher-Ladeoperation ein Parität-Fehlersignal PXVFER, wenn von einem oder mehreren Parität-Prüf-Schaltungen 3-12, 3-14, 3-16, CPU 0 4- 2, VMMU 0 4-4, CPU 1 6-2 und VMMU 1 6-4 empfangene Signale einen Paritätsfehler durch Erzeugen der Signale G, M, A, C0, V0 anzeigen; oder während der Überprüfung der Ladeoperation Signale G, M, A, C1 bzw. V1.

Während des Normalbetriebs wird der Steuerspeicher 3-2 durch den Inhalt eines Adreßregisters 0 4-6 oder durch den Inhalt von Adreßregister 1 6-6 adressiert. Register 4-6 und 6-6 werden jeweils von CPU0 4-2 oder CPU1 6-2 geladen. Während der Lade- und Prüfoperation wird der Steuerspeicher 3-2 durch den Inhalt von Zähler 3-4 adressiert. Sowohl im Normal- als auch im Prüfbetrieb wird der adressierte Platz von Steuerspeicher 3-2 in ein Register C 3-10 und entweder Register P0 4-12 oder Register P1 6-12 geladen.

CPU0 4-2, VMMU0 4-4, CPU 1 6-2 und VMMU 1 6-4 empfangen die Steuerspeicher-Signale von Register C 3-10. CPU0 4-2 empfängt die Steuerspeicher-Signale von Register 4-12 und CPU 1 6-2 empfängt die Steuerspeicher-Signale von Register 6-12.

Die CPU0 4-2 erzeugt das Signal C0 und VMMU0 4-4 erzeugt das Signal V0. Die Signale C0 und V0 werden an Paritäts-Fehlerlogik 3-20 angelegt. Signale C0 und V0 sind die resultierende Parität der von den betreffenden Einheiten empfangenen Steuerspeicher-Bits.

In gleicher Weise erzeugt CPU1 6-2 das Signal C1 und VMMU1 6-4 erzeugt das Signal V1. Die Signale C1 und V1 werden an die Paritäts- Fehlerlogik 3-20 angelegt, die Signale C1 und V1 sind die resultierende Parität der durch die betreffenden Einheiten empfangenen Steuerspeicher- Bits.

Die Register 3-10, 4-12 und 6-12 werden durch das Taktsignal PXADLA geladen. Die Ausgänge der Register 4-12 und 6-12 sind zur Zeit P0TMC4 bzw. zur Zeit P1TMC4 verfügbar. Der Ausgang von Register 3- 10 ist verfügbar, wenn er geladen wird. Das Signal PXADLA ist zur Zeit PXTME2 und zur Zeit PXTME4 verfügbar. Die Register 4-12 und 6-12 werden bei der Anstiegsflanke von "2-Zeit" für CPU1 6-2 und VMMU1 6-4 geladen und an der Anstiegsflanke von "4-Zeit" für CPU0 4-2 und VMMU0 4-4 geladen und sind an der Abfallflanke von "2-Zeit" für CPU1 6-2 und VMMU1 6-4 verfügbar und an der Abfallflanke der "4-Zeit" für CPU0 4-2 und VMMU0 4-4 verfügbar.

Während Normalbetrieb verbinden ein Datenausgabe-Register F0 4-8 und ein Dateneingabe-Register T0 4-10 die CPU0 4-2 und VMMU0 4-4 über Port 0 mit der Systembus-Schnittstelle 2-10A. Auf gleiche Weise verbinden ein Datenausgabe-Register F1 6-8 und ein Dateneingabe-Register T1 6-10 die CPU1 6-2 und VMMU1 6-4 über Port 1 mit Systembus- Schnittstelle 2-10A.

Wenn der Ladebefehl die Kanalnummer hexadezimal 00 beinhaltet, dann wird das Signal P0LSYN durch CNTL0 2-15, Fig. 3, erzeugt und an den Taktgeber 3-8 angelegt, der für ein frei laufendes Taktsignal CLK ansprechbar wird, und erzeugt eine Folge von Signalen, die ein Taktsignal CST1 bis Taktsignal CST5 beinhalten.

Die Signale P0CSLD oder P1CSLD werden an die Logik 3-6 angelegt, um Signal PXCSLD zu erzeugen. Signal PXCSLD gibt sowohl Register 4-14 als auch 6-14 frei. Auch erzeugt Signal P0CSLD Signal P0TOCS, um die Ausgabe von Register 4-14 freizugeben. Das Signal P1CSLD erzeugt Signal P1TOCS, um den Ausgang von Register 6-14 freizugeben. Das Taktsignal CST1 taktet die Anfangs-Adresse oder die Steuerspeicher- Datenwörter in die Register 4-14 und 6-14. PXCSLD erzeugt auch das Taktsignal CSACLK zur Zeit CST5.

Die Signale P0LADD und P1LADD werden an die Lade-Steuerung 3-6 angelegt, um das Lade-Adreßsignal PXLADD zur Zeit CST1 zu erzeugen, wenn jedes von beiden Signalen und Signal PXCSLD gesetzt ist. Zähler 3-4 wird durch Signal PXLADD geladen und durch Taktsignal CSACLK inkrementiert. Die Schreib-Freigabe-Signale CSW1 bis einschließlich CSW4 werden sequentiell auf einer Doppelwort-Übertragung vom Hauptspeicher 10 bis 12 alle CST4-Zeiten erzeugt. Die Signale werden durch einen internen Zähler aufbereitet, der zur CST5-Zeit durch das Taktsignal CSACLK fortschreitet.

Die Ladeoperation wird auf folgende Weise implementiert. Anfangs erzeugte die SMF 20 ein System-Lösch-Signal BSMCLR, das während der System-Lösch-Operation ein Master-Synchronisationssignal P0MSYN und P1MSYN erzeugt und diese Signale sperrt, wenn die System-Lösch-Operation abgeschlossen ist. Dies verhindert den Betrieb von CPU0 4-2 und VMMU0 4-4 und CPU1 6-2 und VMMU1 6-4. Unterstellt Port 0 ist verfügbar, dann erzeugt die SMF 20 einen Steuerspeicher- Ladebefehl mit einer Kanalnummer mit hexadezimal 00 und einen Funktionskode mit hexadezimal 0D. Die Systembus-Schnittstelle 2-10A spricht auf die hexadezimale Kanalnummer und die Funktionskode-Signale an, um das Lade-Steuerspeicher-Signal P0CSLD zu erzeugen, das die Port-0-Logik aufbereitet. Ladesignal PXCSLD und Lade- und Prüfsignal PXCSLV werden ihrerseits durch Ladesteuerung 3-6 erzeugt.

Die SMF 20 sendet dann einen Befehl mit einer Kanalnummer mit hexadezimal 00, einen Funktionskode mit hexadezimal 11 und eine Anfangs-Steuerspeicher-Adresse, typischerweise hexadezimal 0000. Die Funktionskode-Signale werden an CNTL 0 2-15 angelegt, um die Signale P0LADD und P0LSYN zu erzeugen. Die Adresse wird über Register 4- 14, Register 2-14, Register 2-12, FIFO 2-34, Empfänger 2-30 und Systembus 2 im Zähler 3-4 gespeichert.

Die SMF 20 sendet dann eine Serie von Lesebefehlen an Hauptspeicher 10 bis 12 mit der hexadezimalen Kanalnummer 00 des Ports 0 als initiierendes Subsystem. Der Lesebefehl beinhaltet die Speicherstellen von Hauptspeicher 10 bis 12, in der ein Doppelwort der Daten des Steuerspeichers 3-2 gespeichert ist.

Hauptspeicher 10 bis 12 sendet einen zweiten halben Buszyklusbefehl, der eine Kanalnummer mit hexadezimal 00 in dem Adreßfeld und 32 Bits in dem Datenfeld hat. Die Daten werden über Register 2-14, Register 2-12, FIFO 2-34, Empfänger 2-30 und Systembus 2 durch Register 4-14 empfangen. Zähler 3-4 legt die Adresse des Platzes in Steuerspeicher 3-2 an, die das Doppelwort speichern wird. Der Zähler 3-4 inkrementiert einmal für jedes vom Register 4-14 empfangene Doppelwort. Zähler 3-4 erzeugt ein Schreib-Freigabe-Signal CSWE1 für das erste Doppelwort, ein Schreib-Freigabe-Signal CSWE2 für das zweite Doppelwort, ein Schreib-Freigabe-Signal CSWE3 für das dritte Doppelwort und ein Schreib-Freigabe-Signal CSWE4 für das vierte Doppelwort.

Das erste Doppelwort wird in Bit-Plätzen 00 bis 31 von Steuerspeicher 3-2, das zweite Doppelwort wird in Bit-Plätzen 32 bis 63, das dritte Doppelwort wird in Bit-Plätzen 64 bis 95 und die Abschnitte des vierten Doppelwortes werden in Bit-Plätzen 96 bis 103 gespeichert. Jedes 104- Bit-Wort umfaßt ein Paritätsbit, das im Steuerspeicher 3-2 gespeichert ist. Die SMF 20 sendet eine ausreichende Anzahl von Befehlen zum Lesen von Hauptspeicher 10 bis 12, um den Steuerspeicher 3-2 mit den benötigten Steuerspeicher-Wörtern zu laden.

Verifizier-Modus

Das Master-Löschsignal BSMCLR hatte vorher die Signale P0MSYN und P1MSYN an ihrer zyklischen Funktion gehindert, wodurch die Operation von CPU0 4-2, VMMU0 4-4 und CPU1 6-2, VMMU1 6-4 gesperrt wird.

Jedoch aktivieren an die Steuerlogik 3-6 gelegte Signale P0LSYN und P1LSYN die Taktsignale CST1 und CST4 und CST5 des Lademodus.

Nachdem die benötigte Anzahl von Doppelwörtern vom Hauptspeicher 10 bis 12 unter Steuerung des Speicher-Lesebefehls der SMF 20 gesendet ist, erzeugt die SMF 20 den Rücksetz-Ladebefehl, der den Funktionskode mit hexadezimal 0F spezifiziert. Dies setzt Signal PXCSLD zurück, da Signal P0CSLD in Steuerung 0 2-15 zurückgesetzt ist. Jedoch bleibt das Lade- und Prüfsignal PXCSLV gesetzt. Signal PXCSLV war am Anfang der Ladeoperation durch Ladesteuerung 3-6 gesetzt, wenn entweder Signale P0CSLD oder P1CSLD von Steuerung 0 2-15 oder Steuerung 1 2-25 gesetzt worden waren.

Wenn das Ladesignal PXCSLD zurückgesetzt ist und Prüfsignal PXCSLV gesetzt bleibt. Die SMF 20 erzeugt den On-Line-Befehls-Funktionskode hexadezimal 0B des Ports, um Signal P0MSYC oder P1MSYN jeweils in CNTL 0 2-15 oder CNTL 1 2-25 zu erzeugen. Diese an Taktgeber 3-8 angelegten Signale starten die CPU-Taktkette, die Taktsignale P0TM4 und P1TM4 umfaßt; dann wird der Adreßzähler 3-14 auf hexadezimal 0000 durch das Zähler-Löschsignal PXACLR von Ladesteuerung 3-6 beim ersten Auftreten des Signals P0MSYN oder P1MSYN zurückgesetzt. Dies erzeugt das Signal P0CSVF oder Signal P1CSVF um die Rücksetzoperation des Adreßzählers 3-4 zu beenden, wenn Signal PXACLR zurückgesetzt ist und Taktsignal CSACLK zu takten beginnt. Während der Prüfoperation ist das Taktsignal CSACLK bei jedem Taktsignal aktiviert, um Zähler 3-4 zur Zeit P0CM4 durch Prüfsignal PXCSLV zu inkrementieren, nachdem Ladesignal PXCSLD zurückgesetzt ist.

Der Prüfmodus besteht so lange, bis der Adreßzähler 3-4 ein CSDONE- Signal erzeugt, das anzeigt, daß Adreßzähler 3-4 den Inhalt jedes Platzes von Steuerspeicher 3-2 gelesen hat und die Parität jedes Wortes geprüft hat. Fehlersignal PXVFER wird erzeugt, wenn ein Paritätsfehler erkannt wird. Dies veranlaßt die aktiven Signale P0CSBY und P1CSBY mit der Anzeige fortzufahren, daß der Port belegt ist, und sie bleiben in dem betreffenden Syndrom-Register 2-13 oder 2-23 gespeichert.

Die SMF wartet 10 Millisekunden auf den Abschluß der Prüfoperation und sendet dann den Befehl, die Syndromregister 2-13 oder 2-23 zu lesen. Der Befehl beinhaltet den Funktionskode hexadezimal 00. Wenn keine Paritätsfehler auftreten, wird das Belegt-Bit in dem autorisierten Syndrom-Register zurückgesetzt werden und Normaloperation wird fortgeführt.

Die Prüfoperation ist abgeschlossen, wenn das CSDONE-Signal das Rücksetzsignal P0CSRT oder P1CSRT des Steuerspeichers zur Zeit des Taktsignals P0TM4, abhängig davon, ob Port 0 oder Port 1 gewählt war, erzeugt. Rücksetzsignal P0CSRT oder P1CSRT setzt das Prüfsignal PXCSLV und Signale P0CSVF oder P1CSVF und P0CSBY und P1CSBY zurück.

Wenn die SMF 20 findet, daß das Belegt-Bit noch gesetzt ist, wenn das Syndrom-Register gelesen wird, dann wird die geeignete Firmware-Sequenz von Fig. 6 verfolgt. Das bedeutet, es kann noch einmal mit dem Port versucht werden; oder es kann noch einmal mit dem anderen Port zu dem CSS versucht werden.

Befehlsformate

Die Fig. 5A bis einschließlich 5E zeigen die Formate der verschiedenen Befehle, die in der bevorzugten Ausführungsformen benutzt werden.

Fig. 5A zeigt einen Lesebefehl für einen Port. Die Bestimmungs-Kanalnummer für die CPU ist in Bit-Plätzen 8-17 des Adreßbus 2-6 spezifiziert. Der Funktionskode ist in Bit-Plätzen 18-23 des Adreßbus 2-6 spezifiziert. Die Kanalnummer der SMF 20, das anfordernde Subsystem, wird durch die Bit-Plätze 0-9 des Datenbus 2-4 spezifiziert. Signale BSYELO und BSMREF des Steuerbus 2-2 auf "1" bzw. "0" zeigen an, daß dies ein von der SMF 20 erzeugter Befehl ist. Signal BSDBWD zeigt an, daß 32 Datenbits, ein Doppelwort, auf dem Datenbus 2-4 erscheinen. Signal BSDBPL zeigt an, daß das Doppelwort das letzte Datenwort dieses Befehls ist. Die Verwendung dieses Befehls als ein Lesebefehl für ein Syndrom-Register wird in Fig. 7 gezeigt. Die CPU- Kanalnummer ist hexadezimal 00, die Port 0 adressiert. Der Funktionskode ist hexadezimal 00, der eine Leseoperation für ein Syndrom-Register einleitet. Die SMF-Kanalnummer hexadezimal 0F (positioniert als hexadezimal 03C0) ist die Bestimmung des Inhalts des Syndrom-Registers, welcher als zweiter halber Buszyklus- (second half bus cycle = SHBC) Befehl an die SMF 20 gesandt wird. Die Kanalnummer der SMF, hexadezimal 0F, ist in Bit-Plätzen 8-17 des Adreßbus 2-6 enthalten und der Inhalt der Syndrom-Register von Port 0 erscheint in Bit-Plätzen 0-31 des Datenbus 2-4. Signale BSWRIT des Befehlsbus 2-2 spezifizieren eine Bus-Schreiboperation, und BSSHBC spezifiziert, daß dies die Antwort auf eine Anforderung (ein zweiter halber Buszyklus) ist.

Fig. 5B zeigt einen Schreibbefehl für einen Port. Eine Anzahl von Befehlen, die im Ablaufdiagramm von Fig. 7 gezeigt sind, sind in dem Format von Fig. 5B. Der Lademodus-Befehl, Funktionskode hexadezimal 0D, schließt ein Datenfeld von hexadezimal 0000 0000 ein. Der Befehlsfunktionskode zum Laden des Adreßzählers hexadezimal 11 umfaßt ein Datenfeld, das die Adresse der Startplätze von Steuerspeicher 3-2, in die das erste 104-Bit-Wort des Steuerspeichers geschrieben ist, speichert. Der Adreßzähler 3-4 wird gewöhnlich mit hexadezimal 0000 geladen. Wenn jedoch Hauptspeicher 10 bis 12 einen Batteriepuffer hat, kann die Startadresse variieren. Dies versetzt das System in die Lage, gerade eine Seite des Hauptspeichers 10 bis 12 in Steuerspeicher 3-2 wiederherzustellen. Der Befehlsfunktionskode zum Rücksetzen des Lademodus hexadezimal 0F umfaßt ein Datenfeld von hexadezimal 0000 0000. Der On-Line- Befehlsfunktionskode 0B des Ports umfaßt ein Datenfeld von hexadezimal 0000 0000.

Signale BSMREF und BSYELO auf "0" bzw. "1" zeigen einen von der SMF 20 erzeugten Befehl an. Signal BSWRIT auf "1" zeigt einen Bus- Schreibbefehl an.

Fig. 5C zeigt das Format eines Befehls SMF an Hauptspeicher und den zweiten halben Buszyklus als Antwort auf diesen Befehl. Das 32-Bit-Feld 0-23 des Adreßbus 2-6, A-H, speichert den Adreßplatz des Hauptspeichers 10 bis 12 ein. Die Bits 0 bis 9 des Datenbus 2-4 speichern die Kanalnummer des Ziel-Subsystems, in der bevorzugten Ausführungsform eine Kanalnummer einer CPU. Signal BSMREF des Befehlsbus 2-2 zeigt einen Referenzbefehl für den Speicher an. Der zweite halbe Buszyklusbefehl wird in Hauptspeicher 10 bis 12 eingeleitet. Die Bits 0-31 des Datenbus 2-4 enthalten den Inhalt des adressierten Platzes. Die bits 8-17 des Adreßbus 2-6 enthalten die Kanalnummer der Ziel-CPU. Die Signale des Befehlsbus 2-2 BSMREF und BSSHBC auf logisch NULL beziehungsweise EINS zeigen an, daß dieser Befehl durch Hauptspeicher 10 bis 14 in Antwort auf den Speicher-Anforderungs-Befehl erzeugt wird.

Fig. 5D zeigt das Format eines E/A-Ausgabebefehls, der die Kanalnummer des E/A-Geräts, in diesem Fall ein Plattenlaufwerk oder eine Floppy Disk, und einen Funktionskode einschließt. Die Bits des Datenbus 2-4 beinhalten den Platz der Daten auf der Platte. Dieser Befehl hat zwei Formate, ein Format für Konfiguration A mit einem Funktionskode von hexadezimal 11 und einem Format für Konfiguration B mit einem Funktionskode von hexadezimal 13.

Die Bits des Datenbus 2-4 der Konfiguration A beinhalten eine Zylindernummer, wenn das Gerät eine Festplatte ist, oder Zylinder- und Spurnummer, wenn das Gerät eine Floppy Disk ist.

Die Bits des Datenbus 2-4 von Konfiguration B beinhalten die Sektor- und Spurnummer für die Festplatte oder die Sektornummer und Byte- Dichte für die Floppy Disk.

Der E/A-Ausgabebefehl, der einen Funktionskode von hexadezimal 07 hat, zeigt durch die Bits des Datenbus 2-4 an, ob dies eine Such- oder eine Auto-Suchoperation ist. Auto-Suchen ruft ein Suchen, dann Lesen auf.

Das Signal des Befehlsbus 2-2 BSWRIT zeigt eine Bus-Schreiboperation an.

Fig. 5E zeigt einen 2-Zyklus-Ausgabebefehl Eingabe-/Ausgabe-Laden (input/output load = IOLD). Für den ersten Zyklus speichern Bit A-H, 0-7 des Adreßbus 2-6 die 16 höherrangigen Adreßbits und die Bits 0-15 des Datenbus 2-4 speichern die 16 niederrangigen Adreßbits. Die höherrangigen und niederrangigen Adreßbits zeigen die Startadresse in Hauptspeicher 10 bis 12 an, die das erste, von der Platte zum Hauptspeicher übertragene Datenbyte speichern wird.

Für den zweiten Zyklus speichern die Bits des Datenbus 2-4 den Bereich, d. h., die gesamte Anzahl der Bytes, die Hauptspeicher 10 bis 14 von der Platte erhalten wird.

Ein Funktionskode von hexadezimal 09 spezifiziert im ersten Zyklus des IOLD-Ausgabebefehls und ein Funktionskode von hexadezimal 0D spezifiziert den zweiten Zyklus des IOLD-Ausgabebefehls. Es wird auch die Kanalnummer des E/A-Geräts spezifiziert. Das Signal BSWRIT des Befehlsbus 2-2 spezifiziert eine Bus-Schreiboperation.

Fig. 6 zeigt das Blockdiagramm der Firmware, die den Steuerspeicher 3-2 der CSS 3 bis 5 lädt. Die Firmware für den Steuerspeicher wird entweder auf eine Festplatte, eine Wechselplatte oder eine Floppy Disk gespeichert und wird unter Steuerung der SMF 20 an Hauptspeicher 10 bis 12 übertragen. Wenn nach der Übertragung an den Hauptspeicher keine Fehler gefunden wurden, dann wird die Steuerspeicher-Firmware unter Steuerung der SMF 20 zu dem Steuerspeicher 3-2 übertragen. Wenn sowohl die CSS 3 als auch 5 das Laden der selben Firmware benötigen, dann werden beide zuerst geladen, und dann führen beide, nach Empfang ihrer jeweiligen Port-On-Line-Befehle, einen Zulässigkeitstest aus. Wenn sowohl CSS 3 als auch 5 nicht dieselbe Firmware geladen haben, dann wird der Steuerspeicher von CSS 3 geladen und geprüft und dann wird der Steuerspeicher von CSS 5 geladen und geprüft.

Die SMF 20 besitzt eine Registrierung der Revision der Steuerspeicher- Firmware, die jedes CSS benötigt, und verifiziert, daß die richtige Revision der Steuerspeicher-Firmware in seine CSS geladen ist. Man kann daher sehen, daß unterschiedliche CSS eine unterschiedliche Leistungsfähigkeit besitzen können, abhängig von der besonderen Revision der Steuerspeicher-Firmware, die es erhält. Die SMF 20 speichert die Revisionszahl der Hardware von jeder CSS. Die Hardware-Revision bestimmt die Firmware-Revision, die benutzt wird, den Steuerspeicher dieses CSS zu laden.

Bezugnehmend auf Fig. 6, startet Block 100 die Firmware-Routine, die in dem ROM der SMF 20 gespeichert ist.

Block 101 prüft, ob der Hauptspeicher 10 bis einschließlich 12 batteriegepuffert ist, und speichert diese Information in einem Platz des RAM 20- 44 der SMF.

Block 102 speichert einen Zeiger in ein Register in den SMF-Mikroprozessor 20-2. Der Zeiger ist der Platz in dem SMF-RAM 20-44, der die Steuerinformation für nachfolgenden Gebrauch speichert. Die SMF 20 zeigt dann die Worte RAMWARE STARTED auf der Anzeigekonsole 34 der SMF, den Hilfsdrucker 32 und/oder der Fernbedienungskonsole 42 an.

Block 106 prüft die Ports, die verfügbar sind. Die Systembus-Schnittstelle jedes CSS hat zwei Ports. Die zwei in Fig. 1 gezeigten CSS 3 und 5 würden vier Ports besitzen. Block 106 sendet einen Lesebefehl zu jedem Port, damit dieser den Inhalt des Syndrom-Registers zu dem SMF 20 sendet. Der in dem Syndrom-Register vorhandene Bitsatz zeigt an, daß die CPU verfügbar ist. Port 0 wird durch eine Kanalnummer von hexadezimal 0, Port 1 durch eine Kanalnummer von hexadezimal 01, Port 2 durch eine Kanalnummer von hexadezimal 02 und Port 3 durch eine Kanalnummer von hexadezimal 03 identifiziert.

Block 106 liest auch die Hardware-Revisions-Bits des Syndrom-Registers. Diese Bits zeigen die Revision an, für die das CSS angelegt ist. Die Bits werden in dem RAM 20-44 der SMF für spätere Verwendung gespeichert.

Entscheidungsblock 108 bestimmt, ob irgendwelche Ports verfügbar sind, und wenn nicht, bricht er die Operation durch Block 110 ab. Eine Meldung wird angezeigt werden, die darauf hinweist, daß ein Problem vorhanden ist, das die Intervention eines Bedieners erfordert.

Block 112 wählt die Kanalnummer der Platte aus, die die Steuerspeicher- Firmware speichert. Die SMF 20 speichert diese Kanalnummer in eine Stelle des SMF-RAM 20-44. Es gibt die Option, einen von zwei Kanälen der CSS zu verwenden, um die vom Hauptspeicher 10 bis 12 geladene Firmware zu empfangen. Wenn der erste Kanal (Port) nicht verfügbar ist, dann wird der Versuch, die Firmware zu laden, durch den anderen Kanal (Port) gemacht.

Block 114 speichert die Startadresse des Hauptspeichers in den SMF- RAM 20-44. Dies ist der Platz im Hauptspeicher, in den das erste, empfangene Wort der Steuerspeicher-Firmware gespeichert wird. Typischerweise würde die Adresse hexadezimal 1000 sein. Jedoch kann irgendeine Adresse gespeichert werden, insbesondere, wenn der Hauptspeicher 10 bis 12 batteriegepuffert ist.

Block 116 sendet eine Anzahl von Befehlen von der SMF zu dem Platten- oder Diskettenkontroller, der die Platte steuert, die die Steuerspeicher-Firmware speichert. Diese Befehle beinhalten Information, die die Zylindernummer, die Spurnummer, die Sektornummer und, wenn die Information auf einer Floppy Disk gespeichert ist, auch die Byte-Dichte anzeigt. Die Nummer der Firmware-Revision wird durch Verwendung der Revisionsnummer der CSS-Hardware aus einer Nachschlagetabelle, die von der Platten- oder Disketteneinrichtung gelesen wird, gefunden. Diese wird verwendet, um den Pfadnamen der geladenen Firmware, der auf der Einrichtung gespeichert ist, zu erzeugen. Dieser Pfadname wird durch den Plattenkontroller verwendet, um die von der Firmware geladenen Information, die auf der Oberfläche der Einrichtung gespeichert ist, zu lokalisieren.

Wenn der Hauptspeicher batteriegepuffert ist, werden die Befehle zur Übertragung von Seiten aufrufen, typischerweise 2048 Bytes pro Seite. Wenn der Hauptspeicher nicht batteriegepuffert ist, dann werden die Befehle zur Übertragung aller Worte der Steuerspeicher-Firmware aufrufen.

Wenn die Nummer der Firmware-Revision gefunden ist, dann werden die Worte der Steuerspeicher- Firmware im Hauptspeicher 10 bis 12 gespeichert werden, beginnend bei typischerweise Adresse hexadezimal 1000.

Wenn Batteriepufferung vorhanden ist, dann werden irgendwelche Fehler bewirken, daß genau die fragliche Seite von der Platte übertragen wird. Wenn keine Batteriepufferung vorhanden ist, dann ist die ganze Übertragung zweifelhaft, wenn irgendwelche Fehler gefunden wurden. Die Anzeigekonsole 34 wird in Block 120 anzeigen, daß die Steuerspeicher- Firmware vollständig in den Hauptspeicher 10 bis 14 geladen ist.

Entscheidungsblock 118 führt zu einem Abbruch über Ausgang 110, wenn in Block 116 die Firmware mit der richtigen Revisionsnummer nicht auf der Platte gefunden wurde.

Block 122 setzt das Wiederholungsbit in einem Register in dem Mikroprozessor 20-2 der SMF, um anzuzeigen, daß dies der erste Versuch beim Laden des Steuerspeichers 3-2 ist. Block 122 zeigt dann auf der Anzeigekonsole 34 die Kanalnummer aller CSS-Ports an, die verfügbar sind.

Entscheidungsblock 124 bricht zum Ausgang 110 ab, wenn keine Ports verfügbar sind.

Block 126 wird die Kanalnummer des Ports der CSS auswählen und anzeigen, durch den die Bytes der Steuerspeicher-Firmware vom Hauptspeicher 10 bis 12 übertragen werden. Die Rangfolge der Kanalnummern ist hexadezimal 00, 02, 01, 03. Dies gibt zwei Pfade zum Laden jedes Steuerspeichers.

In Block 128 sendet die SMF 20 einen Befehl zu Hauptspeicher 10 bis einschließlich 12, um seine Status- und ID-Register zu lesen und zu löschen. Das Statusregister des Hauptspeichers ist auf diese Weise für das Speichern der Ergebnisse weiterer Diagnosen gelöscht.

Entscheidungsblock 130 zeigt einen Abbruch zu Ausgang 110 an, wenn die Status- und ID-Register des Hauptspeichers nicht gelöscht werden können. Dies zeigt einen Hauptspeicher-Fehler an, der die Intervention eines Bedieners benötigt.

Block 132 setzt ein Steuerwort für den Speicherstatus, das in dem RAM 20-44 der SMF gespeichert ist. Die Bits zeigen an, ob ein neuer Speichertyp installiert ist, ob der Speicher verschachtelt ist, ob ein unkorrigierbarer Fehler in Hauptspeicher 10 bis 12 auftrat, ob dies der erste Durchlauf der Firmware war, ob die Wiederholung fehlschlug und, ob dies ein wiederholtes Rückladen des Hauptspeichers ist.

Block 134 startet die Übertragung von Bytes der Steuerspeicher-Firmware von Hauptspeicher 10 bis 12 zu dem Steuerspeicher 3-2 durch den ausgewählten Port. Die SMF 20 erzeugt zuerst einen Befehl, die Lademodus-Sequenz zu starten. Die SMF erzeugt dann einen Befehl, der die Startadresse des Steuerspeichers, typischerweise hexadezimal 0000, bereitstellt. Die Startadresse kann irgendein Wert für den Fall sein, daß genau ein Teil des Steuerspeichers geladen ist.

Entscheidungsblock 136 verzweigt sich, um Block 177 zu wiederholen, wenn keine Antwort von der adressierten CPU kommt. Wenn nach einer Wiederholung noch immer keine CPU-Antwort erfolgt, dann wird die Firmware zu dem nächsten verfügbaren Port, das ist Port 0 bis Port 1 oder Port 2 bis Port 3, abzweigen.

Wenn die CPU-Operation durch Port 0 nach einer Wiederholung nicht antwortet, dann wird ein Master-Löschsignal gesendet, das den CPU-Takt stillegt, und eine Wiederholung wird durch Port 1 ausgeführt.

Block 138 überträgt Steuerspeicher-Bytes von Hauptspeicher 10 bis 12 zum Steuerspeicher. Die SMF 20 sendet einen Lesebefehl für den Hauptspeicher an Hauptspeicher 10 bis 12, der die Kanalnummer der CPU beinhaltet. Deswegen wird während des zweiten halben Buszyklus der Befehl von Hauptspeicher 10 bis 12, der die vier Datenbytes für den Steuerspeicher beinhaltet (eine Doppelwort-Übertragung), durch die adressierte CPU gesendet und empfangen.

Die SMF 20 wartet eine vorbestimmte Zeit, typischerweise 7 Mikrosekunden, auf die CPU, um das Doppelwort zu empfangen und irgendwelche Wiederholungen für einen Buszyklus auszuführen.

Die SMF 20 wird ein Rückmeldesignal von Hauptspeicher 10 bis 12 empfangen, um den Befehl zu beenden, da die SMF 20 die Datenworte nicht aus dem Speicher erhalten wird.

Normaloperation bedeutet für eine Einheit, einen Speicher-Anforderungsbefehl mit einer Hauptspeicher-Adresse und seiner eigenen Kanalnummer, die der Hauptspeicher quittiert, auszusenden. Der Hauptspeicher erzeugt einen zweiten halben Buszyklusbefehl mit dem Inhalt des adressierten Hauptspeicherplatzes und der Kanalnummer der sendenden Einheit. Die empfangende Einheit sendet ein Rückmeldesignal, das durch den Hauptspeicher empfangen wird, das anzeigt, daß die Daten empfangen wurden.

Block 140 liest den Status des Hauptspeichers und die ID-Register, um auf Fehler bei der Übertragung vom Hauptspeicher 10 bis 12 zum Steuerspeicher 3-2 zu prüfen. Wenn der Hauptspeicher-ID einen verschachtelten Speicher anzeigt, dann wird das Statuswort jedes Speichers untersucht.

Entscheidungsblock 142 leitet eine Wiederholung durch Abzweigen nach Block 144 ein, wenn kein Fehler vorhanden ist; wenn ein Fehler vorhanden ist, bricht Entscheidungsblock 142 durch Block 110 ab.

Der Block 144 speichert die Fehler- und Wiederholungsbits vom Hauptspeicher 10 bis 12 in RAM 20-44 der SMF.

Der Entscheidungsblock 148 testet auf einen unkorrigierbaren (roten) Fehler des Hauptspeichers und Block 146 zeigt das Auftreten des roten Fehlers auf der Anzeigekonsole 34 an.

Entscheidungsblock 160 testet, ob das Wiederholungsbit zum Neuladen des Hauptspeichers gesetzt ist und bricht, wenn dies der Fall ist, die Operation in Block 168 ab.

Block 162 setzt das Wiederholungsbit zum Neuladen des Speichers, wenn es nicht vorher gesetzt war.

Block 164 lädt dann wieder Hauptspeicher 10 bis 12 von der Platte, wie in Block 116. Wie zuvor, wenn der Hauptspeicher batteriegepuffert war, erfolgt der Transfer blockweise; deswegen ist die Startadresse des Hauptspeichers diejenige der vorherigen Seite, die fehlerhaft war. Wenn keine Batteriepufferung vorliegt, dann wird die gesamte Steuerspeicher-Firmware von der Platte zu Hauptspeicher 10 bis 12 gesendet.

Entscheidungsblock 166 testet erneut, daß die Daten auf Platte gefunden wurden. Wenn nicht, dann verursacht Block 168 eine Ramware-Lade- Abbruch-Anzeige und die Firmware geht in Block 259 ab. Man beachte, daß jeder Abbruch des Blocks 110 durch Blöcke 168 und 259 abgeht.

Wenn Entscheidungsblock 166 anzeigt, daß die Daten auf der Platte gefunden und in Hauptspeicher 10 bis 12 gespeichert wurden, dann zeigt Block 170 den Umstand an, daß Hauptspeicher 10 bis 12 geladen ist. Block 133 zweigt dann zu Block 134 ab und die Operation wird wiederholt.

Wenn Entscheidungsblock 148 anzeigt, daß kein roter Fehler auftrat, dann setzt Block 150 das Wiederholungsbit zum Rückladen des Hauptspeichers zurück, wenn es gesetzt war.

Entscheidungsblock 152 zeigt an, ob der Hauptspeicher 10 bis 12 eine neue Art von Speicher ist, und, wenn dies so ist, testet Entscheidungsblock 154 das Wiederholungs-Fehlschlagsbit aus Hauptspeicher 10 bis 12, das anzeigt, ob dies ein Wiederholungsfehlschlag ist, Daten zu senden; dann initiiert Block 177 einen Neuversuch.

Wenn Entscheidungsblock 152 einen Speicher alter Art anzeigt, der kein Wiederholungsbit hat, dann sendet die SMF 20 in Block 156 einen Befehl, das Syndromregister des Ports, der zum Laden benutzt worden war, zu lesen.

Entscheidungsblock 158 testet, ob der Inhalt des Syndromregisters durch die SMF 20 empfangen wurde. Wenn der Inhalt nicht empfangen wurde, dann initiiert Block 177 eine Wiederholung. Andernfalls testet Entscheidungsblock 172 das Ladefehler-Bit des Syndromregisters. Wenn es gesetzt ist, dann zeigt Block 176 den Ladefehler auf der Anzeigekonsole 34 an.

Entscheidungsblock 178 startet die Wiederholungsoperation durch Testen, ob das Wiederholungsbit in der Stelle des SMF-RAM 20-44 gesetzt ist. Wenn das Wiederholungsbit nicht gesetzt ist, dann setzt Block 180 das Wiederholungsbit, Block 182 zeigt "port retry" an und Block 133 zweigt zu Block 134 ab, um das Laden des Steuerspeichers 3-2 zu wiederholen.

Wenn der Entscheidungsblock 178 anzeigt, daß das Wiederholungsbit gesetzt ist, dann zeigt Block 184 "port retry failed and is aborted" auf der Anzeigekonsole 34 an.

Block 186 setzt dann das Wiederholungsbit des Ports zurück und Block 188 sendet ein Master-Löschsignal zu dem aktiven Port, um seine CPU abzuschalten.

Block 190 entfernt die Port-Kanalnummer des gescheiterten Ports von der Liste der verfügbaren Ports.

Entscheidungsblock 192 testet, ob der zweite Port des CSS gewählt war. Wenn nicht, dann wählt Block 194 den zweiten Port.

Entscheidungsblock 196 testet, ob der zweite Port verfügbar ist. Wenn nicht, testet der Entscheidungsblock 198, ob das zweite CSS einen verfügbaren Port hat. Wenn ein Port des zweiten CSS nicht verfügbar ist, dann testet Entscheidungsblock 208, ob irgendein Port verfügbar ist. Wenn keine Ports verfügbar sind, dann verursacht Block 121 ein Abzweigen zu Block 122, der anzeigt, daß keine Ports verfügbar sind.

Entscheidungsblock 123 testet, daß keine Ports verfügbar sind, und Block 110 verursacht einen Abbruch des Ladens.

Wenn Entscheidungsblock 198 anzeigt, daß das zweite CSS einen verfügbaren Port hatte, dann testet Entscheidungsblock 200, ob der Port gewählt war. Wenn der Port vorher gewählt worden war, dann wählt Block 207 den Port mit der nächstniedrigeren Kanalnummer.

Wenn Entscheidungsblock 200 anzeigt, daß der Port von dem zweiten CSS nicht vorher gewählt war, dann wählt Block 202 den Port des zweiten CSS, der die niedrigere Kanalnummer hat.

Entscheidungsblock 204 testet, ob dieser Port verfügbar ist. Wenn nicht, wählt Block 206 den anderen Port des zweiten CSS.

Wenn die Entscheidungsblöcke 196 oder 204 anzeigen, daß ein Port verfügbar ist oder, wenn Block 206 einen Port wählte, dann speichert Block 216 diese Port-Kanalnummer in den SMF-RAM 20-44.

Wenn Entscheidungsblock 210 findet, daß Steuerspeicher 3-2 nicht vollständig geladen ist, dann wird Block 212 veranlassen, daß die nächste Datenseite aus dem Hauptspeicher 10 bis 12 gelesen und in den Steuerspeicher 3-2 gespeichert wird, wenn der Hauptspeicher 10 bis 12 batteriegepuffert war. Wenn nicht, wird dann die gesamte geladene Steuerspeicher-Firmware von Platte gelesen und im Hauptspeicher gespeichert.

Block 214 erhält die Kanalnummer des aktiven Ports und Block 216 speichert die Kanalnummer in SMF-RAM 20-44.

Block 218 druckt die Kanalnummer des gewählten Ports und Block 133 zweigt zu Block 134 ab, um das CSS in Lademodus zu setzen und die Startadresse des Steuerspeichers in Zähler 3-4 zu speichern.

Wenn der Entscheidungsblock 210 testet, daß die Steuerspeicher geladen sind, dann setzt Block 220 einen Arbeitskanal in dem RAM 20-44 der SMF auf, um eine Verifizieroperation für den Steuerspeicher vorzubereiten.

Block 222 startet die Verifizieroperation durch Senden von zwei Befehlen, einen Befehl zum Rücksetzen des Lademodus, der einen Funktionskode von hexadezimal 0F besitzt, und einen Befehl Port On-Line, der einen Funktionskode von hexadezimal 0B hat. Die CPU liest die Daten des Steuerspeichers aus, prüft die Parität und bildet eine Prüfsumme.

Entscheidungsblock 224 prüft, daß die Systembusschnittstelle die Befehle quittiert. Wenn eine Fehlerantwort empfangen wurde, dann zweigt Block 177 zu Block 178 für eine Wiederholungsoperation ab. Wenn kein Fehler im Entscheidungsblock 224 erfolgte, dann setzt Block 226 weitere Operation der SMF 20 für 10 Millisekunden aus, um sicherzustellen, daß die Verifizierungsoperation durch die CPU abgeschlossen ist.

Block 228 sendet einen Befehl zu dem aktiven Port, die Inhalte der Syndromregister zu der SMF 20 zu senden.

Entscheidungsblock 230 testet, daß der Inhalt des Syndromregisters durch die SMF 20 empfangen wurde. Wenn der Inhalt empfangen wurde, dann testet Entscheidungsblock 232, ob das Belegtbit gesetzt ist. Wenn der Inhalt des Syndromregisters nicht empfangen wurde oder das Belegtbit gesetzt wurde, dann zeigt Block 244 "failed verify" auf der Anzeigekonsole 34 an und Block 246 sendet ein Master-Löschsignal zu dem aktiven Port. Das Belegtbit bleibt besetzt, wenn die Verifizierungsoperation nicht erfolgreich beendet wurde.

Entscheidungsblock 248 testet, ob das Fehler-Wiederholungsbit in dem SMF-RAM 20-44 gesetzt ist. Wenn das Fehler-Wiederholungsbit gesetzt ist, das anzeigt, daß dies der zweite Verifizierungsfehlschlag ist, dann setzt Block 252 das Port-Verfügbarkeitsbit in dem SMF-RAM 20-44 zurück und die SMF 20 sieht sich nach einem anderen Port um. Wenn Entscheidungsblock 248 anzeigt, daß das Wiederholungsbit für Verifizierfehler nicht gesetzt ist, dann setzt es Block 250.

Wenn Entscheidungsblock 232 anzeigt, daß das Belegtbit nicht gesetzt ist, dann zeigt Block 234 "port loaded" auf der Displayconsole 34 an. Block 236 setzt das Port-Benutztbit in dem SMF-RAM 20-44 zur späteren Verwendung.

Block 238 setzt die Kanalnummer des Ports zurück, durch den der Steuerspeicher erfolgreich geladen wurde.

Block 240 setzt das erste Port-Flag zurück, das in dem SMF-RAM 20-44 gespeichert ist. Entscheidungsblock 242 prüft, ob alle der Port-Kanalnummern benutzt wurden. Wenn nicht, dann zweigt Block 227 zu Block 228 ab, um die Syndromregister der anderen Ports zu prüfen.

Wenn der Entscheidungsblock 242 anzeigt, daß die Port-Flags, die in dem SMF-RAM 20-44 gespeichert sind, nicht alle gelöscht sind, dann zweigt Block 227 zu Block 228 ab, um das Syndromregister zu lesen. Wenn die Port-Flags alle gelöscht sind, testet der Entscheidungsblock 254 das SMF-RAM, um zu bestimmen, ob irgendwelche Ports für eine Wiederholung verfügbar sind. Wenn ein Port für eine Wiederholung verfügbar ist, dann zweigt Block 121 zu Block 122 ab, um eine Wiederholung des Ports zu starten, der eine Wiederholung erfordert, der die niedrigste Kanalnummer hat.

Wenn in Entscheidungsblock 254 kein Port eine Wiederholung erfordert; d. h., alle Steuerspeicher sind geladen, dann speichert Block 256 die Information, daß die Port-Kanalnummer geladen wurde.

Entscheidungsblock 258 testet die Worte in SMF RAM 20-44, das die Revisionsnummer der Systembusschnittstellen für die zwei CSS speichert. Wenn die zwei Revisionsnummern gleich sind, dann aktualisiert Block 264 die Konsolenanzeige 34 mit der Information, die anzeigt, daß alle Steuerspeicher geladen sind.

Block 266 startet den Qualitäts-Logiktest der CPU, Block 268 beendet die Firmware-Laderoutine, in dem sie Off-Line gestellt wird und Block 270 spezifiziert das Ende der Laderoutine und die SMF ist verfügbar für die nächste Operation.

Wenn Entscheidungsblock 258 anzeigt, daß die zwei Revisionsnummern nicht gleich sind, dann liest Block 260 die neue Revisionsnummer der Hardware für das zweite CSS. Block 262 ersetzt die erste Revisionsnummer des CSS mit der zweiten Revisionsnummer des CSS in der Stelle des SMF-RAM 20-44. Block 111 zweigt dann zu Block 112 ab, um den Steuerspeicher des zweiten CSS mit der Firmware zu der neuen Revisionsnummer zu laden. CSS 3 würde seine Steuerspeicher-Firmware zu einer Revision haben und CSS 5 würde seine Steuerspeicher-Firmware zu einer zweiten Revision haben, die den CSS 3 und CSS 5 unterschiedliche Personalitäten gibt.

Ablaufdiagramm

Fig. 7 zeigt ein Ablaufdiagramm der Lade- und Verifizierungsoperation des Steuerspeichers 3-2, bei der Port 0, Kanalnummer hexadezimal 00 von Systembus Schnittstelle 2-10A, benutzt wird. Das Ablaufdiagramm der Lade- und Verifizierungsoperation ist ähnlich, wenn Port 1 benutzt wird. Der einzige Unterschied ist, daß die Signale P1XXXX die Signale P0XXXX in dem Ablaufdiagramm von Fig. 7 ersetzen.

Die SMF 20 erzeugt ein Bus-Löschsignal BSMCLR über Systembus 2, der alle Subsysteme initialisiert. Im besonderen sperrt die abfallende Flanke von Signal BSMCLR das Signal P0MSYN, das daraufhin CPU0 4-2 und CPU1 6-2 durch Anhalten des Taktringzählers (nicht gezeigt) in dem Taktgenerator 3-8 verzögert. Die CPU0 4-2 ist für die Ladeoperation gesperrt, aber für die Verifizierungsoperation aktiviert, da die CPU0 4-2 die Parität der Signale des Steuerspeichers, die sie empfängt, verifizieren wird.

Die SMF 20 sendet den Schreibbefehl für den Port von Fig. 5B auf Systembus 2 mit einer Kanalnummer von hexadezimal 00 und dem Funktionskode von hexadezimal 0D aus. Die Kanalnummer, hexadezimal 00, aktiviert CNTL 0 der Logik 2-15, Fig. 3. Funktionskode hexadezimal 0D erzeugt das Ladesignal für Steuerspeicher POCSLD. Signal P0CSLD wird angelegt, um die Speicher-Ladesteuerung 3-6 zu steuern, die PXCSLD-Signale erzeugt, die die Ladeoperation des Steuerspeichers und Signal PXCSLV steuern, das die Lade- und Verifizieroperation steuert. Man beachte, daß die Signale PXCSLD und PXCSLV erzeugt werden, wenn die Kanalnummer entweder Port 0 oder Port 1 adressiert.

Die SMF 20 sendet als nächstes einen Ladebefehl für Adreßzähler in der Form von Fig. 5B, der die Kanalnummer, hexadezimal 00, und Funktionskode hexadezimal 11 beinhaltet. CNTL 0 2-15 spricht auf die Funktionskode-Signale an, um das Lade-Adresse-Signal P0LADD und das Lade-Synchronisation-Signal P0LSYN zu erzeugen.

Das Lade-Synchronisation-Signal P0LSYN wird an den Taktgenerator 3-8 angelegt, um den Steuerspeicher-Zeitablaufring zu starten, um Zählsignale CST1 bis CST5 zu erzeugen. Die Signale PXCSLD und CST5 erzeugen das Taktsignal CSACLK, das an Zähler 3-4 angelegt wird. Signal PXLADD wird erzeugt, indem das Signal P0LADD an die Lade-Steuerung 3-6 angelegt wird. Das Signal PXLADD wird an Zähler 3-4 angelegt, um den Zähler auf den Wert des Datenfeldes des Lade-Adresse- Befehls zu setzen, in diesem Beispiel hexadezimal 0000. Die SMF 20 sendet dann eine Reihe von Befehlen in der Form, wie in Fig. 5C gezeigt, zu Hauptspeicher 10 bis 12. Das Adreßfeld beinhaltet die Stelle im Hauptspeicher 10 bis 12 jedes Doppelworts (32 Bit) von Steuerspeicher 3-2. Das Datenfeld beinhaltet die Kanalnummer des empfangenden CPU-Ports, in diesem Beispiel hexadezimal 00. Das heißt, die SMF 20 erzeugt einen Speicher-Lesebefehl und die aus dem Hauptspeicher gelesenen Daten werden zu CPU0 4-2 gesendet.

Der zweite halbe Buszyklusbefehl beinhaltet die Kanalnummer hexadezimal 00 von CPU0 4-2 in dem Adreßfeld und den Inhalt der adressierten Hauptspeicherstelle in dem Datenfeld.

Das Signal P0LSYN startet den Zeitablaufring für jeden zweiten halben Buszyklus. Das Doppelwort, das von dem Hauptspeicher 10 bis 12 über Empfänger 2-30, FIFO 2-34, Register 2-12, Register 2-14 empfangen wird, wird in Laderegister 0 4-14 zur Zeit CST1 gespeichert. Die Freigabesignale für Schreiben CSWE1 bis CSWE4 werden zur Zeit CST4 zum Schreiben des Inhalts von Register 4-14 in den Steuerspeicher 3-2 bei der durch Zähler 3-4 spezifizierten Adresse erzeugt. Das Signal CSACLK wird zur Zeit CST5 erzeugt, um den Zähler 3-4 zu inkrementieren. Steuerspeicher 3-2 wird durch das Signal CSWE1 freigegeben, um das erste Doppelwort zu schreiben, CSWE2 für das zweite Doppelwort, CSWE3 für das dritte Doppelwort und CSWE4 für die vierte Doppelwort. Der Zähler 3-4 wird für jeden zweiten halben Buszyklusbefehl zum Schreiben der nächsten vier Doppelwörter in die spezifizierte Stelle des Steuerspeichers 3-2 inkrementiert.

Die SMF 20 sendet einen Rücksetzbefehl für den Lademodus, Fig. 5B mit Funktionskode, hexadezimal 0F, und Kanalnummer, hexadezimal 00, nachdem der Steuerspeicher 3-2 vollständig geladen ist. Dies führt dazu, daß CNTL 0 2-15 das Signal P0CSLD rücksetzt. Dies setzt das Signal PXCSLD zurück und erzeugt das Löschsignal für Zähler 3-4 PXACLR in Ladesteuerung 3-6.

Die SMF 20 sendet einen Befehl Port-On-Line in der Form wie in Fig. 5B gezeigt, der die Kanalnummer hexadezimal 00 und den Funktionskode von hexadezimal 0B beinhaltet. Dieser Befehl startet die Master- und Synchronisationssteuerung P0MSYN erneut und erzeugt auch das Taktsignal CSACLK, das in Verbindung mit Signal PXACLR den Adreßzähler 3-4 auf hexadezimal 0000 zurücksetzt. Das Signal P0MSYN startet den Ringzähler, um das zyklische Signal P0TME4 zu erzeugen, das daraufhin das Signal CSALCK erzeugt, um Zähler 3-4 zu inkrementieren. Der Inhalt jeder adressierten Stelle von Steuerspeicher 3-2 wird in die Register 4-12 und 3-10 geladen bis Signal CSDONE erzeugt wird, das anzeigt, daß der gesamte Steuerspeicher 3-2 verifiziert wurde.

Die SMF 20 wartet für 10 Millisekunden nach dem Senden des Befehls Port-On-Line, um einen Befehl zum Lesen des Syndromregisters zu senden. Dies sollte genügend Zeit sein, um die Verifizieroperation erfolgreich abzuschließen. Der Befehl zum Lesen des Syndromregisters beinhaltet die Kanalnummer, hexadezimal 00, und den Funktionskode, hexadezimal 00. Der Inhalt des Syndromregisters 2-13 wird auf Systembus 2 über Register 2-14, 2-11 und Treiber 2-32 ausgesendet. Die SMF 20 untersucht das Belegtbit, das durch Signal P0CSBY gesetzt wird. Wenn das Belegtbit gesetzt wird, dann war das Laden des Steuerspeichers nicht erfolgreich abgeschlossen. In diesem Fall kann die SMF 20 die Lade- und Verifizieroperation durch denselben Port 0 wiederholen oder versuchen, durch Port 1 durch Senden des Ladebefehls mit einer Kanalnummer von hexadezimal 01 zu laden.

Nachfolgend sind die Booleschen Gleichungen der Signale der bevorzugten Ausführungsformen angegeben. Wie in Fig. 7, werden nur die Signale von Port 0 als P0XXXX gleichwertig gezeigt. Ahnliche Gleichungen in der Form von Signal P1XXXX, die an Port 1 anliegen, sind nicht gezeigt, da es für jemanden mit durchschnittlicher Erfahrung offensichtlich ist, die Signale von Port 0 auf die Logik von Port 1 zu beziehen.

Das Sperrsignal P0INHS hindert das Master-Synchronisations-Signal P0MSYN am Umlaufen nach der abfallenden Flanke von Signal BSMCLR, wodurch die CPU 0 4-2 gesperrt wird.

P0INHS = BSMCLR

Signal P0INHS wird durch den Befehl Port-On-Line zurückgesetzt, der einen Funktionskode von hexadezimal 0B besitzt, um das Signal P0MSYN neu zu starten.

P0INHS = F0CMEN · · 20 · · 22 ·

Signal P0CSLD wird durch den Lademodus-Befehl gesetzt, der den Funktionskode von hexadezimal 0D hat.

P0CSLD = P0INHS · F0CMEN · · 20 · 21 ·

wobei Signal F0CMEN einen quittierten SMF-Zyklus an Kanalnummer hexadezimal 00 mit Adreßsignal und Signal BSRINT anzeigt.

Signal P0CSLD wird durch den Rücksetzbefehl des Lademodus zurückgesetzt, der den Funktionskode von hexadezimal 0F hat.

P0CSLD = F0CMEN ( + + + 22) PXCSLD = P0CSLD + P1CSLD

Signal P0LADD wird durch den Lade-Adresse-Befehl gesetzt, der den Funktionskode von hexadezimal 11 hat.

P0LADD = F0CMEN · 19 · · ·

Signal P0LADD wird am Ende des Zyklus von Systembus 2 zurückgesetzt.

Signal P0LSYN wird auch durch den Funktionskode hexadezimal 11 gesetzt und durchläuft jeden Lesebefehl SHBC von Systembus 2, für den das Lademodus-Signal P0CSLD gesetzt wird.

P0LSYN = P0CSLD · P0INHS · F0CMEN · 19 · · · + P0CSLD · P0INHS · · DOSHBA

Wenn das Signal DOSHBA für jeden Zyklus des FIFO 2-34 gesetzt wird, das die Kanalnummer hexadezimal 00 für einen SHBC Befehl empfängt.

Das Signal PXCSLV wird sowohl für die Lade- als auch die Verifizieroperationen gesetzt und durch das Rücksetzsignal P0CSRT rückgesetzt.

PXCSLV = P0CSLD + PXCSLV · ·

Das Signal CSACLK läuft während des Lademodus wie folgt um.

CSACLK = PXCSLD · CST5

Während dem Verifiziermodus

CSACLK = · P0TME4 · PT0SEL.

Das Signal PT0SEL ist das Signal zur Auswahl von CPU0 4-2.

Signal CSCLK wird beim Ende des Verifiziersignals durch das Signal CSDONE gesperrt.

Signal PXACLR gibt das Rücksetzen des Adreßzählers 3-4 bei dem Start des Verifiziermodus frei.

PXACLR = · · · PXCSLV ·

Das Signal PXACLR wird durch Signal P0CSVF rückgesetzt, das wie folgt setzt. Signal PXMCLR führt die Master-Löschfunktion aus.

P0CSVF = CSACLK · PT0SEL · PXACLR · ·

PT0SEL = PXMCLR · P0CSLD · + PT0SEL. PXCSL V

Signal P0CSRT setzt Signal P0CSVF zurück.

Rücksetzsignal P0CSRT = P0TME4 · PT0SEL · PXCSVF · · · CSDONE.

Signal PXLDER zeigt einen Ladefehler an und Signal PXVFER zeigt einen Verifizierfehler an.

Das Belegtsignal P0CSBY zeigt an, daß Port 0 gerade eine Funktion ausführt und nicht für Befehle von Systembus 2 verfügbar ist.

P0CSBY = PXCSLV + P0INHS

Wenn das Rücksetzsignal P0CSRT nicht setzt, was einen Lade- oder Verifizierfehler anzeigt, dann bleibt Signal PXCSLV gesetzt. Deswegen wird das Belegtsignal P0CSBY nicht rückgesetzt und bleibt in dem Syndrom-Register 2-13.

Die SMF 20 sendet einen Lesebefehl für das Syndrom-Register, Funktionskode hexadezimal 00, um Signal POSSYE zu erzeugen . .

P0SSYE = F0SHEN · · ·

Signal P0SSYE gibt die Ausgabe von Syndrom-Register 2-13 frei.

Die Schreib-Freigabesignale für Steuerspeicher CSWE1-4 werden in Zähler 3-4 erzeugt.

Ein interner Zähler in Zähler 3-4 erzeugt die Signale CSADG0 und CSADG1 (nicht gezeigt), die vier Zustände haben, und wird auf jeden SHBC-Befehl inkrementiert. Signal PXLDER zeigt an, daß kein Ladefehler detektiert wurde.

CSWE1 = PXCSLD · PXLADD · CSA0G0 · · CST4 · PXLDER

CSWE2 = PXCSLD · PXCADD · · CSADG1 · CST4 · PXLDER


Anspruch[de]

1. Datenverarbeitungssystem, welches aufweist:

einen Systembus (2);

ein erstes, mit dem Systembus verbundenes Subsystem (20) zum Erzeugen und Übertragen über den Bus von einem Befehl, der einen Antwort-Befehl erfordert;

ein zweites, mit dem Systembus verbundenes Subsystem (10, . . . 12) zum Empfangen des Befehls und zum Erzeugen und Verbreiten des Antwort-Befehls über den Bus;

dadurch gekennzeichnet, daß dieser Befehl (Fig. 5 oberer Teil) einen ersten Bereich enthält, der ein drittes Subsystem aus einer Vielzahl von dritten Subsystemen (3 5) identifiziert, einen zweiten Bereich enthält, der das zweite Subsystem identifiziert, und einen dritten Bereich enthält, der den vom zweiten Subsystem auszuführenden Prozeß spezifiziert:

der Antwort-Befehl (Fig. 5, unterer Teil) einen Bereich enthält, der das durch den ersten Bereich identifizierte dritte Subsystem identifiziert;

das dritte Subsystem mit dem Systembus verbunden ist, wobei jedes der dritten Subsysteme die Kommunikations-Verbreitung auf dem Bus überwacht und in Antwort auf einen Befehlsbereich dasjenige der dritten Subsysteme zum Empfang der Kommunikations-Verbreitung auf dem Bus identifiziert, wobei das eine, durch den Bereich in dem Antwort-Befehl identifizierte dritte Subsystem den Antwort-Befehl empfängt.

2. System nach Anspruch 1, wobei das erste Subsystem ein Rückmeldesignal vom zweiten Subsystem enthält, wenn das zweite Subsystem den Befehl empfängt.

3. System nach Anspruch 2, wobei das erste Subsystem eine Zeitgabeeinrichtung umfaßt, zum Überprüfen, daß der Antwort-Befehl von dem ersten Subsystem innerhalb einer vorgegeben Zeit empfangen ist, wenn der erste Bereich das erste Subsystem identifiziert, wobei die Zeitgabeeinrichtung auf das Rückmelde-Signal anspricht, um die Zeitgabevorrichtung auszusetzen, wenn der erste Bereich das dritte Subsystem identifiziert.







IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com