DE2459975C2 - - Google Patents

Info

Publication number
DE2459975C2
DE2459975C2 DE2459975A DE2459975A DE2459975C2 DE 2459975 C2 DE2459975 C2 DE 2459975C2 DE 2459975 A DE2459975 A DE 2459975A DE 2459975 A DE2459975 A DE 2459975A DE 2459975 C2 DE2459975 C2 DE 2459975C2
Authority
DE
Germany
Prior art keywords
register
signal
flip
signals
microinstruction
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
DE2459975A
Other languages
English (en)
Other versions
DE2459975A1 (de
Inventor
John A. Chelmsford Mass. Us Recks
Frank V. Weston Mass. Us Cassarino Jun.
Albert R. Hudson N.H. Us Mclaughlin
Edward F. Lynn Mass. Us Getson Jun.
Edwin J. Edina Minn. Us Pinheiro
Karl F. Cambridge Mass. Us Laubscher
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 Bull 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 Bull Inc filed Critical Honeywell Bull Inc
Publication of DE2459975A1 publication Critical patent/DE2459975A1/de
Application granted granted Critical
Publication of DE2459975C2 publication Critical patent/DE2459975C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Description

Die Erfindung betrifft einen mikroprogrammierbaren Peripheriegeräte- Prozessor in einem Datenverarbeitungssystem zur Steuerung der Übertragung von Datenblöcken in beiden Richtungen zwischen an das Datenverarbeitungssystem angeschlossenen Eingabe/Ausgabe-Geräten und einem Zentralprozessor, wobei die Eingabe/Ausgabe-Geräte an den Peripheriegeräte- Prozessor über Eingabe/Ausgabe-Anschluß-Interfaces und der Zentralprozessor an den Peripheriegeräte-Prozessor über Peripherie-Subsystem-Interfaces angeschlossen sind, mit einem vom Peripheriegeräte-Prozessor umfaßten Mikroprogramm- Steuerspeicher, dem Operationsbefehlssignale zugeführt werden, auf deren Empfang hin der Mikroprogramm- Steuerspeicher Sequenzen von Mikrobefehlssignalen generiert, welche nachgeschaltete Schalt- und Logikeinheiten für die Durchführung von Kanalprogrammen aktivieren.
Um eine größere Wirtschaftlichkeit bei der Verarbeitung von Eingabe/Ausgabe-Operationen zu erzielen, ist die Last der Steuerung an Eingabe/Ausgabe-Operationen auf die peripheren Steuereinrichtungen verschoben worden. Dies hat seinerseits in starkem Ausmaß die Kompliziertheit derartiger Steuereinrichtungen erhöht, und zwar insbesondere dort, wo die Steuereinrichtungen erforderlich sind, um Datentransferoperationen zu behandeln, welche Einrichtungen einschließen, die eine Vielzahl unterschiedlicher Betriebseigenschaften besitzen. Um die Kosten derartiger Steuereinrichtungen zu senken, benutzen viele Systeme eine Mikroprogrammierung. Im allgemeinen haben die Steuereinrichtungen Allzweck-Mikroprozessoren mit maßgeschneiderten Mikroprogrammen für unterschiedliche Arten von Einrichtungen verwendet.
Ein wesentlicher Nachteil einer solchen Systemgestaltung besteht darin, daß die Geschwindigkeit der durch die mikroprogrammierte periphere Steuereinrichtung bewirkten Datentransferoperationen durch die Verarbeitungsgeschwindigkeit des Steuereinrichtungs- Mikroprozessors begrenzt ist. Um angemessen wirksame bzw. wirtschaftliche Transfergeschwindigkeiten zu erzielen, muß der Mikroprozessor bei höheren Frequenzen betrieben werden, um die erforderlichen Transfer- und Steuersignale zu erhalten, die mit den Verarbeitungsgeschwindigkeiten bzw. -frequenzen der Einrichtungen vergleichbar sind. Dies kann seinerseits erheblich die Kosten der peripheren Steuereinrichtung anheben. Wenn das System jedoch benötigt wird, um schnellere Eingabe/Ausgabe- Einrichtungen zu bedienen, bringt dies normalerweise die Notwendigkeit nach einem vollständigen Neuaufbau des Mikroprozessors mit sich.
In der US-PS 36 54 617 wird eine mikroprogrammierbare Eingabe/Ausgabe- Steuereinrichtung mit einer Vielzahl von Rechen-Verknüpfungseinheiten beschrieben. Von diesen Einheiten ist jeweils eine innerhalb einer von voneinander unabhängigen Mikroprogrammiereinheiten vorgesehen. Durch gesonderte Zwischenverbindungsregister wird eine Programmsynchronisation zwischen den in einer Vielzahl vorgesehenen mikroprogrammierbaren Einheiten hergestellt. Die betreffenden Register sind daher direkt mit Datenströme führenden Schaltungen verbunden, um den Betrieb dieser Schaltungen zu überwachen und zu steuern.
Über das allgemeine Prinzip der programmgesteuerten Herstellung der Verbindung für einen Datentransfer innerhalb einer Datenverarbeitungsanlage und der hardwaregesteuerten Ausführung des Datentransfers wird auch in einem Übersichtsartikel "The Input/Output Architecture of Minicomputers" in Datamation, 1970, Heft 4, S. 119-124 (Verfasser: Robert Rinder) berichtet. Es werden dort allerdings nur sehr generelle Aussagen gemacht; schaltungstechnische Lösungen werden nicht offenbart. Es wird in diesem Artikel vielmehr die generelle Erkenntnis vermittelt, daß eine Steigerung des Datendurchsatzes bei Eingabe/Ausgabe- Operationen in Datenverarbeitungsanlagen möglich ist, einmal durch eine Reduzierung der Eingabe/Ausgabe-Unterbrechungen und durch eine Programmsteuerung der Eingabe/Ausgabe-Datentransferoperationen. Dabei ist es in der Datenverarbeitungstechnik immer eine Frage des Abwägens bzgl. Programmaufwand und Hardwareaufwand, wobei in der Regel ein höherer Programmaufwand weniger Hardware, also weniger Kosten, dafür aber mehr Zeit erfordert, wohingegen ein höherer Hardwareaufwand mehr Kosten verursacht, dafür aber Zeiteinsparungen in der Datenverarbeitung bringt. Konkrete technische Problemlösungen sind nicht offenbart, so daß dem Fachmann mit dieser Literatur keinerlei verwertbare Lösungshinweise an den Hand gegeben sind.
Einer weiteren Literaturstelle (US-Buch "Microprogramming" von S. Husson, Prentice-Hall, 1970, S. 186-191) sind die generellen Merkmale einer Mikroprogrammsteuerung mit Speicher, Verzweigungssteuereinrichtung und Decodiereinrichtung in vereinfachter Form entnehmbar am Beispiel des System/360 Mikroprogramm- Befehlsspeichers (vgl. Fig. 6.2 auf S. 189). Auf die besonderen Merkmale eines mikroprogrammierbaren Peripheriegeräte- Prozessors wird in dieser Literaturstelle nicht eingegangen.
Die Aufgabe der vorliegenden Erfindung besteht darin, einen mikroprogrammierten Peripheriegeräte-Prozessor mit Hardwaresteuerung dahingehend weiterzubilden, daß der eigentliche Datentransfer unabhängig von den jeweiligen Mikroprogrammen des Peripheriegeräte-Prozessors mit hoher Übertragungsgeschwindigkeit durchführbar ist.
Gelöst wird die vorstehend bezeichnete Aufgabe durch die Schaffung eines mikroprogrammierbaren Peripheriegeräte-Prozessors, der die im Patentanspruch 1 beschriebenen Merkmale aufweist.
Demgemäß kann die Anordnung gemäß der vorliegenden Erfindung die Datenübertragung unabhängig von der Verarbeitungsgeschwindigkeit des mikroprogrammierten Prozessors weiterführen. Dies bedeutet, daß die Anordnung gemäß der vorliegenden Erfindung die Forderung vermeidet, daß der mikroprogrammierte Prozessor eine Anzahl von Mikrobefehlen für Übertragungs- oder Vergleichs-Bytes ausführen muß, wie dies durch die an den Prozessor abgegebenen Befehle gefordert ist. Darüber hinaus vermeidet die Anordnung gemäß der vorliegenden Erfindung die Notwendigkeit, in den peripheren Prozessor zusätzliche Hardware einführen zu müssen, durch die Operationen verdoppelt werden, welche außerdem durch Mikroprogramme bereitgestellt werden, die normalerweise in einem Allzweck-Mikroprozessor enthalten sind. Damit senkt die Anordnung gemäß der vorliegenden Erfindung die Kosten auf ein Minimum, und zwar durch Verringerung des Anteils der Verdoppelung oder der Redundanz, was sich aus der Ausnutzung eines Allzweck- Mikroprozessors ergibt. Durch Verringern der Verdoppelung erreicht darüber hinaus die Anordnung gemäß der vorliegenden Erfindung eine hohe Zuverlässigkeit.
An Hand von Zeichnungen wird die Erfindung nachstehend beispielsweise näher erläutert, und zwar hinsichtlich ihrer Organisation und hinsichtlich ihres Betriebsverfahrens.
Fig. 1 zeigt schematisch ein die Prinzipien der vorliegenden Erfindung verkörperndes Datenverarbeitungssystem.
Fig. 2 zeigt in Einzelheiten einen peripheren Prozessor 300 des Systems gemäß Fig. 1.
Fig. 3a zeigt im einzelnen einen PSI-Steuerungsbereich des Prozessors gemäß Fig. 2;
Fig. 3b zeigt im einzelnen Datenpufferregister und einen Steuerbereich 302-50 des Prozessors gemäß Fig. 2;
Fig. 3c zeigt im einzelnen einen Steuerablaufspeicher eines Bereichs 308 des Prozessors gemäß Fig. 2;
Fig. 3d zeigt im einzelnen Zählersteuereinrichtungen des Bereichs 308 gemäß Fig. 2;
Fig. 3e zeigt in Blockform einen Festwertspeicher-Steuerbereich 304 gemäß Fig. 2;
Fig. 3f (2 Blatt) zeigt im einzelnen unterschiedliche Verzweigungsschaltungen gemäß Fig. 3e;
Fig. 3g zeigt im einzelnen verschiedene Teile des Lese/Schreib- Pufferspeicherbereichs 306 gemäß Fig. 2;
Fig. 3h zeigt im einzelnen Steuerlogikschaltungen 306-70 sowie Kippschaltungs-1-Schrittschaltungen 306-100 des Bereichs 306 gemäß Fig. 3g;
Fig. 3i (2 Blatt) zeigt im einzelnen einen ALU-Bereich 316 gemäß Fig. 2;
Fig. 3j zeigt im einzelnen einen Daten- und Zählerbereich 318 gemäß Fig. 2;
Fig. 3k zeigt im einzelnen einen Adapter- und Einrichtungs-Leitungssteuerbereich 310 gemäß Fig. 2;
Fig. 4a bis 4g zeigen verschiedene Mikrobefehlsformate, die durch den Prozessor gemäß der vorliegenden Erfindung ausgeführt werden;
Fig. 5a und 5b zeigen das Format der in den Massenspeichereinrichtungen gespeicherten Aufzeichnungen;
Fig. 6a und 6c zeigen Flußdiagramme, die zur Erläuterung des Betriebs des Prozessors gemäß der vorliegenden Erfindung verwendet werden.
Allgemeine Beschreibung des Gesamtsystems gemäß Fig. 1
Die vorliegende Erfindung findet hauptsächlich in einem Datenverarbeitungssystem Anwendung, welches ein Eingabe/Ausgabe- Untersystem enthält, in welchem ein peripherer Prozessor die Operation bzw. den Betrieb einer Vielzahl von peripheren Einrichtungen auf Befehle hin steuert, die von einem Eingabe/Ausgabe- Kanal empfangen werden. Diese Art des Systems kann für die Zwecke der vorliegenden Erfindung als in herkömmlicher Weise ausgeführt angesehen werden. Demgemäß wird das System lediglich in dem für das Verständnis des Betriebs der vorliegenden Erfindung erforderlichen Ausmaß erläutert werden. Zum Zwecke einer leichten Bezugnahme werden außerdem Definitionen bestimmter, hier benutzter Ausdrücke in einem beigefügten Anhang zusammengefaßt.
In Fig. 1 ist ein System gezeigt, welches den mikroprogrammierbaren peripheren Prozessor gemäß der vorliegenden Erfindung umfaßt. Das System enthält einen zentralen Prozessor-Komplex (CPC), der diejenigen Einheiten enthält, welche für die Adressierung des Hauptspeichers benötigt werden, und zwar für die Wiederauffindung oder Speicherung einer Information, für die Ausführung von Rechen- und Verknüpfungsoperationen auf Daten hin, für die Folgesteuerung von Befehlen in der gewünschten Reihenfolge und für die Auslösung von Nachrichtenverbindungen zwischen dem Hauptspeicher und externen Einrichtungen. Die Haupteinheiten des zentralen Prozessor-Komplexes 100 enthalten eine Zentraleinheit (CPU) 102, ein Hauptspeicher- Untersystem 104 und eine Eingabe/Ausgabe-Steuereinrichtung (IOC) 106. Die Zentraleinheit führt Befehle eines Programms oder mehrerer Programme aus, die in dem Hauptspeicher-Untersystem 104 gespeichert sind. Die Eingabe/Ausgabe-Steuereinrichtung ist derjenige Teil des Systems, der in die Ausführung von Befehlen einbezogen ist, die zur Ausführung einer Eingabe/Ausgabe-Operation benutzt werden. Eine Eingabe/Ausgabe-Operation wird durch ein Kanal-Programm definiert. Das Programm enthält eine Vielzahl von Instruktionen, die Befehle genannt werden. Die Operation wird durch einen "Kanal" ausgeführt. Der Kanal enthält die Eingabe/Ausgabe-Einrichtungen, eine Hardware-Verbindung zwischen der Eingabe/Ausgabe-Steuereinrichtung und dem peripheren Prozessor, der als physikalischer Kanal bezeichnet wird, sowie einen Verknüpfungs-Kanal. Der Verknüpfungs-Kanal ist eine Sammlung der Eigenschaften in einem peripheren Prozessor, der für die Ausführung einer durch ein Kanal-Programm definierten Eingabe/Ausgabe-Operation erforderlich ist. Da "Kanäle" auf dem vorliegenden Gebiet bekannt sind, wird deren Operation hier nicht im einzelnen beschrieben werden.
Eine periphere Untersystem-Schnittstelle (PSI) 200 ruft eine Übertragung und eine Steuerverbindung für Austausch-Informationen zwischen einem Massenspeicher-Peripherie-Prozessor 300 und der Eingabe/Ausgabe-Steuereinrichtung 106 hervor. Der Austausch wird dadurch bewirkt, daß die Verknüpfungszustände verschiedener Signalleitungen gesteuert werden, und zwar in Übereinstimmung mit vorher festgelegten Regeln, die durch eine Ablauffolge von Signalen realisiert sind, welche als "Dialog" bezeichnet sind. Die Schnittstelle umfaßt eine Bedingungscode- Eingabeleitung 200-1, eine Bedienungsfreigabe-Ausgangsleitung 200-2, eine Takt-Eingangsleitung 200-3, eine Takt-Ausgangsleitung 200-4, eine Abschluß-Eingangsleitung 200-4, eine Abschluß-Ausgangsleitung 200-6 und eine Operations-Eingangsleitung 200-7 sowie eine Operations-Ausgangsleitung 200-8 und Datensammelleitungen D 0-D 07.
Wie aus Fig. 1 hervorgeht, vermag die Eingabe/Ausgabe-Steuereinrichtung 106 eine Vielzahl physikalischer Kanäle zu steuern, die mit 200-1 bis 200-n bezeichnet sind und die die Eingabe/Ausgabe- Steuereinrichtung mit einem peripheren Prozessor einer Anzahl peripherer Prozessoren 300 bis 300-n verbinden. Jeder periphere Prozessor nimmt einen Informationsaustausch mit jeder seiner zugehörigen peripheren Einrichtungen über eine Einrichtungs- Ebenen-Schnittstelle (DLI) vor, und zwar in Übereinstimmung mit bestimmten Dialog-Folgen.
Die Einrichtungs-Ebenen-Schnittstelle sorgt für den Austausch von Daten und Steuerinformation zwischen einem peripheren Prozessor und angeschlossenen peripheren Einrichtungen. Es dürfte einzusehen sein, daß die Schnittstellenleitungen lediglich für einen bestimmten Typ der Einrichtung gemeinsam sind. Die angegebene bestimmte Schnittstelle verbindet eine Massenspeichereinrichtung 500 mit dem peripheren Massenspeicher- Prozessor 300, wie dies in Fig. 1 gezeigt ist. Wie die Eingabe/ Ausgabe-Steuereinrichtung 106 Daten und Steuerungsinformation zwischen einer Vielzahl von peripheren Prozessoren auszutauschen imstande ist, kann jeder periphere Prozessor Daten und Steuerungsinformation zwischen sich und einer Vielzahl von peripheren Einrichtungen austauschen. Der Einfachheit halber ist lediglich eine einzige periphere Einrichtung als mit jedem peripheren Prozessor gemäß Fig. 1 verbunden dargestellt.
Aus Fig. 1 geht ferner hervor, daß das Speicher-Untersystem 104 eine Speicher-Schnittstelleneinheit 104-2 und einen Hauptspeicher 104-4 enthält. Wie dargestellt, kann das Hauptspeicher- Untersystem zwischen 1 und 4 Speicheranschlüssen aufweisen, deren jeder eine Speicherkapazität von 256 Kilobytes bereitstellt. Die Speicher-Schnittstelleneinheit 104-2 enthält die Verknüpfungs- und Steuerschaltungen, die für die Herstellung einer Nachrichtenverbindung zwischen einem Speicheranschluß und der Zentraleinheit und der Eingabe/Ausgabe-Steuereinrichtung erforderlich sind. Für die Zwecke der vorliegenden Erfindung können diese Einheiten als in herkömmlicher Weise aufgebaut angesehen werden. Bei der bevorzugten Ausführungsform verwendet das Hauptspeicher-Untersystem 104-4 einen MOS- Halbleiterspeicher. Wie aus Fig. 1 hervorgeht, besteht das Hauptspeicher-Untersystem aus 1 bis 4 Hauptspeichereinheiten, deren jede über ein entsprechendes Kabel der Kabel 104-6 bis 104-9 mit dem Prozessor-Untersystem verbunden ist, wie dies dargestellt ist. In dem Prozessor selbst ist ein Speicheranschluß an einer Speichereinheit angeschlossen. Jede Hauptspeichereinheit enthält eine Speichersteuereinrichtung oder eine Hauptspeicher-Folgesteuereinheit und bis zu acht Speicher- Untereinheiten. Jede Untereinheit enthält vier Bereiche, deren jeder ein 8K-zu-10-Bit-Speicherfeld enthält. Jede Hauptspeicher- Steuereinrichtung arbeitet in der Weise, daß die erforderlichen Lese/Schreib-Speicheroperationen ausgeführt werden, die für den Zugriff zu einem Informationswort erforderlich sind, welches 9-Bit-Informationsbytes umfaßt.
Bevor mit einer Erläuterung des gemäß der Erfindung benutzten Massenspeicher-Prozessors 300 gemäß Fig. 1 begonnen wird, sei zunächst die Art und Weise erläutert, in der eine Information in einem Speichersystem auftritt, in welchem die vorliegende Erfindung benutzt wird. Die betreffende Erläuterung wird dabei lediglich als beispielsweise Erläuterung gegeben, die indessen nicht als Beschränkung der vorliegenden Erfindung aufgefaßt werden sollte.
Eine Information wird im allgemeinen längs Umfangsspuren auf einer sich drehenden Einrichtung, wie einer Platte, in Aufzeichnungen gespeichert, die eine Anzahl von Informationsfeldern umfassen. Diese Felder enthalten ein Zählerfeld, ein Kennzeichenfeld und ein Datenfeld. Normalerweise zeigt eine Indexmarkierung den physikalischen Anfang der jeweiligen Spur an, wobei sämtliche Spuren in einer Plattenpackung durch dieselbe Indexmarkierung synchronisiert sind. Jeder Spur geht ein Spuradressen- bzw. Hausadressenfeld für eine Adressenidentifizierung und eine Spur-Deskriptoraufzeichnung (Aufzeichnung RO) für die Anzeige des physikalischen Zustands der Spur voraus. Die in einer Spur jeweils aufgezeichneten Informationsfelder sind durch Spalte voneinander getrennt. Die Spaltlängen variieren in Abhängigkeit von der Speichereinrichtung, der Stelle innerhalb der Aufzeichnung, dem Format, der Bitdichte und der Aufzeichnungslänge.
Eine Adressenmarkierung zeigt den Beginn der jeweiligen Aufzeichnung für Steuerzwecke an. Jeder Adressenmarkierung geht ein Synchronisationsbereich voran, der eine Vielzahl von Synchronisationssignalen enthält, die für die Synchronisation von Zeitsteuerschaltungen herangezogen werden, welche im Zuge der Ausführung einer Leseoperation benutzt werden. Die oben angegebenen verschiedenen Ausdrücke sind im übrigen in einer als Anhang beigefügten Begriffsliste definiert. Die Bedeutung dieser Felder wird später in Verbindung mit den Fig. 5a und 5b noch erläutert werden.
Allgemeine Beschreibung des Massenspeicher-Prozessors 300
In Fig. 2 ist ein detailliertes, jedoch vereinfachtes Blockschaltbild eines gemäß den Prinzipien der vorliegenden Erfindung aufgebauten peripheren Prozessors gezeigt. Aus Fig. 2 ergibt sich dabei, daß die Hauptbereiche des Prozessors 300 folgende Einrichtungen enthalten: einen peripheren Untersystem-Schnittstellensteuerbereich (PSI) 302, einen Allzweckregisterbereich 314, einen Rechen- und Verknüpfungseinheitbereich (ALU) 316, einen Festwertspeicher-Steuerbereich 304, einen Hochgeschwindigkeits- Folgesteuerungsbereich 308, einen Einrichtungs-Ebenen- Schnittstellensteuerbereich (DLI) 310, einen Lese/Schreib- Pufferspeicherbereich (RWS) 306 und einen Zählerbereich 318.
Der periphere Untersystem-Schnittstellensteuerbereich 302 enthält Verknüpfungsschaltungen und Pufferregister, die für die Verbindung des Prozessors mit einer asynchronen peripheren Schnittstelle 200, die eine Breite von 1 Byte besitzt, erforderlich sind und die die erforderlichen Daten und den Steuerungsdialog festhalten, der für eine Nachrichtenverbindung bzw. für eine Kommunikation mit der Eingabe/Ausgabe-Steuereinrichtung benötigt wird. Wie aus Fig. 2 hervorgeht, ist dieser Bereich an die verschiedenen Bereiche für die Aufnahme von Daten und die Steuerung von Signalen über Übertragungsleiterwege 303-1 bis 303-5 angeschlossen. Der Bereich 302 ist in zwei Bereiche unterteilt: in einen PSI-Steuerbereich bzw. peripheren Untersystem- Schnittstellenbereich 302-1 sowie in ein Pufferregister und in einen Steuerbereich 302-50. Diese Bereich werden hier im einzelnen beschrieben werden. Der ALU-Bereich 316 ist neben dem Anschluß an dem Pufferbereich 302-50 ferner an dem Pufferspeicherbereich 306 und dem Allzweckregisterbereich 314 angeschlossen, und zwar über die Wege 303-5 bzw. 303-6. Der ALU-Bereich 316 führt Verknüpfungs-Rechen- und Registerübertragungsfunktionen innerhalb des Prozessors aus. Die verschiedenen Betriebsarten für die Rechen- und Verknüpfungseinheit ALU werden durch Signale festgelegt, die über den Leiterweg 303-9 von dem Festwertspeicher-Steuerbereich 304 her zugeführt werden. Wie im einzelnen noch beschrieben wird, enthält der Bereich bzw. Abschnitt 316 zwei identische Rechen- und Verknüpfungseinheiten, die in herkömmlicher Weise aufgebaut sind und die als Haupt-ALU bzw. als Hilfs-ALU bezeichnet sind. Ferner enthält der betreffende Bereich bzw. Abschnitt die den betreffenden Einheiten zugehörigen Steuer- und Fehlerprüf- Verknüpfungsschaltungen. Die beiden Rechen- und Verknüpfungseinheiten ALU sind aus zwei 4-Bit-MSI-Rechen- und Verknüpfungseinheiten aufgebaut, die zur Bildung eines 8-Bit- Ausgangssignals miteinander verbunden sind. In Abhängigkeit von den Zuständen der Eingangssignale, die den Freigabe-Übertragungs-, Eintrag- und Betriebssteuereingangsanschlüssen der Rechen- und Verknüpfungseinheiten zugeführt werden, können diese Rechen- und Verknüpfungseinheiten veranlaßt werden, 16 Verknüpfungsoperationen oder 32 verschiedene Rechenoperationen auf zwei Operanden hin auszuführen, auf die hin sie betrieben werden. Die beiden Rechen- und Verknüpfungseinheiten arbeiten auf dieselben Operanden hin gleichzeitig, und die Fehlerprüfschaltungen vergleichen die Ergebnisse der beiden Rechen- und Verknüpfungseinheiten. Der Allzweckregisterbereich 314 enthält 16 Allzweckregister mit einer Breite von 8 Bit; er bewirkt die Speicherung der Information, die während einer bestimmten Operation benötigt wird (z. B. Befehlscodes, Operanden der Rechen- und Verknüpfungseinheit, etc.). Darüber hinaus enthält der betreffende Bereich bzw. Abschnitt 16 Multiplexer- Auswahlschaltungen mit acht Eingängen von herkömmlichem Aufbau. Von diesen Schaltungen kann der Inhalt von irgendeiner Quelle von acht weiteren Quellen an die Rechen- und Verknüpfungseinheiten als ein Operand abgegeben werden. Bei einer bevorzugten Ausführungsform entsprechen die Allzweckregister den Speicherplätzen eines adressierbaren Festkörper-Hilfsspeichers von herkömmlichem Aufbau. Die Register sind durch den Steuerspeicherabschnitt bzw. -bereich 304 und den Pufferspeicherbereich 306 über den Weg 303-8 bzw. über den Weg 303-12 adressierbar.
Der Spalt- und Datenzählerbereich 318 ist ferner über den Leiterweg 303-10 mit dem Rechen- und Verknüpfungseinheitsbereich 316 verbunden. Dieser Bereich enthält Datenzähler- Verknüpfungsschaltungen; Spalt-Zählerschaltungen liefern die Hauptzählersteuerung während der Lese-, Schreib- und Suchoperationen. Die Datenzählerschaltungen liefern eine Zählerstellung bezüglich der Anzahl von Bytes, auf die hin gearbeitet wird. Die Spalt-Zählerverknüpfungsschaltungen liefern eine Orientierungsinformation durch Abgabe einer genauen Anzeige bezüglich der Spaltlänge zwischen den Feldern einer Datenaufzeichnung, die gelesen wird (z. B. bezüglich der Spaltlänge zwischen den Kopf- und Kennzeichenfeldern, bezüglich der Spaltlänge zwischen dem Kennzeichenfeld und dem Datenfeld, etc.).
Jeder der beiden Zähler enthält, wie hier erläutert wird, einen Hauptzähler und einen Hilfszähler, und zwar zusammen mit Weiterschalt-Schaltungen und Prüflogikschaltungen. Jeder Zähler ist aus vier Synchron-4-Bit-Binärzähler-Chips aufgebaut, die zur Bildung eines 16-Bit-Zählers zusammengeschlossen sind. Die beiden Zähler des Datenzählers werden durch einen Mikrobefehl geladen, und zwar mit derselben Zählerstellung, die durch den Inhalt von ROSLR oder RWSLR angegeben ist. Der Inhalt der beiden Zähler wird verringert, und die Zustände beider Zähler werden durch Fehlerprüfschaltungen verglichen. Wenn die Schaltungen eine fehlende Übereinstimmung feststellen, bewirken sie das Einstellen einer Fehleranzeige. In entsprechender Weise werden beide Zähler des Spalt-Zählers über den Rechen- und Verknüpfungseinheit-Bereich 316 mit derselben Zählerstellung geladen, die aus einem Konstantenfeld eines Mikrobefehls abgeleitet ist. Auf eine Freigabe hin werden die Zählerstellungen der Zähler durch Taktimpuls-Signale von einer Taktschaltung 308-2 her verringert. (Dies bedeutet, daß die Zählerstellung des Zählers alle 600 Nanosekunden um 1 vermindert wird.) Die Fehlerprüfschaltungen prüfen die Zähler hinsichtlich einer richtigen Operation, und zwar in derselben Weise wie die Operation des Daten-Zählers geprüft wird.
Der Festwertspeicher-Steuerbereich 304 bewirkt die Speicherung für vorhandene Steuerungs- und Fehlerdiagnose-Mikroprogramme (das heißt für 4K-32-Bit-Speicherworte). Der betreffende Bereich weist, wie im einzelnen beschrieben wird, einen Steuerspeicher auf, der zwei Abschnitte enthält. Der eine Abschnitt wird für Maschinencodeoperationen benutzt, und der andere Abschnitt wird für die Emulsion von Fremdsystemen benutzt. Bei der bevorzugten Ausführungsform ist der Steuerspeicher unveränderlich; er ist aus herkömmlich aufgebauten programmierbaren Festwertspeicher-Chips (PROM) aufgebaut. Es dürfte einzusehen sein, daß der Steuerspeicher auch aus herkömmlich aufgebauten Speicher-Chips mit wahlfreiem Zugriff (RAM) gebildet bzw. aufgebaut werden kann. Demgemäß kann er mit Mikrobefehlen durch externe Einrichtungen, wie eine Bandkassetten-Einrichtung, geladen werden.
Der Bereich bzw. Abschnitt 304 enthält ferner zugehörige Adressierungs-, Steuerungs-, Dekodierungs- und Paritätsverknüpfungsschaltungen. Zusätzlich sind Adressen-Steuerschaltungen enthalten, die die Verzweigung zwischen drei Ebenen von Mikrobefehls-Subroutinen freigeben.
Der Lese/Schreib-Speicherbereich 306 ist über die Leiterwege 303-1, 305-5 und 303-12 mit anderen Bereichen verbunden, wie dies in Fig. 2 gezeigt ist. Dieser Bereich enthält einen änderbaren Lese/Schreib-Speicher von 1,5 K · 10 Bits; er wird für die Speicherung von Einrichtungsparameter- Bytes verwendet, und zwar zusätzlich zur Bereitstellung eines Kurzzeitspeichers für Steuerungs- und Datenbehandlungsoperationen (zum Beispiel für die Zustands- und Adresseninformation).
Der Einrichtungs-Ebenen-Schnittstellen-Steuerbereich 310 enthält einen integrierten Steueradapter, der als Block 310-2 bezeichnet ist, welcher mit den Wegen 310-4 und 400 verbunden ist. Der Adapter enthält Verknüpfungsschaltungen und Pufferregister, die für die Bildung einer Schnittstelle mit Plattenspeichereinrichtungen des Systems erforderlich sind, und zwar für die Steuerung von Einrichtungsoperationen und für die Erzeugung von erforderlichen Dialog-Ablauffolgen über die Sammelleitung 400. Dies bedeutet, daß der betreffende Bereich die Auswahl der bezeichneten Platteneinrichtung und die Ausführung der verschiedenen Befehle freigibt. Die Pufferregister stellen eine Schnittstelle zwischen den asynchron betriebenen Einrichtungs-Adapterschaltungen und den synchron betriebenen Massenspeicher-Prozessor-Verknüpfungsschaltungen dar.
Detaillierte Beschreibung der Massenspeicher-Prozessorbereiche
Nunmehr werden die oben beschriebenen Bereiche unter Bezugnahme auf die Fig. 3a bis 3k näher erläutert.
Peripherer Untersystem-Schnittstellensteuerbereich 302-50 und Pufferbereich 302
Der Periphere Untersystem-Schnittstellen-Steuerbereiche bzw. PSI-Steuerbereich 302 und der Pufferregister- und Steuerbereich 302-50 sind in Fig. 3a bzw. 3b im einzelnen dargestellt.
Aus Fig. 3a geht dabei hervor, daß dieser Bereich eine Vielzahl von Empfänger/Steuerlogikschaltungen 302-3 enthält, die derart betrieben sind, daß digitale Steuer und Datensignale für die Schnittstelle 200 bereitgestellt werden. Die Empfänger/Steuerschaltungen können als in herkömmlicher Weise aufgebaut betrachtet werden.
Wie aus Fig. 3a hervorgeht, übertragen ein Lesepuffer 302-14 und ein Schreib-Puffer eine Information zwischen den Schnittstellen- Treiberschaltungen bzw. -Steuerschaltungen und den Empfängerschaltungen sowie den Datenpuffern des Pufferbereichs 302-50.
Der Lese-Puffer 302-14 enthält eine Vielzahl von Verstärker- Verriegelungsschaltungen, die von herkömmlichem Aufbau sind. Während Leseoperationen werden Ausgangssignale von dem A- Puffer des Bereichs 302-50 über eine Bus-Leitung 302-16 in den Lese-Puffer 302-14 geladen, wenn ein Steuersignal PAATP 10 in ein Binärsignal 1 umgeschaltet wird. Wie erläutert wird, wird dieses Signal durch in diesem Block 302-4 enthaltende asynchrone Schaltungen erzeugt. Dieser Block enthält, kurz gesagt, eine Vielzahl von Verriegelungs-Verstärkerschaltungen, die einstellbar und zurückstellbar sind, und zwar durch die Eingabe/Ausgabe-Steuereinrichtung mittels Signale, die an verschiedene Leitungen der Schnittstelle 200 abgegeben werden. So signalisieren zum Beispiel die asynchronen Verknüpfungsschaltungen der Eingabe/Ausgabe-Steuereinrichtung das Vorhandensein von Daten, die in dem Lese-Puffer gespeichert sind, und zwar durch Einstellen bzw. Setzen der Leitungen STI oder TMI. Der Lese-Puffer 302-14 speichert so lange Bytes, bis die Eingabe/Ausgabe-Steuereinrichtung eine der Leitungen STO oder TMO zurücksetzt. Dies führt seinerseits zur Zurückstellung entsprechender Verriegelungsschaltungen.
Der Schreib-Puffer 302-12 enthält eine Vielzahl von Registerstufen, die von herkömmlichem Aufbau sind. Der Puffer 302-12 nimmt Eingangssignale auf, die in dem Puffer auf ein Ausgabe- Datengültigkeits-Signal PADV 10 gespeichert werden, das in einen Binärzustand 1 umgeschaltet ist. Dieses Signal wird durch asynchrone Verknüpfungsschaltungen erzeugt, wenn die Eingabe/Ausgabe-Steuereinrichtung das Abtast-Ausgangs-Signal P 1 STO 10 des Schreib-Puffers werden selektiv in die Puffer A, E oder F geladen, und zwar in Abhängigkeit von ihrer Verfügbarkeit des Bereichs 302-50 durch Steuersignale. Diese Steuersignale werden durch die Steuerschaltungen 302-70 und 302-72 auf das Signal PAPRF 10 hin erzeugt.
Der PSI-Steuerbereich 302-1 enthält ferner die in 302-12 enthaltenen synchronen Steuerverknüpfungsschaltungen. Die synchronen Steuerschaltungen enthalten eine Vielzahl von Flipflops, die durch Mikroperations-Signale von dem Festwertspeicher- Steuerbereich 304 her setzbar sein können. Diese Signale werden über eine Eingangs-Busleitung abgegeben, die in Fig. 3a mit 302-14 bezeichnet ist. Außerdem können die betreffenden Schaltungen durch Signale gesetzt werden, die über die Schnittstelle 200 zugeführt werden. Die Mikrooperationssignale können zum Beispiel die Aktivität in der peripheren Untersystem-Schnittstelle 200 auslösen, und zwar durch Setzen eines der drei Folgesteuerungs-Flipflops, die in diesem Bereich enthalten sind. Dies bedeutet, daß ein Mikrobefehl das Setzen eines Anforderungs-Daten-Flipflops RQD bewirken kann, welches die Schnittstelle 200 vorbereitet, um Daten-Bytes von der Eingabe/Ausgabe-Steuereinrichtung her aufzunehmen. Mikrooperations-Signale von einem anderen Befehl können ebenfalls ein Datenübertragungs-Flipflop DDT veranlassen, die Schnittstelle 200 in den Stand zu versetzen, Daten-Bytes an die Eingabe/Ausgabe-Steuereinrichtung zu übertragen. Ein weiterer Befehl kann Mikrooperations- Signale erzeugen, die ein Bedienungscode-Flipflop DSC in den Stand setzen, die Schnittstelle 200 für die Signalisierung einer Übertragung eines Bedienungscodes oder einer Befehlsinformation an die Eingabe/Ausgabe-Steuereinrichtung zu konditionieren. Die anderen Flipflops umfassen ein End- Flipflop TRM, ein Bedienungscode-Eintritts-Flipflop SCR, ein Bedienungsfreigabe-Austritt-Flipflop SEO, ein Operations- Austritt-Flipflop OPO und ein Operations-Eintritt-Flipflop OPI. Einige dieser Flipflops werden auch durch Mikrooperationssignale gesetzt und zurückgestellt, und zwar zur Steuerung der Übertragung von Befehls- und Daten-Bytes über die Schnittstelle 200. Die Operation dieser Flipflops wird für ein Verständnis der vorliegenden Erfindung noch näher beschrieben werden.
Jedes der in dem synchronen Steuerbereich 302-12 enthaltenen Flipflops erhält PDA-Taktsignale von einer zentralen Takt- oder Zeitsteuerungsquelle 308-2, die in dem Bereich 308 enthalten ist. Die Taktschaltung kann als in herkömmlicher Weise ausgeführt angesehen werden; sie kann zum Beispiel Schaltungen enthalten, wie sie in der US-PS 37 25 871 angegeben sind.
Es dürfte ferner ersichtlich sein, daß der Bereich bzw. Abschnitt 302-1 einen 2-Byte- oder 16-Bit-Rückwärtszähler enthält, der vier 4-Bit-Binärzählerstufen enthält, die von herkömmlichem Aufbau sind. Dieser Zähler wird von den asynchronen Steuerverknüpfungsschaltungen des Blocks 302-4 dazu benutzt zu bestimmten, wenn ein Beendigungs-Eintritts- Flipflop TMI zu setzen ist. Ein Hilfszähler 302-10 ist ebenfalls enthalten, um die Vergleicherschaltungen des Blocks 302-8 freizugeben für die Feststellung des Auftretens eines Zählerausfalls. Dies bedeutet, daß der Hilfszähler 302-10 und der Hauptzähler 302-6 auf einen Eingabe/Ausgabe- Mikrobefehl hin von derselben Quelle her geladen werden (zum Beispiel über den ALU-Bereich 318 von dem Steuerspeicher des Bereichs 304 oder von dem Pufferspeicher des Bereichs 306). Außerdem werden die Zählerstellungen beider Zähler durch ein Taktsignal PCCLK 10 von den Steuerschaltungen 302-4 her verringert. Die Vergleicherschaltungen des Blocks 302-8 nehmen eine Prüfung vor um zu bestimmen, ob beide Zähler im selben Zustand sind, wenn der Inhalt eines der Zähler auf Null verringert worden ist. In dem Fall, daß die betreffenden Zähler nicht im selben Zustand sind, veranlassen die Schaltungen das Setzen einer Fehleranzeige. Sind die Zählerstellungen beider Zähler auf Null verringert worden, so schalten die Schaltungen des Blocks 302-8 ein Zähler- Gleichheits-Null-Signal PCCEO 20 in den Binärzustand Null um. Dieses Signal zeigt an, daß die erforderliche Anzahl von Bytes übertragen worden ist (das heißt, daß kein Fehler angezeigt wird). Zur weiteren Information bezüglich der Arten von Schaltungen, die zur Ausführung der Zähler, Register und der anderen hier beschriebenen Schaltungen verwendet werden kann, sei auf die Druckschrift "The Integrated Circuits Catalog for Design Engineers" der Firma Texas Instruments Inc., 1972, hingewiesen.
Aus Fig. 3b geht hervor, daß jeder Bereich 302-50 sechs Register 302-52 bis 302-57, die hier als Register A bis F bezeichnet werden, und zugehörige Steuerverknüpfungs-Schaltungen enthält, die in den Blöcken 302-70 und 302-72 enthalten sind. Jedes Register weist 11 Stufen auf: Neun Stufen für die Speicherung der acht Datenbits und des Paritätsbits eines Bytes, eine Stufe für die Speicherung eines Markierungs- oder eines Anzeigebits, das ein volles Register anzeigt, und eine Stufe für die Speicherung eines End-Ausgabe-Anzeigebits. Die Daten- und Steuerinformations-Bytes werden zwischen Lese- und Schreibpuffern des Bereichs 302-1 und einer Schreib-Multiplexerschaltung und einem Lesepuffer bit- parallel oder byte-seriell übertragen. Die Übertragungsrichtung und der Übertragungsweg werden durch die Zustände von Flipflops bestimmt, die in dem Hochgeschwindigkeits- Ablaufsteuerbereich 308 enthalten sind. Wie erläutert wird, werden diese Flipflops in bestimmte Zustände voreingestellt, und zwar durch Mikrobefehle, und die von den Flipflops an die Schaltungen der Steuerblöcke 302-70 und 302-72 abgegebenen Eingangssignale versetzen diese Schaltungen in den Stand für derartige Übertragungen.
Die Arten der Betriebsweisen, die angegeben werden können, sind folgende: Die erste Betriebsart (eine Nicht-Ablaufsteuerungs- Aktiv-Betriebsweise-NSA) stellt den statischen Zustand des Prozessors dar, in welchem keine Datenübertragungen zu/von den Platteneinheiten oder zu/von der Eingabe/Ausgabe- Steuereinrichtung stattfinden. Die Schaltungen des Blocks 302-70 und 302-72 werden derart konditioniert, daß die Register 302-52, 302-53 und 302-54 arbeitsmäßig mit der peripheren Untersystem-Schnittstelle verbunden sind, und die Register D, E und F sind arbeitsmäßig mit dem Einrichtungsadapter 310-2 verbunden. Die Zustände zweier Signale CQTXI 10 und CQTXO 10, die durch in den Ablaufsteuerschaltungen enthaltene Übertragungs-Eintritts- und Übertragungs-Austritts-Flipflops erzeugt werden, bestimmen die Richtung von Byte-Übertragungen für die Gruppen der Register A bis C und D bis F. Die Richtungen der Übertragung für die Zustände dieser Signale sind beispielsweise folgende:
  • 1) CQTXI 00 (1) = PSI → reg A → reg B → reg C
    Warten auf Prozessor (Firmware)-Maßnahme;
  • 2) CQTXI 10 (1) = reg C → reg B → reg A
    Warten auf PSI-Maßnahme;
  • 3) CQTXO 00 (1) = Einrichtungsadapter → reg F → reg E → reg D
    Warten auf Prozessor (Firmware)-Maßnahme; und
  • 4) CQTXO 10 (1) = reg D → reg E → reg F → Potentialanhebung der Anforderungsleitung → Warten auf Einrichtungsadapter-Maßnahme.
Weitere Betriebsarten, nämlich Unterbetriebsarten, werden durch Ausnutzung der Zustände dieser beiden Signale wie folgt abgeleitet:
  • 1. CQTXI 00 & CQTXO 00 - Normalzustand des Prozessors. Bei dieser Betriebsart werden Bytes von PSI und/oder dem Einrichtungsadapter in den Prozessor übertragen.
  • 2. CQTXI 00 & CQTXO 10 - Bei dieser Betriebsart werden Steuerinformationsbytes zu dem Einrichtungsadapter und/ oder der Einrichtung übertragen.
  • 3. CQTXI 10 & CQTXO 00 - Bei dieser Betriebsart werden Informationen, wie Bedienungscodebytes, Zustandbytes, zur Eingabe/Ausgabe-Steuereinrichtung übertragen.
  • 4. CQTXI 10 & CQTXO 10 - Bei dieser Betriebsart werden die Übertragungen der Betriebsarten 2 und 3 kombiniert.
Eine weitere Betriebsart ist eine Schreiboperations-Betriebsart, die durch den Zustand eines Steuersignals CQWTO 10 festgelegt wird, das durch ein in den Folgesteuerungsschaltungen enthaltenes Schreiboperations-Ablaufsteuerungs-Flipflop erzeugt wird. Wenn das Signal CQWTO 10 als Binärsignal 1 auftritt bzw. in diesen Zustand umgeschaltet wird, führt es das Signal CQTXO 10 und das Signal CQTXI 00 in den Binärzustand 1 bzw. Null. Diese Signale veranlassen die Register, Bytes von PSI an den Einrichtungsadapter oder an den Lese/Schreib- Speicher etc. zu übertragen.
Die nächste Betriebsart ist eine Lese-Betriebsart, die durch den Zustand eines Signals CQRDO 10 festgelegt wird, das durch ein in den Ablaufsteuerschaltungen bzw. Folgesteuerschaltungen enthaltenes Leseoperations-Ablaufsteuerungs-Flipflop erzeugt wird. Das Signal CQRDO 10 bewirkt zusammen mit dem Signal PADDT 10 von dem PSI-Steuerbereich 302-1, daß die Signale CQTXI 10 und CQTXO 00 in den Binärzustand 1 bzw. Null umgeschaltet werden. Dies ermöglicht, Bytes aus dem Einrichtungsadapter durch die Register 302-57 bis 302-57 zu PSI hin zu verschieben.
Eine weitere Betriebsart ist eine Suchoperations-Betriebsart, die durch den Zustand eines Signals CQSHO 10 festgelegt wird, welches durch ein in den Ablaufsteuerschaltungen enthaltenes Suchoperations-Ablaufsteuerungs-Flipflop erzeugt wird. Das Signal CQSHO 10 konditioniert den RWS-Bereich während Suchoperationen, wodurch die Übertragung von Bytes durch die Register von dem Einrichtungsadapter oder von PSI zu dem ALU- Bereich 316 hin ermöglich ist, um in den Lese/Schreib- Speicherbereich 306 eingeschrieben zu werden.
Die Steuerblöcke 302-70 und 302-72, wie sie aus Fig. 3b ersichtlich sind, erzeugen die Signale, die für die Übertragung von Bytes zwischen den Registern zu dem jeweils in Frage kommenden Zeitpunkt erforderlich sind (das heißt dann, wenn die Register leer sind). Die dargestellten Signale werden entsprechend folgenden booleschen Ausdrücken erzeugt. Die Zeichen "+" und "·" geben "ODER"- bzw. "UND"-Operationen an.
1. CDPTA 10 = CQTXI 00 · CDPTE 00 · CDPTF 00 · PAPRF 30 · CDARF 00
Dies ist ein Übertragungssignal von der peripheren Untersystem- Schnittstelle PSI zu dem A-Register hin; das betreffende Signal tritt mit hohem Pegel auf, wenn das Übertragungs- Eintritts-Flipflop sich im Rückstellzustand befindet (das heißt dann, wenn das Signal CQTXI 00=1 ist), wenn keine Übertragung von der Schnittstelle PSI zu dem E-Register oder dem F-Register hin erfolgt (das heißt, daß die Signale CDPTE 00 und CDPTF 00=1 sind), wenn ferner das A-Register nicht voll ist (das heißt, daß das Signal CDARF 00=1 ist) und wenn das Schreibregister voll ist (das heißt, daß das Signal PAPRF 30=1 ist).
2. PAPRF 10 = PKVSP 10 · PAOVD 10 + PAPRF 10 · PKVSP 10 · CDPTX 20
Dies ist die Anzeige für ein volles Register für das PSI- Schreibregister, welches gesetzt wird, wenn PAODV 10 mit hohem Pegel auftritt und wenn eine gültige Ablauffolge im weiteren Verlauf vorhanden ist (das heißt, daß PKVSP 10 =1 ist). Dieses Anzeigeglied wird zurückgestellt, wenn PTX mit hohem Pegel auftritt. Dadurch wird der Inhalt des Schreibregisters in das A-, E- oder F-Register übertragen.
3. PAATP 10 = ((PKDSC 00 · PKVSP 10 + PKSEO 1 A · PKVSP 10) PKSTO 20 · PKTMO 20 · PKADV 10 · PKSTI 20 · PKTMI 20 · PKDDT 10) + PAATP 10 · PKVSP 10 · CDARF 00
Dies ist eine Übertragung des Inhalts des A-Registers in des PSI-Leseregister. Dabei tritt ein Signalwert lediglich während der Leseoperationen auf (das sin Datenübertragungen zur Eingabe/Ausgabe-Steuereinrichtung). Das betreffende Signal tritt jeweils dann mit hohem Pegel auf, wenn die PSI-Schnittstelle sich in einem Lesebetrieb befindet (das heißt, daß das PKDDT 10-Signal vorhanden ist), wenn sich kein Abtastzyklus in der Entwicklung befindet, die Ablauffolge gültig ist, der PSI-Zähler eine von Null abweichende Zählerstellung besitzt und ein gültiges Byte in dem A-Register vorhanden ist (das heißt, daß das Signal PKADV 10=1 ist). Dabei bleibt der Setzzustand lang genug erhalten, um sicherzustellen, daß die Signale PKSTI 10, PKTMI 10 und PKATP 30 gesetzt sind und das Vollständigkeits- Anzeigeglied für das A-Register zurückgestellt ist (das heißt, daß CDARF 00=1 ist).
4. CDATB 10 = CQTXI 00 · CDBRF 00 + CDBTC 10
Das die Übertragungs vom A-Register zum B-Register betreffende Übertragungssignal tritt mit hohem Pegel auf, wenn das Eingangs- Übertragungssignal CQTXI 00 eine Null ist und das B-Register leer ist (das heißt, daß das Signal CDBRF 00=1 ist). Das betreffende Signal tritt auch mit hohem Pegel dann auf, wenn ein die Übertragung von B-Register zu dem C-Register betreffendes Übertragungssignal mit hohem Pegel auftritt (das heißt, daß das Signal CDBTC 10=1 ist).
5. CDBTA 10 = CDBTA 10 = CDARF 00 · CDFTA 00 · DQTXI 10 · CFARL 20
Dies ist ein die Übertragung vom B-Register zum A-Register betreffendes Übertragungssignal, das mit hohem Pegel auftritt, wenn das Übertragungs-Eintritts-Folgesteuerungs-Flipflop gesetzt ist (das heißt, daß das Signal CQTXI 10=1 ist), das A-Register leer ist (das heißt, daß das Signal CDARF 00 =1 ist) und keine weitere Übertragung vom F-Register oder ALU her (das heißt, daß die Signale CDFTA 00 und CFARL 20= sind) erfolgt.
6. CDBTC 10 = CQTXI 00 · CFCRL 20 · CDCRF 00 + CDCTD 10 · CQTXI 00
Dies ist ein die Übertragung vom B-Register zum C-Register betreffendes Übertragungssignal, das mit hohem Pegel auftritt, wenn das Übertragungs-Eintritts-Ablaufsteuerungs-Flipflop zurückgestellt ist (das heißt, daß das Signal CQTXI 00=1 ist) und das B-Register leer ist (das heißt, daß das Signal CDBRF 00=1 ist). Das Signal tritt mit hohem Pegel auf, wenn der Inhalt des C-Registers zu dem D-Register auf Schreiboperationen hin übertragen wird (das heißt, daß die Signale CDCTD 10 und CQTXI 00=1 sind).
7. CDCTB 10 = CDABE 10 · CDFTB 00 · CQTXI 10
Dies ist ein die Übertragung von dem C-Register zu dem B- Register betreffendes Übertragungssignal, das dann mit hohem Pegel auftritt, wenn das Übertragungs-Eintritts-Ablaufsteuerungs- Flipflop im Setzzustand ist (das heißt, daß das Signal CQTXI 10=1 ist), das A-Register und/oder das B-Register leer ist (das heißt, daß das Signal CDABE 10=1 ist) und keine Übertragung von dem F-Register zu dem B-Register hin erfolgt (das heißt, das das Signal CDFTB 00=1 ist).
8. CDCTD 10 = (CDDRF 00 + CDFRF 10) · CYWFB 10
Dies ist ein die Übertragung von dem C-Register zu dem D-Register betreffendes Übertragungssignal, das lediglich während Schreiboperationen mit hohem Pegel auftritt.
9. CDDTC 10 = (CDARF 00 + CDBRF 00 + CDCRF 00) CQRDO 10
Dies ist ein die Übertragung von dem D-Register zu dem C- Register betreffendes Übertragungssignal, das während einer Leseoperation mit hohem Pegel auftritt (das heißt, daß das Signal CQRDO 10=1 ist), wenn das Register A, B oder C leer ist.
10. CDDTE 10 = CQTXO 10 · CDPTE 00 · CDIDE 10
Dies ist ein die Übertragung von dem D-Register zu dem E- Register betreffendes Übertragungssignal, das dann mit hohem Pegel auftritt, wenn das Übertragungs-Austritts-Folgesteuerungs- Flipflop gesetzt ist (das heißt, daß das Signal CQTXO 10 =1 ist), das E-Register und/oder das F-Register leer ist (das heißt, daß das Signal CDIDE 10=1 ist) und keine Übertragung von PSI zu dem E-Register hin erfolgt (das heißt, daß das Signal CDPTE 00=1 ist).
11. CDETD 10 = CQTXO 00 · CDDRF 00 · CFDRL 20 + CDDTC 10
Dies ist ein die Übertragung von dem E-Register zu dem E-Register betreffendes Übertragungssignal, das dann mit hohem Pegel auftritt, wenn das Übertragungs-Austritts-Folgesteuerungs-Flipflop zurückgestellt ist (das heißt, daß das Signal CYTXO 00=1 ist) und das F-Register leer ist (das heißt, daß das Signal CDDRF 00=1 ist). Das Signal tritt dann mit hohem Pegel auf, wenn der Inhalt des D-Registers zu dem C-Register während Leseoperationen übertragen wird (das heißt, daß das Signal CDDTC 10=1 ist).
12. CDETF 10 = CQTXO 10 · CDEFA 10 · CDPTF 00
Dies ist ein die Übertragung von dem E-Register zu dem F-Register betreffendes Übertragungssignal, das dann mit hohem Pegel auftritt, wenn das Übertragungs-Austritts-Folgesteuerungs-Flipflop gesetzt ist (das heißt, daß das Signal CQTXO 10=1 ist), das F-Register leer ist (das heißt, daß das Signal CDEFA 10 =1 ist) und keine Übertragung von PSI zu dem F-Register hin erfolgt (das heißt, daß das Signal CDPTF 00=1 ist).
13. CDFTE 10 = (CQTXO 00 · CDERF 00 + CDETD 10) · CDFTA 00 · CDFTB 00
Dies ist ein die Übertragung von dem F-Register zu dem A- Register betreffendes Übertragungssignal, das dann mit hohem Pegel auftritt, wenn das Übertragungs-Austritts-Folgesteuerungs- Flipflop zurückgestellt ist (das heißt, daß das Signal CQTXO 00 =1 ist), das E-Register leer ist (das heißt, daß das Signal CDERF 00=1 ist) und keine Übertragungen von dem F-Register zu dem A-Register oder zu dem B-Register hin erfolgen (das heißt, daß die Signale CDFTA 00 und CDFTB 00=1 sind). Das Signal tritt während der Übertragung des Inhalts des E-Registers zu dem D-Register hin mit hohem Pegel auf (das heißt, daß das Signal CDETD 10=1 ist).
14. CDRTF 10 = CDDAK 10 · CQTXO 00 · CDFRF 00
Dies ist ein die Übertragung von Lesedaten zu dem F-Register betreffendes Übertragungssignal, das dann mit hohem Pegel auftritt, wenn ein Datenquittungssignal von dem Einrichtungsadapter her mit hohem Pegel auftritt, das Übertragungs-Austritts- Folgesteuerungs-Flipflop zurückgestellt ist (das heißt, daß das Signal CQTXO 00=1 ist) und das F-Register leer ist (das heißt, daß das Signal CDFRF 00=1 ist).
Hochgeschwindigkeits-Folgesteuerungsbereich 308
Dieser Bereich enthält die Zeitsteuerschaltungen der Blöcke 308-2 und 308-4 zusätzlich zu den Schaltungen mit den zugehörigen Schaltkreisen. Wie erwähnt, erzeugt die Taktschaltung 308-2, die von herkömmlichem Aufbau ist, das Taktimpulssignal für den Prozessor. Der Generator 308-4, der von herkömmlichem Aufbau ist, erzeugt Schreibimpulssignale richtiger Polarität und Phase aus den PDA-Signalen. Diese CLK-Impulse werden den Registerschaltungen und den Zählerschaltungen der Bereiche 314 und 318 zugeführt, um diese Schaltungen für Schreiboperationen bzw. Ladeoperationen zu konditionieren. Die verschiedenen Ablaufsteuerungs- und Zyklus-Schaltungen sind in Fig. 3c und 3d im einzelnen dargestellt. Die Folgesteuerungs- Flipflops dieses Bereichs sind in Fig. 3c als durch Firmenware setzbare Flipflops gezeigt, wobei das Setzen zu Beginn einer Operation und das Rückstellen durch Hardware am Ende der Operation erfolgt. Die aus den Mikrobefehlen abgeleiteten Steuersignale weisen entweder ein "CE"- oder ein "CF"-Präfix auf.
Wie aus Fig. 3c hervorgeht, enthalten die Hardware-Folgesteuerschaltungen eine Gatter- und Inverterschaltung 308-10 und Flipflops 308-1 bis 308-9 mit zugehörigen Gatterschaltungen 308-11 bis 308-92, die in der dargestellten Weise angeordnet sind. Das Flipflop 308-1 ist ein erstes Durchlaß-Format- Flipflop, welches in den Binärzustand 1 während Suchoperationen/ Schreiboperationen gesetzt wird. Das Flipflop 308-2 ist ein Such-Flipflop, welches in den Binärzustand 1 während Suchoperationen gesetzt ist. Das Flipflop 308-3 ist ein eine Lese/Schreibspeicherung ermöglichendes Flipflop, welches in den Binärzustand 1 gesetzt ist und eine Hardwaresteuerung bezüglich des Lesens, Schreibens und Verkleinerns des Inhalts des Lese/Schreibspeichers des Bereichs 306 gestattet. Das Flipflop 308-4 ist ein Suchkopfoperations-Flipflop, das auf sein Setzen in den Binärzustand 1 dem ALU-Bereich ermöglicht, sämtliche 1-Bytes in einem Suchargument eines Kennzeichenfelds einer Aufzeichnung während Suchkennzeichenoperationen zu vergleichen.
Das Flipflop 308-5 ist das Übertragungs-Austritts-Folgessteuerungs- Flipflop, das, wie erwähnt, die Richtung von Byte-Übertragungen durch die Register D, E und F steuert. Wenn dieses Flipflop in den Binärzustand 1 gesetzt ist, ermöglicht es eine Übertragung von Bytes aus dem D-Register zu dem E-Register und aus dem E-Register zu dem F-Register; es bewirkt ferner die Umschaltung des CDDAK 10-Signals, wodurch dem Einrichtungsadapter gemeldet wird, daß ein Byte in dem F-Register enthalten ist, wenn das Voll-Flipflop in den Binärzustand 1 gesetzt ist. Auf die Zurückstellung hin ist eine Übertragung von Bytes aus dem F-Register zu dem E-Register und aus dem E-Register zu dem D-Register ermöglicht. Die Gatter- und Inverterschaltung 308-10 erzeugt das Übertragungs- Eintrittssignal. Wie erwähnt, steuert dieses Signal die Übertragung von Bytes durch die Register A, B und C. Ist das Signal ein Binärsignal 1, so ermöglicht es die Übertragung von Bytes von dem A-Register zu dem B-Register und von dem B-Register zu dem C-Register. Das Setzen erfolgt während der Leseoperationen (das heißt, daß das Signal CQRDO 00=0 ist) oder dann, wenn entweder die Datenübertragungsschaltungen oder die Bedienungscodeschaltungen freigegeben sind (das heißt, daß das Signal PKDDT 00 oder das Signal PKDSC 00=Null ist).
Das Flipflop 308-6 ist ein Zählspalt-Flipflop, das in den Binärzustand 1 während Lese/Suchoperationen gesetzt wird, wenn ein letztes Prüfbit verarbeitet wird (das heißt dann, wenn entweder das Signal CQRDO 00 oder CQSHO 00=0 ist und wenn das Signal CDLBT 10=1). Das betreffende Flipflop wird ferner während Schreiboperationen durch nicht dargestellte Schaltungen gesetzt. Das Flipflop 308-8 ist ein Leseoperations-Flipflop, das in den Binärzustand 1 während der Leseoperationen gesetzt wird. Das Flipflop 308-9 ist ein Schreib-Operations-Flipflop, das während Schreiboperationen in den Binärzustand 1 gesetzt ist.
Bestimmte Signale der durch die oben angegebenen Schaltungen erzeugten Signale werden an die Schaltungen des Hardware- Zykluszählers abgegeben, den Fig. 3d im einzelnen zeigt. Dabei ist ersichtlich, daß der Zähler Flipflops 308-100 bis 308-102 und zugehörige Eingangsschaltungen 308-110 bis 308-132 enthält, die in der dargestellten Weise angeschlossen sind.
Das Flipflop 308-100 ist ein Vergleicherzyklus-Flipflop, das durch Firmenware (das heißt, daß das Signal CFSHO 1 S=1 ist) während einer Suchoperation in den Binärzustand 1 gesetzt ist. Das betreffende Flipflop wird in den Binärzustand Null zurückgestellt, wenn ein Satzzeichen-Bitsignal ermittelt wird (das heißt, daß das Signal CWNR 810=1 ist) und daß erste Durchlauf-Flipflop nicht gesetzt ist (das heißt, daß nicht der erste Durchlauf vorliegt). Das betreffende Flipflop wird ferner zurückgestellt, wenn ein End-Austritts-Bit in dem C-Register ermittelt wird (das heißt, daß das Signal CDCRT 10=1 ist).
Die Flipflops 308-101 und 308-102 sind unter Bildung eines zweistufigen Sprungzählers miteinander verbunden. Während einer Schreiboperation (das heißt, daß die Signale CYWFB 10, A 1 DAV 31 und CYFCW 10=1 sind) sperrt der Zähler die Verringerung der Zählerstellung des Datenzählers des Bereichs 318 und bewirkt das "Festhalten" von Synchron-Bytes oder Adressen und Synchron-Bytes. Während einer Leseoperation verhindert der Zähler die Übertragung von Synchron-Bytes oder Führungs-Bytes eines Felds einer gelesenen Aufzeichnung zu PSI hin (das heißt, daß die Signale CQRSO 10, CDFTX 10 und CYIDT 00=1 sind). Der betreffende Zähler ermöglicht jedoch das Einschreiben der betreffenden Signale erforderlichenfalls in den Lese/Schreib-Speicherbereich 306 (zum Beispiel des Kennzeichen-Bytes, das während einer Lesezähl- Operation gelesen ist).
Festwertspeicher-Steuerbereich 304
In Fig. 3e ist der Bereich 304 in Blockform dargestellt. Wie ersichtlich, enthält der betreffende Bereich einen Festwertspeicher 304-2, der über ein Adresenregister 304-4 adressierbar ist, welches eine 12-Bit-Adresse über einen Weg 304-5 abgibt. Dieselbe Adresse wird einem Inkrement- Register 304-6 zugeführt. Das Register 304-6 ist von herkömmlichem Aufbau; es ermöglicht die Vergrößerung seines Inhalts um 1 und das Laden in das Register 304-4 über den Weg 304-7 auf das Auftreten eines Inkrement- Steuersignals CRINC 10 hin vorzunehmen, das durch Steuerschaltungen des Blocks 304-8 als binäres Signal 1 abgegeben wird.
Darüber hinaus wird der Inhalt des Registers 304-6 zwei Rückführregistern 304-10 und 304-12 über den Weg 304-14 bzw. 304-16 zugeführt. Der Inhalt des Registers 304-6 wird selektiv geladen, und zwar auf ein Signal der beiden Signale CFIR 110 und CFIR 210 hin, das als Binärsignal 1 abgegeben wird, und zwar durch die Verzweigungs-Sprung-Schaltungen des Blocks 304-20. In ähnlicher Weise werden die Inhalte der Rückführregister 304-10 und 304-12 selektiv in das Adreßregister 304-4 geladen. Dies erfolgt über die Wege 304-21 und 304-22 auf das Auftreten eines Signals der beiden Signale CFR 1 S 10 und CFR 2 S 10 hin, wobei das betreffende Signal durch die Verzweigungssprung-Schaltungen 304-20 als binäres 1-Signal abgegeben wird.
Wenn der Speicher 304-2 adressiert ist, werden Signale an die Lese-Verriegelungs-Verstärkerschaltungen eines Registers 304-25 abgegeben, welches seinerseits Signale an die Verzweigungssprung-Schaltungen 304-20 für die Dekodierung und an das Adreßregister 304-4 über den Weg 304-26 bzw. 304-27 abgibt. Wenn die Verzweigungs-Sprung-Schaltungen 304-20 einen Verzweigungs-Mikrobefehl dekodieren und die Prüfbedingung erfüllt ist, wird das Signal CFDTS 10 in den Binärzustand 1 überführt, und der Inhalt eines Adressenfelds wird in das Register 304-4 geladen.
Zusätzlich wird ein Teil des Inhalts aus den Schaltungen 304-25 den Multiplexer-Auswahlschaltungen eines schnell arbeitenden Verzweigungs-MUX-Blocks 304-28 zugeführt, der außerdem eine Vielzahl von Prüfbedingungs-Eingangssignalen an Eingangsanschlüssen 2-31 erhält. Eines dieser Eingangssignale wird von den Verknüpfungsschaltungen des Blocks 304-30 her zugeführt. Außerdem nehmen die betreffenden Schaltungen Eingangssignale von dem ALU-Bereich her auf (das heißt, daß die Bus-Leitungs-Signale CARB 0-CARB 7 vorhanden sind). Die Schaltungen des MUX-Blocks 304-28 erzeugen Ausgangssignale, die kennzeichnend sind für Zustände, die geprüft werden. Diese Ausgangssignale werden dem Verzweigungssprung-Block 304-20 zugeführt. Dieser Block wird in Verbindung mit Fig. 3f im einzelnen beschrieben werden.
Die Inhalte der Schaltungen 304-25 werden selektiv den Flipflop- Stufen eines örtlichen Registers 304-32 über einen Weg 304-31 zugeführt und in das Register geladen, wenn die in einem Verzweigungsprüfblock 304-34 enthaltenen Schaltungen ein Abtastsignal CRSTR 10 als Binärsignal 1 abgegeben. Teile der Inhalte des Registers 304-32 werden dem Verzweigungsprüfblock 304-34 und einer Multiplexer-Auswahlschaltung zugeführt, die in dem Verzweigungs-MUX-Block 304-36 enthalten ist. Darüber hinaus nimmt der MUX-Block Signale von ALU auf, wie dies angedeutet ist. Außerdem lädt das Register 304-32 eine Adresse in das Adreßregister 304-4, und zwar über einen Weg 304-37, wenn der Verzweigungsprüfblock ein Signal CFNTS 10 als Binärsignal 1 abgibt. In einem Ablaufsteuerungs-Dekoder 304-38 enthaltene Schaltungen erzeugen die Mikrooperations-Steuersignale auf das Auftreten der Signale, die über einen Weg 304-39 von dem Register 304-32 zugeführt werden.
Mirkobefehlsformate
Bevor die verschiedenen Blöcke gemäß Fig. 3e im einzelnen beschrieben werden, werden zunächst die unterschiedlichen Arten der Mikrobefehle und deren Formate unter Bezugnahme auf die Fig. 4a bis 4g beschrieben.
In Fig. 4a ist ein Lese/Schreibspeicher (RWS)-Mikrobefehlswort dargestellt, welches dazu benutzt wird, den Adressen- und Datenweg einer aus dem Lese/Schreib-Speicherbereich 306 zu lesenden Information oder in diesen Bereich zu schreibenden Information zu steuern. Wie aus dieser Figur hervorgeht, weist dieses Mikrobefehlswort einen durch die Bits 0 bis 2 bezeichneten Operationscode 101 auf. Die Bits 13 und 14 bilden ein Feld, welches die Stelle in dem Lese/Schreib- Pufferpeicher angibt, die für ein Auslesen oder ein Einschreiben eines einzigen Bytes vorgesehen ist. In dem Fall, daß mehr als eine Einzelbyte-Lese/Schreib-Operation auszuführen ist, gibt der Inhalt dieser Stelle eine Startadresse an. Das nächste Feld ist ein Zählerfeld, welches die Bits 15 bis 18 enthält. Dieses Feld wird hauptsächlich für Lese/ Schreib- oder Suchzähler- oder Kopfadressenoperationen benutzt, die entweder das Lesen oder Schreiben einer fortlaufenden Information aus dem bzw. in den Lese/Schreib-Pufferspeicherbereich erfordern. Die durch dieses Feld angegebene 4-Bit- Zählerstellung kann zum Beispiel in die Byte-Position niedriger Wertigkeit des in dem Bereich 318 enthaltenen Datenzählers geladen werden, während die übrigen Stufen des Zählers durch Hardware mit Nullen aufgefüllt werden. Die Bits 19 und 20 dienen als Adressenauswahlfeld, welches drei Wege angeben kann, durch die die Firmenware eine Lese/Schreib-Speicheradresse erzeugen kann. Diese Wege sind in der zugehörigen Tabelle ausgeführt. Aus der betreffenden Tabelle ergibt sich dabei, daß dann, wenn dieses Feld auf "01" gesetzt ist, die Hardware den Inhalt des Lese/Schreib-Speicheradreßregisters ohne Bezugnahme auf das RWS-Adreßfeld des Mikrobefehls ausnutzt. Wenn das Feld auf "10" gesetzt ist, erzeugt die Firmenware die Lese/Schreib-Speicheradresse dadurch, daß eine vier Bits umfassende Zahl des gegenwärtigen Verknüpfungskanals (LCN) in die Bitpositionen 2 bis 5 eines Lese/Schreib- Speicheradreßregisters geladen wird. Die übrigen Bits der Adressenbits werden aus dem RWS-Adressenfeld entnommen, das in dem Mikrobefehl enthalten ist. Wenn dieses Feld auf "11" gesetzt ist, wird die gesamte RWS-Adresse, die durch das RWS-Adressenfeld des in dem örtlichen Festwertspeicherregister enthaltenen Mikrobefehle angegeben ist, benutzt.
Die Bits 21 und 22 dienen als Sprungzählerfeld; sie werden dazu herangezogen, die Anzahl an Bytes anzugeben, die auszublenden sind, um in verschiedenen Betriebsarten zu arbeiten. Die Bits 23 bis 26 stellen ein 4-Bit-Feld dar, welches dazu benutzt wird, bestimmte Ablauffolgen anzugeben, die für Lese/Schreib- oder Suchoperationen benötigt werden, welche die Einspeicherung einer Information in den Hilfsspeicher des Lese/Schreib-Speicherbereichs umfassen. Die Tabelle zeigt den Typ der Operationen an, die durch unterschiedliche Kodierungen der B-Unteroperationscodebits angegeben sind.
In Fig. 4b ist das Format eines unbedingten Verzweigungs-Mikrobefehls gezeigt. Dieser Mikrobefehl ist einer von zwei "Schnellverzweigungs"- Mikrobefehlen, die erfordern, daß die Bits des Mikrobefehls von den Leseverstärker-Verriegelungsschaltungen her dekodiert werden, um nämlich die Erzeugung einer nächsten Mikrobefehls-Wortadresse innerhalb einer Taktimpuls-Zeitperiode freizugeben. Wie aus dem Namen hervorgeht, wird dieser Mikrobefehl dazu benutzt, eine Nicht-Prüf-Verzweigungsoperation zum Zweck des Aufrufs eines weiteren Mikroprogramms oder einer Routine anzugeben. Die Operationscodebits Null bis 2, wie sie in Fig. 4b angegeben sind, werden als 110 kodiert. Das Bit 3 wird auf den Binärwert Null gesetzt um anzugeben, daß dies eine unbedingte Schnellverzweigungs-Operation ist. Die Bits 4 und 5 entsprechen einem "Vorverzweigungszustands"-Feld, welches dazu benutzt wird, das Setzen einer Rückführadresse vor der unbedingten Verzweigung anzugeben. Der Festwertspeicher-Steuerbereich 304 enthält, wie erwähnt, insbesondere zwei Verzweigungs- Rückführregister (das ist das Rückführ-Adreßregister 1 und das Rückführ-Adreßregister 2). Diese Register werden dazu benutzt, die Adressen festzuhalten, wenn eine Verzweigung von einer Routine zu einer anderen erfolgt. Wie durch die Tabelle in Fig. 4b angedeutet, tritt die Verzweigung in dem Fall, daß die Bits 4 und 5 auf "00" gesetzt sind, auf, ohne daß irgendein Rückführregister auf eine bestimmte Adresse einzustellen wäre. Wenn die Bits 4 und 5 auf "10" gesetzt sind, ist die Verzweigungs-Hardware derart in Betrieb, daß die laufende Adresse, die sich in ROSAR (304-4) findet, um 1 erhöht wird und in das Rückführadreßregister 1 gespeichert wird, bevor eine Verzweigung auf eine neue Adresse erfolgt. Nachdem die Routine-Verzweigung abgeschlossen worden ist, wird der Inhalt des Rückführ-Adreßregisters 1 dazu benutzt, auf die erste oder ursprüngliche Routine zurückzukehren. Wenn die Bits 4 und 5 auf "01" gesetzt sind, wird das Rückkehr-Adreßregister 2 mit der Adresse des Mikrobefehls geladen, nachdem diese um 1 vergrößert worden ist. Dieses Adreßregister stellt eine zweite Ebene der Verzweigungsrückkehr bereit. Wie durch dieselbe Tabelle angegeben, ist es unerwünscht, die Bits 4 und 5 auf "11" zu setzen, da dies nämlich zum Laden derselben Adresse in die beiden Adreßregister 1 und 2 führt.
Wie durch Fig. 4b angegeben, stellen die Bits 6 bis 18 eine 12-Bit-Verzweigungsadresse dar, in der das Bit 18 das Bit niedrigster Wertigkeit ist und in der das Bit 6 ein Paritätsbit für eine ungerade Parität darstellt. Die Bits 19 und 20 stellen ein "Verzweigung zum Adressenzustand"- Feld dar, welches die in der Tabelle angegebenen Zustände bezeichnet. Wenn diese Bits auf "00" gesetzt sind, führt der Speicher eine Verzweigung zu einer Stelle hin aus, die durch die Verzweigungsadresse des Mikrobefehls definiert ist. Wenn die Bits 19 und 20 auf "01" gesetzt sind, bewirkt der Speicher eine Verzweigung zu einer Adresse, die in dem Rückkehr-Adreßregister 1 enthalten ist. Demgegenüber bewirkt der betreffende Speicher eine Verzweigung zu der in dem Rückkehr-Adreßregister 2 enthaltenen Adresse, wenn diese Bits auf "10" gesetzt sind. In ähnlicher Weise werden die Bits 19 und 20 nicht auf "11" gesetzt, da dies einen unzulässigen Zustand definiert. Die Bits 21 bis 26 enthalten normalerweise nur Nullen, da sie ein nicht benutztes Feld bilden. Die übrigen Bits sind wie angedeutet.
In Fig. 4c ist das Format des zweiten Schnellverzweigungs- Mikrobefehls gezeigt, der einem bedingten Schnellverzweigungs- Mikrobefehl (FCB) entspricht. Wie dargestellt, besitzt der betreffende Mikrobefehl denselben Operationscode wie der unbedingte Verzweigungs-Mikrobefehl; das Bit 3 ist jedoch auf den Binärwert 1 gesetzt. Das Bit 4 dient als Setz-Rückführadreßregister-1-Feld. Wenn dieses Bit auf den Binärwert 1 gesetzt ist und wenn das Prüfergebnis positiv ist, wird der Inhalt des Festwertspeicher-Adreßregisters um 1 erhöht und in dem Rückführadreßregister 1 gespeichert. Der Speicher führt dann eine Verzweigung zu der Stelle hin aus, die durch das Verzweigungsadressenfeld des bedingten Schnellverzweigungs-Mikrobefehls bezeichnet ist. Das Bit 5 ist ein Rücksetz-Prüf-Flipflop-Feld-Bit, das im Setzzustand die Zurückstellung bestimmter Prüf-Flipflops nach der Beendigung der Prüfung bewirkt. Eines dieser Flipflops entspricht einem hier beschriebenen Befehlsende-Flipflop.
Die Bits 6 bis 18 bilden ein Verzweigungsadressenfeld, während die Bits 19 bis 23 ein Mulitplex-Prüfzustandsfeld bilden. Die Prüfzustände bzw. Prüfbedingungen sind so festgelegt, wie dies in der Tabelle 1 gemäß Fig. 4c angegeben ist. Dabei können bis zu 31 Flipflops vorhanden sein, die geprüft werden können. Die Tabelle gibt einige der einschlägigeren Flipflops an. Durch die Prüfung wird festgestellt, ob ein Flipflop sich im Binärzustand 1 oder Setzzustand befindet oder nicht. Wenn dieses Feld so gesetzt ist, daß sämtliche Bits Einsen sind, dann zeigt dies an, daß keines der 31 Prüf-Flipflops zu überprüfen ist, daß aber eine der Verriegelungsschaltungen, die die ALU-Ergebnis-Bus-Signale aufnehmen, wie sie durch die Bits 24 bis 26 festgelegt sind, zu prüfen ist. Die Bits 24 bis 26 stellen ein Prüfzustands-Verriegelungsfeld dar, welches in der aus der Tabelle 2 ersichtlichen Weise kodiert ist. Wie hier erläutert ist, ermöglicht dieses Feld, daß der Inhalt irgendeines der Acht-Bit- Register über den zu prüfenden ALU-Bereich abgegeben wird, und zwar auf einer bitweisen Grundlage.
In Fig. 4d ist das Format eines normalen bedingten Verzweigungs- Mikrobefehls (NCB) gezeigt. Im Unterschied zu bedingten Schnellverzweigungs- und unbedingten Verzweigungs- Mikrobefehlen wird dieser Mikrobefehl am Ausgang des örtlichen Festwertspeicher-Registers decodiert, wobei ein Intervall von zwei Taktimpulsperioden benötigt wird, um die Ergebnisse der Prüfung zu erhalten. Der normale bedingte Verzweigungs-Mikrobefehl ermöglicht die Überprüfung irgendeiner Bit-Position (Binärzustand 1 und Binärzustand Null) eines Registers vorzunehmen, das durch das A-Operandenfeld des Mikrobefehls bezeichnet ist. Wie aus Fig. 4d hervorgeht, besitzt dieser Mikrobefehl einen Operationscode von "111". Das Bit 3 zeigt an, ob die binäre 1 oder die binäre Null der Ausgangssignale der durch das A-Operandenfeld bezeichneten Register zu überprüfen ist. Die Bits 4, 5 und 19 sind nicht benutzte Felder; demgemäß sind sie auf binäre Nullen gesetzt. Die Bits 6 bis 18 bilden ein Verzweigungsadressenfeld, während die Bits 20 bis 22 ein Verriegelungsfeld bilden. Wie aus der betreffenden Figur ersichtlich sein dürfte, geben diese Bits, wenn sie in der durch Tabelle 1 angegebenen Weise codiert sind, die Bitposition des durch ALU ausgewählten zu überprüfenden Registers an. Die Bits 23 bis 26 bilden das A-Operandenfeld (AOP), welches, wie durch Tabelle 2 angegeben ist, irgendeines von 16 Registern bezeichnet, dessen Inhalt in den ALU-Verriegelungsschaltungen gespeichert werden kann.
In Fig. 4e sind die Formate eines Eingabe/Ausgabe-Mikrobefehls gezeigt. Dieser Mikrobefehl wird dazu benutzt, den Massenspeicher-Prozessor PSI und die Einrichtungsadapterschaltungen in den Stand zu versetzen, diejenigen Operationen zu verarbeiten, die eine Informationsübertragung zu/von dem Einrichtungsadapter und den Eingabe/Ausgabe- Steuereinrichtungs-Schnittstellen erfordern. Wie aus Fig. 4e hervorgeht, besitzt dieses Mikrobefehlswort einen Operationscode "011". Das Bit 3 entspricht einem Setzzähler- Bit, das im Binärzustand 1 entweder einen Eingabe/Ausgabe- Zähler oder einen Datenzähler mit dem Inhalt des Zählerfelds, welches die Bits 11 bis 18 umfaßt, oder von RWSLR her zu laden gestattet. Diese Operation tritt auf Eingabe/Ausgabe-Operationen hin auf, wie auf eine Bedienungscode- Ablauffolge, eine Schreibdaten-Ablauffolge, eine Lesedaten-Ablauffolge, eine Such-Kennzeichen- oder Datenablauffolge, etc. Wenn dieses Bit in den Binärzustand Null gesetzt ist, wird keiner der zuvor erwähnten Zähler mit einer Information geladen. Lediglich die Ablaufsteuerungs- Flipflops werden, wie dies durch die Tabellen 1 bis 6 gemäß Fig. 4e angegeben ist, gesetzt. Das Bit 4 wird benutzt, wenn das Zählerfeld benutzt wird (das heißt, daß das Bit 3 eine binäre 1 ist). Dieses Bit wird dazu benutzt, dem Prozessor anzuzeigen, welches Byte der 2-Byte-PSI-Schnittstelle oder der Datenzähler mit der durch das Zählerfeld bezeichneten Zählerstellung zu laden ist. In dem Fall, daß zwei Bytes in die Zähler geladen werden, erfordert dies zwei Eingabe/Ausgabe-Mikrobefehlsworte. Jedesmal, wenn die Bytes-Stellen niedriger Wertigkeit eines Zählers geladen werden, werden die Byte- Stellen höherer Wertigkeit desselben Zählers auf binäre Nullen zurückgestellt. Wenn das Bit 4 eine binäre Null ist, zeigt es an, daß die Byte-Stellen niedriger Wertigkeit des Zählers mit dem Zählerfeld des Eingabe/Ausgabe-Mikrobefehls geladen werden. Wenn demgegenüber das Bit 4 eine binäre 1 ist, werden die oberen Byte-Stellen des Zählers mit dem Mikrobefehls-Zählfeld geladen. Wenn das Bit 3 des Mikrobefehls auf eine binäre Null gesetzt ist, wird hierdurch dem Prozessor signalisiert, welche Flipflops in den Feldern 1 bis 3 und jene in den Fehlerkorrektur- und Fremdbetriebsfeldern zu setzen oder zurückzustellen sind. Wenn das Bit 4 auf eine binäre 1 gesetzt ist, werden jene Flipflops, die durch diese Felder bezeichnet sind, in die Binärzustände 1 gesetzt. Wenn das Bit 4 eine binäre Null ist, werden jene Flipflops, die durch die Felder bezeichnet sind, in ihre Binärzustände Null zurückgestellt. Das Bit 4 besitzt keine Bedeutung, wenn die Felder codiert werden, um nur Nullen zu enthalten. Die Tabellen 4 bis 6 zeigen Codes, die kennzeichnend sind für bestimmte Flipflops der in dem Massenspeicher-Prozessor enthaltenen Flipflops.
Die Bits 5 und 6 geben ein Unter-Operationscodefeld an, wenn das Zählfeld benutzt wird (das heißt, daß das Bit 3 eine binäre 1 ist). Das Operationscodefeld gibt an, welcher der Zähler (das heißt der PSI-Byte-Zähler oder der Daten- Zähler) zu laden ist; ferner wird die zu ladende Zählquelle angegeben (das heißt das Laden von den örtlichen Lese/ Schreib-Speicherregistern oder dem örtlichen Festwertspeicherregister). Die Tabelle 1 gibt die verschiedenen Codierungen für diese Bits und die entsprechenden Funktionen an. Die Bits 7 bis 10 definieren ein PSI-Ablaufsteuerungs- Flipflop-Feld, wenn das Bit 3 auf eine binäre 1 gesetzt ist. Diese Flipflops stellen, wie oben erwähnt, die Datenwege für die PSI-Anordnung bereit, um Datenübertragungen zwischen der Eingabe/Ausgabe-Steuereinrichtung und dem Massenspeicher-Prozessor vorzunehmen. Die Tabelle 2 zeigt die Codes für die Kennzeichnung unterschiedlicher Flipflops dieser vier Flipflops an. Während der Codierung der Bits 7 bis 10 das Setzen eines einzelnen Flipflops veranschaulicht, kann die Codierung der betreffenden Bits so modifiziert werden, daß mehr als ein einzelnes Ablaufsteuerungs-Flipflop mit einem einzelnen Mikrobefehl gesetzt wird. Die Bits 11 bis 18 geben ein Zählfeld an, welches von dem Prozessor dazu benutzt wird, entweder den PSI-Zähler oder den Datenzähler zu laden. Wenn die zwei Byte breiten Zähler geladen werden, werden die PSI-Flipflops oder die Ablaufsteuerungs- Flipflops lediglich dann gesetzt, wenn eine Zählerstellung in die oberen Bytestufen des Zählers geladen wird. Wie durch Fig. 4e angegeben, sind die Bits 19 und 20 nicht benutzte Bits, wenn das Bit 3 eine binäre 1 ist. Die Bits 21 und 22 dienen als Sprungzählfeld, wenn das Bit 3 eine binäre 1 ist. Dieses Zählfeld zeigt die Anzahl von Bytes an, die von dem Prozessor während einer Lese-, einer Schreib- oder einer Suchoperation einzuschließen bzw. zu überspringen sind. In Abhängigkeit von dem bestimmten, verarbeiteten Aufzeichnungsformat wird dieses Feld gesetzt, um die richtige Anzahl der einzuschließenden bzw. zu überspringenden Bytes anzugeben. Die Bits 23 bis 26 definieren ein Ablaufsteuer-Flipflop-Feld, wenn das Bit 3 eine binäre 1 ist. Die Ablaufsteuerungs-Flipflops werden in bestimmte Zustände gesetzt, die ihrerseits den Weg für die Herstellung bidirektionaler Informationsübertragungen durch die verschiedenen Register von MSP festlegen. Die Codierungen für diese Felder sind in der Tabelle 3 in Fig. 4e angegeben. Einige dieser Flipflops sind oben bereits erläutert worden.
Wenn das Bit 3 auf eine binäre Null gesetzt wird, werden die Bits 5 bis 26 in der die Tabellen 4 bis 6 angezeigten Weise benutzt.
In Fig. 4f sind zwei Formate für Mikrobefehle gezeigt, die zur Angabe unterschiedlicher Rechenoperationen verwendet werden. Die Rechenoperations-Mikrobefehle enthalten einen Operationscode "010". Das Bit 3 wird dazu benutzt, unterschiedliche Formate des Mikrobefehls anzuzeigen. Die Bits 4 bis 7 bilden ein Unteroperationscode-Feld, welches bis zu 16 unterschiedliche Rechenoperationen festlegt, von denen einige Verknüpfungsoperationen sind. Die Tabelle 1 zeigt bestimmte Rechenoperationen der durch die Bits 4 bis 7 codierten Rechenoperationen an. Diese Operationen sind bekannt, weshalb sie hier nicht weiter ins einzelne gehend beschrieben werden. Zur weiteren Information sei auf die oben erwähnte Druckschrift der Firma Texas Instruments, Inc. hingewiesen. Die Bits 8 und 9 dienen als Eintrag-Feld; sie werden gemäß Tabelle 2 codiert, um drei unterschiedliche Eintragzustände festzulegen, und zwar für die Ausführung von verschiedenen Rechenoperationen. Die Bits 15 bis 18 werden nicht benutzt, wenn das Bit 3 eine binäre Null ist; daher sind diese Bits binäre Nullen. Die Bits 10 bis 14 sind in der aus Tabelle 3 ersichtlichen Weise codiert, um den Bestimmungsort des durch eine Rechenoperation erzeugten Ergebnisse anzugeben. Die Bits 19 bis 22 bilden ein B-Operanden-Konstanten-Feld (BOP), welches die Quelle des B-Operanden gemäß Tabelle 4 anzeigt. In ähnlicher Weise zeigen die Bits 23 bis 26 die Quelle des A-Operanden gemäß Tabelle 5 an. Es sei bezüglich der Fig. 4f darauf hingewiesen, daß dann, wenn das Bit 3 eine binäre 1 ist, die Bits 15 bis 22 als B-Operanden benutzt werden.
In Fig. 4g sind zwei Formate für Mikrobefehle gezeigt, die zur Angabe unterschiedlicher Arten von Verknüpfungsoperationen verwendet werden. Die Verknüpfungsoperations- Mikrobefehle enthalten einen Operationscode "001". Der Zustand eines Format-Bits 3 zeigt dann, wenn dieses Bit eine binäre Null ist, an, daß eines der in der Tabelle bezeichnet Register die Quelle des B-Operanden zu sein hat. Wenn das Bit 3 eine binäre 1 ist, ist das 8-Bit-Konstanten-Feld des Mikrobefehls der B-Operand. Die Bits 4 bis 7 eines Unteroperations-Code-Felds bezeichnen die Verknüpfungsoperation, die durch ALU auf die A- und B-Operanden hin auszuführen ist. Die Tabelle 1 zeigt dabei einige Arten von Operationen. Bezüglich weiterer Information sei jedoch auf die oben erwähnte Druckschrift der Firma Texas Instruments hingewiesen.
Die Bits 15 bis 18 werden nicht benutzt, wenn das Bit 3 eine Null ist. Die Bits 10 bis 14 bilden eine Bestimmungsangabe des ALU-Ergebnisfelds; sie sind so codiert, daß sie eines der Register in der angegebenen Tabelle für die Aufnahme des durch ALU erzeugten Ergebnisses bezeichnen. Sämtliche Codes mit Ausnahme von 11110 und 11111 bewirken, daß das Ergebnis an das bezeichnete Register abzugeben ist sowie in den ALU-Verriegelungsschaltungen zu speichern ist. Bei den Codes 11110 und 11111 wird das Ergebnis nicht in ein Register übertragen, sondern es wird vielmehr in den ALU-Verriegelungsschaltungen gespeichert.
Wie oben erwähnt, geben die Bits 19 bis 22 die Quelle des B-Operanden für ALU an, wenn das Bit 3 eine Null ist. Die Bits 15 bis 22 definieren den B-Operanden, wenn das Bit 3 eine binäre 1 ist. Im übrigen werden die Bits 8 und 9 bei diesem Mikrobefehlstyp nicht benutzt. In ähnlicher Weise definieren die Bits 23 bis 26 die Quelle des A- Operanden für ALU.
Detaillierte Beschreibung der ROS-Schaltungen gemäß Fig. 3e
Unter Bezugnahme auf Fig. 3f werden nunmehr bestimmte Schaltungen gemäß Fig. 3e im einzelnen beschrieben. Aus Fig. 3e geht hervor, daß der Verzweigungssprungblock 304-20 die Schaltungen 304-200 bis 304-215 enthält, die in der dargestellten Weise angeordnet sind. Wie erwähnt, erzeugen diese Schaltungen die erforderlichen Signale während der Ausführung der beiden schnellen Befehle, die unmittelbar an die Schaltungen mittels der Leseverstärker-Verriegelungs- Schaltungen 304-25 abgegeben werden. Die durch die Verzweigungssprung- Schaltungen gebildeten Signale werden gemäß folgenden booleschen Ausdrücken erzeugt.
  • 1. CFDTS 10 (ROS-Daten zu ROSAR) = CFUCB 10 · CBNOK 00 · CFR 1 S 00 · CFR 2 S 00 + CFFCB 10 · CBBOK 10.
  • 2. CFFCB 10 (schnelle bedingte Verzweigung) = CFBNH 10 · CDRO 310.
  • 3. CFIR 110 (Inkrementierter auf Rückführ-Reg 1) = CFUCB 10 · CBNOK 00.
  • 4. CFIR 210 (Inkrementierer auf Rückführ-Reg 2) = CBNOK 00 · CFUCB 10 · CRD 2210.
  • 5. CFR 1 S 10 (Rückführ-Reg 1 zu ROSAR) = CFUCB 10 · CRD 1919 · CBNOK 00.
  • 6. CFR 2 S 10 (Rückführ-Reg 2 zu ROSAR) = CFUCB 10 · CRD 2010 · CBNOK 00.
  • 7. CBBOK 10 (Verzweigung OK für FCB) = .
  • 8. CBBOKOC (FCB-Testbedingungen) = CBBOKOA · CRD 1900 · CBBOKOB.
Die Signale CBBOKOA, CBBOKOB und CBRST 00 werden von entsprechenden Wählerschaltungen der Multiplexer-Wählerschaltungen 304-280 bis 304-285 abgeleitet, die in dem Schnellverzweigungs-MUX-Block 304-28 enthalten sind. Diese Schaltungen nehmen eine Anzahl von Eingangssignalen von 79723 00070 552 001000280000000200012000285917961200040 0002002459975 00004 79604 verschiedenen Teilen des Prozessors auf. Diese Signale, die kennzeichnend sind für bestimmte Testbedingungen, werden abgetastet, und die Ergebnisse der Abtastung werden den Verzweigungssprungs-Schaltungen 304-20 zugeführt, wie dies dargestellt ist. Eines der der Multiplexer-Schaltung 304-284 zugeführten Eingangssignale ist das Signal CBEOC 10. Dieses Signal wird durch ein Flipflop 304-300 erzeugt, welches in den Schnellverzweigungs-Verknüpfungsschaltungen des Blocks 304-30 enthalten ist. Wie dargestellt, umfaßt dieser Block dieses Flipflop zusammen mit zugehörigen Gatterschaltungen 304-301 bis 304-302, die in der dargestellten Weise angeschlossen sind.
Weitere Test- bzw. Prüfsignale umfassen ein den Nichtempfang eines Indeximpulses anzeigendes Signal A 1 IDT 00, das durch den Adapterbereich 310 auf das Auftreten des Index-Impulssignals von der Leitung IDX hin erzeugt wird. Ferner umfassen die Testsignale ein die Ungleichheit von Null des Spaltenzählerinhalts anzeigendes Signal CCGCZ 00 von dem Bereich 318, ein die Ungleichheit von Null des Datenzählerinhalts anzeigendes Signal CCDCZ 00 von dem Bereich 318, ein das Nichtsetzen eines Datenende-Flipflops anzeigendes Signal PKDDT 00 von dem Bereich 302 und ein den ersten Durchlaß, das Setzen des Format-Flipflops betreffendes Signal CQFPF 10 von dem Hochgeschwindigkeits-Ablaufsteuerbereich 308 her. Es sei ferner darauf hingewiesen, daß die Schaltung 304-208 ein die Gleichheit von A und B anzeigendes Signal CAAEB 10 und ein Signal CAAGB 10, das anzeigt, daß A größer ist als B, von dem ALU-Bereich 316 her empfängt.
Aus Fig. 3f geht ferner hervor, daß die Verzweigungsprüfschaltungen des Blocks 304-34 die Schaltungen 304-340 bis 304-344 enthalten, die in der dargestellten Weise angeschlossen sind. Diese Schaltungen sind derart betrieben, daß Verzweigungssignale auf einen Normalzustands-Verzweigungs-Mikrobefehl hin erzeugt werden, der in dem örtlichen Festwertspeicher- Register 304-32 gespeichert ist. Darüber hinaus erzeugen diese Schaltungen Signale für die Freigabe der Ablaufsteuer-Dekoderschaltung 304-38, die derart betrieben ist, daß sie die Bits 23 bis 26 des Normalzustands-Verzweigungs- Mikrobefehls dekodiert, welche Bits über den Weg 304-39 zugeführt werden. Die in dem Verzweigungs-MUX-Block 304-36 enthaltenen Multiplexer-Auswahlschaltungen liefern ein Verzweigungssignal CBNOK 10 auf die Abtastung einer der Verriegelungsschaltungen des ALU-Bereichs hin, wie dies durch die Verriegelungsfeld-Bits 20 bis 22 festgelegt ist. Darüber hinaus wird das Signal CBNOK 10 an die Schaltungen abgegeben, die in dem Inkrement-Verknüpfungsschaltungsblock 304-8 enthalten sind. Wie dargestellt, umfaßt dieser Block die Schaltungen 304-80 bis 304-83. Diese Schaltungen führen das Signal CRINC 10 in ein binäres 1-Signal über, und zwar entsprechend folgendem booleschen Ausdruck:
CRINC 10 (Vergrößern von ROSAR) = (CBNOK 00 · CFUCB 00 · CRRES 00) · (CFFCB 00 + CBBOK 00).
Lese/Schreib-Speicherbereich 306
Die Fig. 3g und 3h zeigen im einzelnen den Lese- Schreib-Speicherbereich 306. Wie ersichtlich, enthält dieser Bereich einen Hilfsspeicher 306-2, der aus einer Anzahl von 256 · 1-Bit-Feldern von herkömmlichem Aufbau in der angegebenen Weise aufgebaut ist. Der Speicher 306-2 wird über ein Adreßregister 306-4 adressiert, welches eine Anzahl von Verstärker-Verriegelungsschaltungen enthält. Das Register 306-4 kann von ROSLR her über die Busleitung 306-6 auf ein Steuersignal CFSRL 10 hin geladen werden, das über ein UND-Glied und eine Verstärkerschaltung 306-8 erzeugt wird. In ähnlicher Weise können bestimmte Bitstellen des Registers 306-4 mit einem LCN-Bit von einem RWS-Einrichtungs- Anschlußregister 306-7 über einen Weg 306-5 geladen werden, und zwar auf ein Steuersignal CFDVP 10 hin. Wie aus Fig. 3g ersichtlich ist, wird das Register 306-7 von den ALU-Busleitungs-Verriegelungsschaltungen des Bereichs 316 her geladen. Wenn das Signal CFSRL 10 ein Binärsignal Null ist, kann das Register 306-4 über einen Weg 306-10 mit einer Adresse geladen werden, die von dem Registerspeicher 306-12 abgegeben wird. Dieses Register erhält eine Adresse von den Schaltungen eines Blocks 306-14, nachdem die Adresse von dem Register 306-4, die über einen Weg 306-20 abgegeben worden ist, um 1 erhöht worden und abgegeben worden ist, wenn ein Inkrement-Signal CWINC 10 und ein allein eine Inkrementierung bewirkendes Inkrement- Signal CWINO 10 als Binärsignale 1 auftreten. Die Schaltungen 306-16 bis 306-19 lassen das Signal CWINC 10 als Binärsignal 1 während sämtlicher Schreiboperationen, während der Suchoperationen und Leseoperationen gemäß folgendem Ausdruck auftreten:
CWINC 10 = CWWPA 10 · CWDTM 00 + CQSHO 10 · CQFPF 00 · CWPTM 10 + CFRED 10.
Die Schaltung 306-20 läßt das Signal CWINO 10 als Binärsignal 1 während der Suchoperationen auftreten, wenn das Signal CWTOG 10 ein Binärsignal Null ist und wenn das Signal CWINC 10 ein Binärsignal 1 ist.
Die drei Adressensignale hoher Wertigkeit von dem Adreßregister 306-4 werden den Chip-Freigabedekoderschaltungen 306-30 zugeführt, die für jede Reihe der Felder Freigabesignale erzeugen. Wenn die Schaltungen des Blocks 306-32 das Lesesignal CWRED 10 als Binärsignal 1 auftreten lassen, werden die Byte-Inhalte eines adressierten Speicherplatzes in ein örtliches Ausgaberegister 306-40 geladen. Die Schaltungen 306-33 bis 306-39 des Blocks 306-32 lassen das Signal CWRED 10 als Binärsignal 1 auftreten, wenn der Folgesteuer- Dekoder bzw. Ablaufsteuer-Dekoder des Bereichs 304 das Signal CEMSQ 08 erzeugt und wenn das Flipflop 306-36 das Signal CWRED 1 A in den Binärzustand 1 überführt.
Der Block 306-42 zeigt eine repräsentative Stufe der Daten- Eingabeschaltungen, die für die Eingabe eines Informationsbits in einen adressierten Speicherplatz benutzt werden. Die Schaltungen umfassen UND-Glieder 306-43 bis 306-57 und Verstärkerschaltungen 306-48, die in der dargestellten Weise angeschlossen sind. Die Verknüpfungsglieder 306-44 bis 306-46 werden dazu benutzt, eine Information von den Registern C, D und F des Pufferbereich her zu speichern. Das Verknüpfungsglied 306-47 wird dazu benutzt, eine Information in dem örtlichen Register 306-40 zu speichern. Die verschiedenen Übertragungssignale werden durch die Schaltungen des Blocks 306-70 erzeugt, die in Verbindung mit Fig. 3h noch beschrieben werden. Wie ferner gezeigt, kann das örtliche Register 306-40 von dem ALU-Bereich her geladen werden, und zwar über einen Weg 306-50, wenn der Festwertspeicher ein Signal CFNRL 10 als Binärsignal 1 abgibt.
Während eines Schreibteils einen Speicherzyklus ist eine Gatter- und Inverterschaltung 306-52 freigegeben, um einen Schreibimpuls abzugeben, der durch einen Schreibimpulsgenerator 306-54 erzeugt wird. Dadurch wird eine Reihe von acht Treiber-Inverterschaltungen (zum Beispiel CWWPL 00 bis CWWPL 07) gesteuert. Dies bewirkt, daß die Information in einen adressierten Speicherplatz eingeschrieben wird. Die Schaltung 306-52 ist freigegeben, wenn eine weitere Gatter- und Inverterschaltung 306-56 ein Schreibimpuls- Freigabesignal als Binärsignal 1 auftreten läßt.
Fig. 3h zeigt die Schaltungen 306-71 bis 306-88 des Blocks 306-70, die für die Erzeugung der verschiedenen Übertragungssteuer-Signale CWDTM 10, CWCTM 10, CWFTM 10 und CWNTM 10 dienen. Die UND-Glieder 306-76 bis 306-78 dekodieren die Zustände bestimmter Folgesteuerungs-Flipflops; sie setzen die Inverterschaltung 306-79 in den Stand, das Signal CWDTMOB als Binärsignal 0 auftreten zu lassen, und zwar für die Übertragung von Bytes von dem D-Register zu dem Lese/Schreib-Speicher während einer anderen Operation als der ersten Durchlauf-Suchoperation. Dies bewirkt seinerseits, daß die UND-Glied- und Inverterschaltung 306-80 das Signal CWDTM 10 als Binärsignal 1 auftreten läßt. In ähnlicher Weise bewirkt der Festwertspeicher durch Abgabe des Signals CEMSQOA als Binärsignal Null eine Übertragung von Bytes von dem D-Register auf die Dekodierung eines "OA"-Werts hin, der in dem Unteroperations- Codefeld eines RWS-Mikrobefehls enthalten ist.
Die Schaltungen 306-81 bis 306-86 dekodieren die Zustände bestimmter Folgesteuerungs-Flipflops, um das Signal CWCTMOB als Binärsignal Null auftreten zu lassen, wenn Bytes aus dem C-Register zu dem Lese/Schreib-Speicher während einer ersten Durchlauf-Suchoperation übertragen werden. In ähnlicher Weise führt der Festwertspeicher das Signal CEMSQ 09 als Binärsignal Null auf die Decodierung einer "09" in dem Unteroperationscodefeld eines RWS-Mikrobefehls ab. Dies ermöglicht die Übertragung von Bytes aus dem C-Register zu dem Lese/Schreib-Speicher hin.
Die UND-Glied- und Inverterschaltung 306-88 ermöglicht das Schreiben des Inhalts des örtlichen Lese/Schreib- Speicherregisters in den Lese/Schreib-Speicher zurück, und zwar auf die Decodierung von "OB" oder "OC" in dem Unteroperationscodefeld bzw. Suboperationscodefeld eines RWS- Mikrobefehls. Die UND-Glieder 306-71 bis 306-74 führen das Übertragungssignal CWFTM 10 in ein Binärsignal 1 während Schreib-Zählungs- oder Kennzeichenoperationen über, wobei Bytes von dem Sprungzähler während Suchoperationen übersprungen werden. Dabei erfolgt eine entsprechende Signalerzeugung während Lese-Zähl- oder Kennzeichenoperationen, wenn ein Byte aus dem F-Register übertragen wird.
In Fig. 3h sind ferner die Verknüpfungsschaltungen des Blocks 306-100 gezeigt, die zur Erzeugung eines Umschalt- Signals CWTOG 10, eines Einzel-Umschaltsignals CWTGO 10 und eines Umschalt- und Inkrement-Signals CWTIC 10 verwendet werden. Diese Schaltungen bringen durch die Erzeugung des Signals CWTOG 10 die Eigenschaft mit sich, den Inhalt des RWS-Adressenregisters um 512 Speicherstellen innerhalb einer Taktzeit (PDA) zu erhöhen. Diese Anordnung erleichtert die Speicherung einer Information von zwei Quellen während der Suchoperationen; dies bedeutet, daß diese Anordnung die unmittelbare Speicherung der Zählerstellungs- und Kennzeichenfeld-Bytes von einer ausgewählten Einrichtung in einer ersten Gruppe von Speicherstellen (Null-511) und die Speicherung von Suchargument-Bytes von der Eingabe/Ausgabe-Steuereinrichtung in einer zweiten Gruppe von Speicherstellen (512-1023) ermöglicht. Die Bitstelle zweithöchster Wertigkeit (CWS 01) wird zwischen zwei Zuständen "umgeschaltet", um verknüpfungsmäßig die Speicheradresse um 512 Stellen zu erhöhen/zu verringern, da sie einen Positionswert von 512 besitzt.
Die Umschalt-Verknüpfungsschaltungen des Blocks 306-100 enthalten UND-Glieder 306-1 bis 306-14, eine Verstärker- Schaltung 306-105 und die Inverterschaltung 306-106. Das Umschaltsignal CWTOG 10 wird auf die Dekodierung der Zustände bestimmter Ablaufsteuerungs-Flipflops hin erzeugt. Die UND-Glieder 306-101 bis 306-104 führen das Signal CWTOG 10 im besonderen in den geeigneten Zustand über, und zwar für die Speicherung eines Kennzeichen-Bytes, das in dem F-Register gespeichert ist. Dies erfolgt während einer Suchoperation nicht im ersten Durchlauf, um ein in dem D-Register gespeichertes Byte während irgendeiner Suchoperation in dem Vergleicherzyklus zu speichern, wenn ein Zeichensetzungs-Bit in einem vorhergehenden Lesezyklus nicht ermittel worden ist, bzw. für die Speicherung eines in dem C-Register enthaltenen Bytes im Zuge des ersten Durchlaufs in dem Speicherzyklus und für das Auslesen eines Suchargument-Bytes aus dem Lese/Schreib- Speicher während einer Suchoperation, die nicht im ersten Durchlauf erfolgt.
Die UND-Glied- und Verstärkerschaltungen 306-110 und 306-111 des Blocks 306-100 verknüpfen das Umschaltsignal CWTOG 10 mit Inkrement-Signalen CWINC 10 und CWIC 00 in der dargestellten Weise, um ein einziges Umschaltsignal CWTGO 10 und ein Umschalt- und Inkrement-Signal CWTIC 10 zu erzeugen. Ist das Inkrement-Signal CWINC 10 in den Binärzustand 1 gesetzt bzw. tritt es als Binärsignal 1 auf, so wird das einzige Umschaltsignal CWTGO 10 im Binärzustand Null gehalten. Auf diese Weise ist ein Zugriff zu der nächsten Gruppe der 512 Speicherplätze verhindert. Das UND-Glied 306-20 gemäß Fig. 3g läßt das einzige Schrittsignal CWINO 10 als Binärsignal Null dann auftreten, wenn das Signal CWTOG 10 ein Binärsignal 1 ist. Dadurch kann die Adresse von den Inkrement-Verriegelungsschaltungen in die Adreßregister-Flipflops geladen werden. Wenn CWSO 110 des Adreßregisters in ein Binärsignal Null umzuschalten ist und die Adresse um 1 erhöht wird, schaltet das UND-Glied 306-110 das Signal CWT 1 C 10 in ein Binärsignal 1 um.
Mehrzweckregister-Bereich 314 und Rechenverknüpfungseinheit- Bereich 316
In Fig. 3i sind die Bereiche 314 und 316 im einzelnen dargestellt. Dabei ist ersichtlich, daß ALU eine Haupt- Rechen- und Verknüpfungseinheit (ALU) 316-2 und eine Hilfs- ALU-Einheit 316-4 zusammen mit zugehörigen Betriebsauswahl- Eintrag- und Ausführungsfreigabe-Schaltungen enthält (zum Beispiel den Schaltungen des Blocks 316-6). Darüber hinaus sind Paritätsfehlerprüfschaltungen 316-6 vorgesehen. Da die Hilfs- ALU-Einheit 316-4 lediglich dazu dient, die Operation der Haupt-ALU-Einheit 316-2 für Prüfzwecke zu verdoppeln, brauchen ihre zugehörigen Schaltungen nicht erläutert zu werden, und außerdem braucht ihre Arbeitsweise nicht beschrieben zu werden.
Die Haupt-ALU-Einheit 316-2 vermag sechzehn Verknüpfungsoperationen oder zweiunddreißig Rechenoperationen auf die Abgabe bestimmter Kombinationen von Eingangssignalen auszuführen, die ihren Eintrag-(CIN), Ausführungsfreigabe- (CEN)- und Betriebssteuerungs- (M 0-M 3)-Eingangsanschlüssen zugeführt werden. Die ALU-Einheit wird für die Aufnahme von A- und B-Operandensignalen durch die Schaltungen 316-62 bis 316-65 freigegeben, die das Freigabesignal CACEN 00 als Binärsignal auftreten lassen. Wenn weder eine Verknüpfungsoperation noch eine Rechenoperation ausgeführt wird, arbeitet die ALU-Einheit 316-2 in einem Subtraktionsbetrieb (das heißt in einem Betrieb, der normalerweise während der Such- und Fehlerfeststelloperationen benutzt wird). Dies bedeutet, daß der natürliche Zustand der ALU-Einheit bei Fehlen von anliegenden Signalen an den Betriebssteuerschaltungen gegeben ist mit f=A-B-1, wobei f = das Ergebnis ist. Die Betriebsartsignale, die der ALU-Einheit zugeführt werden, werden insbesondere als "0110"-codiert. Dies versetzt die ALU-Einheit in den Stand, das gewünschte Ergebnis zu erzeugen (siehe Fig. 4f). Die ALU-Einheit subtrahiert die A- und B-Operanden durch Ausführung einer Einser-Komplement-Addition und Erzeugung eines Ergebnisses entsprechend A-B-1 in den Stufen CAF 00 bis CAF 07. Das Fehlen eines Eintragsignals bewirkt, daß ein erzwungenes Eintragssignal dem Eintrag-Eingangsanschluß Cin zugeführt wird. Das Ergebnis wird seinerseits an die Ergebnis-Busleitungs- Verriegelungsschaltungen 316-10 und an die Ergebnis- Verriegelungsschaltungen 316-12 abgegeben. Dies erfolgt auf die Abtastung durch ein Abtastsignal CASTR 10 hin, das durch die Schaltungen eines Abtast/RST-Steuerblocks 316-20 erzeugt wird. Die an den A=B-Ausgangsanschlüssen beider ALU-Einheiten auftretenden Ausgangssignale werden mit Hilfe einer UND-Schaltung des Blocks 316-8 verglichen, um den Vergleich bzw. die Übereinstimmung zu kontrollieren.
Während einer Verknüpfungsoperation wird das Unteroperationscodefeld des Mikrobefehls (das heißt CRNO 410-CRNO 710) an den Dekoder 316-60 abgegeben, und zwar von dem örtlichen ROS-Register des Bereichs 304. Die Eingangssignale CRNO 410 bis CRNO 710 bewirken zusammen mit den Abtast- bzw. Austastsignalen CASTR 10 und CASTR 00 von der Steuereinrichtung 316-20, daß der Decoder 316-60 die in Frage kommenden Betriebssteuereingangssignale erzeugt, die ihrerseits an die Eingänge M 0 bis M 3 abgegeben werden.
Wie oben erwähnt, veranlassen diese Signale die Haupt- ALU-Einheit, die angegeben Verknüpfungsoperation auszuführen. Der A-Operand (AOP) wird von dem Allzweckregister- Speicherplatz oder dem "heißen" Register abgegeben, welches die im A-Operationscodefeld des Mikrobefehlsworts bezeichnete Adresse aufweist (das sind die Bits N 23 bis N 26). Der B-Operand (BOP) wird abgegeben von:
  • 1) Einem Allzweckregister oder "heißen" Register, das durch das B-Op-Feld des Mikrobefehlsworts angegeben ist (das sind die Bits N 19 bis N 22), oder
  • 2) von einer Acht-Bit-Konstante, die durch den Mikroprogrammierer (das sind die Bits 15 bis 22 des in dem örtlichen ROS-Register gespeicherten Mikrobefehlsworts) angegeben ist, wenn das das Mikrooperationscodeformat anzeigende Bit eine binäre 1 ist. Wie aus Fig. 3h hervorgeht, werden diese Signale über die in dem Block 314-2 enthaltene B-Operand-Multiplexer-Auswahlschaltung abgegeben. Zu diesem Zeitpunkt veranlassen die Bits N 0 bis N 2 des Operationscodefelds zusammen mit den Bits 19 bis 22, daß ein Dekoder innerhalb des Blocks 314-2 die in Frage kommenden Auswahlsignale an die B-Operand- MUX-Schaltung 314-22 abgibt.
Nach Ausführung dieser bezeichneten Verknüpfungsoperationen gibt die Haupt-ALU-Einheit 316-2 das Ergebnis an die Ergebnis- Busleitungsschaltung 316-10 und an die Schaltungen eines Ergebnis-Test- und Speicherblocks 316-30 ab. Wie aus Fig. 3i ersichtlich ist, enthalten die Schaltungen 316-30 eine Vielzahl von Flipflops 316-300, 316-310 und 316-330, und zwar zusammen mit Gatter- oder Verknüpfungsschaltungen 316-301 bis 316-304, Schaltungskreisen 316-311 bis 316-325 und Schaltungskreisen 316-331 bis 316-333, die in der dargestellten Weise angeschlossen sind. Das Gleichheits-Speicher-Flipflop 316-300 wird in seinen Binärzustand 1 gesetzt, wenn die ALU-Einheit das Gleichheitssignal CAEQA 10 in ein Binärsignal 1 überführt, und zwar zum selben Zeitpunkt, zu dem das Abtastsignal CASTR 10 in ein Binärsignal 1 übergeht. Das Flipflop 316-300 wird in einen Binärzustand Null zurückgestellt, wenn das Signal CAEQA 10 in ein Binärsignal Null während eines Vergleichszeitintervalls überführt wird (das heißt dann, wenn das Signal CACMT 10 ein Binärsignal 1 ist). Das die Tatsache, daß A größer ist als B, speichernde Flipflop 316-310 wird in seinen Binärzustand 1 umgeschaltet, wenn das Gleichheits-Signal CAEQA 10 ein Binärsignal Null ist und wenn ein Ausführungssignal CAACO 10 ein Binärsignal 1 ist. Das Flipflop 316-310 wird in den Binärzustand Null zurückgestellt, wenn das Abtastsignal CASTR 10 in ein Binärsignal 1 überführt wird. Es sei darauf hingewiesen, daß die Ausgangssignale von den Flipflops 316-300 und 316-310 zu den Schaltungskreisen 316-305 bzw. 316-314 wieder zurückgeleitet werden. Wenn ein Flipflop in den Binärzustand Null zurückgestellt wird, veranlaßt es, daß das entsprechende Signal der Signale CAAEB 10 und CAAGB 10 ebenfalls als Binär- Signal Null auftritt. Wie oben erwähnt, werden die Signale CAAEB 10 und CAAGB 10 den Verzweigungskreisen zugeführt. Diese Signale zeigen an, ob der Vergleich während einer Suchoperation erfolgreich war. Das Ausführungs-Speicher- Flipflop 316-330 wird in seinen Binärzustand 1 gesetzt, wenn durch die Haupt-ALU-Einheit ein Ausführungssignal erzeugt wird.
Das in den Ergebnis-Busleitungs-Schaltungen 316-10 enthaltene Ergebnis wird dem Festwertspeicher-Steuerbereich 304 und dem Mehrzweckregisterbereich 314 zugeführt. Wie erwähnt, verbleibt das Ergebnis entweder in den Ergebnis- Busleitungsschaltungen für eine nachfolgende Verzweigungs- Überprüfung, oder aber das betreffende Ergebnis wird an eines der 31 Register abgegeben, das durch die Bits N 10 bis N 14 eines Verknüpfungs- oder Rechen-Mikrobefehls bezeichnet ist (das ist das DOR-Mikrobefehlsfeld - siehe Fig. 4f und 4g). Die durch den Steuerblock 316-20 gebildeten, die Abtastung ermöglichenden Signale ermöglichen die Zurückstellung der Ergebnis-Schaltungen 316-12 und der Fehlerprüfschaltungen 316-8 durch ein Rückstellsignal CARST 00. Wie aus Fig. 3i ersichtlich ist, enthalten diese Schaltungen eine Vielzahl von Gatter- bzw. Verknüpfungsschaltungen 316-21 bis 316-28, die in der dargestellten Weise angeschlossen sind. Die UND-Gatter- und Inverterschaltung 316-21 arbeitet in der Weise, daß ein eine Abtastung ermöglichendes Signal CASTA 10 erzeugt wird, welches die Speicherung des ALU-Ergebnisses für sämtliche Rechen-Mikrobefehle, Verknüpfungs-Mikrobefehle und normale bedingte Verzweigungs-Mikrobefehle ermöglicht; eine Ausnahme hiervon bildet jedoch ein Verknüpfungs-Mikrobefehl, dessen Bits 4 bis 7 alle binäre Einsen sind. Dies ermöglicht die Abgabe des Ergebnisses eines vorhergehenden Mikrobefehls ohne die Zerstörung der gespeicherten Information. Im Falle einer Verknüpfungsoperation ist das Signal CFLOG 10 gleich eine binäre 1, im Falle einer Rechenoperation ist das Signal CFARO 10 eine binäre 1, und im Falle einer normalen bedingten Verzweigungsoperation ist das Signal CFNCB 10 eine binäre 1. Diese Signale veranlassen ihrerseits die Verstärkerschaltung 316-25 und die Inverterschaltung 316-26, die in Frage kommenden Abtastsignale zu erzeugen. Die UND-Gatter- und Verstärkerschaltung 316-28 ist in der Weise betrieben, daß das Rückstellsignal CARPF 00 in den richtigen Zustand auf das Rückstellsignal CARES 00 und das Abtastsignal CASTR 00 gebracht wird, wie dies angedeutet ist. Entsprechend einer Verknüpfungsoperation veranlassen die Bits CRN 04 bis CRN 07 zusammen mit den Abtastsignalen, daß der Dekoder 316-60 die in Frage kommenden Betriebssteuer-Eingangssignale während einer Rechenoperation erzeugt. Darüber hinaus wird ein Eintrag- Signal CACIN 00 aus den Eintrag-Bits CRN 08 bis CRN 09 des Mikrobefehlsworts erzeugt. Hierfür dienen nicht näher dargestellte Schaltungen. Die Ergebnisse werden dem Eintrag- Anschluß (CIN) zugeführt. In Abhängigkeit von der Codierung der erwähnten Mikrobefehls-Wortbits geben die an die Anschlüsse CIN und M 0 bis M 3 abgegebenen Signale die bestimmte auszuführende Rechenoperation an. Die A- und B-Operanden werden von den Quellen abgeleitet, die oben in Verbindung mit der Beschreibung einer Verknüpfungsoperation erwähnt worden sind. In entsprechender Weise kann das in die Ergebnis-Verriegelungsschaltungen 316-12 geladene und an die Ergebnis-Busleitung abgegebene Ergebnis abgeführt oder für die Überprüfung gespeichert werden, wie dies durch die Bits des DOR-Felds des Mikrobefehlsworts angegeben ist.
Wie erwähnt, führt die ALU-Einheit während einer Suchoperation sämtliche Rechenoperationen aus, die für die Verarbeitung der Zähl-, Kennzeichen- und Datenfeldteile einer Aufzeichnung während der entsprechenden Zähl-, Kennzeichen- oder Datefeld-Suchoperationen erforderlich sind. Die ALU- Einheit wird in den Stand versetzt, die gewünschte Verknüpfungsoperation (A-B-1) auszuführen, während der der B-Operand, der von der B-Operand- Multiplexer-Auswahlschaltung 314-22, von dem C-Register oder dem Lese/Schreib-Speicherbereich erhalten worden ist, mit dem A-Operand verglichen wird, der von der A-Operand- Multiplexer-Schaltung 314-22 über das D-Register erhalten wird. Zu Anfang bewirkt ein Verknüpfungs-Mikrobefehl, der so codiert ist, daß er eine Operation F=1 angibt, (siehe Fig. 4f), daß die ALU-Einheit das Gleichheitssignal CAEQA 10 als Binärsignal 1 abgibt. Gleichzeitig wird das Abtastsignal CASTR 10 in ein Binärsignal 1 überführt, wodurch das für den Gleichheits-Vergleich dienende Flipflop 316-300 in den Binärzustand 1 umgeschaltet wird. Während der Suche werden keine weiteren Rechen- oder Verknüpfungs- Mikrobefehle ausgeführt. Deshalb bleibt das Abtastsignal CASTR 10 ein Binärsignal Null. Am Ende der Suchoperation wird ein FCB-Mikrobefehl benutzt, um den Zustand der Signale CAAEB 10 und CAAGB 10 zu überprüfen, um festzustellen, ob ein erfolgreicher Vergleich vorgelegen hat. Der Mikrobefehl führt das Abtastsignal CASTR 10 außerdem in ein Binärsignal 1 über, welches die ALU-Schaltungen zurückstellt.
Betrachtet man nun das Allzweck-Register und die Multiplexer- Schaltungen des Blocks 314, so zeigt sich aus Fig. 3i, daß die Allzweckregister in zwei Festkörper-Speichern 314-3 und 314-4 enthalten sind. Diese Speicher, die von herkömmlichem Aufbau sind, sind über ihre entsprechenden Adreßregister 314-6 und 314-8 adressierbar. Diese Register nehmen Signale unmittelbar von dem örtlichen Festwertspeicher- Register her auf (das sind CRN 20 bis CRN 22 und CRN 12 bis CRN 14). Diese Register liefern die Adresse für das Allzweckregister. Die Inhalte des Adreßregisters werden dann an ein Auswahlregister abgegeben, woraufhin die Abgabe an die ALU-Einheit erfolgt.
Die Adressenauswahlschaltungen, die in dem Block 314-20 enthalten sind, decodieren die Bits N 19 bis N 22 und liefern Ausgangs-Auswahlsignale BM 0 bis BM 2 als Eingangssignale für die B-Operand-Multiplexerschaltungen 314-22. Die Multiplexer- Ausgangssignale von dem ausgewählten Quellenregister her werden dem Auswahlregister 314-28 zugeführt, wenn die Steuerschaltungen des Blocks 314-34 das Signal CABBA 00 in ein Binärsignal 1 überführen. Dies erfolgt auf die spezielle Codierung der Bits N 0 bis N 3 und N 19, die bestimmen, ob die Information aus einem Allzweckregister oder einem der übrigen Register des Systems als C-Operand- Quelle dient. Die in dem MUX-Adressenspeicherblock 314-21 enthaltenen Flipflops halten eine Anzeige der Bits N 20 bis N 22 fest, und zwar für eine kontinuierliche Auswahl der betreffenden Quelle während einer Suchoperation. Im einzelnen wird das Bit 19 den Steuerschaltungen 314-34 zugeführt, die bestimmen, welche der Zulassungsfunktionen CABBA 10 oder CABBA 00 in eine binäre 1 überführt wird, um entweder das adressierte Allzweckregister oder das Register auszuwählen, das mit den Multiplexerschaltungen des Blocks 314-22 verbunden ist. In ähnlicher Weise geben die Multiplexer-Adressenauswahlschaltungen des Blocks 314-26 die Steuersignale AM 0 bis AM 2 an die A-Operand-Multiplexerschaltungen des Blocks 314-24 ab, um eines der Register als Quelle des A-Operand auszuwählen. Außerdem halten die in dem MUX-Adressenspeicher 314-27 enthaltenen Flipflops eine Anzeige der Bits N 24 bis N 26 für eine weitere Bezugnahme während einer Suchoperation fest. Die in dem Block 314-32 enthaltenen Steuerschaltungen sind auf die Bits N 0 bis N 2 und N 23 hin derart betrieben, daß Zulassungs-Signale CAABA 10 und CAABA 00 erzeugt werden, um das Ausgangssignale eines adressierten Allzweckregisters oder eines der Register auszuwählen, die mit den Multiplexerschaltungen 314-24 verbunden sind. Wenn das Signal CAABA 10 als Binärsignal 1 auftritt, wird der Inhalt eines Adressen-Allzweckregisters dem Wähler 314-30 zugeführt. Wenn demgegenüber das Zulassungssignal CAABA 00 als Binärsignal 1 auftritt, wird der Inhalt eines bezeichneten Registers der Register ausgewählt und an den Wähler 314-30 abgegeben. Wenn eine Information in ein Allzweckregister jedes der Speicher 314-2 und 314-4 eingeschrieben wird, werden, wie oben erwähnt, die Adressen durch die Bits N 12 bis N 14 bezeichnet (das heißt durch das DOR-Feld eines Verknüpfungs- oder Rechen- Mikrobefehls). Ein Einschreibvorgang erfolgt auf ein Impulssignal CLK hin, das durch den Schreibgenerator 308-4 erzeugt wird.
Daten- und Spaltzählerbereich 318
Fig. 3j zeigt im einzelnen die Verknüpfungsschaltungen, die den Bereich 318 bilden. Aus Fig. 3j geht dabei hervor, daß die Verknüpfungsschaltungen für den Datenzähler (DAC) einen Hauptzähler 318-2 und einen Hilfszähler 318-4 zusammen mit deren die Zählerstellung verkleinernden Steuerschaltungen 318-6 und Fehlerprüf-Verknüpfungsschaltungen 318-8 enthalten. Zusätzlich enthält der Bereich Zählverknüpfungsschaltungen, die so geschaltet sind, daß ein Signal abgegeben wird, wenn die Zählerstellung des Datenzählers auf Null verringert worden ist. Wie dargestellt, enthalten diese Schaltungen innerhalb des Blocks 318-10 einen Dekoder 318-100, der von herkömmlichem Aufbau ist und der so betrieben ist, daß die Signale CDDCZ 1 A als Binärsignale 1 auftreten, wenn der betreffende Dekoder feststellt, daß die Zählerstellung des Datenzählers sich auf Null vermindert hat. Dies bewirkt seinerseits, daß ein UND-Glied 318-102 des Flipflops 318-104 in den Binärzustand 1 umschaltet, und zwar wenn eines der UND-Glieder 318-108 bzw. 318-110 eine Verstärkerschaltung 318-112 veranlaßt, das Signal CCSCZ 10 als Binärsignal 1 abzugeben. Das Flipflop 318-104 wird über ein UND-Glied 318-106 in seinen Binärzustand Null zurückgestellt, wenn ein Haltesignal CCCZH 10 als Binärsignal Null auftritt. Wie zuvor kurz beschrieben, werden die Zähler 318-2 und 318-4 auf ein Eingabe/Ausgabe-Mikrobefehlswort hin geladen. Dabei wird insbesondere ein Acht-Bit-Zählfeld in diese Zähler von dem örtlichen Festwertspeicher-Register her (das sind die Bits CRN 14 bis CRN 22) oder von dem örtlichen Lese/Schreib-Speicher-Register her geladen (das heißt von den Stufen CWNR 1 bis CWNR 7). Ein Satz dieser Sätze von Signalen wird an eine Zähler-Busleitung abgegeben und dann in die Zähler geladen, und zwar gleichzeitig mit der Absenkung des Impulssignals CLK und der Signale CCDUL 00 (DAC-obere Ladung) sowie des Signals CCDLL 00 (DAC-untere Ladung). Die Auswahl der genau festgelegten Zählfelder wird durch das Setz-Zählfeld des Eingabe/Ausgabe- Mikrobefehlsworts bewirkt. Dieses Zählfeld bewirkt die Erzeugung der Signale CFCFR 10 und CRCFM 10.
Während des Betriebs werden die Zählerstellungen beider Zähler durch ein sogenanntes Dekrement-Signal CCDEC 10 jeweils dann verringert, wenn ein Byte zu/von dem Einrichtungsadapter übertragen wird. Obwohl das Verringern der Zählerstellung während einer Schreiboperation, einer Lese/Suchoperation oder einer Ladeoperation erfolgen kann, ist lediglich die UND-Schaltung angegeben, die das Dekrement- Signal für eine Lese/Suchoperation erzeugt (das ist die UND-Gatter- und Verstärkerschaltung 318-60). Die Fehlerprüf- Verknüpfungsschaltungen 318-8 enthalten einen herkömmlichen Vergleicher, der den Inhalt beider Zähler vergleicht. Im Falle der Feststellung einer Nicht-Übereinstimmung geben diese Schaltungen ein Fehlersignal CCDCE 10 als Binärsignal 1 ab.
Wie aus Fig. 3j hervorgeht, enthält dieser Bereich ferner einen Hauptspalt-Zähler 318-12, einen Hilfsspalt-Zähler 318-14 zusammen mit Dekrement-Steuerschaltungen 318-16 und Fehlerprüfschaltungen 318-18. Außerdem enthält der Bereich 318, wie dargestellt, eine Spalt-Dekoderschaltung 318-20, die ein Ausgangssignal erzeugt, welches anzeigt, daß die Zählerstellung des Hauptspaltzählers auf Null verringert worden ist. Die beiden Zähler 318-12 und 318-14 werden gleichzeitig mit einer Acht-Bit-Konstante von der ALU- Ergebnis-Busleitung her geladen, und zwar auf das CLK-Impulssignal hin, wenn die Signale CCGLL 00 (GAC-untere Ladung) und CCGUL 00 (GAC-obere Ladung) als Binärsignale Null auftreten. Das Laden erfolgt auf die Dekodierung eines Rechen- Mikrobefehls hin, der die Erzeugung des Signals CFGLL 10 bewirkt. Dies geschieht auf einen Rechen-Mikrobefehl hin. Während des Betriebs werden die Zählerstellungen beider Zähler durch das Signal CCGEC 10 verringert, das durch ein Flipflop 318-160 erzeugt wird. Dieses Flipflop wird über ein UND-Glied 318-162 auf das Signal CQCGP 10 hin gesetzt, das als Binärsignal 1 auftritt. Das Flipflop 318-60 wird über ein UND-Glied 318-164 am Ende einer Taktimpulszeit (PDA) zurückgestellt. Die Inhalte beider Zähler werden mittels einer herkömmlichen Vergleicherschaltung verglichen, die in dem Block 318-18 enthalten ist. Wird eine Nicht- Übereinstimmung festgestellt, so gibt die Vergleicherschaltung ein Fehlersignal CCGCE 10 als Binärsignal 1 ab.
Einrichtungs-Ebenen-Schnittstellen-Steuerbereich 310
Unter Bezugnahme auf Fig. 3k wird der Bereich 310 im einzelnen beschrieben. Wie oben erläutert, besteht dieser Bereich aus einem integrierten Steueradapter 310-2 und aus Lese/Schreib-Multiplexer- und Pufferschaltungen, die in dem Block 310-3 enthalten sind. Wie aus Fig. 3k hervorgeht, enthält der Adapter 310-2 eine Vielzahl von Registern, die die Konditionierung des Adapters und einer ausgewählten Einrichtung ermöglichen. Diese Register enthalten ein Einrichtungs-Anschlußregister 310-1, ein Einrichtungs- Befehlsregister 310-4 und ein Adapter-Befehlsregister 310-6 sowie ein Parameter-Register 310-8. Jedes Register wird in einer speziellen Ablauffolge zur Speicherung einer Information freigegeben. Dabei werden insbesondere die verschiedenen Register für die Speicherung von Signalen durch Steuersignale CFDPL 10, CFDCL 10, CFACL 10 und CFPRL 10 freigegeben. Diese Signale werden aus der Dekodierung eine speziellen Felds eines Verknüpfungs-Mikrobefehls durch die DOR-Dekoderschaltungen des Bereichs 304 gewonnen. Wie dargestellt, werden die Register auf die Steuersignale hin von der ALU-Ergebnis-Busleitung des Blocks 310-3 geladen. Die Schreib-Multiplexerschaltung dient als Tasteinrichtung für sämtliche Schreiboperationen; sie erhält Eingangssignale von den verschiedenen Bereichen des Prozessors (zum Beispiel von dem F-Register des Pufferbereichs 302-50).
Das Einrichtungs-Anschlußregister 310-1 ist normalerweise das erste Register, das in einer vorgegebenen Ablauffolge geladen wird und das dazu benutzt wird, einer bestimmten Einrichtung eine Verknüpfungskanalnummer zuzuordnen. Dies bedeutet, daß die von der ALU-Ergebnis-Busleitung her zugeführten vier Bits niedriger Wertigkeit in das Einrichtungs- Anschlußregister geladen werden und daß ein Einrichtungs-Anschlußdekoder 310-10 diese Bits in eine Anzahl von Auswahlsignalen decodiert, von denen lediglich einige dargestellt sind. Diese Auswahlsignale werden zur Auswahl irgendeiner Speichereinrichtung von zwölf Massenspeichereinrichtungen verwendet. Das Parameter-Register 310-8 ist normalerweise das zweite Register, das geladen wird. Es wird von dem Lese/Schreib-Speicherbereich her mit der zuvor gespeicherten Einrichtungs-Parameter-Bytes- Information geladen, die für eine bestimmte Operation über die ALU-Einheit benötigt wird. Dieses Informations- Bytes wird durch die Adapter-Steuerschaltungen 310-12 decodiert und führt zur Erzeugung von Steuersignalen, die den Adapter veranlassen, in einem vorgegebenen Betrieb zu arbeiten. Da Einzelheiten für die vorliegende Erfindung nicht relevant sind, werden sie hier nicht gegeben.
Das Einrichtungs-Befehlsregister 310-4 erhält eine Information von der ALU-Einheit und leitet die Information unmittelbar an eine bezeichnete Einrichtung der Einrichtungen weiter, um den Befehl auszuführen (und zwar entsprechend der Auswahl durch den Einrichtungs-Anschluß- Dekoder 310-10). Das Adapter-Befehlsregister 310-6 ist normalerweise das letzte Register, das in der Ablauffolge geladen wird und das die Schaltungen innerhalb des Adapters 310-2 veranlaßt, den angegebenen Einrichtungsbefehl auszuführen. Die vier Bits A 1 AC 4 bis A 1 AC 7 niedriger Wertigkeit werden durch einen Adapter- Befehlsdekoder 310-14 decodiert, der Signale erzeugt, die zum Setzen verschiedener Markierungsleitungen der Schnittstelle oder zur Bezeichnung bestimmter Operationsarten innerhalb des Adapters verwendet werden. Die Bits Null bis 3 werden zur Steuerung von Gatterschaltungen abgegeben und zum Setzen verschiedener Steuer-Flipflops herangezogen, die in einem Block 310-16 enthalten sind. Diese Flipflops liegen fest, ob der Adapter eine Lese- Operation oder eine Schreiboperation auszuführen hat. Zusätzlich bestimmen die betreffenden Flipflops eine weitere Information in bezug auf den Operationstyp. Da eine Diskussion derartiger Schaltungen nichts mit der vorliegende Erfindung zu tun hat, ist sie hier auch nicht enthalten.
Wie aus Fig. 3k ferner hervorgeht, enthält der Adapter ein Schieberegister 310-18 sowie zugehörige Lese/Schreib-Takt- und Zählerschaltungen 310-20. Wenn in einem Serienbetrieb gearbeitet wird, wird die über eine Schnittstellenleitung SRI von der Einrichtung her zugeführte Information in das Schieberegister 310-18 unter der Steuerung einer Lesetaktschaltung eingeschoben, die von herkömmlichem Aufbau ist. Wenn das Einschieben erfolgt, wird die Zählerstellung eines in dem Block 310- 20 enthaltenen Bit-Zählers in jedem zweiten Bitintervall um 1 erhöht, da normalerweise ein Synchronisationsbit jedes Datenbit trägt. Wenn die Zählerstellung des Zählers auf einen vorbestimmten Wert erhöht worden ist, wie auf eine Zählerstellung 6 bei einem 6-Bit-Betrieb oder auf eine Zählerstellung 8 bei einem 8-Bit-Betrieb, bewirkt dies, daß das zusammengesetzte Zeichen parallel in einen Lese-Puffer 310-32 übertragen wird. Darüber hinaus veranlaßt diese Übertragung den Adapter 310-2, ein Daten- Verfügbarkeitssignal (A 1 DAV 10 tritt als Binärsignal 1 auf) zu erzeugen, was dem Prozessor-Folgesteuerungs- Verknüpfungsschaltungen des Bereiches 304 anzeigt, daß ein Datenbyte in dem Lesepuffer 310-32 gespeichert worden ist und für die Übertragung in das F-Register des Bereiches 302 bereitsteht. Auf die Feststellung des Daten-Verfügbarkeitssignals hin quittieren die Folgesteuerungs-Schaltungen des Bereiches 304 das Signal durch Abgabe eines Datenquittungssignals A 1 DAK 10 als Binärsignal 1. Damit dürfte ersichtlich sein, daß die Erzeugung der Signale A 1 DAV 10 und A 1 DAK 10 die Adapter- und Prozessor-Operationen miteinander zu synchronisieren gestattet.
Im Falle einer Schreiboperation bewirkt der Adapter 310-2 auf die Feststellung hin, daß Daten in dem F-Register gespeichert worden sind, daß das Einrichtungsabtastsignal DXDCS 10 als Binärsignal 1 auftrifft. Der in das Einrichtungs- Befehlsregister 310-4 geladene Befehl wird decodiert und ausgeführt. In ähnlicher Weise benutzt der Adapter die Signale A 1 DAK 10 und A 1 DAV 10 für die Abtastung, wenn ein Byte in dem F-Register gespeichert worden ist und für die Übertragung in einen Schreibpuffer 310-34 und sodann in das Schieberegister 310-18 bereitsteht, um jeweils ein Bit auf die Schnittstellenleitung SWO hinauszuschieben. Das Schieberegister 310-18 enthält, obwohl hierüber nichts gezeigt ist, Gatterschaltungen, die so angeschlossen sind, daß sie durch die Taktschaltungen 310-20 veranlaßt werden, die Bitübertragungen mit Synchronisationsbit abzuwechseln. Wenn der Adapter im Unterschied hierzu in einem Parallelbetrieb arbeitet, überträgt und empfängt er Informationsbytes von dem Schreibpuffer 310-34 bzw. dem Lesepuffer 310-32 über die Busleitungen S 10-D 17. In dieser Betriebsart übertragen die Leitungen SWO und SRI Abtastsignale.
Beschreibung des Betriebs
Unter Bezugnahme auf die Flußdiagramme gemäß Fig. 6a bis 6c wird nunmehr die Arbeitsweise der Anordnung gemäß der vorliegenden Erfindung, wie sie in Fig. 1, 2 und 3a bis 3k angegeben ist, beschrieben. Zunächst empfängt die Eingabe/Ausgabe-Steuereinrichtung 106-6 einen Eingabe/ Ausgabe-Befehl, der eine Such-Kennzeichenoperation angibt. Die Eingabe/Ausgabe-Steuereinrichtung 106-6 decodiert den Befehl und löst dann eine Übertragung von Eingabe/ Ausgabe-Befehlsbytes an den Massenspeicher-Prozessor 300 aus. Die Bytes enthalten ein Verknüpfungskanalnummern- (LCN)-Byte und Bytes von einem oder mehreren Kanalbefehlsworten. Das LCN-Byte zeigt an, welcher Kanal in die Ausführung des Befehls einzubeziehen ist. Die Befehlsworte enthalten ein Befehlscodebyte, welches den Operationstyp angibt, Zählbytes, die die Anzahl der zwischen dem Hauptspeicher und dem Prozessor zu übertragenden Bytes angeben, und Adressenbytes, die eine Hauptspeicher-Startadresse für die Übertragung angeben.
Nach Empfang von Signalen durch die Eingabe/Ausgabe-Steuereinrichtung, welche anzeigen, daß der Massenspeicher- Prozessor 300 bereit ist, Befehlsbytes für die Ausführung der Operation aufzunehmen, beginnt die betreffende Steuereinrichtung mit der Übertragung der Bytes, und zwar beginnend mit dem LCN-Byte. In Fig. 6a ist in vereinfachter Form ein Teil einer Kanalprogramm-Auslöseroutine gezeigt, die im Zuge der Verarbeitung eines nächsten Befehls benutzt wird. In Fig. 6a und ebenso in den übrigen Flußdiagrammen sind die verschiedenen Mikrobefehle durch "relative" Adressen oder Verknüpfungsadressen bezeichnet, die den Namen der Routine und eine Buchstaben-Nummer enthalten (zum Beispiel AO 700). Die Mikrobefehle jeder Routine werden nacheinander physikalischen Adressen in dem Festwertspeicher zugeteilt, und zwar in Übereinstimmung mit der alphanumerischen Reihenfolge ihrer relativen Adressen. Der Massenspeicher-Prozessor 300 bereitet sich für die Aufnahme des Befehls durch Ausführung eines Eingabe/ Ausgabe-Mikrobefehls vor, der Unterbefehlssignale erzeugt, die das Setzen der TRM- und RQD-Flipflops und das Laden des PSI-Zählers mit einer bestimmten Zählerstellung (das ist die Zählerstellung 3) bewirken. Das LCN-Byte wird in den PSI-Schreibpuffer 302-12 auf das Signal PAODV 10 hin geladen, das als Binärsignal 1 durch die Prozessor- PSI-Schaltungen abgegeben wird. Die Schreibpuffer-Inhalte werden in das A-Register geladen, wenn das Signal CDPTA 10 mit hohem Pegel von den Steuerschaltungen 302-70 abgegeben wird. Danach führen die Steuerschaltungen 302-70 nacheinander die Signale CDATB 10, CDBTC 10 und CDCTD 10 in Binärsignale 1 über.
Wie aus Fig. 6a ersichtlich ist, überprüft der Festwertspeicher während des Übertragungsintervalls den Inhalt des C-Registers bezüglich des Eintreffens des LCN- Bytes, und zwar durch Ausführung eines schnellen Verzweigungs- Mikrobefehls AO 700. Wenn das C-Register geladen ist, hält der Speicher die Prüfung an, und sodann wird der nächste Mikrobefehl AO 600 für die Speicherung des LCN-Bytes in einem der Allzweckregister (das heißt GPR Nr. 0) vorgerückt. Danach führt der Prozessor 300 einen weiteren Mikrobefehl AO 850 aus, der eine Bitdarstellung des LCN- Bytes, welches in dem Allzweckregister Nr. Null gespeichert ist, an das Einrichtungs-Adapter-Anschlußregister über die ALU-Einheit überträgt. Gleichzeitig wird das LCN-Byte über die ALU-Einheit übertragen und in dem RWS-Einrichtungs- Anschlußregister gespeichert.
Es sei angenommen, daß sich das LCN-Bytes auf einen Befehl eines zuvor aktivierten Kanalprogramm bezieht. Deshalb ist bezüglich der Einrichtung angenommen, daß sie "belegt" worden ist. Ferner wird der Bit-Zustand dieser Einrichtung erhalten. Demgemäß sind in dem Flußdiagramm nach Fig. 6a derartige Einzelheiten weggelassen.
Die Prozessor-Hardware verringert die Zählerstellung des PSI-Zählers um 1 durch das Signal STI, und zwar jedesmal, wenn er ein Byte aufnimmt. Der Mikroprogramm-Steuerspeicher wartet, bis das nächste Byte in das C-Register geladen ist. Durch Ausführen einer ähnlichen Folge von Operationen speichert der Prozessor 300 das Befehlscodebyte in einem anderen Allzweckregister (das ist GPR Nr. 9). Die Prozessor- Hardware beendet die Routine-Ablauffolge auf die Aufnahme des dritten Bytes hin, welches ein Kennzeichen-Byte ist. Dieses Byte wird in ein anderes Allzweckregister geladen. Zu diesem Zeitpunkt hat die Prozessor-Hardware die Zählerstellung des PSI-Zählers auf Null verringert. Dadurch wird das Ende der Übertragung signalisiert.
Der Prozessor 300 tritt in eine Befehls-Decodier-Ablauffolge ein, in der er die Bits des Befehlscodes überprüft. Dies bedeutet, daß er einen mit CMDEC AO 700 bezeichneten Mikrobefehl ausführt, gemäß welchem er den Befehlscode aus dem Mehrzweckregister Nr. 9 holt und in die ALU- Verriegelungsschaltungen lädt. Während einer Aufeinanderfolge von Verzweigungs-Mikrobefehlen überprüft der Prozessor sodann den Befehlscode, wobei zu einem Zeitpunkt jeweils ein Bit oder eine Anzahl von Bits geprüft wird, und sodann erfolgt auf die Ergebnisse der Prüfung hin eine Verzweigung zum Anfang einer geeigneten Mikroprogrammroutine für die Ausführung des Befehls. Die Bits werden sequentiell überprüft, um leichter das Auftreten von sogenannten "unberücksichtigt zu lassenden" Bits festzustellen (das sind diejenigen Bits, die die Auswahl einer Routine nicht benötigen.
Es sei angenommen, daß eine durch ein Kanalprogramm bezeichnete Eingabe/Ausgabe-Operation eine Suchoperation ist, bei der die Bytes des Kennzeichenfeldteils der Aufzeichnung gemäß Fig. 5 aus der Massenspeichereinrichtung gelesen und mit den Suchargument-Bytes verglichen werden, die der Prozessor von der Eingabe/Ausgabe-Steuereinrichtung erhält. Aus Fig. 6b ergibt sich dabei, daß der Festwertspeicher den Prozessor veranlaßt, eine Prüfung auszuführen, um zu bestimmen, ob er in bezug auf die Aufzeichnung, die gelesen wird, "orientiert" ist. Im einzelnen ist zu bemerken, daß der Prozessor zuvor eine Orientierungsinformation in einem Mehrzweckregister gespeichert hatte, welche Information die relative Stellung des Massenspeichermediums und des Formats der Aufzeichnung, die von einer Spur gelesen wird, angibt. Dabei prüft der Prozessor diese Information (das heißt ein bestimmtes Bit) um zu bestimmen, wann eine durch den Befehl bezeichnete Operation auszuführen ist. Wenn die verschiedenen Felder innerhalb einer Aufzeichnung gelesen werden, werden die Bits der Orientierungsinformation eines in dem Allzweckregister bzw. Mehrzweckregister gespeicherten Steuer-"Arbeitsbytes" aktualisiert.
Aus Fig. 5a und 5b geht hervor, daß der Anfang einer Spur durch eine Indexmarkierung angezeigt wird. Wenn die ausgewählte Massenspeicher-Einrichtung dem Adapter signalisiert, daß sie den Anfang der Spur ermittelt hat, wird die Leitung IDX in den Binärzustand 1 gebracht. Der Adapter gibt seinerseits ein Signal an den Prozessor ab, der ein erstes Bits in dem Steuerarbeitsbyte in ein Binärsignal 1 überführt, wodurch die Aufnahme eines Index-Markierungssignals angezeigt wird. Der Zustand dieses Bits wird dadurch überprüft, daß der Festwertspeicher einen Verzweigungs-Mikrobefehl AO 300 ausliest bzw. ausgibt. In dem Fall, daß dieses Bit nicht ein 1-Bit ist, führt der Prozessor eine Verzweigung zu einer anderen Mikroprogrammroutine aus, und zwar beginnend mit dem Mikrobefehl AO 100, um nämlich ein Zählfeld abzuholen, welches die Stelle des Aufzeichnungsträgers in bezug auf die geschriebene Aufzeichnung anzeigt.
Die nächste Prüfung, die der Prozessor ausführt, besteht darin zu bestimmen, ob der Kopf den Kopfteil bezüglich des Kennzeichensignalspalts festgestellt. Dies bedeutet, daß das nächste Feld ein Kennzeichensignalfeld ist. Dies erfolgt durch Ausführung eines weiteren Verzweigungs- Mikrobefehls A 1000. Unter der Annahme, daß das in demselben Mehrzweckregister enthaltene Steuerarbeitsbyte anzeigt, daß sich der Lese-Schreibkopf in dem Kopfteil-Kennzeichen- Spalt befindet, werden die Ergebnisse der Prüfungen, die bezüglich des Zustands eines weiteren Bits innerhalb des Steuerbits unternommen werden, das in dem Mehrzweckregister gespeichert ist, positiv sein. Der Festwertspeicher geht dann auf den nächsten Speicherplatz über, aus welchem er einen weiteren Mikrobefehl BO 300 ausliest, der den Inhalt von GPR Nr. 10 abholt und den Zustand eines Bits 6 überprüft. Auf diese Weise wird festgestellt, ob dies ein erster Durchlauf bzw. Arbeitsgang ist. Dadurch wird angezeigt, daß der Prozessor nicht nach einem Kennzeichen oder einer vorhergehenden Aufzeichnung auf diesen Kanalbefehl hin gesucht hat. Da dieser Arbeitsgang bei diesem Beispiel der erste Arbeitsgang bzw. Durchlauf ist (das heißt, daß das Bit 6 normalerweise eine binäre Null ist), geht der Festwertspeicher dann auf den Mikrobefehl BO 600 über, wie dies in Fig. 6b angegeben ist.
Der Prozessor liest einen Eingabe/Ausgabe-Typ-Mikrobefehl BO 600 aus, der das Format des oberen Befehls gemäß Fig. 4e besitzt. Diesen Mikrobefehl benutzt der Prozessor, um die Hardware-Wege für den ersten Durchlauf einer Such- Kennzeichenoperation einzustellen bzw. festzulegen. Das Eingabe/Ausgabe-Mikrobefehls-Unteroperationscodefeld wird als "00" codiert, um das Laden des PSI-Zählers von dem örtlichen Lese/Schreib-Speicherregister her anzugeben. Dieses Register enthält normalerweise die Kennzeichenlängen- Information, die von dem Kopfteil der Aufzeichnung erhalten wird, welche gelesen wird. Der Datenzähler wird von einem vorhergehenden Befehl geladen, da zuvor angenommen worden war, daß der Orientierungstest positiv war.
Das PSI-Folgesteuerungs-Flipflop-Feld des Eingabe/Ausgabe- Mikrobefehls BO 600 wird auf den Code "1001" gesetzt, so daß Daten von der Eingabe/Ausgabe-Steuereinrichtung angefordert werden und der Eingabe/Ausgabe-Steuereinrichtung signalisiert wird, um die Übertragung mit dem letzten Byte zu beenden. Das Zählfeld enthält ausschließlich Nullen, und das Sprungzählfeld ist auf "01" gesetzt, was anzeigt, daß der Prozessor das erste Byte des Kennzeichenfelds der Aufzeichnung unbeachtet zu lassen hat, da es ein Synchronisierbyte ist, welches den Anfang eines Felds signalisiert. Das nächste Feld, MSCSEQ-Flipflop, des Mikrobefehls BO 600 wird als "0101" decodiert, welches eine Suche einer ersten Durchlauffunktion angibt.
Wenn der Mikrobefehl BO 600 in das örtliche Festwert-Speicherregister ausgelesen ist, wird er durch den Folgesteuerungs- Dekoder decodiert, und die in Frage kommende Steuer- und Ablaufsteuer-Flipflops werden in Binärzustände 1 gesetzt. Dies bedeutet, daß das erste Durchlauf-(CQFPF)-Flipflop 308-1, das Lese/Schreib-Aktiv-(CQRWA)-Flipflop 308-2 und das Such-CQSHO-Flipflop 308-3 jeweils in den Binärzustand 1 umgeschaltet werden. Das Übertragungs-(CQTXO)- Flipflop 308-5 verbleibt im Binärzustand Null. Außerdem ist das Übertragungs-Eingangssignal CQTXI 10 ein Binärsignal 1, welches die Pufferregister in ihre statischen Zustände führt. Die übrigen Flipflops gemäß Fig. 3c verbleiben in ihren Binärzuständen Null. Die Sprung-Flipflops 308-101 und 308-102 gemäß Fig. 3d sind in eine Zählerstellung "01" gesetzt. Das Vergleicherzyklus-CQCMP-Flipflop 308-100 wird in einen Binärzustand 1 umgeschaltet, wenn das Such- Flipflop in den Binärzustand 1 umschaltet. Dieses Flipflop gibt die ALU-Ergebnis-Test- und Speicherschaltungen 316-30 (siehe Fig. 3i) für die Speicherung der Suchergebnisse während des jeweiligen Byte-Vergleichs frei (das bedeutet, daß dem Signal CACMT 10 ermöglicht wird, in den Binärzustand 1 überzugehen, wenn die beiden Register C und D Bytes speichern - Signal CACMT 1 B=1).
Das Such-CQSHO-Flipflop veranlaßt im Binärzustand 1 die Verknüpfungsschaltungen gemäß Fig. 3h, den RWS-Speicher in den Stand zu setzen, die Bytes in den in Frage kommenden Speicherplätzen zu speichern, und zwar wie sie von der Eingabe/ Ausgabe-Steuereinrichtung und der Einrichtung übertragen werden. Das den ersten Durchlauf/das Format betreffende CQFPF-Flipflop veranlaßt im Binärzustand 1 die Puffersteuerschaltungen, die Register A, B und C Bytes von der PSI-Steuereinrichtung her zu übertragen anstatt vom RWS- Speicher. Die Flipflops CQFPF und CQRWA bewirken, wenn sie beide im Binärzustand 1 sind, daß der RWS-Speicher 306-2 mit dem C-Register verbunden wird. Dies ermöglicht, daß die von der Eingabe/Ausgabe-Steuereinrichtung empfangenen Bytes in den RWS-Speicher geschrieben werden. Außerdem ruft das CQFPF-Flipflop einen Weg zwischen dem D-Register und dem RWS-Speicher 306-2 hervor. Diese Wege ermöglichen das Einschreiben der Suchargument-Bytes von der Eingabe/ Ausgabe-Steuereinrichtung her und der Kennzeichenfeld-Bytes, die aus der Massenspeichereinrichtung gelesen worden sind, in den RWS-Speicher 306-2, und zwar in der Weise, daß dieses Einschreiben gleichzeitig erfolgt.
Wie aus Fig. 6b hervorgeht, lädt der Prozessor 300 die in Frage kommende Startadresse in das RWS-Adreßregister von dem Festwertspeicher her, und zwar durch Ausführen eines RWS-Mikrobefehls, der mit BO 700 bezeichnet ist. Anschließend liest der Prozessor einen Verzweigungs- Mikrobefehl aus, der auf seine Decodierung hin feststellt, ob der Befehl von der Eingabe/Ausgabe-Steuereinrichtung her zeitgerecht eingetroffen ist (das heißt, ob der Lese/Schreib- Kopf sich noch in der Kopfteil-Kennzeichenspalte befindet, die anzeigt, daß der Befehl nicht zu spät auftritt, um auf das bezeichnete Feld hin zu arbeiten. Nimmt man an, daß dies der Fall ist, so wird der Test-"Ketten-Schlupf" im Negativen liegen (das ist das Spalt-Zähler-Null-Signal CCGCZ 10). Außerdem beginnt der Prozessor 300 nunmehr, die Einrichtung einzustellen (siehe Fig. 3k). Wie aus Fig. 6b hervorgeht, liest der Prozessor Mikrobefehle aus, und zwar mit einem Mikrobefehl CO 200 beginnend. Dies erfolgt, obwohl es nicht dargestellt ist, dann, wenn die Zählerstellung des Spalt-Zählers auf Null verringert worden ist. Der erste Verknüpfungs-Mikrobefehl (siehe Fig. 4g) bewirkt, wenn er ausgelesen und decodiert ist, daß ein durch das Konstanten-Feld bezeichneter Lesebefehl in das Einrichtungsbefehlsregister 310-4 geladen wird. Ein weiterer Verknüpfungs-Mikrobefehl desselben Typs bewirkt, daß ein Befehl in das Adapter-Befehlsregister 310-6 geladen wird. Dies veranlaßt den Adapter 310, an die DCS-Leitung ein Binärsignal 1 abzugeben. Dadurch wird der Einrichtung der Befehl signalisiert. Darüber hinaus wird der Adapter 310 auf den Befehl hin derart betrieben, daß Bytes über den Lesepuffer 310-32 ausgesendet werden, nachdem festgestellt worden ist, daß die benötigte vorläufige Steuerungsinformation gelesen ist, wie zum Beispiel ein bestimmtes Start-Muster.
Anschließend liest der Prozessor 300 einen Verzweigungs- Mikrobefehl CO 500 aus, der auf seine Decodierung hin erneut den Zustand des Bits 6 des Kennzeichen-Byte- Inhalts von GPR Nr. 10 überprüft. Da dieses Bit als Binärsignal Null auftritt, läuft der Festwertspeicher weiter zu dem Mikrobefehl CO 800, in welchem das Bit 6 des Kennzeichen- Bytes in GPR Nr. 10 als Binärsignal 1 auftritt, wie dies in Fig. 6b gezeigt ist. Anschließend liest der Prozessor einen Verknüpfungs-Mikrobefehl (F=1) CO 900 aus. Dieser Mikrobefehl bewirkt auf seine Decodierung durch den Folgesteuerungs-Dekoder hin die Festlegung der Endwege, und zwar für die Freigabe des ALU-Bereichs zwecks Vergleichs des Byte-Inhalts der Register C und D. Dies bedeutet, daß die B-Operand- und A-Operand-Felder des Verknüpfungs-Mikrobefehls derart kodiert werden, daß in den MUX-Adressenspeichern 314-21 und 314-22 codierte Signale gespeichert sind, die die B-Op-MUX-Einrichtung 314-22 bzw. die A-Op-MUX-Einrichtung 314-24 veranlassen, an die Haupt- und Hilfs-ALU-Einheiten die Inhalten der Register C und D als Operanden abzugeben. Dadurch ist die Verbindung des Vergleichswegs abgeschlossen. Außerdem veranlassen die Signale, daß die ALU-Einheit das Gleichheitssignal CAEQA 10 als Binärsignal 1 abgibt. Dies erfolgt dadurch, daß die Betriebsart-Signale M 0 bis M 3 derart festgelegt werden, daß ein Ergebnis f=1 angegeben wird. Dies schaltet seinerseits das Gleichheits- Speicher-Flipflop 316-300 in den Binärzustand 1 um, und zwar in Bereitschaft für das Suchen.
Zu diesem Zeitpunkt sind die unterschiedlichen Gruppen der Pufferregister derart verbunden, daß Bytes in der richtigen Richtung verschoben werden. Die PSI-Schnittstelle ist in den Stand versetzt, Bytes von der Eingabe/Ausgabe- Steuereinrichtung her aufzunehmen. Der Einrichtung ist ein Befehl zugeführt worden; der Adapter ist in den Stand versetzt worden, Bytes von der Einrichtung her aufzunehmen. Der ALU-Bereich ist schließlich in den Stand versetzt, die Bytes von den bezeichneten Quellen her zu vergleichen. Außerdem sind die Zähler auf die in Frage kommenden Zählerstellungen eingestellt worden. Der PSI-Zähler ist auf eine Zählerstellung eingestellt worden, die einer Kennzeichenlänge entspricht. Danach wird die Zählerstellung des betreffenden Zählers automatisch verringert, und zwar auf die Aufnahme jedes Bytes von der Eingabe/Ausgabe-Steuereinrichtung her. Der Datenzähler ist in eine geeignete Zählerstellung eingestellt worden (das ist die in dem Zählfeld enthaltene Kennzeichenlänge). Außerdem wird die Zählerstellung dieses Zählers automatisch verringert, wenn das jeweilige Byte von der Einrichtung her empfangen wird.
Zu diesem Zeitpunkt ist die aus Hardware zusammengestellte Firmenware vollständig, und der Prozessor 300 ist unter die Steuerung der Hardware gebracht. Dies bedeutet, daß sämtliche Bytes-Übertragungen unabhängig von dem Festwertspeicher erfolgen und damit frei von jeglichen Verarbeitungsverzögerungen sind. Dies kann aus einer Überprüfung des Flußdiagramms gemäß Fig. 6b ersehen werden. Der Festwertspeicher tritt in eine Leerlaufschleife ein, die zwei Verzweigungs-Mikrobefehle umfaßt, welche mit C 1000 und C 1100 bezeichnet sind. Während der Übertragungsoperation liest der Festwertspeicher einen FCB-Mikrobefehl aus, der auf seine Decodierung hin den Zustand des Befehlsende- CBEOC-Flipflops 304-300 gemäß Fig. 3f überprüft (das heißt, daß eine Überprüfung des Eingangs Nr. 1 der Schaltung 304-284 gemäß Fig. 3f erfolgt). Wenn das CBEOC-Flipflop in den Binärzustand 1 gesetzt ist, signalisiert dies der Firmenware, daß die Übertragungsoperation vollständig ist. Wenn der Test positiv ist (CBEOC 10=1), unterbricht der Festwertspeicher seinen Leerlauf und übernimmt wieder die Steuerung durch den Weiterlauf auf den Mikrobefehl C 1300, woraufhin er die Ergebnisse der Such- Kennzeichenoperation in der beschriebenen Weise speichert. Durch einen weiteren FCB-Mikrobefehl C 1100 überprüft der Prozessor 300 ebenfalls das Ende einer Spur. Dies wird von der Einrichtung signalisiert, die eine Indexmarkierung feststellt. Dies führt seinerseits das Signal A 1 IDT 00 in ein Binärsignal Null. Bis eines dieser Signal in ein Binär- Signal 1 überführt wird, setzt der Prozessor 300 seinen Leerlauf durch die beiden Mikrobefehls-Schleifen fort. Während des Leerlaufs bewirken die Schaltungen des Blocks 316-30 jeweils dann, wenn ein Byte in den Registern CD gespeichert ist, daß das Vergleichs-Zeitsignal CACMT 10 in ein Binärsignal 1 überführt wird. Wenn beide Bytes übereinstimmen, führt der ALU-Bereich 316-2 das Signal CAEQA 10 in ein Binärsignal 1 über, welches seinerseits das Flipflop 316-300 in dessen Binärzustand 1 hält. Wenn in irgendeinem Vergleichsintervall die Bytes nicht übereinstimmen, führt der ALU-Bereich das Signal CAEQA 10 in ein Binärsignal Null über. Dies führt das Haltesignal CAEQS 1 H in ein Binärsignal Null über, welches das Flipflop 310-300 in den Binärzustand Null zurückstellt. Zu diesem Zeitpunkt wird außerdem das Signal CAAEB 10 in ein Binärsignal Null überführt. Demgemäß wird eine erste Nicht- Übereinstimmung des Gleichheits-Vergleichs-Flipflop 310-300 zurückstellen, wobei dieses Flipflop in dem betreffenden Zustand so lange verbleibt, bis ein weiterer Mikrobefehl ausgeführt wird. Dies erfolgt nach Abschluß der Operation.
Aus Fig. 3f geht hervor, daß das Befehlsende-Flipflop 304-300 in den Binärzustand 1 gesetzt wird, wenn die Zählerstellung des Datenzählers auf Null verringert worden ist (das ist das Signal CCDCZ 1 A=1) und sämtliche Register (das sind die Register A, B, C, D, E und F) leer sind (das ist das Signal CDDBE 10=1). Unter der Annahme, daß das letzte Byte übertragen worden ist und daß die Zählerstellung des Datenzählers auf Null verringert worden ist, geht der Festwertspeicher auf das Auslesen und Decodieren des FCB-Mikrobefehls C 1010 hin auf den Verzweigungs- Mikrobefehl 1300 über, der eine Überprüfung ausführt um festzustellen, ob das EOC-Flipflop 304-300 im Binärzustand 1 gesetzt war, da nämlich das Ende der Übertragungsoperation vorhanden war (das heißt, daß die Zählerstellung des Datenzählers auf Null verringert worden war) oder da ein Fehler durch den Adapter 310 festgestellt worden war (das ist das Signal AEERR 10=1). Unter der Annahme, daß kein Fehler vorliegt, geht der Festwertspeicher auf den Mikrobefehl DO 400 über, der der erste Mikrobefehl einer Routine für die Berechnung der Vergleichsergebnisse ist. Dabei werden entweder ein Flipflop oder keines der Flipflops 316-300 und 316-310 des Ergebnis-Test- und Speicherbereichs 316-30 gemäß Fig. 3h in den Binärzustand 1 gesetzt. Unter der Annahme, daß ein Vergleich vorgenommen worden ist, wird das Gleichheits-CAEQS-Flipflop 316-300 in den Binärzustand 1 gesetzt. Nach dem Setzen der Zustandsbits, die die Ergebnisse der Kennzeichen-Suche wiedergeben, führt der Prozessor einen Verzweigungs-Mikrobefehl aus, der den Prozessor auf den Mikrobefehl DO 100 zurückführt. Dieser Mikrobefehl prüft die Ergebnisse und setzt eine Anzeigeeinrichtung. Der Prozessor 300 geht auf den Mikrobefehl D 400 weiter, um festzustellen, ob ein Lesefehler vorgelegen hat. Unter der Annahme, daß kein Lesefehler vorgelegen hat, bedeutet dies, daß ein echter Vergleich erfolgt ist. Nunmehr geht der Festwertspeicher auf eine Mikrobefehls-Routine über, die mit dem Mikrobefehl H 100 beginnt. Diese Mikrobefehls-Routine lädt einen geeigneten Code in ein Mehrzweckregister (GPR Nr. 8), das für die Signalisierung zu der Eingabe/Ausgabe-Steuereinrichtung hin verwendet wird. Nach geeigneten Signalaustauschvorgängen über die periphere Untersystem-Schnittstelle PSI wird die Eingabe/Ausgabe-Steuereinrichtung veranlaßt, den nächsten auszuführenden Befehl auszusenden. Dieser Befehl könnte zum Beispiel ein Befehl zur Ausführung einer Operation in dem Datenfeld der Aufzeichnung sein, deren Kennzeichen mit dem Kennzeichen vergleichbar ist bzw. übereinstimmt, das von der Eingabe/Ausgabe-Steuereinrichtung abgegeben worden ist.
In Fig. 6c sind die Operationen angegeben, die von dem Prozessor ausgeführt werden, während dieser den nächsten Befehl von der Eingabe/Ausgabe-Steuereinrichtung erwartet. Während dieser Zeitspanne überläuft der Lese/Schreibkopf der Massenspeicher-Einrichtung den Kennzeichen/Daten-Spalt der Aufzeichnung (siehe Fig. 5b). Der Prozessor bewirkt zum Beispiel das Abholen und Dekodieren des Mikrobefehls, der den Datenzähler mit einer Zählerstellung lädt, die dem Datenlängenfeld entspricht, welches in dem Zählfeld enthalten ist, das dem Kennzeichenfeld der gerade gesuchten Aufzeichnung zugehörig ist. Dies erfolgt in der Erwartung, daß der nächste Befehl eine Operation bezüglich des Datenfelds angeben wird. Die Routine gemäß dieser Figur wird "verarbeite Dateiende" (PREOF) genannt. Wenn der Datenzähler geladen wird, erfolgt außerdem eine Überprüfung bezüglich einer Datenlänge Null. Ist die Datenlänge Null, so zeigt dies an, daß dies ein Ende einer Dateiaufzeichnung ist. Unter der Annahme, daß kein Dateiende vorliegt, geht der Festwertspeicher auf den Mikrobefehl AO 100 über. Dies führt zur Aussendung des in dem Allzweckregister gespeicherten Codes der Eingabe/Ausgabe-Steuereinrichtung hin. Damit liegt auch ein Teil der Anforderung für den nächsten Befehl vor. Der Festwertspeicher kehrt dann auf eine vorhergehende Routine zurück, gemäß der er den Inhalt einer Adreßregisterstelle in dem RWS-Speicher derart aktualisiert, daß diese dem Identifizierglied der letzten Aufzeichnung entspricht, die erfolgreich gesucht worden ist.
Sodann geht der Festwertspeicher auf die Suchroutine ein letztesmal über, um den PSI-Steuerbereich derart einzustellen, daß der nächste folgende Befehl aufgenommen wird, der schließlich eine Verzweigung zu der Befehlscode- Routine CMDEC hin bewirkt, um den nächsten Befehlscode zu decodieren.
Es dürfte ersichtlich sein, daß durch die vorliegende Erfindung ein mikroprogrammierbarer Prozessor geschaffen worden ist, der eine Hardware-Ablaufsteueranordnung zusätzlich zu einem Mikroprogramm-Steuerspeicher enthält. Der Steuerspeicher erzeugt Signale, die die Hardware-Ablaufsteueranordnung veranlassen, in Frage kommende Hardware- Wege für die Ausführung eines bestimmten Befehls einzustellen bzw. festzulegen. Auf das betreffende Festlegen derartiger Wege hin überträgt der Mikroprogramm-Steuerspeicher die Steuerung auf die Hardware-Ablaufsteueranordnung, die ermöglicht, daß die Datenübertragung mit maximaler Geschwindigkeit fortgeführt wird, und zwar unabhängig von der Betriebs- oder Durchlaufgeschwindigkeit des Steuerspeichers.
Bei der oben beschriebenen besonderen Operation war der Steuerspeicher so lange unwirksam, bis die Hardware-Folgesteuerungsanordnung den Abschluß der Übertragung signalisierte. Selbstverständlich war die ALU-Einheit einbezogen in den Vergleich der Bytes von zwei Quellen, wie sie von der Suboperation benötigt werden. Es sei darauf hingewiesen, daß im Fall von anderen Arten von Operationen der Steuerspeicher anstatt in unwirksamem Zustand zu sein, bestimmte Operationen ausführen könnte, die nicht in Beziehung zu der Übertragung von Bytes stehen. Auf Rechen- Mikrobefehle zum Beispiel hin, die aus dem Steuerspeicher gelesen werden, kann die ALU-Einheit einen Spalt variabler Länge als Teil eines Schreibbefehls berechnen. Dies heißt, daß in gewissen Fällen einer Platte ein Format gegeben wird, um einen Spalt variabler Länge zu erzielen, und zwar auf der Basis der Länge des Datenfelds, das geschrieben wird. Während die Datenübertragung stattfindet, berechnet demgemäß die ALU-Einheit in dem Prozessor der vorliegenden Erfindung den Spalt dadurch, daß die Daten-Länge und die Kennzeichen-Länge addiert werden und daß ein Anteil von der Summe genommen wird. Ähnliche Berechnungen können als Teil eines Lesebefehls ausgeführt werden, und zwar in dem Fall, daß ein Spalt variabler Länge in Erwartung eines anderen Formats berechnet wird, das durch einen Schreibbefehl angegeben wird, der mit dem ausgeführten Lesebefehl verkettet ist.
Der Steuerspeicher kann darüber hinaus Operationen ausführen, die den Inhalt verschiedener Adressenregister innerhalb des Prozessor modifizieren. Hierzu gehört die Aktualisierung bestimmter Register, um die Adresse eines "letzten verarbeiteten Datenfelds" anzuzeigen. Diese Operationen würden entweder ausgeführt werden, bevor der Steuerspeicher in einen Leerlaufschleifenzustand eintritt, oder während der Datenübertragung, wie sie für den bestimmten Befehl benötigt ist, der ausgeführt wird.
Die obigen Beispiele sind lediglich zum Zweck der Veranschaulichung gegeben worden. Weitere Einzelheiten bezüglich der Art und Weise, in der gewisse, hier beschriebene Operationen ausgeführt werden können, werden an anderer Stelle näher erläutert. Im vorliegenden Fall sei jedoch darauf hingewiesen, daß eine Vielzahl von Änderungen bezüglich des Prozessors der vorliegenden Erfindung ohne Abweichung vom Erfindungsgedanken vorgenommen werden können.
Um eine unnötige Belastung der Beschreibung mit dem Wissen des Fachmanns zu bewirken, ist eine Blockdiagramm-Darstellungsweise benutzt worden, wobei eine detaillierte funktionelle Beschreibung des jeweiligen Blocks und eine spezielle Identifizierung der Schaltungen, die der jeweilige Block darstellt, gegeben worden ist. Dem einzelnen Ingenieur steht es frei, Elemente und Bauteile, wie Flipflop- Schaltungen, Schieberegister, etc., aufgrund eigenen Wissens oder aus Standard-Druckschriften auszuwählen, wie sie oben erwähnt worden sind.
Es sei ferner darauf hingewiesen, daß die genauen Codierungsmuster für sämtliche Mikrobefehle hier nicht angegeben worden sind, da der Ingenieur frei ist, alternative Codierungsformen auszuwählen. Bezüglich weiterer Einzelheiten und eines Einblicks in die Verfahren zur Ableitung einer derartigen Codierung und zur Bereitstellung einer zusätzlichen, das System betreffenden Information mag auf die Druckschrift "Computer Design Fundamentals", von Chu, McGraw-Hill Book Company, Inc. Copyright 1962 und auf die Druckschrift "Microprogramming Principles and Practice" von S. S. Husson, Prentice-Hall, Inc., Copyright 1970 bezug genommen werden. Zum Zweck einer bequemen Bezugnahme ist die folgende Anhangtabelle beigefügt, in der bestimmte Ausdrücke definiert worden sind, die im Zuge der Beschreibung einer bevorzugten Ausführungsform der vorliegenden Erfindung benutzt worden sind.

Claims (15)

1. Mikroprogrammierbarer Peripheriegeräte-Prozessor (300) in einem Datenverarbeitungssystem zur Steuerung der Übertragung von Datenblöcken in beiden Richtungen zwischen an das Datenverarbeitungssystem angeschlossenen Eingabe/Ausgabe- Geräten (500) und einem Zentralprozessor (100),
wobei die Eingabe/Ausgabe-Geräte (500) an den Peripheriegeräte- Prozessor (300) über Eingabe/Ausgabe-Anschluß-Interfaces (400) und der Zentralprozessor (100) an den Peripheriegeräte- Prozessor (300) über Peripherie-Subsystem-Interfaces (200) angeschlossen sind,
mit einem vom Peripheriegeräte-Prozessor (300) umfaßten Mikroprogramm-Steuerspeicher (304), dem Operationsbefehlssignale zugeführt werden, auf deren Empfang hin der Mikroprogramm- Steuerspeicher (304) Sequenzen von Mikrobefehlssignalen generiert, welche nachgeschaltete Schalt- und Logikeinheiten (z. B. 314, 316) für die Durchführung von Kanalprogrammen aktivieren, dadurch gekennzeichnet,
daß der Peripheriegeräte-Prozessor (300) eine aus einer Vielzahl von Schalgliedern (308-1 bis 308-9) bestehende Folgesteuereinheit (308) umfaßt, die durch bestimmte der generierten Mikrobefehlssignale in einen für die Durchschaltung des Wegs für die Datenübertragung in Blöcken entsprechenden Bereitschaftszustand versetzt wird,
daß zur Bestimmung der Datenübertragungslängen dem Peripherie- Subsystem-Interface (200) zugeordnete PSI-Zählschaltungen (302-6, 302-10) und dem E/A-Anschluß-Interface (400) zugeordnete E/A-A/E-Zählschaltungen (318-2, 318-4) vorgesehen sind, die auf einen der Datenübertragungslänge entsprechenden Zählstand eingestellt werden,
daß nach Vollzug der Einstellung des genannten Bereitschaftszustands und des genannten Zählstands in einem Taktgenerator (308-2, 308-4) vom Mikroprogrammablauf unabhängige Taktzyklen für die Ablaufsteuerung der Datenübertragung erzeugt werden, so daß die Datenübertragung mit einer von der Operationsgeschwindigkeit des Mikroprogramm- Steuerspeichers (304) unabhängigen Geschwindigkeit durchgeführt wird,
daß der Mikroprogramm-Steuerspeicher (304) während des Ablaufs der Datenübertragungsoperationen sich entweder in einem inaktiven Zustand befindet oder nur solche Operationen ausführt, die von der Datenübertragung unabhängig verlaufen und auf diese keinen Einfluß haben,
daß die genannten Zählschaltungen (302-6, 302-10; 318-2, 318-4) im Verlauf der Übertragung von Datengruppen (Bytes) sukzessive dekrementiert werden, bis sie bei ihrem Ausgangszustand (Null) angelangt sind, woraufhin in einer Logikschaltung (304-30) ein Übertragungsschlußsignal erzeugt wird, das die Beendigung der Datenübertragungsoperation an den Mikroprogramm-Steuerspeicher (304) signalisiert, der daraufhin in die Bereitschaft versetzt wird, einen weiteren Operationsbefehl für eine Datenübertragung zu verarbeiten.
2. Peripheriegeräte-Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß die Folgesteuereinheit (308) eine Vielzahl von Flipflops (308-1 bis 308-9) aufweist, welche so geschaltet sind, daß eine Zustandsumschaltung auf bestimmte Steuersignale von dem Mikroprogramm- Steuerspeicher (304) her erfolgt, und daß eine der Routinen an einem bestimmten Punkt einen bestimmten Mikrobefehl enthält, durch welchen eine Voreinstellung der Flipflops (308-1 bis 308-9) in bestimmte Zustände zwecks Steuerung der Übertragung von Informationssignalen erfolgt.
3. Peripheriegeräte-Prozessor nach Anspruch 2, dadurch gekennzeichnet, daß der bestimmte Mikrobefehl ein Eingabe/Ausgabe-Mikrobefehl ist, welcher eine Vielzahl von Feldern aufweist, wobei eines dieser Felder einem Folgesteuerfeld (MSCSEQFLD) entspricht, welches durch seine Codierung bestimmt, welcher Flipflop (308-1 bis 308-9) für die Ausführung der durch den Befehlscode bezeichneten Operation umzuschalten ist.
4. Peripheriegeräte-Prozessor nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Mikroprogramm-Steuerspeicher (304) einen Festwertspeicher umfaßt.
5. Peripheriegeräte-Prozessor nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, daß an der Folgesteuereinheit (308) eine Verzweigungssteuereinrichtung (304-36) angeschlossen ist, welche bei Fehlen eines bestimmten Signals (Befehlsende; Fig. 6b) von der Folgesteuereinheit (308) derart betrieben ist, daß der Mikroprogramm-Steuerspeicher (304) veranlaßt wird, die Ausführung einer bestimmten Mikrobefehlsfolge zu wiederholen, und daß die Verzweigungssteuereinrichtung (304-36) bei Vorhandensein des genannten bestimmten Signals derart betrieben ist, daß eine angezeigte Beendigung der Datenübertragung eine Unterbindung der Wiederholung der bestimmten Mikrobefehlsfolge bewirkt.
6. Peripheriegeräte-Prozessor nach Anspruch 5, dadurch gekennzeichnet, daß die Ablaufroutine zwei Verzweigungs-Mikrobefehle enthält, welche so codiert sind, daß sie Verzweigungsadressen und Testbedingungen enthalten, die zwei Mikrobefehlsschleifen solange festlegen, bis eine der Testbedingungen erfüllt ist.
7. Peripheriegeräte-Prozessor nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß die Folgesteuereinheit (308) eine Zyklussteuereinrichtung enthält, welche eine Vielzahl von Flipflops (308-100 bis 308-102, 304-300) enthält, die in einer bestimmten Folge zu Zustandsumschaltungen veranlaßt werden, um Signale zu erzeugen, die unterschiedliche Operationsfolgen für den Prozessor während der Übertragung festlegen.
8. Peripheriegeräte-Prozessor nach einem der Ansprüche 5 bis 7, dadurch gekennzeichnet, daß die Verzweigungssteuereinrichtung (304-36) auf ein bestimmtes Signal hin eine Verzweigung zu einer weiteren Mikrobefehlsfolge bewirkt, zur Überprüfung der Ergebnisse der Übertragung und daß auf die Ergebnissignale hin auf eine vorbestimmte nächste Mikrobefehlsroutine übergegangen wird.
9. Peripheriegeräte-Prozessor nach Anspruch 7 oder 8, dadurch gekennzeichnet, daß einer (304-300) der Flipflops der Zyklussteuereinrichtung so geschaltet ist, daß er das das Ende der Datenübertragung anzeigende Signal aufnimmt und derart betrieben ist, daß er von einem ersten Zustand in einen zweiten Zustand umschaltet, woraufhin die Verzweigungssteuereinrichtung (304-36) veranlaßt wird, das Ende der betreffenden Übertragung zu überprüfen, um eine Wiederholung der Ablauffolge durch den Mikroprogramm-Steuerspeicher zu unterbinden.
10. Peripheriegeräte-Prozessor nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, daß an dem Peripherie-Subsystem-Interface (200) eine bidirektionale Datenübertragungseinrichtung (302-50) mit einer Vielzahl von in Reihe geschalteten (302-52 bis 302-57) angeschlossen ist, welche Informationsbytes bidirektional seriell übertragen, und daß mit den verschiedenen Pufferregistern (302-55 bis 302-57) und der Folgesteuereinheit (308) eine Schaltungsanordnung (302-70, 302-72) verbunden ist, welche durch die Folgesteuereinheit (308) veranlaßt wird, selektiv die Pufferregister in bestimmte Zustände zu versetzen, so daß die Datenübertragungseinrichtung in einer Vielzahl von unterschiedlichen Betriebsarten betreibbar ist.
11. Peripheriegeräte-Prozessor nach Anspruch 10, dadurch gekennzeichnet, daß die Folgesteuereinheit (308) je ein Übertragungseintritts- (308-10) und -Austritts-Flipflop (308-5) enthält, welche mit der genannten Schaltungsanordnung (302-70, 302-72) derart verbunden sind, daß die Schaltzustände der Übertragungs-Flipflops für erste und zweite Gruppen von Pufferregistern (302-52-302-57) die Datenübertragungsrichtung bestimmen.
12. Peripheriegeräte-Prozessor nach Anspruch 11, dadurch gekennzeichnet, daß eine erste Gruppe die Register (A, B, C) und eine zweite Gruppe die Register (D, E, F) enthält und daß die genannte Schaltungsanordnung (302-70, 302-72) durch das Übertragungseintritts-Flipflop (308-10) bei Vorliegen einer binären "1" bzw. einer binären "0" gesteuert, die erste Registergruppe veranlaßt, Bytes aus dem C-Register ins A-Register bzw. aus dem A-Register ins C-Register zu übertragen, und daß die genannte Schaltungsanordnung (302-20, 302-72), durch das Übertragungsaustritts-Flipflop (308-5 ) bei Vorliegen einer binären "1" bzw. einer binären "0" gesteuert, die zweite Registergruppe veranlaßt, Bytes aus dem D-Register ins F-Register bzw. aus dem F-Register ins D-Register zu übertragen.
13. Peripheriegeräte-Prozessor nach Anspruch 12, dadurch gekennzeichnet, daß aus den Zuständen der Übertragungseintritts- und -Austritts-Flipflops (308-10, 308-5) entsprechende Signale gebildet werden, welche für die Festlegung bestimmter Subbetriebsarten in Übereinstimmung mit den Zuständen der Folgesteuerungs-Flipflops (308-1 bis 308-9) verwendbar sind.
14. Peripheriegeräte-Prozessor nach Anspruch 13, dadurch gekennzeichnet, daß bei einer ersten Subbetriebsart die genannte Schaltungsanordnung (302-70, 302-72) eine Übertragung von Informations-Bytes über die erste und zweite Gruppe von Registern in den Prozessor ermöglicht.
15. Peripheriegeräte-Prozessor nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, daß eine Rechen- und Verknüpfungs-Verarbeitungseinrichtung (316) an der Datenübertragungseinrichtung (302-50) angeschlossen ist, daß eine Lese/Schreib-Speichereinrichtung (306) mit der Rechen- und Verknüpfungseinrichtung (316) und der Datenübertragungseinrichtung (302-50) verbunden ist und daß die Folgesteuereinheit (308) derart betrieben ist, daß sie Signale abgibt, welche die Rechen- und Verknüpfungs- Verarbeitungseinrichtung (316) und die Lese/Schreib- Speichereinrichtung (306) in den Stand versetzen, Operationsfolgen auszuführen, die für die Verarbeitung bzw. Speicherung der Byte-Signale erforderlich sind.
DE19742459975 1973-12-18 1974-12-18 Mikroprogrammierter peripherer prozessor sowie diesen verwendendes peripheres untersystem Granted DE2459975A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US425760A US3909799A (en) 1973-12-18 1973-12-18 Microprogrammable peripheral processing system

Publications (2)

Publication Number Publication Date
DE2459975A1 DE2459975A1 (de) 1975-06-19
DE2459975C2 true DE2459975C2 (de) 1989-12-21

Family

ID=23687915

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19742459975 Granted DE2459975A1 (de) 1973-12-18 1974-12-18 Mikroprogrammierter peripherer prozessor sowie diesen verwendendes peripheres untersystem

Country Status (6)

Country Link
US (1) US3909799A (de)
JP (1) JPS5838809B2 (de)
CA (1) CA1027250A (de)
DE (1) DE2459975A1 (de)
FR (1) FR2254831B1 (de)
GB (1) GB1496780A (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2261567B1 (de) * 1974-02-20 1977-09-23 Honeywell Bull Soc Ind
GB1499742A (en) * 1974-10-30 1978-02-01 Motorola Inc Interface adaptor circuits in combination with a processo
JPS5178643A (en) * 1974-12-29 1976-07-08 Fujitsu Ltd Sabuchaneru memori akusesuseigyohoshiki
US3976977A (en) * 1975-03-26 1976-08-24 Honeywell Information Systems, Inc. Processor for input-output processing system
US4124888A (en) * 1975-12-24 1978-11-07 Computer Automation, Inc. Peripheral-unit controller apparatus
US4093981A (en) * 1976-01-28 1978-06-06 Burroughs Corporation Data communications preprocessor
US4090250A (en) * 1976-09-30 1978-05-16 Raytheon Company Digital signal processor
US4162520A (en) * 1976-09-30 1979-07-24 Burroughs Corporation Intelligent input-output interface control unit for input-output subsystem
JPS5362945A (en) * 1976-11-17 1978-06-05 Toshiba Corp Disc address system
US4161788A (en) * 1977-04-21 1979-07-17 Texas Instruments Incorporated Bubble memory controller with multipage data handling
US4099236A (en) * 1977-05-20 1978-07-04 Intel Corporation Slave microprocessor for operation with a master microprocessor and a direct memory access controller
US4246637A (en) * 1978-06-26 1981-01-20 International Business Machines Corporation Data processor input/output controller
US4293909A (en) * 1979-06-27 1981-10-06 Burroughs Corporation Digital system for data transfer using universal input-output microprocessor
NL8004884A (nl) * 1979-10-18 1981-04-22 Storage Technology Corp Virtueel stelsel en werkwijze voor het opslaan van gegevens.
USRE36989E (en) * 1979-10-18 2000-12-12 Storage Technology Corporation Virtual storage system and method
US4471457A (en) * 1980-08-21 1984-09-11 International Business Machines Corporation Supervisory control of peripheral subsystems
US4476522A (en) * 1981-03-09 1984-10-09 International Business Machines Corporation Programmable peripheral processing controller with mode-selectable address register sequencing
US4454575A (en) * 1980-12-29 1984-06-12 International Business Machines Corporation Shared memory system with access by specialized peripherals managed by controller initialized by supervisory CPU
US4394734A (en) * 1980-12-29 1983-07-19 International Business Machines Corp. Programmable peripheral processing controller
US4395756A (en) * 1981-02-17 1983-07-26 Pitney Bowes Inc. Processor implemented communications interface having external clock actuated disabling control
US4410962A (en) * 1981-02-17 1983-10-18 Pitney Bowes Inc. Mailing system interface interconnecting incompatible communication systems
US4435763A (en) 1981-04-13 1984-03-06 Texas Instruments Incorporated Multiprogrammable input/output circuitry
US4939643A (en) * 1981-10-01 1990-07-03 Stratus Computer, Inc. Fault tolerant digital data processor with improved bus protocol
US4476527A (en) * 1981-12-10 1984-10-09 Data General Corporation Synchronous data bus with automatically variable data rate
US4493028A (en) * 1982-02-02 1985-01-08 International Business Machines Corporation Dual mode I/O
US4490784A (en) * 1982-04-21 1984-12-25 Ives David C High-speed data transfer unit for digital data processing system
DE3241376A1 (de) * 1982-11-09 1984-05-10 Siemens AG, 1000 Berlin und 8000 München Dma-steuereinrichtung zur uebertragung von daten zwischen einem datensender und einem datenempfaenger
US4773000A (en) * 1984-01-23 1988-09-20 Raytheon Company DMA for digital computer system
JPS63121610U (de) * 1987-01-27 1988-08-08
GB8816413D0 (en) * 1988-07-09 1988-08-17 Int Computers Ltd Data processing system
US5081609A (en) * 1989-01-10 1992-01-14 Bull Hn Information Systems Inc. Multiprocessor controller having time shared control store
US5237676A (en) * 1989-01-13 1993-08-17 International Business Machines Corp. High speed data transfer system which adjusts data transfer speed in response to indicated transfer speed capability of connected device
WO1998040810A2 (en) 1997-03-12 1998-09-17 Storage Technology Corporation Network attached virtual tape data storage subsystem
US6658526B2 (en) 1997-03-12 2003-12-02 Storage Technology Corporation Network attached virtual data storage subsystem
US6094605A (en) * 1998-07-06 2000-07-25 Storage Technology Corporation Virtual automated cartridge system
US6330621B1 (en) 1999-01-15 2001-12-11 Storage Technology Corporation Intelligent data storage manager
US6834324B1 (en) 2000-04-10 2004-12-21 Storage Technology Corporation System and method for virtual tape volumes
US6971043B2 (en) * 2001-04-11 2005-11-29 Stratus Technologies Bermuda Ltd Apparatus and method for accessing a mass storage device in a fault-tolerant server
US20030126132A1 (en) * 2001-12-27 2003-07-03 Kavuri Ravi K. Virtual volume management system and method
KR100860985B1 (ko) * 2003-05-23 2008-09-30 삼성전자주식회사 패딩 정보를 이용한 기록/재생 방법
US20090198876A1 (en) * 2008-01-31 2009-08-06 Jimmy Kwok Lap Lai Programmable Command Sequencer
US8302083B2 (en) * 2009-01-23 2012-10-30 Lsi Corporation Architecture and implementation method of programmable arithmetic controller for cryptographic applications
US10141072B2 (en) * 2015-06-11 2018-11-27 SK Hynix Inc. Efficient encoder based on modified RU algorithm
TWI559325B (zh) * 2015-10-22 2016-11-21 力成科技股份有限公司 高頻記憶體之測試裝置及測試方法
US10613128B2 (en) 2015-10-22 2020-04-07 Powertech Technology Inc. Testing device and testing method

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3573741A (en) * 1968-07-11 1971-04-06 Ibm Control unit for input/output devices
US3559187A (en) * 1968-11-13 1971-01-26 Gen Electric Input/output controller with linked data control words
US3588831A (en) * 1968-11-13 1971-06-28 Honeywell Inf Systems Input/output controller for independently supervising a plurality of operations in response to a single command
US3675209A (en) * 1970-02-06 1972-07-04 Burroughs Corp Autonomous multiple-path input/output control system
US3673575A (en) * 1970-06-29 1972-06-27 Ibm Microprogrammed common control unit with double format control words
US3673576A (en) * 1970-07-13 1972-06-27 Eg & G Inc Programmable computer-peripheral interface
US3654617A (en) * 1970-10-01 1972-04-04 Ibm Microprogrammable i/o controller
US3725864A (en) * 1971-03-03 1973-04-03 Ibm Input/output control
US3713108A (en) * 1971-03-25 1973-01-23 Ibm Branch control for a digital machine
US3716837A (en) * 1971-04-22 1973-02-13 Ibm Interrupt handling
US3740728A (en) * 1972-01-19 1973-06-19 Hughes Aircraft Co Input/output controller
US3753236A (en) * 1972-03-31 1973-08-14 Honeywell Inf Systems Microprogrammable peripheral controller
US3713107A (en) * 1972-04-03 1973-01-23 Ncr Firmware sort processor system
US3742457A (en) * 1972-05-15 1973-06-26 Honeywell Inf Systems High speed data transfer for a peripheral controller
US3766526A (en) * 1972-10-10 1973-10-16 Atomic Energy Commission Multi-microprogrammed input-output processor

Also Published As

Publication number Publication date
DE2459975A1 (de) 1975-06-19
JPS5838809B2 (ja) 1983-08-25
US3909799A (en) 1975-09-30
JPS5093551A (de) 1975-07-25
FR2254831A1 (de) 1975-07-11
CA1027250A (en) 1978-02-28
FR2254831B1 (de) 1978-10-13
GB1496780A (en) 1978-01-05

Similar Documents

Publication Publication Date Title
DE2459975C2 (de)
DE2316296C2 (de) Mikroprogrammierbarer Prozessor
DE2714805C2 (de)
DE2735814C2 (de) Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung
DE2459956A1 (de) Prozessor und diesen verwendendes peripheres verarbeitungssystem
CH522921A (de) Rechneranlage
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE2030812A1 (de) Modulare Datenrechnersysteme
DE1928202C3 (de) Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen
DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
DE2750721A1 (de) Ein/ausgabe-system
DE2750299A1 (de) Ein/ausgabe-system
DE2755952C2 (de)
DE2500006A1 (de) Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE2755371A1 (de) Ein/ausgabe-verarbeitungssystem
DE2855106A1 (de) Einrichtung zur durchfuehrung von instruktionsverzweigungen
DE2517276A1 (de) Datenverarbeitungssystem
DE3741850A1 (de) Ausfuehrungseinheit fuer einen i/o-prozessor
DE1285220B (de) Datenverarbeitungssystem mit mehreren selbstaendigen Recheneinheiten
DE1549474C3 (de) Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE2540823C2 (de) Elektronische Datenverarbeitungsanlage
DE2721623A1 (de) System zur bearbeitung eines zielsystemprogrammes
DE2401364A1 (de) Datenverarbeitungssystem
US3213427A (en) Tracing mode

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8127 New person/name/address of the applicant

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

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee