DE3750608T2 - Datenverarbeitungssystem mit einer Bedienungsrechnerhierarchie. - Google Patents

Datenverarbeitungssystem mit einer Bedienungsrechnerhierarchie.

Info

Publication number
DE3750608T2
DE3750608T2 DE19873750608 DE3750608T DE3750608T2 DE 3750608 T2 DE3750608 T2 DE 3750608T2 DE 19873750608 DE19873750608 DE 19873750608 DE 3750608 T DE3750608 T DE 3750608T DE 3750608 T2 DE3750608 T2 DE 3750608T2
Authority
DE
Germany
Prior art keywords
computer
circuits
program
control
chip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19873750608
Other languages
English (en)
Other versions
DE3750608D1 (de
Inventor
Robert Blau
Chris Wilson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu IT Holdings Inc
Original Assignee
Amdahl Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amdahl Corp filed Critical Amdahl Corp
Publication of DE3750608D1 publication Critical patent/DE3750608D1/de
Application granted granted Critical
Publication of DE3750608T2 publication Critical patent/DE3750608T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Description

  • Die vorliegende Erfindung betrifft das Feld der digitalen Computer und insbesondere eine Anzahl von Computern, die miteinander verbunden sind, um ein Datenverarbeitungssystem zu bilden.
  • In Datenverarbeitungssystemen werden typischerweise Steuerfunktionen ausgeführt, wobei eine Sequenz oder ein Strom von Befehlen verwendet wird, die ein Programm genannt werden, wo die Befehle der Reihe nach ausgeführt werden, um die erwünschten Datenverarbeitungen auszuführen. Bei der Ausführung von Befehlen verwendet der Computer viele Schaltkreisspeicherplätze, die als Funktion der Operation des Computers auf die logischen Zustände 1 oder 0 gesetzt oder zurückgesetzt werden. Diese Speicherplätze schließen beispielsweise Register und Speicher zum Speichern von Daten, Steuerinformationen und Befehlen ein. Wenn jeder Befehl durch den Computer ausgeführt wird, neben die unterschiedlichen Schaltkreisspeicherplätze innerhalb des Computers entweder Werte einer logischen 1 oder logischen 0 als eine Funktion der Programmausführung ein. Die Eingänge und/oder Ausgänge dieser Speicherplätze innerhalb des Computers werden im Allgemeinen als direkte (nicht-redundante) Eingänge und/oder Ausgänge bezeichnet, wenn immer diese Eingänge oder Ausgänge Werte haben, die in irgendeiner Weise unmittelbar als eine Funktion der Programmausführung durch den Computer bestimmt werden. Die Schaltkreisspeicherplätze innerhalb eines Computers sind durch direkte (nicht-redundante) Datenwege und Steuerwege verbunden, die zur Unterstützung der Ausführung des Programms verwendet werden.
  • Manchmal ist es wünschenswert, einen zweiten oder weitere Computer zu haben, die die logischen Zustände der Speicherplätze innerhalb eines ersten Computers überprüfen oder steuern. Eine Art der Durchführung einer solchen Überprüfung oder Steuerung ist, den Betrieb des ersten Computers anzuhalten und dem zweiten Computer zu gestatten, die direkten (nicht-redundanten) Daten- und Steuerwege des ersten Computers zu verwenden. Eine solche Arbeitsweise jedoch beendet oder verlangsamt die Ausführung des Hauptprogramms durch den ersten Computer, während der zweite Computer einen andersartigen Befehlsstrom ausführt. Wenn ein erster Computer einen Fehlerzustand aufweist, dann gibt dieser Fehlerzustand häufig nicht nur eine Störung bei der Ausführung des ersten und des Hauptprogramms durch den ersten Computer, sondern gibt auch eine Störung mit irgendeinem Versuch des zweiten Computers, die Fehlerquelle zu bestimmen, wenn der zweite Computer dieselben Schaltkreisverbindungen und Wege wie der erste Computer verwendet.
  • Um die Verwendung derselben Schaltkreisverbindungen und Wege in einem Computer zu vermeiden, sind manche Computer mit redundanten Eingabe- und/oder Ausgabeverbindungen und Wegen zu Speicherplätze innerhalb eines Computers versehen worden, und sind mit redundanten Zugriffsmitteln zum Zugreifen auf Speicherplätze durch die redundanten Eingabe- und/oder Ausgabeverbindungen und Wege versehen worden. Ein solches redundantes System ist in dem US-Patent 4,244,019 beschrieben, das den Titel trägt "DATA PROCESSING SYSTEM INCLUDING A PROGRAMEXECUTING SECONDARY SYSTEM CONTROLLING A PROGRAMM- EXECUTING PRIMARY SYSTEM".
  • Systeme nach dem Stand der Technik, wie das in dem Patent 4,244,019 haben Verfahren und Vorrichtungen geschaffen, um den Betrieb eines Computers durch einen anderen Computer in einem Datenverarbeitungssystem in Reaktion auf einen menschlichen Eingriff zur Wartung oder aus anderen Gründen zu steuern. Solche Verfahren und Vorrichtungen haben nicht die Flexibilität und den Wirkungsgrad geliefert, der für wirksamere Datenverarbeitungssysteme wünschenswert ist.
  • In dem US-Patent 4,244,019 ist das Datenverarbeitungssystem mit einem ersten (Haupt-)Computer und mit einem zweiten (Zusatz-)Computer gebildet. Der erste Computer hat Vorrichtungen zur Befehlsausführung und Verarbeitung, die betrieben werden, ein erstes Programm auszuführen, das als ein erster Befehlsstrom gebildet ist. Der zweite Computer besitzt Vorrichtungen zur Befehlsausführung und Verarbeitung, um ein zweites Programm auszuführen, das als ein zweiter Befehlsstrom gebildet ist. Der zweite Computer ist typischerweise ein Bedienungspult, das durch sein eigenes Programm er fähig ist, die Ausführung von Befehlen und Steuerbefehlen in dem ersten Datenverarbeitungssystem zu veranlassen und das Zugreifen auf Speicherplätze in dem ersten Datenverarbeitungssystem zu bewirken, wobei redundante Verbindungen und Wege verwendet werden.
  • Die Hauptaufgabe des gesamten Computersystems in dem Patent 4,244,019 ist, die ersten (Haupt-)Programme in dem ersten Computer auszuführen, und die Aufgabe des zweiten Computers ist, die Steuerung und das Abfragen des ersten Computers zu unterstützen.
  • Bei Computern treten weisen von Zeit zu Zeit Fehler auf. In einem System von verbundenen Computern, wie in dem Patent 4,244,019, können Fehler in einem Computer Verzögerungen beim Betrieb der anderen Computer in dem System hervorrufen, wodurch die Hauptaufgabe des gesamten Computersystems gestört wird. Wenn bei einem Computer ein Fehler auftritt, ist der typische Vorgang, die Ausführung des Befehlsstroms für diesen Computer anzuhalten, damit nicht irgendwelche weiteren Fehler hervorgerufen werden. In einem System kann das Anhalten des Betriebs eines zweiten Computers den Betrieb eines ersten Computers sogar dann verlangsamen oder anhalten, wenn keine Fehler in dem ersten Computer vorhanden sind. Wenn die Computer angehalten worden sind, ist es wichtig, eine Diagnose über das Problem herzustellen und die Computer für einen fehlerfreien Betrieb so schnell wie möglich erneut zu starten. Die Diagnose enthält normalerweise das Auslesen und die Analyse des Zustands von vielen Schaltkreisspeicherplätze in dem angehaltenen Computer. Das erneute Starten des angehaltenen Computers beginnt typischerweise mit einer einleitenden Programmladeroutine (IPL).
  • Einleitende Programmladeroutinen für Computer sind gut bekannt. Typischerweise initiiert eine einleitende Programmladeroutine das Starten und die Verteilung von Taktsignalen, das Rücksetzen und Löschen von vielen Speicherplätzen in einem Computer, um Anfangsbedingungen herzustellen, und das Herabladen von Steuerinformationen oder anderen Informationen und von Programmen von einer Platte oder einem anderen Speicher. Jede einleitende Programmladeroutine ist auf den besonderen Computer maßgeschneidert, der gestartet oder erneut gestartet werden soll.
  • Die Initiierung der Diagnose und das einleitende Programmladen für das erneute Starten eines Computers von Hand ist häufig ineffizient und stört oder verlangsamt die Ausführung des Hauptprogramms in einem Hauptcomputer. Die Unwirksamkeit wird besonders in einem hierarchischen System verschlimmert, in dem ein zweiter Computer einen ersten Computer steuert. Wenn bei dem zweiten Computer ein Fehler auftritt, wenn dies bei dem ersten Computer nicht geschieht, stören die Fehler des zweiten Computers häufig den Betrieb des ersten Computers, wodurch die Hauptaufgabe des Gesamtsystems verschlechtert wird, das heißt die Ausführung von Programmen durch den Hauptcomputer.
  • Gemäß dem vorstehenden Hintergrund besteht ein Bedürfnis nach einer verbesserten Hierarchie von Computern, wodurch die Arbeitsweise von jedem der Computer zu einem wirksameren Gesamtsystem führt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung ist ein Datenverarbeitungssystem, das eine Hierarchie von Computern hat, einschließlich eines ersten Computers, eines zweiten Computers und eines dritten Computers. Typischerweise ist der erste Computer ein Universal-Großcomputer und der zweite Computer ist ein Universal- Stützcomputer geringerer Größe zur Durchführung gewisser Stützoperationen in Verbindung mit dem ersten Computer.
  • Der erste und der zweite Computer führen einen unabhängigen Befehlsstrom aus. Der Befehlsstrom für den ersten Computer bewirkt Datenverarbeitungen mit Schaltkreisspeicherplätze, die mit der Hauptfunktion des gesamten Datenverarbeitungssystems verbunden sind, nämlich der Ausführung von ersten Programmen in dem ersten Computer.
  • Die Ausführung des Befehlsstroms in dem zweiten Computer führt Stützfunktionen durch, die den ersten Computer unterstützen und steuern und wirkt als eine Schnittstelle zwischen dem ersten Computer und einer menschlichen Betriebsperson über eine Schalttafel, die eine Arbeitsstation mit einer Tastatur und einer Anzeigevorrichtung einschließt.
  • Der erste Computer schließt erste Schaltkreisspeicherplätze ein, die redundante Verbindungen haben und auf die unabhängig von dem zweiten Computer unter Steuerung des zweiten Befehlsstroms und unabhängig von dem ersten Befehlsstrom zugreifbar ist.
  • Ein dritter Computer ist zur Ausführung eines dritten Befehlsstroms vorgesehen. Der dritte Befehlsstrom und der dritte Computer führen Stützfunktionen aus, die den Betrieb des zweiten Computers unterstützen und steuern. Der zweite Computer schließt zweite Schaltkreise ein, die redundante Verbindungen haben, auf die durch den dritten Computer unter Steuerung durch den dritten Befehlsstrom unabhängig zugreifbar ist.
  • Wenn immer der zweite Computer einen Fehler oder andere Bedingungen aufweist, die die Ausführung des zweiten Programms durch den zweiten Computer anhalten, erfaßt der dritte Computer die zweiten Speicherplätze in dem zweiten Computer und liest automatisch den zweiten Computer aus und startet ihn erneut, indem beispielsweise veranlaßt wird, daß eine einleitende Programmladeroutine (IPL) für den zweiten Computer ausgeführt wird. Auf diese Weise wird der zweite Computer unter der Steuerung des dritten Befehlsstroms erneut automatisch gestartet, der von dem dritten Computer ausgeführt wird, ohne eine Unterbrechung der Verarbeitung eines ersten Programms in dem ersten Computer zu verlangen.
  • In Übereinstimmung mit der vorstehenden Zusammenfassung wird die Zielsetzung, ein Datenverarbeitungssystem zu schaffen, das aus drei oder mehreren Computern mit verbesserter Zuverlässigkeit und Wirkungsgrad gebildet ist, erreicht.
  • Die vorstehenden und anderen Zielsetzungen, Merkmale und Vorteile der Erfindung werden aus der folgenden, detaillierten Beschreibung in Verbindung mit den Zeichnungen offensichtlich e
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 zeigt ein Blockdiagramm eines Computersystems, das einen ersten, zweiten und dritten Computer gemäß der vorliegenden Erfindung einschließt.
  • Fig. 2 zeigt ein Blockdiagramm des ersten und des zweiten Computers des Systems der Fig. 1.
  • Fig. 3 zeigt ein Blockdiagramm der Speicherplätze, auf die unabhängig zugreifbar ist und die redundant verbunden sind, und die Ausleseeinrichtung zum Zugreifen auf diese Speicherplätze innerhalb des zweiten Computers der Fig. 2.
  • Fig. 4 zeigt ein Blockdiagramm des dritten Computers des Systems der Fig. 1.
  • Fig. 5 zeigt ein Blockdiagramm der Ausleseeinrichtung, die Teil der Schaltung der Fig. 3 bildet.
  • Fig. 6 zeigt ein Blockdiagramm einer Zwischenspeicherschaltung, die redundante Eingänge mit unabhängigem Zugriff und Ausgänge hat.
  • BESCHREIBUNG DER ZEICHNUNGEN IM EINZELNEN System mit Computerhierarchie - Fig. 1
  • In Fig. 1 sind ein erster Computer 26, ein zweiter Computer 27 und ein dritter Computer 28 gezeigt. Der Computer 26 ist ein herkömmlicher Großcomputer, der in einer herkömmlichen Weise unter der Steuerung eines Betriebssystems läuft und ein Haupt-(erstes)Programm ausführt, das als ein erster Befehlsstrom gebildet ist.
  • In Fig. 1 führt der zweite Computer 27 ein zweites Programm aus, das als ein zweiter Befehlsstrom gebildet ist. Zusätzlich führt in Fig. 1 ein dritter Computer 28 ein drittes Programm, das als ein dritter Befehlsstrom gebildet ist, unabhängig von dem zweiten Befehlsstrom in dem zweiten Computer 27 aus, und unabhängig von dem ersten Befehlsstrom in dem ersten Computer 26.
  • Der erste Computer 26 und der zweite Computer 27 enthalten Vorrichtungen zum Einlesen und Auslesen bzw. Abfragen und arbeiten im allgemeinen in der Weise, wie es in dem obengenannten US Patent 4,244,019 beschrieben ist. Der dritte Computer 28 führt Funktionen aus, um den zweiten Computer zu unterstützen, zu steuern und zu überwachen. In Fig. 1 wird die Hierarchie des Systems 1 mit dem größten Computer, der der erste Computer 26 ist, dem nächstgrößten Computer, der der zweite Computer 27 ist, und dem nächstgrößten Computer gebildet, der der dritte Computer 28 ist, gebildet. Jeder Computer in der Hierarchie enthält Einrichtungen, um einen unterschiedlichen Befehlsstrom unabhängig auszuführen. Der erste Computer enthält redundant verbundene, erste Speicherplätze mit unabhängigem Zugriff, auf die von dem zweiten Computer unter der Steuerung des zweiten Befehlsstroms zugreifbar ist. Der zweite Computer enthält redundant verbundene zweite Speicherplätze mit unabhängigem Zugriff, auf die von dem dritten Computer unter Steuerung des dritten Befehlsstroms zugreifbar ist.
  • Erste und zweite Computersystem - Fig. 2
  • In Fig. 2 sind ein Haupt- und ein Neben-Computersystem von der Art gezeigt, wie es in dem obengenannten US-Patent 4,244,019 beschrieben ist. Der Hauptcomputer oder erste Computer 26 hat Hardware-Bauteile einschließlich Schaltungsspeicherplätze 68, die in physikalischen Blöcken 60-1, 60-2, . . ., 60-M organisiert sind. Typischerweise ist jeder Block 60 ein Mehrfachchipträger (MCC), der eine Anzahl von in großem Maßstab integrierten Halbleiterchips trägt. Die Halbleiterchips enthalten Schaltungen, die Zwischenspeicher und Hauptspeicherplätze haben, die direkt verbunden sind, um einen Großcomputer hoher Geschwindigkeit zu bilden. Viele oder alle Zwischenspeicher und andere Datenspeicherplätze innerhalb des ersten Computers 26 enthalten redundant verbundene Dateneingänge und/oder Datenausgänge mit unabhängigem Zugriff und Steuereingänge und/oder Steuerausgänge, auf die unter der Steuerung des zweiten Computers 27 frei zugreifbar ist. Diese redundant verbundenen Eingänge und/ oder Ausgänge in dem ersten Computer 26 werden zusätzlich zu den normalen direkten Eingängen und Ausgängen der Schaltkreise in Verbindung mit dem Hauptbetrieb des ersten Computers verwendet.
  • Eine typische Schaltkreisstelle in der Form einer Zwischenspeicherschaltung 68 ist dargestellt. Die Zwischenspeicherschaltung 68 schließt einen direkten Dateneingang DI1 und einen redundanten Dateneingang DI2 ein. Der Zwischenspeicher 68 hat einen direkten Datenausgang DO1 und einen redundanten Ausgang DO2. Die ABTAST (SAMPLE), HALTE (HOLD) und RÜCKSETZ (RESET) Signale sind in herkömmlicher Weise gesteuerte Signale, die beim Betrieb des typischen Zwischenspeichers 68 zweckmäßig sind. Ferner ist der Zwischenspeicher 68 durch eine unabhängig Adressierschaltung adressierbar, die die Leitungen ZEILE (ROW), SPALTE (COL) und PS einschließt. Diese unabhängig adressierbaren Eingänge steuern die redundanten Eingänge und Ausgänge des Zwischenspeichers 68 getrennt von der Verwendung, die der Zwischenspeicher 68 in dem ersten Computer 26 oder in dem zweiten Computer 27 hat. Der Zwischenspeicher 68 der Fig. 6 ist wie der, der in Fig. 7 der Anmeldung EP-A-01 57 036 mit dem Titel "SERIAL CHIP SCAN" gezeigt ist, auf die bezug genommen worden ist.
  • Der Hauptbetrieb des ersten Computers 26 ist, die Ausführung des Haupt (ersten) Programms in einem ersten Befehlsstrom zu unterstützen. Solche Hauptprogramme führen herkömmliche Computeroperationen aus, einschließlich des Durchführens von Anwendungsprogrammen zur Buchhaltung, Datenverarbeitung, Inventarkontrolle, Datenbank-Management usw. Alle diese Hauptfunktionen werden unabhängig von den redundant verbundenen Daten- und Steuereingängen und -ausgängen ausgeführt, die mit allen oder vielen Schaltkreisen innerhalb des ersten Computers verbunden sind. Diese Speicherplätze 68 in dem ersten Computer (erste Speicherplätze) besitzen Werte, die als eine Funktion des ersten Befehlsstroms bestimmt werden, und die Verwendung dieser Speicherplätze wird durch die direkten Verbindungen zu diesen Speicherplätzen unter Steuerung durch oder in Reaktion auf den ersten Befehlsstrom gesteuert. Das Zugreifen auf diese erste Speicherplätze mittels der redundanten Verbindungen erfolgt unter der Steuerung des zweiten Befehlsstroms.
  • Zur gleichen Zeit, zu der der erste Computer 26 arbeitet, um die ersten Computerprogramme auszuführen, führt der zweite Computer 27 unabhängig ein zweites Programm aus, indem ein zweiter Befehlsstrom ausgeführt wird. Der Hauptzweck des zweiten Computers 27 ist, die Arbeitsweise des ersten Computers 26 zu überwachen, zu steuern und eine Diagnose zu stellen. Häufig befindet sich der zweite Computer 27 in der Schalttafel eines Gesamtdatenverarbeitungssystems 1. Der zweiten Computer 27 überwacht beispielsweise Fehlerbedingungen in dem ersten Computer 26, überwacht das Zurücksetzen des ersten Computers 26 und steuert das einleitende Programmladen (IPS) des ersten Computers 26. Die Art, in der der zweite Computer 27 schnittstellenmäßig mit dem ersten Computer 26 arbeitet, ist so, wie es in dem US-Patent 4,244,019 beschrieben ist.
  • Jeder Mehrfach-Chipträger (MCC) oder Block 60 des Computers 26 schließt eine Abfrageeinrichtung 66 ein, die die Abfrageeinrichtungen 66-1, 66-2, . . ., 66-M einschließt, die den Blöcken 60-1, 60-2, . . ., 60-M entsprechen. Jede Abfrageeinrichtung 66 kann unter der Steuerung des zweiten Computers 27 auf erste Speicherplätze in dem entsprechenden Block 60 zugreifen, indem auf die redundanten Eingänge und/oder Ausgänge der Schaltkreisspeicherplätze innerhalb des Mehrfach- Chipträgerblocks zugegriffen wird. Auf diese Weise kann der Computer 27 auf die Schaltkreisspeicherplätze des ersten Computers 26 zugreifen, ohne im allgemeinen die Ausführung des ersten Befehlsstroms durch den ersten Computer 26 zu stören. Jede der Abfrageeinrichtungen 66 ist mit einem Multiplexer 61 verbunden, der wiederum mit dem zweiten Computer 27 und insbesondere mit der Kerneinheit 58 des zweiten Computers 27 verbunden ist. Die Kerneinheit 58 ist wie das zweite System in dem obengenannten US-Patent 4,244,019.
  • Der zweite Computer 27 und insbesondere die Kerneinheit 58 zeigen von Zeit zu Zeit Fehler. Fehler in der Kerneinheit 58 des zweiten Computers 27 können den zweiten Computer 27 daran hindern, einige Aufgaben durchzuführen, die mit dem ersten Computer 26 verbunden sind, wodurch eine Störung mit dem Betrieb des ersten Computers 26 auftritt, und dadurch die Hauptfunktion des gesamten Computersystems 1 gestört wird, das heißt, die Hauptprogramme in dem ersten Computer 26 auszuführen. Wenn der zweite Computer 27 eine Fehlerbedingung erfährt, ist eine typische Operation, den zweiten Computer 27 erneut zu starten, ohne daß bei dem ersten Computersystem 26 die Ausführung des Hauptbefehlsstroms angehalten wird. Ein solcher Neustartvorgang des Computers 27 verhindert oder verringert ein Verlangsamen oder verhindert das Anhalten des Betriebs des ersten Computers 26, wenn Fehlerbedingungen in dem ersten Computer 26 nicht vorhanden sind. Wenn der zweite Computer 27 angehalten worden ist, beginnt der Neustart des Verarbeitens typischerweise durch ein automatisches, einleitendes Programmladen (IPL) des zweiten Computers 27 unter Steuerung des dritten Computers 28, ohne die Notwendigkeit eines einleitenden Programmladens (IPL) des ersten Computers 26 und mit geringfügigen Verzögerungen für diesen.
  • Ein solcher automatischer Betrieb verschwendet keine Ausführungszeit des ersten Computers 26 und ist für das Gesamtsystem 1 wirksamer.
  • Gemäß der vorliegenden Erfindung ist der dritte Computer 28 verbunden, um den Betrieb des zweiten Computers 27 in einer ähnlichen Weise zu der zu überwachen und zu steuern, in der der zweite Computer 27 den Betrieb des ersten Computers 26 überwacht und steuert.
  • In Fig. 2 enthält der zweite Computer 27 eine Abfrageeinrichtung 56, die ähnlich den Abfrageeinrichtungen 66 in dem ersten Computer 26 ist. Die Abfrageeinrichtung 56 kann redundante Daten- und Steuereingänge und Daten- und Steuerausgänge an vielen Speicherplätzen in dem zweiten Computer 27 überwachen.
  • Der Computer 27 in Fig. 2 schließt eine Kerneinheit 58 ein, die arbeitet, einen zweiten Befehlsstrom unabhängig von dem ersten Befehlsstrom auszuführen, der von dem ersten Computer 26 ausgeführt wird.
  • Der zweite Computer 27 ist physikalisch das Äquivalente eines Mehrfach-Chipträgerblocks, wie einer der Blöcke 60 in dem ersten Computer 26. Der zweite Computer 27 hat viele redundant verbundene Zwischenspeicher mit unabhängigem Zugriff und andere Speicherplätze 68, die in der gleichen Weise wie die Zwischenspeicher der Fig. 4 der oben angegebenen Anmeldung mit dem Titel "SERIAL CHIP SCAN" organisiert sind. Diese Organisation der Zwischenspeicher 68 ist in Fig. 4 der vorliegenden Beschreibung gezeigt. In Fig. 2 sind bestimmte, die Zwischenspeicher 51, . . ., 55, der Zwischenspeicher 68 der Fig. 4 gezeigt.
  • Der zweite Computer 27 enthält eine Mehrzahl von Fehler-Zwischenspeichern 53, die die Zwischenspeicher 53-1, . . ., 53-N einschließen. Die Fehler-Zwischenspeicher 53 speichern Datenwerte entsprechender Zwischenspeicher, wenn immer ein Fehler aufgetreten ist, und einen entsprechenden Zwischenspeicher oder einen anderen Datenpunkt in dem zweiten Computersystem.
  • Wenn immer ein Fehler in der Kerneinheit 58 auftritt, wird der Fehler in einen der Zwischenspeicher 53-1 bis 53-N registriert. Die Fehler-Zwischenspeicher sind Speicherplätze mit unabhängigem Zugriff in dem Computer 27, die bei dem normalen, fehlerfreien Arbeiten der Kerneinheit 58 nicht störend eingreifen.
  • Die Zwischenspeicher 51 bis 55 der Fig. 2, die Bestimmten der Zwischenspeicher 68 der Fig. 4 entsprechen, sind von der Art, wie sie in Fig. 6 der vorliegenden Beschreibung und in Fig. 7 der oben angegebenen Anmeldung mit dem Titel "SERIAL CHIP SCAN" gezeigt sind. Die Zwischenspeicher 68 stellen redundante Ausgänge DO2 bereit, die bei der primären Arbeitsweise des zweiten Computers 27 nicht verwendet werden, und auf die unter der Steuerung der Abfrageeinrichtung 56 unter der Steuerung des dritten Computers 28 zugegriffen werden kann. Die oben angegebene Anmeldung mit dem Titel "SERIAL CHIP SCAN" wird hier durch Bezugnahme auf sie zum Zweck der Erklärung der Struktur und der Arbeitsweise der Zwischenspeicher eingegliedert, die direkte und redundante Eingänge und Ausgänge haben, auf die unabhängig durch eine Abfrageeinrichtung zugegriffen werden kann, die in Reaktion auf die Ausführung des Programms in einem anderen Computer gesteuert wird.
  • In der gleichen Weise, wie Abtasteinrichtungen in dem ersten Computer 26 vorgesehen sind, wie es in den obigen Anmeldungen, auf die Bezug genommen worden ist, beschrieben ist, enthält der zweite Computer 27 in ähnlicher Weise eine Abfrageeinrichtung 56 und Fehler-Zwischenspeicher 53. Die Abfrageeinrichtung 56 in dem zweiten Computer 27 wird durch den dritten Computer 28 der Fig. 1 gesteuert.
  • In dem zweiten Computer 27 ist eine Taktsteuerung 57 vorgesehen. Die Taktsteuerung 57 erhält Taktsignale auf der Leitung 70 von dem dritten Computer 28. Die Taktsteuerung 57 liefert torgesteuerte Taktsignale auf den Leitungen 71 zu der Kerneinheit 58 und nichttorgesteuerte (freilaufende) Taktsignale auf der Leitung 72 zu der Kerneinheit 58. Die Taktsteuerung 57 steuert die Verteilung und die Synchronisierung der torgesteuerten und der nichttorgesteuerten Taktsignale auf den Leitungen 71 und 72 in Reaktion auf das Setzen der torgesteuerten und nichttorgesteuerten Zwischenspeicher 54 und 55. Wenn immer eine Fehlerbedingung in einem der Zwischenspeicher 53 erfaßt wird, wird der Fehler-Zwischenspeicher 88 gesetzt und durch die Taktsteuerung 57 erfaßt. Gemäß einer gewissen vorbestimmten Reihenfolge wird die Verteilung der Taktsignale auf den Leitungen 71 und 72 zu der Kerneinheit 58 in Reaktion auf ein Fehlersignal von dem Zwischenspeicher 88 oder von Taktsteuersignalen von den Zwischenspeichern 54 und 55 gesteuert. Die Art, in der die Taktsteuerung 57 in Reaktion auf Fehler- und andere Bedingungen die Verteilung der Taktsignale abändert und synchronisiert, kann in irgendeiner herkömmlichen Weise ausgeführt werden.
  • In Fig. 2 speichern die Zwischenspeicher 51 und 52 Signale unmittelbar von dem ersten Computer 26, wenn immer durch den Betrieb des ersten Computers 26 bestimmt wird, daß der zweite Computer 26 nicht richtig arbeitet oder aus anderen Gründen erneut gestartet werden sollte. Der erste Computer 26 bewirkt unter der Steuerung des ersten Befehlsstroms, der in dem Computer 26 ausgeführt wird, daß entweder einer oder beide Zwischenspeicher 51 und 52 gesetzt werden. Auch der Zwischenspeicher 51 kann über die Eingangsleitung 85 unter der Steuerung des Rücksetzschalters 75 gesetzt werden, der mit dem dritten Computer 28 verbunden ist. Beide Schalter 72 und 75 sind in Betrieb, wenn die Arbeitsstation 12 mit dem dritten Computer 28 unter der Steuerung des Zwischenspeichers 62 der Fig. 4 verbunden ist.
  • Obgleich es nicht im einzelnen in Fig. 2 gezeigt ist, schließt jeder der Zwischenspeicher 51 bis 55 und 88 einen Rücksetzeingang von der Abfrageeinrichtung 56 ein und sie sind daher unter der Steuerung der Abfrageeinrichtung 56 in irgendeiner herkömmlichen Weise oder in der Weise rücksetzbar, die in der oben angegebenen Anmeldung "SERIAL CHIP SCAN" beschrieben ist. Jeder der Zwischenspeicher 51 bis 55 und 88 der Fig. 2 und allgemeiner, jeder der Zwischenspeicher 68 der Fig. 4 hat eine vorbestimmte Adresse. Diese vorbestimmte Adresse erlaubt den Zugriff auf jeden der Zwischenspeicher 68 der Fig. 4 durch die Abfrageeinrichtung 56. Ferner haben die Adreßspeicherplätze dieser Zwischenspeicher eine vorbestimmte Zuordnung zu vorbestimmten Adressen in dem Speicher mit wahlfreiem Zugriff (RAM) des dritten Computers 28. Wenn immer ein Abfragen der Zwischenspeicher 51 bis 55 und 68 des zweiten Computers 27 durch die Abfrageeinrichtung 56 auftritt, wird der Zustand dieser Zwischenspeicher in dem Speicher des dritten Computers 28 gespeichert. Ähnlich wird bei einem Einlesevorgang der Inhalt des Speichers in dem dritten Computer 28 von dem Computer 28 durch die Abfrageeinrichtung 56 in den Zwischenspeicher oder andere Speicherplätze des zweiten Computers 27 geladen. Alle Einlesevorgänge und Auslesevorgänge bzw. Abfragevorgänge sind unter der unabhängigen Steuerung des dritten Befehlsstroms, der von dem dritten Computer 28 ausgeführt wird, und sind unabhängig von dem und transparent bzw. zugängig für den zweiten Befehlsstrom, der in dem zweiten Computer 27 ausgeführt wird. In gleicher Weise kann der zweite Computer 27 Zwischenspeicher an anderen Speicherplätzen in dem ersten Computer 26 unter Steuerung des zweiten Befehlsstroms abfragen und einlesen, der von dem zweiten Computer 27 ausgeführt wird, und dies alles unabhängig von dem Betrieb des ersten Befehlsstroms in dem ersten Computer 26.
  • Dritter Computer - Fig. 4
  • Der dritte Computer (XC) führt aus, setzt zurück und schafft eine Fehlerbehebungsfähigkeit für den Dienstprozessor, indem ein großer Untersatz von Dienstprozessorfunktionen geliefert wird, die bei dem Dienstprozessor selbst verwendet werden können. Diese schließen ein das Rücksetzen, das Laden und Verifizieren eines Mikrocodes (LMp), das Anzeigen/Abändern von abgefragten Zwischenspeicherwerten (Seitenabfragen) und von Speichern mit wahlfreiem Zugriff (RAM) des Dienstprozessors, von Taktsteuerung und Überwachung von Fehlerbedingungen.
  • Weitere Einzelheiten des dritten Computers 28 sind in Fig. 4 gezeigt.
  • Nurlesespeicher des dritten Computers XC ROM
  • Der Nurlesespeicher ROM 3 des dritten Computers (XC) hat typischerweise 256 K · Byte von 8 Bit an Befehlscode und Daten.
  • ADRESSIERUNG DES NURLESESPEICHERS DES DRITTEN COMPUTERS XC ROM
  • Das Adressenregister (ROMA) 4 des Nurlesespeichers wird verwendet, Befehle in dem dritten Befehlsstrom zu adressieren, und das Indexregister 5 ward verwendet, Daten zu adressieren. Ein Multiplexer 6 wählt entweder das Adressenregister 4 des Nur-Lesespeichers oder das Indexregister 5 als die tatsächliche Nur-Lesespeicher-Adresse. Das Indexregister 5 wird nur während eines LIX Befehls ausgewählt. Der Nur-Lesespeicher 4 des Adressenregisters wird normalerweise schrittweise erhöht, nachdem jedes Byte ausgelesen worden ist. Die einzige Zeit, zu der dies nicht erfolgt, ist während eines Sprungs, bei dem die Sprungadresse von dem Nur-Lesespeicher ROM 3 mittels der Zustandseinrichtung (state machine) zur Befehlsdecodierung in der Steuereinrichtung 24 und des RAM Adressenregisters (RAMA) 7 und unmittelbar von der Date des Nur-Lesespeichers ROM 3 auf dem Bus 34 der Fig. 4 geladen wird. Es wird auch nicht während eines BKEY Befehls erhöht, bei der das Tastenregister 8 in einen Teil des Adressenregisters des Nur-Lesespeichers (ROMA) 4 geladen wird. Das Indexregister 5 ist 19 Bit weit und wählt einen Abschnitt in dem adressierten Byte aus. Die 12 Bit niederer Ordnung werden durch einen LIX Befehl erhöht und Abschnitte werden zwischen dem Akkumulator 9 und dem Indexregister 5 durch die LINDX und LDCUR Befehle übertragen.
  • DATENWEGE DES NURLESESPEICHERS DES DRITTEN COMPUTERS (ROM XC)
  • Daten von dem Nurlesespeicher ROM 3 sind entweder Befehle des dritten Computers (XC), Sprungadressen, Daten, Chip- oder Zwischenspeicherunterbefehle oder Anzeigezeichen. Auf in dem Nur-Lesespeicher ROM 3 zugegriffene Befehle des dritten Computers (XC) werden durch die Steuereinrichtung 24 decodiert, die auch die Umkehrmaske, die in PAR, HEX, STOR, CONST spezifiziert sind, und IF Befehle speichert. Sprungadressen werden vorübergehend in der Steuereinrichtung 24 und in dem Adressenregister 7 des RAM (RAMA) gespeichert. Eine von dem Indexregister 5 in dem Nur-Lesespeicher ROM adressierte Date wird über den Bus 34 und den Multiplexer 21 in den Akkumulator 9 geladen. Chipunterbefehle werden in dem Adressenregister des RAM (RAMA) 7 zwischengespeichert und Zwischenspeicherungsunterbefehle adressieren den RAM 11 des dritten Computers (XC) unmittelbar. Anzeigezeichen werden zu der Arbeitsstation 12 während eines WRITE Befehls geschickt.
  • SPEICHER MIT WAHLFREIEM ZUGRIFF (RAM) DES DRITTEN COMPUTERS (XC)
  • Der Speicher mit wahlfreiem Zugriff RAM 11 des dritten Computers (XC) ist als eine Reihe von 12 288 · 1 Bit organisiert. Diese Reihe ist in 192 · 64 Bit-Chip-Speicherplätze unterteilt, wobei jeder Speicherplatz der Anzahl von Bit entspricht, die benötigt wird, einen gesamten Abfrageoperationssatz an Daten zu halten.
  • ADRESSIERUNG DES SPEICHERS MIT WAHLFREIEM ZUGRIFF (RAM) DES DRITTEN COMPUTERS (XC)
  • Der Chip-Speicherplatz wird in dem Adressenregister 7 des Speichers mit wahlfreiem Zugriff RAM gehalten, der während Chipunterbefehlen geladen wird. Ein einzelnes Bit (als eine Zwischenspeicherung bezeichnet, da normalerweise diese Bit den Werten der Zwischenspeicher oder anderer Speicherplätze in dem zweiten Computer 27 entsprechen) in dem Chipspeicherplatz wird durch einen Zwischenspeicherunterbefehl adressiert, der unmittelbar von dem Nur-Lesespeicher ROM 3 herkommt. Da der Chipspeicherplatz zwischengespeichert ist, ist es nicht notwendig, einen Chipunterbefehl für jeden Zwischenspeicherunterbefehl festzulegen, wenn das Bit in demselben Chipspeicherplatz wie das vorhergehend spezifizierte Bit ist. Somit wird die Bezeichnung "(Chip)/Zwischenspeicherunterbefehl" verwendet, um einen Zwischenspeicherunterbefehl anzugeben, bei dem der Chipunterbefehl nur benötigt wird, wenn sich das Bit in einem unterschiedlichen Chipspeicherplatz befindet. Der Speicher mit wahlfreiem Zugriff RAM 11 wird auch durch die parallele Adresse der Abfrageeinrichtung adressiert, die den Speicherplatz der Zwischenspeicheradresse während eines Abfragevorgangs einnimmt. Der Multiplexer 15 wählt zwischen den Daten des Nur- Lesespeichers ROM auf dem Bus 34 für Zwischenspeicherunterbefehle und der Paralleladresse zur Abfrage auf den Leitungen 14 für Abfrageoperationen aus.
  • DATENWEGE DES SPEICHERS MIT WAHLFREIEM ZUGRIFF (RAM) DES DRITTEN COMPUTERS (XC)
  • Der Eingang zum Speicher mit wahlfreiem Zugriff RAM 11 kann von verschiedenen Speicherplätzen kommen. Während eines Abfragevorgangs kommt die Date von der Abfrageeinrichtung 56 über den Abfragedatenbus 37. Während einer SPEICHERN (STORE) oder HEXADEZIMAL (HEX) Befehlsänderungsoperation kommt die Date von dem Akkumulator 9 über den Multiplexer 40. Während eines PAR Befehls kommt die Date von dem Paritätsakkumulator 17 über den Codierer 44 und den Multiplexer 40. Die abgefragte Date des Speichers mit wahlfreiem Zugriff RAM 11 geht zu der Abfrageeinrichtung 56 über den Abfrageeinlesdatenbus 36 für Einleseoperationen und zu den Multiplexern 21 und 22, die Daten in den Akkumulator 9 und in den Paritätsakkumulator 17 auswählen.
  • AKKUMULATOR
  • Der Akkumulator 9 ist ein Register von vier Bit, das verwendet wird, Daten von einem Speicherplatz zu einem andere zu bewegen und hexadezimale Felder zur Anzeige durch die Arbeitsstation 12 zu akkumulieren. Der Akkumulator 9 kann seriell von dem Speicher mit wahlfreiem Zugriff RAM 11 während LADEN (LOAD), HEX oder PAR Befehle im Anzeigemodus oder parallel von dem Nur-Lesespeicher ROM 3 während eines INCR Befehls geladen werden. Der Akkumulator 9 wird auch von dem Tastaturregister 8 in codierter Form nach einem POLL Befehl und zu Beginn eines HEX Befehls während eines Änderungsmodus geladen. Der Akkumulator 9 kann Bit sequentiell in dem Speicher mit wahlfreiem Zugriff RAM 11 während STORE, HEX oder PAR im Änderungsmodus speichern oder das Index/Cursorregister 5 laden oder hexadezimale Felder zu der Arbeitsstation 12 senden.
  • PARITÄTS-AKKUMULATOR
  • Der Paritäts-Akkumulator 12 summiert die Parität über Bit auf, die zwischen RAM 11 und dem Akkumulator während HEX und STORE Befehlen bewegt worden sind und zeigt die Parität während eines PAR Befehls an oder ändert sie. Der Akkumulator 17 wird auch als eine Setz/Rücksetz-Flagge in Verbindung mit STORE Befehlen verwendet, um Daten zu verifizieren.
  • TASTATUR-REGISTER
  • Das Tastaturregister 8 wird während eines POLL Befehls geladen, wenn eine Taste auf der Tastatur 18 der Arbeitsstation 12 gedrückt worden war. Dieser Wert kann in das Adressenregister (ROMA) 4 des Nur-Lesespeichers geladen werden, um einen Tastaturbefehl zu decodieren, oder kann codiert und in den Akkumulator 9 geladen werden. Während eines POLL Befehls enthält das Indexregister 5 den gegenwärtigen Wert des Cursors und wird verwendet, den Cursor herumzubewegen, wenn der Benutzer die Cursortaste in der Tastatur 18 drückt.
  • Befehlssatz des dritten Computers (XC)
  • OPCODE BESCHREIBUNG
  • POLL Abrufen der Arbeitsstation und Laden des Tastaturregisters mit dem Tastenwert, der von der Tastatur zurückgegeben wurde, wenn eine Taste gedrückt worden war. Setzt auch Änderungs/Anzeige-Modus des dritten Computers (XC) in Abhängigkeit von der gedrückten Taste.
  • LPAR Lade Bit 3 des Akkumulators von dem Paritäts-Akkumulator. Kann verwendet werden, die Parität eines Feldes zu erhalten, wird aber hauptsächlich während einer Verifizierungsoperation verwendet, um zu bestimmen, ob es einen Fehlvergleich gab.
  • CHART Schreibe 3278 Anzeigezeichen Reihe. Alle Bytet nach diesem Befehl werden interpretiert, als wenn sie 3278 Zeichen wären und werden zu der Anzeigestation gesendet. Ein Byte von x "06" oder x "07" beendet diesen Befehl. Byte in dem Bereich x "60" bis x "7F" werden als 3278 Befehle interpretiert und werden als x "00" bis x "1F" geschickt, wobei das Steuerbit eingeschaltet ist.
  • BKEY Lade Bit 9-15 des Adressenregisters des Nurlesespeichers ROM mit dem Tastenregister und bringe von dem Nurlesespeicher ROM die Adressenbit 16, 17 = 0. Dies wird zum Decodieren von Tastaturbefehlen verwendet.
  • LIX Lade den schrittweise erhöhten Akkumulator von dem Nurlesespeicher ROM. Das Indexregister zeigt entweder zu den vier Bit hoher Ordnung oder niederer Ordnung einen Speicherplatz in dem Nurlesespeicher ROM und dieser Abschnitt wird in den Akkumulator geladen. Die Bit 7-18 des Indexregisters werden nach dem Laden erhöht. Dies wird verwendet, um Mikrowörter, Nanowörter und Zwischenspeicherrücksetzwerte zum Laden in den Dienstprozessor auslesen.
  • PAR m Paritätsfeld gefolgt von einem (Chip)/Zwischenspeicherunterbefehl. Dieser Befehl zeigt (als "*" oder " ") an oder ändert ein Paritätsfeld auf der Grundlage des spezifizierten, durch das Umkehrbit m abgeänderten Zwischenspeichers, den Wert des Paritäts-Akkumulators und im Falle einer Änderung den Wert der gedrückten Taste (ein freier Raum für eine gute Parität, "p" für eine schlechte Parität).
  • MODE i/o Setze den Moduszwischenspeicher auf Modus ein oder Modus aus. Das Modusbit bestimmt, ob ein Abfragebefehl ein Einlesen oder ein Auslesen vornimmt. Es wird auch verwendet, einen Verifizierungsmodus (Modus ein) zu setzen, der bewirkt, daß ein Speicherbefehl eine Verifizierungsoperation statt einer Speicheroperation durchführt.
  • LOAD n Lade den Akkumulator mit n Zwischenspeicherwerten, wobei n von eins bis vier geht. Dies löscht zuerst den Akkumulator und schiebt dann n Bit ein, die durch ein n (Chip)/Zwischenspeicherunterbefehl bestimmt sind, der dem Ladebefehl folgt.
  • LINDX n Lade Indexregisterabschnitt n von dem Akkumulator, wobei n von eins bis vier geht. Der Wert n gibt an, welcher Abschnitt des Indexregisters geladen wird. Da es in dem Indexregister fünf Abschnitte gibt, wird der Abschnitt niedrigster Ordnung von dem nächst niedrigeren geladen.
  • BRXC Sprung zu adrs. adrs
  • SCAN adrs Adressen Abfragen Das Modusbit bestimmt, ob die Operation eine Abfrage oder ein Einlesen ist. Die Abfrageoperation überträgt Daten zwischen einem Chip oder RAM auf dem Mehrfach-Chipträger und einen Chipspeicherplatz in dem RAM des dritten Computers (XC). Es erhöht dann das Adressenregister des RAM des dritten Computers, um auf den nächsten Chipspeicherplatz zu zeigen. Die Adresse, die nach dem Abfragebefehl angegeben wird, ist die Abfragezeile und Spalte des Chips des Mehrfach-Chipträgers.
  • IF m Wenn der Akkumulator gleich m ist, dann lasse die nächsten drei Speicherplätze des Nurlesespeichers ROM nicht aus, sonst, wenn er nicht gleich ist, lasse die nächsten drei Byte des Codes aus. Die drei Byte des Codes, die unmittelbar dem IF Befehl folgen, sind üblicherweise ein Sprung, so daß der Code wie IF m statt BRANCH ausschaut. Wenn der Akkumulator nicht gleich m ist, dann tritt der Sprung nicht auf und die Ausführung fährt der Reihe nach fort.
  • CONST m Lade Akkumulator mit m.
  • INCR m Erhöhe Akkumulator. Die Inhalte des Akkumulators werden zuerst mit m einer exklusiven Oderfunktion unterzogen, dann erhöht und zurück in den Akkumulator geladen.
  • LDCUR n Lade Akkumulator von dem Cursorregister. Wenn n = 1-3 ist, wird der Akkumulator von dem entsprechenden Abschnitt des Cursorregisters (Bit 6-17 des Indexregisters) geladen. Dies wird verwendet, um den Cursorwert nach einem POLL (Abruf) Befehl zu sichern, so daß das Indexregister für andere Zwecke verwendet werden kann. Wenn n = 0 wird ein Wert auf der Grundlage des Indexregisters geladen, der den passenden halben Abschnitt angibt, der erhöht werden soll, um eine mit dem Grey-Code codierte Adresse zu erzeugen. Dies wird verwendet, Mikrospeicheradressen während des Ladens eines Mikrocodes zu erzeugen.
  • WDD n Schreibe direkte Daten. Dieser Befehl wird verwendet, gewisse Zwischenspeicher unmittelbar zu setzen. Diese Zwischenspeicher werden hauptsächlich verwendet, die Anzeigearbeitsstation zu steuern.
  • STORE n m Speichere Akkumulatorbit. Wenn der Modus-Zwischenspeicher auf Modus-aus ist, speichert dieser Befehl n Bit von dem Akkumulator in den Speicherplätzen des RAM, die durch n (Chip)/Zwischenspeicherunterbefehle angegeben sind, die dem Speicherbefehl folgen. Die Bit werden einer exklusiven Oderfunktion mit der Umkehrmaske m ausgesetzt, bevor sie gespeichert werden. Der Paritätsakkumulator akkumuliert die Parität über die gespeicherten Bit. Wenn der Modus-Zwischenspeicher in dem Moduspein ist, arbeitet der Speicherbefehl wie oben mit der Ausnahme, daß, statt Bit in dem RAM zu speichern, jedes Akkumulatorbit und sein entsprechendes Bit in dem RAM verglichen werden, und, wenn sie nicht gleich sind, wird das Paritätsbit gesetzt. Dies wird verwendet, um zu verifizieren, daß die Mikrospeicherdate richtig ist.
  • HEX n m Hexadezimales Feld, gefolgt von n (Chip)/Zwischenspeicherunterbefehlen. Dieser Befehl zeigt ein hexadezimales Feld an oder ändert es, das aus Bit aufgebaut ist, die in den Zwischenspeicherunterbefehlen angegeben sind, nachdem es mit der Umkehrmaske m einer exklusiven Oderfunktion unterzogen worden ist. Die Parität wird über die angegebenen Bit akkumuliert. Der Akkumulator verschiebt Bits von niedrig zu hoch ein, und, nachdem das letzte Bit eingeschoben worden ist, wird die hexadezimale Ziffer in ein 3278 Zeichen umgewandelt, das die Ziffer darstellt, und wird zu der Anzeigearbeitsstation geschickt. In dem Abänderungs-Modus wird der Tastenregisterwert in einen hexadezimalen Abschnitt umgewandelt und in den Akkumulator zu Beginn des HEX Befehls geladen, und die Bits werden dann in dem RAM während der Zwischenspeicher-Unterbefehle gespeichert.
  • SCAN (Abfrage) Befehl
  • Der dritte Computer (XC) verwendet einen SCAN Befehl in der Form
  • (SCAN-Operationscode) (scan Adresse).
  • Die Funktion dieses Befehls ist einzigartig dahingehend, daß 1) sie den Code ersetzt, der von einem Universalcomputer verlangt würde, 2) sie für Eingabe und Ausgabe in Abhängigkeit von einem Modus-Bit verwendet wird, das von einem anderen Befehl gesetzt wird. Ein Universal-Computer würde wenigstens irgendeinen getrennten Code für die Eingabe und Ausgabe verwenden, 3) sie unabhängig von dem Format der scan- Date (Abtastdate) ist. Diese Bedingungen bedeuten, daß sich das scan Protokoll ändern kann, sich aber architekturmäßig der Code des dritten Computers (XC) nicht ändern muß. Ein Universal-Computer bei dem das scan Protokoll in dem Code eingebettet ist, würde den Code ändern, wenn das scan Protokoll geändert wird.
  • HEX Befehl
  • Der dritte Computer (XC) verwendet HEX Befehle der Form (HX n m Operationscode)((Chip)/Zwischenspeicher 0 Unterbefehl). ((Chip)/Zwischenspeicher n Unterbefehl),
  • worin n die Anzahl der Zwischenspeicher in dem HEX Feld ist und m eine Umkehrmaske ist. Dieser Befehl wird verwendet, hexadezimale Felder anzuzeigen und zu ändern, die aus Bit zusammengesetzt sind, die Zwischenspeicher darstellen, die durch die Zwischenspeicher-Unterbefehle nach dem HEX Befehl angegeben werden. Der HEX Befehl ist einzigartig, weil 1) er den Code ersetzt, der bei einem Universal-Computer verlangt würde, 2) er für Eingabe und Ausgabe in Abhängigkeit von einem Modus-Bit verwendet wird, das durch einen anderen Befehl gesetzt wird, während ein Universal-Computer wenigstens irgendeinen getrennten Code für Eingabe und Ausgabe verwenden muß, 3) die Parität über des hexadezimale Feld automatisch in einem Paritätsakkumulator akkumuliert wird. Ein Universal-Computer würde die Parität getrennt akkumulieren.
  • PAR Befehl
  • Der dritte Computer (XC) verwendet PAR Befehle der Form
  • (PAR m Operationscode) ((Chip) /Zwischenspeicherunterbefehl)
  • worin m eine Umkehrmaske für den Zwischenspeicherunterbefehl ist. Der PAR Befehl wird verwendet, den Paritätswert eines Feldes anzuzeigen und zu ändern. Die Feldparität kommt von dem Paritätsakkumulator und der Paritätswert wird durch den Zwischenspeicherunterbefehl festgelegt, der dem PAR Befehl folgt. Der PAR Befehl zeigt eine gute oder schlechte Parität an oder ändert den Paritätszwischenspeicher auf eine gute oder schlechte Parität. Der PAR Befehl ist einzig, weil 1) er den Code ersetzt, der bei einem Universal-Computer verlangt würde, 2) er für Eingabe und Ausgabe in Abhängigkeit von einem Modus-Bit verwendet wird, das von einem anderen Befehl gesetzt wird, während ein Universal-Computer zumindest irgendeinen getrennten Code für Eingabe und Ausgabe verwenden würde, 3) der Code unabhängig von dem Verfahren der Akkumulation der Parität ist.
  • WRITE (SCHREIBE BEFEHL
  • Der dritte Computer (XC) verwendete WRITE (CHART) Befehle, um Zeichenreihen zu der Anzeigearbeitsstation zu schicken. Das Format ist
  • (WRITE Operationscode) (3278 Zeichenreihe).
  • Während ein Universal-Computer Zeichenreihen zu einer Arbeitsstation sendet, wird diese Funktion üblicherweise von einem Compiler oder anderem Programm verarbeitet. Der dritte Computer (XC) ist dahingehend einzig, daß diese Funktion auf dem Niveau der Maschinensprache durchgeführt wird.
  • Hardware Grey-Code-Logik
  • Der dritte Computer (XC) lädt einen Mikrocode durch Grey- Codierung der Mikrospeicheradresse statt die Adresse schrittweise zu erhöhen. Diese Codierung spart Zeit, denn nur ein Chip muß zur Änderung einer Adresse statt vieler abgefragt werden. Da der dritte Computer (XC) den Mikrocode aus dem Nurlesespeicher ROM unter Verwendung des Indexregisters ausliest und dieses Indexregister schrittweise erhöht wird, besteht eine Korellation zwischen dem Wert des Indexregisters und der Adresse in dem Mikrospeicher, in den diese Date geladen werden soll. Deshalb ist es auf der Grundlage des Wertes des Indexregisters möglich, zu bestimmen, welcher Chip aktualisiert werden soll. Da jeder Adressenchip zwei Bit an Mikrospeicheradresse enthält, wird ein Grey-Code auf der Basis vier in der folgenden Weise verwendet:
  • Die Werte werden zur Basis 4 gegeben. Index Grey
  • Der Grey-Code ändert jeweils nur eine Ziffer und diese Ziffer wird durch den Wert der Basis 4 bestimmt. Die Ziffer, die geändert wird, wird durch die Zahl auf der Basis 4 niedrigster Ordnung, die nicht null ist, ausgewählt. Die Logikgleichungen, die diese Operation ausführen, sind folgende:
  • In = Indexregisterziffer n (Basis 4)
  • InH = Indexregister, hohes Bit der Ziffer n
  • InL = Indexregister, niederes Bit der Ziffer n
  • Gn = Erhöhe Grey-Code Ziffer n (Basis 4) Bit
  • GAn = ΔInH & ΔInL & GAn-1 Diese Ziffer = 0 und alle vorhergehenden = 0
  • Gn = ΔGAn & GAn-1 Erhöhe diese Ziffer, wenn diese Ziffer A = 0 und alle vorhergehenden = 0 sind.
  • Ändern und Anzeigen unter Verwendung desselben Codes
  • Der dritte Computer (XC) verwendet denselben Code zum Ändern und Anzeigen von hexadezimalen Feldern und Paritätsfeldern, die durch die HEX und PAR Befehle angegeben werden. Diese gemeinsame Verwendung ist ein Vorteil, weil es an Code einspart und den Code in gewißerweise unabhängig von den gegenwärtigen Anzeige- und Änderungsmechanismen macht.
  • Ändern/Anzeigen wird in dem dritte Computer (XC) durch eine Zustandseinrichtung in der Steuereinrichtung 24 gesteuert, die bestimmt, in welchem Modus der dritte Computer (XC) ist. Diese Zustandseinrichtung hat 4 Zustände, die sind: ROLL, DISPLAY, ALTER SEARCH und ALTER CHANGE. In den POLL Zustand wird eingetreten, indem ein POLL (Abruf) Befehl (Operationscode = 0) ausgeführt wird. Die Zustandseinrichtung fragt die Arbeitsstation nach einer Taste ab und ändert den Status auf der Grundlage des zurückgegebenen Tastenwertes. Die Zustandseinrichtung in der Steuereinrichtung 24 erkennt drei Arten von Tasten: Cursor (Aufwärtspfeil, Abwärtspfeil, Pfeil nach links und Pfeil nach rechts), Daten (0-9, A-F, P, " " Tasten) und Befehl (irgendeine andere Taste). Wenn eine Cursortaste gedrückt wird, bewegt die Zustandseinrichtung den Cursor wie es angegeben wird und bleibt in der POLL Statuseinheit, wenn entweder eine Daten- oder Befehlstaste gedrückt wird. Wenn eine Befehlstaste gedrückt wird, tritt sie in den DISPLAY (ANZEIGE) Status ein, und wenn eine Datentaste gedrückt wird, tritt sie in den ALTER SEARCH (SUCHE ÄNDERN) Zustand ein. Es ist dieser Vorgang, der den Unterschied zwischen Ändern und Anzeigen bestimmt. Im DISPLAY- Modus akkumulieren HEX und PAR Befehle Zwischenspeicherwerte in einem Akkumulator 9 von vier Bit der Fig. 4 plus einem Paritätsakkumulator 17 in Fig. 4 und zeigen hexadezimale Felder oder Paritätsfelder von diesen Akkumulatoren an. Im ALTER SEARCH Modus arbeiten die HEX und PAR Befehle in derselben Weise mit der Ausnahme, daß die tatsächliche Anzeige von Daten unterdrückt wird. Es gibt ferner zusätzlich eine Funktion, die Cursoranpassung genannt wird, die durchgeführt wird, damit die gegenwärtige Cursorlage (die Lage auf dem Schirm, die geändert worden war) an einen bestimmten HEX oder PAR Befehl angepaßt wird. Dieser Vorgang wird ALTER SEARCH genannt. Wenn der Cursor angepaßt ist, bewegt sich die Zustandseinrichtung zu dem ALTER UPDATE (AKTUALISIEREN ÄNDERN) Zustand. Dieser Vorgang bewirkt, daß der HEX oder PAR Befehl die hexadezimale Date oder Paritätsdate aus dem Tastaturregister 8 ausschließt, das den Wert der Taste hält, die gedrückt worden war. Dieser Wert wird dann in den Speicherplätzen des RAM 11 gespeichert, die durch Zwischenspeicherunterbefehle nach dem HEX oder PAR Befehl festgelegt werden. Auch wird zu diesem Zeitpunkt eine Flagge gesetzt, die bewirkt, daß der Paritäts-Akkumulator den Paritätsunterschied zwischen der alten und der neuen Date statt gerade nur die Parität der alten Date akkumuliert. Diese Flagge bleibt gesetzt, bis das nächste Paritätsfeld angetroffen wird, wobei dann das Paritätsbit mit der Parität über dem neuen Feld aktualisiert wird.
  • Automatische Paritätsakkumulations-Logik (Anzeigen und Ändern)
  • Alle Paritätsänderungen, die ein Anzeigefeld einschließen, sind für den Code transparent bzw. zugängig. Das heißt, der Code sollte aussehen wie:
  • WRITE " " Der WRITE Befehl begrenzt Felder. HEX Speicherunterbefehle So viele HEX-Befehle wie notwendig. Dies ist ein Feld PAR Speicherunterbefehl DISPLAY
  • Am Anfang des Feldes löscht der WRITE Befehl den Paritätsakkumulator. Während der HEX Befehle verschiebt jeder Speicherunterbefehl ein Bit in den Akkumulator 9. Ebenfalls wird der Paritätsakkumulator 17 mit diesem Bit geladen, das einer exklusiven Oderfunktion mit dem Paritätsakkumulator 17 für jedes Bit unterzogen worden ist, das in den Akkumulator 9 geladen wird. Die Parität wird nach einem HEX Befehl nicht gelöscht, so daß die Parität über mehrere HEX Befehle akkumuliert wird. Wenn ein PAR Befehl ausgeführt wird, wird das Bit, das in dem folgenden Speicherunterbefehl angegeben ist, einer exklusiven NOR-Funktion (da wir ungerade Parität verwenden) unterzogen, um ein Signal zu erzeugen, das anzeigt, daß dieses Feld eine gute Parität (= 0) oder eine schlechte Parität (= 1) hat. Dieses Signal bewirkt, daß entweder ein Freiplatz oder ein Paritätsstück zu der Anzeigearbeitsstation geschickt wird.
  • ALTER (ABÄNDERN)
  • Während des Änderungsmodus wird die Paritätsakkumulation durch vier Signale beeinflußt: das ALTER SEARCH und das ALTER UPDATE Signal von der Zustandseinrichtung der Steuereinrichtung 24, das HEX START, das den Anfang eines HEX Befehls angibt, und das UPDATE, das eine Flagge ist, die gesetzt wird, wenn in den ALTER UPDATE Zustand eingetreten wird. Während ALTER SEARCH arbeitet der Paritätsakkumulator 17 in der gleichen Weise wie beim Anzeigemodus. Wenn der dritte Computer (XC) ein HEX Feld findet, das zu der Cursorposition paßt, tritt er in ALTER UPDATE ein. An dieser Stelle wird ein hexadezimales Feld geändert und dieses mag den Sinn des Paritätsbits ändern, so daß der Paritätsunterschied zwischen dem alten Feld und dem neuen Feld akkumuliert wird. Das erste, was gemacht wird, ist, den Paritätsakkumulator 17 zu löschen, da irgendwelche hexadezimalen Felder, die vor demjenigen kamen, das geändert wird, die Parität nicht ändern (das einzige Feld, das das Paritätsbit ändern kann, ist das gegenwärtige, da es das einzige ist, das geändert wird). Dieser Vorgang wird durch ALTER UPDATE & HEX START angegeben (ALTER UPDATE ist nur während dieses hex Befehls aktiv). Während der nachfolgenden Speicherunterbefehle geht die Zustandseinrichtung von ALTER UPDATE zu ALTER SEARCH, wobei aber die UPDATE Flagge, die zu Beginn des HEX Befehls gesetzt wurde, gesetzt bleibt. Dieser Vorgang gibt dem Paritätsakkumulator 17 an, Nullen zu akkumulieren, da kein hexadezimales Feld danach beeinflußt, ob das Paritätsbit umgekehrt (= 1) oder nicht (= 0) werden muß. Wenn der PAR Befehl bei gesetzter UPDATE Flagge angetroffen wird, nimmt der PAR Befehl das alte Bit, das durch den Speicherunterbefehl angegeben worden ist, unterzieht es einer exklusiven Oder-Funktion mit dem Paritätsakkumulator und der UPDATE Flagge so, daß es wieder normal arbeitet. Man beachte, daß irgendeine Umkehrung, die in dem PAR Befehl angegeben worden war, keine Wirkung während UPDATE hat, da dieses unabhängig davon ist, ob die Parität umgeschaltet werden muß oder nicht.
  • Cursor-Reaister und Verfolgungslogik
  • Der dritte Computer (XC) verwendet Hardware, um den Cursor auf der Anzeigearbeitsstation in Reaktion auf Pfeiltasten, die gedrückt worden sind, zu verfolgen und zu bewegen. Es gibt bei dieser Logik zwei Teile. Der erste Teil ist das Cursorregister und seine Erhöhungs-/Verringerungslogik und der zweite Teil ist eine Zustandseinrichtung, die die Cursorbefehle zum Setzen und die Cursorregisterwerte schickt, die momentan den Cursor auf der Anzeigearbeitsstation bewegen.
  • Diese Funktion wird aktiviert, wenn der dritte Computer (XC) einen POLL Befehl ausführt und eine Pfeiltaste wird gedrückt und während des POLL Befehls zu dem dritte Computer (XC) zurückgeschickt wird. Das Ausführen des POLL Befehls bewirkt, daß die Zustandseinrichtung der Arbeitsstation in den POLL Zustand eintritt, und, wenn die Pfeiltaste erfaßt wird, geschehen drei Dinge. Als erstes wird das Cursorregister auf der Grundlage davon aktualisiert, welche Pfeiltaste gedrückt worden ist (bei der 3278 Arbeitsstation entspricht die oberste, linke Position der Cursorlage x "050". Die Cursorpositionen nehmen schrittweise nach rechts und nach unten zu der untersten linken Position zu, die x "7CF" ist). Ein aufwärtsgerichteter Pfeil bewirkt, daß 80 von dem Cursor abgezogen wird, ein nach unten gerichteter Pfeil addiert 80 zu dem Cursor hinzu, ein linker Pfeil subtrahiert eins und ein rechter Pfeil addiert eins. Es gibt auch eine Überlauf-/Unterlauflogik, die erfaßt, ob der Cursor über das obere Ende oder das untere Ende des Schirmes bewegt wird und bringt den Cursor an die richtige Position an dem unteren Ende des Schirmes (beispielsweise wenn Cursor = x "050" und der linke Pfeil gedrückt wird, wird der Cursor mit x "7CF" geladen).
  • Die zweite Sache, die stattfindet ist, daß die Zustandseinrichtung zum setzen des Cursors gestartet wird, die die Setzbefehle für den Cursor zusammen mit dem aktualisierten Cursorwert an die Arbeitsstation schickt. Die dritte Sache, die stattfindet, ist, daß die Arbeitsstation-Zustandseinrichtung die Arbeitsstation erneut abruft und mit dem Abrufen fortfährt, bis eine andere Taste als eine Cursortaste angeschlagen worden ist. Wenn eine Cursortaste angeschlagen worden ist, wird das Cursorregister wie oben beim Schritt eins aktualisiert und wie beim Schritt zwei ausgelesen und das Abrufen wird beibehalten.
  • Indexregister und Cursorregister verwenden dieselben physikalischen Zwischenspeicher
  • Da das Cursorregister und das Indexregister niemals gleichzeitig verwendet werden, können diese zwei Register dasselbe physikalische Register 5 miteinander teilen. Der Cursor wird nur verwendet, wenn der dritte Computer (XC) mit der Arbeitsstation spricht (nachdem entweder eine Cursortaste oder eine Datentaste gedrückt wurde), und das Indexregister wird nur verwendet, Zwischenspeicher- oder RAM-Werte in den Computer 27 zu laden, was die Verwendung der Arbeitsstation nicht verlangt. Der Code des dritten Computers (XC) muß dann das Cursor/Indexregister auf der Grundlage von dem, was der Code macht, laden und bewahren. Beispielsweise lädt der dritte Computer (XC), unmittelbar bevor er einen POLL Befehl ausgibt, das Cursorregister mit dem gegenwärtigen Cursorwert. Nach dem POLL Befehl bewahrt der dritte Computer (XC) ihn stets, bis der nächste POLL oder die nächste Änderung gemacht werden muß. Zu Beginn des Lade-Mikrocode-Codes lädt der dritte Computer (XC) die Anfangsadresse des Nur-Lesespeichers ROM des Mikrocodes in das Indexregister.
  • Verifizierungslogik, so daß das Laden und Verifizieren denselben Code verwenden
  • Eine der Aufgaben des dritten Computers (XC) ist, zu verifizieren, daß, das was in dem zweiten Computer 27 abgefragt worden ist, dasselbe wie in dem Nurlesespeicher ROM des dritten Computers (XC) ist. Der dritte Computer (XC) verwendet eine Logik, die den STORE Befehl verändert, um eine Verifizierung statt eines Speicherns durchzuführen. Diese Operation ist unter der Steuerung eines Modus-Bit. Der STORE Befehl wird von einem bis vier Zwischenspeicherunterbefehlen gefolgt und er speichert Bit von dem Akkumulator in Speicherplätze des RAM des dritten Computers (XC), die den Zwischenspeicherunterbefehlen entsprechen. Im Verifizierungsmodus speichert er nicht, aber vergleicht statt dessen das Bit in dem Akkumulator mit dem entsprechenden Bit in dem RAM des dritten Computers (XC), und wenn sie unterschiedlich sind, setzt er den Paritätsakkumulator. Der Paritätsakkumulator akkumuliert in diesem Modus die Parität nicht, sondern wird ein "Setze nur den Zwischenspeicher" wenn es einen Fehler beim Vergleich gibt.
  • Der Code zum Laden von Mikrocodes ist wie folgt:
  • Setze Indexregister
  • . . .
  • MODUS aus Setze dritten Computer (XC) in Lade-Modus
  • LIX Setze Mikrocode in Akk.
  • STORE MS.Bit0, Bit1, Bit2, Bit3 Speichere Akk. in RAM des dritten Computers (XC)
  • . .
  • SCAN ein/MS Einlesen in Mikrospeicher von RAM des dritten Computers (XC)
  • Der Code zur Verifizierung ist wie folgt:
  • Setze Indexregister
  • . . .
  • SCAN ein/MS abfragen des Mikrospeichers
  • . . .
  • MODUS ein setze dritten Computer (XC) in Verifizierungsmodus
  • LIX setze Mikrocode in Akk.
  • STORE MS.Bit0, Bit1, Bit2, Bit3 Verifiziere Akk. mit RAM des dritten Computers (XC)
  • . . .
  • LPAR bewege Parität von Akk. zu Akk.
  • IF 1 wenn 1 dann
  • BRXC Fehlvergleich spring zu Fehlercode.
  • Der STORE Befehl im Verifizierungsmodus könnte gemacht werden, die Akkumulatordate zu speichern, wie er sie verifiziert hat, wobei wir aber wählen, dies nicht vorzunehmen, so daß die schlechte Date weiterhin in dem RAM des dritten Computers (XC) wäre und wir sie nicht erneut abrufen müssen, wenn es einen Fehler gab.
  • Automatische Hardware-Syntaxanalyse (Parsing) der Tastaturbefehle
  • Der XC verwendet einzelne Tastenbefehle. Deshalb kennt die Hardware die Funktion, die durchgeführt werden soll, da der Tastenwert in einem Tastenregister gespeichert ist. Dies ermöglicht dem POLL Befehl (der die Taste von der Tastatur liest), die Zustandseinrichtung der Arbeitsstation in den passenden Zustand zu setzen. Es erlaubt auch einen Sprung bei einem Tastenbefehl (BKEY) in Verbindung mit einer Sprungtabelle, um Befehle zu decodieren.
  • Der POLL Befehl ruft die Tastatur ab und lädt das Tastenregister mit dem Tastenwert. Wenn die Taste eine Befehlstaste ist, geht die Zustandseinrichtung der Arbeitsstation in den DISPLAY Zustand und der POLL Befehl gibt einen Wert x "1" in den Akkumulator zurück. Dies sagt dem XC, den BKEY Befehl zu verwenden. Wenn die Taste eine Datentaste ist, wird die Zustandseinrichtung der Arbeitsstation in den Modus ALTER SEARCH gesetzt und ein Wert x "3" wird in den Akkumulator zurückgegeben. Dies bewirkt, daß der dritte Computer (XC) die gegenwärtige Anzeige durchführt, aber prüft, um zu sehen, ob sie hinterher geändert worden ist und ein Einlesen vorzunehmen, wenn dies der Fall ist. Wenn eine Cursortaste gedrückt worden war, verarbeitet die Hardware des dritten Computers (XC) dieses und ist für den Code transparent. Wenn keine Taste gedrückt worden war, gibt der POLL Befehl null in den Akkumulator zurück was dem dritte Computer (XC) anzeigt, daß er erneut die letzte Anzeige anzeigen soll, die er anzeigte.
  • Umkehrmaske in HEX STORE, PAR Befehlen festgelegt
  • Der dritte Computer (XC) muß einen Zwischenspeicherwert als umgekehrt oder nicht umgekehrt angeben, wenn immer er verwendet wird. Beispielsweise kann ein Abfrageseitenfeld einen Zwischenspeicher spezifizieren, daß er umgekehrt angezeigt werden soll, wenn der logische oder physikalische Wert eines Zwischenspeichers umgekehrt wird. Da diese Operation häufig auftritt, können wir für jeden Zwischenspeicher ein Umkehr- Bit festlegen. Diese Operation wird in dem HEX, PAR oder STORE Befehl statt bei den Speicherunterbefehlen selbst gemacht, weil der Befehl in einem Befehlsregister durch alle Speicherunterbefehle gehalten wird und es eine einfache Sache ist, eine Umkehrmaske, die Teil des Befehls ist, mit dem entsprechenden Akkumulatorbit einer exklusiven Oderfunktion zu unterziehen.
  • Adressieren der Zwischenspeicher unter Verwendung von Chip- und Speicherunterbefehlen
  • Physikalische Zwischenspeicher werden nicht direkt von dem dritte Computer (XC) adressiert. Statt dessen wird, wenn ein gewisser Zwischenspeicher verlangt wird, dann der gesamte Chip, der diesen Zwischenspeicher enthält, in den RAM des dritten Computers (XC) ausgelesen, wobei ein SCAN Befehl verwendet wird, um anzugeben, welcher Chip ausgelesen werden soll. Auf den einzelnen Zwischenspeicher kann dann unter Verwendung von Chip- und Speicherunterbefehlen zugegriffen werden. Sie werden auch Unterbefehle genannt, weil sie stets entweder einem HEX, PAR, LOAD oder STORE Befehl folgen. Die Chip-Unterbefehle wählen einen Speicherplatz in der Länge von 64 Bit in dem RAM des dritten Computers (XC) aus. Die Speicherunterbefehle wählen ein einzelnes Bit innerhalb dieser Stelle von 64 Bit. Die Adressen, die durch die Chip- Unterbefehle angegeben werden, entsprechen nicht der physikalischen Abfrageadresse des Chips, sondern vielmehr der Reihenfolge, mit der der Chip in der Liste von Abfragebefehlen abgefragt worden war. Es sei beispielsweise angenommen, daß wir die Chips GLU1, GLU2 und GLU3 mit den physikalischen Adressen x "3C", x "33" bzw. x "3B" in die RAM- Chipspeicherplätze x "00", x "01" bzw. x "02" auslesen. Wenn wir die Zwischenspeicher x "03" und x "04" des Chip GLU2 in den Akkumulator laden wollen, ist der Code wie folgt: Speicherst. Code HEX Akkumulatorbefehl Chip-Unterbefehl Kwischenspeicherunterbefehl nächster Befehl
  • Dieser Code zeigt zwei Dinge. Zunächst wird ein Chipunterbefehl von einem Speicherunterbefehl durch das Bit höherer Ordnung des Unterbefehls unterschieden. Diese Unterscheidung arbeitet, weil die Chipadresse sieben Bit hat und die Speicheradresse sechs Bit hat. Zweitens wird ein Chipunterbefehl nicht für jeden Speicherunterbefehl benötigt. Die meiste Zeit ist der nächste angegebene Zwischenspeicher auf demselben Chip, wie der vorhergehende. Die Chipadresse wird während des Chipunterbefehls gespeichert und bleibt dieselbe bis zu dem nächsten Chipunterbefehl. Deshalb bezieht sich der Chipunterbefehl an dem Speicherplatz 1 auf GLU2. Man beachte auch, daß, wenn auf Chipunterbefehle bezug genommen wird, auf tatsächliche Chips bezug genommen werden kann, obgleich sogar Speicherplätze des RAM angegeben werden, weil das Abbilden des physikalischen Chip auf den Speicherplatz des RAM bekannt ist.
  • Einlesen nur bei Chips, die die Logik ändern, wobei eine Startbitflaage verwendet wird
  • Wenn eine Abfrageseite geändert wird, ist es eine Anforderung, nur diejenigen Chips einzulesen, die sich tatsächlich geändert haben. Ein automatisches Verfahren zum Bestimmen, ob sich ein Chip geändert hat, wird verwendet. Das automatische Verfahren verwendet ein bestimmtes Bit in dem Chipspeicherplatz von 64 Bit in dem RAM des dritten Computers (XC) als eine Flagge, um anzugeben, ob dieser Chipspeicherplatz abgeändert worden ist. Dieses Bit, das Startbit genannt wird, weil es dem ersten Bit entspricht, das während eines Abfragevorgangs eingelesen oder ausgelesen wird, wird von der Abfrageeinrichtung 56 nicht verwendet (die Abfrageeinrichtung ersetzt dieses Bit durch eine durch Hardware erzeugte Null) wird zurückgesetzt, indem ein Auslesevorgang vorgenommen wird. Wenn dieses Chip unmittelbar eingelesen wird, wird die Einleseoperation zu einer Nicht-Operation gemacht und der Chip wird nicht geändert. Die Annahme ist hier, daß, da die Date, die eingelesen werden soll, genau dieselbe ist, wie die Ausgelesene (dies wird durch die Tatsache angegeben, daß das Startbit zurückgesetzt wird) und (wahrscheinlich) dieselbe wie die gegenwärtige in dem Chip vorhandene Date, so daß keine Notwendigkeit für ein tatsächliches Einlesen besteht. Wenn das Startbit gesetzt ist, dann würde eine tatsächliche Einleseoperation auftreten.
  • Die Bedingungen, ein tatsächliches Einlesen durchzuführen (das heißt, das Setzen des Startbit) treten auf, wenn ein Bit in einem Chipspeicherplatz des RAM des dritten Computers (XC) abgeändert wird. Die einzigen Operationen, die Bits in den RAM des dritten Computers (XC) abändern, sind STORE, HEX und PAR (HEX und PAR Befehle wirken wie die STORE Befehle im Aktualisierungsmodus). So müssen deshalb diese Befehle das Startbit des Chipspeicherplatzes in dem RAM des dritten Computers (XC) nicht setzen. Jedoch kann mehr als ein Chipspeicherplatz durch einen einzigen Befehl abgeändert werden, wenn sie Chipunterbefehle haben, die den gegenwärtigen Chip ändern. Es ist somit deshalb der Chipunterbefehl, der tatsächlich bewirkt, daß das Startbit in dem neuen Chipspeicherplatz gesetzt wird. Man beachte, daß, selbst wenn die neu gespeicherte Date dieselbe wie die alte Date ist, so daß sich die Date tatsächlich nicht geändert hat, das Startbit dennoch gesetzt wird. Da auch der Chipspeicherplatz des RAM des dritten Computers (XC) zwischen Befehlen gehalten wird, ist es notwendig, einen Chipunterbefehl vor dem ersten Zwischenspeicherunterbefehl zu haben, selbst wenn sich der Chipspeicherplatz nicht ändert, so daß das Startbit für diesen Speicherplatz gesetzt wird. Dies ist wirklich nur ein Problem für HEX und PAR Befehle, und so verlangen wir als Programmierregel einen Chipunterbefehl als den ersten Unterbefehl nach dem HEX oder PAR Befehl, selbst wenn das Chip das gegenwärtige Chip ist.
  • Das Startbit ist auch ein passendes Bit, diese Funktion auszuwählen, da, wenn sich die Abfrageeinrichtung (scan machine) in ihrem Leerlaufzustand befindet, es die Adresse des Startbit auf seinen parallelen Adressenleitungen hat. Da diese Leitungen durch einen Multiplexer (MUX) in die Adresse des RAM des dritten Computers (XC) gehen, hängt es nur vom Umschalten des Multiplexers (MUX) auf die Abfrageeinrichtung während eines Chipunterbefehls ab, um die richtige Adresse in den RAM zu geben. Somit verlangt diese Funktion sehr wenig Logik, die ausgeführt werden muß.
  • Verwenden des Adressenregisters des RAM, um vorübergehend die Sprungadresse des Nurlesespeichers ROM zu halten
  • Da die Adressen des Nurlesespeichers ROM des dritten Computers (XC) 18 Bit weit sind und die Datenweite des Nurlesespeichers ROM acht Bit ist, braucht man drei Zyklen, um eine vollständige Sprungadresse von dem Nurlesespeicher ROM abzufragen. Deshalb ist es notwendig, vorübergehend einen Teil der Sprungadresse (zumindest 10 Bit) zu speichern. Die letzten ausgelesenen acht Bit können unmittelbar in dem Adressenregister des Nurlesespeichers ROM gespeichert werden. Zwei Bit können vorübergehend in der Zustandseinrichtung zur Befehlsdecodierung in dem dritte Computer (XC) gespeichert werden, indem vier Operationscode für Sprünge vorgesehen werden. Die verbleibenden acht Bit müssen nur für einen Zyklus gespeichert werden. Wir wählen, das Adressenregister des RAM zu verwenden, um dieses vorzunehmen, da bei dem ursprünglichen Einsatz Sprungbefehle nur benötigt wurden, um zwischen unterschiedlichen Algorithmen zu bewegen, und es spielte keine Rolle, ob die Inhalte des Adressenregisters des RAM verloren wurden. Dies bewahrte davor, ein zusätzliches Register nur für diese Funktion hinzuzufügen, und die obige Beschränkung gilt weiter für die meisten Algorithmen des dritten Computers (XC). Das einzige Problem tritt auf, wenn wir versuchen, den RAM des dritten Computers (XC) zu indizieren. Es ist nicht möglich, eine Schleife zu haben, in der wir irgendeine Operation bei einem Chipspeicherplatz vornehmen, dann den Chipspeicherplatz erhöhen und dieses für alle Chipspeicherplätze vornehmen. Der Grund ist, weil, wenn wir zum oberen Ende der Schleife zurückspringen, der Chipspeicherplatz zerstört sein wird und irgendeinen gesetzten Wert hat, der von der Adresse der Schleife in dem Nurlesespeicher ROM abhängt. Dies beeinflußt Alogrithmen, wie die SIC/SOC-Anzeige, bei der wir alle Chips auslesen und sie in einem Rohformat anzeigen möchten. Wir möchten alle Chips auslesen und dann eine Schleife haben, die sich schrittweise durch alle Chips erhöht, wobei ein kurzer Codeabschnitt verwendet wird, der einen einzelnen Chipspeicherplatz anzeigt. Dieses Problem ist zusammengesetzt, wenn mehrere Chips betroffen sind und es Indexwerte in dem RAM des dritten Computers (XC) gibt, die vollständig auf anderen Chips sind.
  • Weitere Einzelheiten, die die genaue Logik und die Zustandseinrichtung in der Steuereinrichtung 24 der Fig. 4 spezifizieren, sind in dem beigefügten Anhang A gezeigt.
  • Beispielhafte Einzelheiten des ersten Computers 26 und des zweiten Computers 27, die den ersten und zweiten Befehlssprung ausführen, sind in dem obengenannten US Patent 4,244,019 beschrieben.
  • In Verbindung mit irgendeinem ersten und zweiten Computer der beschriebenen Art ist ein dritter Befehlsstrom, der in dem dritten Computer 28 ausgeführt wird, in beispielhafter Weise in der folgenden Tabelle 1 gezeigt.
  • Tabelle 1
  • M&sub0; STARTXC
  • M&sub1; IDLEXC
  • M&sub2; CTRLXC
  • M2,1 LOAD FEKEY
  • M2,2 IF 1, FEKEY
  • M2,3 BRXC, FEXC
  • M2,4 LOAD RETRIED
  • M2,5 IF 1, RETRIED
  • M2,6 BRXC ABORTXC
  • M2,7 LOAD ESPSTRT
  • M2,8 IF 1, ESPSTRT
  • M2,9 BRXC; IPLXC
  • M2,10 LOAD CHKSTP
  • M2,11 IF 1, CHKSTP
  • M2,12 BRXC, IPLXC
  • M2,13 BRXC, IDLEXC
  • M&sub3; FEXC
  • M&sub4; IPLXC
  • M&sub5; ABORTXC.
  • In der Tabelle 1 ist ein typisches Programm gezeigt, das der dritte Computer 28 ausführt. Die Aufgabe des Programms der Tabelle 1 ist, den Betrieb des zweiten Computers 27 der Fig. 1 zu überwachen. Das Programm der Tabelle 1 enthält eine Anzahl von Makrobefehlen M&sub0;, M&sub1;, M&sub2;, . . ., M&sub5;. Jeder Makrobefehl enthält eine Anzahl von Befehlen, die zusammengruppiert sind, um gewisse Funktionen durchzuführen.
  • Der STARTXC Makrobefehl M&sub0; arbeitet, um alle verlangten Initiierungsfunktionen vorzunehmen, wie das Setzen des Wiederholungs- bzw. Wiederversuchs-Zwischenspeichers 86 der Fig. 2 auf 0 (SETL 0 RETRIED). Der M&sub0; Makro überwacht den START Zwischenspeicher 89, der durch den Schalter 74 gesetzt wird und durch STARTXC zurückgesetzt wird, nachdem die Initiierung angefangen hat.
  • Der IDLEXC Makrobefehl M&sub1; arbeitet, um fortlaufend in einer Schleife abzuarbeiten, die gemacht wird, wenn der zweite Computer 27 in einem fehlerfreien, normalen Modus arbeitet. Wenn er nicht in dem normalen Modus arbeitet oder wenn andere Operationen durch den dritten Computer 28 durchgeführt werden müssen, verläßt das Programm den M&sub1; Befehl und tritt in den CTRLXC Makrobefehl M&sub2; ein. Der M&sub2; Makrobefehl enthält beispielsweise eine Anzahl von Prüfsequenzen, um zu bestimmen, welcher andere Makrobefehl durchgeführt werden sollte, wenn das Programm nicht in dem Leerlaufmodus des M&sub1; Befehls arbeitet.
  • Beispielsweise prüfen die Befehle M2,1, M2,2 und M2,3, um zu bestimmen, ob der FEKEY Schalter 72 der Fig. 1 freigegeben worden ist. Wenn dies der Fall ist, wird ein Sprung zu dem FEXC Makrobefehl M&sub3; vorgenommen. Der Makrobefehl M&sub3; enthält Befehle, die einem Wartungsingenieur ermöglichen, von Hand und auf andere Art die Arbeitsweise des Systems 1 der Fig. 1 zu steuern.
  • In Tabelle 1 prüfen die Befehle M2,4, M2,5 und M2,6, zu bestimmen, ob der Wiederversuchs-Zwischenspeicher 73 auf eine 1 gesetzt worden ist. Der Wiederversuchs-Zwischenspeicher 73 wird gesetzt, wenn ein einleitendes Programmladen (IPL) des zweiten Computers 27 eine vorbestimmte Anzahl von Malen versucht worden ist, beispielsweise 16 mal ohne Erfolg. Wenn das einleitende Programmladen nach 16 Versuchen nicht erfolgreich war, wird kein weiterer Versuch beim einleitenden Programmladen (IPL) gemacht, und der Code springt zu dem ABORTXC Makrobefehl M&sub5;, der irgendeinen Versuch beendet, automatisch den zweiten Computer 27 ohne äußeres Eingreifen erneut zu starten.
  • In der Tabelle 1 prüfen die Befehle M2,7, M2,8 und M2,9 den Zustand des ESPSTRT Zwischenspeichers. Der ESPSTRT Zwischenspeicher wird auf 1 gesetzt, wenn immer der erste Computer 26 oder irgendeine andere Quelle eine Anforderung mitgeteilt hat, daß der dritte Computer 28 erneut startet und der zweite Computer 27 einleitend geladen wird. Wenn ESPSTRT auf 1 gesetzt wird, verzweigt sich der dritte Befehlsstrom der Tabelle 1 zu dem IPLXC Makrobefehl M&sub4;. Der Makrobefehl M&sub4; enthält einleitende Programmlade-Befehle zum Löschen, Zurücksetzen, zum Laden von einer Platte und/oder einem Nurlesespeicher ROM der Programme und Informationen, die notwendig sind, den Betrieb des zweiten Computers 27 wieder zu beginnen.
  • In Tabelle 1 prüfen die Befehle M2,10, M2,11 und M2,12, zu bestimmen, ob die torgesteuerten Takte in dem zweiten Computer 27 angehalten worden sind oder nicht, und, wenn dies der Fall ist, wird zu dem Makrobefehl M&sub4; für einen erneuten Start des einleitenden Programmladens des zweiten Computers 27 gesprungen. Wenn keine der Sprungbedingungen vor dem Befehl M2,13 vorgenommen worden sind, dann beendet der CTRLXC Makro, indem zu dem IDLEXC Makrobefehl M&sub1; gesprungen wird. Weitere Einzelheiten des Makrobefehls M&sub1; werden in Verbindung mit der folgenden Tabelle 2 beschrieben, wo "*" Anmerkungen bezeichnet, die nicht Teil des Codes sind.
  • Tabelle 2
  • IDLEXC M&sub0; CONST C
  • * GIB ARBEITSSTATION FREI
  • M1,2 WDD 1
  • M1,3 SETL, XCSYSO.ESPSTRT,0,IFAIL,0,
  • XCSYXS. CHKSTP, 0, POWR, 1
  • IDLOOP M1,4 SCAN OUT,CLEAR,,CCNT,ERR
  • M1,5 LDCUR 0
  • M1,6 STORE 8, XCSYSO. FEKEY, XXXXX, XXXXX, XXXXX
  • M1,7 IF 0,CCNT.GATD
  • M1,8 BRXC IDEND
  • * PRÜFE STROM-EIN-ZWISCHENSPEICHER
  • M1,9 IF 0,POWR
  • M1,10 BRXC IDEND
  • * AUSLESEN (SCAN OUT) ODER ERHALTE SONST ESP SIGNAL
  • M1,11 IF 0,ERR.IPUP,IPDP
  • M1,12 BRXC IDLOOP
  • * VERARBEITE DIE GESETZTE ESP FLAGGE
  • M1,13 SETL,XCSYSO.ESPSTRT,1
  • M1,14 BRXC IDEND
  • IDCHK M1,15 SETL,XCSYS.CHKSTP,1
  • IDEND M1,16 SETL,XCSYSO.SHIFT, 0, IFAIL, 1
  • Der M1,1-Befehl CONST lädt eine Konstante in den Akkumulator 9 der Fig. 3, die gleich dem hexadezimalen C ist, das der dezimalen 12 äquivalent ist.
  • Der M1,2-Befehl WDD arbeitet, eine direkte Date zu schreiben, was bewirkt, daß die Inhalte des Akkumulators 9 in die Zustandseinrichtung der Steuereinrichtung 24 in Fig. 3 geschrieben werden. Die Steuereinrichtung 24, die WDDI zusammen mit den Akkumulatorinhalten erhält, bewirkt, daß die Steuereinrichtung 24 einen Zwischenspeicher 62 der Fig. 4 setzt, der durch den Multiplexer 46 den Zugriff auf die Arbeitsstation 12 steuert. Dieser Zwischenspeicher 62 ermöglicht, wenn er gesetzt ist, daß der dritte Computer 28 der Fig. 1 und 4 Zugriff zu der Arbeitsstation 12 über die Leitungen 64 erhält. Wenn der Zwischenspeicher 62 zurückgesetzt ist, hat der zweite Computer 27 Zugriff auf die Arbeitsstation 12 über Leitungen 63, und der Computer 28 ist ausgeschlossen. Nach dem M1,2-Befehl der Tabelle 1 hat der Computer 27 Zugriff auf die Arbeitsstation 12.
  • Der M1,3-Befehl SETL wird verwendet, um Zwischenspeicher zu setzen, die definierte Speicherplätze in dem RAM 11 sind. Diese Speicherplätze in dem RAM 11 werden durch den SETL Befehl gelöscht, so daß sie verwendet werden können, um Informationen zu speichern wie es nachfolgend beschrieben wird. Der ESPSTRT Speicherplatz wird verwendet, um anzugeben, daß der Computer 26 oder irgendeine andere Quelle verlangt hat, daß der Computer 28 ein einleitendes Programmladen bei dem Computer 27 vornimmt. Der ESPSTRT Speicherplatz in dem RAM 11 entspricht dem Zwischenspeicher 51 der Fig. 2. Wenn der Zustand des Zwischenspeichers 51 durch die Abfrageeinrichtung 56 ausgelesen wird, wird der Wert 1 oder 0 des Zwischenspeichers 51 in dem ESPSTRT Speicherplatz in dem RAM 11 gespeichert.
  • Der IFAIL Speicherplatz in dem RAM 11 wird gesetzt, wenn irgendwelche Fehler in dem Computer 27 auftreten. Der IFAIL Speicherplatz wird gesetzt, wenn immer irgendeiner der Geschichts-Zwischenspeicher, wie die Geschichts-Zwischenspeicher 51-3 bis 53-N in Fig. 2 gesetzt wird. Der IFAIL Speicherplatz in dem RAM 11 wird gesetzt, wenn die Abfrageeinrichtung 56 der Fig. 2 die Geschichts-Zwischenspeicher 53-1 bis 53-N ausliest.
  • Der CHKSTP Speicherplatz in dem RAM 11 wird gesetzt, wenn immer der Takt des Computers 27 angehalten ist. Der CHKSTP Speicherplatz wird gesetzt, wenn der Zwischenspeicher 54 der Fig. 2 durch die Abfrageeinrichtung 56 ausgelesen wird.
  • In dem SETL Befehl entspricht XCSYSO einem Chipspeicherplatz und ESPSTRT gibt einen Zwischenspeicherplatz auf diesem Chip an. In dem Fall von IFAIL ist in dem M1,3-Befehl kein Chipspeicherplatz angegeben worden, und daher wird derselbe Chipspeicherplatz XCSYSO wie für den vorhergehenden Einsprung ESPSTRT einbezogen. Ähnlich entspricht XCSYS einem Chipspeicherplatz und CHKSTP entspricht einem Zwischenspeicher-Speicherplatz auf diesem Chip.
  • Die Schleife IDLOOP beginnt mit dem M1,4-Befehl SCAN OUT, der den Taktsteuerchip (CCNT) 50 und den Fehlerchip (ERR) 49 ausliest. Der Taktsteuerchip 50 enthält die Taktzwischenspeicher 54 und 55 und den Strom-Ein-Zwischenspeicher 73 und den Wiederversuchs-Zwischenspeicher 86, und der Fehlerchip 49 enthält die Fehlergeschichts-Zwischenspeicher 53 und die IPUP und IPDP Zwischenspeicher 51 und 52.
  • Der M1,5-Befehl LTCURO lädt den Akkumulator 9 mit Werten von der Tastatur 18 (einschließlich der FE Taste 72), und der M1,6-Befehl STORE gibt vier Zwischenspeicher einschießlich der zwei Zwischenspeicher XCSYSO.FEKEY an. Die M1,4und M1,5- Befehle erhalten die Werte des FEKEY Schalters 72 von dem dritten Computer 28 und setzt den Zwischenspeicher FEKEY in dem RAM 11.
  • Der M1,7-Befehl IF prüft, um zu bestimmen, ob der Zustand des torgesteuerten Taktzwischenspeichers 0 ist, das heißt, 0,CCNT.GATD ist.
  • Der M1,8-Befehl BRXC ist ein Sprung zu IDEND. Die zwei Befehle M1,7und M1,8 werden zusammen gelesen "wenn CCNT.GATD gleich 0, dann springe zu IDCHK". Wenn die torgesteuerten Takte aus sind, dann hat der zweite Computer 27 das Ausführen des zweiten Befehlsstroms angehalten, und es wird der Sprung zu IDCHK genommen.
  • Der M1,9-Befehl IF hat keinen spezifizierten Chip und schließt denselben Chip wie vorher CCNT ein. Der M1,9-Befehl prüft den Strom-ein-Zwischenspeicher POWR in dem RAM 11, ob er 0,POWR ist, und, wenn er ein ist, springt dann der M1,10- Befehl zu IDEND.
  • Die nächste Maßnahme, die in dem zweiten Befehlsstrom der Tabelle 2 gemacht wird, ist den Wert des ESP Neustartsignals zu prüfen. Dieses Signal kommt von dem ersten Computer, um von dem dritten Computer zu verlangen, bei dem zweiten Computer ein einleitendes Programmladen vorzunehmen. Der M1,11- Befehl bestimmt, ob einer von den beiden Zwischenspeichern IPUP und IPDP in den RAM 11, die den ESP Neustartsignalen entsprechen, die von der UP Seite 26-1 bzw. der DP Seite 26- 2 des ersten Computers 26 kommen, gleich 0 ist. Wenn beide 0 sind, dann tritt kein Neustart auf und der M1,11-Befehl springt zu IDLOOP, was der Befehl M1,4 ist. Wenn entweder IPUP oder IPDP 1 ist, dann wird ein Neustart des Computers 27 benötigt, und die Abfolge der Befehle fällt durch den nächsten Befehl M1,13, ein Setz-Speicher-Befehl, der den ESP Start-Zwischenspeicher ESPSTRT auf 1 setzt, so daß ein einleitendes Programmladen des zweiten Computers 27 in der Tabelle 1 der Befehlsabarbeitung bewirkt wird. Der Befehl M1,4 springt dann zu IDEND.
  • Der M1,15-Befehl IDCHK, zu dem gesprungen worden ist, nachdem der Wert des torgesteuerten Takt-Zwischenspeichers als 0 bestimmt worden ist, setzt den Zwischenspeicher XCSYS.CHKSTP in dem RAM 11. Dieser Zwischenspeicher gibt an, daß der zweite Computer 27 bei Überprüfung angehalten worden ist, das heißt, die Takte hielten plötzlich an. Nach einem solchen Auftreten geschieht ein Neustart und ein einleitendes Programmladen des zweiten Computers 27 tritt bei Abarbeitung der Tabelle 1 auf. Bei IDEND setzt der Befehl M1,15 einen Zwischenspeicher SHIFT, was eine Verschiebung darstellt, und setzt auch IFAIL, was angibt, daß ein Fehler auftrat.

Claims (23)

1. Datenverarbeitungssystem, das umfaßt:
einen universellen, programmierbaren ersten Computer (26), der aus einer Vielzahl erster Schaltungen aufgebaut ist, wobei die ersten Schaltungen direkte Verbindungen zum Zugriff auf die ersten Schaltungen im Zusammenhang mit der Ausführung eines ersten Programms von Befehlen aufweisen, wobei die ersten Schaltungen erste redundante Verbindungen zum Einsatz beim Zugriff auf die ersten Schaltungen unabhängig von dem ersten Programm von Befehlen aufweisen, und wobei der erste Computer eine erste Abfrageeinrichtung (66) zum Zugriff auf die ersten redundanten Verbindungen enthält,
einen programmierbaren zweiten Computer (27), der aus einer Vielzahl zweiter Schaltungen aufgebaut ist, wobei die zweiten Schaltungen direkte Verbindungen zum Einsatz bei der Ausführung eines zweiten Programms von Befehlen unter Verwendung ausgewählter der zweiten Schaltungen aufweisen, wobei die zweiten Schaltungen zweite redundante Verbindungen zum Zugriff auf die zweiten Schaltungen unabhängig von dem zweiten Programm von Befehlen aufweisen, und der zweite Computer eine zweite Abfrageeinrichtung (56) zum Zugriff auf die zweiten redundanten Verbindungen enthält, wobei der zweite Computer mit der ersten Abfrageeinrichtung (66) verbunden ist, wodurch das zweite Programm den Zugriff auf die ersten Schaltungen über die ersten redundanten Verbindungen und unabhängig von dem ersten Programm von Befehlen steuert, dadurch gekennzeichnet, daß es des weiteren umfaßt:
einen programmierbaren dritten Computer (28), der aus einer Vielzahl dritter Schaltungen aufgebaut ist, wobei der dritte Computer ein drittes Programm von Befehlen ausführt, wobei der dritte Computer mit der zweiten Abfrageeinrichtung (56) verbunden ist, wodurch der dritte Computer den Zugriff auf die zweiten Schaltungen über die zweiten redundanten Verbindungen von dem dritten Programm gesteuert und unabhängig von dem zweiten Programm steuert, wobei der dritte Computer eine Einrichtung zur kontinuierlichen Überwachung des zweiten Computers enthält, die ermittelt, ob Steuerung des zweiten Computers durch den dritten Computer erforderlich ist.
2. Vorrichtung nach Anspruch 1, wobei der zweite Computer (27) einen Wiederanlauf-Zwischenspeicher enthält, der durch den ersten Computer (26) gesetzt werden kann, wenn der erste Computer zum Wiederanlaufen des zweiten Computers von dem dritten Computer (28) gesteuert auf fordert, und wobei der dritte Computer von dem dritten Programm gesteuert periodisch den wiederanlauf-Zwischenspeicher abfragt.
3. Vorrichtung nach Anspruch 1, wobei der zweite Computer (27) einen Fehler-Zwischenspeicher enthält, der durch den zweiten Computer gesetzt werden kann, wenn der zweite Computer einen Fehler feststellt, und wobei der dritte Computer (28) von dem dritten Programm gesteuert periodisch den Fehler-Zwischenspeicher abfragt.
4. Vorrichtung nach Anspruch 1, wobei der zweite Computer (27) einen Einschalt-Zwischenspeicher enthält, der durch den zweiten Computer gesetzt werden kann, wenn der zweite Computer feststellt, daß die Spannung am zweiten Computer abgeschaltet war und eingeschaltet wurde, und wobei der dritte Computer (28) von dem dritten Programm gesteuert periodisch den Einschalt-Zwischenspeicher abfragt.
5. Vorrichtung nach Anspruch 1, wobei der zweite Computer (27) einen Anhalte-Zwischenspeicher enthält, der durch den zweiten Computer gesetzt werden kann, wenn der zweite Computer die Abarbeitung des zweiten Programms von Befehlen angehalten hat, und wobei der dritte Computer von dem dritten Programm gesteuert periodisch den Anhalte-Zwischenspeicher abfragt.
6. Vorrichtung nach Anspruch 1, wobei der dritte Computer (28) einen Wiederhol-Zwischenspeicher (13) enthält, der durch den dritten Computer gesetzt werden kann, wenn der dritte Computer eine vorgegebene Anzahl von Malen versucht hat, das Wiederanlaufen des zweiten Computers (27) zu bewirken, und wobei der dritte Computer von dem dritten Programm gesteuert periodisch den Wiederhol-Zwischenspeicher abfragt.
7. Vorrichtung nach Anspruch 1, wobei das System ein Terminal (12) mit einem Display und einer Tastatur (18) enthält, einen Multiplexer (46) enthält, der das Terminal zwischen den zweiten Computer und den dritten Computer schaltet, einen Terminal-Zwischenspeicher (62) enthält, der durch den dritten Computer gesetzt werden kann, um den Multiplexer so zu steuern, daß er das Terminal dem zweiten oder dem dritten Computer zuordnet, und wobei der dritte Computer von dem dritten Programm gesteuert den Terminal-Zwischenspeicher setzt, so daß das Terminal dem dritten Computer zugeordnet wird, wenn der dritte Computer den Wiederanlauf des zweiten Computers ausführt.
8. Vorrichtung nach Anspruch 1, wobei der dritte Computer einen ersten Speicher (3) zum Speichern von Befehlen enthält und einen zweiten Speicher (11) zum Speichern von Auslesedaten an Speicherplätzen, die aus dem zweiten Computer ausgelesenen Speicherplätzen entsprechen.
9. Vorrichtung nach Anspruch 8, wobei die erste Abfrageeinrichtung ein Ausleseadreßdatenregister (33), enthält, das so angeschlossen ist, daß es in Reaktion auf das zweite Programm eine Ausleseadresse empfängt, und Übergabepunkte enthält, die so angeschlossen sind, daß sie von dem zweiten Programm gesteuert Informationen von der ersten Abfrageeinrichtung empfangen.
10. Datenverarbeitungssystem nach Anspruch 9, wobei der erste Computer des weiteren enthält:
eine Vielzahl von Chipträgern, die jeweils eine dazugehörige Vielzahl Chips enthalten und jeweils so angeschlossen sind, daß sie von einem Adressenbus empfangen, und so angeschlossen sind, daß sie eine Eingabe für die Ausleseeinrichtung erzeugen,
eine Einrichtung, die zu jedem Chipträger gehört und einen der zugehörigen Chips in Reaktion auf Informationen auf jedem Adressenbus adressiert,
Einrichtungen auf jedem Chip, die auf den Adressenbus ansprechen und eine bestimmte der ausgewählten ersten Schaltungen auf dem Chip adressieren und die redundanten Verbindungen jeder adressierten ersten Schaltung mit der Ausleseeinrichtung verbinden.
11. Vorrichtung nach Anspruch 1, wobei die ersten Schaltungen Datenspeicherplätze im normalen Betrieb des ersten Computers erzeugen, wo die Schaltungen auf Chips ausgeformt sind, wobei Abfragevorrichtungen auf jedem Chip umfassen:
Folgesteuerungseinrichtungen (16), die Abfragefolgen ausführen, Steuerlogikeinrichtungen, die die durch die Folgesteuerungseinrichtungen ausgeführte Abfragefolge steuern,
Datenleitungseinrichtungen, die unabhängig vom normalen Betrieb des ersten Computers wahlweise zwischen einen Eingabe-/Ausgabeanschluß und Datenspeicherplätze in dem ersten Computer geschaltet werden,
Dekodiereinrichtungen (31), die von den Folgesteuerungseinrichtungen gesteuert werden, um die wahlweise Schaltung der Datenleitungseinrichtungen zum Zugriff auf die Speicherplätze zu steuern.
12. Vorrichtung nach Anspruch 11, wobei die Folgesteuerungseinrichtung einen Zähler (32) enthält und eine Steuerlogik enthält, die den Zählvorgang des Zählers steuert, wobei der Zähler Ausgänge an die Dekodiereinrichtung erzeugt, wodurch die Dekodiereinrichtung die wahlweise Schaltung der Datenleitungseinrichtung steuert.
13. Vorrichtung nach Anspruch 12, wobei die Schaltungen, die Datenspeicherplätze bilden, Speicherschaltungen (67) sind, und wobei die Speicherschaltungen in einer Ebene angeordnet sind, die Reihen und Spalten der Speicherschaltungen einschließt, wobei die Dekodiereinrichtung einen Reihendekodierer zum Dekodieren jeder der Reihen in der Anordnung aufweist und einen Spaltendekodierer zum Dekodieren jeder der Spalten in der Anordnung enthält.
14. Vorrichtung nach Anspruch 13, wobei jede der Schaltungen umfaßt:
eine Abtast- und Halte-Speicherschaltung (61), die direkte Verbindungsleitungen einschließlich Daten-Eingabe- und Daten-Ausgabe-Leitungen aufweist, eine Taktabtast- Eingabeleitung enthält, und eine Takthalte-Eingabeleitung enthält,
Reihen- und Spalteneingabeleitungen zum Zugriff auf die Speicherschaltung unabhängig von den direkten Verbindungsleitungen,
ein Auslese-Einrichtung (66), die durch die Reihen- und Spalteneingabeleitungen freigegeben wird, wodurch die Speicherschaltung unabhängig von den direkten Verbindungsleitungen ausgelesen wird.
15. Vorrichtung nach Anspruch 14, wobei die Speicherschaltung des weiteren eine Einleseleitung (91) zum von den Reihen- und Spalteneingabeleitungen gesteuerten Einlesen von Daten in die Speicherschaltung enthält.
16. Vorrichtung nach Anspruch 15, wobei die Speicherschaltung des weiteren einen Rücksetzeingang (99) enthält.
17. System nach Anspruch 1, wobei der dritte Computer eine Einrichtung zum Gray-Codieren von Mikrospeicheradressen enthält.
18. System nach Anspruch 1, wobei der dritte Computer eine Einrichtung zum Ändern und Anzeigen von Hexadezimal- und Paritätsfeldern enthält, die durch HEX- und PAR-Befehle bestimmt werden.
19. System nach Anspruch 1, wobei der dritte Computer eine Einrichtung zum Ausführen von Paritätsoperationen einschließlich Anzeigefelder enthält, auf die der Code zugreifen kann.
20. System nach Anspruch 1, wobei der dritte Computer eine Einrichtung zum Verfolgen und Bewegen eines Cursors enthält.
21. System nach Anspruch 1, wobei der dritte Computer eine Einrichtung enthält, die überprüft, ob die in den zweiten Computer eingelesenen Daten die gleichen sind wie die in dem dritten Computer.
22. System nach Anspruch 1, wobei der dritte Computer eine Einrichtung (8) zum Speichern eines Tastenwertes in einem Tastenregister sowie eine Einrichtung enthält, die den Zustand des Terminals in Reaktion auf den Tastenwert einstellt.
23. System nach Anspruch 1, wobei der dritte Computer eine Einrichtung zum Adressieren einzelner Zwischenspeicher unter Verwendung von Chip- und Zwischenspeicherunterbebefehlen enthält.
DE19873750608 1986-12-19 1987-11-03 Datenverarbeitungssystem mit einer Bedienungsrechnerhierarchie. Expired - Fee Related DE3750608T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US94454986A 1986-12-19 1986-12-19

Publications (2)

Publication Number Publication Date
DE3750608D1 DE3750608D1 (de) 1994-11-03
DE3750608T2 true DE3750608T2 (de) 1995-05-04

Family

ID=25481622

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19873750608 Expired - Fee Related DE3750608T2 (de) 1986-12-19 1987-11-03 Datenverarbeitungssystem mit einer Bedienungsrechnerhierarchie.

Country Status (2)

Country Link
EP (1) EP0271986B1 (de)
DE (1) DE3750608T2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2010268195A1 (en) 2009-07-03 2012-01-19 Nestec S.A. Capsule for the preparation of a beverage comprising an identification element

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623011A (en) * 1969-06-25 1971-11-23 Bell Telephone Labor Inc Time-shared access to computer registers
US3786430A (en) * 1971-11-15 1974-01-15 Ibm Data processing system including a small auxiliary processor for overcoming the effects of faulty hardware
US4244019A (en) * 1978-06-29 1981-01-06 Amdahl Corporation Data processing system including a program-executing secondary system controlling a program-executing primary system
US4312066A (en) * 1979-12-28 1982-01-19 International Business Machines Corporation Diagnostic/debug machine architecture
AU3230084A (en) * 1983-08-29 1985-03-07 Amdahl Corporation Serial chip scan

Also Published As

Publication number Publication date
EP0271986A2 (de) 1988-06-22
EP0271986B1 (de) 1994-09-28
DE3750608D1 (de) 1994-11-03
EP0271986A3 (en) 1990-05-16

Similar Documents

Publication Publication Date Title
DE68913629T2 (de) Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem.
DE69629444T2 (de) Datenverarbeitungsgerät und Verfahren zur Ersetzung von ausgefallenen Speichereinheiten
DE3881786T2 (de) Identifizierung von Datenspeicherungseinrichtungen.
DE3884101T2 (de) Abholung von Operanden in Unordnung.
DE2846495C2 (de) Zentraleinheit
DE68919069T2 (de) Verfahren und Gerät zur Fehlererkennung und -korrektur in einem nach dem überlappten Steuerungsverfahren arbeitenden Rechnersystem.
DE3102150C2 (de) Multiprozessor-Datenverarbeitungsanlage
DE3650651T2 (de) Fehlertolerantes Datenverarbeitungssystem
DE2400161C2 (de)
DE68923026T2 (de) Speicherdiagnosegerät und Verfahren.
DE2317870C2 (de) Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE3128740C2 (de)
DE69107476T2 (de) Vorrichtung für eine in-circuit-prüfung mit einem minimalspeicher.
DE2714805A1 (de) Datenverarbeitungssystem
DE19824289C2 (de) Pipelineverarbeitungsmaschine
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE68921334T2 (de) Gerät zur programmierten vorübergehenden Aufhebung des Prozessorbetriebs zum Wiederversuch, zur Rückgewinnung und zum Austesten.
DE102021108478B4 (de) Vorrichtung und Steuerung zur Cache-Verzeichnis-CAM-Fehlererkennung und - Korrektur
DE68923992T2 (de) Datenverarbeitungssubsystem-Betriebsverfahren.
DE2906685C2 (de)
DE3782893T2 (de) Informationsverarbeitungssystem, faehig zur verminderung ungueltiger speicheroperationen durch erkennung von hauptspeicherfehlern.
DE3750608T2 (de) Datenverarbeitungssystem mit einer Bedienungsrechnerhierarchie.
DE3586524T2 (de) Durch beide, physikalische und virtuelle addressen, addressierbarer cache-speicher.
DE2106731A1 (de) Diagnoseeinrichtung fur elektronische Datenverarbeitungsanlagen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee