DE2517276A1 - Datenverarbeitungssystem - Google Patents

Datenverarbeitungssystem

Info

Publication number
DE2517276A1
DE2517276A1 DE19752517276 DE2517276A DE2517276A1 DE 2517276 A1 DE2517276 A1 DE 2517276A1 DE 19752517276 DE19752517276 DE 19752517276 DE 2517276 A DE2517276 A DE 2517276A DE 2517276 A1 DE2517276 A1 DE 2517276A1
Authority
DE
Germany
Prior art keywords
interrupt
input
interruption
peripheral
count
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.)
Withdrawn
Application number
DE19752517276
Other languages
English (en)
Inventor
Allen C Hirtle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2517276A1 publication Critical patent/DE2517276A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Bus Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Description

51-01233 Ge TC-n-ne 18· ÄPr11 1975
HONEYVJELL INFORMATION SYSTEMS INC.
200 Smith Street
Waltham, Mass., USA
Datenverarbeitungssystem
Die Erfindung betrifft ein Datenverarbeitungssystem zur Durchführung von Datenverarbeitungsoperationen hinsichtlich einer Vielzahl peripherer Geräte.
Im Stand der Technik ist es bestens bekannt, Speicherplätze für Zustandsworte eines Programmes vorzusehen und diese Programm-Zustandsv/orte jedesmal auszuwechseln, wenn ein Unterbrechungssignal von einer peripheren Einrichtung empfangen wird. Die meisten Systeme umfassen einen Microprogrammprozessor, um einen hohen Grad an Flexibilität und Wirtschaftlichkeit zu erzielen. Normalerweise reagiert bei einem solchen bekannten System der Prozessor auf ein Unterbrechungssignal und benutzt die Systemsoftware um die Unterbrechung zu erkennen, die betroffene periphere Einrichtung zu bestimmen und die geeignete Maßnahme einzuleiten. Eine solche Arbeitsweise hat sich als verhältnismäßig zeitaufwendig herausgestellt und erfordert einen beträchtlichen Betrag an Speicherkapazität zur Speicherung des jeweiligen Zustandes und von Unterprogrammen, insbesondere dann, wenn das System eine große Anzahl peripherer Einrichtungen bedienen soll,
509883/0621
Systeme dieser Art wurden zusätzlich für die Verarbeitung von Unterbrechungen vorgesehen, wobei die Unterbrechungen entweder durch externe, periphere Einrichtungen oder durch prozessorsimulierte externe Einrichtungen durch den Gebrauch eines in dem Festwertspeicher des Processors enthaltenen Micro-Unterprogrammes verursacht werden. Während hierdurch einerseits die Verarbeitungszeit verringert wird, hat sich andererseits ein solches System jedoch nicht als geeignet erwiesen, wenn eine große Anzahl peripherer Einrichtungen vorhanden ist, da das Micro-Unterprogramm einer wiederholten Ausführung bedarf, um den Unterbrechungszustand einer jeden peripheren Einrichtung aus der Vielzahl dieser Einrichtungen zu bestimmen, insbesondere wenn diese an eine gemeinsame Datenschiene angeschlossen sind und die Unterbrechungs-Systelleinrichtung gemeinsam benutzen.
Es ist daher die Aufgabe der vorliegenden Erfindung, ein Datenverarbeitungssystem der eingangs genannten Art anzugeben, welches bei einem vertretbaren Aufwand die Durchführung der notwendigen Operationen in einer angemessenen Zeit gestattet. Die Lösung dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten Erfindung. Weitere vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen entnehmbar.
Anhand eines in den Figuren der beiliegenden Zeichnungen dargestellten Ausführungsbeispieles wird das Datenverarbeitungssystem gemäß der Erfindung im folgenden näher beschrieben. Es zeigen:
Figur 1 ein Blockdiagramm des erfindungsgemäßen Systems, Figur la die schematische Darstellung eines peripheren Systemes, welches als Zielsystem von dem System gemäß Figur 1 emuliert wird,
Figur Ib eine schematische Darstellung der Auslegung des Hauptspeichers im Zusammenhang mit der vorliegenden Erfindung,
509883/0621
Figur lc die Auslegung des Prozess-Steuerblockes innerhalb des Hauptspeichers gemäß Figur 1,
Figur Id in näheren Einzelheiten die Codierung bestimmter Steuerworte und Generalregisterworte des Prozess-Steuerblockes, Figur Ie die Auslegung der Eingangs-/Ausgangstabellen eines Hauptspeichersegmentes gemäß der vorliegenden Erfindung, Figur 2 ein Blockdiagramm des Untersystems des zentralen Prozessors gemäß Figur 1,
Figur 2a in näheren Einzelheiten den Steuerspeicher-Schnitt-.Stellenadapter und die Steuerspeichereinheit gemäß den Figuren 1 und Ic,
Figuren 2b und 2c in näheren Einzelheiten die verschiedenen Teile der Rechen- und Logikeinheit gemäß den Figuren 1 und Ib, Figur 3a ein Flußdiagramm betreffend die Prozess-Laderoutine einer Zielsystem-Emulation gemäß der vorliegenden Erfindung, Figur 3b ein die Verarbeitung eines Steuer-Eingang-/Ausgang-Befehls darstellendes Flußdiagramm,
Figur 3c ein Flußdiagramm betreffend die Unterbrechungs-Behandlungsroutine gemäß Figur 3b,
Figur 3d die ünterbrechungs-Behandlungsroutine gemäß Figur 3b in näheren Einzelheiten,
Figur 3e ein die Verarbeitung eines Eingang-/Ausgang-Befehles für die Datenübertragung darstellendes Flußdiagramm, Figur 4a ein Flußdiagramm für die Testroutine des Lese-/Schreibkanales gemäß Figur 3b,
Figur 4b ein Flußdiagramm für die Sektor-Testroutine gemäß Figur 3b,
Figur 5a das Format einer Tabellen-Eingangsstelle für den Lese-/ Schreibkanal,
Figur 5b das Format einer Tabellen-Eingangsstelle für einen Sektor,
Figur 5c ein Format für die Tabellen-Eingangsstelle einer peripheren Steuereinheit und
Figur 6 die im Zusammenhang mit der vorliegenden Erfindung verarbeiteten, codierten Eingang-/Ausgang-Befehle in näheren Einzel-
heiten· 509883/0621
Zielsystem-Unterbrechungsverarbeitung (Figur la)
Bevor das System gemäß Figur 1 beschrieben wird, sei zunächst Bezug auf Figur la genommen, welche in schematischer Form die Unterbrechungsverarbeitung des Zielsystems darstellt. Wie aus Figur la ersichtlich, weist das durch das Wirtsystem zu emulierende Zielsystem eine Anzahl peripherer Steuereinheiten (PCU) auf, welche an eine gemeinsame Sektorschiene angeschlossen sind, die ihrerseits mit der zentralen Verarbeitungseinheit (CPU) verbunden ist.
Jedes Zielsystem weist einen bis maximal sechs Sektoren auf. In dem dargestellten einzigen Sektorsystem besitzt jede periphere Steuereinheit (PCU) einen Unterbrechungsschaltkreis, welcher zwei Speichereinrichtungen umfasst: eine Freigabe-Speichereinrichtung und eine Unterbrechungsfunktion-Speichereinrichtung. Wenn die Unterbrechungs-Speicherfunktion eingeschaltet ist, so gibt die periphere Speichereinheit ein fortwährendes Unterbrechungssignal an die zentrale Verarbeitungseinheit ab. Das Vorhandensein dieses Signales wird normalerweise in dem Zielsystem durch die Benutzung eines Steuer-Eingang-/Ausgang-Befehles getestet. Dieser Befehl entspricht einem peripheren Steuer- und Verzweigungsbefehl (PCB-Befehl) und ist zwecks Zuordnung zu der peripheren Steuerung codiert. Bevor die periphere Steuerung in die Lage versetzt wird, das Unterbrechungssignal zu übertragen, muß der Freigabe-Funktionsspeicher durch einen PCB-Befehl umgeschaltet werden. Auf diese Weise werden die Unterbrechungsschaltkreise für eine PCU ein- oder abgeschaltet, indem die Freigabefunktion entsprechend ein- oder abgeschaltet wird.
Jede periphere Steuerung des Zielsystems kann bei der Ausführung einer Eingang-/Ausgang-Operation die PCU veranlassen, von dem Belegtzustand in den nicht-belegt Zustand umzuschalten, welcher
509883/0621
Zustand seinerseit die Unterbrechungsfunktion setzen kann, sofern zuvor die Freigabefunktion gesetzt worden ist. Auf diese Weise dient sich die periphere Steuereinheit dem Zielsystem (CPU) an.
Wie aus Figur la ersichtlich, arbeiten alle PCU auf eine gemeinsame Unterbrechungsleitung. Diese Anordnung bildet somit hinsichtlich der Unterbrechungssignale eine logische ODER-Operation. Die Behandlung der Zielsystem-Programme durch die CPU findet mit diesen ODER-verknüpften Unterbrechungssignalen statt. Im allgemeinen, wenn die Zielsystem-CPU in einer normalen Betriebsweise arbeitet, spricht sie auf das periphere Unterbrechungssignal an, um bei der Beendigung der Ausführung eines laufenden Befehles mit einer Unterbrechungs-Betriebsweise weiterzufahren. Hat sie mit dieser Betriebsweise einmal begonnen, so wird die CPU für weitere Unterbrechungssignale gesperrt, bis das Zielsystem-Programm über einen Befehl die CPU zur Wiederaufnahme ihrer normalen Betriebsweise veranlasst. Hinsichtlich weiterer Einzelheiten betreffend diese Betriebsweise sei auf folgende Veröffentlichung verwiesen: "Series 200 Programmer's Reference Manual (Models 200/420O)", Copyright 1971 durch Honeywell Information Systems Incorporation, Bestellnummer BA85, Rev. O.
Allgemeine Beschreibung des Systems
Aus Figur 1 ist ersichtlich, daß das System gemäß der vorliegenden Erfindung eine Vielzahl von Untersystemen 100-1 bis 100-4 aufweist. Die verschiedenen Untersysteme des Systems werden durch eine zentrale Verarbeitungseinheit 100-1, ein Eingangs-/ Ausgangs-Steuerwerk 100-2, eine Speicher-Schnittstelleneinheit 100-3, ein Hauptspeicher-Untersystem 100-4 und ein peripheres Untersystern 100-5 verkörpert. Das durch die zentrale Verarbeitungseinheit verkörperte Untersystem 100-1 weist eine Daten-
509883/0621
Verwaltungseinheit (DMU) 101-1, eine Befehlabrufeinheit (IFU) 101-3, eine Rechen- und Logikeinheit (ALU) 101-6, einen Steuerspeicher-Schnittstellenadapter (CIA) 101-4 und eine Steuerspeichereinheit (CSU) 101-5 auf, wobei diese Einheiten in der in Figur 1 angegebenen Weise zusammengeschaltet sind. Das CPU-Untersystem führt die Rechenoperationen des Systems aus, wobei diese Operationen unter der Steuerung von in der Steuerspeichereinheit 101-5 gespeicherten Microbefehlen zur Ausführung gelangen. In einer bevorzugten Ausführungsform werden diese Befehle in die Steuerspeichereinheit 101-5 durch einen Steuerspeicherlader geladen, der außerhalb der zentralen Verarbeitungseinheit 100-1 angeordnet ist.
Der CIA 101-4 weist die erforderlichen logischen Schaltkreise zur Fortschaltung der Steuerspeichereinheit 101-5 auf. Der CIA 101-4 erzeugt beispielsweise die erforderliche Adressenmodifikation, Adressenerzeugung, Testung und Verzweigungsschaltungen auf Grund von Signalen, die auf Grund interner und äußerer Bedingungen erzeugt werden.
Die verschiedenen Rechenoperationen werden durch die ALU 101-6 ausgeführt, welche die Möglichkeit aufweist, sowohl Daten in Wort- als auch in Byte-Darstellung zu verarbeiten. Der ALU 101-6 ist eine lokale Speichereinheit (LSU) 101-7 zugeordnet, welche einen kleinen Zwischenspeicher und zugeordnete Logikschaltkreise aufweist, um Steuerinformation ebenso wie Operanden und Teilresultate zu speichern, welche während verschiedener Rechenoperationen erzeugt werden.
Eine Adressensteuereinheit (ACU) 101-2 verbindet die ALU 101-6 mit dem Speicheruntersystem und dient der Erzeugung von Adressen zur Bezugnahme auf Informationen innerhalb des Speichers. Die ACU 101-2 ist zusätzlich an die IFU 101-3 angeschlossen, welche
509883/0621
Schaltkreise zum Abrufen von Befehlen im voraus aufweist, so daß jeweils Befehle verfügbar sind/ bevor ein gerade ausgeführter Befehl vollständig behandelt ist.
Die DMU 101-1 bildet eine Schnittstelle zwischen dem CPU-Untersystem und/oder einem Pufferspeicher 103-2. Die DMU 101-1 weist Schaltkreise zur Bestimmung desjenigen Teiles des Speichers des Hauptspeicher-Untersystems auf, welcher die während aufeinanderfolgender Speicherzyklen aufzusuchende Information enthält und sie ist in der Lage, diese Information in das CPU-Untersystem im geeigneten Zeitpunkt zu übertragen.
Die das Untersystem 100-3 verkörpernde Hauptspeicher-Schnittstelleneinheit weist einen Pufferspeicher 103-2, eine Pufferspeicheradressliste 103-3 und einen Hauptspeicher-Sortierer 103-1 auf. Der Pufferspeicher 103-2 dient der vorübergehenden Speicherung von Informationen, welche als nächstes durch das CPU-Untersystem benutzt werden, sowie der zeitweiligen Speicherung von Informationen, welche während der Datenverarbeitung häufig benutzt werden. Die Pufferspeicher-Adressliste 103-3 umfasst Schaltkreise zur Erzeugung einer Adresse für den Fall, daß die einer Operation zugeordnete Information in dem Pufferspeicher 103-2 gespeichert ist. Der Hauptspeicher-Sortierer 103-1 bildet eine Schnittstelle zwischen den verschiedenen Modulen des Hauptspeicher-Untersystems 100-4 und den verschiedenen anderen Untersystemen.
Das Hauptspeicher-Untersystem 100-4 ist an den Hauptspeicher-Sortierer der Speicherschnittstelleneinheit angeschlossen und umfasst in einer bevorzugten Ausführungsform vier Speichermodule 104-1 bis 104-4. Diese Module werden unter der Steuerung des Hauptspeicher-Sortierers in einer Anzahl von verschiedenen Verfahrensweisen betrieben, wobei eine überlappende Betriebsweise zur Anwendung gelangt. Diese Module bilden den Speicherplatz
509883/0621
2517278
für Informationen, wie sie durch die verarbeitenden Komponenten des Systems während der Ausführung laufender Aufgaben gefordert werden. Hinsichtlich weiterer Einzelheiten in Bezug auf den Hauptspeicher-Sortierer sei auf die DOS 2 350 202 verwiesen.
Wie aus Figur 1 ersichtlich, stellt das IOC 100-2 die Verbindung zu dem peripheren Untersystem 100-5 her. Das periphere üntersystem 100-5 weist eine Vielzahl von peripheren Steuereinheiten auf, welche die Operationen einer Vielzahl peripherer Einrichtungen steuern, die mit diesen Einheiten verbunden sind, z. B. Kartenleser, Drucker und Magnetbandantriebe. Das IOC 100-2 steuert die Informationsübertragung zwischen dem peripheren üntersystem 100-5 und dem Hauptspeicher-Untersystern. Es kann beispielsweise für bis zu 16 periphere Untersysteme ausgelegt sein. Das IOC 100-2 besitzt eine Schnittstelle mit dem Hauptspeichersystem, um Informationen zwischen dem Hauptspeicher und den peripheren Untersystemen zu übertragen und Gruppen von auf Kanalprogramme bezogenen Befehlen aus dem Hauptspeicher abzurufen und diese Befehle ohne Unterbrechung der Operation der zentralen Verarbeitungseinheit auszuführen.
Das IOC 100-2 weist zusätzlich eine Schnittstelle mit der zentralen Verarbeitungseinheit 100-1 auf, um eine die peripheren Untersysteme betreffende Zustandsinformation dem CPU zur Weiterverarbeitung anzubieten und um auf die Anforderungen der CPU mit der Ausführung des Kanalprogrammes zu beginnen und die CPU wiederum zu informieren, wenn das Kanalprogramm vollständig ausgeführt ist. Grundsätzlich werden bei der bevorzugten Ausführungsform der vorliegenden Erfindung die Ein-/Ausgang-Operationen unter der Steuerung eines Kanalprogrammes ausgeführt, welches einen kompletten Satz von Befehlen sowie die Adresseninformation zur Ausführung einer besonderen Ein-/Ausgang-Operation enthält. Das IOC 100-2 weist sowohl die zur Ausführung eines Kanalprogrammes
509883/0621
erforderliche Hardware als auch die entsprechende Firmware auf. Die Ausführung eines Programmes durch das IOC erfolgt durch eine Vielzahl von Kanälen. Unter einem Kanal wird ein Zugriffspfad von der CPU zu der peripheren Einrichtung zwecks Ausführung einer Eingangs-/Ausgangs-Operation verstanden. Der Kanal umfasst die IOC-Systemeinrichtungen, einen gerätemäßig vorhandenen Kanal zwischen dem IOC und dem peripheren Untersystem und einen logischen Kanal, der die zur Ausführung einer gegebenen Eingangs-/Ausgangs-Operation erforderlichen Ausgestaltungen in dem peripheren Untersystem umfasst. In dem bevorzugten Ausführungsbeispiel kann ein peripherer Prozessor bis zu 255 logische Kanäle verarbeiten.
Wie aus Figur 1 weiterhin ersichtlich, umfasst das IOC-Untersystem 100-2 eine Speicher-Verwaltungseinheit 102-1, eine Dienstcode-Einheit 102-2 und eine Vielzahl von Kanalsteuereinheiten 102-3 bis 102-4. Da das IOC bis zu 16 periphere Untersysteme bedienen kann, umfasst es eine entsprechende Anzahl von Kanalsteuereinheiten. Wie zuvor bereits erwähnt, werden die Eingangs-/ Ausgangs-Operationen durch Kanalprogramme hervorgerufen. Die Kanalprogramme werden durch den peripheren Prozessor über logische Kanäle, welche den peripheren Einrichtungen zugeordnet sind, ausgelöst. Das IOC enthält alle Informationen betreffend den Zustand eines jeden logischen Kanales und der damit verbundenen Kanalprogramme. Die Kanalprogramme werden gleichzeitig mit der zentralen Operationsverarbeitung durchgeführt, wobei von Mehrprogramm- und Simultanverarbeitungs-Möglichkeiten Gebrauch
gemacht wird.
Für die Zwecke der vorliegenden Erfindung kann die Anordnung zur Ausführung von Eingangs-/Ausgangs-Operationen als bekannt vorausgesetzt werden. Zusätzliche Informationen können der Veröffentlichung "Computer Organization and the System/370"
509883/0621
von Harry Katzan Jr., veröffentlicht 1971 durch Van Nostrand, Rinehold Company, entnommen werden.
Bevor die verschiedenen Komponenten gemäß Figur 1 weiter beschrieben werden, sei die Organisation des Hauptspeichers 104 im Zusammenhang mit Figur la im folgenden näher erläutert.
Hauptspeicher (Figur Ib)
Ein Bereich, welcher dem unteren Ende des Hauptspeicher-Adressenraumes entspricht, ist für die Benutzung durch die Hardware und Firmware des Systems reserviert. Die obere Grenze dieses Bereiches wird durch den Inhalt eines Grenzadressregisters (BAR) gekennzeichnet, auf welches durch die Software des Systems zugegriffen werden kann. Im allgemeinen wird der Inhalt des BAR auf einen vorbestimmten Wert zum Startzeitpunkt des Systems eingestellt. Der Bereich unterhalb der durch den Inhalt des BAR bestimmten Adresse enthält normalerweise vom IOC benutzte Tabellen, welche die Ausbildung des besonderen peripheren Untersystems bestimmen, sowie Firmware-Befehle zur Steuerung der Operation der CPU. Wie aus Figur Ib ersichtlich, ist der Speicher in eine Vielzahl von Segmenten unterteilt, auf welche durch einen vorgegebenen Prozess zugegriffen werden kann, wenn dies durch die System-Software bestimmt wird.
Der Hauptspeicher kann als segmentierter, virtueller Speicher bezeichnet werden, in welchem die Adressen von Programmen als Daten vorliegen, die durch den Namen des Segmentes, in dem sie angeordnet sind und durch eine Verschiebung innerhalb dieses Segmentes repräsentiert werden. Den Segmenten sind Schutzringe zugeordnet, welche den Inhalt des Segmentes vor einem Zugriff schützen. Die den Segmenten zugeordneten Schutzringe sind Teil der dem Segment zugeordneten Daten. Bezüglich weiterer Informationen betreffend diese Speicherausgestaltung sei auf die
509883/0621
-U-
Veröffentlichung "The Multics Virtual Memory", veröffentlicht durch Honeywell Information Systems Incorporation, Copyright 1972 hingewiesen.
Die Hauptspeicher-Emulatorinformation und Datenstrukturen# wie sie aus Figur Ib ersichtlich sind, umfassen mehrere Segmente A bis D. Das Segment A ist so codiert, daß es ein Bild des Zielsystem-Steuerspeichers speichert. Als solches enthält es die Verarbeitungsregister..Zusätzlich enthält das Segment verschiedene Steuerworte ICWl, ICW2 und IRW, welche bei der Verarbeitung der Unterbrechungsoperationen benutzt werden. Das Segment A ist dem System durch den Inhalt des Basis-Adressregisters 3 (BR3) erkenntlich. Das Segment B umfasst die Eingangs-/Ausgangs-Tabellen, welche gemäß der vorliegenden Erfindung organisiert sind. Auf dieses Segment B wird durch den Inhalt des Basis-Adressregisters 4 (BR4) zugegriffen.
Der Zielsystem-Hauptspeicher ist dem Segment C zugeteilt und dieses Segment C ist durch den Inhalt des Basis-Adressregisters 2 (BR2) für das Emulationssystem erkennbar. Die Segmentgröße ist so gewählt, daß sie der Speichergröße des zu emulierenden Zielsystems entspricht. Bei einer gegebenen absoluten Adresse M oder einem Zeichen wird dieses Zeichen durch Indizierung des Inhalts des Basis-Adressregisters 2*durch M bestimmt. In dem bevorzugten Ausführungsbeispiel entspricht das Format der in dem Hauptspeicher enthaltenen Information dem von dem Zielsystem benutzten Informationsformat. Beide Systeme benutzen ein Zeichen, welches 8 Bits aufweist, von denen 6 Datenbits und 2 Interpunktionsbits darstellen. Der einzige Unterschied zwischen der Art und Weise der Informationsdarstellung in dem Wirtsystem ist die Nummerierung von links nach rechts mit 0 bis I1 anstatt von rechts nach links mit 1 bis 8.
5 09883/0621
Das Segment D umfasst die Tabellen und Routinen zur Bearbeitung jener Funktionen/ welche nicht durch die Hardware oder Firmware des Systems ausgeführt werden. Beispielsweise ist der Softwareteil, das Emulations-Unterstützungspaket (ESP) in der Lage, Eingangs-/Ausgangs-Befehle des Zielsystems zu übersetzen und auszuführen. Ebenso kann dieses Paket verschiedene Hardwareteile des Zielsystem-Aufbaues sowie verschiedene zuvor erläuterte, durch das Zielsystem ausgeführte Operationen simulieren.
Selbstverständlich sei hier festgestellt, daß die tatsächliche Ausführung der Eingang-/Ausgang-Operationen durch die Eingang-/ Ausgang-Struktur des Wirtsystems vorgenommen werden. Die in dem Segment D enthaltenen Tabellen enthalten beispielsweise periphere Adressen, wie sie von den Zielsystemen benutzt werden und die dem Eingang-/Ausgang-System für eine besondere, der Emulation unterworfene, Konfiguration entsprechen. Andere Tabellen werden herangezogen, um den Zustand einer besonderen übertragung, die zugehörige Steuereinheit-Adresse, sowie den Zustand für alle Lese-/Schreib-Kanäle des Zielsystems aufzuzeichnen.
Obwohl in Figur Ib nicht dargestellt, gibt es ein Segment oder ein Teil eines Segmentes in dem Hauptspeicher, welches den Prozess-Steuerblock (PCB) enthält. Der PCB enthält die wichtigen Informationen, welche zur Ausführung eines gegebenen Prozesses erforderlich sind. Die Art der in dem PCB enthaltenen Information ist in Figur Ic dargestellt. Wie dieser Figur entnommen werden kann, stellt diese Information die gesamte erforderliche Information zur Befähigung des Systems gemäß Figur 1 zwecks Emulation eines bestimmten Zielsystems dar. Der Inhalt des PCB wird später in Zusammenhang mit der vorliegenden Erfindung beschrieben.
50 9 8 83/0621
Detaillierte Beschreibung des CPÜ-Untersystems
Steuerspeicher-Schnittstellenadapter (CIA) und Steuerspeichereinheit (CSU)
Gemäß Figur 2a umfasst die Steuerspeicheranordnung 205-1 der CSU in dem bevorzugten Ausführungsbeispiel sowohl feste als auch veränderbare Abschnitte. Der feste Abschnitt kann durch Verwendung eines programmierbaren Festwertspeichers (PROM) verwirklicht werden und der veränderbare Abschnitt des Speichers umfasst einen Lese-/Schreib-Speicher in integrierter ■Schaltkreistechnik. Der gesamte Speicher ist über ein Adressregister KS adressierbar und sein oberer Teil ist veränderbar, um die Möglichkeit zur Steuerung des Systems in verschiedenen Verfahrensweisen zu schaffen. Eine solche Verfahrensweise wird benutzt bei der Emulation der Operation einer Anzahl verschiedener Zielsysteme. Eine andere Verfahrensweise umfasst die Fähigkeit zur Untersuchung des Systems und seiner Teile auf aufgetretene Fehler. Im vorliegenden Ausführungsbeispiel besitzt die Steuerspeicheranordnung eine Kapazität von 7K (K = 1024 Bits) und die Länge eines jeden Steuerspeicherwortes beträgt 84 Bits. Die Steuerspeicheranordnung ist in die folgenden Abschnitte unterteilt: IK für Micrountersuchungen; 2K für die Emulation und 4K für die ursprüngliche Verfahrensweise. Es liegt auf der Hand, daß die SteuerSpeicherplätze, die einen bestimmten Abschnitt bilden, aneinandergrenzen können. Die für die. Micrountersuchung herangezogenen IK sind dynamisch veränderbar, ebenso wie Teile, die für die Emulation und die ursprüngliche Verfahrensweise herangezogen werden. Die verbleibenden Speicherplätze des Steuerspeichers sind nicht veränderbar.
Jedes Steuerspeicherwort ist in eine Vielzahl von Feldern unterteilt. Ein erstes als "E"-Feld bezeichnetes Feld bildet ein Verzweigungs-Steuerfeld, welches die Art der vorzunehmenden Ver-
509 883/0621
zweigung kennzeichnet. Die Auswahlschaltkreise 204-1 bis 204-7 des CIA benutzen die Felder eines Microbefehlswortes zur Erzeugung der Verzv/eigungsadressen.
Liegt keine Verzweigungsoperation vor, so wird der Steuerspeicher während eines Operationszyklus durch den Inhalt des KS-Adressregisters 204-9 adressiert und der Inhalt der adressierten Speicherplätze wird in eine Vielzahl von Datenverriegelungen 205-2 ausgelesen. Anschließend wird ein Teil der Ausgangssignale, z. B. die Bits 26 bis 79 aus diesen Verriegelungen in nicht dargestellte Speicherregister übertragen, wobei diese Speicherregister in jeder der Einheiten des CPU-üntersystems enthalten sind. Eine jede dieser Einheiten umfasst nicht dargestellte, logische Decodierschaltkreise, welche in Form programmierbarer Festwertspeicher realisiert sind, die ihrerseits die erforderlichen Unterbefehl-Steuersignale für die entsprechenden Einheiten erzeugen. Auf diese Weise kann jede Einheit, die durch den programmierbaren Festwertspeicher erzeugten Steuersignale kombinieren, diese Signale in Gruppen zwecks Kombination mit innerhalb dieser Einheit erzeugten anderen Signalen unterteilen, wie dies für die Ausführung verschiedener Operationen erforderlich ist. Die Decodierschaltkreise 205-4 decodieren bestimmte Felder, z. B. Verzweigungsfelder und erzeugen Signale, wie sie für Sortieroperationen gefordert werden.
Aus Figur 2a ist weiterhin ersichtlich, daß die SteuerSpeichereinheit ein lokales Register KN 205-6 aufweist, welches über ein Register KW 205-8 mit dem Steuerspeicherfeld 205-1 verbunden ist. Diese Anordnung erlaubt das Rückschreiben einer, während eines Speicherzyklus ausgelesenen Information in einen adressierten Speicherplatz. Aus Gründen der Registergröße wird die ausgelesene Information in das Steuerspeicherfeld jeweils in Blöcken zu je 12 Bit zurückgeschrieben.
509883/0621
Rechen- und Logikeinheit (Figuren 2b und 2c)
Diese Einheit führt alle geforderten arithmetischen und logischen Operationen für das CPU-Untersystem aus. Die Einheit umfasst gemäß Figur 2a eine Wort-ALU 206-1, welche mit einem Paar von Operanden, welche eine Länge von 4 Bytes aufweisen und in einem Paar von Operandenregistern 206-3 und 206-5 gespeichert sind/ arithmetische und logische Operationen durchführt. Die Inhalte der Operandenregister 206-3 und 206-5 werden der Recheneinheit 206-1 über Auswahlschaltkreise 206-7 und 206-9 zugeführt. Die durch den Wortaddierer 206-1 gebildeten Ausgangsresultate v/erden dem Register 206-3 und einem Register LY zugeführt. Ein Decodierschaltkreis 206-2 überprüft das Register 206-3 auf Nullstellen.
Ein Paar von Registern 206-11 und 206-12 dienen als Hilfsregister und sind in der dargestellten Weise mit den entsprechenden Elementen und Schienen verbunden. Das AF-Register 206-12 empfängt über einen SFS-Auswahlschaltkreis 206-14 in Abhängigkeit von den Steuersignalen eines Dreistufenzählers 206-16 Daten von einem AG-Register 206-88. Der SE-Zähler 206-16 wird in seinem Zählstand durch einen Schaltkreis 206-18 jeweils um eins erhöht, bzw. um eins erniedrigt. Dieser Zähler wird von Registern in dem Byte-Addierer und in dem Steuerspeicher-Schnittstellenadapter beaufschlagt.
Eine Vielzahl von Unterbrechungslogik-Decodierschaltkreisen, welche nicht dargestellt sind, sind an die AE- und AF-Register 206-11 und 206-12 angeschlossen und übernehmen die Decodierung des Inhalts der Register auf einer Byte-Basis. Die Ausgänge der Decodierschaltkreise sind an eine Vielzahl von Sektor-Unterbrechungs-Flip-Flops angeschlossen, welche als Teil des Hinweisspeichers für die Zwecke der Erfindung betrachtet werden können.
509883/0621
Die ALU umfasst weiterhin ein AI-Operationscode-Register 206-20, Decodierschaltkreise 206-22 und Verfahrensweise-Steuerregister 206-24/ die in der dargestellten Weise angeordnet sind. Der Inhalt der Register 206-24 setzt den Addierer in die Lage, die durch den Operationscode eines Befehles bestimmte Operation auszuführen. Die ALU umfasst weiterhin eine 64-Bit-Verschiebeeinrichtung 206-30, welche mit den AC- und AE-Registern 206-3 und 206-11 verbunden ist und durch ein 8-Bit-Steuerregister 206-32 gesteuert wird. Das Register 206-32 wird entweder direkt aus den dargestellten Quellen oder indirekt über einen Auswahlschaltkreis 206-34 geladen.
Wie aus Figur 2 ersichtlich, beinhaltet die ALU einen 8-Bit (Byte)-Addierer 206-50, welcher in Figur 2c in näheren Einzelheiten dargestellt ist. Für die Zwecke der vorliegenden Erfindung kann der Addierer 206-50 in herkömmlicher Weise ausgebildet sein. Der Addierer 206-50 verarbeitet die Operanden Byte für Byte und umfasst logische Decodierschaltkreise, die jene durch das Zielsystem geforderten Operationen ausführen. Zusätzlich weist der Addierer 206-50 dezimale Korrekturschaltkreise 206-72, Nullresultat-Decodierschaltkreise 206-74, Ausgangs-Flip-Flops 206-75 und Ausgangs-Auswahlschaltkreise 206-76 auf. Der Addierer 206-50 beinhaltet ferner eine Vielzahl von Speicherregistern, welche an die gemeinsame Schiene QA und QB angeschlossen und miteinander verbunden sind. Aus Figur 2c ist ersichtlich, daß ein Register 206-58 an die gemeinsame Daten-/Steuerschiene QB und über Schaltkreise 206-78 an mit LSM, AA und ARB bezeichnete Quellen angeschlossen ist. Die Quelle LSM ist in der lokalen Speichereinheit 101-7 gemäß Figur 1 enthalten. Diese Speichereinheit bildet eine zeitweilige Speichereinrichtung für die ALU, sowie eine zeitweilige Speichereinheit für die der Verarbeitung eines bestimmten Befehls zugeordnete Steuer- und Adresseninformation. Die Quellen AA und ARB sind dem Register 206-52 und dem Byte-Addierer 206-50 entsprechend zugeordnet. Das Register 206-52 ist an die beiden Schienen QA und QB und über einen Selektor 206-65 an das AC-Register 206-3 angeschlossen.
509883/0621
_ IT _
Wie aus Figur 2c ersichtlich, dienen die AA- und AB-Register 206-52 und 206-54 in erster Linie als Register für die Operanden A und B, welche Register mit dem Byte-Addierer 206-50 über die AAS- und ABS-Auswahlschaltkreise 206-56 und 206-58 verbunden sind. Ein Betriebsart-Steuerregister 206-57 ist direkt mit dem Addierer 206-50 verbunden und der Inhalt dieses Registers versetzt den Addierer in die Lage, die durch eine in das Register geladene Konstante gekennzeichnete Operation durchzuführen. Das AB-Register 206-52 erhält ein ausgewähltes Byte aus 4 Bytes, welche in dem AD~Register des Wortaddierers gespeichert sind. Das besondere ausgewählte Byte wird durch den Inhalt eines SD-Zählers 206-60 bestimmt, der einen Erhöhungs-ZErniedrigungsschaltkreis 206-61 enthält. Der Zählerinhalt dient als Hinweisadresse zur Bestimmung desjenigen der Bytes, welches als nächstes in das AB-Register 206-58 zu laden ist. In gleicher Weise enthält der SC-Zähler 206-62 einen Erhöhungs-ZErniedrigungsschaltkreis 206-63 und sein Zählstand dient als Hinweisadresse zur Bestimmung desjenigen Bytes, welches aus dem AC-Register 206-3 des Wortaddierers in das AA-Register 206-52 als nächstes zu laden ist. Die Zähler SD und und SC versetzen somit die Auswahlschaltkreise 206-65 und 206-66 in die Lage, die Operandenregister AA und AB aus den Registern AC und AD zu laden.
Die AB- und AA-Register 206-58 und 206-52 können ebenfalls über Gatterschaltkreise 206-78 und 206-80 geladen werden. Die Auswahlschaltkreise 206-65 und 206-66 können ein Paar von Steuerregistern 206-82 und 206-84 laden. Diese Register bilden zeitweilige Speichereinrichtungen für gewisse veränderliche Steuerzeichen eines zu verarbeitenden Befehles. Ein Decodierschalt·" kreis 206-86 ist an das Register 206-84 zwecks Decodierung der Bits des Cl-Zeichens angeschlossen.
509883/0621
Die Speicherregister weisen ein weiteres Register 206-88 auf, welches zur Ausführung bestimmter Ausblendoperationen benutzt wird, wobei über einen Auswahlschaltkreis 206-90 Signale in das Register geladen werden und anschließend über einen Auswahlschaltkreis 206-54 dem Byte-Addierer 206-50 zugeführt werden. Das Register 206-88 wird ferner herangezogen, um einen dreistufigen Abwärtszähler 206-92 zu laden. Der Zählstand dieses Zählers wird immer in Übereinstimmung mit der Anzahl der von dem Emulator verarbeiteten Steuerzeichen gehalten. Der Zähler weist ferner einen Decodierschaltkreis 206-94 auf, welcher das Erreichen des Zählstandes Null anzeigt.
Der Byte-Addierer 206-50 weist ferner eine Vielzahl von Flip-Flops auf, welche von dem Wirtsystem für Steuer- und Speicherzwecke benutzt werden. Ein solches Flip-Flop 206-80 dient beispielsweise der Anzeige der Emulationsbetriebsweise und kann durch die Firmware gesetzt und zurückgestellt werden. Andere Flip-Flops bilden eine Vielzahl von Steuer-Flip-Flops CFO bis CF7, welche mit den Prüfschaltkreisen des Steuerspeichers verbunden sind.
Der Byte-Addierer weist ferner eine Vielzahl bistabiler Hinweis-Speicherelemente für das Zielsystem auf, wobei die Ausgänge dieser Speicherelemente mit den AE- und AF-Registern des Wortaddierers verbunden sind. Diese Speicherelemente erhalten Signale von den SDS-Auswahlschaltkreisen 206-66 und den Ergebnis-Überwachungslogikschaltkreisen des Byte-Addierers, wie dies dargestellt ist.
Adressen-Steuereinheit
Die ACU 101-2 gemäß Figur 2 weist einen Zuordner 202-1 auf, welcher die Segmentrmmmer von bis zu 16 Segment-Descriptoren speichert, die bei der Entwicklung der absoluten Adresse eines
509883/0621
gesuchten Segmentes benutzt v/erden. Die ACU v/eist ferner eine Einheit-Registerdatei (URF) 202-20 auf, welche eine Vielzahl von Basisregister-Speicherplätzen BRO bis BR7 von jeweils 32 Bit zusätzlich zu Arbeitsregister-Speicherplätzen UW4 bis UW7 enthält. Bestimmte Register davon enthalten Basisregister-Adressen, welche von einem Befehl oder Microbefehl abgeleitet sind, die über die Schienen QA und QB zugeführt werden.
Eingang-/Ausgang-Tabellen (Figur Ie)
Bevor die Wirkungsweise des erfindungsgemäßen Systems beschrieben wird, soll auf Figur Ie Bezug genommen werden, welche den Aufbau der Eingang-/Ausgang-Tabellen in Übereinstimmung mit der vorliegenden Erfindung zeigt. Im vorliegenden Ausführungsbeispiel sind 6 allgemeine Klassen von Tabellen vorgesehen. Diese umfassen: eine Lese-/Schreibkanal-Tabelle, eine Sektortabelle, eine Beendigungstabelle, periphere Steuereinheit-Tabellen, PCU-Erweiterungstabellen, Gerätetabellen und Geräte-Erweiterungstabellen.
Lese-/Schreib-Kanal-Tabelle
Die Lese-/Schreib-Kanal (RWC)-Tabelle ist auf der Basis eines emulierten Zielsystems organisiert. Für jedes emulierte System existiert eine solche Tabelle. Der Inhalt des Basis-Adressregisters 4 (BR4) bestimmt den Beginn oder die Basis der RWC-Tabelle.
Jede Tabelle weist einen Adressenspeicherraum von 256 Bytes auf. Diese Bytes sind in 64 Eingangsstellen aufgeteilt, wobei eine Eingangsstelle für jeden möglichen RWC-Code,wie er durch das Zielsystem-Programm bestimmt werden kann, vorgesehen ist. Jede Eingangsstelle ist in der in Figur 5a dargestellten Weise codiert. Aus dieser Figur ist ersichtlich, daß jede Eingangsstelle ein Bit-Zeitlücken-Maskenfeld, ein 6 Bit-Zähler-Codierungsfeld, ein
5 0 9883/0621
einzelnes erweitertes Eingang-/Ausgang-Bit (EXT), ein 3 Bit Sektor-Codierungsfeld und ein 16 Bit RWC-Belegt-Maskenfeld umfasst. Figur 5a zeigt ferner ein Beispiel einer RWC-FeId-Eingangsstelle für ein bestimmtes Zielsystem. Wie aus Figur 5a weiter ersichtlich, können maximal 6 Zeitlücken in einem emulierten Zielsystem dargestellt werden. Zum Beispiel die Zeitlücken 1 und la bis 3a. In diesem Fall sind zwei Zeitlücken für den RWC-Code erforderlich und entsprechen einer Daten-Übertragungsrate von 167 Zeichen pro Sekunde in dem Zielsystem. Dieses Feld zeigt jedoch nicht an, welche Zeitlücken belegt sind."
Der Zählercode entspricht der Adresse in Oktaldarstellung des mitlaufenden Speicherzählers, der für die Adressenspeicherung durch einen Datenübertragungsbefehl mit dem ausgewählten RWC-Code benutzt wird. Im vorliegenden Beispiel weist die durch den Zähler codierte Adresse die Zahl 22 in Oktaldarstellung auf. Die codierte Zahl besitzt normalerweise einen Wert im Bereich zwischen 00 und 27 in Oktaldarstellung.
Irgendein Lese-ZSchreib-Kanalcode, welcher für das emulierte System als illegal anzusehen ist, wird durch die die Zählercodierung angebende Eingangsstelle bestimmt. Für die, RWC-Eingangsstelle entsprechend einem Code von 00 in Oktaldarstellung und für alle RWC-Eingangsstellen, die illegalen Codes in dem Zielsystem zugeordnet sind, wird das Zähler-Codierungsfeld mit einem hochrangigen Bit von EINS codiert. Dieser Zählercode wird in einer speziellen Weise behandelt. Immer wenn der Emulator einen Zählercode mit einem hochrangigen Bit von "EINS" während der Verarbeitung eines Datenübertragungs-Eingang-ZAusgang-Befehls feststellt, erzeugt er eine bestimmte Nachricht, die auf das Emulationsunterstützungspaket hinweist.
509883/0621
Das "EXT"-Bit weist den Wert O auf, was bedeutet, daß die erweiterte Eingang-/Ausgang-Einrichtung nicht benutzt wird und die abgerufene Eingangsstelle zur Verarbeitung des Befehls herangezogen wird. Wenn dieses Bit den Binärwert EINS einnimmt, so zeigt es an, daß es erforderlich sein kann, einen "effektiven" RWC-Code zu benutzen anstelle des bestimmten RWC-Codes,der von dem Zustand eines erweiterten Eingang-ZAusgang-Zielsystem-Hinweises abhängt. Wenn der Hinweis in Form einer binären EINS vorliegt, so wird die Information in der vorliegenden Eingangsstelle herangezogen. Weist der Hinweis den Binärwert NULL auf, so wird die Information in einer abgewandelten Eingangsstelle abgerufen und benutzt. Für jene Zielsysteme, welche diese Fähigkeit nicht aufweisen, wird dieses Bit immer auf den Binärwert NULL eingestellt. Die durch dieses Merkmal gegebene Möglichkeit ist in näheren Einzelheiten in dem weiter vorne erwähnten Programmierungshandbuch erläutert.
Der dem RWC-Code zugeordnete Sektor ist der Sektor 2, der durch die Bits 13 bis 15 des Sektorfeldes gekennzeichnet ist. Im Falle des Vorliegens von Eingang-/Ausgang-Befehlen, welche keine Datenübertragung erfordern und welche nur ein Cl Steuerzeichen aufweisen, werden die Bits 13 bis 15 des Sektorcodes benutzt, um eine korrekte Zeitlücken-Zustands-Eingangsstelle abzurufen. In diesen Fällen beinhaltet ein Test eines Lese-/Schreib-Kanales einen Test der Sektor-Zeitlücken. Der Grund hierfür liegt darin, daß eine feste Beziehung zwischen dem Sektor, einer Zeitlücke und dem ausgewählten RWC in dem Zielsystem besteht. Im Falle eines Befehles, v/elcher eine Datenübertragung erfordert, werden jedoch die Bits des Sektorcodes nicht benutzt.
Das 16 Bit-RWC-Belegt-Maskenfeld wird herangezogen, um anzuzeigen, welche Lese-/Schreib-Kanäle belegt oder getestet werden sollen. Wie aus Figur 5a ersichtlich, kann ein Zielsystem maximal 16 Lese-/Schreib-Kanäle auf v/eisen, die in der dargestellten
509883/0621
Weise ausgebildet sind. Der Buchstabe "A" kennzeichnet einen Hilfskanal im Unterschied zu einem Hauptkanal. In manchen Zielsystemen besteht eine feste Beziehung zwischen den Lese-/ Schreib-Kanälen und den Zeitlücken. Um eine höhere Übertragungsrate zu erzielen, welche mehr als eine Zeitlücke erfordert, können Lese-/Schreib-Kanäle miteinander verbunden werden, was bedeutet, daß mehr als ein Kanal und somit mehr als ein Zähler für die Ausführung des Befehls erforderlich ist. Im gegebenen Beispiel, wo zwei Zeitlücken für die Übertragungsrate von 167 Zeichen pro Sekunde erforderlich sind, werden zwei Lese-/ Schreib-Kanäle herangezogen. Das RWC-Belegt-Maskenfeld ist demnach so codiert, daß es die Lese-/Schreib-Kanäle 5 und 5a benutzt.
Sektor-Tabelle
Ein weiterer in der Figur Ie vorhandener Tabellentyp ist die Sektortabelle, wobei jeweils eine Sektortabelle für jedes zu emulierende Zielsystem vorhanden ist. Die Sektortabelle beansprucht für eine Adresse 32 Bytes, welche auf das letzte der der RWOTabelle zugehörige Byte folgen. Die Sektortabelle-Eingangsstellen sind in der in Figur 5b dargestellten Art codiert. Wie aus Figur 5b ersichtlich, weist die Sektortabelle-Eingangsstelle ein Zeitlücken-Zustandsfeld (Bits 0 bis 5) auf, das durch seine Codierung anzeigt, welche Zeitlücken des Sektors gerade in Benutzung sind. Ein 7 Bit-Feld (Bits 6 bis 12) ist für die Benutzung durch die Emulator-Software (ESP) reserviert. Die Sektortabelle-Eingangsstelle weist ferner ein 3 Bit-Zustandsfeld (Bits 13 bis 15) auf, wobei Bit 13 im Falle einer binären EINS anzeigt, daß der Sektor für das spezielle Zielsystem nicht existent ist. Die Bits 14 und 15 des Zustandsfeldes sind für einen zukünftigen Gebrauch reserviert. Das letzte Feld (Bits 16 bis 31) der Sektor-Eingangsstelle ist ein 16 Bit-Verschiebefeld, welches den Basisspeicherplatz der peripheren Steuereinheit (PCU)-Tabelle für den Sektor, bezogen auf
509883/0621
■ - 23 -
den durch den Inhalt des Basisregisters 4 gekennzeichneten Speicherplatz bestimmt.
Eine einzelne Eingangsstelle in der Sektor-Tabelle wird eindeutig bestimmt durch Addieren eines Wertes von 256,Q plus eines Wertes des vierfachen des Sektorcodes zu dem Inhalt des Basis-Adressregisters 4, wobei der Sektorcode einem 3 Bit-Feld entspricht, welches wie folgt gebildet wird: a) wenn das erste veränderliche Zeichen Cl das einzige veränderliche Zeichen in dem vorliegenden Befehl ist/ so wird der Sektorcode der RWC-Eingangsstelle, welche durch das Zeichen Cl beziffert ist, entnommen (lediglich Eingang-ZAusgang-Steuerbefehle-PCB); b) wenn die veränderlichen Zeichen Cl und C2 in dem Befehl vorliegen, wird der Sektorcode durch Übernahme der hochrangigen 3 Bits des veränderlichen Zeichens C2 gebildet und die hochrangigen Bits werden auf den Binärwert NULL eingestellt; c) wenn der Befehl, ein veränderliches Zeichen Cl und ein Steuerzeichen zur Codeveränderung mit oder ohne das veränderliche Zeichen C2 enthält, wird der Sektorcode durch Übernahme der 3 niedrigrangigen Bits des Steuerzeichens gebildet. Dieser Vorgang wird in näheren Einzelheiten anhand der Figur 6 erläutert.
Periphere Steuereinheit-Tabelle
Die periphere Steuereinheit (PCU) bildet einen dritten in Figur Ie dargestellten Tabellentyp. Für jeden Sektor in dem zu emulierenden Zielsystem ist nur eine PCU-Tabelle vorhanden. Ebenfalls ist nur eine Eingangsstelle in der Tabelle für jede mögliche PCU-Adresse vorhanden, welche durch das Programm des Zielsystems bezeichnet wird. Es ergeben sich somit 16 Eingangsstellen in der Tabelle, wobei jede 4 Bytes aufweist.
Das Format der PCU-Tabelle ist in Figur 5c dargestellt. Wie aus Figur 5c ersichtlich, weist die Eingangsstelle Informationen betreffend den Typ der PCU, das Vorhandensein der PCU und ihres
509883/0621
Belegt/Unterbrechungs-Zustandes auf. Insbesondere zeigt eine
Codierung von Nullstellen an, daß eine periphere Steuereinheit
für diesen PCU-Adressencode nicht existent ist. Wenn die ersten 4 Bits in der Form 0001 codiert sind, so zeigt dieser Wert an,
daß eine Zielsystem-Drucker-Steuereinheit emuliert wird. Sind
diese Bits in der Form 0010 codiert, so wird hierdurch angezeigt, daß ein Zielsystem-Taktgeber emuliert wird. Eine Codierung von
Olli zeigt die Emulation einer Zielsystem-Magnetband-Steuereinheit an und Codierungen von 1000 bis 1111 verweisen darauf, daß die zu emulierende periphere Steuereinheit als eine besondere
Einheit zu behandeln ist. Immer wenn ein Code betreffend eine
besondere Einheit festgestellt wird, überträgt der Emulator sofort den Befehl zu dem Emulator-Unterstützungspaket zwecks weiterer Verarbeitung.
Wenn das Bit 4 den Binärwert EINS annimmt, so wird hierdurch angezeigt, daß die periphere Steuereinheit zeitweilig nicht verfügbar oder adressierbar ist. Wenn dieses Bit den Binärwert EINS annimmt, so wird das PCU-Beleg-Bit (CB), welches dem Bit 7 entspricht, ebenfalls auf den Binärwert EINS gesetzt. Das Bit 5 ist ein "kein-Zustands-Bit", welches im Fall der Annahme des Binärwertes EINS darauf hinweist, daß kein Zustand in den Bits 4 und 7 bis 15 dieser Eingangsstelle vorliegt und daß die Bits 10 bis 15 einen veränderlichen C2-Code enthalten, welcher auf die PCU-Tabellen-Eingangsstelle verweist, in welcher die gewünschte Information abgelegt ist. In diesem Zustand sind die Bits 4 und 7 bis 11 für die Software reserviert.
Wenn das Bit 5 den Binärwert NULL einnimmt, so bestimmen die Bits 4 und 7 bis 15 den Zustand. In diesem Fall sind der Verschiebewert des Geräte-Tabellenfeldes und des PCU-Typen-Feldes gültig
und das Bit 6 wird auf den Binärwert EINS gesetzt. Wenn das Bit 7 den Binärwert EINS einnimmt, so zeigt es an, daß die zu emulierende Zielsystem-PCU belegt ist. Die Bits 8 und 9 sind für den
Gebrauch der Software reserviert, während die Bits 10 bis 15 eine veränderbare PCU oder einen Unterbrechungszustand in Abhängigkeit
509883/0621
von dem Zustand des Bits 5 kennzeichnen. Wenn das NS Bit 5 den Binärwert EINS auf v/eist, so enthält dieses Feld einen versetzten C2-Code für den durch den Befehl gekennzeichneten Sektor. Dieser versetzte C2-Code wird in der gleichen Weise wie der C2-Code desjenigen Befehls verarbeitet, welcher benutzt wird, um die Adresse derjenigen Tabellen-Eingangsstelle zu erhalten, welche eine bestimmte Zustandsinformation aufweist. Der Zweck dieser Anordnung besteht darin, periphere Zielsystem-Steuereinheiten zu emulieren, die mehr als eine PCU-Adresse benutzen, da sie mehr als ein zugeordnetes Gerät aufweisen, aber zur gleichen Zeit nur eine Eingang-/Ausgang-Operation ausführen können. Es ergeben sich somit zwei Eingangsstellen in der PCU-Tabelle, die durch einen einzigen PCU-Code adressiert werden und über ein gemeinsames Belegt-Zustands-Bit die den beiden Eingangsstellen zugeordneten Operationen verblocken.
Weist das Bit 5 den Binärwert NULL auf, so enthält das Feld einen ünterbrechungszustand,der wie folgt definiert ist: die Bits 10 und 11 sind für den Gebrauch durch die Software reserviert; das Bit 12 ist ein Steuereinheit-Unterbrechungs-Bit, welches für den Fall, daß es gesetzt ist, anzeigt, daß die Steuereinheit-ünterbrechungsfunktion für die fragliche Zielsystem-PCU wirksam ist; das Bit 13 ist ein Steuereinheit-Freigabe-Bit, welches für den Fall, daß es den Binärwert EINS einnimmt, anzeigt, daß die PCU-Unterbrechungs-Freigabefunktion für das PCU-Zielsystem eingeschaltet ist; das Bit 14 ist ein Geräte-Unterbrechungs-Bit, welches im Fall einer binären EINS anzeigt, daß die Geräte-Unterbrechungsfunktion für das PCU-Zielsystem eingeschaltet ist; das Bit 15 ist ein Geräte-Unterbrechungs-Freigabe-Bit, welches im Falle einer binären EINS anzeigt, daß die Geräte-Unterbrechungs-Freigabefunktion in der emulierten Steuereinheit eingeschaltet ist und die Bits 16 bis 31 sind Verschiebe-Bits, welche den Basisspeicherplatz der Gerätetabeile der PCU bezogen auf den durch den Inhalt des Basis-Adressregisters 4 gekennzeichneten Speicherplatz bestimmen.
509883/0621
Da die Beendigungstabelle, die PCU-Erweiterungstabelle, die Gerätetabellen und die Geräte-Erweiterungstabellen nicht erforderlich sind zur Erklärung der Wirkungsweise der vorliegenden Erfindung, sollen sie hier nicht diskutiert werden.
Wie aus Figur Ib ersichtlich/ nimmt das Segment A, welches ein Abbild des Zielsystem-SteuerSpeichers enthält, die ersten 64 Worte des Segmentes in Anspruch, auf die durch den Inhalt des Basis-Verschieberegisters 3 (BR3) des PCE hingewiesen wird. Das Segment A schließt eine Anzahl von Speicherplätzen ein, die nicht dargestellt sind und die bei der Behandlung der durch das Zielsystem ausgeführten Funktionen benutzt werden. Der microprogrammierte Teil der CPU-Hardware, der als Kompatibilitätsschaltkreis (CF) aufgefasst werden kann, führt hierbei die meisten Zielsystem-Befehle direkt aus. Dieser Teil des Systems wird normalerweise auf Grund eines Startbefehles in Betrieb gesetzt, wobei ein Dekor-Erweiterungs-Ausführungsbefehl (EXDE) das System in die die Kompatibilität ermöglichende Betriebsweise umschaltet.
Die Emulator-Softv/are ESP bewirkt die Übersetzung und Ausführung der Eingang-/Ausgang-Befehle. Die ESP kann in dem System gemäß Figur 1 als eine "Prozess"-Gruppe betrachtet werden. Wie bereits erwähnt, ruft die ESP die Kompatibilitätsschaltkreise durch Benutzung eines Startbefehls oder eines Dekor-Erweiterungsbefehles auf. Wird der Startbefehl benutzt, so wird der von dem Kompatibilitätsschaltkreis gesteuerte Prozess von dem ihn auslösenden ESP-Prozess getrennt. Im Fall eines Dekor-Erveiterungsbefehles stimmt der Zielsystemprozess mit dem ihn auslösenden ESP-Prozess überein, wobei jedoch die CPU im Zielsystem-Betrieb arbeitet. Vor der Ausführung des Dekor-Erweiterungsbefehls bewirkt daher die ESP die Umschaltung ihrer Register auf den Inhalt und das Format, wie es durch die Codierung des PCB gemäß Figur Ic dargestellt ist.
509883/0621
Die Konipatibilitätsschaltkreise veranlassen die ESP zur Ausführung einiger der Eingang-VAusgang-Operationen, wie sie von dem Zielsystemprozess gefordert werden. Die als Ergebnis eines ausgeführten Zielsystem-Kanalprogrammes gespeicherten Ereignisse v/erden an die ESP-Ereignis-Behandlungseinrichtung weitergegeben. Diese Behandlungseinrichtung ergänzt die Eingang-/Ausgang-Tabellen und bestimmte Steuerworte, welche ein Unterbrechungs-Anforderungswort und ein Unterbrechungs-Zählwort des Segmentes A gemäß Figur Ib umfassen. Wenn die Kompatibilitätsschaltkreise eine Behandlung durch die ESP erfordern, so werden diese in die Lage versetzt, den Zustand des Zielsystems in den allgemeinen Registern zu speichern und die geeigneten Parameter zu erzeugen, welche eine Bedienungs-Klassennummer (SCN) umfassen. Wenn die Kompatibilitäts-Betriebsweise des Wirtssystems ausgeschaltet wird, so ruft dieses ein Unterbrechungs-Zählwort (ICW) ab, welches sogenannte Wirts-Befehle benutzt.
Allgemeines Unterbrechungsregister und Steuerworte
Die Figuren Ic und Id zeigen in näheren Einzelheiten die Codierung bestimmter Steuerworte, welche in dem Hauptspeicher gespeichert sind und von denen einige einen Teil des PCB bilden. Die verschiedenen dargestellten Worte v/erden für die Behandlung der Unterbrechungsoperationen des Zielsystems herangezogen. Das erste Wort ist dem allgemeinen Register 0 (GRO) zugeordnet, welches gemäß Figur Ic verschiedene Bytes aufweist. Das letzte, und vierte Byte ist als INC-Byte bezeichnet und in Figur Id näher dargestellt und dient der Abgrenzung der Sektoren mit den Unterbrechungs-Masken-Bits. Innerhalb des INC-Bytes ist jeweils ein solches Bit für jeden Sektor vorgesehen. Die Masken-Bits sind so codiert, daß sie den Zustand der Zielsystem-Hinweise repräsentieren. Durch diese Bits wird festgelegt, ob ein Sektor in der Lage ist, periphere Unterbrechungs-Bits (PI-Bit) zu erzeugen, wodurch angezeigt wird, daß eine Unterbrechung in einem der Sektoren des Zielsystems vorliegt.
509883/0621
2517278
Das nächste Wort ist dem allgemeinen Register 4 (GR4) zugeordnet, welches ein INEI-Byte enthält, das in Figur Id in näheren
eine Einzelheiten dargestellt ist und eineVexterne Unterbrechung (EI) markierendes Bit sowie eine eine interne Unterbrechung (II) markierendes Bit enthält. In dem Zielsystem,wie es in dem zuvor erwähnten Programmierhandbuch näher beschrieben ist, werden durch ein externes Unterbrechungssignal Zielsystemhinweise erzeugt, um die Quelle und die Art der Unterbrechung anzuzeigen.
Ein internes Unterbrechungssignal wird in dem Zielsystem durch eine Speicherschutz-Übertretung erzeugt. Durch dieses Signal werden wiederum Zielsystem-Hinweise gesetzt, um die Ursache und die Art der Unterbrechung anzuzeigen. Der Zielsystem-Prozessor arbeitet normalerweise in einer externen und einer internen Unterbrechungs-Betriebsweise, um auf diese Unterbrechungssignale ansprechen zu können.
Das allgemeine Register 9 umfasst ebenfalls verschiedene Bits, die dem Unterbrechungsverfahren zugeordnet sind. Das erste Bit ist mit "SP" bezeichnet und wird durch den Kompatibilitätsschaltkreis gesetzt, wodurch verschiedene Hinweise gesetzt werden in Abhängigkeit von einem der Unterbrechungs-Steuerbefehle des Zielsystems, die als Rückspeicherveränderliche und Hinweis-Befehle (RVI) ausgelegt sind. Normalerweise weist dieses Bit den Binärwert EINS auf. Die nächsten Bits, von denen nur zwei dargestellt sind, sind Freigabe-Masken-Bits, die mit EMI und EM2 bezeichnet sind. Diese Eits werden durch die Kompatibilitätsschaltkreise herangezogen, um die Sektor-Unterbrechungs-Maskenhinweise in Abhängigkeit von den RVI-Zielsystem-Befehlen zu setzen. Im Fall der vorliegenden Erfindung kann angenommen werden, daß diese Bits den Binärwert EINS aufweisen.
Bei der Ausführung von Operationen betreffend die Unterbrechungsverarbeitung, stehen die Kompatibilitätsschaltkreise mit der ESP über verschiedene Steuerworte der Information in Nachrichtenaustausch, wobei das Unterbrechungs-Zählwort und das Unterbrechungs-
509883/0621
251727S
Anforderungswort, welche beide in dem Segment A gemäß Figur Ib enthalten sind, zur Anwendung gelangen. Wie aus Figur Ie ersichtlich, enthält jedes der Unterbrechungs-Zählworte (ICViI und 2) auf die Bytegröße abgestimmte Zähler, welche die Anzahl der Unterbrechungen auf der Sektorschiene des Zielsystemes anzeigen. Die ESP des Ereignis-Behandlungsprozesses wirkt in der vorstehend erwähnten Weise auf die Erhöhung des Unterbrechungs-Zählstandes ein. Der Unterbrechungs-Zählstand wird durch die Kompatibilitätsschaltkreise oder die ESP in der erwähnten, Weise vermindert. Das ünterbrechungs-Anforderungswort (IRW) wird benutzt, um Unterbrechungsanforderungen zu retten und eine Einrichtung zu aktivieren, durch welche die Kompatibilitätsschaltkreise Änderungen in dem Zustand der Unterbrechungsanforderung der ESP mitteilen. Der Zustand des Unterbrechungs-Anforderungswortes wird durch die Kompatibilitätsschaltkreise immer dann geprüft, wenn ein EXDE-Befehl ausgeführt wird, wodurch das System in die Kompatibilitäts-Betriebsweise umgeschaltet wird. Wie aus Figur Id ersichtlich, sind verschiedene Bits speziell der Unterbrechungsbearbeitung zugeordnet. Ein mit "IAC" bezeichnetes Bit stellt ein Unterbrechungs-Betätigungs-Bit dar, welches für den Fall, daß es den Binärwert NULL einnimmt, die Kompatibilitätsschaltkreise zeitweilig in die Lage versetzt, auf Unterbrechungen und Ereignisse nicht zu reagieren. Dieses Bit nimmt normalerweise den Binärwert EINS ein. In dem INE-Byte sind verschiedene Bits vorgesehen, welche den Anforderungs-Bits der externen Unterbrechungs-Betriebsweise der Zielsystem-C_uellenhinweise entsprechen. Diese umfassen ein Bit AVEI, ein Bit MC, ein Bit OPI und ein Bit PI, welche für den Fall, daß sie den Binärwert EINS einnehmen, das Erscheinen einer Adressenverschiebung, eines Überwachungs-Anforderungsbefehls, eine Bedienungsfeld-Unterbrechung und eine periphere Unterbrechung signalisieren. Das Byte INI enthält Betriebsweise-Bits einer internen Unterbrechung der Zielsystem-Hinweise, von denen nur zwei dargestellt sind. Ein Bit AV und OCV signalisieren für den Fall, daß sie den Binärwert EINS einnehmen, das Erscheinen einer Adressenverschiebung und eine Operationscodeverschiebung.
509883/0621
Beschreibung der Wirkungsweise
Bezug nehmend auf die Figuren 1, la bis Ie, 2, 2d, 5a bis 5c und 6 wird die Wirkungsweise des Systems gemäß der vorliegenden Erfindung in Verbindung mit den Flußdiagrammen gemäß den Figuren 3a bis 3e und 4a bis 4b beschrieben. Die Wirkungsweise wird anhand eines Beispieles beschrieben, bei welchem das Wirtssystem Unterbrechungen des Zielsystems in Übereinstimmung mit der vorliegenden Erfindung verarbeitet. Hierbei sind verschiedene spezifische Zeitpunkte gegeben, in denen die CPU in der Kompatibilitäts-Betriebsweise arbeitet und den Zustand der Unterbrechungs-Zählregister jeder Sektorschiene prüft, um zu bestimmen, ob es erforderlich ist, eine Unterbrechungsverarbeitung durchzuführen oder nicht. Dies tritt nach einer Prozess-Ladeoperation auf, wenn die CPU bereit ist,unter Steuerung durch die Kompatibilitätsschaltkreise zu arbeiten und während der Verarbeitung gewisser Unterbrechungs-Verarbeitungsbefehle des Zielsystems, wobei diese Befehle einen Setz-Veränderungshinweis (SVI)-Befehl und einen Normalbetriebsweise-Wiederaufnahme (RNM)-Befehl umfassen. Hinsichtlich weiterer Informationen betreffend diese Zielsystem-Befehle sei auf das zuvor erwähnte Programmierungshandbuch verwiesen.
Die beiden in dem Steuerspeichersegment (Segment A) gespeicherten Unterbrechungs-Zählworte (ICWl und ICW2) werden durch die ESP bei der Beendigung der peripheren Eingang-/Ausgang-Befehle ergänzt, sofern Unterbrechungs-Freigabehinweise in den Eingang-/ Ausgang-Tabellen auf den Binärwert EINS gesetzt sind, wodurch bestimmte periphere Geräte in die Lage versetzt werden, Unterbrechungen zu erzeugen. Im Fall der vorliegenden Erfindung nehmen diese Hinweise den erwähnten Wert ein, um die Verarbeitung der Unterbrechung durch die CPU zu gestatten.
Figur 3a stellt die Prozess-Laderoutine dar. Die nicht dargestellten anfänglichen Microbefehle verursachen bei ihrer Ausführung das Laden des Inhalts des allgemeinen Registers des PCB in
609883/0621
2517278
entsprechende Speicherplätze des LSM zur unmittelbaren Eezugnahme. Eine andere Gruppe von nicht dargestellten Microbefehlen laden die geeigneten Werte in das Basisregister des URF zwecks Adressierung der verschiedenen Teile des Hauptspeichers, des SteuerSpeichers und der Eingang-/Ausgang-Tabellen während der Ausführung eines Zielsystem-Programmes. Es sind ferner weitere Microbefehle vorgesehen zur Abrufung des korrekten Basisregisterinhalts entweder von dem Zuordner oder von dem Hauptspeicher, wenn die Information in dem Zuordner nicht vorhanden ist.
Wenn die Prozessladeoperation durchgeführt ist, v/erden weitere Microbefehle 125 bis 130 ausgeführt, durch welche die Bytes, welche die CFCW-Hinweisinformation in der gemäß Figur Id codierten Weise enthalten, Byte für Byte über den SDS-Selektorschaltkreis des Eyte-Addierers geladen werden. Insbesondere wird die Information zuerst in dem AD-Register des Wortaddierers abgelegt und der SDS-Selektorschaltkreis wird in die Lage versetzt, das geeignete Byte auszuwählen, welches sodann üblicherweise in das AB-Register geladen wird. Trotz der Ladung des Bytes in das AB-Register werden jedoch die Signale des SDS-Selektroschaltkreises direkt in die Hinweis-Speicherschaltkreise geladen.
Die ausgewählten Hinweisschaltkreise werden in Übereinstimmung mit der Byte-Information und in Abhängigkeit von dem Unterbefehl-Signal EI8ClO gesetzt, wobei das Unterbefehl-Signal durch die ausgeführten Microbefehle erzeugt wird. Die Gruppe der gesetzten Hinweise werden durch den Inhalt des SD-Hinweisregisters bestimmt, welches das Byte und die besonderen zu setzenden Speicher-Flip-Flops auswählt. Wie in Figur 3a angedeutet, veranlassen die Microbefehle 131 bis 138 bei ihrer Ausführung die Speicherung anderer Hinweis-Bytes in den zugeordneten Flip-Flops in Abhängigkeit von dem Unterbefehl-Signal EI6C3O.
Es ist weiterhin ersichtlich, daß die Microbefehle 137 bis 139 das Abrufen der beiden Unterbrechungs-Sählworte aus dem Steuerspeichersegment A des Hauptspeichers veranlassen. Insbesondere
509883/0621
veranlasst der Microbefehl 137 bei seiner Ausführung die Abrufung des ersten Unterbrechungs-Zählwortes (ICW2) und die Speicherung desselben in dem Zwischenspeicherplatz W3d des LSM. Zur gleichen Zeit wird das Unterbrechungs-Zählwort in dem AF-Register des Wortaddierers abgelegt. Während der Ausführung des Microbefehls 138 wird ein ADU-Betriebsweise-Flip-Flop auf den Binärwert EINS geschaltet, wodurch die ACU in die Lage versetzt wird, eine Zielsystem-Betriebsweiseadressierung anstelle einer Eigenbetriebsweise-Adressierung zu erzeugen. Die Zielsystem-Adressierung spricht in der dargestellten Weise auf Zeichen an und ist in dem zuvor erwähnten Programmierungshandbuch ebenfalls beschrieben.
Die darauffolgende Ausführung des Microbefehls 139 veranlasst die Abrufung des zweiten Unterbrechungs-Zählwortes (ICWl) und die Speicherung desselben in dem Arbeitsspeicherplatz 3c des LSM. Zur gleichen Zeit wird das Zählwort in dem AE-Register des Wortaddierers abgelegt. Der Microbefehl 140 erzeugt bei seiner Ausführung ein Ünterbefehl-Signal EISEFO, welches die mit dem AE- und AF-Register des Wortaddierers verbundenen Unterbrechungs-Logikschaltkreise abtastet. Diese Logikschaltkreise weisen herkömmliche Decodierschaltkreise auf, welche auf einer Byte-Basis den Inhalt des AE- und AF-Registers überprüfen, wenn die ünterbrechungs-Zählstände hinsichtlich der verschiedenen Sektorschienen ebenfalls auf einer Byte-Basis gesetzt sind. Wenn irgendeines der Bytes einen Wert von Null verschieden aufweist, veranlasst das Signal EISEFO das Schalten entsprechender Sektor- Unterbrechungs-Flip-Flops in den binären EINS-Zustand, wodurch angezeigt wird, daß eine Unterbrechung auf jenen Sektorschienen ansteht. Die Ausgänge der Sektor-Unterbrechungs-Flip-Flops werden über ein ODER-Gatter zusammengefasst, welches seinerseits ein peripheres Unterbrechungssignal (PI-Signal) erzeugt, welches über einen Gatter- und Verstärkerschaltkreis als einer der Testeingänge den Verzweigungs-Logikschaltkreisen des Steuerspeichers gemäß Figur 2a zugeführt wird.
509883/0621
Es sei vorausgesetzt, daß die vorstehend genannten Operationen, welche die Erzeugung des PI-Signales veranlassen, ebenfalls durch Microbefehle ausgeführt werden können, welche bei ihrer Ausführung die Unterbrechungs-Zählworte prüfen und in Abhängigkeit von deren Werten ein einziges Flip-Flop innerhalb des Kompatibilitätsschaltkreises setzen. Die Zustände der verschiedenen Hinweise ergeben Bedingungen, welche die Kompatibilitätsschaltkreise zur Ausführung von Operationen veranlassen, die den in dem Zielsystem erforderlichen Operationen entsprechen, so z. B. die Aufrechterhaltung eines externen Unterbrechungszustandes anstelle der Herausziehung des nächsten Befehles innerhalb des Programms. Wenn das Kompatibilitätsmerkmal anstelle der Vorabruf-Routine tritt, bewirkt es eine nicht programmierte Verzweigungsoperation, bei welchem es eine Microbefehl-Verzweigung ausführt, die einen Verzweigungstest auf 64 Wegen veranlasst. Dies führt zu dem Hinweis auf eine spezifische Microprogramm-Routine in dem Steuerspeicher, wobei diese auf dem Zustand der Hinweise basiert.
Die Ausführung der Microbefehle 141 bis 146 veranlasst den Inhalt des B-Zählers, des Α-Zählers und des Folge-Zählers zur Umladung in entsprechende Speicherplätze (UW4, UW6 und UWl) des URF. Die Ausführungen des Microbefehls 147 veranlasst die überprüfung des zuvor geladenen aktiven Verschiebe-Flip-Flops. Wenn dieses Flip-Flop auf den Binärwert EINS gesetzt ist, wodurch angezeigt wird, daß die Verschiebung v/irksam ist, so werden die Inhalte des Basis-Verschieberegisters (BRR) in dem URF abgespeichert, wodurch ein Bezug auf die effektive BRR-Adresse hergestellt wird. Die Ausführung des Microbefehls 248 veranlasst die BRR- und IBR-Werte in dem AC-Register zur Umspeicherung in den Speicherplatz BRO des URF. Wenn das aktive Verschiebe-Flip-Flop auf den Binärwert NULL gesetzt wird, so wird der Microbefehl ausgeführt und veranlasst die Einspeicherung von Nullstellen in den Speicher BRO des URF. Der Microbefehl 150 veranlasst bei seiner Ausführung die Umspeicherung des Wertes in dem IBR in den Speicher BRO des URF und die Umschaltung der nicht dargestellten
509883/0621
Flip-Flops ADT und ACT des Wortaddierers auf den Binärwert EINS, welche als Eingangsquellen des Wortaddierers durch Auswahl der AD- und AC-Register dienen und die Eefehl-Abrufoperation vorbereiten.
Bei Beendigung der Prozess-Laderoutine und unter der Annahme, daß wenigstens ein Unterbrechungs-Zählwort der Sektorschiene einen Zähler von eins enthält, werden die Kompatibilitätsschaltkreise wirksam und erzeugen das PI-Signal. Diesem Vorgang folgt eine nicht programmierte Verzweigungsoperation, bei welcher die Kompatibilitätsschaltkreise veranlasst werden, eine Verzweigung zu einer Eingangsstelle innerhalb des Steuerspeichers vorzunehmen, zwecks Verarbeitung einer externen unterbrechung. Dies hat die Ausführung von Microbefehlen zur Folge, die ein Auswechseln des Inhalts des Folgezählers mit dem Inhalt des externen Unterbrechungsregisters bewirken und das Herausholen desjenigen Befehles einleiten, dessen Adresse in dem externen Unterbrechungsregister gespeichert war. Bevor dieser Befehl herausgeholt wird, setzen die Kompatibilitätsschaltkreise den externen Unterbrechungshinweis auf den Binärwert EINS. Die Unterbrechungs-Verarbeitung gehört zu Prozess-Unterbrechungen, die auf der gleichen Sektorschiene wie das unterbrochene Programm auftreten. Wenn dies nicht der Fall ist, veranlasst die Unterbrechungs-Verarbeitungsfolge über die Ausführung von Unterbrechungs-Steuerbefehlen (z.B. SVI und RVI) die Speicherung der zugehörigen Sektor-Bits. Wie zuvor bereits erwähnt, ist jeder Sektorschiene ein Masken-Bit zugeordnet. Wenn in dem Zielsystem das Masken-Bit den Binärwert NULL einnimmt, so v/erden Unterbrechungen verarbeitet, die von an diese Sektorschiene angeschlossenen Quellen herstammen. Nimmt das Masken-Bit den Binärwert EINS ein, so werden die Unterbrechungen solange gespeichert, bis das Masken-Bit eine Veränderung erfährt, oder die Unterbrechungsfunktion zurückgestellt wird. Unterbrechungen, die von dem Bedienungssteuerfeld und der Überwachungseinrichtung herrühren, werden in dem Zielsystem niemals maskiert. Ebenso veranlasst die Betätigung eines Auslöseknopfes auf dem Steuerfeld die Zurückstellung aller Masken-Bits auf den Binärwert NULL. Die Ausführung eines SVI-Eefehls
§09883/0621
veranlasst die Speicherung der Masken-Bits,während die Ausführung eines RVI-Befehls das Setzen oder Rückspeichern der Masken-Bits in einer nochweiter zu erläuternden V/eise veranlasst.
In dem Zielsystem steht das von einer PCU erzeugte Unterbrechungssignal solang an, bis ein peripherer Datenübertragungs-Befehl (PDT-Befehl) der PCU angezeigt wird, ein peripherer Steuer- und Verzweigungs-Befehl (PCB-Befehl), welcher die Unterbrechungsfunktion der PCU abschaltet, angezeigt wird oder die CPU zu arbeiten beginnt. Somit beginnen die Kompatibilitätsschaltkreise unter Steuerung des Zielsystems-Programraes mit der Unterbrechungs-Verarbeitung durch Ausführung eines SVI-Befehles. Zu diesem Zeitpunkt werden die Zustände der verschiedenen Hinweis-Speicher-Flip-Flops in einem geeigneten Bereich des Hauptspeichers gespeichert, wobei die verschiedenen Hinweis-Speicher-Flip-Flops der fortlaufenden Rückkehr zu dem unterbrochenen Programm sowie zur Informationsgabe zwecks Kennzeichnung der Unterbrechungsquelle dienen. Sodann erzeugen die Kompatibilitätsschaltkreise unter Steuerung des Zielsystem-Programmes einen PCB-Befehl für die PCU zwecks Abschaltung der Unterbrechungsfunktion oder sie verusachen einen PDT-Befehl für die PCU, falls ein solcher für die PCU vorliegt.
Figur 3b zeigt ein Flußdiagramm, in welchem die während der Verarbeitung des PCB-Befehls durchgeführten Operationen dargestellt sind. Es sei angenommen, daß der PCB-Befehl das folgende Format aufweist: Operationscode/Cl/C2/C3 (siehe Figur 6). Das Cl-Steuerzeichen bestimmt normalerweise einen Leser/Schreib-Kanal, und es weist den Binärwert NULL auf, sofern eine Test- und Verzweigungsoperation nicht angefordert wird. Das C2-Zeichen ist so codiert, daß es die Adresse der PCU festlegt, deren Unterbrechungszustand geändert werden soll. Das C3-Zeichen ist so codiert, daß es an der höchsten Stelle den Code von 7ß aufweist, wodurch die Änderung des Unterbrechungszustandes in der PCU angezeigt wird. Die nächste Zahl zeigt durch ihren Code an, wie der Unterbrechungszustand der PCU geändert werden soll. Beispielsweise wird· der
509883/0621
JD
folgende Oktal-Code benutzt, um die folgenden Operationsarten für die Speichereinrichtungen festzulegen:
1. Og = Abschaltung der Steuer-Freigabefunktion
2. Ig = Einschaltung der Steuer-Freigabefunktion
3. 2g = Abschaltung der Geräte-Freigabefunktion
4. 3g = Einschaltung der Geräte-Freigabefunktion
5. 4g = Abschaltung der Steuer-Unterbrechungsfunktion
6. 5g = Verzweigung zur Adresse A, falls Steuer-Unterbrechungsfunktion eingeschaltet ist
7. 6g = Abschaltung der Geräte-Unterbrechungsfunktion
8. 7g.= Verzweigung zur Adresse A, falls Geräte-Unterbrechungsfunktion eingeschaltet ist.
Gemäß Figur 3b holen die Kompatibilitätsschaltkreise den PCB-Befehl heraus und speichern verschiedene Teile des Befehls in der angegebenen Weise. Wenn angenommen wird, daß der Befehl keine Testoperation kennzeichnet, so weist der RWC-Code den Binärwert NULL auf und die Kompatibilitätsschaltkreise bewirken die Ausführung einer Sektor-Testoperation. Für andere RWC-Codes als NULL und 77 führen die Schaltkreise eine RWC-Testoperation aus, welche die in Figur 4a dargestellten Operationen einschließt.
Figur 4b veranschaulicht die Sektor-Testroutine, in welcher ein nächstes veränderliches Steuerzeichen (z.B. das C2-Zeichen) abgerufen wird zwecks Bestimmung des besonderen Befehlsformates. Wenn dieses Zeichen nicht das letzte Zeichen ist, so fällt der Wortmarken-Test negativ aus und veranlasst die Kompatibilitätsschaltkreise zu einem Test daraufhin, ob die höchste Zahl den Viert 1 oder 5 aufweist. Ist dies nicht der Fall, so ist das Testergebnis negativ und die niedrigrangigen Bits kennzeichnen die Sektorschiene in dem Zielsystem (z.B. die Bits 3 und 4 des C2-Zeichens gemäß Figur 6). Wie aus dem Flußdiagramm ersichtlich, wird dieser Viert gespeichert (z.B. wird die Sektor-Codeadresse in den Speicherplatz UW2 der URF eingeschrieben). Ebenso wird
509883/0621
der PCU-Code gespeichert (z.B. C2-Bits 6, 3, 2, 1 in Figur 6). Als nächstes wird der Sektorcode herangezogen, um die Sektortabelle zu bestimmen, zwecks Abrufung der Sektortabellen-Eingangsstelle für den Test des Zustandes der Sektorschiene. Da die Sektormaskierung in allen Binärstellen den Binärwert NULL aufweist, liefert der Test den entsprechenden Wert. Bei der Ausführung des Tests kehrt die Routine zu der Hauptroutine zurück, wodurch mit der Ausführung der Zustands-Abrufroutine bezüglich der peripheren Steuereinheit begonnen wird und die geeignete PCÜ-Eingangsstelle abgerufen wird. Die Routine adressiert die PCü-Tabelle unter Heranziehung des PCü-Codes,der aus dem C2-Zeichen erhalten wird und ruft die Eingangsstelle ab. Der PCU-ID-Code wird gespeichert und dann zur Ausführung einer N-Weg-Verzweigung benutzt, die auf dem hexadezimalen Wert des PCü-Codes basiert und die Auswahl der geeigneten Geräteroutine ermöglicht.
Die Geräteroutine führt die aufgezeigten Operationen aus, welche zunächst das Abrufen des nächsten veränderlichen Steuerzeichens (z.B. C3-Zeichen) umfassen. Wie aus Figur 3b ersichtlich, testen die Kompatibilitätsschaltkreise den Wert des hochrangigen Bits und wählen auf Grund dieses Wertes die geeignete Routine aus. Wenn das hochrangige Bit einen Oktalwert von 7 aufweist, so wird die Unterbrechung-Behandlungsroutine gemäß Figur 3c ausgeführt. Diese Routine ist in Figur 3d in näheren Einzelheiten dargestellt.
Gemäß Figur 3c bewirkt diese Routine die Verzweigung auf eine von 8 Folgen (z.B. Microbefehl 101 gemäß Figur 3d) zwecks Ausführung der angezeigten Statusveränderung, welche die Änderung vorbestimmter in der PCU-Eingangssteile enthaltener Bits umfasst. Wenn das niedrigrangige Bit einen Wert von 0 bis 3 aufweist, so schalten die Kompatibilitätsschaltkreise das Steuer-Freigabe-(CA)- und das Geräte-Freigabe (DA)-Bit in der dargestellten Weise aus und ein (z.B. Microbefehle 200 bis 302). Werte von 5 und 7 hinsichtlich des niedrigrangigen Bits verursachen Verzweigungs-
509883/0621
operationen, welche den Zustand der Steuer-Unterbrechungs- und Geräte-Unterbrechungs-Bits testen.
Wenn die niedrigrangige Zahl einen Wert von 4g oder 6„ aufweist, so wird dadurch angezeigt, daß der Zustand der Unterbrechungsfunktion der PCU oder des Gerätes abgeschaltet v/erden soll. Wie aus Figur 3c ersichtlich, führt dies zu einem Test., der CI- und DI-Bits der PCU-Eingangsstelle und diese Bits werden, falls sie den Binärwert EINS aufweisen,auf den Binärwert NULL umgeschaltet (Microbefehle 204 bis 600, 206 bis 532 gemäß Figur 3d) . Anschließend v/erden Microbefehle ausgeführt, welche den Sektoi— code und die Ünterbrechungs-Zählwörter abrufen. Das geeignete Zählwort für die Sektorschiene wird zur Modifikation ausgewählt, wobei der Wert des Sektorcodes benutzt wird (Microbefehl 609 gemäß Figur 3d) . Zunächst wird das ausgewählte Unterbrechungs-Zählwort daraufhin überprüft, ob es den Binärwert NULL aufweist. Ist dieser Test positiv, so erzeugen die Kompatibilitätsschaltkreise einen vorbestimmten SCN-Code (z.B. Microbefehle 816 und 916), wodurch ein Zustand angezeigt wird, welcher einen nicht programmierten Sprung zu der Eingang-/Ausgang-Dienstruf-Routine verursacht zwecks Vervollständigung der Verarbeitung des PCB-Befehles. Hiernach ruft die PvOUtine die verbleibenden veränderlichen Zeichen ab, von denen hier keines angefordert wird, lädt die passenden Teile des PCB-Befehls in den LSM und signalisiert die ESP.
Unter der Annahme, daß das Unterbrechungs-Zählwort nicht den Binärwert NULL aufweist, bev/irken die Kompatibilitätsschaltkreise eine Erniedrigung des Unterbrechungszählstandes um eins und erzeugen das Signal EISEFO (z.B. die Microbefehle 618 und 717 gemäß Figur 3d), durch welches das Unterbrechungs-Anforderungs-Flip-Flop für die Sektorschiene entsprechend dem Ergebnis gesetzt wird. Als nächstes kehren die Kompatibilitätsschaltkreise zu der Hauptroutine zurück, wodurch die Abrufung des nächsten veränderlichen Zeichens ausgeführt wird. Wenn das C3-Zeichen
509883/0621
m In exner Ei:
das letzte Zeichen ist, so endet die Operation in einer Eingang-/ Ausgang-Bedienungs-Rufroutine.
Aus vorstehendem ist ersichtlich, daß die Kompatibilitätsschaltkreise bei der Feststellung eines PCB-Eefehls wirksam werden, die Abschaltung einer zuvor wirksamen Unterbrechungsfunktion bewirken und eine Erniedrigung des ünterbrechungszählstandes hinsichtlich der durch den Befehl gekennzeichneten Sektorschiene bewirken.
Die ESP führt eine gleiche Operation im Falle eines PDT-Befehls aus, nachdem der Befehl durch die Kompatibilitätsschaltkreise verarbeitet worden ist, sofern diese der ESP angezeigt haben, daß ein solcher Befehl ausgegeben werden kann, in dem alle durch den Befehl bestimmten Quellen für eine Zuweisung verfügbar sind. Figur 3e stellt die Operationen f wie sie von den Kompatibilitätsschaltkreisen zur Bestimmung der Verfügbarkeit der Quellen durchgeführt v/erden,dar. Im Fall der vorliegenden Erfindung kann angenommen v/erdenr daß alle Quellen vorhanden sind, in welchem Fall die Kompatibilitätsschaltkreise einen SCN-Code liefern, der die Art des PDT-Befehles, z.B. den Gerätetyp anzeigt.
Mittels abgerufener herkömmlicher Befehle, die den Befehlszählerinhalt des PCB benutzen, kann die ESP im Falle der Bereitschaft zur Ausgabe des PDT-Befehls eine Befehlsfolge ausführen, durch welche auf die Eingang-/Ausgang-Tabellen zugegriffen wird zwecks Errichtung des korrekten Zustandes, der die Wirkungsweise des Zielsystems simuliert. Beispielsweise kann die ESP das Belegt-Bit (CB) in der PCü-Tabellen-Eingangsstelle auswählen und die zugeordneten Zeitlücken in den Belegtzustand umschalten. Weiterhin kann die ESP während dieser Operationen die Unterbrechungs-Bits (CI/DI) der PCU-Eingangsstelle in den unwirksamen Zustand schalten. Entsprechend den gerade beschriebenen Operationen bezüglich des PCB-Befehls kann die ESP zur gleichen Zeit den Sektorzählstand um eins erniedrigen, falls sie das Unterbrechungs-Bit im eingeschalteten Zustand vorfindet.
509883/0621
Auf einen PCB- oder PDT-Befehl führen die Kompatibilitätsschaltkreise einen RVI-Eefehl zur Rückspeicherung des Zustandes aus, der von einem RNM-Befehl zur Rückführung des Zielsystem-Programmes auf das unterbrochene Programm gefolgt wird. Innerhalb der Verarbeitung des RNM-Befehles prüfen die Kompatibilitätsschaltkreise die Inhalte der Unterbrechungs-Zählworte, um festzustellen, ob die Unterbrechungsverarbeitung weitergeführt werden soll, z.B. ob noch eine Unterbrechung ansteht. Stehen keine Unterbrechungen mehr an, so werden die Inhalte des Folgezählers und der Unterbrechungsregxster ausgewechselt und das EI-Flip-Flop
auf den Binärwert NULL zurückgesetzt, wodurch die Kompatibilitätsschaltkreise zu der normalen Verarbeitung zurückkehren. Stehen noch Unterbrechungen an, so werden die oben erwähnten Operationen wiederholt.
Es sei vorausgesetzt, daß jedesmal wenn eine Eingang-/Ausgang-Operation vollständig ausgeführt ist, die herkömmliche ESP-Unterbrechungs-Behandlung-Software aufgerufen wird. Dadurch wird die ESP veranlasst, eine Reihe von Befehlen zwecks Zugriff auf die Eingang-/Ausgang-Tabellen auszuführen und die geeigneten
Zustandsänderungen vorzunehmen, Beispielsweise gibt sie die zugeordneten Zeitlücken frei und schaltet zusätzlich das Belegt-Bit (CB) ab, welches in der PCU-Eingangsstelle der speziellen
PCU enthalten ist. Insbesondere schaltet die ESP das PCU-Unterbrechungs-Bit (CI oder DI) ein. Zur gleichen Zeit ruft die ESP das Zählwort für die Sektorschiene ab und erhöht den Zählstand um eins. Diese Operation simuliert die Zielsystemoperation, in welcher die PCU oder das Gerät bei der Vervollständigung einer Eingang-/Ausgang-Operation auf seine Unterbrechungs-Speicherfunktion umschaltet, wodurch ein Unterbrechungssignal auf der
gemeinsamen Unterbrechungsleitung der ihr zugeordneten Schiene erscheint.
Aus dem vorstehend geschilderten Sachverhalt wird klar, daß die Anordnung gemäß der vorliegenden Erfindung in der Lage ist, eine
509883/0621
geeignete Unterbrechungsverarbeitung eines Zielsystem-Progranur.es in dem Fall zu erzeugen, wo die Anschaltung einer Gruppe von peripheren Steuereinheiten oder Geräten eines Zielsystemes gemeinsam betrieben wird. Ebenso ist der Emulator gemäß der vorliegenden Erfindung durch die Eenutzung von in einer Anzahl von Tabellen enthaltenen Informationen in der Lage, alle geforderten Unterbrechungs-Operationen durchzuführen, indem ein minimaler Betrag von zusätzlicher Information herangezogen wird, wobei der Verlust an Verarbeitungszeit in dem System äußerst gering gehalten wird. Aus diesen Tatsachen resultiert insgesamt eine beträchtliche Verbesserung des Wirtssystems.
Hinsichtlich der exakten Codierungen der geeigneten Microbefehle sind in der vorstehenden Beschreibung keine näheren Angaben gemacht, da eine solche Codierung ohne weiteres dem Fachmann an die Hand gegeben ist. Weitere Details bezüglich einer solchen Codierung können der Veröffentlichung: "Microprogramming Principles and Practices" von S.S. Husson, Prentice-Hall, Incorporation, 1970 entnommen werden.
509883/0621

Claims (21)

  1. Patentansprüche
    Datenverarbeitungssystem zur Durchführung von Datenverarbeitungsoperationen hinsichtlich einer Vielzahl peripherer Geräte, gekennzeichnet durch
    a. einen Hauptspeicher mit einer Vielzahl von Speicherplätzen,
    b. eine erste Gruppe dieser Speicherplätze zur Speicherung von Befehlen mindestens eines Zielsystemprogrammes, wobei
    . diese Befehle mindestens einen Eingangs-/Ausgangs-Befehl betreffend die Verarbeitung einer Unterbrechung einer peripheren Zielsystem-Steuereinrichtung innerhalb einer Vielzahl solcher Steuereinrichtungen enthalten und die Steuereinrichtungen die Unterbrechungssystemeinrichtungen des Zielsystemes gemeinsam benutzenp
    c. eine zweite Gruppe dieser Speicherplätze zur Speicherung von Unterbrechungs-Zustandshinweisen für eine weitere periphere Steuereinrichtung,
    d. eine dritte Gruppe dieser Speicherplätze zur Speicherung des Hinweises auf den Unterbrechungszustand des Zielsystems, wobei wenigstens einer dieser dritten Speicherplätze eine Unterbrechungszahl entsprechend der Nummer der den Unterbrechungszustand aufweisenden peripheren Steuereinrichtung enthält und
    e. Microprogramm-Steuereinrichtungen zum Speichern von Folgen von Microbefehlen zur Steuerung der Operationen des Systems durch Verarbeitung von Befehlen wenigstens zweier verschiedener Arten, wobei beim Betrieb der Steuereinrichtung in der ersten Art diese während der Ausführung eines Zielsystem-Eingang-/Ausgang-Befehles die Änderung des Unterbrechungszustandes einer peripheren Steuereinrichtung bestimmt, um auf eine vorbestimmte Folge von Microbefehlen hinzuweisen, welche das System in die Lage versetzen, die Unterbrechungs-Zustandshinweise in einen vorbestimmten
    509883/0621
    Zustand zu schalten und die den laufenden Unterbrechungszustand aller peripheren Steuereinrichtungen anzeigende Unterbrechungszahl zu ändern.
  2. 2. System nach Anspruch 1, dadurch gekennzeichnet , daß die Microprogramm-Steuereinrichtung in Abhängigkeit von einer Art des Eingang-/Ausgang-Befehles, dessen Codierung eine Datentransfer-Operation bestimmt, wobei diese Operation die Verfügbarkeit einer Vielzahl von Systemmitteln einschließlich einer peripheren Steuereinrichtung zur Feststellung der Verfügbarkeit aller Systemmittel zwecks Ausführung der Übertragungsoperation erfordert, den Bezug auf eine Folge von Microbefehlen herstellt, um das System in die Lage zu versetzen, den Unterbrechungs-Zustandshinweis der genannten peripheren Steuereinrichtung zu schalten und den Unterbrechungs-Zählerinhalt um 1 zu erniedrigen.
  3. 3. System nach Anspruch 2, dadurch gekennzeichnet , daß die Folge von Microbefehlen ausgeführt wird, v/enn das System in der Lage ist. Befehle der zweiten Art zu verarbeiten.
  4. 4. System nach Anspruch 3, dadurch gekennzeichnet , daß das in der zweiten Betriebsweise betriebene System beim Empfang eines Unterbrechungssignales wirksam wird, wobei das Unterbrechungssignal die vollständige Ausführung der Datenübertragungsoperation durch das Wirtssystem anzeigt und einen Bezug auf eine Folge von Microbefehlen herstellt, die einen Zugriff auf den Unterbrechungs-Zählerinhalt zwecks Erhöhung des Zählstandes um 1 bewirken.
  5. 5. System nach Anspruch 1, dadurch gekennzeichnet , daß die Unterbrechungs-Zustandshinweise für jeden der peripheren Steuereinrichtungen umfassen:
    a. einen ersten codierten Bit-Speicherplatz zur Anzeige, ob ' eine periphere Steuereinrichtung eine Unterbrechung, gespeichert hat,
    509883/0621
    _ 44 -
    b. einen zweiten codierten Bit-Speicherplatz zur Anzeige, ob diese periphere Steuereinrichtung für eine Unterbrechung freigegeben ist,
    c. einen dritten codierten Bit-Speicherplatz zur Anzeige, ob ein mit dieser peripheren Steuereinrichtung verbundenes Gerät eine Unterbrechung gespeichert hat,
    de einen vierten codierten Bit-Speicherplatz zur Anzeige, ob die Unterbrechung hinsichtlich dieses Gerätes freigegeben ist und
    e. eine Einschaltung der Microprogramm-Steuereinrichtung für den Fall, daß der Eingang-/Ausgang-Befehl so codiert ist, daß er die Rückstellung der peripheren Steuereinrichtung oder des peripheren Gerätes bestimmt, indem er den ersten und dritten Bit-Speicherplatz von dem Binärwert EINS auf den Binärwert NULL umschaltet und den Unterbrechungszählstand um 1 erniedrigt.
  6. 6. System nach Anspruch 1, dadurch gekennzeich net, daß das System eine Einrichtung aufweist, die in Abhängigkeit eines von Null verschiedenen Unterbrechungs-Zählstandes entsprechend eines binären EINS-Resultates durch ODER-Verknüpfung aller Unterbrechungs-Hinweise der Vielzahl peripherer Steuereinrichtungen die Programm-Unterbrechungen des Zielsystems verarbeitet,und daß diese Einrichtung in Abhängigkeit eines Unterbrechungs-Zählstandes von Null entsprechend eines binären NULL-Resultates durch die ODER-Verknüpfung das System in die Lage versetzt, das Zielsystem-Programm auszuführen.
  7. 7. System nach Anspruch 1, insbesondere Wirtssystem, zur Verarbeitung eines Zielsystem-Programmes, welches eine: Vielzahl von Befehlen in irgendeinem Format aus einer Vielzahl von Formaten aufweist, dadurch gekennzeichnet, daß eine erste Speichereinrichtung mit mehreren Segmenten vorgesehen ist, von denen jedes Segment mehrere adressierbare Speicherplätze aufweist, daß ein erstes Segment
    509883/0621
    der Speicherung des Zielsystem-Programmes dient, wobei dieses Programm wenigstens einen Ein gang-/Ausgang-Ee£ehl mit einem Operationscodezeichen und mehreren Steuerzeichen aufweist, daß ein zweites Segment der Speicherung von Hinweisen auf den unterbrechungszustand wenigstens einer ersten Anzahl von peripheren Zielsysten-Elementen dient, die außerhalb des Wirtssystems angeordnetinauf eine gemeinsame Unterbrechungs-Systelleinrichtung arbeiten und der Ausführung der Eingang-/ Ausgang-Befehle dienen, daß ein drittes Segment der Speicherung eines den Unterbrechungszustand der ersten Anzahl von peripheren Zielsystem-Elementen kennzeichnenden Zählstandes dient, daß eine SteuerSpeicher-Einrichtung mit mehreren Microprogrammfolgen angeordnet ist, von denen jede Folge mehrere Microbefehle enthält, die bei ihrer Decodierung Steuersignale zur Ausführung von durch das Zielsystem-Programm vorgegebenen Operationen hinsichtlich des Systems veranlassen, wobei die Steuerspeicher-Einrichtung bei jedem Eingang-/Ausgang-Befehl mit einem Operationscode und einem vorbestimmten Steuerzeichen tätig wird und die Codierung der Steuerzeichen die Änderung des Ünterbrechungs-Zustandshinweises bestimmt, um auf eine vorbestimmte Microprogrammfolge hinzuweisen, daß die die Microprogrammfolge erzeugenden Signale das System zur umschaltung des unterbrechungszustandshinweises eines peripheren Elementes in einen vorbestimmten Zustand veranlassen und eine Veränderung des Zählstandes zur Anzeige der anstehenden Anzahl von Unterbrechungen hinsichtlich der ersten Anzahl peripherer Elemente bewirken.
  8. 8. System nach Anspruch 7, dadurch gekennzeichnet , daß das zweite Segment eine periphere Steuer-Systemmittel-Tabelle zur Speicherung mehrerer Eingangsstellen für die peripheren Elemente in dem Zielsystem aufweist, wobei jedem möglichen peripheren durch das Zielsystem-Programm bestimmten Element eine Eingangsstelle zugeordnet ist und deren Codierung den Unterbrechungszustand-IIinweis
    509883/0621
    beinhaltet, daß das dritte Segment mehrere Speicherplätze zur Zählstandsspeicherung als Hinweis auf den Unterbrechungszustand der peripheren Elemente aufweist/ daß die Steuerspeichereinrichtung auf die vorbestimmte Microprogrammfolge Bezug nimmt, wobei diese Folge einen ersten Satz von Microbefehlen aufweist, die den Zugriff des Systems auf eine der Eingangsstellen, wie sie durch den Eingang-/Ausgang-Befehl bestiromt v/erden, ermöglichen, und daß ein zweiter Satz von Microbefehlen innerhalb der Folge dem System den Zugriff auf einen einen Zählstand speichernden Speicherplatz gestattet, wobei der Befehl zur Anzeige der Zahl der Unterbrechungen den Zählstand verändert.
  9. 9. System nach Anspruch 8, dadurch gekennzeichnet , daß der Unterbrechungs-Zustandshinweis für jede der peripheren Steuereinrichtungen einen ersten Bit-Speicherplatz aufweist, der durch seine Codierung anzeigt, wenn ein peripheres Steuerelement eine Unterbrechung gespeichert hat und daß der erste Satz von Microbefehlen Microbefehle zur Umschaltung des ersten Bit-Speicherplatzes in den vorbestimmten Zustand aufweist.
  10. 10. System nach Anspruch 7, dadurch gekennzeichnet , daß eine der Microprogrammfolgen eine Gruppe von Microbefehlen aufweist, die in Abhängigkeit eines von Null verschiedenen Unterbrechungs-Zählstandes entsprechend einem binären EINS-Resultat durch ODER-Verknüpfung aller Unterbrechungs-Zustandshinweise der Vielzahl peripherer Steuerelemente das Wirtssystem in die Lage versetzt, die Zielsystem-Programmunterbrechung zu verarbeiten, und daß eine andere Gruppe von Microbefehlen entsprechend einem analog gebildeten Unterbrechungs-Zählstand von Mull das System zur v/eiteren Ausführung des Zielsystem-Programmes veranlasst.
    509883/0621
  11. 11. System nach Anspruch 7, dadurch gekennzeichnet , daß die Steuereinrichtung in Abhängigkeit von dem einen Eingang-/Ausgang-Eefehl, wobei ein Operations-Codezeichen eine Datentransferoperation, umfassend die Zuteilung einer Vielzahl von Systemmitteln einschließlich eines der peripheren Elemente, bestimmt, auf das System einwirkt und nachprüft, daß alle Systemmittel zur Ausführung der Transferoperation verfügbar sind, und ferner auf eine der Microprogrammfolgen Bezug nimmt, um das System in die Lage zu versetzen, den Unterbrechungs-Zustandshinweis des peripheren Elementes zu schalten und den Unterbrechungs-Zählerinhalt um 1 zu erniedrigen.
  12. 12. System nach Anspruch 11, dadurch gekennzeichnet , daß der Steuerspeicher eine Folge von Microbefehlen beinhaltet zur Steuerung der Operationen des Wirtssystems in ersten und zweiten Betriebsweisen und daß die Folge von Microbefehlen ausgeführt wird, wenn das Wirtssystem in der Lage ist, Befehle in der zweiten Betriebsweise zu verarbeiten.
  13. 13. System nach Anspruch 12, dadurch gekennzeichnet , daß das in der zweiten Betriebsweise betriebene Wirtssystem beim Empfang eines Unterbrechungssignales, welches die vollständige Ausführung einer Datentransf eroperation anzeigt, wirksam wird, und auf eine Folge von Microbefehlen Bezug nimmt zwecks Zugriff auf einen Unterbrechungs-Zählstand und Erhöhung desselben um 1.
  14. 14. System nach Anspruch 7, dadurch gekennzeichnet, daß mehrere Register mit der ersten Speichereinrichtung verbunden sind und der Speicherung verschiedener Steuerzeichen des Eingang-/Ausgang-Befehls während seiner Ausführung dienen, daß eine Rechen- und Logikeinrichtung an die Register angeschlossen ist, daß die
    509883/0621
    Steuerspeichereinrichtung mehrere Microprogrammfolgen mit jeweils mehreren Microbefehlen beinhaltet, die bei ihrer Decodierung Steuersignale für die übertragung von Informations-Bytes zwischen der ersten Speichereinrichtung, der Vielzahl von Registern und der Rechen- und Logikeinrichtung erzeugt, daß Verzweigungs- und Testeinrichtungen an die Rechen- und Logikeinrichtung und die Register angeschlossen sind, und daß die Steuerspeichereinrichtung durch die Verzweigungs- und Testeinrichtung und in Abhängigkeit eines jeden Eingang-/Ausgang-Befehles aktiviert wird.
  15. 15. Verfahren zur Verarbeitung von Unterbrechungen in Verbindung mit der Emulation verschiedener Arten von Eingang-/Ausgang-Befehlen eines Zielsystem-Programmes mittels eines Datenverarbeitungssystemes nach den Ansprüchen 1 bis 14, gekennzeichnet durch
    a. die Speicherung des Unterbrechungs-Zustandes in einer der Tabellen und Verbindung einer jeden Gruppe der Systemmittel mit einer gemeinsamen Sektorschiene zwecks Schaffung einer gemeinsamen Unterbrechungsmöglichkeit innerhalb des Zielsystems,
    b. Speicherung eines Zählstandes in einem weiteren Abschnitt, wobei der Zählstand die Anzahl der auf jeder Sektorschiene anstehenden Unterbrechungen angibt,
    c. Speicherung mehrerer Microbefehlfolgen in dem Steuerspeicher zwecks Zugriff zu verschiedenen Eingangsstellen aus der Vielzahl der Eingangsstellen innerhalb der Tabellen, wobei eine der Befehlsfolgen für die Verarbeitung der die änderung des Unterbrechungszustandes der Systemmittel angebenden Eingang-/Ausgang-Befehle herangezogen wird und
    d. Ausführung der einen Befehlsfolge in Abhängigkeit von einem Eingang-/Ausgang-Befehl, der die Änderung des Unterbrechungszustandes eines der genannten und an die Sektorschiene angeschlossenen Systemmittel spezifiziert, wobei
    509883/0621
    die Sektorschiene dem Abruf des Unterbrechungszustandes und des durch den Eingang-/Äusgang-Eefehl modifizierten Zählstandes dient.
  16. 16. Verfahren nach Anspruch 15, dadurch gekennzeichnet , daß die Ausführung der Eefehlsfolge hinsichtlich eines Eingang-/Ausgang-Befehles, der durch seine Codierung die Rückstellung des Unterbrechungszustandes eines in den Tabellen gespeicherten Systemmittels angibt, folgende Schritte umfasst:
    a. Rückstellung des Unterbrechungszustandes einer Eingangsstelle, die dem durch einen bestimmten Teil des zu verarbeitenden Eingang-/Ausgangs-Befehles gekennzeichneten Systemmittel zugeordnet ist und
    b. Erniedrigung des Zählstandes um 1 zwecks Anzeige der Anzahl der Unterbrechungen, die auf der Sektorschiene nach Ausführung des Eingang-/Ausgang-Eefehles anstehen.
  17. 17. Verfahren nach Anspruch 15, dadurch gekennzeichnet , daß die Ausführung eines eine Datenübertragung kennzeichnende und die Verfügbarkeit bestimmter Systemmittel erfordernden Eingang-/Ausgang-Befehles folgende Schritte umfasst:
    a. zunächst die Ausführung bestimmter Microbefehlfolgen zwecks Festlegung, wann alle vorgeschriebenen Systemmittel zur Ausführung der Übertragungsoperation verfügbar sind und
    b. Ausführung einer anderen Kicrobefehlfolge ähnlich der erstgenannten Microbefehlfolge zur Abrufung des Unterbrechungszustandes und des in Übereinstimmung mit dem Eingang-/Ausgang-Eefehl modifizierten Zählstandes.
    509883/0621
  18. 18. Verfahren nach Anspruch 17, dadurch ^g e' Ire τι η zeichnet , daß die Ausführung der anderen Microbefehlfolge eines die Rückstellung des Unterbrechungszustandes eines in den vorbestimmten Tabellen gespeicherten Systemmittels vorschreibenden Eingang-/Ausgang-Befehles zur Datenübertragung folgende Schritte umfasst:
    a. Rückstellung des ünterbrechungszustandes einer den Systemmitteln zugeordneten Eingangsstelle und
    b. Erniedrigung des Zählstandes um 1 zur Anzeige der Anzahl von Unterbrechungen, die auf der Sektorschiene nach Ausführung des Eingang-/Ausgang-Befehles anstehen.
  19. 19. Verfahren nach Anspruch 17, dadurch gekennzeichnet , daß die Ausführung der anderen Microbefehlfolge stattfindet, wenn das Datenverarbeitungssystem in der Eigen-Betriebsweise arbeitet.
  20. 20. Verfahren nach Anspruch 19, dadurch gekennzeichnet , daß eine vorbestimmte Microbefehlfolge beim Empfang eines Unterbrechungssignales in der Eigen-Betriebsweise ausgeführt wird, wobei das Unterbrechungssignal die vollständige Ausführung der Datenübertragungsoperation anzeigt, und der Zählstand um 1 erhöht wird zwecks Anzeige der Anzahl von Unterbrechungen auf der Sektorschiene nach der vollständigen Ausführung der Datenübertragungsoperation .
  21. 21. Verfahren nach Anspruch 15, gekennzeichnet durch folgende Schritte:
    a. Erzeugung eines Signales in Abhängigkeit eines von 0 verschiedenen Zählstandes entsprechend einer durch ODER-Verknüpfung aller Unterbrechungszustände gewonnenen Ergebnisses mit dem Einärwert EINS, um das System in die Lage zu versetzen, Zielsystem-Programmunterbrechungen zu verarbeiten und
    509883/0621
    b. Erzeugung eines Signales in Abhängigkeit eines Zählstandes von O entsprechend eines durch ODER-Verknüpfung aller ünterbrechungszustände gewonnenen Ergebnisses mit dem Binärwert NULL, um das System in die Lage zu versetzen, mit der Ausführung des Zielsysteiu-Programmes v;eiter zufahren.
    509883/0621
DE19752517276 1974-04-24 1975-04-18 Datenverarbeitungssystem Withdrawn DE2517276A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/463,700 US4031517A (en) 1974-04-24 1974-04-24 Emulation of target system interrupts through the use of counters

Publications (1)

Publication Number Publication Date
DE2517276A1 true DE2517276A1 (de) 1976-01-15

Family

ID=23841013

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19752517276 Withdrawn DE2517276A1 (de) 1974-04-24 1975-04-18 Datenverarbeitungssystem

Country Status (7)

Country Link
US (1) US4031517A (de)
JP (1) JPS50149246A (de)
AU (1) AU498651B2 (de)
CA (1) CA1029471A (de)
DE (1) DE2517276A1 (de)
FR (1) FR2269147B1 (de)
GB (1) GB1510347A (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4184201A (en) * 1978-04-26 1980-01-15 Sperry Rand Corporation Integrating processor element
US4184200A (en) * 1978-04-26 1980-01-15 Sperry Rand Corporation Integrating I/O element
US4277827A (en) * 1979-01-02 1981-07-07 Texas Instruments Incorporated Microprocessor based system for the development and emulation of programmable calculator control read only memory software
US4293909A (en) * 1979-06-27 1981-10-06 Burroughs Corporation Digital system for data transfer using universal input-output microprocessor
US4468729A (en) * 1981-06-29 1984-08-28 Sperry Corporation Automatic memory module address assignment system for available memory modules
JPS6017539A (ja) * 1983-07-11 1985-01-29 Hitachi Ltd エミユレ−シヨン方式
US4873629A (en) * 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
US4744084A (en) * 1986-02-27 1988-05-10 Mentor Graphics Corporation Hardware modeling system and method for simulating portions of electrical circuits
US4875186A (en) * 1986-02-28 1989-10-17 Prime Computer, Inc. Peripheral emulation apparatus
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US4920481A (en) * 1986-04-28 1990-04-24 Xerox Corporation Emulation with display update trapping
US4980850A (en) * 1987-05-14 1990-12-25 Digital Equipment Corporation Automatic sizing memory system with multiplexed configuration signals at memory modules
US5179703A (en) * 1987-11-17 1993-01-12 International Business Machines Corporation Dynamically adaptive environment for computer programs
US5129064A (en) * 1988-02-01 1992-07-07 International Business Machines Corporation System and method for simulating the I/O of a processing system
CA2002201C (en) * 1988-12-06 1999-04-27 John Charles Goettelmann Translation technique
US5109503A (en) * 1989-05-22 1992-04-28 Ge Fanuc Automation North America, Inc. Apparatus with reconfigurable counter includes memory for storing plurality of counter configuration files which respectively define plurality of predetermined counters
US5093776A (en) * 1989-06-15 1992-03-03 Wang Laboratories, Inc. Information processing system emulation apparatus and method
US5276811A (en) * 1989-06-30 1994-01-04 Icom, Inc. Method for emulating programmable logic controller by exchanging information between debug program which emulates I/O devices and ladder logic program
US5809309A (en) * 1990-09-28 1998-09-15 Texas Instruments Incorporated Processing devices with look-ahead instruction systems and methods
US5542076A (en) * 1991-06-14 1996-07-30 Digital Equipment Corporation Method and apparatus for adaptive interrupt servicing in data processing system
JPH05216712A (ja) * 1991-10-23 1993-08-27 Internatl Business Mach Corp <Ibm> コンピュータシステムおよびこのコンピュータシステム上で内観的タスクを遂行する方法並びにi/oプロセッサアセンブリ
US5375225A (en) * 1991-12-31 1994-12-20 Sun Microsystems, Inc. System for emulating I/O device requests through status word locations corresponding to respective device addresses having read/write locations and status information
US5768598A (en) * 1993-09-13 1998-06-16 Intel Corporation Method and apparatus for sharing hardward resources in a computer system
JP2734992B2 (ja) * 1994-07-25 1998-04-02 日本電気株式会社 情報処理装置
US5819063A (en) * 1995-09-11 1998-10-06 International Business Machines Corporation Method and data processing system for emulating a program
US5983074A (en) * 1996-06-17 1999-11-09 Reactel, Inc. Remote command, control and monitoring of apparatus by way of existing paging service network
US6142682A (en) * 1997-06-13 2000-11-07 Telefonaktiebolaget Lm Ericsson Simulation of computer processor
DE59908019D1 (de) * 1998-09-02 2004-01-22 Infineon Technologies Ag Verfahren und vorrichtung zur systemsimulation von mikrocontrollern/mikroprozessoren und zugehörenden peripheriemodulen
US7392431B2 (en) * 1999-02-19 2008-06-24 Texas Instruments Incorporated Emulation system with peripherals recording emulation frame when stop generated
US7042909B2 (en) * 2001-06-27 2006-05-09 Freescale Semiconductor, Inc. Method and apparatus for controlling the timing of a communication device
US7260752B2 (en) 2004-02-19 2007-08-21 International Business Machines Corporation Method and apparatus for responding to critical abstracted platform events in a data processing system
JP4942790B2 (ja) * 2009-06-18 2012-05-30 アラクサラネットワークス株式会社 スイッチ、ネットワークシステム及びトラフィック移動方法
US9292533B2 (en) * 2010-06-08 2016-03-22 Dell Products L.P. Systems and methods for improving storage efficiency in an information handling system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3546678A (en) * 1968-03-29 1970-12-08 Bell Telephone Labor Inc Telephone traffic data recorder
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
US3599162A (en) * 1969-04-22 1971-08-10 Comcet Inc Priority tabling and processing of interrupts
US3596256A (en) * 1969-08-08 1971-07-27 Pitney Bowes Alpex Transaction computer system having multiple access stations
GB1264095A (de) * 1970-02-13 1972-02-16
US3665415A (en) * 1970-04-29 1972-05-23 Honeywell Inf Systems Data processing system with program interrupt priority apparatus utilizing working store for multiplexing interrupt requests
US3713109A (en) * 1970-12-30 1973-01-23 Ibm Diminished matrix method of i/o control

Also Published As

Publication number Publication date
GB1510347A (en) 1978-05-10
US4031517A (en) 1977-06-21
CA1029471A (en) 1978-04-11
FR2269147B1 (de) 1982-03-19
AU7927075A (en) 1976-09-23
JPS50149246A (de) 1975-11-29
AU498651B2 (en) 1979-03-22
FR2269147A1 (de) 1975-11-21

Similar Documents

Publication Publication Date Title
DE2517276A1 (de) Datenverarbeitungssystem
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE3607889C2 (de)
DE2500006A1 (de) Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE2902465A1 (de) Datenverarbeitungsanordnung
DE2948285A1 (de) Adressensteuersystem fuer softwaresimulation
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE102007025397B4 (de) System mit mehreren Prozessoren und Verfahren zu seinem Betrieb
DE2417795C2 (de) Datenverarbeitungsanlage
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2714805A1 (de) Datenverarbeitungssystem
DE2611598A1 (de) Uebersetzungseinrichtung fuer speicheradressen
DE2459675A1 (de) Datenverarbeitungssystem
DE3741850A1 (de) Ausfuehrungseinheit fuer einen i/o-prozessor
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE2612054A1 (de) Verfahren zur adressentwicklung und prozessor zur durchfuehrung des verfahrens
DE1931966B2 (de) Datenverarbeitungsanlage mit Assoziativspeichern
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2612034A1 (de) Ausfallsicherung in einem universalrechner
DE2626703A1 (de) Intern programmierbares datenverarbeitungssystem
DE2721623A1 (de) System zur bearbeitung eines zielsystemprogrammes
DE69233282T2 (de) Datenverarbeitungsvorrichtung
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8130 Withdrawal