[go: up one dir, main page]

DE2938929C2 - Datenverarbeitungsgerät - Google Patents

Datenverarbeitungsgerät

Info

Publication number
DE2938929C2
DE2938929C2 DE2938929A DE2938929A DE2938929C2 DE 2938929 C2 DE2938929 C2 DE 2938929C2 DE 2938929 A DE2938929 A DE 2938929A DE 2938929 A DE2938929 A DE 2938929A DE 2938929 C2 DE2938929 C2 DE 2938929C2
Authority
DE
Germany
Prior art keywords
wcs
firmware
cpu
address
memory
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
Application number
DE2938929A
Other languages
English (en)
Other versions
DE2938929A1 (de
Inventor
Kiyoshi H. Framingham Mass. Terakawa
William E. Natick Mass. Woods
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.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Information Systems Inc
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 Honeywell Information Systems Inc filed Critical Honeywell Information Systems Inc
Publication of DE2938929A1 publication Critical patent/DE2938929A1/de
Application granted granted Critical
Publication of DE2938929C2 publication Critical patent/DE2938929C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein Datenverarbeitungsgerät nach dem Gattungsbegriff des Anspruches 1.
  • Die heutige fortgeschrittene Entwicklung der Computertechnik hat die Erweiterung einer Zentraleinheit (CPU) durch einen dem Benutzer zugänglichen Steuerspeicher hervorgebracht, wobei dieser Steuerspeicher manchmal als schreibfähiger Steuerspeicher (WCS) bezeichnet wird. Ein solcher Steuerspeicher versieht den Benutzer mit extrem leistungsfähigen Hardwarebefehlen, wodurch die Standard-Softwarebefehle der Zentraleinheit erweitert sowie verbessert werden und bei einer bestimmten Benutzeranwendung die Leistungsfähigkeit der Zentraleinheit bei sonst kritischen Softwareroutinen verbessert wird. Diese Routinen können daher mit Geschwindigkeiten bearbeitet werden, die mit der Bearbeitungsgeschwindigkeit von systemeigenen Befehlen der Zentraleinheit vergleichbar sind. Dies geschieht dadurch, daß ein Benutzer in die Lage versetzt wird, anwenderorientierte Firmware in die Zentraleinheit zu schreiben, um sich wiederholende Softwareroutinen zu ersetzen. Ein Großteil der Verbesserung hinsichtlich der Verarbeitungsgeschwindigkeit ist auf die Fähigkeit der Firmware zurückzuführen, verschiedene Operationen gleichzeitig in einem einzigen Firmwareschritt auszuführen. Die Anwendung des schreibfähigen Steuerspeichers variiert von Benutzer zu Benutzer beträchtlich. Ein Mikroprogrammierer wird in die Lage versetzt, die systemeigene Firmware der Zentraleinheit zu verbessern und zu vergrößern, wodurch quasi eine anwendungsorientierte spezialisierte Zentraleinheit gebildet wird. Softwareroutinen bzw. Programme, die so ausgelegt sind, daß sie ohne einen schreibfähigen Steuerspeicher ablaufen, werden durch die Anwesenheit eines solchen Steuerspeichers nicht beeinflußt. Mit wirksamen Firmwarebefehlen kann ein Anwender die Gesamtleistung der Zentraleinheit mit einer minimalen Umwandlung der Softwareprogramme erhöhen.
  • Die Mikroprogrammierung und insbesondere ein schreibfähiger Steuerspeicher wird in einem Buch mit dem Titel " Microprogramming: Principles and Practice", von Samir S. Husson, beschrieben, das 1970 in dem Verlag Prentice-Hall, Inc. erschienen ist. Ferner wird in der US-PS 40 42 972 ein Computersystem beschrieben, in welchem ein schreibfähiger Steuerspeicher zusätzlich zu dem Steuerspeicher benutzt wird, der intern in der Zentraleinheit angeordnet ist.
  • Aus dem Buch von R. Klar und H. Wichmann "Mikroprogrammierung", Vorlesungsskripten Band 8, Nr. 3, Erlangen, Juni 1975, Seite 159-169 ist es ferner bekannt, einen Steuerspeicher in einen ersten Abschnitt aufzuteilen, der als Festwertspeicher ausgebildet ist und Mikroprogramme entsprechend einem Standardbefehlsvorrat enthält, und die restlichen Abschnitte zur freien Verfügung des Benutzers zu halten, wobei diese Abschnitte mit Schreib/Lesespeichern bestückt werden können. In den auf diese Weise gebildeten schreibfähigen Steuerspeicher können die für die jeweilige Anwendung erforderlichen Mikroprogramme von Fall zu Fall geladen werden. Für den Verkehr dieses Steuerspeichers mit anderen Einheiten, insbesondere mit dem Rechenwerk eines Prozessors ist aber nur das übliche Bussystem vorgesehen.
  • Ferner ist aus der DE-OS 17 74 296 eine Steuereinheit für elektronischen Digitalrechner bekannt, bei der zur Modifizierung des Programmablaufes neben dem eigentlichen Programm- Festwertspeicher noch mindestens ein zusätzlicher Lese/- Schreibspeicher vorgesehen ist, in welchen Mikrobefehle ein- und ausgelesen werden können.
  • Ausgehend von diesem Stand der Technik ist es die Aufgabe der vorliegenden Erfindung, ein Datenverarbeitungsgerät so auszugestalten, daß der Zugriff auf benutzerspezifische Programmbefehle in dem schreibfähigen Steuerspeicher seitens der Zentraleinheit erleichtert wird. Die Lösung dieser Aufgabe gelingt gemäß den kennzeichnenden Merkmalen des Patentanspruches 1. Weitere vorteilhafte Ausgestaltungen des erfindungsgemäßen Datenverarbeitungsgerätes sind den Unteransprüchen entnehmbar.
  • Neben dem üblichen Bussystem dient bei dem vorliegenden Datenverarbeitungsgerät eine festgeschaltete private Schnittstelle dem Datenverkehr zwischen der Zentraleinheit und dem schreibfähigen Steuerspeicher. Die Zentraleinheit kann somit unter Umgehung des üblichen Busses Adressen zu dem schreibfähigen Steuerspeicher übertragen und dieser kann über eine direkte Verbindung ein adressiertes Steuerwort zu der Zentraleinheit rückübertragen. Der unterschiedlichen Adressierung über die private Schnittstelle bzw. über den allgemeinen Bus dient hierbei ein Multiplexaufbau des Adressierungspfades.
  • Anhand eines in den Figuren der Zeichnung dargestellten Ausführungsbeispieles sei die Erfindung im Folgenden näher erläutert. Es zeigt
  • Fig. 1 ein Blockdiagramm zur Veranschaulichung der Anwendung der vorliegenden Erfindung;
  • Fig. 2 ein Blockdiagramm der Speichereinrichtung gemäß der vorliegenden Erfindung;
  • Fig. 3 ein detailliertes Blockdiagramm der Speichereinrichtung gemäß der vorliegenden Erfindung;
  • Fig. 4 das Format einer Speicher-Ladeanweisung, wie sie im Zusammenhang mit einer Speichereinrichtung gemäß der Erfindung benutzt wird;
  • Fig. 5 das Format einer Speicher-Schreibanweisung, wie sie im Zusammenhang mit der Speichereinrichtung gemäß der Erfindung benutzt wird;
  • Fig. 6 das Format einer Speicher-Eintrittsanweisung, wie sie im Zusammenhang mit der Speichereinrichtung gemäß der Erfindung benutzt wird;
  • Fig. 7 das Format einer Rückkehranweisung zu dem PROM-Speicher, wie sie im Zusammenhang mit der Speichereinrichtung gemäß der Erfindung verwendet wird;
  • Fig. 8 das Format einer RAM-Speicherwort-Leseanweisung und darauf erfolgenden Antwort, wie sie im Zusammenhang mit der Speichereinrichtung gemäß der Erfindung verwendet wird;
  • Fig. 9 drei Felder eines Firmwarewortes, das im Zusammenhang mit der Speichereinrichtung gemäß der Erfindung verwendet wird;
  • Fig. 10 das Flußdiagramm einer typischen Ladefolge bei der Speichereinrichtung gemäß der vorliegenden Erfindung;
  • Fig. 11 bis 16 Flußdiagramme verschiedener Anweisungen im Zusammenhang mit der Speichereinrichtung gemäß der Erfindung;
  • Fig. 17 die benutzte Logik, um den Basis-Zeittakt für die erfindungsgemäße Speichereinrichtung vorzugeben;
  • Fig. 18 die Logik, wie sie für erweiterte Zentraleinheitzyklen in Zusammenarbeit mit der erfindungsgemäßen Speichereinrichtung benutzt wird;
  • Fig. 19 die RAM-Speicher-Lese/Schreib-Zeittaktlogik für die erfindungsgemäße Speichereinrichtung;
  • Fig. 20 das Format der Adresse, wie sie beim Zugriff auf die Information in der erfindungsgemäßigen Speichereinrichtung benutzt wird;
  • Fig. 21 die Multiplexer-Steuerlogik für die erfindungsgemäße Steuereinrichtung;
  • Fig. 22 ein Logikdiagramm zur Veranschaulichung des sogenannten Aufsplitter-Adreßregisters, wie es bei der erfindungsgemäßen Speichereinrichtung verwendet wird;
  • Fig. 23 die detaillierte Logik des Erhöhungsadreßzählers und des Rückkehr von der Subroutine-Registers im Zusammenhang mit der erfindungsgemäßen Speichereinrichtung;
  • Fig. 24 ein detailliertes Logikdiagramm der Sammelschienen-Antwortlogik innerhalb der Sammelschienen-Steuerlogik für die erfindungsgemäße Speichereinrichtung;
  • Fig. 25 die detaillierte Logik für den Sammelschienen-Adreßzähler im Zusammenhang mit der erfindungsgemäßen Speichereinrichtung;
  • Fig. 26 Einzelheiten des Transparenzmodus/ Folgemodus-Schalters im Zusammenhang mit der erfindungsgemäßen Speichereinrichtung;
  • Fig. 27 Einzelheiten der im Zusammenhang mit der erfindungsgemäßen Speichereinrichtung verwendeten PROM/RAM-Steuerlogik; und
  • Fig. 28 Einzelheiten einer alternativen Ausführungsform eines Teiles der Logik gemäß Fig. 23.
  • Der schreibfähige Steuerspeicher WCS-10 gemäß Fig. 1 verbessert die Leistungsfähigkeit der zugeordneten Zentraleinheit CPU-12 durch Bildung eines zusätzlichen Firmwarespeichers, der durch Programmbefehle geändert werden kann, um eine Anpassung an die spezifischen Anforderungen des Benutzers herbeizuführen. Diese Ausgestaltung gestattet der Zentraleinheit, vom Benutzer definierte Befehle zu bearbeiten, wobei Hardwareoperationen gemäß der durch den Anwender geschaffenen und in einen veränderbaren Speicherplatz eingeschriebenen Firmware ausgeführt werden können. Der Steuerspeicher WCS ersetzt nicht die Firmware für die Standard-Befehlsgruppe der Zentraleinheit CPU sondern bildet ein Mittel für den Anwender, dieser vorhandenen Befehlsgruppe noch etwas hinzuzufügen. Durch den Anwender codierte Firmware zur Verwirklichung von durch den Anwender definierten Befehlen wird in den Steuerspeicher WCS über die Systemsammelschiene 14 unter Verwendung von Ein/Ausgabe-Befehlen geladen. Eine festgeschaltete Schnittstelle 16 zwischen der Zentraleinheit CPU und dem Steuerspeicher WCS bildet einen direkten Datenweg für die Zentraleinheit CPU bei der Bearbeitung von Anwender- Firmware, wenn ein von einem Benutzer definierter Befehl angetroffen wird. Fig. 1 zeigt ein typisches System mit einem Steuerspeicher WCS, wobei beispielhalber noch andere Elemente wie beispielsweise ein Hauptspeicher 18 und eine Gerätesteuerung 20 dargestellt sind.
  • Der schreibfähige Steuerspeicher WCS-10 umfaßt gemäß Fig. 2 eine Sammelschienenschnittstelle 22, einen vom Anwender codierten Firmwarenspeicher 24, eine Statuslogik 32, eine Anweisungs-Decodierlogik 34 und eine Adressierlogik 36. Der Steuerspeicher WCS kann ferner wahlweise eine Testeinrichtung 26 enthalten, die zeitweilig in dem dargestellten System installiert werden kann. Der Steuerspeicher WCS-10 interpretiert Funktionscodeanweisungen und verarbeitet den Dialog über die Sammelschiene 14 zwischen der Zentraleinheit CPU und dem Steuerspeicher WCS, um Anwender-Firmware in den Speicher zu laden und Firmwareoperationen auszulösen, durch die die vom Anwender definierten Befehle bearbeitet werden. Die Testeinrichtung 26 kann zeitweilig in dem System installiert sein, um den Benutzer beim Austesten seiner codierten Firmware zu unterstützen. Die Testeinrichtung 26 zeigt die Information auf der internen Sammelschiene 28 der Zentraleinheit CPU und die Firmwareadresse 30 für den laufenden oder irgendeinen der 16 vorangegangenen Firmwarezyklen an. Die Testeinrichtung kann ferner benutzt werden bei einer Einzelzyklus-Firmwarebearbeitung und bei Operationen, bei denen durch Adresse ein Stop vorgegeben wird.
  • Es gibt zwei verschiedene Operationen hinsichtlich des Steuerspeichers WCS:
    • 1. Laden der von dem Anwender codierten Firmware;
    • 2. Bearbeitung der durch den Anwender codierten Firmwareroutinen.

  • Die Firmware des Anwenders wird in den Steuerspeicher WCS durch Ausgabe von Ein/Ausgabe-Befehlen geladen, die dazu führen, daß die Standard-Firmware der Zentraleinheit CPU die Übertragung von Daten von der Zentraleinheit CPU zu dem Steuerspeicher WCS über die Sammelschiene 14 steuert. Getrennte Ein/Ausgabe-Befehle werden für die Übertragung jedes Wortes (z. B. 16 Bit pro Wort) zu oder von der Zentraleinheit CPU ausgegeben. Die vom Anwender codierte Firmware muß in den Steuerspeicher WCS-24 geladen werden, bevor sie bearbeitet werden kann. Die Firmware des Anwenders wird bearbeitet, indem Firmwareworte von dem Steuerspeicher WCS-24 gelesen und zu der Zentraleinheit CPU übertragen werden, in welcher sie verarbeitet werden. Der Inhalt jedes Firmwarewortes legt die Adresse des nachfolgenden zu bearbeitenden Firmwarewortes fest. Um in diesen Prozeß einzutreten, muß ein vom Anwender definierter Befehl während der Programmbearbeitung des Computers festgestellt werden. Dies führt dazu, daß die Standard-Firmware der Zentraleinheit CPU den Befehlscode über die Datenleitungen der Sammelschiene 14 zu dem Steuerspeicher WCS-10 überträgt, wo er benutzt wird, um die Eintrittsstelle in die Anwender-Firmware auszuwählen. Dies gestattet der Anwender- Firmware die Steuerungsübernahme der CPU-Hardware und die weitere Verarbeitung durch die Firmware des Anwenders.
  • Wenn die vom Anwender codierte Firmwareroutine die Bearbeitung vervollständigt hat und die Steuerung zu der Standard-Firmware der Zentraleinheit CPU zurückkehren soll, so erzeugt der Anwender am Ende seiner codierten Firmwareroutine eine Ein/Ausgabe- Ausgangsanweisung an den Steuerspeicher WCS. Diese Anweisung schaltet die Steuerung von der Anwender-Firmware auf die Standard-Firmware der Zentraleinheit CPU um. Die Standard-Firmware erzeugt automatisch die Anweisung, durch die in die Anwender-Firmwareverarbeitung eingetreten wird, aber der Anwender muß den Ein/Ausgabe-Befehl in seiner Firmware erzeugen, um zu der Standard-Firmwaresteuerung zurückzukehren.
  • Die Anwender-Firmware kann auf zwei Weisen der Reihe nach bearbeitet werden:
    • 1. WCS-Folgemodus oder
    • 2. Transparenzmodus.

  • In beiden Bearbeitungsweisen wird die nächste Firmwareadresse durch die Codierung der Anwender-Firmware festgelegt. Beim Folgemodus ist jedoch eine Verzweigungscodierung der Firmware untersagt und die Steuerspeicherlogik interpretiert über die Anweisungs-Decodierlogik 34 das Verzweigungscodefeld des Firmwarewortes, um festzustellen, welche von 4 Quellen die nächste Adresse enthält. Im Transparenzmodus sind alle Verzweigungscodes gültig und der normale Generator für die nächste Adresse (NAG) in der Zentraleinheitlogik interpretiert das vollständige Firmwarewort und erzeugt die nächste Firmwareadresse, die zu dem Steuerspeicher WCS übertragen wird.
  • Die zwei Firmware-Fortschalte-Betriebsweisen des Steuerspeichers WCS schließen sich gegenseitig aus. Der Steuerspeicher muß durch einen manuell betätigten oder anderweitig betätigten Schalter 95 (wie in Fig. 5 gezeigt) auf den einen oder anderen Modus eingestellt werden. Der Unterschied zwischen den beiden Betriebsweisen erscheint in der Zuordnung von Steuerspeicheradressen zu aufeinanderfolgenden Schritten einer Firmwareroutine. In dieser Hinsicht ordnet der Micropogrammierer beim Folgemodus eine Anfangsadresse zu, nach welche die Adresse bei jedem neuen Schritt automatisch erhöht wird. Bedingte Verzweigungen stellen eine Wahl zwischen dem Fortfahren in der Folge und dem Ergreifen irgendeiner anderen Maßnahme ( Verzweigung zu einem festgelegten Speicherplatz, oder Aufruf einer Subroutine oder Rückkehr) dar. Im Gegensatz hierzu wird der Microprogrammierer beim Transparenzmodus kaum dem System gestatten, die Adresse des nächsten Schrittes zuzuordnen, selbst wenn die Werte benachbart sind. Jeder Schritt im Transparenzmodus legt explizit die Adresse des nachfolgenden Schrittes fest, die sich irgendwo in dem Firmwarespeicher mit 2048 Speicherplätzen befinden kann. Bedingte Verzweigungen stellen eine Wahl zwischen der so festgelegten Adresse und einer alternativen Adresse dar. In jedem Modus wird, wenn keine Verzweigung erforderlich ist, der notwendige Code erzeugt, um Schritt für Schritt weiterzuschreiten. Nichtsdestoweniger sollte festgehalten werden, daß beim Transparenzmodus die für die Festlegung der nächsten Adresse verantwortlichen Bits beinahe bei jedem Schritt besetzt sind, während beim Folgemodus diese Bits unbenutzt bleiben, es sei denn, es liegt ein Aufruf für eine Verzweigung vor. Diese Unterscheidung ist wesentlich, da einige dieser gleichen Bits an der Erzeugung von Konstanten durch die Firmware beteiligt sind. Wenn daher eine bestimmte Konstante erzeugt werden muß, ergibt sich eine Einschränkung hinsichtlich des Wertes des Feldes für die nächste Adresse. Beim Transparenzmodus erfordert diese Einschränkung eine besondere Aufmerksamkeit bei der Verfolgung der Adreßzuordnungen. Beim Folgemodus verschwindet diese Einschränkung wenn keine gleichzeitige Verzweigung vorliegt; andernfalls wird es gewöhnlich erforderlich, einen besonderen Fimwareschritt einzufügen. Die Wahl zwischen den zwei Betriebsweisen basiert gewöhnlicherweise auf der erwarteten Häufigkeit der Verzweigung und der konstanten Benutzung und der darauf folgenden Wahrscheinlichkeit ihrer gegenseitigen Überlappung.
  • Eine genauere Darstellung des Steuerspeichers WCS ist in Fig. 3 gegeben. Dort sind die WCS-Hardwarekomponenten und der Datenfluß zwischen dem Steuerspeicher WCS-10, der Zentraleinheit CPU-12 und der wahlweise vorgesehenen Testeinrichtung 26 dargestellt. Alle von der Zentraleinheit CPU an den Steuerspeicher WCS ausgegebenen Anweisungen werden über die Systemsammelschiene 14 übertragen. Die festgeschaltete Schnittstelle zwischen der Zentraleinheit CPU und dem Steuerspeicher WCS bildet ein Mittel des Steuerspeichers, um direkt das Anwender-Firmwarewort an die Zentraleinheit CPU zu übertragen. Die Schnittstelle der Testeinrichtung gestattet einen manuellen Zugriff auf den Firmwarespeicher. Die Hauptkomponenten der Hardware innerhalb des Steuerspeichers WCS seien nachfolgend beschrieben.
  • Der Steuerspeicher WCS umfaßt die Systemsammelschiene-Steuerlogik 63, die Empfänger 62 und Treiber 64 und weitere Logikschaltkreise aufweisen kann, was in der US-PS 39 93 981 näher beschrieben ist. Die Steuerlogik bildet ein Mittel um der Zentraleinheit CPU und dem Steuerspeicher WCS einen Dialog miteinander zu gestatten. Der Steuerspeicher WCS empfängt Anweisungscodes zusammen mit ihrer Kanalnummer von der Zentraleinheit CPU über die Adreßleitungen der Sammelschiene 14. Mit jeder ausgegebenen Anweisung kann ein Datenwort von 16 Bit von dem Steuerspeicher WCS über die Datenleitungen empfangen werden. Der Steuerspeicher WCS erzeugt die CPU-Kanalnummer an den Adreßleitungstreibern der Sammelschiene. Daher überträgt er nur Daten zu der Zentraleinheit CPU. Diese Daten können entweder aus dem WCS-Identifikationscode, den WCS-Statusbits oder aus einem ausgewählten Datenwort (16 Bit) der Anwender-Firmware bestehen, die in dem WCS-RAM-Speicher 60 des Firmwarespeichers 24 gespeichert ist. Der Steuerspeicher WCS führt keinen direkten Dialog mit dem Hauptspeicher 18 durch.
  • Der WCS-Anweisungsdecodierer 34 decodiert den Anweisungscode, der an den Steuerspeicher WCS über die Adreßleitungen der Sammelschiene 14 ausgegeben wird. Er speichert den Anweisungstyp und erzeugt die erforderlichen Steuersignale, um die durch die Zentraleinheit CPU angewiesene Maßnahme auszuführen. Derartige Anweisungen werden später beschrieben. Der Basis-Zeittakt für den Steuerspeicher WCS wird direkt von dem CPU-Haupttakt (MCLOCK) abgeleitet und auf der Leitung 64 empfangen. Dies stellt sicher, daß alle Operationen des Steuerspeichers WCS und der Zentraleinheit CPU zueinander synchron erfolgen.
  • Das Aufsplitterungs-Adreßregister 66 ist ein 5 Bit-Register, das einen temporären Speicher für Aufgabenworte bildet, das auf einigen der Datenleitungen der Sammelschiene 14 zugeführt wird, wenn eine Eintrittsanweisung an den Speicherspeicher WCS ausgegeben wird. Der Inhalt dieses Registers wird benutzt, um die Adresse des WCS-RAM-Speichers zu bilden, die eine Verzweigung zu dem ersten Speicherplatz einer bestimmten Anwender-Firmwareroutine hervorruft.
  • Der Sammelschienen-Adreßzähler 68 ist ein 14 Bit-Erhöhungszähler. Sein Inhalt wird benutzt, um den WCS-Firmwarespeicher 24 zu adressieren, wenn Anwender-Firmware über die Sammelschiene 14geladen oder gelesen wird. Er ist anfänglich durch eine eindeutige WCS-Anweisung geladen und wird sodann bei jeder Ausführung einer RAM-Lese- bzw. Schreibanweisung fortgeschaltet. Die niedrigrangigen beiden Bits dieses Registers sind Datenwort-Hinweisbits. Sie wählen das Datenwort (16 Bit) innerhalb des 64-Bit- Firmwarewortes aus, das behandelt wird. Dies ist erforderlich, da die Sammelschiene 14 nur ein 16-Bit-Datenwort pro Anweisung behandeln kann. Diese beiden niedrigrangigen Bits werden von der Schreibsteuerlogik 89 und dem Datenselektor 82 verarbeitet.
  • Der Erhöhungs-Adreßzähler 70 ist ein 12 Bit-Zähler, der für den CPU-Taktzyklus eine erhöhte Firmwareadresse liefert.
  • Das Rückkehr von der Subroutine-Register 72 weist eine Breite von 12 Bit auf und speichert die Rückkehradresse für den Steuerspeicher WCS, wenn eine Firmwareverzweigung zu einer Subroutine ausgeführt wird. Wenn eine Subroutinen-Rückkehrverzweigung bearbeitet wird, so wird die erhöhte Adresse in dieses Register geladen und für die Rückkehr zur Haupt-Bearbeitungsfolge der Anwender-Firmware benutzt.
  • Der WCS-Anwenderfirmware-Speicher 24 umfaßt beispielsweise 2 RAM-Speicher 60. Jeder Speicher enthält beispielsweise 1024 Speicherplätze von jeweils einer Breite von 64 Bit. Jeder Speicherplatz speichert ein Firmwarewort bei einer Gesamt-Firmwarespeicherkapazität von 2K (2048) Speicherplätzen. Diese RAM- Speicher werden geladen bzw. gelesen mit einem Datenwort (16- Bit) pro Schreib/Leseanweisung. Bei der Bearbeitung wird jedoch das vollständige Firmwarewort mit 64 Bit ausgegeben.
  • Der Adressen-Auswahlmultiplexer MUX 74 weist mehrere Anschlüsse und eine Breite von 12 Bits auf. Er wählt die WCS-RAM-Adresse aus, durch die auf ein gespeichertes Firmwarewort Zugriff genommen wird. Die Adresse kann von verschiedenen Quellen in Abhängigkeit von der in dem Anweisungsdecodierer 34 gespeicherten Anweisung und von der Codierung des laufenden Firmwarewortes ausgewählt werden. Die ausgewählte Adresse kann bei ihrer Abgabe an den RAM-Speicher übersteuert werden, was mittels des direkten Adressenmultiplexers 76 geschieht.
  • Der direkte Adressenmultiplexer 76 weist zwei Anschlüsse und eine Breite von 12 Bit auf. Er wählt die endgültige Adresse aus, die von dem Steuerspeicher WCS an die RAM-Speicher 60 abgegeben wird. Wenn die Zentraleinheit CPU einen Zustand feststellt, der eine Firmwareverzweigung zu der nächsten in dem laufenden Firmwarewort codierten Adresse erfordert, so informiert sie den Adressenmultiplexer 76, so daß dieser das Feld der nächsten Adresse (NA) auswählt, das in dem Sprungadreßregister 78 gespeichert ist. Andernfalls wählt der Multiplexer 76 den Ausgang des Adressenauswahlmultiplexers 74 aus, um den WCS-Firmwarespeicher 24 zu adressieren. Das Sprungadreßregister 78 speichert das Feld der nächsten Adresse (NA) des laufenden Firmwarewortes. Sein Inhalt wird benutzt, wenn eine Verzweigung zu der nächsten Adresse NA gefordert ist.
  • Das Daten-Eingaberegister 80 besitzt eine Breite von 16 Bit und speichert das Schreibdatenwort (16 Bit), das an den Steuerspeicher WCS abgegeben wird, wenn Firmware in den Firmwarespeicher 24 geladen wird. Es sind vier Schreibanweisungen erforderlich, um ein Firmwarewort in den RAM-Speicher 60 zu laden. Die Position der 16 Bit des zu schreibenden Firmwarewortes wird durch die Schreibsteuerlogik 89 festgelegt, die die Hinweisbits des Sammelschienenadreßzählers 68 decodiert.
  • Der Datenselektor 82 weist vier Anschlüsse auf und besitzt eine Breite von 16 Bit. Er nimmt das von dem Firmwarespeicher 24 empfangene Firmwarewort mit 64 Bit auf und wählt ein Datenwort mit 16 Bit aus, wobei dies gemäß den in dem Sammelschienen- Adreßzähler 68 gespeicherten Hinweisbits geschieht. Das ausgewählte Datenwort kann über die Sammelschiene 14 in die Zentraleinheit CPU zurückgeführt werden.
  • Das Daten-Ausgaberegister 84 speichert das ausgewählte Datenwort mit 16 Bit, das an die Zentraleinheit CPU über die Sammelschiene 14 abgegeben wird. Dieser Datenweg wird benutzt, wenn das System eine Überprüfung des Inhalts des Firmwarespeichers 24 fordert.
  • Die PROM/RAM-Steuerlogik 86 stellt fest, ob die in dem PROM- Speicher der Zentraleinheit CPU gespeicherte Firmware oder die Anwender-Firmware, die in dem Steuerspeicher WCS gespeichert ist, aktiv ist und die Zentraleinheit CPU steuert. Sie überwacht in dem Steuerspeicher WCS gespeicherte Anweisungen und Zustände der Zentraleinheit CPU, um festzustellen, welche Firmware aktiviert ist.
  • Die Status- und Identifizierungslogik 88 liefert auf Anweisung die WCS-Statusbits oder den WCS-Identifizierungscode an die Sammelschienen-Datentreiber 64.
  • Es gibt folgende fünf Haupt-Schnittstellen im Zusammenhang mit dem Steuerspeicher WCS:
    • 1. CPU/WCS-Steuerspeicherschnittstelle,
    • 2. Systemsammelschienenschnittstelle,
    • 3. WCS/ RAM-Speicherschnittstelle,
    • 4. WCS/Testgerätschnittstelle und
    • 5. Testgerät/CPU- Schnittstelle.

  • Die Schnittstellen 1 und 3 sollen nun näher erläutert werden. Einzelheiten hinsichtlich der Sammelschienenschnittstelle 2 können der zuvor erwähnten Patentschrift entnommen werden. Die Schnittstellen 4 und 5 gelangen bei der vorliegenden Erfindung nicht zur Anwendung.
  • Die CPU/WCS-Steuerspeicherschnittstelle ist eine festgeschaltete Daten/Steuerschnittstelle zwischen dem Steuerspeicher WCS und der Zentraleinheit CPU. Sie bildet einen direkten Datenweg zwischen dem WCS-Firmwarespeicher 24 und der Zentraleinheit CPU-12. 64 Steuerspeicherbits (d. h. ein Firmwarewort) plus ein Steuersignal fließen über die Leitungen 90 und 92 von dem Steuerspeicher WCS zu der Zentraleinheit CPU. Von der Zentraleinheit CPU werden zu dem Steuerspeicher WCS die Signale für die nächste Adresse (11 Bits) auf der Leitung 94 und der Haupttakt auf der Leitung 64 übertragen. Die Signale, die die CPU/ WCS-Schnittstelle ausmachen, seien nunmehr erläutert. Das Haupttaktsignal auf der Leitung 64 ist das CPU-Basiszeittaktsignal und wird benutzt, um die Zentraleinheit CPU und den Steuerspeicher WCS zu synchronisieren. Die WCS-Basiszeittaktsignale werden von diesem Signal abgeleitet. Die die nächste Adresse erzeugenden Signale (11 Bits) auf der Leitung 94 kommen von dem Ausgang der Erzeugungslogik für die nächste Adresse innerhalb der Zentraleinheit CPU. In Abhängigkeit von dem Verzweigungsfeld (BR) des Firmwarewortes und dem Modus der WCS-Operation können diese Schnittstellensignale die WCS-RAM-Zugriffsadresse bilden. Im WCS-Folgemodus wird das niedrigrangige Bit (NAGO11) immer dann auf den hohen Pegel geschaltet, wenn die CPU-Testlogik feststellt, daß eine Verzweigung zu der NA-Feldadresse gefordert ist. Einzelheiten hinsichtlich der CPU-Erzeugungslogik für die nächste Adresse und der Testlogik können der US-PS 40 47 247 entnommen werden. Das PROM-Steuerfreigabesignal (PROMCE) auf der Leitung 92 zeigt bei hohem Pegel an, daß der CPU-PROM- Speicher (CPU-Firmware) freigegeben und der WCS-RAM-Speicher (Anwender-Firmware) gesperrt ist. Das WCS-RAM Steuerwort (64 Bits) auf der Leitung 90 ist das von dem WCS-RAM-Speicher gelesene Firmware-Steuerwort. Im Folgemodus werden die in den Bits 49, 50 und 63 gespeicherten Verzweigungstypcodes durch die WCS- Logik interpretiert und daher zu der Zentraleinheit CPU mit dem Binärwert "0" übertragen. Im Transparenzmodus werden alle 64 Bits des Firmware-Steuerwortes unverändert zu der Zentraleinheit CPU übertragen.
  • Die Schnittstelle zwischen dem Steuerspeicher WCS und dem RAM-Speicher enthält alle Daten, Adressen und Steuersignale, die erforderlich sind, um Firmware-Steuerworte in dem RAM- Speicher zu speichern und wieder aufzusuchen. Die Schnittstelle für jeden RAM-Speicher 60 ist im wesentlichen die gleiche. Nur die Freigabe- und Verfügbarkeitssignale unterscheiden sich in Abhängigkeit von der physikalischen Position, die der RAM- Speicher in dem Steuerspeicher WCS einnimmt. Die Daten- und Adreßsignale für jeden RAM-Speicher sind in dem Steuerspeicher WCS zusammen verdrahtet. Eine Beschreibung der Signale der WCS/RAM-Schnittstelle sei nun gegeben. Zwei Signale werden benutzt, um entweder den ersten RAM-Speicher 60-1 oder den zweiten RAM-Speicher 60-2 auszuwählen. Zwei Signale werden ebenfalls benutzt, um den Typ des RAM-Speichers festzustellen, und zwei weitere Signale sind vorgesehen, um zu prüfen, ob der spezielle RAM- Speicher installiert ist. Ein Daten-Eingangswort (16 Bit) wird als Eingangs-Schreibdaten beiden RAM-Speichern 60 zugeführt. Dieses Wort wird in dem freigegebenen Speicher RAM an dem Speicherplatz eingeschrieben, der durch den Adreßeingang festgelegt ist. Ein Adreß-Eingangssignal (10 Bit) wird an beide RAM-Speicher 60 gesendet und wählt den Speicherplatz aus, aus dem ausgelesen oder in den eingeschrieben wird. Diese Adresse ist nur von Bedeutung für den freigegebenen Speicher RAM. Ein Schreibwort (4 Signale) legt fest, in welche Wortposition des adressierten RAM-Speicherplatzes die Eingangsdaten einzuschreiben sind. Jedes Signal steuert eine Wortposition (16 Bit) des mit den Eingangsdaten zu ladenen Speicherplatzes. Diese Schreibsignale gelangen zu beiden RAM-Speichern; sie rufen jedoch nur ein Einschreiben in dem freigegebenen Speicher RAM hervor. Ein Steuerwort des Speichers RAM (64 Signale) bildet das Firmware-Steuerwort, das aus dem freigegebenen Speicher RAM an der durch die Adresse festgelegten Speicherstelle ausgelesen wird. Da nur ein Speicher RAM zu jedem Zeitpunkt freigegeben ist, werden die Ausgangssignale beider RAM-Speicher in einer festverdrahteten ODER-Schaltung zusammengeführt.
  • Die Systemsammelschiene 14 bildet die gemeinsame Schnittstelle, die von der Zentraleinheit CPU-12 und anderen Einheiten benutzt wird, um einen Dialog untereinander auszuführen. Alle den Steuerspeicher WCS-10 betreffenden Sammelschienenoperationen erfolgen jedoch nur zwischen der Zentraleinheit CPU und dem Steuerspeicher WCS. Der Steuerspeicher WCS führt keinen direkten Dialog mit irgendeiner anderen Einheit aus. Die Zentraleinheit CPU gibt alle WCS-Anweisungen und zugeordneten Daten an den Steuerspeicher WCS über diese Sammelschiene aus, während der Steuerspeicher WCS aufgrund einer Anweisung nur Daten zu der Zentraleinheit CPU über die Sammelschiene überträgt. Alle Sammelschienenoperationen erfolgen auf einer asynchronen Basis des Sammelschienenzyklus. Jeder Sammelschienenzyklus besitzt einen Haupt/Nebenteil. Die Einheit, die die Information überträgt, bildet jeweils die Haupteinheit und die empfangende Einheit bildet die Nebeneinheit.
  • Wenn eine Einheit Information zu übertragen wünscht, wird sie zur Haupteinheit, in dem sie einen Sammelschienenzyklus anfordert. Wenn keine andere Einheit mit einer höheren Priorität einen Sammelschienenzyklus anfordert, so wird der Zyklus der Haupteinheit zugeteilt. Bei gewährtem Zyklus gibt die Haupteinheit die Kanalnummer der Nebeneinheit und Dateninformation auf der Sammelschiene aus. Die Nebeneinheit bestätigt ihren Kanal, empfängt die Sammelschienendaten und antwortet mit dem geeigneten Antwortsignal. Das Anwortsignal beendigt den Sammelschienenzyklus.
  • Die Zentraleinheit CPU kann entweder Eingabeweisungen (lesen aus dem Steuerspeicher WCS) oder Ausgabeanweisungen (schreiben in den Steuerspeicher WCS) an den Steuerspeicher WCS ausgeben. Zwei Sammelschienenzyklen sind erforderlich, um Information aus dem Steuerspeicher WCS zu lesen. Im ersten Zyklus bildet die Zentraleinheit CPU die Haupteinheit und gibt eine Leseanweisung an den Steuerspeicher WCS aus, wodurch bestimmte WCS-Daten angefordert werden. Im zweiten Zyklus wird der Steuerspeicher WCS zur Haupteinheit, und es werden die angeforderten Daten zu der Zentraleinheit CPU übertragen. Bei Anweisungen vom Ausgabetyp ist nur ein Sammelschienenzyklus erforderlich. Bei diesen Anweisungen bildet die Zentraleinheit CPU immer die Haupteinheit und alle angeforderte Information wird zu dem Steuerspeicher WCS mit der Anweisung übertragen.
  • Die Sammelschiene 14 weist 24 Adreßleitungen auf. Die Haupteinheit liefert immer die Kanalnummer der Nebeneinheit auf den Adreßleitungen 8-17 und den Anweisungscode auf den Leitungen 18-23. Da alle Operationen betreffend den Steuerspeicher WCS über die Sammelschienen nur mit der Zentraleinheit CPU erfolgen, an die der Steuerspeicher WCS angeschlossen ist, weist die Adreßsammelschiene immer die Kanalnummer der Zentraleinheit CPU bzw. des Steuerspeichers WCS auf. Die Kanalnummerzuordnung für diese Einheiten steht aufgrund ihrer engen Verbindung in einer direkten Beziehung. Die letzten beiden Bit der WCS-Kanalnummer sind so eingestellt, daß sie das Komplement der letzten beiden Bits der CPU-Kanalnummer bilden. Diese Bits werden durch Schalter überprüft, die in dem Steuerspeicher WCS-10 angeordnet sind.
  • Die Anweisungen, die die Zentraleinheit CPU an den Steuerspeicher WCS ausgeben kann, sind entweder vom Ausgabe- oder vom Eingabetyp. In der Kategorie des Ausgabetyps sind folgende Anweisungen enthalten: Auslösen WCS (Funktionscode FC-01), Lade-WCS-Adresse, Schreibe RAM-Wort, WCS-Eintritt und Rückkehr zu PROM. In der Kategorie vom Eingabetyp sind folgende Anweisungen enthalten: Lese RAM-Wort, Eingabe-WCS-Status und Eingabe WCS-Identifikation. Eine Beschreibung einiger dieser Anweisungen wird nachstehend gegeben. Diese Anweisungen werden über die Sammelschiene 14 durch Verwendung der CPU-Firmware infolge eines entweder zum Anwender definierten Befehles oder eines aus dem Hauptspeichers herausgezogenen Ein/Ausgabe-Befehles ausgegeben. Wenn ein vom Anwender definierter WCS-Softwarebefehl aus dem Hauptspeicher herausgezogen wird, so erzeugt die Firmware der Zentraleinheit CPU eine Eintrittsanweisung an den Steuerspeicher WCS. Das erste Wort (16 Bit) des Softwarebefehls wird an den Steuerspeicher WCS über die Datenleitungen der Sammelschiene 14 als ein Aufgabenwort ausgegeben, wobei die WCS-Kanalnummer und der Funktionscode der Eintrittsanweisung auf den Adreßleitungen übertragen wird.
  • Die WCS-Adressen-Ladeanweisung lädt eine WCS-Startadresse in den WCS-Sammelschienenzähler 68 . Diese Adresse wird benutzt, um auf den WCS-RAM-Speicher bei einem nachfolgenden RAM-Lese- bzw. -Anweisungswort Zugriff zu nehmen. Jeder Speicherplatz des WCS- RAM-Speichers umfaßt vier 16 Bit-Datenwortsegmente für eine Gesamtanzahl von 64 Bit. Wenn eine Adresse zu dem Steuerspeicher WCS durch diese Anweisung übertragen wird, so verweist sie auf das erste 16 Bit-Datenwortsegment (d. h. auf die am weitesten links stehenden 16 Bit innerhalb der 64 Bit). Eine nachfolgende RAM- Wort-Lese/Schreibanweisung erhöht die Segment-Hinweisadresse, sowie die WCS-RAM-Speicherplatzadresse, so daß nur eine WCS- Ladeadreßanweisung erforderlich ist, um irgendeine Anzahl von aneinandergrenzenden RAM-Speicherplätzen zu laden. Vier RAM- Wort-Lese/Schreibanweisungen übertragen den Inhalt eines 64 Bit- Speicherplatzes. Das Sammelschienenformat für die WCS-Ladeanweisung ist in Fig. 4 dargestellt. Das Bit 4 der Datensammelschiene muß den Wert "1" aufweisen, um auf eine WCS-RAM-Adresse zu verweisen.
  • Die RAM-Wort-Schreibanweisung schreibt ein 16 Bit-Datenwortsegment des 64 Bit-Firmwarewortes in den gerade ausge ählten WCS-RAM Speicherplatz. Die Auswahllogik wird nach der Übertragung fortgeschaltet, so daß eine nachfolgende RAM-Wort-Schreibanweisung das nächste 16 Bit-Datenwortsegment in den gleichen RAM-Speicherplatz schreibt. Wenn vier Schreibanweisungen hinsichtlich des gleichen Speicherplatzes aufgetreten sind, so ist das gesamte Firmwarewort eingeschrieben und die Speicherplatzadresse wird fortgeschaltet. Es ist möglich, die RAM-Speicherplatzadresse über die Kapazität des RAM-Speichers hinaus zu erhöhen. Wenn dies auftritt, so wird ein Fehlerstatusbit 10 gesetzt und der Steuerspeicher WCS gibt NAK-Antworten auf nachfolgende RAM-Wort-Lese/ Schreibanweisungen aus. Das Sammelschienenformat für die RAM- Wort-Schreibanweisung ist in Fig. 5 dargestellt.
  • Die Eintrittsanweisung wird erzeugt, wenn ein vom Anwender definierter Befehl aus dem Speicher entnommen wird. Sie veranlaßt die Hardwaresteuerung zur Umschaltung der Firmwaresteuerung von der Standard-Befehlsgruppe zu der vom Anwender codierten Firmware. Der aus dem Speicher durch die Zentraleinheit CPU herausgezogene Befehl wird benutzt, um eine bestimmte Eintrittsstelle in die vom Anwender codierte Firmware innerhalb des Steuerspeichers WCS auszuwählen. Das Sammelschienenformat der Eintrittsanweisung ist in Fig. 6 dargestellt.
  • Vom Anwender definierte Befehlscodes bilden in einem ausgewählten Bereich eine Eintrittsstelle zu einem der ersten 16 Speicherplätze der in dem Steuerspeicher WCS gespeicherten Anwender-Firmware. Bei der Bearbeitung des in dem WCS-Steuerspeicher an der ausgewählten Eintrittsstelle gespeicherten Firmwarewortes gewinnt die von dem Anwender codierte Firmware den Einfluß auf die Steuerung der Logik der Zentraleinheit CPU.
  • Die Hardware verbleibt unter der Steuerung der vom Anwender codierten Firmware bis eine Rückkehr zur PROM-Anweisung ausgeführt wird. Der Steuerspeicher WCS nimmt keine Eintrittsanweisung an, wenn ein Fehlerstatusbit in dem Steuerspeicher WCS gespeichert ist.
  • Die Rückkehr zur PROM-Anweisung veranlaßt durch ihren Code die Zentraleinheit CPU zur Umschaltung von der vom Anwender codierten Firmwaresteuerung auf eine Steuerung durch die normale Befehlsgruppe der in dem CPU-PROM-Speicher gespeicherten Firmware. Die Bestimmungsadresse wird durch das Ausgangssignal der CPU-Erzeugungslogik für die nächste Adresse zu dem Zeitpunkt festgelegt, wo diese Anweisung von dem Steuerspeicher WCS bearbeitet wird. Normalerweise wird diese Anweisung durch die letzte Anweisung in einer Anwender-Firmwareroutine erzeugt. Das Sammelschienenformat für diese Anweisung ist in Fig. 7 dargestellt.
  • Die RAM-Wort-Leseanweisung ruft die Übertragung eines 16 Bit- Datenwortsegmentes des ausgewählten Firmwarewortes im WCS- Speicher der Zentraleinheit CPU hervor. Die Anweisung erfordert zu ihrer Bearbeitung zwei Sammelschienenzyklen: zunächst einen Anforderungszyklus und sodann einen WCS-Antwortzyklus. Das Format dieser beiden Zyklen ist in Fig. 8 dargestellt.
  • Die WCS-Adressierung des Firmwarewortes ist identisch mit derjenigen, wie sie bei der RAM-Wort-Schreibanweisung benutzt wird. Nachdem jedes 16 Bit-Datenwortsegment von dem Steuerspeicher WCS übertragen worden ist, wird die Segment-Hinweisadresse erhöht, um auf das nächste 16 Bit-Segment des gleichen Firmwarewortes zu verweisen. Nachdem das letzte am weitesten rechts befindliche 16 Bit-Segment übertragen ist, wird die Adresse fortgeschaltet, um auf das am weitesten links befindliche 16 Bit- Segment des nächsten Firmwarewortes zu verweisen. Es sind vier RAM-Wort-Leseanweisungen erforderlich, um den Inhalt eines Firmwarewortspeicherplatzes zu der Zentraleinheit CPU zu übertragen.
  • Das CPU-Register bzw. die Speicheradresse, an die das Datenwort übertragen wird, wird durch die Zentraleinheit CPU festgelegt. Die Kanalnummer, die über die Adreßleitungen der Sammelschiene 14 während des Anwortzyklus übertragen wird, ist die der Zentraleinheit CPU, an die der Steuerspeicher WCS angeschlossen ist. Die Kanalzuordnung wird in der zuvor erwähnten Weise durch einen Schalter festgelegt.
  • Wie zuvor erwähnt, gibt es zwei Betriebsweisen des Steuerspeichers WCS, durch die festgelegt wird, in welcher Weise die Anwender- Firmware interpretiert und bei der Bearbeitung fortgeschaltet wird:
    • 1. Folgemodus;
    • 2. Transparenzmodus.

  • In beiden Betriebsweisen legen drei Felder des Firmwarewortes die Adresse des nächsten zu bearbeitenden Firmwarewortes fest. Dies ist in Fig. 9 dargestellt.
  • Im Folgemodus interpretiert die WCS-Logik zusammen mit der CPU- Logik diese Felder, um die nächste Firmwareadresse festzulegen. Im Transparenzmodus wird das Anwender-Firmwarewort gänzlich von der CPU-Logik interpretiert und die nächste Firmwareadresse wird durch die normale Erzeugungslogik für die nächste Adresse (NAG) der Zentraleinheit CPU erzeugt. Die Auswahl des Operationsmodus erfolgt durch einen Schalter 95 innerhalb des Steuerspeichers WCS. Der durch den Schalter ausgewählte Modus wird wirksam, nachdem ein Eintritt in die Anwender-Firmware bearbeitet wird.
  • Bei ausgewähltem Folgemodus werden drei Bit 49, 50 und 63 des Anwender-Firmwarewortes auf den niedrigen Pegel gesetzt, wenn sie an die Zentraleinheit CPU abgegeben werden. Die WCS-Logik speichert das NA-Feld und interpretiert die Verzweigungscodebits 49 und 50, um festzustellen, von woher die nächste Firmwareadresse auszuwählen ist. Der verbleibende Teil des Anwender-Firmwarewortes wird an die Zentraleinheit CPU geliefert. Wenn die CPU- Logik einen Verzweigungszustand feststellt, so setzt sie das NAG-Bit 11, um den Steuerspeicher WCS zu unterrichten, daß er das gespeicherte NA-Feld im Sprungadreßregister 78 als nächste Adresse auszuwählen hat.
  • Beim Folgemodus sind alle Änderungen innerhalb der Folge (z. B. Sprünge oder Verzweigungen) gleichbleibend, da der WCS-Erhöhungs- Adreßzähler MCNT-70 mit der Adresse eines jeden bearbeiteten Firmwarewortes geladen wird und nachfolgende Adressen durch Fortschaltung dieses Zählers 70 hergeleitet werden. Ein Eintritt in eine Subroutine und eine Rückkehr werden durch einen Betrieb erleichtert, bei dem der erhöhte Wert des MCNT-Zählers 70 in einem WCS-Rückkehrregister RSBA 72 gespeichert wird. Wenn eine Rückkehr von der Subroutine zu der aufrufenden Routine erfolgt, so wird das RCBA-Register 72 benutzt, um Zugriff auf die Anwender-Firmware zu nehmen, so daß diese Steuerung mit dem Firmwarewort weiterfährt, das auf die Firmwareworte der aufgerufenen Subroutine folgt. Das RSBA-Register 72 wird nicht durch die in der Zentraleinheit CPU gespeicherte Firmware benutzt. Der WCS- Folgemodus gestattet nur eine Verarbeitung der von dem Anwender codierten und in dem Steuerspeicher WCS gespeicherten Firmware.
  • Im Transparenzmodus werden die Verzweigungstypcodes durch den Steuerspeicher WCS nicht interpretiert. Das gesamte Anwender- Firmwarewort (64 Bit) wird unverändert zu der Zentraleinheit CPU-12 übertragen. Alle nächsten Firmwareadressen werden durch die Erzeugungslogik für die nächste Adresse (NAG) in der Zentraleinheit CPU erzeugt. Das Ausgangssignal für die nächste Adresse der Zentraleinheit CPU wird immer zurück zu dem Steuerspeicher WCS-10 übertragen und ausgewählt, um die vom Anwender codierte Firmware zu adressieren.
  • Der Steuerspeicher WCS-10 erlaubt somit die Bearbeitung von durch den Anwender codierter Firmware, durch die Hardware- Operationen auf die speziellen Erfordernisse des Anwenders zugeschnitten werden. Diese Anwender-Firmware wird in dem Steuerspeicher WCS unter CPU-Systemsteuerung gespeichert und vergrößert die CPU-Standard-Firmwarebefehlsgruppe. Wenn sie einmal geladen ist, so kann die Software benutzt werden, um eine spezialisierte Firmware über vom Anwender definierte Befehle aufzurufen, wodurch die Hardwaresteuerung von einer CPU-Standard Firmwaresteuerung auf die WCS-Anwender-Firmwaresteuerung umschaltet. Die vom Anwender codierte Firmware entweder im Folgemodus oder im Transparenzmodus bearbeitet bis zu einem Zeitpunkt, an dem die Anwender-Firmware die Steuerung auf die CPU-Standardfirmware zurückführt oder ein Hauptfehler (z. B. Speicherparität) festgestellt wird.
  • Der Steuerspeicher WCS-10 wird mit der Anwender-Firmware durch die Systemsoftware geladen. Normalerweise wird bei der System- Inbetriebnahme ein WCS-Ladeprogramm aufgerufen und in die Lage versetzt, eine zuvor gespeicherte Anwender-Firmwaredatei in den WCS-Speicher 24 zu übertragen. Sodann können nachfolgende Software- bzw. Operatormaßnahmen das Ladeprogramm wieder aufrufen und das Laden anderer Firmwaredateien in den Steuerspeicher WCS veranlassen. In allen Fällen ist das Ladeprogramm mit der WCS-Speicherplatzadresse versehen, an der die Ladung zu beginnen hat, wobei die Größe des zu ladenden Firmwareblockes vorgegeben wird. Eine typische WCS-Ladefolge ist in Fig. 10 dargestellt und wird nachstehend beschrieben. Anfänglich kann die WCS-Kanalnummer festgestellt werden, indem eine Eingabe Identifikationsanweisung an jeden Kanal ausgegeben wird. Wenn der Kanal einmal errichtet ist, so wird der Steuerspeicher WCS ausgelöst, und es werden die WCS-Betriebsweisen durch ein Lesen des Status überprüft. An dieser Stelle wird die Anzahl der installierten RAM-Speicher festgestellt, indem eine RAM-Wort-Leseanweisung, gefolgt von einer Status-Leseanweisung, an jeden RAM- Speicher ausgegeben wird. Die Ergebnisse werden mit der Größe des Firmwareblockes verglichen. Ein Fehler wird der System- Software berichtet, wenn nicht genug RAM-Speicherplatz verfügbar ist, um den Firmwareblock zu speichern. Wenn ausreichend WCS-RAM-Speicherplatz verfügbar ist, so wird das erste 16 Bit- Wort der Anwender-Firmwaredatei herausgezogen und die WCS- Start-Ladeadresse wird zu dem WCS-Sammelschienen-Adreßzähler 68 übertragen. Nachdem die Adresse in den Steuerspeicher WCS geladen ist, beginnt der Schreibvorgang. Bei jedem Schreibvorgang wird das aus der Firmwaredatei herausgezogene 16 Bit-Wort in den Steuerspeicher WCS übertragen, und es wird der Inhalt des WCS-Adreßzählers 68 erhöht. Der Sammelschienenadreßzähler 68 verweist immer auf das 16 Bit-Segment des RAM-Speicherplatzes, in das einzuschreiben ist. Nach vier Schreibvorgängen schaltet dieser Zähler die RAM-Speicherplatzadresse weiter. Zwischen aufeinanderfolgenden Schreibvorgängen wird das nächstfolgende 16- Bit-Datenwort aus der Datei herausgezogen. Es sind vier Schreibvorgänge erforderlich, um einen RAM-Speicherplatz zu speichern. Nachdem vier Schreibvorgänge stattgefunden haben, wird der WCS Status gelesen, so daß festgestellte Fehler an die Zentraleinheit CPU berichtet werden können. Wenn keine Fehler berichtet werden und die Ladesoftware feststellt, daß der gesamte Firmwareblock geladen wurde, so ist die Operation vervollständigt. Anderenfalls wird in den Schreibvorgang erneut eingetreten und es wird der nächste RAM-Speicherplatz geladen.
  • Die Bearbeitung der System-Software einschließlich des Ladens des Steuerspeichers WCS mit der vom Anwender codierten Firmware wird durch die Zentraleinheit CPU ausgeführt, indem Standard- Firmwareroutinen bearbeitet werden, die permanent in dem PROM- Speicher der Zentraleinheit CPU gespeichert sind. Die Umschaltung auf vom Anwender codierte Firmware hinsichtlich des Betriebs der Zentraleinheit CPU kann nur verwirklicht werden, in dem ein vom Anwender definierter Softwarebefehl ausgeführt wird. Wenn ein vom Anwender definierter Softwarebefehl aus dem Hauptspeicher 18 herausgezogen wird, so wird eine permanent gespeicherte CPU-Firmwareroutine bearbeitet, die zu einer Eintrittsanweisung führt, welche über die Sammelschiene 14 an den Steuerspeicher WCS-10 ausgegeben wird. Wenn der Steuerspeicher WCS die Anweisung akzeptiert, so sperrt er die CPU-Firmware und gibt die vom Anwender codierte Firmware frei, die in dem Steuerspeicher WCS gespeichert ist. Die spezifische Eintrittsstelle in die vom Anwender codierte Firmware wird durch den Operationscode des Befehls vorgegeben. Ist sie einmal freigegeben, so wird die vom Anwender codierte Firmware über die freigeschaltete WCS/CPU-Schnittstelle 16 zur Bearbeitung durch die Zentraleinheit CPU übertragen. Die Steuerung der CPU-Logik wird von der permanent gespeicherten Firmware innerhalb der Zentraleinheit CPU auf die vom Anwender codierte Firmware umgeschaltet, die in dem Steuerspeicher WCS gespeichert ist. Die Rückkehr zur CPU-Firmwaresteuerung wird durch die vom Anwender codierte Firmware vorgegeben.
  • Wenn die Verarbeitung der vom Anwender codierten Firmware vervollständigt ist und eine Rückkehr zur CPU-Firmwaresteuerung gewünscht wird, so wird eine vom Anwender codierte Austritt- Firmwareroutine bearbeitet, die zu einer Rückkehr zur PROM- Anweisung führt, welche an den Steuerspeicher WCS über die Sammelschiene 14 ausgegeben wird. Wenn der Steuerspeicher WCS die Anweisung akzeptiert, so sperrt er die Übertragung der vom Anwender codierten Firmware an die Zentraleinheit CPU und gibt die permanent in der Zentraleinheit CPU gesicherte Firmware frei. Die Steuerung der CPU-Logik wird somit auf die Firmware übertragen, die in dem PROM-Speicher der Zentraleinheit CPU gespeichert ist. Der Anwender kann eine Rückkehr auf irgendeinen Speicherplatz innerhalb der CPU-Firmware codieren. Normalerweise wird jedoch der erste Speicherplatz der Befehlsbearbeitung als Rückkehrpunkt ausgewählt.
  • Wenn vom Anwender codierte Firmware bearbeitet wird, so ist der Zugriff auf die permanente Firmware in der Zentraleinheit CPU gesperrt bis ein Hauptfehler festgestellt wird. Bei der Feststellung eines Hauptfehlers, wie beispielsweise eines Sammelschienen-Paritätsfehlers oder eines unkorrigierten Speicherfehlers, erzwingt die Zentraleinheit CPU eine Adresse mit dem Wert Null auf den Adreßleitungen für die nächste Adresse, die an den Steuerspeicher WCS gerichtet ist. Wenn die Adresse festgestellt wird während der WCS-Folgemodus wirksam ist, so sperrt die WCS Logik die vom Anwender codierte Firmware. Die CPU-Firmware übernimmt die Steuerung, und es tritt eine Verzweigung auf den Speicherplatz Null der CPU-Firmware auf, unabhängig von der Codierung der Anwender-Firmware. Wenn ein illegaler Verzweigungscode bei der Bearbeitung der vom Anwender codierten Firmware in dem WCS- Folgemodus festgestellt wird, so sperrt die WCS-Logik das Lesen des Anwender-Firmwarewortes und ruft die Erzeugung der nächsten Adresse mit dem Wert Null hervor. Die Signalleitungen für die nächste Adresse der Zentraleinheit CPU besitzen den Signalpegel Null, was dazu führt, daß der Steuerspeicher WCS die Firmwaresteuerung auf die Zentraleinheit CPU an dem Speicherplatz Null überträgt.
  • Im Folgenden wird auf verschiedene Figuren Bezug genommen, die Flußdiagramme darstellen und die Ereignisfolge und Hauptsteuersignale zeigen, die für bestimmte Anweisungen erzeugt werden und an den Steuerspeicher WCS-10 ausgegeben werden können. Jedes Flußdiagramm ist in eine CPU-Hälfte und eine WCS-Hälfte unterteilt, um die Zusammenwirkung zwischen diesen zwei Einheiten zu zeigen. Ein Prozeßblock in der CPU-Hälfte kann entweder einen durch die Firmware gesteuerten Prozeß oder eine Hardwaremaßnahme vorgeben. Die Prozeßblöcke in der WCS-Hälfte zeigen die WCS-Hardwareoperationen an. Eine detaillierte Beschreibung der WCS-Hardware gemäß der vorliegenden Erfindung wird später gegeben.
  • Die Flußdiagramme zeigen die Formate des Softwarebefehls und die sich ergebenden Sammelschienenzyklen, die die Anweisungen ausführen. Aufgrund der asynchronen Natur der Sammelschiene 14 treten einige Ereignisse in dem Steuerspeicher WCS und der Zentraleinheit CPU parallel auf.
  • Die aus ich selbst heraus verständlichen Flußdiagramme für die WCS-Anweisungen sind in den Fig. 15 bis 22 dargestellt. Diese Figuren stellen folgende Anweisungsflüsse dar:
  • Fig. 11 WCS-Auslöse-Anweisungsfluß,
  • Fig. 12 WCS-Ladeadreß-Anweisungsfluß,
  • Fig. 13 RAM-Schreibwort-Anweisungsfluß,
  • Fig. 14 RAM-Lesewort-Anweisungsfluß,
  • Fig. 15 Eintritts-Anweisungsfluß und
  • Fig. 16 Rückkehr zum PROM-Anweisungsfluß.
  • Obgleich die Flußdiagramme gemäß den Fig. 11 bis 16 aus sich heraus verständlich sind, sei im Folgenden eine allgemeine Beschreibung dieser Figuren gegeben. Die Folge sowohl in der Zentraleinheit CPU als auch in dem Steuerspeicher WCS für jeden der Anweisungscodes ist bis zu einem gewissen Ausmaß einander ähnlich, indem anfänglich nach dem Start der Befehl aus dem Hauptspeicher 18 herausgezogen wird, worauf ein Sammelschienenzyklus ausgegeben wird. Nachdem die Zentraleinheit CPU den Sammelschienenzyklus erhalten hat, überträgt sie durch das sogenannte BSDCNN-Signal die Kanalnummer an den Steuerspeicher WCS. Die Signale, wie beispielsweise BSDCNN, BSACKR usw., sind in der zuvor erwähnten US-PS 39 93 981 näher erläutert. Daraufhin wird die Kanalnummer durch den Steuerspeicher WCS decodiert, wobei der Funktionscode der durch die Zentraleinheit CPU ausgegebenen Anweisung durch den Anweisungsdecodierer 34 decodiert wird und ein Tastsignal erzeugt wird, das anzeigt, daß dies die Adresse des Steuerspeichers WCS ist. Daraufhin wird ein Bestätigungssignal in Form des Signales ACK von dem Steuerspeicher WCS ausgegeben, wodurch der Sammelschienenzyklus durch die Zentraleinheit CPU beendet wird. Parallel zu vorstehender Operation wird eine Neuablauf-Anweisung innerhalb des Steuerspeichers WCS erzeugt. Die vorstehende Beschreibung bis zu dem Punkt, wo das Betätigungssignal an die Zentraleinheit CPU ausgegeben wird, ist für jede der Figuren die gleiche. Die verbleibenden Teile der Flußdiagramme dieser Figuren sind im allgemeinen spezifisch für jeden Anweisungsfluß.
  • Grundsätzlich wird der Auslöse-Anweisungsfluß gemäß Fig. 11 benutzt, um die WCS-Logik zu löschen und die bistabilen Paritätselemente auszulösen, worauf die Paritätsprüfung ermöglicht wird. Gemäß Fig. 12 wird nach der Ausgabe des Bestätigungssignales an die Zentraleinheit CPU der Sammelschienenzyklus beendet und es wird der Inhalt der Datenleitungen in den Sammelschienen-Adreßzähler 68 eingetastet. Gemäß Fig. 13 werden durch den RAM-Schreibwort-Anweisungsfluß grundsätzlich die Daten in das Eingangs-Datenregister eingetastet und es werden zwei Warteantworten gebildet, wobei mit der Ausgabe der ersten Warteantwort parallel der Takt der Zentraleinheit CPU angehalten wird bis ein Bestätigungssignal von dem Steuerspeicher WCS empfangen wird. Der Zweck der Taktanhaltung und der Ausgabe der Wartesignale an die Zentraleinheit CPU liegt darin, dem System genug Zeit zu lassen, um die verschiedenen Übertragungen und logischen Operationen ausführen zu können. Beispielsweise sind während dem Auslöse-Anweisungsfluß gemäß Fig. 11 keine Warteantworten oder Taktanhaltungen erforderlich, da diese Anweisung keine besondere Zeit für ihre Operation benötigt. Andererseits beanspruchen manche Operationen bis zu drei solcher Anhalteoperationen, um die erforderliche Zeit für derartige logische Operationen bereitzustellen. Die RAM-Eintritts- und Austritts-Anweisungsflüsse erfordern eine Anhalteoperation und die RAM-Leseoperation erfordert drei solcher Anhalteoperationen.
  • Wie gerade erläutert erfordert die RAM-Schreiboperation zwei solcher Anhalteoperationen. Aufgrund des Wartesignales gibt somit die Zentraleinheit CPU erneut den Sammelschienenzyklus aus, und der Steuerspeicher WCS führt parallel hierzu die angezeigte Operation aus. Insbesondere wird die Schreiblogik für den Betrieb bereitgestellt, worauf der Sammelschienen-Adreßzähler 68 ausgewählt wird, um den Speicher RAM zu adressieren und freizugeben. Parallel hierzu erhält der Steuerspeicher WCS von der Zentraleinheit das Signal BSDCNN über die Sammelschienen 14 zugeführt, woraufhin die Kanalnummer erneut decodiert wird und ein weiteres Wartesignal an die Zentraleinheit CPU ausgegeben wird. Erneut wird der gleiche Sammelschienenzyklus von der Zentraleinheit CPU neu ausgegeben. Nach der Decodierung der Kanalnummer zum dritten Mal wird von dem Steuerspeicher WCS eine ACK-Bestätigungsantwort an die Zentraleinheit CPU abgegeben. Parallel hierzu werden die Daten in den freigegebenen RAM-Speicher geschrieben, worauf dieser gesperrt wird und der Erhöhungs-Adreßzähler 70 fortgeschaltet wird.
  • Fig. 14 veranschaulicht das Flußdiagramm für die RAM-Lesewort- Anweisung. Wie zuvor aufgezeigt, werden während einer solchen Anweisung drei Warteantworten ausgegeben, die in der gleichen Weise wirken wie jene, die bei der RAM-Schreibwort-Anweisung ausgegeben werden, mit der Ausnahme, daß eine extra Warteantwort vorliegt, d. h. es gibt eine gesonderte Neuausgabe des Sammelschienenzyklus durch die Zentraleinheit CPU. Während der Zeit, in der diese sogenannten Anhalteoperationen stattfinden, wählt der Steuerspeicher WCS den Sammelschienenadreßzähler 68 aus, um den Speicher RAM zu adressieren und den Speicher PROM der Zentraleinheit CPU zu sperren. Ferner wird das 16 Bit-Datenwort aus dem zu lesenden Firmwarewort ausgewählt und in das Daten-Ausgaberegister 84 eingetastet, nachdem der Erhöhungs-Adreßzähler 70 erhöht wurde. Während dieser Zeit werden die zusätzlichen Warteantworten an die Zentraleinheit CPU ausgegeben, die wie bei der Schreibanweisung eine bestimmte Informationsverschiebung in der sogenannten Verschiebe-Antwortlogik erfordert. Nach einer Bestätigungsantwort ACK gibt der Steuerspeicher WCS eine sogenannte zweite Hälfte des Lesezyklus aus, während welcher Zeit der Steuerspeicher WCS erneut Zugriff auf die Sammelschiene gewinnt, indem er sein Signal BSDCNN an die Sammelschiene ausgibt, worauf die Zentraleinheit CPU eine Bestätigungsantwort ausgibt und das Datenwort in das durch die Zentraleinheit CPU festgelegte Register bzw. Speicher lädt.
  • Der Eintritts-Anweisungsfluß ist in Fig. 15 dargestellt. Wie zuvor aufgezeigt ist nur ein Anhalten durch Verwendung einer Warteantwort erforderlich, um ausreichend Zeit für die logischen Operationen zu schaffen, die im Zusammenhang mit einer solchen Eintrittsanweisung verwendet werden. Anfänglich werden die Daten in das Aufsplitterungs-Adreßregister 66 eingetastet, worauf die erste und einzige Warteantwort für die Anweisung ausgegeben wird. Das Aufsplitterungs-Adreßregister wird sodann ausgewählt, um den Speicher RAM zu adressieren, worauf dieser freigegeben und der Speicher PROM der Zentraleinheit CPU gesperrt wird. Das erste vom Anwender codierte Firmwarewort wird sodann aus dem Speicher RAM gelesen und legt die nächste RAM-Adresse fest. Dieses 64 Bit- Wort wird an die Zentraleinheit CPU geliefert und in ein internes Register in der Zentraleinheit zu weiteren Verwendung eingetastet. Parallel wird der gleiche Sammelschienenzyklus erneut von der Zentraleinheit CPU ausgegeben und es wird die Kanalnummer durch den Steuerspeicher WCS decodiert, woraufhin die Bestätigungsantwort ACK durch den Steuerspeicher WCS erzeugt wird, welche den Sammelschienenzyklus beendet. Die Eintrittsanweisung wird gespeichert und bis zum nächsten Taktzyklus aufrecht erhalten, wonach sie gelöscht wird. Sodann kann die Anwender-Firmware die Steuerung der RAM-Adressierung übernehmen. Während der Rückkehr zur PROM-Anweisung ist gemäß Fig. 16 eine Warteantwort alles, was benötigt wird. Während der Zeit, in der die Zentraleinheit den gleichen Sammelschienenzyklus erneut ausgibt, wird der Speicher PROM der Zentraleinheit CPU freigegeben und der Speicher RAM des Steuerspeichers WCS gesperrt. Bei der Decodierung der Kanalnummer gibt sodann der Steuerspeicher WCS eine Bestätigungsantwort ACK aus, wodurch der Sammelschienenzyklus beendet wird. Die Verarbeitung beginnt sodann in der Zentraleinheit CPU unter der Adresse, die durch die Erzeugungslogik für die nächste Adresse der Zentraleinheit CPU während der Zeit gebildet wird, in der der erste Sammelschienenzyklus durch die Zentraleinheit CPU ausgegeben wurde. Dies geschieht nach dem Diagramm gerade nach der Ausgabe des ersten Sammelschienenzyklus.
  • Es sei nun der grundlegende WCS-Takt und der erweiterte CPU- Taktzyklus erläutert. Der grundlegende WCS-Zeittakt wird von dem CPU-Haupttaktsignal (MCLOCK+7) auf der Leitung 64 hergeleitet, der zu dem Steuerspeicher WCS über die festgeschaltete WCS/CPU-Schnittstelle 16 übertragen wird. Drei grundlegende WCS-Taktsignale werden erzeugt: SYSCLK, RSBCAP, DELY 90. Diese Taktsignale stellen sicher, daß die Operationen des Steuerspeichers WCS und der Zentraleinheit CPU synchronisiert sind. In Fig. 17 ist die Logik zur Erzeugung dieser WCS-Signale dargestellt.
  • Das Signal SYSCLK stellt das primäre WCS-Zeittaktsignal dar. Es wird direkt über einen Puffer 100 erzeugt und folgt daher genau dem CPU-Haupttaktsignal MCLOCK+. Dieses primäre WCS-Signal wird benutzt, um die anderen Basis-Taktsignale zu erzeugen, um die Felder NA und BR des aus dem Speicher RAM gelesenen Steuerwortes zu speichern und um den Erhöhungs-Adreßzähler MCNT-70 zu erhöhen.
  • Das Signal RSBCAP wird 60 ns nach dem primären Signal SYSCLK 8 über eine Verzögerungsleitung 102 erzeugt. Seine primäre Verwendung liegt in dem Eintakten erhöhter Adressen aus dem Erhöhungs-Adreßzähler MCNT-70 in das Rückkehrregister RSBA-72. Der Takt RSBCAP setzt ebenfalls das Zyklus-Steuer-Flip-Flop 104, welches einerseits über ein ODER-Gatter 110 die Verzögerungsleitung 102 erneut in Betrieb setzt und somit ein um 90 ns verzögertes Signal zum Laden des Zählers MCNT-70 erzeugt. Wenn jedoch eine Eintrittsanweisung gespeichert ist (SPCONT), so wird das anfängliche Eingangssignal in die Verzögerungsleitung (LINEIP) über Logikelemente gesperrt, wobei diese durch das UND- Gatter 106 und das ODER-Gatter 108 vorgegeben sind. Das Signal RSBCAP- wird somit nicht erzeugt und es wird daher das Laden des Registers RSBA-72 und des Zählers MCNT-70 verhindert.
  • Das Signal DELY90+ wird über das ODER-Gatter 112 90 ns nach dem primären Taktsignal SYSCLK+ nur dann erzeugt, wenn eine Eintrittsanweisung nicht gespeichert ist. Sein Zweck liegt darin, die Adresse in den Erhöhungs-Adreßzähler MCNT-70 zu takten, die für den Zugriff auf den Speicher RAM 24 benutzt wird.
  • Wenn der RAM-Speicher 24 des Steuerspeichers WCS freigegeben ist (Anwender-Firmware aktiv), so wird jeder CPU-Firmwarezyklus um zusätzliche 80 ns erweitert. Dies geschieht gemäß Fig. 18 durch Anhalten des CPU-Taktes um 80 ns während jedes CPU-Zyklus. Der CPU-Takt wird gesperrt, wenn das Signal PLUPTB auf den niedrigen Pegel geschaltet wird. Wenn das Testgerät 26 installiert ist, so wird dieses Signal in dem Testgerät erzeugt und dazu verwendet, den CPU-Takt anzuhalten und zu starten. Wenn das Testgerät nicht installiert ist, so wird ein PLUPTB-Flip-Flop 114 in dem Steuerspeicher WCS benutzt, um den CPU-Zyklus zu erweitern. Der erweiterte Zyklus wird gebildet, in dem das Flip-Flop 114 für 80 ns in jedem CPU-Zyklus gelöscht wird. Wenn das Signal PROMCE am Eingang des Inverters 116 den niedrigen Pegel aufweist (RAM ist freigegeben), so taktet das CPU-Zeittaktsignal CDHOOO- auf der Leitung 118 das PLUPTB-Flip-Flop 114 auf den niedrigen Pegel. Hierdurch wird eine 80 ns-Verzögerungsleitung 120 über ein ODER-Gatter 122 in Betrieb gesetzt. Das Flip-Flop 114 bleibt gelöscht und dadurch wird der CPU-Takt angehalten, bis die 80 ns- Verzögerung abgelaufen ist. Am Ende der Verzögerung nimmt das Signal ENDCH-, das über den Inverter 126 und das ODER-Gatter 124 abgegeben wird, den hohen Pegel ein und setzt das Flip-Flop 114 auf den hohen Pegel, wodurch der CPU-Takt erneut gestartet wird.
  • Der CPU-Zyklus wird jedesmal erweitert, wenn das Signal CDHOOO erzeugt wird, wobei dies solange geschieht bis die CPU-Firmware erneut die Steuerung übernimmt, was durch den hohen Pegel des Signales PROMCE signalisiert wird.
  • Wenn entweder eine RAM-Lese- oder eine RAM-Schreibanweisung an den Steuerspeicher WCS ausgegeben wird, so wird eine Lese/Schreib- Tastimpuls WRITIM erzeugt. Dieser Tastimpuls ist erforderlich aufgrund der asynchronen Natur der Sammelschienen 14 und um sicherzustellen, daß die WCS-Adressier- und Ausgangswahllogik geschaltet ist, bevor Daten in den Speicher RAM oder auf die Sammelschiene 14 getastet werden. Kein spezieller Zeittakt wird jedoch für ein Firmwarewort erzeugt, das von dem Speicher RAM gelesen wird und direkt zu der Zentraleinheit CPU-12 über die festgeschaltete WCS/CPU-Schnittstelle 16 gesendet wird. In diesem Fall wird das normale CPU-Steuerspeicher-Tastsignal MCLOCK benutzt. Der Lese/Schreib-Anweisungstakt wird durch zwei Monoflops 128 und 130 und eine Verzögerungsleitung 132 gebildet, wie dies in Fig. 19 dargestellt ist. Wenn entweder eine RAM-Lese- oder Schreibanweisung in den Flip-Flops 134 oder 136 gespeichert ist und der Sammelschienen-Tastzeittakt MYADD2 am Eingang des UND- Gatters 138 vorliegt, so werden über das ODER-Gatter 140 beide nachgeschalteten Monoflops 128 und 130 geschaltet. Das Signal BUSKIL+ und seine Umkehrung BSCNCK+ wählen den Sammelschienen- Adreßzähler 68 aus, um den Speicher RAM zu adressieren. 195 ns später verschwindet das Signal WRIDEL+ des Monoflops 130, wodurch das Signal WRITIM am Ausgang des UND-Gatters 146 über das Flip-Flop 142 und den Inverter 144 auf den hohen Pegel geschaltet wird, und der hohe Pegel durch die Verzögerungsleitung 132 für eine Dauer von 40 ns vorgegeben wird. Dieser 40 ns-Tastimpuls ruft die Erzeugung des Signales DOCLCK am Ausgang des UND-Gatters 148 hervor, wenn eine Leseanweisung gespeichert ist bzw. es gibt den Schreibimpulsdecodierer 150 über das UND-Gatter 152 frei, wenn eine Schreibanweisung gespeichert ist. Der Decodierer 150, der in der Schreibsteuerlogik 89 enthalten ist, erzeugt einen von vier möglichen Schreibwortimpulsen BTWR11-14, wobei der jeweilige Schreibwortimpuls durch die niedrigrangigen Adreßbits SADDOO, SADDO1 vorgegeben wird, die in dem Sammelschienen-Adreßzähler 68gespeichert sind. Nach Ablauf von 270 ns schaltet das Monoflop 128 zurück, wodurch der Sammelschienen-Adreßzähler 68 zur Erhöhung auf die nächste Wortadresse freigegeben wird.
  • Um auf den Speicher mit wahlfreiem Zugriff des Steuerspeichers WCS Zugriff zu nehmen, muß die Adresse das in Fig. 20 dargestellte Format aufweisen. Das Bit 0 der RAM-Adresse muß den Wert "1" aufweisen, womit angezeigt wird, daß dies eine WCS-RAM-Adresse ist. Es liegt in der Verantwortlichkeit des Anwenders, sicherzustellen, daß das Bit 0 den hohen Pegel in jeder Startadresse aufweist, die anfänglich in den Sammelschienen- Adreßzähler 68 über eine WCS-Ladeanweisung geladen wird. Den gleichen Wert muß diese Bit für alle RAM-Adressen aufweisen, die in dem Feld für nächste Adresse NA in jedem Anwender-Firmwarewort codiert ist. Die WCS-Logik wird verwendet, um das Bit 0 auf den hohen Pegel zu setzen, wenn die Anwender-Firmware aktiv ist oder wenn eine Eintrittsanweisung bearbeitet wird. Die Bits 0 und 1 werden benutzt, um den Speicher RAM-24 freizugeben. Wenn das Bit 0 den Wert "0" aufweist, so sind beide RAM-Speicher gesperrt. Das Bit 1 legt fest, welcher RAM-Speicher freigegeben ist (z. B. gibt das Bit 1 den ersten Speicher bei niedrigem Pegel und den zweiten Speicher bei hohem Pegel frei). Die Bits 2 bis 11 bilden die Zugriffsadresse, die an die RAM-Speicher gesendet wird. Die WCS-Logik wählt die Adresse aus und gibt die RAM-Adressen an die RAM-Speicher. Die abgegebene Adresse wird durch zwei Adressenmultiplexer ausgewählt, die durch den Direktadressenmultiplexer DADD-76 und den Auswahladressenmultiplexer SELA-74 gemäß Fig. 3 vorgegeben sind. Diese ausgewählte Adresse kann von der Erzeugungslogik für die nächste Adresse in der Zentraleinheit CPU oder von bestimmten Registern und Zählern innerhalb des Steuerspeichers WCS kommen, wie dies in Fig. 3 dargestellt ist.
  • Der Direktadressenmultiplexer DADD-76 wählt die endgültige Adresse aus, die an die RAM-Speicher geliefert wird. Diese Adresse kann entweder am Ausgang des Sprungadreßregisters JADD-78, das das NA-Feld des Firmwarewortes speichert, oder vom Ausgang des Auswahladressenmultiplexers SELA-74 ausgewählt werden, wobei der letztgenannte Multiplexer die Adressen von verschiedenen Quellen auswählt. Das Sprungadreßregister 78 wird nur ausgewählt, wenn der Steuerspeicher WCS im Folgemodus arbeitet und eine Verzweigung zu dem NA-Feld gefordert ist. In allen anderen Fällen wird der Ausgang des Multiplexers SELA-74 ausgewählt. Die Auswahl des Multiplexers DADD-76 wird durch das niedrigrangigste Bit der nächsten Adresse festgelegt, das über die Leitung 94 empfangen wird. Die auf diese Weise ausgewählte Adresse wird in erster Linie durch die CPU-Firmware-Testlogik gesteuert. Während jedes Firmwarezyklus werden die BR-(Verzweigungscode) und die TC-(Testzustand)-Felder des adressierten Firmwarewortes durch die normale CPU-Firmware-Testlogik überprüft. Wenn diese CPU-Logik feststellt, daß eine Verzweigung zu dem NA-Feld gefordert ist, so informiert sie davon den Steuerspeicher WCS, indem sie das Signal NAGO11 auf der Leitung 90 auf den hohen Pegel setzt. Das Sprungadreßregister wird somit für den Ausgang des Multiplexers DADD-76 ausgewählt. Wenn jedoch eine Verzweigung vom Verbindungstyp aus dem Firmwarewort decodiert wird, oder wenn sich der Steuerspeicher WCS im Transparenzmodus befindet, so wird der Multiplexer SELA-74 mit seinem Ausgangssignal ausgewählt, um den Speicher RAM unabhängig von dem Ausgangssignal der CPU-Testlogik zu adressieren.
  • Um die Stabilität der Eingangssignale des Multiplexers 76 und eine ausreichende Zeit für die RAM-Adressenerzeugung sicherzustellen, wird das NA-Feld des adressierten Firmwarewortes in das WCS-Sprungadreßregister JADD-78 zu Beginn eines jeden Firmwarezyklus SYSCLK eingetaktet, wie dies aus Fig. 3 hervorgeht. In gleicher Weise werden die BR-Bit 1, 2 und 3 des Firmwarewortes, die die Auswahl des Multiplexers SELA-74 steuern, mit dem gleichen Zeittaktsignal SYSCLK in WCS Flip-Flops 160 und 162 gespeichert. Da dieses Zeittaktsignal direkt von dem CPU-Haupttakt MCLOCK abgeleitet wird, ist die Erzeugungslogik für die nächste Adresse in der Zentraleinheit CPU und die Adressenlogik des Speichers RAM im Steuerspeicher WCS immer synchronisiert.
  • Der Multiplexer MELA-74 wählt die Zugriffsadresse auf den WCS- RAM-Speicher in allen Fällen aus, mit Ausnahme, wenn eine Verzweigung auf das NA-Feld eines Firmwarewortes gefordert ist.
  • Wenn jedoch eine Verzweigung auf das NA-Feld gefordert ist, so übersteuert der Multiplexer DADD-76 den Multiplexer SELA-74, indem er den Inhalt des Sprungadreßregisters 78 (NA-Feld) an die RAM-Speicher abliefert.
  • Gemäß Fig. 21 wird das Ausgangssignal des Multiplexers 74 durch den Binärcode von Steuerfunktionen MUXSL 4, MUXSL 2 und MUXLS 1 an den Ausgängen entsprechender Inverter 164 und ODER-Gatter 166 und 168 festgelegt. Der Eingang des Inverters 164 ist an den Ausgang eines ODER-Gatters 170 angeschlossen, wobei dieses Ausgangssignal ebenfalls auf UND-Gatter 172 und 174 einwirkt, die die Ausgänge der Flip-Flop 160 und 162 mit den ODER-Gattern 168 und 166 verbinden. Dem ODER-Gatter 170 werden die Anweisungen des Decodierers 34 zugeführt. Der ausgewählte Code wird entsprechend der Betriebsweise des Steuerspeichers erzeugt. Für die Zwecke der Erzeugung des Auswahlcodes kann der WCS-Betriebszustand entweder ein durch Firmware gesteuerter Betriebszustand oder ein Betrieszustand mit RAM- Zwangsadresse sein. In einem durch die Firmware gesteuerten Betriebszustand wird der Auswahlcode direkt aus dem BR-Feld des Firmwarewortes erzeugt und ist für einen Firmwarezyklus gültig. In einem Betriebszustand mit RAM-Zwangsadresse wird das BR- Feld unterdrückt, und der Auswahlcode wird entsprechend den spezifischen WCS-Anweisungen bzw. dem in dem Steuerspeicher WCS gespeicherten Betriebszustand gesetzt. Der durch einen Betriebszustand mit RAM-Zwangsadresse erzeugte Auswahlcode ruft die Gültigkeit des Firmwarezyklus solange hervor wie der Zwangszustand vorliegt. Jeder durch einen Betriebszustand mit Zwangsadresse erzeugte Auswahlcode besitzt Priorität über einen Auswahlcode, der, durch die Firmware gesteuert, erzeugt wird.
  • Jeder der unten aufgelisteten Zustände zeigt an, daß eine Betriebsweise mit RAM-Zwangsadresse vorliegt. Jeder Zustand erzeugt einen eindeutigen Auswahlcode und ruft daher die Auswahl einer spezifischen Eingangsadresse durch den Multiplexer SELA-74 hervor. Die RAM-Zwangsadreßzustände sind folgende:
    • eine WCS-Lese- bzw. eine RAM-Schreibanweisung wird in dem Steuerspeicher WCS ausgeführt (dieser Zustand liegt vor, wenn das Lese/Schreib-Monoflop- Zeittaktsignal BUSKIL/BSCMCK wirksam ist);
      eine Eintrittsanweisung wird durch den Steuerspeicher WCS bearbeitet (die Anweisungs-Decodierfunktion SPCONT zeigt diesen Zustand an); und
      der Steuerspeicher WCS befindet sich im Transparenzmodus d. h. das Signal TRANSP besitzt den hohen Pegel.

  • Ein durch die Firmware gesteuerter Auswahlcode wird erzeugt, wenn kein Zustand mit RAM-Zwangsadresse vorliegt. Dies kann nur der Fall sein, wenn der Steuerspeicher WCS im Folgemodus betrieben wird, wobei in diesem Fall die durch den Multiplexer SELA-74 ausgewählte Adresse nur von drei Quellen stammen kann: dem Erhöhungszähler MCNT-70, dem Rückkehr von der Subroutine-Register RSBA- 72 und von einem Register innerhalb der Zentraleinheit CPU-12, dem sogenannten CPU-Verbindungsregister. Das Ausgangssignal des CPU-Verbindungsregisters wird auf der NAG Leitung 94 auf den hohen Pegel gesetzt, wenn die CPU-Logik eine Verzweigung vom Verbindungstyp in dem BR-Feld des Firmwarewortes decodiert. Da nur drei Quellen ausgewählt werden können, sind nur zwei Bits des BR-Feldes (MEMD50 und MEMD49) erforderlich, um den Auswahlcode zu erzeugen.
  • Das Aufsplitterungs-Adreßregister, das in näheren Einzelheiten in Fig. 22 gezeigt ist, liefert eine temporäre Speicherung des Aufgabenwortes, das über die Datenleitungen der Sammelschiene 14 zugeführt wird, wenn eine Eintrittsanweisung an den Steuerspeicher WCS ausgegeben wird. Dieses Wort wird benutzt, um die RAM-Adresse für den Eintritts-Firmwarezyklus zu liefern. Es ist erforderlich, das Aufgabenwort zu speichern, da die Sammelschienendaten nicht während des gesamten Firmwarezyklus gültig sind. Am Beginn des nächsten Firmwarezyklus SYSCLR wird der Inhalt des Aufsplitterungsregisters auf den Binärwert "0" gelöscht. Im folgenden sei die Betriebsweise dieses Registers beschrieben. Wenn eine Eintrittsanweisung an den Steuerspeicher WCS ausgegeben wird, so nimmt der Funktions-Aufsplitterungstakt SPLCLK am Ausgang des UND-Gatters 180 den hohen Pegel beim Auftritt des Tast-Zeittaktsignales MYADD 2 für die Sammelschienen 14 ein. Der Impuls SPLCLK ruft zwei Dinge hervor: zunächst wird das Flip-Flop 182 für die Speicherung der Aufsplitterungsanweisung gesetzt. Dieses Flip-Flop setzt einen Auswahlcode auf den Steuerleitungen des Multiplexes SELA-74. Das Aufsplitterungsregister wird somit ausgewählt, um den Speicher RAM zu adressieren. Sodann wird das Aufgabenwort auf den Sammelschienenleitungen BSDT09, BSDT12 bis BSDT15 in die Bitpositionen SADSEL, SPAD03 bis SPAD00 des Aufsplitterungsregisters 66 entsprechend eingetastet. Der Ausgang dieses Registers ist mit dem Multiplexer SELA-74 verbunden und bildet über diesen die RAM-Adresse. Durch diese Adresse wird auf den Speicher RAM Zugriff genommen, da das Signal SPCONT gesetzt ist. Beim Beginn des nächsten Firmwarezyklus ( Zeittaktsignal SYSCLK schaltet auf den hohen Pegel um) wird das Aufsplitterungs-Lösch-Flip-Flop 184 gesetzt. Hierdurch wird über das ODER-Gatter 186 das Flip-Flop 182 und somit das Signal SPCONT gelöscht, wodurch ein neuer Auswahlcode erzeugt werden kann, und der Inhalt des Aufsplitterungsregisters wird ebenfalls auf den Binärwert "0" zurückgestellt. Das Flip-Flop 184 wird während des nächsten Firmware-Zyklus zurückgestellt.
  • Gemäß Fig. 23 besteht der Erhöhungs-Adreßzähler MCNT-70 aus einem 12 Bit-Aufwärtszähler, der bei jedem Firmwarezyklus eine erhöhte RAM-Adresse liefert. Die Betriebsweise dieses Zählers erfolgt synchronisiert, d. h., daß ein Taktimpuls CNTR3C für das Laden bzw. für die Zählstandserhöhung erforderlich ist. Im Folgenden sei die Betriebsweise des Zählers 70 beschrieben. Beim Beginn eines jeden Firmwarezyklus SYSCLK wird der Inhalt des Zählers MCNT-70 durch den Taktimpuls CNTRC3C fortgeschaltet. Dieser Taktimpuls wird über die ODER-Gatter 190 und 192 und das UND- Gatter 194 erzeugt. Das erhöhte Ausgangssignal MCNT00-11 wird an den Auswahladressenmultiplexer SELA-74 gesendet. Die Adresse des Zählers MCNT-70 kann als RAM-Speicheradresse ausgewählt werden, wenn der geeignete Auswahlcode erzeugt wird. Die erhöhte Adresse wird ebenfalls zu dem Rückkehr von der Subroutine-Register RSBA-72 gesendet. Sie wird durch Verwendung des Signales RSBCAP und des UND-Gatters 196 in das Register 72 60 ns nach der Erhöhung des Zählers 70 eingetastet, sofern sich nicht die Firmware bereits in einer Subroutine befindet. Die Verzögerung stellt sicher, daß der Zähler MCNT-70 einen stabilen Zählstand aufweist bevor er eine Rückkehradresse auf eine Subroutine speichert. 90 ns nach dem Beginn eines jeden Firmwarezyklus ist die RAM- Adressierlogik stabil und die RAM-Adresse am Ausgang des Multiplexers DADD-76 ist gültig. Zu dieser Zeit wird ein Ladeimpuls LMCNTR über die UND-Gatter 198 und 200 sowie den Inverter 202 erzeugt, um die neue RAM-Adresse in den Erhöhungszähler MCNT-70 zu laden. Diese Adresse kann entweder die erhöhte Adresse des Zählers MCNT-70 sein oder durch den Inhalt des Registers RSBA-72 oder irgendeine andere Adresse vorgegeben sein, die durch die RAM-Adressenmultiplexer 74 und 76 ausgewählt wird. Der Zähler MCNT-70 kann asynchron durch das Auslösesignal INMCLR gelöscht werden.
  • Das Rückkehr von der Subroutine-Register RSBA-72 speichert die Rückkehradresse für den Steuerspeicher WCS, wenn eine Verzweigung auf eine Firmwaresubroutine ausgeführt wird. Fig. 23 veranschaulicht ebenfalls die detaillierte RSBA-Logik. Der Ausgang des Registers RSBA-72 wird dann ausgewählt, um den Speicher RAM zu adressieren, wenn ein die Rückkehr von der Subroutine betreffender Microbefehl bearbeitet wird. Die erhöhte Adresse des Zählers 70 wird in dieses Register 72 bei jedem Firmwarezyklus geladen, mit Ausnahme, wenn die Firmware eine Subroutine bearbeitet. Dies geschieht durch Sperrung der Ladefunktion RSBRCK des Registers RSBA-72 während der Bearbeitung einer Subroutine. Wenn somit ein die Rückkehr von einer Subroutine betreffender Microbefehl bearbeitet wird, so wird in den nächstfolgenden Speicherplatz nach dem Speicherplatz eingetreten, der die Verzweigung auf die Subroutine enthält. Das RSBA-Register wird 60 n (RSBCAP) nach dem Beginn eines jeden Nicht-Subroutinen-Firmwarezyklus durch Verwendung des UND-Gatters 196 geladen. Die Verzögerung stellt sicher, daß der Inhalt des Zählers MCNT-70 stabil ist, bevor die Rückkehradresse gespeichert wird. Das Flip-Flop 212 verhindert mit seinem signal RSTBRA die Änderung des Inhalts des Registers 72 während Subroutinenoperationen. Wenn eine Verzweigung auf einen Subroutinen-Microbefehl durch das UND-Gatter 216 festgestellt wird (&udf53;lu,4,,100,5,1&udf54;MUXBR1&udf53;lu&udf54; · MUXBR2 · NAG11) so wird das Flip-Flop 212 gesetzt und sperrt über das UND-Gatter 196 die Ladefunktion RSBRCK. Wenn an den Eingängen der UND-Gatter 218 und 220 eine Verzweigung mit der Rückkehr auf eine Subroutine festgestellt wird (MUXBR1 · &udf53;lu,4,,100,5,1&udf54;MUXBR2&udf53;lu&udf54; · NAG11), so wird über das UND-Gatter 222 das Signal RSTBRA des Flip-Flops 212 gelöscht, wodurch die Speicherung einer neuen Adresse in dem Register RSBA-72 ermöglicht wird. Dies geschieht zum Beginn des nächsten Firmwarezyklus SYSCLK.
  • Die System-Sammelschiene 14 bildet die Schnittstelle, die von der Zentraleinheit CPU und anderen Einheiten benutzt wird, um einen Dialog untereinander auszuführen. Alle von der Zentraleinheit CPU ausgegebenen WCS-Anweisungen werden an den Steuerspeicher WCS über diese Sammelschiene übertragen, während der Steuerspeicher WCS nur Daten an die Zentraleinheit CPU über diese Sammelschiene überträgt. Der Steuerspeicher WCS führt keinen direkten Dialog mit dem Hauptspeicher durch. Alle Operationen auf der Sammelschiene 14 erfolgen asynchron und der Dialog findet auf einer Haupt/Nebenbasis statt. Die Haupteinheit fordert einen Sammelschienenzyklus an und überträgt die Kanalnummer und Dateninformation zu der Nebeneinheit. Umgekehrt bestätigt die Nebeneinheit ihre Kanalnummer und antwortet mit dem geeigneten Antwortsignal. Das Antwortsignal beendet den Sammelschienenzyklus. Wenn kein Antwortsignal ausgegeben wird, so beendet ein Zeitablauf den Sammelschienenzyklus.
  • Es sind zwei Sammelschienenzyklen erforderlich um Information von dem Steuerspeicher WCS zu lesen. Im ersten Zyklus bildet die Zentraleinheit CPU die Haupteinheit und gibt die Leseanweisung an den Steuerspeicher WCS aus, um Daten anzufordern. Im zweiten Sammelschienenzyklus wird der Steuerspeicher WCS zur Haupteinheit und überträgt die angeforderten Daten zu der Zentraleinheit CPU. Die drei Anweisungen an den Steuerspeicher WCS, die die beiden Sammelschienenzyklen erzeugen sind folgende:
    • 1. Eingangsstatus-Anweisung,
    • 2. Eingangsidentifikations-Anweisung und
    • 3. Ram-Lese-Anweisung.

    Nur ein Sammelschienenzyklus ist erforderlich, um eine Schreib- oder irgendeine andere Anweisung an den Steuerspeicher WCS auszugeben. In diesem Fall ist die Zentraleinheit CPU immer die Haupteinheit und alle erforderliche Information wird zu dem Steuerspeicher WCS in einem Sammelschienenzyklus übertragen. Eine vollständige Beschreibung der Sammelschiene 14 kann der US-PS 39 93 981 entnommen werden. Die Sammelschienen-Steuersignale, die dort beschrieben sind, seien hier kurz wiedergegeben.
  • Es gibt sieben Haupt-Sammelschienensignale, die den Betrieb der Sammelschiene steuern. Eine Beschreibung dieser Signale im Hinblick auf den Steuerspeicher WCS sei nachstehend gegeben. Jedes Signal weist den hohen Pegel auf, wenn seine Sammelschienenleitung an Masse gelegt ist.
  • BSREQT (Bus Request = Sammelschienenanforderung) - Wenn dieses Signal den hohen Pegel besitzt, so zeigt es an, daß irgendeine Haupteinheit einen Sammelschienenzyklus anfordert. Dieses Signal wird nur durch den Steuerspeicher WCS auf den hohen Pegel geschaltet, wenn die zweite Hälfte eines Sammelschienenzyklus angefordert wird.
  • BSDCNN (Data Cycle Now = jetzt Datenzyklus) - Dieses Signal zeigt bei hohem Pegel an, daß eine Haupteinheit Information auf der Sammelschiene für eine Verwendung durch eine bestimmte Nebeneinheit abgibt. Wenn der Steuerspeicher WCS nicht die Haupteinheit ist, so muß er nun bestimmen, ob er die adressierte Nebeneinheit ist und die Antwort an die Haupteinheit festlegen. Die drei möglichen Antwortsignale sind: BSACKR, BSWAIT und BSNAKR. Während einer zweiten Hälfte des Lesezyklus bildet der Steuerspeicher WCS die Haupteinheit und setzt das Signal BSDCNN auf den hohen Pegel, wenn gültige Daten an die Zentraleinheit CPU übertragen werden. Die drei möglichen Antworten sind nachstehend näher beschrieben:
  • BSACKR (Acknowledge Response = Bestätigungsantwort) - Der Steuerspeicher WCS setzt dieses Signal auf den hohen Pegel, um die Zentraleinheit CPU (Haupteinheit) davon zu informieren, daß er die gegenseitige Übertragung auf der Sammelschiene annimmt.
    BSWAIT (Wait Response = Warteantwort) - Der Steuerspeicher WCS setzt dieses Signal auf den hohen Pegel, um die Haupteinheit davon zu informieren, daß der Steuerspeicher WCS mehr Zeit benötigt, um die Anweisung zu vervollständigen. Dies veranlaßt die Haupteinheit zur Neuausgabe des Sammelschienenzyklus. Der Steuerspeicher WCS erzeugt Warteantworten bei folgenden Anweisungen:
    • 1. Eintrittsanweisung,
    • 2. RAM-Austrittsanweisung, Rückkehr zur PROM-Steuerung-Anweisung und
    • 3. RAM-Lese/ bzw. Schreibanweisung.

    BSNAKR (Negative Response = Negative Bestätigungsantwort) - der Steuerspeicher WCS setzt dieses Signal auf den hohen Pegel, um die Haupteinheit davon zu informieren, daß er einen Fehler festgestellt hat und die Sammelschienenübertragung nicht akzeptiert. Die folgenden WCS-Zustände erzeugen eine NAK-Antwort:
    • 1. Megabus-Paritätsfehler,
    • 2. festgestellter RAM-Ladefehler und
    • 3. adressiertes nicht existierendes Systemmittel.

    Der Steuerspeicher WCS erzeugt niemals eine negative Bestätigungsantwort aufgrund der zweiten Hälfte eines Lesezyklus. Wenn eine negative Bestätigung BSNAKR empfangen wird, so wird der Steuerspeicher WCS die zweite Hälfte des Lesezyklus nicht anfordern und die Zentraleinheit CPU wird die Daten niemals zugeführt erhalten.
    BSMREF (Memory Reference = Speicherbezugnahme) - Dieses Signal zeigt im gesetzten Zustand an, daß ein Zyklus mit Speicherbezugnahme vorliegt. Der Steuerspeicher setzt dieses Signal auf den niedrigen Pegel während der zweiten Hälfte eines Lesezyklus.
    BSSHBC (Second Half Bus Cycle = Zweite Hälfte des Sammelschienenzyklus) - Dieses Signal zeigt an, daß die zweite Hälfte eines Lesezyklus vorliegt. Der Steuerspeicher WCS setzt dieses Signal auf den hohen Pegel, wenn Daten zu der Zentraleinheit CPU übertragen werden.
  • Wenn die Zentraleinheit CPU eine WCS-Anweisung ausgibt, so muß der Steuerspeicher WCS mit einem der drei Antwortsignale antworten:
    • 1. BSWAIT (Anhalten der Zentraleinheit CPU, Neuausgabe der Anweisung),
    • 2. BSACKR (normale Bestätigung, Anweisung akzeptiert), oder
    • 3. BSNAKR (negative Antwort, Anweisung nicht akzeptiert).

  • Das Signal BSWAIT wird benutzt um die Zentraleinheit CPU anzuhalten und Zeit für den Zugriff auf den Speicher RAM oder zur Umschaltung zwischen der PROM- und RAM-Firmwaresteuerung bereitzustellen. Wie zuvor erwähnt, sind verschiedene Anhaltezeiten für verschiedene Anweisungen erforderlich. Die Anzahl der erzeugten Warteantworten BSWAIT bildet die erforderliche Verzögerung.
  • Ein Schieberegister 230 wird gemäß Fig. 24 benutzt, um die richtige Anzahl von Antworten zu erzeugen. Alle an den Steuerspeicher WCS ausgegebenen Anweisungen setzen irgendein Bit in dem Schieberegister, wenn das WCS-Sammelschienen-Tastsignal MYADD2 über die UND-Gatter 236 und 238 erzeugt wird. Die Anweisungen werden an den entsprechenden Eingängen des Schieberegisters 230 in Abhängigkeit von der Anzahl der erforderlichen Wartestops aufgenommen. Zwei solcher Anweisungen, die die gleiche Anzahl von Stillsetzungen erfordern, werden an dem gleichen Eingang des Schieberegisters 230 über ein ODER-Gatter 240 empfangen. Wenn die letzte Stufe des Schieberegisters nicht gesetzt ist, so wird eine Warteantwort BSWAIT über ein ODER-Gatter 242 erzeugt. Dies ruft die Beendigung des Sammelschienenzyklus und die Erzeugung eines nachfolgenden neuen Sammelschienenzyklus hervor. Jeder neuausgegebene Sammelschienenzyklus erzeugt ein neues Signal MYADD1 und, da einige Bit zuvor in dem Schieberegister gesetzt sind, wird über das UND-Gatter 234 ein Schiebeimpuls NOSHFT erzeugt. Hierdurch wird das gespeicherte Bit in Richtung auf die letzte Stufe des Schieberegisters 230 verschoben. Wenn das Ausgangssignal PREACK der letzten Stufe nicht gesetzt ist, so wird eine Warteantwort BSWAIT erneut ausgegeben, wodurch ein neuer Sammelschienenzyklus und eine weitere Verschiebung hervorgerufen werden. Wenn das Ausgangssignal PREACK gesetzt ist, so wird über das UND-Gatter 244 eine Bestätigungsantwort BSACKR erzeugt. Hierdurch werden die Sammelschienenoperationen beendigt und die Zentraleinheit CPU wird davon informiert, daß der Steuerspeicher WCS die Anweisung angenommen hat.
  • Wenn ein Fehlerbit in dem WCS-Statusregister gespeichert ist, d. h. wenn das Signal COOLAK vorliegt, und wenn das Signal PREACK vorliegt, so wird eine negative Bestätigungsantwort BSNAKR über die UND-Gatter 246 und 248 ausgegeben, wobei das UND-Gatter 244 mittels des Gatters 246 und des Inverters 250 gesperrt ist. Anweisungen, die das Lesen des Status, das Lesen der Identifikation und das Laden der Adresse oder das Auslösen betreffen, werden niemals durch den Steuerspeicher WCS mit einer negativen Antwort bestätigt. Die negative Antwort beendet die Sammelschienenoperation und informiert die Zentraleinheit CPU davon, daß der Steuerspeicher WCS die Anweisung nicht angenommen hat. Das WCS- Statusregister 88 kann abgefragt werden, um die Natur des Fehlers festzustellen.
  • Der Sammelschienen-Adreßzähler 68 ist ein 14 Bit-Aufwärtszähler, der in den Fig. 5 und 25 dargestellt ist. Dieser Zähler speichert die RAM-Adresse, die für den Zugriff auf den Speicher RAM benutzt wird, wenn entweder eine Schreib- bzw. Leseanweisung ausgeführt wird. Er ist ursprünglich mit einer getrennten WCS- Anweisung LDEADD geladen, die an einem Eingang des UND-Gatters 260 aufgenommen und sodann mittels des Signales BSCNCK (siehe Fig. 19) jedesmal erhöht wird, wenn eine RAM-Lese- oder Schreibanweisung ausgeführt wird. Da das in einem RAM-Speicherplatz gespeicherte Firmwarewort eine Breite von 64 Bit aufweist, und die Datenleitungen der Systemsammelschiene nur ein Datenwort mit 16 Bit übertragen können, werden die am wenigsten signifikaten beiden Bits dieses Zählers (SADD01, SADD00) benutzt, um auf das entsprechende Datenwort hinzuweisen. Die binäre Konfiguration dieser Bits verweist auf das Datenwort innerhalb eines Firmwarewortes, das zu verarbeiten ist. Beim Schreiben in den Speicher RAM legen diese Bits fest, welcher Schreibwortimpuls für jede Anweisung erzeugt wird. Beim Lesen des Speichers RAM steuern diese Bits den Ausgang des Ausgangsdatenselektors 82, wodurch das zu der Zentraleinheit CPU zu übertragende Wort ausgewählt wird. Wenn eine Anfangsadresse in diesen Zähler 68 geladen wird, so weisen diese beiden Hinweisbits den Wert "0" auf. Dies stellt sicher, daß diese Hinweisbits immer auf das erste Datenwort (Wort Null) verweisen, wenn die erste Lese- oder Schreibanweisung ausgegeben wird, nachdem die Adressen-Ladeanweisung bearbeitet ist. Die tatsächliche Adresse, die für den Zugriff auf den Speicher RAM benutzt wird, ist in der oberen 12 Bits dieses Registers (CSAD00-CSAD11) gespeichert.
  • Der Sammelschienen-Adreßzähler wird nach jeder bearbeiteten Lese- oder Schreibanweisung fortgeschaltet. 270 ns nach der Speicherung einer Lese- oder Schreibanweisung schaltet das Ausgangssignal BSCNCK des Monoflops 128 (siehe Fig. 19) auf den hohen Pegel um, wodurch angezeigt wird, daß das Datenwort entweder aus dem Speicher RAM gelesen oder in den Speicher RAM geschrieben wurde. Diese Umschaltung ruft eine Erhöhung des Sammelschienen-Adreßzählers hervor, worauf die Hinweisbits auf das nächste Firmwarewort verweisen. Somit wird bei der Ausgabe der nächsten Lese- oder Schreibanweisung das nächste Datenwort behandelt. Vier Lese- oder Schreibanweisungen werden somit benutzt, um ein vollständiges Firmwarewort zu speichern. Wenn dies der Fall ist, so erhöht der Zähler automatisch den Zählstand, um auf den Speicher RAM an dem nächstfolgenden Speicherplatz Zugriff zu nehmen. Es ist keine neue RAM-Ladeadreßanweisung erforderlich.
  • Wie zuvor erläutert, kann der Steuerspeicher WCS eine Firmwareadresse in einer von zwei Betriebsweisen erzeugen:
    • 1. Normaler Transparenzmodus,
    • 2. Folgemodus.
    < VER NB=1>Ein Handschalter 95 in dem Steuerspeicher WCS wird benutzt, um die Betriebsweise des Steuerspeichers WCS auszuwählen. Im Folgemodus werden 3 Bit (63, 50, 49) des Firmwarewortes durch den Steuerspeicher WCS interpretiert, um die Quelle der nächsten Firmwareadresse festzustellen. In diesem Folgemodus setzt die WCS-Logik diese Bits (CSNA11, CSBR01, CSBR02) auf den niedrigen Pegel, wenn sie über die festgeschaltete WCS/CPU-Schnittstelle 16 an die Zentraleinheit CPU abgegeben werden. Im Transparenzmodus werden diese 3 Bit von dem Speicher RAM gelesen und unverändert an ein Register in der Zentraleinheit CPU-12 abgegeben. Bei dieser Betriebsweise erzeugt die normale Erzeugungslogik für die nächste Adresse in der Zentraleinheit CPU die nächste Firmwareadresse. Das Transparenzmodus- Flip-Flop 270 stellt sicher, daß der Ausgang für die nächste Adresse NAG der Zentraleinheit CPU ausgewählt wird, um den WCS- RAM-Speicher zu adressieren. Der Modusschalter 95 ist in näheren Einzelheiten in Fig. 26 dargestellt. Dieser Schalter kann ein hexadezimaler Drehschalter sein. Es sind jedoch nur zwei Schalterstellungen gültig (O und E). In der Stellung F wird der Folgemodus und in der Stellung O wird der Transparenzmodus ausgewählt. Wenn der Schalter 95 den Transparenzmodus auswählt, so wird das Funktionssignal STAB09 an Masse gelegt, wodurch das WCS-Transparenzmodus-Statusbit STAB09 am Ausgang des Inverters 272 den hohen Pegel und das Folgemodus-Statusbit STAB04 am Ausgang des Inverters 274 den niedrigen Pegel einnimmt. In dieser Stellung leitet der Schalter 95 die Ausgangssignale MEMD63, MEMD50, MEMD49 des Speichers RAM direkt zu dem internen Register des PROM-Speichers in der Zentraleinheit CPU, wobei dies durch die Bits CSNA11, CSBR02 und CSBR01 geschieht.
  • Wenn der Schalter 95 den Folgemodus auswählt, so schalten die Kontakte aus der in Fig. 26 gezeigten Stellung in die jeweils andere Stellung um. Hierdurch wird das Signal PLUP 16 am einen Ende des Widerstandes 278 an Masse gelegt, so daß das Folgemodus- Statusbit STAB04 auf den hohen Pegel und das Transparenzmodus- Statusbit STAB09 auf den niedrigen Pegel gesetzt wird. Bei einem niedrigen Pegel des Signales STAB09 werden über das UND-Gatter 282 die Treiber 280 freigegeben. Diese Treiber 280 geben immer ein Ausgangssignal mit niedrigem Pegel aus und sie werden durch den Schalter 95 im Folgemodus ausgewählt, um die Firmwarebits 63, 50 und 49 zu liefern. Wenn der PROM-Speicher der Zentraleinheit CPU freigegeben ist, und das Signal PROMCE vorliegt, so werden diese Treiber gesperrt, um das Laden des normalen Ausgangssignales des CPU-Steuerspeichers in das interne Register der Zentraleinheit CPU zu ermöglichen. Das Transparenzmodus- Flip-Flop 270, das die Adressierung des WCS-RAM-Speichers steuert, wird nicht direkt durch den Transparenzmodusschalter gesetzt. Über das UND-Gatter 284 und das Signal SPLCLR wird es in den Zustand des Transparenzmodusschalters nur getaktet, nachdem eine Eintrittsanweisung ausgeführt worden ist. Dies gestattet dem Steuerspeicher WCS den Eintritt in die Anwender-Firmware, und es wird sodann beim allernächsten Taktzyklus SPLCLR die Anwender-Firmware in der durch den Schalter 95 ausgewählten Betriebsweise bearbeitet. Das Flip-Flop 270 wird beim Folgemodus über das ODER-Gatter 286 gelöscht, wenn eine Rückkehr zur PROM- Anweisung decodiert wird (EXITRM) oder ein Auslösesignal (INMCLR) erfaßt wird. Wenn das Flip-Flop 270 gelöscht wird, so ist eine weitere Eintrittsanweisung erforderlich, um es erneut zu setzen.
  • Der Ausgang des CPU-PROM-Firmwarespeichers und der Ausgang des WCS-RAM-Speichers sind am Ausgang des CPU-Steuerspeichers miteinander verbunden. Es muß daher nur einer dieser Speicher zu jedem Zeitpunkt freigegeben sein. Gemäß Fig. 27 stellt das PROM-Steuerfreigabe-Flip-Flop 300 in dem Steuerspeicher WCS fest, welcher Speicher freigegeben ist. Wenn das Signal PROMCE des Flip-Flops 300 gesetzt ist, so ist der CPU-PROM-Speicher freigegeben. Das CPU-PROM-Freigabesignal PROMCE-01 wird über ein ODER-Gatter 304 zu der Zentraleinheit CPU-12 übertragen. Dieses Signal wird direkt von dem Flip-Flop 300 abgeleitet, wobei es mit dem RAM-Lese/Schreib-Zeittaktsignal BSCNCK des Monoflops 128 einer ODER-Verknüpfung unterzogen wird. Diese Verknüpfung stellt sicher, daß der CPU-PROM-Speicher während der Zeit gesperrt ist, in der eine tatsächliche Lese- oder Schreiboperation hinsichtlich des RAM-Speichers auftritt. Wenn das Monoflop 128 zurückkippt und das Signal BUSKIL ausgibt, so wird das Flip- Flop 300 über das von dem Inverter 306 gelieferte Signal PROMDD in einen Zustand gebracht, in dem der Speicher RAM freigegeben ist. Wenn jedoch in Form des Signals BSERRS am Ausgang des ODER-Gatters 308 ein Zustand vorliegt, der zwingend eine PROM- Steuerung vorschreibt, so bleibt das Flip-Flop 300 gesetzt und die CPU-Firmware behält die Steuerung bei. Die folgenden Zustände erzwingen ein Setzen des Flip-Flops 300 und somit die Freigabe des PROM-Speichers der Zentraleinheit CPU:
    • 1. Wenn die Zentraleinheit CPU einen Hauptfehler (z. B. einen fatalen Speicherfehler, usw.) feststellt, so setzt sie die NAG-Leitungen alle auf den Binärwert "0". Wenn sich der Steuerspeicher WCS im Folgemodus befindet, und er einen NAG-Zustand mit dem Binärwert "0" feststellt, so setzt er das PROM-Freigabesignal KSKILL auf den hohen Pegel.
    • 2. Wenn der Steuerspeicher WCS eine NAK-Antwort erzeugt, so wird die Freigabe des PROM-Speichers erzwungen. Eine NAK-Antwort kann nur erzeugt werden, wenn ein WCS-Fehlerstatusbit gesetzt ist.
    • 3. Wenn eine RAM-Austritts-Steueranweisung EXITRM decodiert wird, so wird die Freigabe des PROM-Speichers erzwungen.
    • 4. Wenn ein Auslösesignal INMCLR erfaßt wird, so wird das Signal PROMCE gesetzt um die CPU-PROM-Steuerung freizugeben.

  • Es gibt zwei Zustände, die das Löschen des Signales PROMCE aufgrund des Signales RAMLET erzwingen und somit die WCS-RAM- Steuerung freigeben:
    • 1. Wenn eine Eintrittsanweisung SPCONT in dem Steuerspeicher WCS gespeichert ist und
    • 2. wenn der SteuerspeicherWCS eine Warteantwort UNDWAT am Eingang des UND-Gatters 312 während der Ausführung einer RAM-Lese- oder Schreibanweisung RAMSEL erzeugt, die am Ausgang des Inverters 314 ansteht.

  • Das Flip-Flop 320 wird während der Auslösung der erfindungsgemäßen Speichereinrichtung benutzt. Der Löscheingang ist über ein ODER-Gatter 322 an Lösch-, Schreib- und Fehlerzutands-Eingangssignale angeschlossen, wobei jedes dieser Signale eine Verriegelung herbeiführt. Wenn irgendeiner dieser Verriegelungszustände wirksam ist, so erfolgt eine Rückkehr zur PROM-Operation. Wenn das Flip-Flop 320 gelöscht ist, so zeigt das Signal WCSRDY der Zentraleinheit CPU nicht länger einen aktiven Zustand an, wobei in diesem Fall eine Eintrittsanweisung solange nicht akzeptiert wird, bis derartige Verriegelungszustände gelöscht sind. Der Setzeingang des Flip-Flops 320 ist an einen Funktionscode angeschlossen, der grundsätzlich eine über die Sammelschiene 14 empfangene Ladeanweisung darstellt. Liegt eine inkorrekte oder nicht erfolgreiche Ladeanweisung vor, so übersteuert die Löschmaßnahme die Setzfunktion, und es erfolgt ein Hinweis WCSRDY zurück an die Zentraleinheit CPU, um dieser mitzuteilen, daß der Steuerspeicher WCS nicht bereit ist. Ferner wird für die spätere Verwendung der Zentraleinheit CPU der Zustand eines Statusbits (Bit Nummer 7) in der Statuslogik 88 geändert, wodurch dieser Status der Zentraleinheit CPU zugänglich gemacht wird. Ein solches Statusbit kann in einem späteren Zeitpunkt anzeigen, daß der Steuerspeicher WCS nicht bereit ist, wenn sich tatsächlich ein Fehlerzustand ergeben hat, obgleich das System anfänglich dem Steuerspeicher WCS die Bereitschaft angezeigt hatte. Eine Eintrittsanweisung wird an den Steuerspeicher WCS nicht ausgegeben, wenn das Flip-Flop 320 gelöscht ist. Das Flip-Flop 320 wird gelöscht, wenn in den WCS-RAM-Speicher eingeschrieben wird, ein Auslösesignal erfaßt wird, ein Fehlerzustand erfaßt wird oder wenn eine NAK-Antwort durch den Steuerspeicher WCS empfangen wird. Das Flip-Flop 320 wird nur durch die Ausgabe einer geeigneten Ausgabeanweisung von der Zentraleinheit CPU an den Steuerspeicher WCS gesetzt. Auf diese Weise kann die Zentraleinheit CPU sicherstellen, daß die Anwender-Firmware in dem Steuerspeicher WCS nur mit Erlaubnis der Zentraleinheit CPU bearbeitet wird, d. h. wenn ein Verriegelungszustand anderweitig vorliegt.
  • Die Logik gemäß Fig. 23 veranschaulichte die Art und Weise in der der Erhöhungs-Adreßzähler 70 geladen und getaktet wird. Die Logikelemente 190, 192, 194, 198, 200 und 202 verwirklichen hierbei die Lade- und Taktoperation. Fig. 28 veranschaulicht ein anderes Ausführungsbeispiel für diese Logik. Die Logik gemäß Fig. 28 ist insbesondere nützlich wegen ihrer extrem schnellen Operation. Wenn beispielsweise eine Adresse am Ausgang des direkten Adressenmultiplexers 76 und demgemäß am Eingang des Zählers 70, sowie am Adresseneingang des WCS-Firmwarespeichers 24 empfangen wird, so muß diese Adresse geladen und sodann im Zähler 70 innerhalb des gleichen Zyklus erhöht werden. Zur Lösung des Problems muß eine Zeitperiode während des Zyklus verstreichen, um sicherzustellen, daß sich die Adresse am Ausgang des Multiplexers 76 stabilisiert hat und dementsprechend fehlerfrei ist. Da der Speicher 24 nicht die durch den Zähler 70 benötigte Zeit erfordert, um seine entsprechende Operation auszuführen, stellt dieses Zeitproblem kein Hindernis für den Speicher 24 dar. Der Zähler 70 muß daher auf einen Teil des Zyklus warten, um sicherzustellen, daß die Adresse stabil ist, worauf er vor dem Beginn des nächsten Zyklus diese Adresse laden und erhöhen muß, wobei die Erhöhung rechtzeitig vor dem Beginn des nächsten Zyklus erfolgen muß.
  • Gemäß der Logik in Fig. 28 wird diese schnelle Operation des Ladens und der darauf folgenden Erhöhung durch die Verwendung eines Verzögerungsgliedes 350 verwirklicht, wobei ein einziger Abgriff 360 in der Mitte des Verzögerungsgliedes 350 angeschlossen ist und zusammen mit dem Ausgang des Verzögerungsgliedes einem Exklusiv-ODER-Gatter 354 zugeführt ist, um einen Taktimpuls zu erzeugen. Ein Lade-Freigabesignal wird durch ein NAND-Gatter 352 erzeugt, das drei Eingänge aufweist. Ein Eingangssignal wird an dem Ausgang des Verzögerungsgliedes 350 abgenommen und ein weiteres Eingangssignal wird durch das Auslöse-Zyklussignal gebildet, das kurz von dem Ende des Zyklus empfangen wird und den bevorstehenden Start des nächsten Zyklus anzeigt. Das dritte Eingangssignal wird von dem Ausgang &wedgeq; eines Flip-Flops 356 erhalten, welches benutzt wird, um sicherzustellen, daß nur ein Zyklus der Logik in Fig. 28 aufgrund des Auslöse-Zyklussignal erzeugt wird.
  • Im Betrieb nimmt nach dem Empfang des Auslöse-Zyklussignales (Binärwert "1") das Lade-Freigabesignal den Binärwert "0" ein, da die anderen zwei Eingangssignale des Gatters 352 bereits von Anfang an den Binärwert "1" aufweisen. Diese Zustandsänderung von dem Binärwert "1" auf den Binärwert "0" pflanzt sich durch das Verzögerungsglied 350 fort. Wenn ein Binärwert "0" am Abgriff 360 empfangen wird, so schaltet das Taktsignal am Ausgang des Gatters 354 auf den Binärwert "1" um, worauf nach dem Empfang des Binärwertes "0" am Ausgang des Verzögerungsgliedes 350 das Ausgangssignal des Gatters 354 auf den Binärwert "0" zurückschaltet, wodurch die Erzeugung des Taktsignales beendet wird. Die Rückführung des Ausgangssignales des Verzögerungsgliedes 350 auf das Gatter 352 verursacht bei einem Binärwert "0", daß der Ausgang des Gatters 352 den Binärwert "1" einnimmt, wodurch das Lade-Freigabesignal beendet und ein Binärwert "1" auf das Verzögerungsglied 350 gegeben wird. Ein weiteres Taktsignal wird erzeugt, wenn der Binärwert "1" am Abgriff 360 empfangen wird. Dieses zweite Signal endet, wenn das Signal mit dem Binärwert "1" den Ausgang des Verzögerungsgliedes 350 erreicht hat.
  • Somit wird das Lade-Freigabesignal vor und während der Erzeugung des ersten Taktsignales erzeugt und das gleichzeitige Vorhandensein dieser Signale taktet die Adresse in den Zähler 70. Wenn das zweite Taktsignal empfangen wird und das Lade-Freigabesignal nicht länger vorliegt, wird der Zählstand des Zählers erhöht.
  • Das Flip-Flop 356 wird benutzt, um sicherzustellen, daß nur ein solcher Operationszyklus der Logik gemäß Fig. 28 erzeugt wird. Das Zurückspeicher-Taktsignal, das unmittelbar vor dem Auslöse-Zyklussignal empfangen wird, wird benutzt, um das Flip-Flop 356 zu löschen. Anfänglich weist daher der Ausgang &wedgeq; den Binärwert "1" auf. Wenn ein Binärwert "0" am Setzeingang empfangen wird, so wird das Flip-Flop 356 gesetzt und der Ausgang &wedgeq; schaltet auf den Binärwert "0" um, wodurch ein Binärwert "1" am Ausgang des Gatters 352 aufrecht erhalten wird und jegliche weitere Umschaltungen des Binärzustandes gesperrt werden bis zu einer Zeit, in der das Rückspeicher-Taktsignal, gefolgt von dem Auslöse- Zyklussignal, erneut empfangen wird.

Claims (5)

1. Datenverarbeitungsgerät mit einer Zentraleinheit zur Verarbeitung eines Benutzerprogrammes, mit einem ersten Steuerspeicher zur Speicherung von Mikrobefehlen für die Operationssteuerung der Zentraleinheit und mit einer externen zweiten schreibfähigen Steuerspeichereinheit zur Speicherung von benutzerseitig erzeugten Mikrobefehlen, gekennzeichnet durch
einen Bus (14) zur Übertragung von Adressen, Mikrobefehlen und Daten zu der externen zweiten Steuerspeichereinheit (10), wobei die zweite Steuerspeichereinheit (10) einen zweiten Steuerspeicher (24) zur Aufnahme der Mikrobefehle aufweist,
eine Einrichtung (62) zum Empfang der übertragenen Adressen, Mikrobefehle und Daten,
eine Einrichtung (68) zum Adressieren des zweiten Steuerspeichers (24) auf Grund der empfangenen Adressen,
eine Einrichtung (63, 64) zur Übertragung eines adressierten benutzerseitig erzeugten Mikrobefehls aus dem zweiten Steuerspeicher (24) über den Bus (14) zu der Zentraleinheit (12), und eine private Schnittstelle (16) zwischen der Zentraleinheit (12) und der zweiten Steuerspeichereinheit (10), mit einem Übertragungsweg (94) für Adressen von der Zentraleinheit (12) zu dem zweiten Steuerspeicher (24) und einem Übertragungsweg (90) für benutzerseitig erzeugte Mikrobefehle von dem adressierten Speicherplatz des zweiten Steuerspeichers (24) zu der Zentraleinheit (12).
2. Datenverarbeitungsgerät nach Anspruch 1, gekennzeichnet durch die Anordnung von Adressenmultiplexern (74, 76) im Übertragungsweg (94) für die Adressen von der Zentraleinheit (12) zu dem zweiten Steuerspeicher (24).
3. Datenverarbeitungsgerät nach Anspruch 2, dadurch gekennzeichnet, daß die Multiplexer zwei hintereinandergeschaltete Multiplexer (74, 76) umfassen, wobei der erste Multiplexer ( 74) u. a. an einen Adressen-Erhöhungszähler (70) und der zweite Multiplexer (76) an ein Sprungadressenregister (78) angeschlossen ist und daß beide Multiplexer (74, 76) Auswahleingänge aufweisen, die von dem Bus (14) mittels einer Logiksteuerung (91) bzw. von einem Bit auf dem Übertragungsweg (94) der privaten Schnittstelle (16) gesteuert werden.
4. Datenverarbeitungsgerät nach Anspruch 3, dadurch gekennzeichnet, daß der zweite Steuerspeicher (24) zwei Hälften (60-1; 60-2) aufweist und daß eine Schreibsteuerung (89) zur Auswahl einer der beiden Speicherhälften angeordnet ist.
5. Datenverarbeitungsgerät nach einem der Ansprüche 1 bis 4, gekennzeichnet durch eine mit dem Übertragungsweg (94) der privaten Schnittstelle (16) und einem Anweisungsdecodierer (34) für die von dem Bus (14) kommenden Adressen verbundene Steuerlogik (86) für die Freigabe des ersten oder zweiten Steuerspeichers.
DE2938929A 1978-10-02 1979-09-26 Datenverarbeitungsgerät Expired DE2938929C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/947,987 US4236210A (en) 1978-10-02 1978-10-02 Architecture for a control store included in a data processing system

Publications (2)

Publication Number Publication Date
DE2938929A1 DE2938929A1 (de) 1980-04-17
DE2938929C2 true DE2938929C2 (de) 1987-03-19

Family

ID=25487087

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2938929A Expired DE2938929C2 (de) 1978-10-02 1979-09-26 Datenverarbeitungsgerät

Country Status (12)

Country Link
US (1) US4236210A (de)
JP (1) JPS5549750A (de)
AU (1) AU532568B2 (de)
BE (1) BE878371A (de)
BR (1) BR7903423A (de)
CA (1) CA1116303A (de)
DE (1) DE2938929C2 (de)
FR (1) FR2438298B1 (de)
GB (1) GB2032661B (de)
IT (1) IT1120522B (de)
NL (1) NL7905916A (de)
SE (1) SE444235B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241666A (en) * 1979-06-04 1993-08-31 Unisys Corporation Variable rate improvement of disc cache subsystem
US4399505A (en) * 1981-02-06 1983-08-16 Data General Corporaton External microcode operation in a multi-level microprocessor
US4439827A (en) * 1981-12-28 1984-03-27 Raytheon Company Dual fetch microsequencer
US5239636A (en) * 1988-09-09 1993-08-24 Advanced Micro Devices, Inc. Buffer memory subsystem for peripheral controllers
JPH04305735A (ja) * 1991-04-02 1992-10-28 Mitsubishi Electric Corp マイクロプログラム制御回路
JP3190945B2 (ja) * 1991-04-08 2001-07-23 三菱電機株式会社 マイクロプログラム制御回路
JPH086796A (ja) * 1994-06-15 1996-01-12 Nec Corp ダウンロード方法、そのネットワークシステム、及びデータファイル更新方法
US10824938B2 (en) 2017-04-24 2020-11-03 Intel Corporation Specialized fixed function hardware for efficient convolution

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3478322A (en) * 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
US3828320A (en) * 1972-12-29 1974-08-06 Burroughs Corp Shared memory addressor
US4042972A (en) * 1974-09-25 1977-08-16 Data General Corporation Microprogram data processing technique and apparatus
US4000485A (en) * 1975-06-30 1976-12-28 Honeywell Information Systems, Inc. Data processing system providing locked operation of shared resources
US4044339A (en) * 1975-12-15 1977-08-23 Honeywell Inc. Block oriented random access memory
US4075687A (en) * 1976-03-01 1978-02-21 Raytheon Company Microprogram controlled digital computer
US4045782A (en) * 1976-03-29 1977-08-30 The Warner & Swasey Company Microprogrammed processor system having external memory
US4131941A (en) * 1977-08-10 1978-12-26 Itek Corporation Linked microprogrammed plural processor system
JPS5498125A (en) * 1978-01-20 1979-08-02 Hitachi Ltd Control storage unit of computer

Also Published As

Publication number Publication date
NL7905916A (nl) 1980-04-08
AU5103679A (en) 1980-04-17
AU532568B2 (en) 1983-10-06
SE7904063L (sv) 1980-04-03
FR2438298B1 (fr) 1987-12-18
BR7903423A (pt) 1980-09-02
CA1116303A (en) 1982-01-12
BE878371A (fr) 1979-12-17
JPS5549750A (en) 1980-04-10
GB2032661A (en) 1980-05-08
FR2438298A1 (fr) 1980-04-30
IT7950062A0 (it) 1979-08-20
DE2938929A1 (de) 1980-04-17
GB2032661B (en) 1983-04-27
US4236210A (en) 1980-11-25
IT1120522B (it) 1986-03-26
SE444235B (sv) 1986-03-24
JPS6333177B2 (de) 1988-07-04

Similar Documents

Publication Publication Date Title
DE3751297T2 (de) Schaltung zur Programmsteuerung.
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE3853613T2 (de) Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen.
DE2714805C2 (de)
DE2317870C2 (de) Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE2536622C2 (de) Verzweigungssteuerung mit flexibler Auswahl von Steuerworten
DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
DE2907181A1 (de) Befehlssatz-modifizierregister fuer einen datenprozessor
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE2905675A1 (de) Schaltungsanordnung zur sperrung des zugangs zu einem speicher
DE2928488A1 (de) Speicher-subsystem
DE2755616A1 (de) Asymmetrischer multiprozessor
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
EP0134831B1 (de) Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung
DE2019444A1 (de) Datenverarbeitungsanlage
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2938929C2 (de) Datenverarbeitungsgerät
DE2363846A1 (de) Verfahren zum steuern des transfers von daten zwischen einem speicher und einem oder mehreren peripheren geraeten und nach diesem verfahren arbeitende datenverarbeitungsanlage
DE2935101C2 (de)
DE2336676C3 (de) Einrichtung zur Modifizierung von Mikroprogrammbefehlen
DE2759120C2 (de)
DE2245284A1 (de) Datenverarbeitungsanlage

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US

8339 Ceased/non-payment of the annual fee