DE2657848A1 - Steuereinheit fuer ein datenverarbeitungssystem - Google Patents
Steuereinheit fuer ein datenverarbeitungssystemInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program 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.
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
Steuerwort, MSB
ünterbrechungspegel, LSB Unterbrechungspegel, MSB Start-Funktions-Code
Task, LSB
Task, MSB
Adresse, LSB
Adresse, MSB
Modul
Task, MSB
Adresse, LSB
Adresse, MSB
Modul
Bereich, LSB
Bereich, MSB
Bereich, MSB
Konfigurationswort.1,. LSB
Konfigurationswort 1, MSB Konfigurationswort 2, LSB
Konfigurationswort 2, MSB
Status, LSB
Status, MSB
Status, MSB
DTA1 DTA2 Daten, LSR
Daten, MSB
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 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.
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
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)
- 2657348PatentansprücheSteuereinheit 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Ä iN3FE0TED2657348α.F. eine Einrichtung zur Adressierung der Speicherplätze mit der durch die erste Recheneinrichtung errechneten Adresse undG. 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. 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. 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. Steuereinheit nach Anspruch 3, gekennzeichnetdendurch eine Einrichtung zur Aktivierung des Subbefehl aufweisenden Befehles während der Betriebsvorbereitung und Auslösung des betroffenen Gerätes.
- 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 und709825/0965B. 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. 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 undE. eine Einrichtung zur Adressierung einer der Speicherplätze in der Speichereinrichtung unabhängig von dem adressierten Abschnitt. .
- 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. 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 undC. 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. 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 unddaß die Adressierung eines Abschnittes im Speicher mit der
durch die Adressenauswahleinrichtung ausgewählten Abschnittsadresse erfolgt. - 10. Steuereinheit nach Anspruch 9, dadurch gekennzeichnet, daß die Adressenauswahleinrichtung in Abhängigkeit eines aus dem Befehlsspeicher entnommenen Befehls freigegeben wird.
- 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. Steuereinheit nach Anspruch 11, dadurch gekennz e'i c h η e t, daß sich das bistabile Element normalerweise im ersten Zustand befindet.
- 13..Steuereinheit nach Anspruch 12, gekennzeichnet durch eine Freigabe der Aktivierung eines Gerätes, sofern dieses die höchste Priorität aufweist.
- 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. 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. 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/0965D. eine Einrichtung zur Addition der Bit-Werte an der gleichen Bit-Position undE. eine Einrichtung zur Feststellung, ob der addierte Wert einen Fehlerzustand kennzeichnet.
- 17. Steuereinheit nach Anspruch 16, gekennzeichnet durch :A. Eine Einrichtung zur Freigabe der Spaltenauswahleinrichtung zwecks Auswahl einer weiteren Spalte undB. 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. 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 undC. eine Einrichtumg zum Sperren der Zählstandserhöhungseinrichtung beim Auftreten eines Fehlerzustandes.
- 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 undD.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. 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
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)
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)
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)
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 |
-
1975
- 1975-12-22 US US05/643,730 patent/US4028668A/en not_active Expired - Lifetime
-
1976
- 1976-11-16 CA CA265,841A patent/CA1081858A/en not_active Expired
- 1976-12-20 JP JP51153295A patent/JPS5925246B2/ja not_active Expired
- 1976-12-21 FR FR7638607A patent/FR2336736A1/fr active Granted
- 1976-12-21 DE DE19762657848 patent/DE2657848A1/de active Granted
- 1976-12-22 GB GB53476/76A patent/GB1573017A/en not_active Expired
- 1976-12-22 BE BE173538A patent/BE849738A/xx not_active IP Right Cessation
Patent Citations (2)
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)
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 |