DE2657848A1 - Steuereinheit fuer ein datenverarbeitungssystem - Google Patents

Steuereinheit fuer ein datenverarbeitungssystem

Info

Publication number
DE2657848A1
DE2657848A1 DE19762657848 DE2657848A DE2657848A1 DE 2657848 A1 DE2657848 A1 DE 2657848A1 DE 19762657848 DE19762657848 DE 19762657848 DE 2657848 A DE2657848 A DE 2657848A DE 2657848 A1 DE2657848 A1 DE 2657848A1
Authority
DE
Germany
Prior art keywords
address
control unit
section
memory
command
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.)
Granted
Application number
DE19762657848
Other languages
English (en)
Other versions
DE2657848C2 (de
Inventor
Douglas L Riikonen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Information Systems Italia SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2657848A1 publication Critical patent/DE2657848A1/de
Application granted granted Critical
Publication of DE2657848C2 publication Critical patent/DE2657848C2/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/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Executing Machine-Instructions (AREA)
  • Bus Control (AREA)

Description

5101590 Ge 17. Dezember 1976
HONEYWELL INFORMATION SYSTEMS INC.
200 Smith Street Waltham, Mass., USA
Steuereinheit für ein Datenverarbeitungssystem
Die Erfindung' betrifft eine Steuereinheit nach dem Gattungsbegriff des Anspruchs 1.
Die Schnittstelle zwischen einem Datenprozessor und mehreren peripheren Geräten ist in der Vergangenheit auf verschiedene Weise verwirklicht worden. In dem Maße, in dem die Funktionen elektronischer logischer Elemente verbessert wurden, ergab . sich auch eine Möglichkeit zur Verbesserung der Wirtschaftlichkeit im Aufbau entsprechender Datenverarbeitungssysteme. Ein solcher verbesserter Aufbau kann beispielsweise von der Vielseitigkeit eines mikroprogrammierten Steuerspeicherelementes Gebrauch machen oder auch hinsichtlich der Steuerung der Geräte einen Zwischenspeicher benutzen, der die Steuer- und Statusinformationen speichert. Hinsichtlich der Gerätesteuerung ist die Vielseitigkeit und Flexibilität von wesentlicher Bedeutung, so daß die Steuerung nicht nur Einrichtungen aufweisen soll, durch die der Steuerspeicher den Betrieb und die Steuerung der Geräte ermöglicht, sondern auch Einrichtungen aufweisen soll, die auf von der Zentraleinheit abgegebene Befehle reagieren und somit dem Prozessor die Steuerung von Diagnoseoperationen erleichtern. Ferner soll der Aufbau der Steuereinheit die Verarbeitung der am häufigsten auftretenden Befehle in der kürzest möglichen
•J.
Zeit erlauben, selbst wenn zu diesem Zweck zusätzliche Logikschaltkreise erforderlich sind. In gleicher Weise sollen gewisse oft wiederholte arithmetische Operationen, wie sie beispielsweise mit der Informationsspeicherung im Zwischenspeicher einhergehen, aufgrund des Aufbaues der Steuereinheit so schnell wie möglich verarbeitet werden. Ein solches Steuersystem soll ferner wirksame Mittel aufweisen, durch die die Unversehrheit der in ihr gespeicherten Information sichergestellt wird und mit der die im Steuerspeicher gespeicherten Befehle überprüft werden können. Schießlich muß die Steuereinheit die Möglichkeit der Schnittstellenbildung mit mehreren verschiedenen Gerätetypen aufweisen. Sie muß in der Lage sein, die Operation solcher verschiedener Gerätetypen automatisch und unabhängig von dem Kanal zu steuern, durch den die Steuereinheit mit den Geräten verbunden ist. Die Steuereinheit soll zusätzlich wirksame Mittel zur Adressierung sowohl des mikroprogrammierten Steuerspeichers als auch des Zwischenspeichers aufweisen.
Es ist die Aufgabe der vorliegenden Erfindung, eine Steuereinheit für ein Datenverarbeitungssystem anzugeben, die den eingangs genannten Forderungen genügt. Die Lösung dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten Erfindung. Weitere vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen entnehmbar.
Die Steuereinheit gemäß der vorliegenden Erfindung ist für ein eine Datenverarbeitungseinheit aufweisendes Datenverarbeitungssystem vorgesehen und sie dient dem Anschluß
mehrererperiphererGeräte, von denen eines zu jedem
gegebenen Zeitpunkt aktiviert ist. Ein Datenübertragungsweg dient der Informationsübertragung zwischen den Einheiten. Die Steuereinheit weist auf: Einrichtungen für Freigabe der Steuerung und des Betriebes der peripheren Geräte, Einrichtungen zur Speicherung der auf die Steuerung, den Betrieb und den Status der peripheren Geräte bezogenen Information, wobei diese Speichereinrichtung mehrere Abschnitte entsprechend der möglichen
709826/0965
Anzahl der Geräte aufweist, jedem dieser Abschnitte eine eindeutige Abschnittsadresse zugeordnet ist und jeder dieser Abschnitte mehrere Speicherplätze zur Speicherung der zugeordneten Geräteinformation aufweist und wobei schließlich jeder dieser Abschnitte hinsichtlich der zugeordneten Speicherplätze die gleiche Informationstopologie besitzt. Die Steuereinheit besitzt ferner Einrichtungen zur Anzeige des jeweils aktiven Gerätes und Einrichtungen für Berechnungen der Adresse eines solchen Speicherplatzes, wobei diese Einrichtung ebenfalls in der Lage ist, die Adresse ein.es Abschnittes unabhängig von dem Aktivierungszustand eines Gerätes zu berechnen. Ferner ist eine Einrichtung vorgesehen, die aufgrund des Hinweises auf ein aktives Gerät in der Lage ist, die Adresse eines dem aktiven Gerät zugeordneten Abschnittes sowie von Adressen von Speicherplätzen innerhalb dieses Abschnittes zu erzeugen. Schließlich ist eine Auswahleinrichtung vorgesehen, die zur Adressierung einer der Abschnitte auf die errechnete Abschnittsadresse oder die erzeugte Abschnittsadresse zurückgreifen kann.
Anhand eines in den Figuren der beiliegenden Zeichnungen dargestellten Ausführungsbeispieles sei die Erfindung im folgenden näher beschrieben. Es zeigen:
Fig. 1 ein die Konfiguration der vorliegenden Erfindung darstellendes Blockdiagramm,
Fig. 2 ein Blockdiagramm der Steuereinheit gemäß der vorliegenden Erfindung,
Fig. 3 ein Blockdiagramm der Wirkungsweise der Steuereinheit gemäß der Erfindung,
Fig. 4 eine detaillierte Logik, wie sie während des Zugriffs, der Speicherung und der Decodierung der Mikrobefehle bei der vorliegenden Erfindung Verwendung findet, Fig. 5 die detaillierte Logik des Rechenwerks und die bei der Steuereinheit gemäß der vorliegenden Erfindung verwendete Akkumulatorlogik,
709826/0965
Fig. 6 die Wirkungsweise des bei der Steuereinheit gemäß der vorliegenden Erfindung verwendeten Zwischenspeichers, Fig. 7 den Test-Multiplexer für die erfindungsgemäße Steuereinheit,
Fig. 8 die Taktsteuerung für die Steuereinheit, Fig. 9 der Taktsteuerung zugeordnete Taktdiagramme, Fig. 10 eine Äbtastlogik,
Fig. 11 ein Flußdiagramm des von dem Steuerspeicher und der zugeordneten Logik durchgeführten grundlegenden Logiktestes,
Fig. 12 ein Flußdiagramm der durch den Steuerspeicher und die zugeordnete Logik erzeugten Betriebsvorbereitungsroutine ,
Fig. 13 ein Flußdiagramm der durch den Steuerspeicher und die zugeordnete Logik erzeugten Einsatzpunktroutine, Fi'g. 14 ein Flußdiagramm der von dem Steuerspeicher und der zugeordneten Logik erzeuten Warteroutine, Fig. 15 ein Flußdiagramm der von dem Steuerspeicher und der zugeordneten Logik erzeugten Bus-Anforderungsroutine, Fig. 16 ein Flußdiagramm der von dem Steuerspeicher und der zugeordneten Logik erzeugten Unterbrechungsroutine, Fig. 17 ein Flußdiagramm der durch den Steuerspeicher und die zugeordnete Logik erzeugten Wiederaufnahme-Unterbrechungsroutine,
Fig. 18 die von der Abtastlogik zum Testen des Steuerspeichers auf Parität benutzte besondere Logik, Fig. 19 eine der Adressbildung für die Adressierung des Zwischenspeichers der Steuereinheit dienende Logik und Fig. 20 eine Logik zur Identifizierung des Gerätetypes der an die Steuereinheit angeschlossenen Geräte.
Die grundlegende Geräte-Steuereinheit (BDC) gemäß der vorliegenden Erfindung zusammen mit den zugeordneten Geräte-Adaptern ist eine mikroprogrammierte periphere Steuereinheit, die an die Datenschiene eines Datenprozessors angeschlossen ist, wie sie in der älteren deutschen Patentanmeldung P 26 29 401.9 beschrieben ist. Die Steuereinheit erzeugt beispielsweise eine
709826/0965
simultane Steuerung irgendeines der folgenden Gerätetypen: Eines Zeilendruckers, eines Seriendruckers, eines Kartenlesers, einer Konsole oder einer Platteneinheit. Die Geräte-Steuereinheit BDC weist einen verallgemeinerten Aufbau auf, um ihre Anwendung als periphere Steuereinheit für verschiedene Gerätetypen verschiedener Leistungen zu erleichtern. Eine gerätespezifische Funktion wird durch Geräteadapter und durch Segmenteder BDC-Firmware erzeugt. Die Geräteadapter dienen typischerweise der Unterstützung eines Gerätes. Unbeachtet der Konfiguration der Adapter und der Geräte stellt jedes Gerät einen adressierbaren Kanal dar, der das Gerät, den Adapter und die Steuereinheit BDC umfaßt. Somit besitzt jede Steuereinheit BDC soviel adressierbare Kanäle, wie Geräte oder Geräteanschlüsse vorhanden sind. Die Steuereinheit BDC arbeitet im Multiplex-Betrieb je nach der Kanalaktivität, wobei dem Kanal 1 und der Datenschienenübertragung die höchste Priorität und dem Kanal 4 und wiederholt versuchten Unterbrechungen die geringste Priorität zugeordnet wird. Die Kanaloperationen erfolgen unabhängig mit Ausnahme von Lösch- und Diagnoseverfahren. Bei der Umschaltung auf Diagnoseverfahren wird der Takt der Steuereinheit BDC angehalten und der Steuerspeicher der Steuereinheit BDC gesperrt. Jede nachfolgende Datenschienenübertragung zu der Steuereinheit BDC erzeugt einen Taktzyklus, während welchem der Dateninhalt des Datenschienenzyklus als Mikrobefehl bearbeitet wird.
Gemäß Figur 1 ist die Geräte-Steuereinheit 10 an eine Datenschiene 12 angekoppelt, die allen Elementen des Systems gemeinsam ist, wobei das System eine Zentraleinheit 14 und einen Speicher 16 umfaßt. Die Steuereinheit 10 bedient beispielsweise bis zu vier Geräte 18 über die Geräteadapter 20.
Gemäß Figur 2 ist ein Blockdiagramm der Steuereinheit BDC gemäß der vorliegenden Erfindung dargestellt. Die Steuereinheit BDC kann als vertikaler Mikroprozessor klassifiziert werden,da'sie mit einer geringen Wortlänge arbeitet und einen Mikrobefehl pro Wort aufweist. Der Mikroprogramm-Steuerspeicher UPCS-22
709826/0965
besitzt eine Breite von 16 Bit und ist bis zu einem Maximum von 4k Worten erweiterbar. Dieser Umfang derAdressxerbarkeit ist ausreichend, um die Verwendung eines einzigen Speicherblockes eines programmierbaren Festwertspeichers für die Bedienung aller Gerätetypen zu gestatten. Der Steuerspeicher UPCS-22 wird während der normalen Operation verwendet, wenn die Steuereinheit BDC sich nicht in einem Diagnostiziermodus befindet. Es sei hier festgehalten, daß die Größe und die Kapazität der verschiedenen Elemente,die hier anhand eines Beispieles beschrieben werden, in keiner Weise eine Einschränkung der Erfindung bedeutet. Ferner wird nachfolgend auf verschiedene Elemente und Prozesse, wie beispielsweise einen Diagnostiziermodus, Bezug genommen .
Der Ausgang des Steuerspeichers UPCS-22 wird durch einen Takt in das Mikroprogramm-Befehlsregister UPIR-24 bei jeder Anstiegsflanke des Ausführungstaktes übertragen. Der Mikroprogrammadressenzähler UPAC-22 wird ebenfalls mit jeder Anstiegsflanke des Taktes getaktet, Wenn somit ein Mikrobefehl im Befehlsregister UPIR-24 für eine Behandlung gespeichert ist, wird der Zählstand des Adressenzählers UPAC-26 verändert, um Zugriff auf den nächsten Mikrobefehl im Steuerspeicher 22 zu nehmen. Während der Ausführung der geschlossenen Firmware-Codierung wird der Zählstand des Mikroprogramm-Adressenzählers UPAC-26 um 1 erhöht, um auf den Befehl η + 1 während der laufenden Ausführung des Befehles η zuzugreifen. Wenn jedoch ein Verzweigungsbefehl ausgeführt wird, so wird die Zählstandserhöhung gesperrt und der Zähler UPAC-26 mit dem Ausgang des Mikroprogramm-Adressenwählers UPAS-28 geladen. Um die Geschwindigkeit bei der Ausführung von Firmware-Routinen zu erhöhen, werden die Verzweigungsbefehle in einem Taktzyklus durch Decodierung der Befehle "GO TO" und "RETURN BRANCH" am Ausgang des Steuerspeichers ausgeführt. Alle anderen Befehle werden am Ausgang des Befehlsregisters 24 decodiert.
Wenn die Befehle "GO TO" decodiert werden, wählt der Adressenselektor UPAS-28 die niedrigrangigsten 12 Bits des Steuerspeichers als nächste Adresse aus, was eine direkte Verzweigung
709826/0965
zu der durch den Mikrobefehl festgelegten Adresse zur Folge hat. Wenn ein Befehl "RETURN BRANCH" decodiert wird, wählt der Adressenselektor UPAS-28 den Ausgang des Subroutinen-Rückkehr-Adressregisters SPAR-30 als nächste Adresse aus. Das Adressregister SPAR-30 besteht aus vier Adressregistern, wobei jeweils eines einem Kanal zugeordnet ist, die von der Firmware für die Speicherung von Rückkehradressen bei der Verzweigung auf eine Subroutine benutzt werden. Das Adressregister SPAR-30 wird von dem Zwischenspeieher-Indexregister 32 adressiert, was bedeutet, daß der aus dem Adressregister SPAR-30 ausgelesene oder eingeschriebene Speicherplatz dem gerade aktiven Kanal entspricht. Die Daten für das Subroutinen-Rückkehr-Adressregister 30 werden dem Befehlsregister UPIR-24 entnommen und durch einen Firmwarebefehl geladen.
Es gibt keinen Unterbrechungsmechanismus in der Steuereinheit BDC-10, mit Ausnahme einer Vor rang löschung, die den Mikroprogramm-Adressenzähler 26 auf den Speicherplatz Null des Steuerspeichers 22 stellt. Alle anderen Verzweigungs- und Adressenoperationen werden durch eine Firmware-Steuerung ausgeführt. Wenn sich die SteuereinheitBDC-10 in einem Diagnostiziermodus befindet, so wird der Mikroprogramm-Steusspeicher 22 gesperrt und die Taktsteuerung 34 angehalten. Jede nachfolgende Datenschifiaenübertragung zu der Steuereinheit BDC erzeugt einen Taktzyklus, in welchem das Datensegment des Datenschienen-Schnittstellenregisters in das Mikroprogramm-Befehlsregister 24 über das Diagnostizier-Befehlsgatter TEST-38 geladen und als Mikrobefehl ausgeführt wird. Das Diagnostizier-Befehlsgatter 38 ermöglicht der Diagnostizier-Software das Laden und die Ausführung von Fehlerisolations-Firmwareroutinen in der Steuereinheit BDC über die Datenschiene 12.
Der Ausgang des Steuerspeichers 22 oder des Diagnostizier-Befehlsgatters 38 wird in dem Mikroprogramm-Befehlsregister 24 für die Bearbeitung gespeichert. Die drei höchstrangigen Bits einer jeden Mikrocodierung zeigen durch ihre Codierung die Art
709826/0965
des Befehls an. Der Operationscode-Decodierer OPCOD-40 führt eine 3 nach 8-Binärdecodierung der drei höchstrangigen Bits des Befehlsregisters 24 aus. Die acht Ausgänge des Operationscode-Decodierers 40 zusammen mit anderen Bits in dem Befehlsregister 24 werden in der Steuereinheit BDC zur Steuerung der Hardwareoperation verteilt. Zusätzlich werden Firmware-Befehle decodiert und an. die Geräteadapter verteilt. Die Geräteadapterbefehle werden nur durch den Geräteadapter ausgeführt, der freigegeben ist,und von den anderen gesperrten Adaptern ignoriert.
DasRechenwerk ALU-42 und die Rechenwerk-Operanden-Multiplexer stellen die Kernstelle aller Datenoperationen innerhalb der Steuereinheit BDC und zwischen der Steuereinheit BDC und den Geräteadaptern dar. Die in den Multiplexern 44 enthaltenen Operandenmultiplexer bestehen aus einem A-Operandenmultiplexer, der eines von acht zugänglichen Registern als Eingang A für das Rechenwerk ALU-42 auswählt und einem B-Operandenmultiplexer, der eines von vier Registern als Eingang B für das Rechenwerk ALU auswählt. Der Datenausgang des A-Operandenmultiplexers geht zu-
und
sätzlich zu dem Rechenwerk ALU-42r£u dem Testmultiplexer 46 zum Testen der Bits der Datenfelder. Der Datenausgang des B-Operandenmultiplexers geht nur zu dem Rechenwerk ALU-42. Das Rechenwerk ALU 42 führt arithmetische und logische Operationen mit jeweils 8 Bit der ausgewählten A- und B-Operanden durch, wobei das Ergebnis der Operation in Abhängigkeit von der Codierung des Mikrobefehls in ein. Empfangsregister geladen wird.
Der während der Rechenwerksbefehle erzeugte Status wird in den ALU-Status-Flip-Flops 48 bis zum nächsten ALU-Befehl gespeichert. Wenn der Rechenwerkstatus einen Überlauf anzeigt, so wird das Ergebnis der Firmware über den Testmultiplexer TSTMUX-46 zugänglich gemacht, sofern das Ergebnis in allen Stellen eine Null oder in allen Stellen eine Eins aufweist. Das Rechenwerk ALU-42 wird ebenfalls zur Ausführung von Bit-Operationen des A-Operanden mit einer Datenkonstanten benutzt, wobei die Datenkonstante durch das Befehlsregister 24 vorgegeben und durch den B-Operanden»
709826/0965
-Λ.
Multiplexer ausgewählt wird. Α-Operanden können ebenfalls über das Rechenwerk ALU-42 mit einer Konstanten geladen werden, die durch das Befehlsregister 24 festgelegt* und durch'den B-Operandenmultiplexer ausgewählt wird. Alternativ kann die Firmware arithmetische Operationen im Wortmodus ausführen, wobei eine Eingabe in das Rechenwerk gleichzeitig mit dem Überlauf des zuvor ausgeführten Rechenwerkbefehls erfolgt. Diese Möglichkeit wird benutzt, um Datenfelder mit mehreren Bytes, wie beispielsweise Speicheradressen, zu bearbeiten.
Der Akkumulator ALUAC-50 stellt ein 8 Bit-Register dar, das für die temporäre Speicherung eines Ausgangs des Rechenwerks ALU benutzt wird. Der Inhalt des Akkumulators kann zusätzlich um eine Bit-Position nach rechts verschoben werden, wobei der Verschiebeeingang den Wert Null aufweist. Obwohl lediglich Verschiebungen nach rechts von dem Akkumulator 50 ausgeführt werden können, können von dem Rechenwerk ALU-42 Verschiebeoperationen nach links mit jedem Α-Operanden durchgeführt werden.
Die Steuereinheit BDC benutztemen 256 χ 8 Bit-Zwischenspeicher-52 zur Speicherung der Daten, des Status, der Befehle usw.. Die in den Speicher 52 einzuschreibenden Daten kommen von dem A-Operandenmultiplexer, der jedem zugänglichen Register eine Funktion als Eingangsregister gestattet. Der Datenausgang des Speichers 52 istauf die A- und B-Operandenmultiplexer zurückgeführt. Der Zwischenspeicher-Adressenzähler SPMAC-54 ist ein 8-Bit-Zähler, dessen Zählstand erhöht werden kann oder mit dem Ergebnis einer Rechenwerksoperation geladen werden kann. Der Ausgang des Adressenzählers 54 ist auf die A- und B-Operandenmultiplexer geführt. Die sechs niedrigrangigsten Bits des Adressenzählers 54 gehen direkt .zum Adressen-Zwischenspeicher 52, während die zwei höchstrangigstsi Bits zu dem Zwischenspeicher-Adressenselektor SPMAS-56 gehen. Das Zwischenspeicher-Indexregister 32 weist eine Breite von 2 Bit auf und kann durch die Firmware mit einem spezifischen, in dem Steuerspeicher 22 enthaltenen Wert oder mit dem Ausgang des Kanalanforderungs-Prioritätsdecodierers 58 geladen werden. Der Inhalt
709826/0965
des Iniexregisters 32 legt den aktiven Kanal fest und wird zur Adressierung des Rückkehr-Adressregisters 30 benutzt, um die Geräteadapter freizugeben und den Zwischenspeicher 52 zu indizieren.
Der Zwischenspeicher-Adressenselektor 56 ist ein 2 zu 1 Multiplexer, der den Inhalt des Indexregisters 32 oder die zwei höchstrangigsten Bits des Adressenzählers 54 als die zwei bedeutendsten Adress-Bits des Zwischenspeichers 52 auswählt. Während der Ausführung der funktioneilen Firmware ist das Zwischenspeicher-Index-Steuer-Flip-Flop normalerweise auf "I" gesetzt, wodurch der Adressenselektor zur Ausgabe des Inhalts des Indexregisters 32 veranlaßt wird. Jeder Quadrant des Zwischenspeichers 52 ist einem besonderen Kanal zugeordnet. Die durch die fumktionelle Firmware erzeugten Adressen des Zwischenspeichers werden durch die Nummer des aktiven Kanals indiziert.
Eine Logik der Datenschiene erzeugt eine gemeinsame Verbindung zwischen der Datenschiene 12 und jedem Kanal der Steuereinheit BDC 10. Obgleich einige Logiksignale, wie beispielsweise das Kanalbereitschaftssignal,einem speziellen Kanal zugeordnet sind, ist der größte Teil der Datenschienen-Hardware allen Kanälen der Steuereinheit BDC gemeinsam. Datenschienerzyklen für die Steuereinheit BDC werden von dem Adressendecodierer 60 festgestellt, der die nebengeordnete Antwortlogik 6 2 freigibt. Wenn der adressierte Kanal ein Gerät und einen zugeordneten Geräteadapter aufweist, so wird eine ACK-,NAKτ oder Warte-Antwort erzeugt. Die Störeinheit BDC erzeugt keine Antwort, wenn kein Adapter angeschlossen ist. Wenn ein NAK-Zustand nicht besteht und wenn die Logik der Datenschiene nicht belegt ist, so wird die übertragung der Datenschiene zu einem Kanal mit einem angeschlossenen Adapter durch eine ACK-Antwort gebildet. Jede ACK-Antwort der Steuereinheit BDC auf eine Datenschienenübertragung führt zu einer Speicherung der Information auf den Adress- und Datenleitungen in dem Datenschienen-Schnittstellenregister 36. Zusätzlich ist der Status bestimmter Steuerleitungen in den Datenschienen-Status-
709826/0 9 65
Flip - Flops 62 gespeichert und die Datenschienenlogik befindet sich im Belegteustand, wodurch weitere Übertragungen zu der Steuereinheit gesperrt werden. Das Wesen der ACK-, NAK- und weiterer Antworten, ebenso wie Einzelheiten der Datenschienenlogikj können der zuvor erwähnten Patentanmeldung entnommen werden.
Wenn die Firmware die Übertragung von Information zu der Datenschiene 12 anfordert, so setzt sie die Datenschienenlogik in den Belegzustand und fährt sodann fort, das Datenschienen-Schnittstellenregister 36 und die Steuerlogik mit den erforderlichen Daten vor der Auslösung eines Datenschienenzyklus zu laden. Der Status der nebengeordneten Antwort mit Ausnahme einer Warte-Antwort ist in dem Datenschienen-Status-Flip-Flops 64 gespeichert und die Datenschienenlogik beharrt im Belegzustand,bis die Firmware die Beendigung des Datenschienenzyklus erkennt und den Status aufhebt. Das Datenschienen-Belegb-Flip-Flop dient der Synchronsierung bei der Benutzung der Datenschienenlogik durch die BDC-Firmware und durch andere Einheiten der Datenschiene. Ein anderes Flip-Flop wird gesetzt, wenn die Datenschienenlogik eine ACK-Antwort erzeugt, wobei sein Ausgang ein Datenschienen-Anforderungssignal für den Kanalanforderungs-Prioritätsdecodierer 58 erzeugt.
Jeder Geräteadapter erzeugt ein Datenanforderungssignal und ein Nicht-Datenanforderungssignal für den Kanalanforderungs-Prioritätsdecodierer 58. Das Datenanforderungssignal wird für den Hinweis auf das Vorhandensein eines Daten-Bytes benutzt, wobei das Daten-Byte aus dem Gerät herausgelesen oder in das Gerät eingeschrieben werden soll. Das Nicht-Datenanforderungssignal kann für den Hinweis auf eine Änderung des Gerätestatus verwendet werden. Jeder Adapter erzeugt ein Datenanforderungssignal und ein Nicht-Datenanforderungssignal pro Kanal. Der Kanalanforderungs-Prioritätsdecodierer 58 zeigt an, wenn eine Kanalanforderung aktiviert wird. Er ordnet ferner der Kanalanforderung eine Priorität zu, so daß jede Datenschienenanforderung Priorität gegenüber irgendeiner Datenanforderung aufweist und diese
709826/0965
wiederum Priorität gegenüber einer Nicht-Datenanforderung besitzt. Zusätzlich weist eine Datenanforderung des Kanals 1 Priorität gegenüber einer gleichen Anforderung des Kanals 4 auf.
Um die Steuereinheit BDC durch Anforderungen fehlerhafter Geräte nicht zu beeinflussen, werden durch die Firmware Adapteranforderungs-Freigabe-Flip-Flops 70 gesetzt, falls eine fehlerfreies Gerät während der Auslösung aufgrund seines Codes erkannt wird. Die Anforderungs-Freigabe-Flip-Flops verbleiben im zurückgestellten Zustand, wenn ein Gerät nicht angeschlossen ist. Die Firmware testet den Kanalanforderungsausgang des Prioritätsdecodierers 58, um sicherzustellen, ob eine Datenschienenanf orderung oder eine Adapteranforderung aufgetreten ist. Die Firmware kann ferner den Prioritätsdecodierer 58 testen, um festzustellen, ob die die'höchste Priorität aufweisende Anforderung eine Datenschienenanforderung oder eine Datenanforderung ist. Liegt weder eine Datenschienenanforderung noch eine Datenanforderung vor, so bedeutet dies, daß eine Nicht-Datenanforderung Priorität besitzt. Der Kanalanforderungs-Prioritätsdecodierer 58 weist zwei Signale auf, die der Nummer des Kanals mit der höchsten Priorität entsprechen. Diese zwei Signale werden in das Indexregister 32 geladen, bevor eine Kanalanforderung behandelt wird. Der Inhalt des Indexregisters 32 wird durch die Adapter-Freigabelogik 66 decodiert, die, wenn alle Adapter freigegeben sind, zu jedem Zeitpunkt nur einen Adapter freigibt, mit Ausnahme des Zustandes, wenn eine Vorranglöschung vorliegt.
Subsystem-Zustände, die durch Status-, Fehler- und Register-Bits beschrieben werden, sind der Firmware über den Testmultiplexer zugänglich.Test- und Springoperationen der Firmware kennzeichnen ein Signal und einen Signal zustand,, bei dem ein Sprung auftreten soll. Der Testmultiplexer 46 vergleicht den Zustand des bestimmten Signals mit dem bestimmten Signalzustand und sperrt das Mikroprogramm-Befehlsregister 24 für einen Zyklus, wenn die beiden einander gleich sind.
7098-26/0966
Verschiedene in dem System durchgeführte Tests umfassen den Test der Grundlogik, der aus einer Hardware-Abtastung mittels einer Abtastlogik 68 des Mikroprogramm-SteuerSpeichers 22,gefolgt durch einen Firmware-Basis-Logiktest; besteht. Die Abtastlogik 68 führt eine longitudinale Redundanzprüfung hinsichtlich jeder Bit-Position des Steuerspeicher durch, wobei überprüft wird, ob die Bit-Summe aller Speicherplätze gerade ist. Wenn kein Fehler am Ende der Abtastung festgestellt wird, geht die Hardware zu der nächsten Bit-Position weiter, bis alle Bit-Positionen überprüft worden sind. Die Abtastlogik 68 hält den Takt 34 an, wenn ein Fehler festgestellt wird.
Im folgenden sei die Firmware des Steuerspeichers 22 beschrieben, die im Blockdiagramm gemäß Figur 3 dargestellt ist. Der Basislogiktest BLT-72 wird durch eine Firmware-Routine repräsentiert, die die wesentlichen Logikkomponenten der Steuereinheit BDC überprüft, um festzustellen, ob die Steuereinheit BDC funktionsfähig ist. Die Geräteadapter werden durch den BasislogikrTest BLT-72 nicht überprüft.
Der Basislogik-Test wird immer dann ausgeführt, wenn eine Vorranglöschung 74 auftritt, die ein Flip-Flop in dem Basislogik-Test BLT zurückstellt und den Mikroprogramm-Adressenzähler 26 auf ■ "0" setzt. Bei einem erfolgreichen Testabschluß wird das Flip-Flop durch die Firmware wieder gesetzt. Der Basislogik-Test wird ebenfalls ausgeführt, wenn das Auslöse-Bit in einem Ausgangs-Steuerwort gesetzt ist.
Die Vorbereitungsroutine 76 wird nach Vollendung des Basislogik-Tests durchgeführt. Das erste Segment der Vorbereitungsroutine löst den Zwischenspeicher 52 aus und wird von dem Basislogik-Test als Subroutine benutzt. Das zweite Segment der Vorbereitungsroutine 76 gibt jedesmal einen Adapter frei und veranlaßt eine Verzweigung zu der Einsatzpunkt-Subroutine 78. Nach der Ausführung der Einsatzpunkt-Subroutine 78 und einer Geräte-Unterstützungsroutine 80 führt eine Unterbrechungsroutine 82
709826/0965
zurück auf die Vorbereitungsroutine 76, worauf der nächste Adapter freigegeben wird. Nachdem alle Adapter freigegeben und vorbereitet sind, verzweigt die Vorbereitungsroutine zur Warteroutine 84.
Die Warteroutine 84 testet den Kanalanforderungs-Prioritätsdecodierer 58 und das Wiederaufnahme-Unterbrechungs-Flip-Flopt um festzustellen, welche Firmware-Aktion erforderlich ist. Wenn eine Kanalanforderung aktiv ist, so lädt die Warteroutine 84 das Zwischenspeicher-Indexregister 32 mit der Nummer des anfordernden Kanals, der die höchste Priorität aufweist, wodurch die Logik der Steuereinheit BDC und des diesem Kanal zugeordneten Geräteadapters freigegeben wird. Nach dem Laden der Kanalnummer verzweigt die Warteroutine zu der Datenschienen-Anforderungsroutine 86, wenn eine Datenschienenubertragung zu der Steuereinheit BDC auftritt. Andernfalls kehrt sie zu der Geräte-Unterstützungsroutine 80 solange zurück, wie das Gerät sich im Bereitschaftszustand befindet. Liegen keine Kanalanforderungenvor, so testet die Warteroutine 84 das Wiederaufnahmeünterbrechungs-Flip-Flop und verzweigt zu der Wiederaufnahme-Unterbrechungsroutine 88, wenn das Flip-Flop gesetzt ist. Die Warteroutine 84 wartet bis eine Kanalanforderung auftritt oder bis das Wiederaufnahme-Unterbrechungs-Flip-Flop gesetzt wird und führt keine weitere Funktion außer der PrioritätsZuteilung hinsichtlich der Ausführung der Kanalanforderungen durch.
Die Warteroutine 84 lädt die anfordernde Kanalnummer und verzweigt zu .der Datenschienen-Anforderungsroutine 86, wenn sie · eine Datenschienenubertragung zu der Steuereinheit BDC feststellt. Wenn die DMA-Eingangs- und Ausgangs-Subroutinen 90 bzw. 92, die Unterbrechungsroutine 82 und die Wiederaufnahme-Unterbrechungsroutine 88 alle von ihnen ausgelöste Datenschienen-Übertragungen vollständig ausführen, so ist die die Anforderung veranlassende Datenschienenubertragung ein unaufgeforderter Datenschienenzyklus, der von der Zentraleinheit CPU-14 ausgelöst wurde.
709826/096B
Wenn keine Antwort erforderlich ist, so speichert die Datenschienen-Anforderungsroutine 86 die vorhandene Information aus den Daten- und Adressegmenten des Datenschienen-Schnittstellenregisters 36 im Zwischenspeicher 52 unter Benutzung des durch die niedrigrangigsten 6 Bits der Adresse gegebenen Funktionscodes. Die Daten werden sodann decodiert, wodurch die Datenschienen-Anforderungsroutine 86 zur Verzweigung nach der Vorbereitungsroutine 76, dem Basis-Logik-Test 72, der Geräteunterstützungsroutine 80 oder zurück zu der Warteroutine 84 veranlaßt wird, was jeweils von dem Funktionscode und dem Inhalt des Datenfeldes abhängt. Wenn eine Antwort angefordert wird, so nimmt die Datenschienen-Anforderungsroutine 86 auf den Zwischenspeicher 52 Zugriff, unter Benutzung des Funktionscodes und des Indexregisters 32 als eine Adresse. Die Daten des Zwischenspeichers 52 werden in das Datenschienen-Schnittstellenregister 36 geladen und der Antwortzyklus wird vervollständigt, bevor die Datenschienen-Anforderungsroutine 86 zurück auf die Warteroutine 84 verzweigt.
Die Geräte-Unterstützungsroutinen 80 verzweigen zu der Unterbrechungsroutine immer dann, wenn ein Potential-Unterbrechungszustand festgestellt wird oder wenn eine Auslösung aufgetreten ist. Die Ünterbrechungsroutine 82 tested den Auslösehinweis und verzweigt zu der Vorbereitungsroutine 76, wenn der Auslösehinweis gesetzt ist, worauf die Vorbereitungsroutine mit der Vorbereitung des nächsten Gerätes fortfährt. Wenn eine Auslösung nicht aufgetreten ist, so erzeugt die Unterbrechungsroutine eine Unterbrechung solange, wie der Unterbrechungspegel nicht den Wert "0" aufweist. Die während des Datenschienenzyklus zu verwendenden Daten sind im Zwischenspeicher 52 für eine Benutzung durch die Wiederaufnahme-Unterbrechungsroutine 88 gespeichert und der Unterbrechungshinweis wird gesetzt, wenn die Unterbrechung durch eine NAK-Antwort der Zentraleinheit CPU hervorgerufen wird. Danach verzweigt die Unterbrechungsroutine 82 auf die Warteroutine 84 zurück.
709826/0965
Die Warteroutine 84 verzweigt nach der Wiederaufnahme-Unterbrechungsroutine 88 immer dann, wenn keine Kanalanforderungen vorliegen und das Wideraufnahme-ünterbrechungs-Flip-Flop gesetzt ist. Danach verzweigt die Wiederaufnahme-Unterbrechungsroutine zu der Warteroutine. Die Wiederaufnahme-Unterbrechungsroutine 88 gibt jede:n Adapter der Reihe nach frei und sie überträgt diejenigen Unterbrechungen zurück, die bei der vorangegangenen Bearbeitung -.einerNAK-Antwort aufgetreten sind. Wenn ein Kanal keine Unterbrechung anfordert, so tritt keine Aktivität auf, was anhand des Unterbrechungshinweises in dem Kanalüberwachungs-Byte festgestellt wird. Die Wiederaufnahme-Unterbrechungsroutine setzt das Kanal-Bereitschafts-Flip-Flop und stellt den Unterbrechungshinweis zurück, wenn die zurückübertragene Unterbrechung bestätigt wird. Der Hinweis bleibt gesetzt und der Kanal verbleit im Belegzustand, wenn die zurückübertragene Unterbrechung nicht bestätigt ist. Alle unbearbeiteten Unterbrechungen werden erneut bearbeitet, unabhängig von der Antwort der Zentraleinheit CPU in Bezug auf frühere Unterbrechungen.
Die Einsatzpunkt-Subroutine 78 besitzt zwei Eingangsstellen, wobei die eine von der Vorbereitungsroutine 76 und die andere von der Warteroutine 84 und der Datenschienen-Anforderungsroutine 86 benutzt wird. Die von der Vorbereitungsroutine benutzte Eingangsstelle setzt den Auslösehinweis in dem Kanalüberwachungs-Byte, worauf zur zweiten Eingängsstelle weitergeschritten wird. Die zweite Eingangsstelle speichert den Geräte-Identifizierungscode im Zwischenspeicher 52 und benutzt sodann diesen Code, um festzustellen, welcher Gerätetyp mit dem Adapter verbunden ist. Wenn der Gerätetyp unterstützt wird, so speichert die Einsatzpunkt-Subroutine 78 den dem Gerät zugeordneten Betriebsbeginn-.Funktionscode und lädt die Subroutinen-Rückkehr-Adressregister mit der Startadresse der verwendbaren Geräte-Unterstützungsroutine 80. Zusätzlich setzt die Einsatzpunkt-Subroutine 78 das Kanal-Bereitschafts-Flip-Flop und gibt Geräteanforderungen für diesen Kanal frei. Die Einsatzpunkt-Subroutine kehrt sodann zu der Startadresse zurück/ die sie in das Adressregister 30 geladen hat.
709826/0965
Wenn ein Gerät nicht unterstützt wird, so lädt die Einsatzpunkt-Subroutine 78 das Adressregister 30 mit der Startadresse der Unterbrechungsroutine 82 und verzweigt zu der Unterbrechungsroutine ,ohne hierbei die Geräteanforderungen des Kanals freizugeben .
Die DMA-Soubroutinen90 und 92 werden von der Geräte-Unter-. Stützungsroutine 80 zum Zwecke der übertragung von Gerätedaten zu oder aus dem Hauptspeicher 16 benutzt. Nach einer solchen Übertragung kehren die DMA-Soubroutinen zu den Geräte-Unterstützungsroutinen zurück, wobei der Inhalt des Adressregisters SRAR-30 als Adresse benutzt wird. Die DMA-Subroutinen behandeln bei ihrer Ausführung jeweils ein Daten-Byte im Akkumulator 50. Sofern gefordert , lösen diese Subroutinen einen Datenschienenzyklus zum Hauptspeicher aus, um akkumulierte Daten auszulesen oder einzuschreiben. Die Subroutinen errechnen ebenfalls Adressen und Bereiche und sie kennzeichnen das Ende eines Bereiches für die Geräte-Unterstützungsroutine durch Setzen des Hinweises auf das Bereichsende in dem Kanalüberwachungs-Byte im Zwischenspeicher 52.
Die bis zu diesem Punkt beschriebene Firmware kann als ein allgemeines Betriebssystem betrachtet werden, das grundlegende Systemfunktionen ausführt. Geräte-Unterstützungsroutinen, die als Geräte-Behandlungsprogramme betrachtet werden können, führen zu spezifischen Gerätefunktionen. Beide Teile der Firmware sind erforderlich, um einen vorgegebenen Kanal voll zu unterstützen. Die Verwendung der Geräte-Unterstützungsroutinen ist jedoch für das Verständnis der vorliegenden Erfindung nicht erforderlich.
Der Zugriff, die Speicherung und die Decodierung der Mikrobefehle sollen nunmehr anhand von Figur 4 im einzelnen beschrieben werden. Der Mikroprogramm-Steuerspeicher 22 weist beispielsweise eine Breite von 16 Bit auf und wird durch einen programmierbaren Festwertspeicher (PROM) von 2048 Bit gebildet, die in Worten a 4 Bit angeordnet sind. Der Steuerspeicher 22 kann um jeweils 512 Worte bis zu einer maximalen Kapazität von 4096
709826/0985
Worten erweitert werden. Der Steuerspeicher wird während einer normalen Operation freigegeben, wenn die Steuereinheit BDC sich nicht einem Diagnostizier-rllodus befindet, was durch das TestmodUs-Flip-Flop TESTMOD-94 angezeigt wird, das durch Signale rückstellbar ist, die über ein ODER-Gatter 93 zugeführt werden. Wenn ein Steuerwort von der Steuereinheit BDC aufgenommen wird, das anzeigt, daß die Steuereinheit BDC in den Diagnostiziermodus eintritt, so führt die Datenschienen-Anforderungs-Firmware einen Befehl "Setze Testmodus" (STMCMD) durch, wodurch das Testmodus-Flip-Flop 94 gesetzt wird. Das Testmodus-Flip-Flop bringt im gesetzten Zustand den Takt der Steuereinheit BDC zum Stillstand und sperrt den Steuerspeicher 22. Zur gleichen Zeit wird das Diagnostizier-Befehlsgatter 38 freigegeben, wodurch Daten von dem Datenschienen-Schnittstellenregister 36 zu der Steuerspeicher-ODER-Schaltung 96 gelangen. Irgendeine Datenschienen-Übertragung zu der Steuereinheit BDC, die nach dem Setzen des Testmodus-Flip-Flops 94 auftritt, führt zur Erzeugung eines Taktzyklus, während welchem die Daten auf der Datenschiene durch die Testgatter 38 von dem Datenschienen-Schnittstellenregister 36 zu dem Befehlsregister 24 übertragen und als Mikrobefehl bearbeitet werden.
Das Mikroprogramm-Befehlsregister 24 weist eine Breite von 16 Bit auf und wird zur Speicherung des Ausgangs des Steuerspeichers 22 oder des Ausgangs des Testgatters 38 während eines Taktzyklus benutzt, in welchem der Mikrobefehl bearbeitet wird. Das Taktregister 24 wird' mit der Anstiegsflanke eines jeden Taktes durch CLKSIG+ bis zum Auftreten von CLRUPI getaktet, wodurch das Register auf "0" gestellt wird. Das Signal CLRUPI ist wirksam während der Vorranglöschung und während Zyklen, die aufgrund eines erfolgreichen Testbefehls übersprungen werden. Die Erzeugung dieser verschiedenen Signale und Befehle wird weiter unten erläutert.
Die drei höchstrangigsten Bits des Befehlsregisters 24 werden dem Operationscode-Decodierer 40 zugeführt, der eine 3 zu 8 Bit-Binärdecodierung durchführt, wodurch die Art des auszuführenden Mikro-
*■ 709826/0965
befehls festgelegt wird. Der Decodierer ist solange freigegeben, bis die Steuereinheit BDC eine Abtastung des programmierbaren Festwertspeichers durchführt oder solange bis der Befehlszähler 24 gelöscht wird. Eine Sperrung beim Vorliegen dieser Zustände wird durch das ODER-Gatter 95 vorgegeben. Die acht Ausgangssignale des Operationscode-Decodierers 40 zusammen mit anderen Bits in dem Befehlsregister 24 werden zur Steuerung der Steuereinheit BDC und der Geräteadapter-Hardware benutzt. Eine Beschreibung der Befehlsdecodierung wird später gegeben. Um die Ausführung der Firmware-Routinen zu beschleunigen, werden Verzweigang-sbefehle decodiert, wobei der Ausgang des Steuer Speichers 22 anstelle des Ausgangs des Befehlsregisters24 benutzt wird. Die Adresse für die Befehle "GO TO" wird ebenfalls dem Steuerspeicher 22 entnommen. Alle anderen Befehle werden aus dem Inhalt des Befehlsregisters 24 decodiert.
Der Mikroprogramm-Adressenzähler 26 ist ein 12-Bit-Zähler, der beim Beginn eines jeden Taktzyklus solange um 1T- erhöht wird, bis er von dem Signal CLRBDC gelöscht wird, das nur wirksam ist, wenn die Steuereinheit BDC durch eine Vorranglöschung ausgelöst wird. Der Zähler wird geladen, wenn das Signal LODUPA vorliegt, wodurch der Adressenzähler 26 auf die durch den Adressenselektor 28 vorgegebene Adresse voreingestellt wird. Das Signal LODUPA liegt während der Ausführung eines Befehles "GO TO" "(GROCMD) und während der Ausführung des Befehls "RETURN BRANCH" (RTNCMD) vor, wobei diese beiden Befehle über das ODER-Gatter 98 zugeführt werden. Die niedrigrangigsten 9 Bit des Adressenzählers UBAC-26 werden zur direkten Adressierung des programmierbaren Festwertspeichers des Steuerspeichers 23 benutzt, während die drei höchstrangigsten Bits der Mikroprogramm-Steuerspeicher-Freigabeeinheit UPCSE-100 zugeführt werden, die ein Freigabesignal für jede mögliche Reihe des Festwertspeichers erzeugt.
Der Adressenselektor UPAS-28 wählt eine der beiden Adressen zur Voreinstellung des Adressenzählers 26 aus. Das Bit 2 des Steuerspeichers 22 ist während eines Befehls "GO TO" auf "L" gesetzt,
709826/0965
■ 265784S
wodurch der Adressensolektor 28 veranlaßt wird, eine 12-Bit-Adresse auszügeben, die durch die Bits 4 bis 15 des Steuerspeichers 22 definiert ist. Wenn das Bit 2 des Steuerspeichers 22 auf "0" gesetzt, beispielsweise bei einem Rückkehrverzweigungsbefehl ("RETURN BRANCH"), so wählt der Adressenselektor eine 12-Bit-Ädresse aus, die durch das Rückkehradressregister bestimmt ist.
Das Adress-Register 30 ist eine Registerbank mit 12 Bit und weist vier Adressen auf, wobei jeweils eine Adresse einem Kanal zugeordnet ist. De Adresse des Adressregisters 30, die ausgelesen oder eingeschrieben wird, wird durch den Inhalt des Indexregisters SPMIR-32 bestimmt, wobei dieses Register die Nummer des zu diesem Zeitpunkt aktiven Kanals enthält. Die Firmware benutzt das Rückkehr-Adressregister 30 zum Speichern einer Adresse, auf welche bei einer späteren Verzweigung durch die gleiche Routine oder durch eine Subroutine zurückverzweigt wird. Zum Speichern einer Adresse gibt die Firmware einen Rückkehradressenladebefehl aus, der die Schreib-Freigabefunktion LODSRA erzeugt, wodurch die durch die Bits 4-15 des Befehlsregisters 24 festgelegte Adresse an dem durch das Indexregister 32 festgelegten Speicherplatz im Adressregister 30 gespeichert wird. Wenn die Firmware einen Rückkehrverzweigungsbefehl ausführt, wird der Inhalt des durch das Indexregister 32 vorgegebenen Speicherplatzes über das Adressregister 30 dem Adressenselektor 28 zugeführt und anschließend an den Adressenzähler 26 weitergegeben. Auf diese Weise veranlaßt der Rückkehrverzweigungsbefehl den Adressenzähler 26 zur Voreinstellung auf eine Adresse, die zuvor in dem Rückkehradressregister 30 gespeichert war.
Anhand von Figur 5 seien nunmehr das Rechenwerk 32 und der Akkumulator 50 in näheren Einzelheiten beschrieben. Der A-Operandenmultiplexer 102 wählt entsprechend einer 3-Bit-Adresse,die durch die Bits 3-5 des Befehlsregisters 24 festgelegt ist, eines von 8 Datenfeldern aus. Entsprechen die A-Operanden den Werten 4-7, so wählt der Multiplexer 102 den
709826/0985
Ausgang der Adapter-Datenselektoren an, die eines von vier Feldern entsprechend den Bits 4 und 5 des Befehlsregisters 24 auswählen. Der Ausgang der Adapter-Datenselektoren wird in der Steuereinheit BDC einer ODER-Verknüpfung unterzogen und nur dem A-Operandenmultiplexer 102 zugeführt. Nur der aktivierte Adapter gibt den Ausgang seines Datenselektors frei. Wenn ein Adaptergesperrt ist, so nimmt sein Datenselektorausgang den Zustand einer hohen Impedanz ein. Die 8 Bits am Ausgang des Multiplexers 102 werdein Rechenwerk ALU-42, dem Test-Multiplexer 46, dem Zwischenspeicher 52 und dem Datenschienen-Schnittstellenregister 36 zugeführt.
Der B-Operanden-Multiplexer 104 wählt eines von vier Datenfeldern als Eingang B für das Rechenwerk 42 aus. Der Operand B ist explizit während der Rechenwerksbefehle durch die Bits 6 und des Befehlsregisters 24 definiert. Bei anderen Befehlen wird der Fehlerausgang des B-Multiplexers durch das Befehlsregister mit den Bits 6 - 10, 12 und 14-15 gebildet, die eine Datenkonstante während Konstanten-Befehlen bilden. Die Adresse für den B-Operandenmultiplexer 104 wird durch die Signale ALUBS1 und ALUBS2 erzeugt, die über NAND-Gatter 106 und 108 zugeführt werden, wobei diese Gatter von Signalen des Registers 24 freigegeben werden.
Das Rechenwerk ALU-42 führt arithmetische oder logische Operationen mit 8 Bit unter Benutzung"der Daten am Ausgang der A- und/oder B-Operandenmultiplexer durch. Die Art des ausgeführten Operation wird durch die Modussignale, die Übertragsfreigäbe und den Übertragseingang festgelegt. Die 4 Modussignale, das Übertragsfreigabesignal und das Übertragseingabesignal werden durch das Befehlsregister 24 während der Rechenwerksbefehle, die einen Operationscode von 3 aufweisen, explizit definiert. Zusätzlich kann die Firmware den Übertragseingang während arithmetischer Operationen als Übertragsausgang festlegen, wenn der letzte Rechenwerksbefehl ausgeführt wird. Dies wird durch den Zustand des Flip-Flops ALUCOS vorgegeben. Wenn ein Rechenwerksbefehl nicht bearbeitet wird, nehmen die Signale ALUMD3 (Ausgang des NAND-Gatters- 110), ALUMD1+ (Ausgang des NAND-Gatters 112) und
709826/0965
ALUMCE- (Ausgang des NAND-Gatters 114) den fehlerhaften Wert "1" ein. Die Rechenwerks-Modus-Bits UPIR11+ und UPIR13+ weisen keinen Fehlerzustand auf, wodurch der Fehlerausgang des Rechenwerks entsprechend den Bits 11 und 13 des Befehlsregxsters 24 variieren kann. Das über die Gatter 116, 118 und 120 erzeugte Signal ALUCIN verweist darauf, daß dieserOperation keine Beachtung zu schenken ist. Diese 2 Bits (UPIR11+ und UPIR13+) sind während Konstanten-Befehlen und während Geräteadapter-Befehlen definiert, wodurch das Rechenwerk zur Ausführung einer von vier Operationen veranlaßt wird.
Der Datenausgang des Rechenwerks ALU ist auf den Akkumulator 50, den Zwischenspeicher-Adressenzähler 54 und zu Verstärkern geführt, die den Ausgang des Rechenwerks auf die Geräteadapter schalten. Zusätzlich ist jedes Bit am Ausgang des Rechenwerks auf ein Netz von Invertern geführt, die eine UND-Verknüpfung durchführen und deren Ausgänge auf verschiedene Status-Flip-Flops geschaltet sind. Diese Status-Flip-Flops ALUEQZ-122, ALUEQF-124 und ALUCQT-126 werden durch ein Signal LODALU getaktet, das während der Rechenwerksbefehle auftritt. Auf diese Weise werden die ALU-Status-Flip-Flops gesetzt oder zurückgestellt, wenn ein Rechenwerksbefehl ausgeführt wird und sie bleiben in diesem Zustand während des Firmware-Tests bis zum nächsten Rechenwerksbefehl. Die Status-Flip-Flops ALUEQZ und AOJEQF zeigen an, wenn der Rechenwerksausgang in allen Bit-Stellen den Wert "0" bzw. "1" aufweist. Andererseits zeigt das Status-Flip-Flop ALUCQT-126 an, wenn ein Übertragsausgang am Rechenwerk ALU-42 vorliegt, der, wenn sich das Rechenwerk im Subraktionsmodus befindet, zur Anzeige der raltiven Größen der A- und B-Operanden dienen kann. Für Diagnosezwecke kann jedes der ALU-Status-Flip-Flops unabhängig von dem Rechenwerk durch das Signal SETREG gesetzt und unabhängig von dem Rechenwerk durch das Signal CLRREG zurückgestellt werden. Beide Signale SETREG und CLRREG können durch einen Firmware-Befehl aktiviert werden. Das Signal CLRREG ist ebenfalls während einer Vorranglöschung wirksam und veranlaßt die ALU-Status-Flip-Flops zur Annahme des Zustandes "0" nach einer Vorranglöschung.
709826/0965
ΊΟ-
Der Akkumulator 50, der ebenfalls durch das Signal CLRREG zurückgestellt wird, ist ein 8 Bit-Register, das zur temporären Datenspeicherung benutzt wird. Der Akkumulator 50 kann ebenfalls Verschiebeoperationen nach rechts durchführen, wobei der Inhci.lt um eine Bit-Position nach rechts verschoben wird und der Verschiebeeingang immer den Wert "0" aufweist. Die Operation des Akkumulators wird durch den Zustand der Lade-Auswahlleitungen ACULSO (Ausgang des NAND-Gatters 128) und ACULS1 (Ausgang des NAND-Gatters 130), das Löschsignal CLRREG und das Taktsignal CLKSCB festgelegt. Der Ausgang des Akkumulators 50 ist auf die A- und B-Operandenmultiplexer 102 und 104 geführt.
Der Zwischenspeicher 52 und die Adressierung desselben soll anhand von Figur 6 im folgenden näher erläutert werden. Der Zwischenspeicher 52 ist ein 256 χ 8 Bit-Lese/Schreib-Speicher, der zur Speicherung der Information benutzt wird, wie sie von jedem Kanal angefordert oder erzeugt wird. Daten von dem A-0peranden~ multiplexer 102 werden in den Zwischenspeicher 52 während eines Speicher-Schreibbefehls (MWTCMD) an dem durch die Bits 0 und 1 des Adressenselektors 56 und die Bits 2 bis 7 des Adressenzählers 54 festgelegten Speicherplatz eingeschrieben. Wenn der Eingang des Zwischenspeichers 52 durch den Ausgang des Multiplexers gebildet wird, so kann jedes der Firmware zugängliche Register als internes Eingangsregister benutzt werden. Der Ausgang des Zwischenspeichers 52 ist auf die A- und B-Operandenmultiplexer zurückgeführt. Der decodierte Speicher-Schreibbefehl wird mit dem Taktsignal CLKSTB einer UND-Verknüpfung unterzogen, um den Schreibimpuls MWTCMD zu erzeugen. Der Schreibimpuls tritt vor dem Ende eines jeden Zyklus auf, um die Datenvorbereitung und Einspeicherung sicherzustellen.
Der Adressenzähler SPMAC-54 ist ein 8-Bit-Zähler, der mit dem Ausgang des Rechenwerks ALU geladen oder dessen Zählstand jeweils erhöht werden kann. Der Rechenwerksausgang ALUOT wird in den Adressenzähler 54 mit dem Taktsignal CLKSTB immer dann geladen, wenn das Signal LODSPA, d.h. der Ausgang des Gatters 132 aktiviert ist. Das Steuersignal LODSPA wird für jene Rechenwerksfoöfehle erzeugt, die festlegen, daß der Adressenzähler mit dem
709826/0965
Rechenwerksausgang (LDASPA und LDBSPA) geladen werden soll und es wird für Konstantenbefehle erzeugt, die den Adressenzähler 54 als Α-Operanden (CONSPA) benutzen.
Der Adressenzähler 54 wird immer dann um 1 erhöht, wenn das Steuersignal WIAIMA (Ausgang des Gatters 134) beim Vorliegen des Taktsignales CLKSTB aktiviert ist, wodurch der Inhalt des Adressenzählers 54 um 1 erhöht wird. Das SteuersignaLWIAIMA wird während eines Speicheradressen-Erhöhungsbefehls (IMACMDJsirzaigtv wenn das WIAFLP-F lip-tFlop 136 gesetzt ist. Das Flip-Flop 136 wird während der Ausführung eines Schreib- und Adressenerhöhungsbefehls (WIACMD) gesetzt und ein Zyklus nach diesem Befehl zurückgestellt. Auf diese Weise wird der Zählstand des Adressenzählers 54 immer dann einen Zyklus nach der Schreiboperation um 1 erhöht, wenn ein WIA-Befehl ausgeführt wird. Das Steuersignal CLRREG stellt sowohl den Adressenzähler als auch das Flip-Flop 136 auf„θ"zurück. Das Steuersignal CLRREG wird durch eine Vorranglöschung und durch einen Firmware-Befehl erzeugt.
Das SPM-Index-Steuer-Flip-Flop 138 wird während eines Setzoder Rückstell-Indexbefehls (SRICMD) gesetzt oder zurückgestellt, wobei dies entsprechend dem Zustand des Bit 9 des Befehlsregisters (ÜPIRO9) erfolgt. Das Flip-Flop 138 wird sodann zu jedem Zeitpunkt zurückgestellt, wo das Steuersignal CLRREG vorliegt. Der Ausgang des Flip-Flops 138 legt die Zwischenspeicheradresse fest. Wenn das Index-Steuer-Flip-Flop 138 zurückgestellt ist, so wird der Zwischenspeicher 52 durch den 8-Bit-Inhalt des Zwischenspeicher-Adressenzählers 54 adressiert. Wenn das Index-Steuer-Flip-Flop 138 gesetzt ist, so wird die Zwischenspeicheradresse durch den Inhalt des Indexregisters 32 indiziert. Das Index-Steuer-Flip-Flop 138 ist normalerweise gesetzt, mit der Ausnahme, wenn die Firmware den Zwischenspeicher 52 unabhängig von der freigegebenen Kanalnummer zu adressieren wünscht.
709826/0985
In einem Ausführungsbeispiel kann die Steuereinheit BDC an bis zu vier Geräte angeschlossen sein. Obwohl sich jedes Gerät simultan im Belegzustand befinden kann, prüft die Steuereinheit BDC im Multiplexbetrieb die Kanalaktivität und benutzt das Indexregister 32, um festzustellen, webher Kanal zu jedem gegebenen Zeitpunkt aktiv ist. Der Inhalt des Indexregisters 32 wird zur Adressierung des Zwischenspeichers 52 und des Rückkehradressregisters-3O benutzt und er legt ebenfalls fest, welcher Adapter zur Ausführung von Firmware-Befehlen freigegeben ist. Das Indexregister 32, das eine Breite von 2 Bit aufweist, kann mit einer spezifischen Kanalnummer (UPIR, 12-13) oder mit der durch den Kanal -Anforderungs-Prioritätsdecodierer (CRENX, 0-1) festgelegten Kanalnummer geladen werden. Der Eingang des Indexregisters wird entsprechend dem Bit 11 des Befehlsregisters (UPIR,11) ausgewählt und immer dann geladen, wenn das Signal LODSPI vorliegt.
Der Adressenselektor 56 ermittelt die zwei signifikantesten Bits der Zwischenspeicheradresse. Wenn das Index-Steuer-Flip-Flop 138 gesetzt ist, so wählt der Adressenselektor 56 den Inhalt des Indexregisters 32 als Ausgang aus. Wenn das Index-Steuer-Flip-Flop 138 zurückgestellt ist, so entspricht der Ausgang des Adressenselektors56 den zwei höchstrangigsten Bits des Adressenzählers 54. Die Firmware indiziert normalerweise den Zwischenspeicher 52, wodurch der Speicher in Quadranten unterteilt wird, wobei jedem Kanal ein Quadrant zugeordnet ist. Jeder Quadrant des Zwischenspeichers besitzt die gleiche Topologie; jedoch kann" die Aktivität in einem Quadrantenmit dem an den Kanal angeschlossenen Gerätetyp variieren.
Die Kanalsteuerung der Steuereinheit BDC und der Adapter sei nunmehr näher erläutert. Ein Kanal besteht aus der Steuereinheit BDC, dem Geräteadapter und dem Gerät. Die vollständige Kanalsteuerung ergibt sich aufgrund einer Kombination von Hardware und Firmware. Kanal-Bereitschafts-Flip-Flops sind für jeden Kanal vorgesehen und werden zur dynamischen Begrenzung der Verfügbarkeit eines Kanales benutzt.' Ein Kanal ist normalerweise solange im Bereitschaftszustand, bis eine Geräteoperation oder eine Unterbrechung
709826/0965
bearbeitet wird. Die Kanal-Bereiratschafts-Flip-Flops werden während einer Vorranglöschung alle zurückgestellt und sie bleiben zurückgestellt, bis die Firmware nach dem Basis-Logik-Test den Kanal in den Bereitschaftszustand zurückbringt. Jeder Datenschienenzyklus zu der Steuereinheit BDC wird einerNAK-Antwort unterzogen, da das zurückgestellte Bereitschafts-Flip-Flop in den meisten Fällen eine NAK-Antwort auf den Datenschienenzyklus verursacht. Der Steuereinheit BDC können bis zu vier Geräte zugeordnet sein, wobei sich jedes gleichzeitig in Betrieb befinden kann. Ein Adapter-Freigabegatter erzeugt ein Freigabesignal für jeden Kanal unter Benutzung des Inhalts des Indexregisters 32 des Zwischenspeichers, um festzulegen, welcher Adapter freizugeben ist. Jene Adapter, die nicht freigegeben werden, unterdrücken alle Steuerfunktionen der Steuereinheit/ Adapter-Schnittstelle und sie sperren ebenfalls ihre Datenselektorausgänge, wodurch die Firmware der Steuereinheit BDC den Nachrichtenaustausch mit einem einzigen Adapter zu jedem, gegebenen Zeitpunkt gestattet. Die Freigabesignale begrenzen sodann den Dialog zwischen der Steuereinheit BDC und den Adaptern auf einen Adapter zu jedem Zeitpunkt aber sie beeinflussen in keiner Weise den Dialog zwischen den Geräten und den Adaptern.
Jeder Adapter erzugt zwei Signale für die Steuereinheit BDC, welche darauf verweisen, daß einmal der Adapter eine Datenanforderung oder zum anderen eine Nicht-Daten- oder Serviceanforderung aufweist. Daten- und Serviceanforderungen sind zu allen Zeitpunkten gültig, auch wenn ein Adapter nicht freigegeben ist und sie werden benutzt, um festzustellen, welche Kanalaktivität von der Steuereinheit BDC angefordert wird. Jeder Kanal"besitzt ein Flip-Flop, das die Firmware benutzt, um Adapterahforderungen freizugeben. Diese Flip-Flops werden einzeln durch Firmware-Befehle gesteuert, wobei die Flip-Flops durch das Bit 15 des Befehlsregisters 24 gesetzt oder zurückgestellt werden. Alle Adapter-Anforderungs-Freigabe-Flip-Flops werden während einer Vorranglöschung zurückgestellt, die alle Anforderungen bis zu der Zeit blockiert,bis die Firmware die Flip-Flops setzt.
709826/0965
Im freigegebenen Zustand fordert der Adapter Signale für den Kanal-Anforderungs-Prioritätsdecodierer 58 an. Datenschiene-Anforderungssignale werden ebenfalls zu dem Anforderungsdecodierer 58 gesendet, wodurch angezeigt wird, daß die Steuereinheit BDC einen Datenschienenzyklus angenommen hat. Der KanaldecodLerer 58 ordnet den Kanalanforderungen Prioritäten zu, wobei den Datenschienenanforderungen die höchste Priorität, den Datenanforderungen die zweite Priorität und den Bedienungsanforderungen die geringste Priorität zugeordnet wird. Der Codierer ordnet Anforderungen des gleichen Typs durch die Kanalnummer ebenfalls Prioritäten zu, wobei der Kanal 1 die höchste Priorität und der Kanal 4 die niedrigste Priorität aufweist. Der Ausgang des Kanal-Anforderungs-Prioritätsdecodierers 58 gibt einen Hinweis auf eine aktive Anforderung sowie darauf, ob die höchste Priorität eine Datenschienenanforderung oder eine Datenanforderung darstellt und ob die Kanalnummer der höchsten Prioritätsanforderung entspricht. Eine Bedienungsanforderung wird durch die Abwesenheit einer Datenschienenanforderung oder einer Datenanforderung angezeigt.
Anhand von Figur 7 sei nunmehr der Testmultiplexer 46 näher erläutert. Die Programmierbarkeit der Firmware wird aus der Ausgestaltung der Testdaten, deffi Status und den Fehlern innerhalb des Subsystems abgeleitet. Testbefehle legen ein Testfeld und eine Testbedingung fest. Der nächste Befehl der Folge wird übersprungen, wenn der Zustand des Testfeldes der Testbedingung entspricht. Der Inhalt aller Testfelder wird auf einen der Testmultiplexer 140-0 bis 140-5 gegeben, deren Ausgangssignale mit TSTXBO bis TSTXB5 bezeichnet sind. Diese Multiplexer benutzen die drei niedrigrangigsten Bits des 6-Bit-Feldes des Registers 24, so daß mit dem Testfeld einer von acht Ausgängen ausgewählt werden kann. Die höchstrangigsten 3 Bits des Testfeldes werden zur weiteren Auswahl des Testfeldes durch den Multiplexer 142 benutzt. Der Zustand des Testfeldes, wie er durch die Ausgänge des Multiplexers 142 definiert ist, wird mit der Testbedingung verglichen, die durch entsprechende Bits des Registers 24 vor-, gegeben ist, wobei das Test-Gültigkeitssignal TSTVLD+ bei
709826/0965
erfülltem Vergleich den Wert "1" einnimmt. Das Test-Gültigkeitssignal wird, hierbei'durch die NAND-Gatter 144, 146 und 148 erzeugt. Ein gültiger Test wird in dem Mikroprogramm-Lösch-Flip-Flop 150 aufgezeichnet, das mit seinem Signal CLRUPI den Befehlszähler 24 während des nächsten Taktzyklus löscht. Wenn der Test nicht gültig ist, so wird das Befehlsregister 24 nicht gelöscht und der nächste Befehl der Folge normal bearbeitet.
Anhand von Figur 8 sei nunmehr der Takt und die Taktsteuerung näher erläutert. Die entsprechenden Impulsdiagramme sind in Figur 9 dargestellt. Der Ausgang eines 8 MHz-Kristalloszillators, der das Signal CLKOSC+00 liefert, wird entsprechend unterteilt, um einen 250 ns-Taktzyklus zu erhalten. Zwei Taktsignale CLKSIG+OO und ein Takt-Strobosignal CLKSTB+OO werden während jedesTaktzyklus zur Steuerung der Steuereinheit BDC und der Adapter-Hardware erzeugt. Das Täktsignal-Flip-Flop 154 ist ein JK-Flip-Flop, das seinen· Zustand mit der negativen Flanke des Signales CLKOSC+00 ändert, sofern seine-Eingangssignale den Wert "1" aufweisen. Wenn das Halte-Flip-Flop 156 gesetzt ist, so weist der J-Eingang den Wert "0" auf, worauf das Taktsignal-Flip-Flop 154 zurückgestellt wird oder zurückgestellt'tbleibt. Das Taktsignal CLKSIG-OO Wird durch den Inverter 158 in ein Signal CLKSIG+10 umgewandelt und einer mit Abgriffen versehenen Verzögerungsleitung 160 zugeführt, die eine Gesamtverzögerung von 100 ns aufweisen mag. Der 40 ns-Abgriff und der 90 ns-Abgriff werden zur Erzeugung eines Strobosignales CLKSTB+OO benutzt, das über einen Treiber 162, einen Inverter 164 und ein Gatter 166 gebildet wird und während des letzten Teiles eines jeden Taktzyklus auftritt. Das Strobosignal ist so dimensioniert, daß es eine minimale Breite von 35 ns. aufweist und zu einem Zeitpunkt innerhalb des Taktzyklus auftritt, der für die Datenvorbereitung und die Einspeicherung im"Zwischenspeicher 52 ausreichend ist. Das Strpbosignal wird ferner zum Takten der Register innerhalb der Steuereinheit BDC und der Adapter verwendet. Der BDC-Takt, der ohne Unterbrechung in der normalen Operation abläuft, wird immer dann angehalten, wenn das Halte-Flip-Flop 156 gesetzt wird. Das Signal CLKHLT+10
709826/0965
des Halte-Flip-Flops kann durch die Eirmware gesetzt werden, wenn ein kritischer Fehler festgestellt und die Steuereinheit BDC angehalten wird.,oder wenn in einen Testmodus eingetreten wirdfund es kann durch die Hardware gesetzt werden, wenn ein Steuerspeicherfehler festgestellt wird. Hinsichtlich der Firmware wird das Halte-Flip-Flop bei der Ausführung eines Haltebefehls HLTCMD-gesetzt, der über das NAND-Gatter 168 empfangen wird und das Signal CLKHLT+pO zur Annahme des Wertes "1" veranlaßt. Außer im Testmodus wird die Haltebedingung durch das Signal RECHLT-solange zirkuliert, bis eine Vorranglöschung auftritt.
Wenn das Testmodus-Flip-Flop 170 gesetzt ist, wird jedoch das Signal RECHLT- jedesmal dann unwirksam, wenn die Steuereinheit BDC einen Datenschienenzyklus annimmt. Der nächste Wechsel des Signales CLKOSC-10 des Taktoszillators 152 stellt das Halte-Flip-Flop 156 zurück, da das Signal CLKHLT+00 den Wert "0" und das Signal RECHLT- den Wert "1" aufweist. Das zurückgestellte Halte-Flip-Flop 156 legt den Wert "1" an den J-Eingang des Taktsignal-Flip-Flops 154, wodurch dieses bei der zweiten Änderung des Signales CLKOSC+00 seinen Zustand ändert. Das Taktsignal CLKSIG+OO wird über das NAND-Gatter 172 zurückgeführt, um einen Dateneingang mit dem Wert "1" für das Takt-Halte-Flip-Flop zu erzeugen, wodurch dieses während des dritten Wechsels des Signals CLKOSC-10 am Ausgang des Inverters 174 gesetzt wird. Auf diese Weise wird ein Taktzyklus während des Testmodus für jede Datenschienenübertragung zu der Steuereinheit BDC erzeugt. Das das Signal TSTMOD+00 liefernde Testmodus-Flip-Flop 170 wird durch den Firmware-Befehl STMCMD+ gesetzt und verbleibt aufgrund des Signales RECMOD- im gesetzten Zustand bis eine Vorranglöschung auftritt, oder bis ein Befehl auf der Datenschiene empfangen wird, der den Testmodus und das Halte-Flip-Flop zurückstellt. Zusätzlich zur Steuerung der Taktfortschaltung steuert das Testmodus-Flip-Flop 170 auch den Eingang des Mikroprogramm-Befehlsregisters 24. Im gesetzten Zustand sperrt das Testmodus-Flip- Flop 170 den programmierbaren Festwertspeicher und gibt den Testmoduseingang für das Befehlsregister 24 frei.
709626/0965
Anhand von Figur 10 ist die Abtastlogik 80, wie sie in der Steuereinheit BDC enthalten ist, dargestellt, die die Unversehrtheit des Mikroprograiran-Steuerspeichers 22 sicherstellt. Diese Logik führt eine longitudinale Prüfung hinsichtlich jeder Bit-Position des Steuerspeichers 22 durch und veranlaßt ein Anhalten des BDC-Taktes 34, wenn ein Fehler festgestellt wird. Wenn keine Fehler festgestellt werden, fährt die Steuereinheit BDC mit der Ausführung des Firmware-Teiles des Basislogiktestes weiter. Das Signal SCNMOD+00 des Abtastmodus-Flip-Flops 176 wird mit dem Vorranglöschsignal MSTCLR- gesetzt, wodurch der Operationscodedecodierer 40 und alle Verzweigungsbefehle gesperrt werden. Wenn alle Befehle gesperrt sind, lädt die Steuereinheit BDC das Befehlsregister 24 mit dem Ausgang des Steuerspeichers 22 und erhöht den Adressenzähler 26 um "1" während jedes Taktsignales, wodurch auf den nächsten Speicherplatz im Steuerspeicher 22 verwiesen wird. Dieses Verfahren wird;ausgehend vom Speicherplatz 000 bis zum Speicherplatz FFF, im Steuerspeicher 22 durchgeführt, wobei zuletzt ein überlauf des Adressenzählers 26 durch das Signal UPAC2C+ angezeigt wird. Der Adressenzähler 26 wird daraufhin auf "0" zurückgestellt, wonach eine weitere Abtastung des Steuerspeichers erfolgt. Die Signale SCNBSH+OO und SCNBSL+OO der Abtast-Bit-Selektoren 182 und 184 wählen 1 Bit des Mikroprogramm-Befehlsregisters 24 aus, wobei der Ausgang des Abtast-Bit-Adressenzählers 178 als Adresse benutzt wird. Das ausgewählte Befehlsbit SCNBSO+00 bildet das Signal für die EingängeJ und K des Abtast-Bitsummen-Flip-Flops 186, das das Signal SCNBSM+OO erzeugt. Das Flip-Flop 186 führt beim Beginn eines jeden Taktzyklus eine Halbaddition des ausgewählten Bits mit seinem vorangegangenen Inhalt durch. Am Ende der Abtastung des Steuerspeichers 22 hat das Flip-Flop 186 alle Speicherplätze des Steuerspeichers 22 addiert und das Ergebnis muß 0 sein, falls kein Fehler vorliegt. Wenn die Abtast-Bitsumme am Ende einer Abtastung nicht 0 ist, so weist das Abtastfehler-Gatter 188 mit seinem Signal SCNERR+OO den Wert "1" auf, wodurch das Abtastfehler-Flip-Flop 190 gesetzt wird, das das Signal UPIERR+OO ausgibt.
709826/0965
Das Abtastfehler-Flip-Flop 190 veranlaßt einen Stop des BDC-Tak-tes und der Inhalt des Abtastbit-Adressenzählers 178 zeigt an, welches Bit des Mikroprogramm-SteuerSpeichers 22 fehlerhaft ist.
Wird am Ende einer Abtastung kein Fehler festgestellt, so wird der Abtastbit-Adressenzähler 178 aufgrund des Überlaufs des Mikroprogramm-Adressenzählers 126 um 1 erhöht und der Adressenzähler 26 auf 0 zurückgestellt. Die Abtastoperation wird unter Benutzung des nächsten Bits des Befehlszählers 24 als Eingänge J und K für das Abtastbit-Summen-Flip-Flop 186 erneut durchgeführt. Die Abtastoperation wird solange fortgesetzt, bis ein Fehler festgestellt wird oder bis alle Bits überprüft worden sind, wobei im letzteren Fall der Abtastbit-Adressenzähler 178 über-L'äuft und das Signal SCNBAC+00 erzeugt, welches das Abtastmodus-Flip-Flop 176 zurückstellt. Bei der Rückstellung des Flip-Flops 176 werden der Operationscodedecodierer 40 und die Verzweigungsbefehle freigegeben und der normale Ablauf der Firmware gestartet.
Die nachfolgende Erläuterung der Firmware der Steuereinheit BDC wird erleichtert, wenn man sich ins Gedächtnis ruft, daß der Zwischenspeicher 52 in vier Quadranten unterteilt ist, wobei jeweils ein Quadrant einem Kanal zugeordnet ist. Die Topologie der Speicherplätze eines jeden Quadranten ist jeweils gleich und stellt sich folgendermaßen dar (Leeradressen bleiben unbenutzt)
709826/0965
Adresse
Mnemonisch -Inhalt
OO
02 03 04 05 06 07 08 09 OA OB OC OD OE OF 10
12
15
18
1A 1B 1C ID 1E 1F 20 21
CWD1 CWD ILC1 ILC SFC1
TSK1 TSK2 ADR1 ADR2 M0D1
RNG1 RNG
CNF1 CNF CNF CNF
STS1 STS2 Steuerwort, LSB
Steuerwort, MSB
ünterbrechungspegel, LSB Unterbrechungspegel, MSB Start-Funktions-Code
Task, LSB
Task, MSB
Adresse, LSB
Adresse, MSB
Modul
Bereich, LSB
Bereich, MSB
Konfigurationswort.1,. LSB Konfigurationswort 1, MSB Konfigurationswort 2, LSB Konfigurationswort 2, MSB
Status, LSB
Status, MSB
DTA1 DTA2 Daten, LSR
Daten, MSB
?09826/0965
Adresse Mnemonisch
22
23
24 MON1
25. ' DMS1 .
26 DID1
27 DID2
28 DHN1
29 DHN2 '
2A CPC1
- 2B CPC2
2C IDF1
2D IDF 2
2E WL01
2F WLO 2
30 WLO 3
31 WLO 4
32 WL05
33 WLO 6
34 WL07
35 WLO 8
36 WL09
37 WL10
38 WL11
39 WL12
3A WL13
2B WL14
3C WL15
3D WL16
3E WL17
3F WL18
Inhalt
K an alüberwachung DMA-S teuerung Geräteidentifikation, LSB Geräteidentifikation, I.D.,MSB Kanalnummer, LSB Kanalnummer, MSB CP's Adresse, LSB CP's Adres se, MSB ünterbrechungsvektor, LSB Unterbrechungsvektor, MSB
arbeitsfähige Speicherplätze
709826/0905
Anhand von Figur 11 sei im folgenden der Basis-Logik-Test 72,
mit
der in Zusammenarbeit der Firmware erzeugt wirdj näher erläutert.
Der Basis-Logik-Test führt verschiedene Tests hinsichtlich der Hardware-Komponenten der Steuereinheit BDC durch. Eine zufriedenstellende Durchführung· des Tests blt wird durch die Erzeugung eines Signales angezeigt, das beispielsweise eine lichtemittierende Diode einschaltet. Der Basis-Logik-Test wird durch eine Vorranglöschung 192 oder durch die Firmware der Steuereinheit BDC (Datenschiene-Anforderungsroutine 86) bei der Feststellung eines AuslöseBeföhls in einer Ausgangs-Steuerwort-Datenschiene-Folge gestartet. Der Basis-Logik-Test BLT beginnt nachdem die Hardware die Abtastung des Mikroprogramm-Steuerspeichers 22 vollendet hat, wobei er die folgenden Funktionen ausführt. Die folgenden Positionsziffern sind auf die entsprechenden Funktionsblöcke innerhalb des Flußdiagrammes gemäß Figur 11 bezogen.
11-1. Die Auslösung erfolgt für den Fall, daß der Basislogiktest nicht durch eine Vorranglöschung hervorgerufen wurde. DieAuslösung veranlaßt die Hardware zur Annahme des Auslösezustandes.
11-2. Der Verzweigungstest überprüft die Operation des Subroutine-Rückkehr-Adressregisters 30, des Testmultiplexers 46, des Mikroprogramm-Ädressenselektors 28 und des Mikroprogramm-Adressenzählers, 26 durch Ausführung von Testbefehlen und Verzweigungsbefehlen .
11-3. Ein Fehler während des Verzweigungstestes veranlaßt den Stop der Steuereinheit BDC und führt zu einem Aufleuchten der lichtemittierenden Diode auf der Steuertafel der Steuereinheit BDC.
11-4. Der Statustest benutzt Testbefehle, um zu überprüfen, ob bestimmte Status- und Fehler-Flip-Flops währendder Auslösung im Schritt 1 gelöscht worden sind.Die gleichen Flip-Flops werden sodann gesetzt und auf ein Umkippen beim Auftreten von Fehlern geprüft.
709626/0965
11-5. Der Rechwerktest benutzt den Inhalt des Akkumulators 50, der während der Auslösung zurückgestellt wird, um zu überprüfen, ob die Modus-, Übertrags freigäbe- und Übertragseingabe-Bits für das Rechenwerk 42 sich nicht auf "0" oder "1" befinden. Der Akkumulator 50 wird während dieses Tests ebenfalls geprüft.
11-6. Der Registertest benutzt ein Muster aus verschobenen Bits des Wertes "1", um den Akkumulator 50, das Datenschienen-Schnittstellenregister 36 und den Zwischenspeicher-Adressenzähler 54 hinsichtlich de? Speicher- und Auswahlmöglichkeiten zu überprüfen.
11-7. Der Zwischenspeichertest beginnt mit einem Speicherinhalt von 0 und schreibt ein Muster von "1"-Bits in eine Speicherstelle. Er überprüft sodann, ob alle anderen Speicherstellen den Wert "0" beibehalten haben und die eingeschriebene Speicherstelle weiterhin durch ein Byte mit "1"-Bits vorgegeben ist. Diese Wortprüfung wird hinsichtlich jeder Speicherstelle des Zwischenspeichers 52 durchgeführt.
11-8. Jeder Fehler, der in den Schritten 4 bis 7 festgestellt worden ist, verursacht eine Verzweigung der Steuereinheit BDC direkt zu der Vorbereitungsroutine unter Auslassung jeglicher weiterer Tests. Wenn keine Fehler festgestellt werden, so wird der Befehl QLT ausgeführt, wodurch die lichtemittierende Diode zum Erlöschen gebracht wird.
11-9. Der Basislogiktest schreitet zur Vorbereitungsroutine weiter, bis ein Halt während des Verzweigungstestes auftritt.
Die Vorbereitungsroutine, deren Flußdiagramm in Figur 12 dargestellt ist, wird nach der Ausführung des Basislogiktests 72 ausgelöst. Die Aufgabe der Vorbereitungsroutine ist es, sicherzustellen, daß jeder Kanal von der Einsatzpunkt-Subroutine 78 abgefragt worden ist zwecks Erkennung des Gerätetyps, der an den Kanal angebunden ist und zwecks Errichtung jener Parameter, die für den Kanalbetrieb erforderlich sind. Die von der Vorbereitungsroutine ausgeführten Funktionen sind folgende:
12-1. Eine Subroutine innerhalb der Vorbereitungsroutine löscht den Zwischenspeicher. Diese Subroutine, die in alle Speicherstellen des Speichers den Wert 00 oder XX einschreibt, wobei XX durch den Anwender festlegbar ist, wird ebenfalls während des
7098267096B
Zwischenspeichertests im Basislogiktest verwendet.
12-2. Der Kanal 1 wird durch Setzen des Indexregisters 32 freigegeben. Hierdurch wird der Geräteadapter freigegeben und das Subroutinen-Rückkehr-Adressregister 30 adressiert und es wird der Zwischenspeicher-Adressenzähler 54 indiziert, wobei vorausgesetzt sei , daß der Indiziermodus eingeschaltet ist.
12-3. Die Vorbereitungsroutine verzweigt auf einen exklusiven Teil der Einsatzpunkt-Subroutine 78, welche das Auslösebit des Kanalüberwachungs-Hinweis-Bytes setzt.
12-4. Bei der Feststellung, daß der Auslösehinweis gesetzt ist, verzweigt die Unterbrechungsroutine 82 zu der Adresse #SETUP:LOOP der Vorbereitungsroutine. Wenn alle Kanäle abgefragt worden sind, verzweigt die Vorbereitungsroutine zur Warteroutine 84.
12-5. Die Vorbereitungsroutine gibt den nächsten Kanal durch Laden des Indexregisters 32 frei
Hinsichtlich der in Figur 13 dargestellten Einsatzpunktroutine enthält das Subroutinen-Rückkehr-Adressregister 30 eine Speicherstelle pro Kanal, die zur Speicherung einer Adresse benutzt wird, welche auf eine spezielle Folge in einer Geräte-Unterstützungsroutine 80 verweist. Anfänglich ist jedoch die Kanalidentität unbekannt^ und es werden Kanal-Hinweisadressen als ungültig angesehen. Es ist der Zweck der Einsatzpunktroutine, die Kanalidentität zu erkennen und das Rückkehradressregister 30 mit der Startadresse der Geräte-Unterstützungsroutine 80, die durch einen gegebenen Kanal angefordert wird, zu laden. Danach hält die Geräte-Unterstützungsroutine die Hinweisadresse gemäß der Kanalaktivität und den Gerätestatus aufrecht, bis ein Auslöseoder Stop-Ein/Ausgabe-Befehl festgestellt wird, wobei zu diesem Zeitpunkt die Einsatzpunktroutine die Hinweisadresse wieder auslöst. Zusätzlich zur Auslösung der Kanal-Hinweisadressen führt die Einsatzpunktroutine folgende andere Funktionen aus:
13-1. Die Vorbereitungsroutine verzweigt zu einer exklusiven Adresse 0SETÜPPOINT in der Einsatzpunktroutine, die das Auslösebit des Kanalüberwachungs-Hinweis-Bytes setzt, welches sich im Zwischenspeicher 52 befindet. Dieses Bit stellt im gesetzten
709826/0965
7 8 4 8
2 f-7 8 4 8
Zustand sicher, daß die Unterbrechungsroutine 82 auf die Vorbereitungsroutine 76 zurückverzweigt,
13-2. Der Geräteadapter, der durch den Inhalt des Indexregisters 32 freigegeben wird, wird ausgelöst.
13-3. Die Einoatzpunktroutine speichert den Geräte-Identifikationscode im Zwischenspeicher 52. Es sei hier vermerkt, daß alle Zwischenspeicheradressen, die von der Einsatzpunktaroutine benutzt werden, durch den Inhalt des Indexregisters vermehrt werden. Die Warteroutine 84 oder die Firmware (Datenschiene-Anforderungsroutine 86) tritt an diesem Punkt in die Einscitzpunktroutine ein.
13-4. Der Geräteidentifikationscode wird mit bekannten Werten verglichen, um die Identität des Kanals festzustellen. Der Vergleich der bekannten Identität wird hinsichtlich jedem Gerät angestellt.
13-5. Ist die Identität eines Kanales bekannt, so wird das Subroutinen-Rückadressregister 30 mit der Startadresse der Geräte- Unterstützungsroutine 80 geladen, wie sie von diesem Kanal angefordert wird. Die Adresse des Adressregisters 30, die ausgelesen oder eingeschrieben wird, liegt durch den Inhalt des Indexregisters 32 fest, auch wenn der Zwischenspeicher 52 nicht im Indiziermodus betrieben wird-
13-6. Der von einem Kanal benutzte Startfunktionscode variiert entsprechend dem Gerätetyp und wird im Zwischenspeicher 52 gespeichert. Der Wert des Startfunktionscodes wird von der Datenschiene-Anforderungsroutine 86 benutzt, um festzustellen, ,ob eine Schrittanweisung empfangen wird.
13-7. Das Kanalbereitschafts-Flip-Flop, wird während einer Vorranglöschung zurückgestellt, wodurch die Steuereinheit BDC bezüglich irgendeines Datenschienenzyklus für diesen Kanal eine NAK-Antwort hervorruft. Das Kanalbereitschafts-Flip-Flop wird durch die Einsatzpunktroutine gesetzt, wenn bekannt ist, daß das an den Kanal angeschlossene Gerät unterstützt wird.
13-8. Geräteanforderungen werden während einer Vorranglöschung gesperrt und sie werden freigegeben, wenn das Gerät unterstützt wird.
709826/0965
ORlQlNAL INSPECTED
2*073
13-9. Die Einsatzpunktroutine wird unter Ausführung einer Rückkehrverzweigung verlassen, wobei der Mikroprogramm-Adrossenzähler 26 mit der im Schritt 5 definierten Kanal-Hinweisadresse geladen wird.
13-10. Der Kanal wird nicht unterstützt und seine Hinweisadresse wird auf die Unterbrechungsroutine 82 gesetzt. Geräteanforderungen bleiben gesperrt und das Kanalbereitschafts-Flip-Flop bleibt zurückgestellt, wodurch die Steuereinheit BDC hinsichtlich irgendeines Datenschienenzyklus für diesen Kanal zu einer NAK-Antowrt veranlaßt wird.
13-11. Die Einsatzpunktroutine verzweigt zu der Unterbrechungsroutine 82, welche den Auslösehinweis gesetzt vorfindet und zurück zu der Vorbereitungsroutine 76 verzweigt.
Die in Figur 14 dargestellte Warteroutine ist für die Prioritätszuteilung und die Auslösung einer Kanalaktivität verantwortlich, wobei der Status und der Ausgang des Kanalanfordeungs-Prir>ritätsdecodierers 58 getestet werden. In die Warteroutine kann direkt aus einer der dargestellten Routinen eingetreten werden.
14-1. Eine Kanalanforderung zeigt an, daß ein oder mehrere Ereignisse aufgetreten sind, wie beispielsweise ein unaufgeforderter Datenschienenzyklus für die Steuereinheit BDC, eine Geräteadapter-Datenanforderung oder eine Geräteadapter-Behandlungsanforderung.
14-2. Wenn eine Kanalanforderung vorliegt, so setzt die Warteroutine das Datenschienen-Schnittstellen-Register-Belegt-Flip-Flop für den Fall, daß die Anforderung an einen Adapter gerichtet ist. Eine Adapteranforderung kann einen Datenschienenzyklus erfordern, wobei das gesetzte Belegt-Flip-Flop die Annahme irgendeiner unaufgeforderten Datenschienenübertragung verhindert. Es sei darauf verwiesen, daß das Belegt-Flip-Flop bereits gesetzt ist, wenn die Kanalanforderung aufgrund einer Datenschienenanforderung erfolgt.
14-3. Die Warteroutine lädt das Zwischenspeicher-Indexregister 32 mit der Nummer des Kanals, dessen Anforderung die höchste Priorität aufweist. Die Kanalnummer mit der höchsten Priorität wird durch den Kahal-Anforderungs-Prioritätsdecodierer 58 festgelegt. «. « _
709826/0965
2:-7348
14-4. Die Warteroutine verzweigt zu der Datenschienen-Anforderungsroutine 86 , wenn die Anforderung mit der hohen Priorität eine Datenschienenanforderung darstellt.
14-5. Wenn eine Datenschienenanforderung nicht vorliegt, so verzweigt die Warteroutine auf die Geräte-Unterstützungsroutine 80 zurück, vorausgesetzt, daß sich das Gerät im Zugriff befindet. Wenn die Anforderung durch ein Gerät verursacht wird, das sich nicht im Zugriff befindet, so verzweigt die Warteroutine zu der Einsatzpunktroutine 78, die die Kanalhinweisadressa auslöst.
14-6. Wenn eine Kanalanforderung nicht vorliegt, testetdie Warteroutine das Wiederaufnahme-Unterbrechungs-Flip-Flop, um festzustellen, ob die Kanalpriorität CP die wiederaufgenommene ünterbrechungsleitung hervorgerufen hat und sie verzweigt zu der Wiederaufnahme-Unterbrechungsroutine 88, wenn das Flip-Flop gesetzt ist. Wenn das Wiederaufnahme-Unterbrechungs-Flip-Flop zurückgestellt ist, so stellt die Warteroutine das Datenschiene-Schnittstelle-Register-Belegt-Flip-Flop zurück, so daß unaufgeforderte Datenschienenzyklen angenommen werden können.
Gemäß Figur 15 verzweigt die Warteroutine 84 zu der Datenschiene-Anforderungsroutine , wenn sie eine unaufgeforderte Datenschienenubertragung zu der Steuereinheit BDC feststellt. Die Datenschiene-Anforderungsroutine dient der Verwirklichung der Ein/Ausgabe-Erfordernisse der Datenschienenubertragung und der Auslösung jeglicher Firmware-Routinen, sofern erforderlich. Das Flußdiagramm der Datenschienenanforderungsroutine stellt sich folgendermaßen dar:
15-1. Der Datenschienenstatus wird getestet, um festzustellen, ob die Steuereinheit BDC die zweite Hälfte eines Lesezyklus hinsichtlich der Datenschiene auslösen muß.
15-2. Wenn eine Antwort angefordert wird, lädt die Datenschiene-Anforderungsroutine 86 das Datenschienen-Schnittstellenregister 36 unter Benutzung des Inhalts des durch den Funktionscode definierten Speicherplatzes des Zwischenspeichers.
709826/0965
ζ S78/, 8
15-3. Zyklusparameter werden geladen und ein Datensch.i oncnzyklus wird aufgelöst
15-4. Der Funktion.scode wird getestet um f ontzustellon, ob
der Status durch die Software gelesen wurde.
SlHtu.-; 15-5,- Das Ächtungsbit und das Sch:i eno-Paritätsf ehlerbi I: des ν
werden zurückgestellt, wenn der Funktionscode dein fJLabus zugeordnet war,
15-6 und 7. Die Routine wartet, bis eine ACK- oder NAK-Äntwort empfangen wird.
15-8. Wenn eine ΝΛΚ-Zvntwort empfangen wird, so setzt die Routine den nichtexistierenden Systemmittelfehler im Status.
15-9. Die Datenschiene-Anforderungsroutine hat die zweite Hälfte des Lesezyklus beendet und verzweigt auf die Warteroutine zurück.
15-10, Wenn keine Antwort angefordert wird, muß die Steuer- ·■ -' n-eit BDC die Information in dem Datenschiene-Schnittstellenj_;egister 36 speichern und decodieren. Das erste zu speichernde Datenfeld betrifft die Kanalnummer der Steuereinheit BDC, die
nicht
anderweitig der Firmware zugänglich ist. Die Kanalnummer, die durch die Information der Bits 8-16 der Adresschiene vorgegeben ist, wird im Zwischenspeicher 52 gespeichert.
15-11. Der Inhalt der Datenschiene wird im Zwischenspeicher unter einer durch den Funktionscode definierten Adresse gespeichert
15-12. Der Funktionscode wird getestet um festzustellen, ob eine Speicheradresse zu der Steuereinheit BDC übertragen worden ist.
15-13. Die Speichermodulnummer, wie sie durch die acht höchstrangigsten Bits der Adresschiene definiert ist, wird im Zwischenspeicher 52 gespeichert.
15-14. Die Richtung der Datenübertragung, die durch das Bit 17 der Adresschiene definiert ist, wird in dem DMA-Steuer-Byte gespeichert.
15-15. Die Datenschiene-Anforderungsroutine führt während der übertragung einen Test auf Paritätsfehler durch.
ORJQJNAL INSPECTED
■709826/0965
2Γ:-^7848
1b-16. Das Datenscluienc-Paritätsfehlerbit wird im Status gesetzt. Ferner v;ird der Unterbrechungspegel auf 0 gesetzt, wenn ein UnterbrcchungspegeJ. während des Datenschienenzyklus übertr ;v]dn worden ist.
15-17. Bei der Feststellung eines Paritätsfehlers verzweigt die Datenschiene-Anforderungsroutine zu der Unterbrechungsroutine 82.
15-18. Wenn kein Paritätsfehler festgestellt wurde, decodiert die Datc-nKchiene-Anforderungsroutine den Funktionscode und führt zunächst einen Test hinsichtlich eines Steuerwortes durch.
15-19. Wenn ein Steuerwort übertragen worden ist, so bearbeitet die Steuereinheit BDC das erste gesetzte Steuerbit, wobei mit dem Bit 0 begonnen wird. Wenn keine Aktivität erforderlich ist, verzweigt die Routine zur Warteroutine 84.
15-20. Der Funktionscode für die Datenschienenübertragung wird mit dem im Zwischenspeicher 52 gespeicherten Startfunktionscode verglichen. Die Datenschiene-Anforderungsroutine verzweigt zur Warteroutine 84, wenn der Vergleich nicht erfüllt wird.
15-21. Es wurde ein Startfunktionscode festgestellt. Vor Auslösung der Geräte-Unterstützungsroutine prüft jedoch die Datenschiene-Anforderungsroutine das Vorliegen jeglicher Datenschiene-Paritätsfehler, die auf dem gleichen Kanal aufgetreten sein können, seit der Status zum letzten Mal gelesen wurde. Die Datenschiene-Anforderungsroutine sperrt den Schrittbefehl und verzweigt zu der Unterbrechungsroutine 82, wenn der Fehler gesetzt ist.
15-22. Die Routine stellt das Kanal-Bereitschafts-Flip-Flop zurück, wodurch jederweitere Dialog des Kanales mit der Zentraleinheit CPU einer NAK-Antwort unterzogen wird.
15-23.und 24. Die Datenschiene-Anforderungsroutine setzt das Kanalüberwachungs-Hinweis-Byte und das DMA-Steuer-Byte bevor sie zu der Geräte-Unterstützungsroutine weitergeht.
15-25. Der Status wird gelöscht, mit Ausnahme des Achtungsbits.
15-26. Die Datenschiene-Anforderungsroutine führt eine Rückverzweigung auf die Geräte-Unterstützungsroutine aus.
709826/0966 original inspected
--ι
Die in Figur 16 dargestellte Ünterbrechungsroutine prüft das Kanalüberwachungs-Hinweis-Byte und den Unterbrechungspeyol für einen vorgegebenen Kanal,, um festzustellen, ob eine Unterbrechung erzeugt werden soll. Das Flußdiagrainm wird nachstehend erläutert:
16-1 .
Das Auslösebit des Kanalüberwachungs-Hinweis-Bytes wird getestet um festzustellen, ob die Steuereinheit BDC einer Auslösung unterliegt.
16-2. Die Kanalüberwachung, die im Zwischenspeicher 52 auf einer Kanalbasis gespeichert ist, wird auf 0 zurückgestellt.
16-3. Die Unterbrechungsroutine verzweigt zu der Adresse SETUP:LOOP der Vorbereitungsroutine 76, die die Vorbereitung des nächsten Kanales übernimmt.
16-4. Die Unterbrechungsroutine überprüft den Unterbrechungspegel auf das Vorliegen des Wertes 0.
16-5. Wenn der Unterbrechungspegel nicht den Wert 0 aufweist, wird die Routine unterbrochen und es wird mit der Erzeugt jenes Teiles des Unterbrechungsvektors begonnen, der im Zwischenspeicher 52 nicht ohne weiteres verfügbar ist. Die am wenigsten signifikanten Bytes der Adresschiene und der Datenschiene werden erzeugt und im Zwischenspeicher für den Fall gespeichert, daß die Unterbrechung erneut versucht werden muß.
16-6. Das Datenschiene-Schnittstelle-Register-Belegt-Flip-Flop wird gesetzt und das Datenschiene-Schnittstellenregister 36 mit der Adresse und den Daten geladen.
16-7. Die Unterbrechungsroutine lädt Zyklusparameter und löst einen Datenschienenzyklus aus, unter der Voraussetzung, daß sie in der Lage war, das Belegt-Flip-Flop zu setzen, wenn dies durch die Abwesenheit einer Datenschienenanforderung angezeigt war. Die Routine geht zum Schritt 9, wenn eine Datenschienenanforderung vorliegt.
16-8 und 12- Nachdem ein Datenschienenzyklus ausgelöst ist, wartet die Unterbrechungsroutine auf eine ACK- oder NAK-Antwort der Zentraleinheit CPU.
ORIGINAL INSPECTED
709826/09 65
2- -"^7 8 4 3
. so-
16-9. Wenn die Unterbrechung einerNAK-Antwort unterzogen wirsetzt die Routine das Unterbrechungs-Unerledigt-Bit im Kanalüberwachungs-Byte im Zwischenspeicher. Das gesetzte Unterbrechungs-Unerledigt-Bit verursacht einen erneuten Unterbrcchungsvcrsuch , wenn die Steuereinheit BDC ein Wiederaufnahme-Unterbrechungssignal feststellt.
16-10. Das Kanal-Bereitschafts-Flip-Flop wird zurückgestellt, wodurch ein v/eiterer Datenschienendialog mit dem Kanal gesperrt wird.
16-11. Die Unterbrechungsroutine verzweigt zu der Adresse STARTrWARTEN der Warteroutine 84.
16-13. Das Kanal-Bereitschafts-Flip-Flop ist gesetzt, wodurch der Datenschiene ein weiterer Dialog mit dem Kanal gestattet wird.
Wenn die Warteroutine feststellt, daß das Wiederaufηahme-Unterbrechungs-Flip-Flop gesetzt ist, so verzweigt es zu der Wiederaufnahme-Unterbrechungsroutine gemäß Figur 17, in der irgendwelche Unterbrechungen erneut versucht werden, die zuvor einerNAK-Antwort unterzogen worden sind. Nachdem eine erneute Behandlung aller Unterbrechungen versucht worden ist, verzweigt die Wiederaufnahme-Unterbrechungsrotuine zu der Warteroutine zurück. Die im Flußdiagramm für die Wiederaufnahme-Unterbrechungsroutine ausgeführten Schritte sind folgende:
17-1. Das Datenschiene-Schnittstelle-Register-Belegt-Flip-Flop wird gesetzt, um unaufgeforderte Datenschienenübertragungen zu der Steuereinheit BDC zu sperren.
17-2. Der Kanal 1 wird durch Laden des Zwischenspeicher-Indexregisters 32 freigegeben.
17-3» Wenn ein Datenschienenzyklus erkannt worden ist, bevor das Belegt-Flip-Flop im Schritt 1 gesetzt werden konnte, muß die Wiederaufnahme-Unterbrechungsroutine auf die Warteroutine zurückverzweigen, wobei das Wideraufnahme-Unterbrechungs-Flip-Flop im gesetzten Zustand bleibt.
17-4. Das Unterbrechungs-Unerledigt-Bit des Kanalüberwachung byte wird getestet, um festzustellen, ob eine Unterbrechung durch den kanal zuvor einer NAK-Antwort unterzogen worden ist.
..709826/0965 original inspected
17-5. Das Datenschiene-Schnittstellcnregister 3 6 wird mit dem Unterbrechungsvektor geladen, der teilweise durch die Unterbrechungsroutine erzeugt worden ist.
17-6. Zyklusparanieter werden geladen und es wird ein Datenschienenzyklus ausgelöst.
17-7 und 10. Die Wiederaufnahme-Unterbrechungsroutine wartet auf eine ACK- oder NAK-Antwort von der Zentraleinheit CPU.
17-8. Das Kanalüberwachungs-Byte, das im Zwischenspeicher 52 gespeichert ist, wird auf 0 zurückgestellt, wenn die Unterbrechung bestätigt wird. ,
17-9. Das Kanal-Bereitschafts-Flip-Flop wird gesetzt, wodurch Datenschienen-Übertragungaizu dem Kanal ermöglicht werden.
17-11. Die Wiederaufnahme-Unterbrechungsrotuine testet das Zwischenspeicher-Indexregister 32, um festzustellen, ob alle Kanäle entstapelt worden sind.
17-12. Wenn die Routine nicht beendigt ist, wird der nächste Kanal durch Laden des Zwischenspeicher-Indexregisters mit einem geeigneten Wert freigegeben.
17-13. Nachdem alle Kanäle entstapelt worden sind, stellt die Routine das Wiederaufnahme-Unterbrechungs-Flip-Flop zurück.
17-14. Die Wiederaufnahme-Unterbrechungsroutine zweigt zurück auf die Warteroutine.
Die Mikrobefehle der Steuerung gemäß der vorliegenden Erfindung sollen nunmehr erläutert werden. Ein Mikrobefehl ist das kleinste Element der Firmware und besteht aus einem oder mehreren Bits eines Steuerspeicherwortas. Eine Kombination von einem oder mehreren Mikrobefehlen legt jedes Bit eines Steuerspeicherwortes fest und wird im allgemeinen als ein Firmwarebefehl bezeichnet. Eine Folge von Firmwarebefehlen, die zur Ausführung einer besonderen Funktion herangezogen wird, bildet ein Mikroprogramm oder eine Firmware-Routine. Die Steuerung benutzt acht grundlegende Arten von Firmware-Befehlen, nämlich: verschiedenartige Befehle, Geräteadapter-, Datenschienenlogik-, Rechenwerk-, Konstanten-, Speicher-, Test- und Verzweigungsbefehle. Zum Zweck der Beschreibung der Wirkungsweise der vorliegenden Erfindung sind jedoch nur gewisse verschiedenartige Befehle und gewisse Rechenwerks-,
709826/0965
Konstanten-, Speicher-, Test- und Verzweigungsbefehle von Interesse. Jede Art von Firmware-Befehl ist durch einen besonderen Operationscode gekennzeichnet, der durch die Bits 0, 1 und 2 des SteuerSpeicherwortes festgelegt ist. Nachstehend sei eine Bes-chreibung verschiedenerMikrobefehle gegeben, die zur Bildung verschiedenerFirmware-Befehle benutzt werden.
Α-Operanden werden in den meisten Befehlen benutzt, um den Ausgang des A-Operandenrnultiplexers festzulegen, der an das Datenschiene-Schnittstellenregister 36, den Zwischenspeicher 52, den Testmultiplexer 46 und das Rechenwerk 42 angeschlossen ist. Die Bits 3 bis 5 des Mikroprogramm-Befehlsregisters 24 sind an den A-Operandenmultiplexer angeschlossen und werden von ihm als eine Adresse benutzt, um einen von acht Eingängen auszuwählen. Gleichzeitig sind die Bits 4 und 5 an den Datenselektor eines jeden Geräteadapters angeschlossen und der jeweils freigegebene Geräteadapter benutzt diese Bits, um ein Datenfeld aus vier Datenfeldern auszuwählen. Der Ausgang des Datenselektors eines jeden Adapters wird einer ODER-Verknüpfung unterzogen, wobei jedoch nur ein freigegebener Adapter auch seinen zugeordneten Datenselektor freigibt. Im gesperrten Zustand befindet sich der Ausgang des Datenselektors des jeweiligen Adapters in einem hohen Impedanzzustand.
B-Operanden-Mikrobefehle werden während Rechenwerksbefehlen benutzt um die Adresse des B-Operandenmultiplexers festzulegen, dessen Ausgang auf das Rechenwerk 42 gegeben wird. Die B-Operanden-Mikrobefehle , die aus den Bits 6 und 7 des Mikroprogramm-Befehlsregisters 24 bestehen, werden mit dem Ausgang des Operationseodedecodierers 40 verknüpft, um den Operanden B zu bestimmen.
Verschiedenartige Befehle werden in erster Linie zur Bildung von Lösch- und Setzoperationen der Register und Flip-Flop in der Steuereinheit BDC und den Geräteadaptern benutzt. Verschiedenartige Befehle bestehen typischerweise aus einem einzigen Mikrobefehl, der alle Bits des Steuerspeicherwortes festlegt.
709826/0965
Die folgenden verschiedenartigen Befehle sind von Interesse. Der Rückstell-Testmodus-Befehl RTM nimmt die Steuereinheit BDC aus dem Testmodus heraus und wird von der Diagnostizier-Software benutzt, wenn ein Diagnostizierprogramm abgeschlossen werden soll. Dieser Befehl erzeugt das Signal RTMCMT-OO, welches die Rückstellung des Flip-Flops TSTMOD+00 veranlaßt. Wenn das Testmodus-Flip-Flop zurückgestellt wird, wird der Mikroprogramm-Steuerspeicher freigegeben und der BDC-Takt arbeitet normal. Der Setz-Testmodus-Befehl STM erzeugt das Signal STMCMD+00, durch welches das Testmodus-Flip-Flop TSTMOD+00 gesetzt wird. Das gesetzte Testmodus-Flip-Flop sperrt den Mikroprogramm-Steuerspeicher 22, gibt das Diagnostizier-Befehlsgatter 38 frei und versetzt den BDC-Takt in den Schrittmodus. Für jeden nachfolgenden Datenschienenzyklus zu der Steuereinheit BDC wird der Datenteil des Datenschiene-Schnittstellenregisters 36 in das Mikroprogramm-Befehlsregister 24 geladen und es wird ein Taktzyklus erzeugt. Die Diagnostizier-Software kann fortfahren, Mikrobefehle über die Datenschiene 12 zu senden, bis ein Rückstell-Testmodus-Befehl bearbeitet ist, worauf die Steuereinheit BDC zu ihrer normalen Funktion zurückkehrt. Der Halt-Befehl HLT wird von der Basislogiktest-Firmware benutzt, wenn ein Fehler festgestellt wird und er wird von der Datenschieneanforderungs-Firmware benutzt, wenn in den Testmodus eingetreten wird. Der Halt-Befehl HLT erzeugt das Signal HLTCMD-OO, der das Setzen des Takt-Halte-Flip-Flops CLKHLT+10 verursacht, wodurch alle Taktsignale für die Steuereinheit BDC und die Geräteadapter unterbrochen werden. Wenn das Testmodus-Flip-Flop gesetzt ist, so wird ein schrittweiser Takt für jede Datenschienenübertragung zu der Steuereinheit BDC erzeugt. Wenn das Testmodus-Flip-Flop zurückgestellt ist, hat der Takt der Steuereinheit BDC keinen Zugang zur Batenschienenaktivität, es sei denn, es liegt eine Vorranglöschung vor.
Geräteadapterbefehle werden zur Erzeugung von Steuersignalen benutzt, die von der Steuereinheit BDC zu den Geräteadaptern geschickt werden. Der Geräteadapter, der durch den Inhalt des Zwischenspeicher-Indexregisters 32 freigegeben wird, verarbeitet
709828/0965
2B57848
die Befehle. Diejenigen Adapter, die nicht freigegeben sind, ignorieren alle Steuersignale. Geräteadapterbefehle benutzen A-Operanden-Mikrobefehle zusammen mit besonderen Mikrobefehlen, um einen vollständigen Firmwarebefehl zu erzeugen. Datenschienenlogikbefehle werden durch eine Kombination von Datenschienenbefehlen zugeordneten Mikrobefehlen und A-Operanden-Mikrobefehlen gebildet. Die sich ergebenden Befehle werden zur Bildung von Steuerfunktionen für die der NML-Datenschiene zugeordnete Hardware benutzt. A-Operanden-Mikrobefehle, B-Operanden-Mikrobefehle und Rechenwerks-Mikrobefehle werden zur genauen Festlegung der Rechenwerksbefehle herangezogen. Rechenwerksbefehle führen eine spezifische logische oder arithmetische Operation hinsichtlich des Inhalts der A- und/oder B-Operanden durch und speichern das Ergebnis in dem A- oder B-Register. Rechenwerks-Mikrobefehle legen den Modus, die Übertragsfreigabe und die Übertragseingabe in das Rechenwerk 42 fest. Zusätzlich legen die Rechenwerks-Mikrobefehle fest, ob das A- oder B-Register geladen ist und sie werden mit dem Rest des Steuerspeicherwortes decodiert, um Register-Steuersignale zu erzeugen.
Konstantenbefehle werden durch eine Kombination von A-Operanden-Mikrobefehlen und zwei Arten von Konstanten-Mikrobefehlen definiert, die eine Datenkonstante und die Art der auszuführenden Rechenwerksoperation festlegen. Die folgenden Konstantenbefehle sind von Interesse. Der Lade-Konstantenbefehl LCN verursacht das Laden des 8-Bit-Datenfeldes, das durch die Bits 6 - 10, 12, 14 -15 des Befehlsregisters 24 definiert ist, in das Register,das durch den A-Operanden-Mikrobefehl festgelegt ist. Wie bei den Rechenwerksbefehlen wird die Konstante in den Akkumulator 50 geladen, wenn der Operand im Akkumulator oder Zwischenspeicher steht. Weiterhin' können Konstanten nicht direkt in das Datenschiene-Schnittstellenregister 36 geladen werden. UND-Konstantenbefehle ACN veranlassen das Rechenwerk ALU-42 zu einer ÜND-Verknüpfung des Inhalts des Operanden A mit der 8-Bit-Datenkonstante, die durch das Befehlsregister 24 definiert ist. Das Ergebnis dieser UND-Verknüpfung wird in das A-Operandenregister geladen. ODER-
709826/0965
2 f- '5 7 8 4 8
Konstantenbefehle OCN veranlassen das Rechenwerk ALU-42 zu einer ODER-Verknüpfung des Inhalts des Α-Operanden mit der durch das Befehlsregister definierten Datenkonstante. Das Ergebnis der ODER-Verknüpfung wird in das A-Oporandenregister geladen.
Speicherbefehle werden zum Einschreiben von Information in den Zwischenspeicher 52 benutzt u~id zur Steuerung oder Veränderung der Zwischenspeicheradressen» Die folgenden Speicherbefehle sind von Interesse» Der Speicher-Schreibbefehl MWT speichert, den Inhalt des Α-Operanden im Zwischenspeicher 52, unter der durch die niedrigrangigsten 6 Bits des Zwischenspeicher-Adressenzählers und die 2 Bits des Zwischenspeicher-Ädressenselektors 56 festgelegten Adresse. Der MWT-Mikrobefehl verursacht die Aktivierung des Schreib-Druckersignales MWTCMD-OO, das die Schreiboperation ausführt. Der Inkrement-Speicheradressbefehl IMA erzeugt das c-5-nai IMA-CMD-OO, durch welches der Inhalt des Zwischenspeicher- ^ artissenzählers 54 um 1 erhöht wird. Der Adressenzähler 54 kann ebenfalls mit dem Ergebnis von Rechenwerksbefehlen und Konstantenbefehlen geladen werden, um eine besondere Speicherstelle des Zwischenspeichers 52 zu adressieren. Der Schreib- und Inkrement-Adressenbefehl WIA erzeugt das Signal WIACMD+OO, welches das Flip-Flip WIAFLP+OO setzt, wodurch angezeigt wird, daß die Adresse während des nächsten Zyklus um 1 erhöht werden muß. Das Schreibund Inkrement-Adressen-Flip-Flop wird zusammen mit dem Gattersignal IMACMD-OO einer ODER-Verknüpfung unterzogen, um den Inhalt des Zwischenspeicher-Adressenz^hlers 54 um 1 zu erhöhen. Der Setz-Indexmodus-Befehl DIM und der Ruckstell-Indexmodus-Befehl RIM, die gemeinsam als Befehl SRI bezeichnet seien, erzeugen das Signal SRICMD+OO, welches das Zwischenspeicher-Index-Steuer-Flip-Flop £?MICF+OO zur Speicherung des Bits 9 des Befehlsregisters 24 veranlaßt. Im gesetzten Zustand veranlaßt das Flip-Flop SPMICF+OO die Indizierung des Zwischenspeicher-Adressenzählers 54 durch den Inhalt des Indexregisters 32. Wenn dieses Flip-Flop zurückgestellt wird, wird der Zwischenspeicher 52 nur durch den Inhalt des Adressenzählers 54 adressiert.
ORiQiNAL INSPECTED
709826/0965
. rc.
Testbefehle gestatten der Firmware.rlon Zustand von Hardwareelementen in der Steuereinheit BDC und in den Geräteadaptern festzustellen. Rückkehrbefeh.le, die mit Testbefehlen klassifiziert werden, gestatten der Firmware das Laden des Mikroprogramm-Adressenzählers 26 mit einer Adresse, die zuvor in dem Subroutinen-Rückkehradressregister 30 gespeichert waren. Einer der Testbefehle von hauptsächlichem Interesse ist der Rückkehrbefehl RTN, der am Ausgang des Stouerspeichers 22 statt am Ausgang des Befehlsregisters 2 4 decodiert wird, um die Ausführung von Rückkehrbefehlen in einem Taktzyklus zu gestatten. Bei der Ausführung von Rückkehrbefehlen liegt das Signal RTNCMD-OO vor, wodurch das Steuersignal LODUPA-OO aktiviert wird. Das Steuersignal für das Laden einer Mikroprogrammadresse veranlaßt den Adressenzähler UPAC zum Laden des Ausgangs des Adressenselektors 28, der im Falle von Rückkehrbefehlen durch den Inhalt des Subroutinen-Rückkehradressregisters 30 gebildet wird.
Verzweigungsbefehle werden zum Laden des Mikroprogramm-Adressenzählers 26 und des Subroutinen-Rückkehradressregisters 30 mit einer besonderen Adresse benutzt. Der Verzweigungsbefehl von besonderem Interesse ist der Schritt-BefehlGTO, der am Ausgang des Steuerspeichers 22 decodiert wird, um die Ausführung des Befehls in einem Taktzyklus zu gestatten. Ein Schrittbefehl erzeugt das Signal GTOCMD-OO, das seinerseits das Signal LODUPA-OO auslöst-s Dieses Steuersignal veranlaßt das Laden des Mikroprogrammadressenzählers 26 mit dem Ausgang des Mikroprogramm-Adressenselektors 28, der bei einem Schrittbefehl durch das Feld A des Steuerspeicherwortes gebildet wird.
Gemäß Figur. 18 sei nun die Art und Weise erläutert, in der der Mikroprogramm-Steuaspeicher 22 abgetastet wird, um festzustellen, ob eine korrekte Parität vorliegt. Hierzu sei auf das Blockdiagramm gemäß Figur 18 Bezug genommen. Der Steuerspeicher 22 weist beispielsweise bis zu 4096 Speicherstellen auf, von denen jede 16 Bits zur Speicherung eines Wortes besitzt. Somit umfaßt der Steuerspeicher 22 16 Spalten und 4096 Wort-Speicherplätze,
wobei die durch die letzte Zeile gegebene Speicherstelle ein Paritätswort aufweist. Das Paritätswort ist auf einer Spaltenbasis organisiert. Dies bedeutet, daß die ersten 4095 Speicherplätze einer bestimmten Spalte entweder eine gerade oder ungerade Parität aufweisen, so daß für den Fall, daß eine gerade Parität für jede Spalte gewünscht wird, ein Paritätsbit ("1" oder "0") dieser Spalte hinzugefügt wird, so daß die insgesamt 4096 Speicherstellen eine gerade Parität besitzen. Dieses Paritätsbit wird jeder Spalte hinzugefügt, wobei die Bildung des Paritätswortes in bekannter Weise erfolgt.
Beim Anlauf des Systems nach einer zuvor aufgetretenen Vorranglöschung wird somit das Abtastmodus-Flip-Flop 176 gesetzt, um eine Abtastung freizugeben, in der festgestellt wird, ob ein Fehler im Steuerspeicher 22 aufgetreten ist. Im allgemeinen wird jedesmal eine Spalte des Mikroprogramm-Steuerspeichers 22 geprüft, indem die 4096 Bits addiert und auf einen Paritätsfehler überprüft werden. Danach wird die nächste Spalte geprüft.
E gesetztem Abtastmouds-Flip-Flop 176 wird der Operationsdecodierer 40 gesperrt, der Befehle vom Befehlsregister 24 empfängt, so daß keine fehlerhafte Information in das System als Befehl übertragen wird. Das Setzen des Abtastmodus-Flip-Flop gibt ferner den Abtastbit-Adressenzähler 178 frei, der aus einem 4-Bit-Zähler besteht, dessen überlaufausgang zum Rückstellen des Flip-Flops 176 nach der vollständigen Abtastung aller Spalten benutzt wird.
Anfänglich adressiert der Mikroprogramm-Adressenzähler 26, der aus einem 12-Bit-Zähler besteht, den Wortspeicherplatz 0. Hierauf wird das Wort am Speicherplatz 0 zu dem Mikroprogramm-Befehlsregister 2 4 übertragen. Das erste Bit, d.h. das Bit 0, des Wortes im Register 24 wird über die Abtast-Bit-Selektoren 182 und 184 über·
und
tragen zu dem Inhalt des Abtastbit-Summen-Flip-Flops 186 addiert, dessen Ausgang anfänglich auf "0" gesetzt ist. Aufgrund des Ausgangs des Zählers 178 wird das Bit 0 durch die Selektoren 182
709826/0905
und 184 ausgewählt. Der Zähler 178 zählt von O bis 15 und ist anfänglich beim Empfang des Freigabesignals vom Abtastmodus-Flip-Flop 176 auf 0 gesetzt. Die Selektoren 182 und 184, die mehrere Gatter aufweisen, geben ein geeignetes Gatter frei, so daß das Bit 0 des Wortes 0 in das Flip-Flop 186 übertragen wird, wobei in diesem Flip-Flop eine Addition stattfindet. Wdnn das Flip-Flop 186 auf "O"gesetzt ist, so verursacht das Auftreten eines "1"-Signales an seinem Eingang ein Umkippen des Ausganges auf "1", während ein "O"-Signal am Eingang das Flip-Flop unbeeinflußt läßt. Wenn während-der Addition von Bits der Inhalt des Summen-Flip-Flops 186 den Wert "1" aufweist und der Wert "1" hinzuaddiert wird, so verändert sich der Ausgang auf den Wert "0" Das Fehler-Flip-Flop 190 wird nach der Abtastung einer Spalte jedesmal freigegeben, wobei ein Fehlersignal zur Sperrung des Gatters 200 dann erzeugt wird, wenn der Inhalt des Abtast-Flip-Flops 190 einen anderen Wert als "0" aufweist.
Der Inhalt des Mikroprogramm-Adressenzählers 26 wird daher bei jedem Taktzyklus über das Gatter 200 solange um 1 erhöht, bis das Gatter 200 gesperrt wird. Das Gatter 200 wird nur beim Auftreten eines Fehlers nach der Abtastung einer vollständigen Spalte gesperrt. Der Takt erhöht den Inhalt des Zählers 26 solange, bis die 4096 Wort-Speicherplätze des Steuerspeichers 22 abgetastet sind. Der Bit-Auswahleingang für die Selektoren 182 und 184 aus dem Zähler 178 bleibt bezüglich der ersten Spalte der gleiche. Nach allen Additionen einschließlich der Addition des Spalten-Paritätsbits wird somit durch den Überlauf des Zählers 26 das Abtastfehler-Flip-Flop 190 freigegeben. Dieses zeigt sodann an, ob ein Fehler vorliegt oder nicht.
Die nächste Spalte wird ebenfalls mittels Erhöhung des Inhalts des Abtastbit-Adressenzählers 178 um 1 abgetastet, nachdem der Zähler 26 nach Abtastung einer Spalte übergelaufen ist. Das durc den Zähler 178 ausgewählte Bit ist nunmehr das Bit 1 , d.h. das zweite Bit in dem Wort von 16 Bit. Diese zweite Spalte wird in gleicher Weise abgetastet und es wird durch das Flip-Flop 190
70902&/0βΒ6
2C57848
ein das Gatter 200 sperrender Fehler angezeigt, wobei dem Operator über den Zähler 178 angezeigt wird, welche Spalte fehlerhaft ist. Nimmt man an, daß keine Fehler vorliegen, so fährt der Abtastbit-Adressenzäh l.o.r 178 fort, ein bestimmtes Bit auszuwählen und der Zähler 26 zählt die Worte, so daß nach einer vollständigen Abtastung der Zähler 178 ein Übertrags-Ausgangssignal erzeugt, welche:- das Flip-Flop 176 zurückstellt und das System aus dem Abtastmodus herausnimmt. Es ist somit ersichtlich, daß ein Paritätswort erforderlich ist, um die Unversehrtheit der Information im Steuerspeicher 22 abzusichern und daß der Operator feststellen kann, welche Spalte einen Fehler aufweist, indem er auf den Zählstand des Zählers 178 schaut, wenn das Gatter 200 gesperrt ist.
Gemäß Figur 19 ist der Zwischenspeicher 52 in mehrere Abschnitte τ ■' -"teilt. Die Anzahl der Abschnitte entspricht der Anzahl der Kanäle oder Adapter, die an das System angeschlossen sind. Es sind somit den vier Adapter vier Abschnitte oder Quadranten im Zwischenspeicher zugeordnet. Ein jeder dieser Abschnitte weist die gleiche Topologie hinsichtlich seiner Speicherplätze auf, worauf durch die Bezeichnung der Speicherplätze mit 00 bis 3F hingewiesen werden soll. Aus Figur 19 geht ferner hervor, in welcher Weise die Speicherstellen der verschiedenen Abschnitte adressiert werden, ohne daß das Erfordernis besteht, die Erzeu-.ung der Abschnittsadresse mit der Erzeugung des tatsächlichen Abschnittes zu verketten, indem der adressierte Speicherplatz enthalten ist. Die Erzeugung der Adresse für einen Speicherplatz erfolgt daher unabhängig von der Erzeugung der Startadresse für einen speziellen Abschnitt. Der Zwischenspeicher-Adressenzähler erzeugt mittels der Bits 2 bis 7 die Speicherplatzadresse, während entweder die Bits ο und 1 des Zählers 54 oder der Ausgang des.Zwischenspeicher-Indexregisters 32 über den Selektor 56 das Auswahlsignal für den Abschnitt des Zwischenspeichers 52 erzeugen.
Die durch den Steuerspeicher 22 über das Befehlsregister 24 erachtete Firmware setzt das Zwischenspeicher-Index-Steuer-Flip-Flop 138 bzw. stellt dieses zurück, um über die Gatterstruktur
des Selektors 56 die Bits 0 und 1 entweder aus dem Indexregister 32 oder aus dem Adressenzähler 54 auszuwählen. Das Flip-Flop 138 befindet sich, während der Vorbereitungsroutine normalerweise im gesetzten Zustand, so daß die Befehlsauswahl im Zwischenspeiche]: 52 mittels der Signale vom Indexregister 32 erfolgt. Normalerweise verweist das Indexregister 32 auf den Kanal oder den Adapter, der aktiv ist, so daß das Indexregister 32 über die Gatterstruktur 210 die entsprechende Abschnittsadresse aus dem Register 24 oder mittels des Decodierers 58 erhält, wobei der Decodierer 58 den Kanal mit der höchsten Priorität anzeigt.
Obwohl der aktive Kanal normalerweise in dieser Art adressiert wird, kann der Zwischenspeicher-Adressenzähler 54 über den Selektor 56 Eingangssignale erzeugen, die der Auswahl eines Abschnittes unabhängig von dem Adapter oder Kanal, der gerade aktiv ist, dienen. So kann beispielsweise aufgrund von EingangsSignalen, die durch irgendeines der Register oder Betriebsmittel, die an das Rechenwerk ÄLU-42 angeschlossen sind, der Adressenzähler 54 einen Abschnitt im Zwischenspeicher 52 adressieren, wobei dies unabhängig von dem gerade aktiven Kanal erfolgen kann, um den Inhalt des Speicherplatzes oder der Speicherplätze für irgendeinen anderen Kanal zu verändern, obwohl dieser andere Kanal gerade nicht aktiviert ist» Es ist somit ersichtlich, daß zusätzlich zu der Fähigkeit, einen Abschnitt im Speicher 52 unabhängig von dem gerade aktiven Kanal zu adressieren, mittels des Adressenzählers der Speicherplatz in dem speziellen Speicherabschnitt adressiert werden kann und daß die Adresse eines solchen Speicherplatzes gebildet werden kann, ohne daß in jedem Fall die Bildung der Startadresse für den speziellen Speicherabschnitt erforderlich wäre. Dies bedeutet, daß die Startadresse für den speziellen Speicherabschnitt unabhängig von dem adressierten Speicherplatz erzeugt wird.
Die Art und Weise, in der ein an das System mittels der Adapter, angeschlossenes Gerät automatisch hinsichtlich seines Types identifiziert wird, ist in Figur 20 dargestellt. Jedes verschiedene Gerät besitzt einen speziellen Identifizierungscode. Hinsichtlich der vier verschiedenen, an das System angeschlossenen
• δ/f.
Geräte^ existieren vier verschiedene Identifizierurigscodei; in den verschiedenen Adaptern für die verschiedenen Geräte. Andererseits können alle diese Geräte vom gleichen Typ sein und deshalb den gleichen Identifizierungscode aufweisen, wobei in diesem Fall das spezielle Gerät durch seinen Kanalanschluß identifiziert wird. Um die Konfiguration des Systems zu vereinfachen, d. h. demjenigen, der das System zusammenstellt, zu erlauben, irgendein Gerät an irgendeinen Kanal anzuschließen, ist es wünschenswert, . die Identifikation des Gerätetyps unabhängig von seinem Kanalanschluß automatisch durchzuführen. Demgemäß muß bei der Auslösung des Systems der Gerätetyp zusammen mit dem speziellen Systemkanal, an den das Gerät angeschlossen ist, identifiziert werden.
Die Lösung des Problems besteht dementsprechend in der Ablage der Startadresse der Subroutine für ein spezielles Gerät in dem entsprechenden Registerspeicherplatz des Subroutinen-Rückkehr-Adressregisters 30, das aus vier 12-Bit-Registern zur Speicherung der Subroutinen-Startadresse besteht, wobei jeweils ein Register jedem Kanal zugeordnet ist. Das Subroutinen-Rückkehr-Adressr._,xster 30 wird durch das Zwischenspeicher-Indexregister 32 adressiert. Die den vier Kanälen zugeordneten vier Adapter weisen jeweils Selektoren 220 auf, die so angeordnet sind, daß sie bei Freigabe durch die Adapter-Freigabeeinheit 66 jeweils einen von vier Eingängen am Ausgang des freigegebenen Selektors 220 ausgeben. Einer dieser Eingänge ist durch den Identifizierungscode des speziellen Gerätes gegeben. Nur jeweils ein solcher Selektor 220 wird durch die Freigabeeinheit 66 jeweils freigegeben, wobei die Freigabeeinheit 66 in einfachster Weise aus einem 1 aus 4 Decoder bestehen kann. Das tatsächliche Ausgangsignal eines jeden Selektors 220 wird in Abhängigkeit von 2 Bits des Mikroprogramm-Befehlsregisters 24 ausgewählt, das den vom Steuerspeicher 22 empfangenen Befehl enthält. Der jeweilige durch die Adapter-Freigabeeinheit 66 freigegebene Selektor wird durch das Ausgangssignal des Indexregisters 32 vorgegeben, welches zusätzlich zur Adressierung der Register 30 auch das Eingangssignal für die Adapter-Freigabeeinheit 66 erzeugt.
70982B/09BB
2B57848
Um festzustellen r welcher, G ο j. Mt jedem Adapter zugeordnet ist, werden die Adapter einnr nach dem anderen zur Überprüfung ausgewählt. Dementsprechend wird im Anfangszustand in Abhängigkeit von einem Mikrobefehl im Regis bor 32 der Selektor 220-1 freigegeben und der Identifikationscode ausgewählt. Das Ausgangssignal des Selektors 220-1 wird dem Multiplexer 44 zugeführt und der Ausgang A des Multiplexers 44 wird auf die Recheneinheit ALU-42 geschaltet. Im allgemeinen wird dieser Identifikationscode der Reihe nach mit bekannten Identifikationscodes verglichen bis das Rechenwerk ALU-42 Übereinstimmung feststellt, wobei in diesem Zeitpunkt ein Status-Flip-Flop 48 des Rechenwerks ein Signal erzeugt, das das Register 24 im Steuerspeicher 22 freigibt und aus diesem die Subroutinen-Startadresse für dieses Gerät in das geeignete Register der Register 30 lädt.
Der erwähnte Vergleich in dem Rechenwerk ALU-42 wird folgendermaßen durchgeführt. Der Steuerspeicher 22 gibt den MuItiplexern 44 und über das Rechenwerk ALU-42 dem Akkumulator 50 den ersten Identifikationscode, beispielsweise für einen Drucker, vor, wie dies in der Einsatzpunktroutine dargestellt ist. Sodann gibt der Steuerspeicher 22 einen Code aus, der den freigegebenen Selektor 220 zur Abgabe des Geräte-Identifizierungscode an den Multiplexer 44 veranlaßt. Dieser Identifizierungscode wird am Ausgang A des Multiplexers 44 dem Rechenwerk ALU-42 zugeführt und in gleicher Weise wird der bekannte Identifizierungscode für einen Drucker über den Ausgang B des Multiplexers 44 dem anderen Eingang des Rechenwerks ALU-42 zugeführt. Stellt das Rechenwerk Übereinstimmung fest, so wird das Status-Flip-Flop 48 entsprechend geschaltet, welches seinerseits dem Steuerspeicher 22 über das Register 24 die Ablage der Subroutinen-Startadresse in dem adressierten Register des Subroutinen-Rückkehr-Adressregisters gestattet. Stellt das Rechenwerk keine Übereinstimmung fest, so gibt der Steuerspeicher 22 beispielsweise den bekannten Identifizierungscode für einen Kartenleser aus und es wird das vorstehend erwähnte Verfahren wiederholt. Normalerweise stimmt eine: der bekannten Identifizierungscodes mit dem Identifizierungscode
des freigegebenen Adapters überein. Wird jedoch keine Übereinstimmung festgestellt, so wird dies ±n einem der Rechenwerks-Status-Flip-Flops 48 festgehalten, wodurch angezeigt wird, daß es sich um ein nicht-unterstütztes oder nicht-existierendes Gerät handelt.
Nachdem eine Übereinstimmung festgestellt worden ist und dementsprechend der Geräte-Identif:: "ierungscode dem speziellen freigegebenen Adapter bekannt ist und die Subroutinen-Adresse in dem adressierten Register der Register 30 abgelegt ist, wird der nächste Adapter durch Erhöhung der Adresse im Register 32 mittels des Steuerspeichers 22 freigegeben und das Verfahren wird fortgesetzt, bis alle Adapter freigegeben und alle Geräte identifiziert sind. Nach Ausführung dieser Operation weist das Subroutinen-Rückkehr-Adressregister 30 die Startadresse einer jeden Subroutine für die identifizierten Geräte auf.
709828/0985

Claims (20)

  1. 2657348
    Patentansprüche
    Steuereinheit für ein Datenverarbeitungssystem mit einer Datenverarbeitungseinheit zum Anschluß mehrerer periphere^ Geräte t von denen zu jedem Zeitpunktsich wenigstens eines in Betrieb befindet und einem elektrischen Datenübertragungsweg/ gekennzeichnet durch:
    A. Eine Einrichtung zur Freigabe der Steuerung und des Betriebs der Geräte,
    B. eine Einrichtung zur Speicherung der auf die Steuerung, den Betrieb und den Status dieser Geräte bezogenen Information, wobei diese Speichereinrichtung mehrere Abschnitte entsprechend der Anzahl der möglichen Geräte aufweist, jeder Abschnitt eine zugeordnete Abschnittsadresse besitzt, jeder Abschnitt mehrere Speicherplätze zur Speicherung der auf die Steuerung, den Betrieb und den Status bezogenen Geräteinformation besitzt und wobei jeder Abschnitt die gleiche Informationstopologie hinsichtlich der entsprechenden Speicherplätze aufweist,
    C. eine Einrichtung zurAnzeige des aktiven Geräte,
    D. eine erste Einrichtung zur Berechnung der Adresse einer dieser Speicherplätze mit einer weiteren Einrichtung zur Berechnung der Adresse eines dieser Abschnitte unabhängig vom Aktivitätszustand irgendeines Gerätes,
    E. eine auf die Anzeige des Aktivitätszustandes eines Gerätes ansprechende Einrichtung zur Erzeugung der Adresse eines zu dem aktiven Gerät zugehörigen Abschnittes,
    7098*6/0966 0RiSifÄ iN3FE0TED
    2657348
    α.
    F. eine Einrichtung zur Adressierung der Speicherplätze mit der durch die erste Recheneinrichtung errechneten Adresse und
    G. eine.Einrichtung zur Auswahl entweder der durch die weitere Einrichtung zur Berechnung der Abschnittsadresse oder der durch die Einrichtung zur Erzeugung der Abschnittsadresse ermittelten Abschnittsadresse zur Adressierung einer der Abschnitte.
  2. 2. Steuereinheit nach Anspruch 1, dadurch gekennzeichnet, daß die Auswahleinrichtung eine Steuereinrichtung für die normale Freigabe der Adressierung einer der Abschnitte mittels der durch die Erzeugungseinrichtung erzeugten Adresse umfaßt.
  3. 3. Steuereinheit nach Anspruch 2, gekennzeichnet durch eine Einrichtung zur Speicherung mehrerer Befehle, wobei wenigstens ein Befehl einen Subbefehl für die Sperrung der normalen Operation der Steuereinrichtung aufweist, um die Auswahl einer Adresse zum Adressieren eines der Abschnitte freizugeben, wie sie von der weiteren Recheneinrichtung berechnet wird.
  4. 4. Steuereinheit nach Anspruch 3, gekennzeichnet
    den
    durch eine Einrichtung zur Aktivierung des Subbefehl aufweisenden Befehles während der Betriebsvorbereitung und Auslösung des betroffenen Gerätes.
  5. 5. Steuereinheit nach Anspruch 3, dadurch gekennze ic h η e t, daß ein Befehl einen weiteren Subbefehl mit einem Hinweis auf eine der Abschnittsadressen aufweist und ϊ
    A. eine Kodiereinrichtung zur Erzeugung einer Abschnittsadresse für den Abschnitt, der dem Cerät mit der höchsten Priorität zugeordnet ist und
    709825/0965
    B. eine zweite auf noch einen weiteren in diesem Befehl vorhandenen Subbefehl ansprechende Einrichtung zur Erzeugung einer Abschnittsadresse in Abhängigkeit von dem Hinweis auf eine dieser Abschnittsadressen durch den ersten weiteren Subbefehl vorgesehen ist.
  6. 6. Steuereinheit nach Anspruch 1, gekennzeichnet d uc.r. c. h :.
    A. einen Speicher zur Speicherung von Befehlen, welche zur Steuerung der Operation der Steuereinheit verwendet werden,
    B. ein Steuerelement mit zwei Zuständen, wobei ein erster Zustand anzeigt, daß ein Abschnitt in der Speichereinrichtung in Übereinstimmung mit der Erkennung des aktiven Gerätes adressiert werden kann und ein zweiter Zustand anzeigt, daß ein Abschnitt in der Speichereinrichtung unabhängig von der Erkennung des aktiven Gerätes adressiert werden kann,
    C. eine auf den Befehl im Befehlsspeicher ansprechende Einrichtung zum Setzen des Steuerelementes in eine bestimmte Lage,
    D. eine auf den Zustand des Steuerelementes ansprechende Auswahleinrichtung zur Freigabe der Adressierung eines Abschnittes der Speichereinrichtung durch die Berechnungsoder Erzeugungseinrichtung und
    E. eine Einrichtung zur Adressierung einer der Speicherplätze in der Speichereinrichtung unabhängig von dem adressierten Abschnitt. .
  7. 7. Steuereinheit nach Anspruch 6, gekennzeichnet ■_ durch eine auf einen Befehl im Befehlsspeicher ansprechende Einrichtung zur Adressierung eines Abschnittes in der Speichereinrichtung unabhängig von den durch die Erzeugungsoder Berechnungseinrichtung erzeugten Abschnittsadressen.
    709026/0965
  8. 8. Steuereinheit nach'Anspruch 1 oder einem der folgenden,
    gekennzeichnet durch:
    A. Ein Indexregister,
    B. ein Rechenwerk zur Erzeugung einer Abschnittsadresse für das Indexregister entsprechend den- den aktiven Gerät zugeorndeten Abschnitt und
    C. einen zwei Teile aufweisenden Adressenzähler, wobei dem
    ersten Teil die Abschnittsadresse von dem Rechenwerk zugeführt wird und der zweite Teile die Adresse eines
    Speicherplatzes in der Speichereinrichtung zur von dem
    adressierten Abschnitt unabhängigen Speicherung erzeugt.
  9. 9. Steuereinheit nach Anspruch 8,dadurch gekennz ei c h η e t, daß
    die Einrichtung zur Adressierung eines Speicherplatzes in der Speichereinrichtung auf die durch den zweiten Teil des
    Adressenzählers vorgegebene Speicherplatzadresse anspricht, daß die Adressenauswahleinrichtung zur Auswahl der Abschnittsadresse auf den Inhalt des Indexregisters oder den ersten Teil des Adressenzählers zurückgreift und
    daß die Adressierung eines Abschnittes im Speicher mit der
    durch die Adressenauswahleinrichtung ausgewählten Abschnittsadresse erfolgt.
  10. 10. Steuereinheit nach Anspruch 9, dadurch gekennzeichnet, daß die Adressenauswahleinrichtung in Abhängigkeit eines aus dem Befehlsspeicher entnommenen Befehls freigegeben wird.
  11. 11. Steuereinheit nach Anspruch 10, gekennzeichnet durch ein bistabiles Element, in dessen erstem Zustand die Auswahl der Abschnittsadresse aus dem Indexregister und in dessen zweitem Zustand die Auswahl der Abschnittsadresse aus dem ersten Teil des Adressenzählers erfolgt.
    709826/0965
  12. 12. Steuereinheit nach Anspruch 11, dadurch gekennz e'i c h η e t, daß sich das bistabile Element normalerweise im ersten Zustand befindet.
  13. 13..Steuereinheit nach Anspruch 12, gekennzeichnet durch eine Freigabe der Aktivierung eines Gerätes, sofern dieses die höchste Priorität aufweist.
  14. 14. Steuerinheit nach Anspruch 13, gekennzeichnet durch eine auf das Gerät mit deaf höchsten Priorität ansprechende Einrichtung zur Ablage der Abschnittsadresse des entsprechenden Abschnittes im Indexregister.
  15. 15. Steuereinheit nach Anspruch 14, gekennzeichnet d u r c h eine auf die Abschnittsadresse im Indexregister ansprechende Einrichtung zum Auslösen oder Aufrechterhalten der Aktivierung des Gerätes.
  16. 16. Steuereinheit nach Anspruch 1 oder einem der folgenden, gekennzeichnet durch:
    A. Mehrere Wort-Speicherplätze in der Informationspeichereinrichtung, wobei jeder Wort-Speicherplatz mehrere Bit-Speicherplätze umfaßt und die Bit-Speicherplätze an der gleichen Stelle innerhalb der Wort-Speicherplätze eine Spalte von Bit-Speicherplätzen bilden und wobei· einerder Wort-Speicherplätze ein Paritäts-Bit enthält, um die Unversehrtheit der Information auf einer Spaltenbasis anzuzeigen,
    B. eine Einrichtung zum sequentiellen Zugriff auf die Worte in jedem der Wort-Speicherplätze,
    C. eine .Spalten-Auswahleinrichtung zum Zugriff auf ein Bit •am gleichen Bit-Speicherplatz hinsichtlich eines jeden Wortes, auf das zugegriffen wird, um eine der Bit-Spalten zum ünversehrtheitsnachweis auszuwählen,
    709826/0965
    D. eine Einrichtung zur Addition der Bit-Werte an der gleichen Bit-Position und
    E. eine Einrichtung zur Feststellung, ob der addierte Wert einen Fehlerzustand kennzeichnet.
  17. 17. Steuereinheit nach Anspruch 16, gekennzeichnet durch :
    A. Eine Einrichtung zur Freigabe der Spaltenauswahleinrichtung zwecks Auswahl einer weiteren Spalte und
    B. eine Einrichtung zur Freigabe der sequentiellen. Zugriffseinrichtung in Abhängigkeit von der Auswahl der Spaltenauswahleinrichtung zum Zugriff auf eine andere Spalte, um die Unversehrtheit dieser anderen Spalte anzuzeigen.
  18. 18. Steuereinheit nach Anspruch 16, dadurch gekennzeichne t,daß die sequentielle Steuereinrichtung umfaßt:
    A. Einen Adressenzähler,
    B. eine Einrichtung zur Erhöhung des Zählstandes des Adressenzählers mit einer bestimmten Frequenz und
    C. eine Einrichtumg zum Sperren der Zählstandserhöhungseinrichtung beim Auftreten eines Fehlerzustandes.
  19. 19. Steuereinheit nach Anspruch 16, dadurch gekennzeichnet, daß die Spalten-Auswahleinrichtumg umfaßt:
    A. Einen Adressenzähler,
    B. eine auf die sequentielle Zugriffseinrichtung ansprechende Einrichtung zur Erhöhung des Zählstandes des Adressenzählers nach jedem sequentiellen Zugriff zu einem Wort an einem Wort-Speicherplatz,
    C.mehrere Gatter und
    D.eine auf den Inhalt des Adressenzählers ansprechende Einrichtung zur Freigabe wenigstens eines der Gatter, wodurch das aufgerufene Bit der Addiereinrichtung zugeführt wird.
    709826/0965
    η-
  20. 20. Steuereinheit nach Anspruch 16, dadurch gekennzeichnet, daß die sequentielle Zugriffseinrichtung und die Spaltenauswahleinrichtung aufweisen:
    A. Einen ersten Zähler , dessen Zählstand zum Zwecke der Adressierung verschiedener Wort-Speicherplätze verändert werden kann,
    B. einen zweiten Zähler, dessen Zählstand zum Zwecke der Adressierung verschiedenerBit-Speicherplätze verändert werden kann,
    C. eine Einrichtung zur Adressierung der Wort-Speicherplätze mit dem Zählstand des ersten Zählers,
    D. eine Einrichtung zur Auswahl eines Bit-Speicherplatzes mit dem Zählstand des zweiten Zählers,
    E. eine Einrichtung zur Freigabe des ersten Zählers zur Adressierung einen jeden der Wort-Speicherplätze in sequentieller Weise und
    . F. eine auf die erwähnte Freigabeeinrichtung ansprechende Einrichtung zur Freigabe der Auswahleinrichtung zwecks Auswahl eines anderen Bit-Speicherplatzes jedes Mal, wenn die Adressierung aller Wort-Speicherplätze vervollständigt worden ist.
    709826/0965
DE19762657848 1975-12-22 1976-12-21 Steuereinheit fuer ein datenverarbeitungssystem Granted DE2657848A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/643,730 US4028668A (en) 1975-12-22 1975-12-22 Apparatus for selectively addressing sections and locations in a device controller's memory

Publications (2)

Publication Number Publication Date
DE2657848A1 true DE2657848A1 (de) 1977-06-30
DE2657848C2 DE2657848C2 (de) 1989-06-01

Family

ID=24582047

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19762657848 Granted DE2657848A1 (de) 1975-12-22 1976-12-21 Steuereinheit fuer ein datenverarbeitungssystem

Country Status (7)

Country Link
US (1) US4028668A (de)
JP (1) JPS5925246B2 (de)
BE (1) BE849738A (de)
CA (1) CA1081858A (de)
DE (1) DE2657848A1 (de)
FR (1) FR2336736A1 (de)
GB (1) GB1573017A (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5362945A (en) * 1976-11-17 1978-06-05 Toshiba Corp Disc address system
US4122519A (en) * 1976-12-14 1978-10-24 Allen-Bradley Company Data handling module for programmable controller
US4133030A (en) * 1977-01-19 1979-01-02 Honeywell Information Systems Inc. Control system providing for the transfer of data in a communications processing system employing channel dedicated control blocks
US4174537A (en) * 1977-04-04 1979-11-13 Burroughs Corporation Time-shared, multi-phase memory accessing system having automatically updatable error logging means
US4138720A (en) * 1977-04-04 1979-02-06 Burroughs Corporation Time-shared, multi-phase memory accessing system
US4234918A (en) * 1977-05-31 1980-11-18 Burroughs Corporation Time-shared, multi-phase memory system with error checking and data correcting
US4156932A (en) * 1977-07-05 1979-05-29 Honeywell Information Systems Inc. Programmable communications controller
US4291196A (en) * 1979-11-06 1981-09-22 Frederick Electronics Corp. Circuit for handling conversation data in a distributed processing telex exchange
DE3070386D1 (en) * 1980-09-26 1985-05-02 Ibm Communication line adapter for a communication controller
US4503501A (en) * 1981-11-27 1985-03-05 Storage Technology Corporation Adaptive domain partitioning of cache memory space
EP0089440B1 (de) * 1982-03-24 1986-08-13 International Business Machines Corporation Verfahren und Einrichtung zum Informationsaustausch zwischen Terminals und einer zentralen Steuereinheit
US4649475A (en) * 1984-04-02 1987-03-10 Sperry Corporation Multiple port memory with port decode error detector
US4858108A (en) * 1985-03-20 1989-08-15 Hitachi, Ltd. Priority control architecture for input/output operation
US4713757A (en) * 1985-06-11 1987-12-15 Honeywell Inc. Data management equipment for automatic flight control systems having plural digital processors
GB8622941D0 (en) * 1986-09-24 1986-10-29 Gen Electric Co Plc Computer system
US5081609A (en) * 1989-01-10 1992-01-14 Bull Hn Information Systems Inc. Multiprocessor controller having time shared control store
JP3524247B2 (ja) * 1995-10-09 2004-05-10 任天堂株式会社 ゲーム機およびそれを用いたゲーム機システム
EP1387255B1 (de) * 2002-07-31 2020-04-08 Texas Instruments Incorporated Test- und Übersprungbefel mit mindestens einem Registeroperand
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US9213661B2 (en) * 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8478922B2 (en) 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US8504754B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Identification of types of sources of adapter interruptions
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US9195623B2 (en) * 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8639858B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3390379A (en) * 1965-07-26 1968-06-25 Burroughs Corp Data communication system
DE2319756A1 (de) * 1972-04-18 1973-10-31 Honeywell Bull Sa Datenverarbeitungsanlage

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3248701A (en) * 1960-12-30 1966-04-26 Ibm Data transfer control system
US3249924A (en) * 1962-12-31 1966-05-03 Ibm Asynchronous data processing system
US3293612A (en) * 1963-03-28 1966-12-20 Rca Corp Data processing
GB1157127A (en) * 1965-10-14 1969-07-02 Gen Electric Information Syste Digital Electronic Computer Embodying Control of Peripheral Devices
US3504344A (en) * 1966-05-27 1970-03-31 Gen Electric Apparatus for establishing indirect communication between processing elements in a computer system
US3526878A (en) * 1967-03-27 1970-09-01 Burroughs Corp Digital computer system
US3566358A (en) * 1968-03-19 1971-02-23 Bevier Hasbrouck Integrated multi-computer system
US3560937A (en) * 1968-10-28 1971-02-02 Honeywell Inc Apparatus for independently assigning time slot intervals and read-write circuits in a multiprocessor system
FR2070355A5 (de) * 1969-12-02 1971-09-10 Burroughs Corp
GB1264095A (de) * 1970-02-13 1972-02-16
US3699532A (en) * 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
US3639911A (en) * 1970-06-10 1972-02-01 Incoterm Digital processor having automatic conflict-resolving logic
US3792438A (en) * 1971-04-30 1974-02-12 Int Computers Ltd Peripheral access control
JPS5143739B2 (de) * 1971-10-06 1976-11-24

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3390379A (en) * 1965-07-26 1968-06-25 Burroughs Corp Data communication system
DE2319756A1 (de) * 1972-04-18 1973-10-31 Honeywell Bull Sa Datenverarbeitungsanlage

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JAHRBUCH DES ELEKTRISCHEN FERNMELDEWESENS, 1967, S. 9, 18 - 29 *
PROGRAMMING MANUAL, SYNERTEK. INC., AUG. 1976, S. 102 *

Also Published As

Publication number Publication date
BE849738A (fr) 1977-04-15
FR2336736A1 (fr) 1977-07-22
FR2336736B1 (de) 1983-10-14
CA1081858A (en) 1980-07-15
GB1573017A (en) 1980-08-13
JPS5925246B2 (ja) 1984-06-15
DE2657848C2 (de) 1989-06-01
US4028668A (en) 1977-06-07
JPS5277642A (en) 1977-06-30

Similar Documents

Publication Publication Date Title
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE2714805C2 (de)
DE3114961C2 (de)
DE2722099C2 (de)
DE2854485C2 (de) Datenverarbeitungsanlage
DE2350884C2 (de) Adreßumsetzungseinheit
DE2755897C2 (de)
DE3131341C2 (de)
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE2456578C2 (de) Datenverarbeitungsanlage
DE3114934A1 (de) Zentrales subsystem fuer eine datenverarbeitungsanlage
DE2750721A1 (de) Ein/ausgabe-system
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE2801563C2 (de)
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
DE2411963B2 (de) Datenverarbeitungsanlage
DE2755371A1 (de) Ein/ausgabe-verarbeitungssystem
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE2806045A1 (de) Dv-system mit pufferspeicher
DE2721623C2 (de)
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE2629266A1 (de) Ein/ausgabe-system
DE2755616A1 (de) Asymmetrischer multiprozessor

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