DE2500006A1 - Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen - Google Patents

Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen

Info

Publication number
DE2500006A1
DE2500006A1 DE19752500006 DE2500006A DE2500006A1 DE 2500006 A1 DE2500006 A1 DE 2500006A1 DE 19752500006 DE19752500006 DE 19752500006 DE 2500006 A DE2500006 A DE 2500006A DE 2500006 A1 DE2500006 A1 DE 2500006A1
Authority
DE
Germany
Prior art keywords
control
address
register
entry
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19752500006
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 DE2500006A1 publication Critical patent/DE2500006A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • 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

Description

Anmelder: Honeywell Information Systems Inc. 200 Smith Street Waltham, Mass.
V. St. A.
Y/irtsdatenverarbeitungssystem und Verfahren zur Emulation von üingabe/Ausgabe-Befehlen
Die vorliegende Erfindung bezieht sich auf eine Umsetz-Anordnung und insbesondere auf eine Anordnung zur Emulation einer Vielzahl von unterschiedlichen Ziel- bzw. Objekt-Systemen-
Vfenn ältere Datenverarbeitungssysteme durch ein neues System ersetzt werden, welches wesentlich andere Architektur- bzw. Aufbaueigenschaften besitzt, muß im allgemeinen ein wesentlicher Anteil der Jobs, die zur Ausführung
509828/067 8
durch die alten Systeme programmiert waren, ebenfalls auf dem neuen System ausgeführt werden. Es sind bereits verschiedene bekannte Verfahren angewandt worden, um das neue System bei der Ausführung der Jobs zu unterstützen. Ein derartiges Verfahren besteht darin, dass jeder Befehl aus der Maschinensprache des alten Systems in das Befehlsformat des neuen Systems oder Wirts-Systems übersetzt wird. Ein Beispiel für ein System, welches das vorstehende Verfahren anwendet, wird an anderer Stelle näher beschrieben (siehe US-Patentanmeldung, Ser.No. 228 776). Weitere Verfahren umfassen die Simulation und die Emulation. Diese Verfahren sind in folgenden Artikeln erläutert: "Emulation of Large Systems" von S.G. Tucker, "1401 Compatibility Feature on the IBM System/360 Model 30" von M.McCormack, T.Schansman, K.Womack, und "The Spectra 70/45 Emulator for the RCA 301", von R.I.Benjamin. Sämtliche Artikel stammen aus der Druckschrift "Communications of the ACM" Dezember 1965. Darüber hinaus sind diese Verfahren in einem Artikel mit dem Titel "System 370" Integrated Emulation under OS and DOS" von Gay R. Allred inkier Zeitschrift "Afips Conference Proceedings", Vol. 38, 1971, erläutert.
Eine der bedeutendsten Funktionen, die von einem Emulator ausgeführt wird, besteht darin, dass die Eingabe/Ausgabe-Befehle eines Zielsystems effektiv ausgeführt werden. Bei den bisherbekannten Systemen sind im allgemeinen ziemlich spezielle Lösungen hinsichtlich der Emulation der Eingabe/Ausgabefunktionalität von Zielsystemen angewandt worden. Das Ergebnis besteht darin, dass derartige Systeme ausser Stande sind, Zielmaschinenoperationen für eine Anzahl von Zielsystemen mit unterschiedlichen Eingabe/Ausgabe-Anforderungen zu emulieren. Deshalb erfordern die bisher bekannten Systeme zur Anpassung an die Anforderungen unterschiedlicher Systeme
509828/0678
einen beträchtlichen Anteil an Software und eine vermehrte Organisation, um solche Operationen auszuführen, die für die Emulation der Eingabe/Ausgabe-Struktur jedes derartigen Systems erforderlich sind.
Der Erfindung liegt demgemäss die Aufgabe zugrunde, ein System zur Emulierung der Eingabe/Ausgabestruktur einer Vielzahl von unterschiedlichen Zielsystemen zu schaffen. Darüber hinaus soll ein Emulator-System geschaffen werden, welches die Anzahl von Operationen verringert, die von der abstutzenden Software des Systems ausgeführt werden. Schliesslich soll ein System geschaffen werden, welches mit einem Minimum an Kompliziertheit und einer maximalen Geschwindigkeit die Forderungen einer Vielzahl von unterschiedlichen Eingabe/Ausgabe-Systemen effektiv emulieren kann.
Gelöst wird die vorstehend aufgezeigte Aufgabe erfindungsgemäss durch ein mikroprogrammiertes Datenverarbeitungs-System, welches Firmenware-Einrichtungen oder Mlkroprogrammierungseinrichtungen und eine Vielzahl von Tabellen aufweist, die im Hauptspeicher des Systems enthalten sind. Die Tabellen sind in einer Anzahl von Klassen organisiert, die denjenigen Hilfsquellen entsprechen, die von einem Programm angegeben werden müssen, um einen Eingabe/Ausgabe-Befehl in den Zielsystemen auszuführen. Zu den Tabellen erfolgt ein Zugriff unter der Steuerung der Mikroprogrammierungs-Einrichtungen in einer bestimmten Weise.
Eine erste Tabelle ist auf einer Pro-System-Basis codiert, um eine Vielzahl von Einträgen zu enthalten, und zwar einen Eintrag für jede Kanal-Hilfsquelle. Diese Einträge können durch ein ZielSystemprogramm genau angegeben' werden. Wie an sich bekannt, ist ein "Kanal" ein Datenweg, der über
509828/0678
eine Schnittstelle zwischen dem Hauptspeicher und einer peripheren Einrichtung eines Systems verläuft. Die zu emulierenden Zielsysteme können irgendeine Anzahl von Lese/Schreibkanälen benutzen,die vorgesehen sind, um eine "gleichzeitige" Verarbeitung von Eingabe/Ausgabe-Operationen zu ermöglichen. Wenn eine Eingabe/Ausgabe-Operation auszuführen ist, ist normalerweise ein Code, der eine einem Lese/Schreib-Kanal zugeteilte Programmierungs-Einrichtung angibt, erforderlich, um in den Befehl einbezogen zu werden, damit der Weg zwischen der bezeichneten peripheren Einrichtung und dem Hauptspeicher abgeschlossen werden kann. Bezüglich weiterer Einzelheiten im Hinblick auf die Zuteilung derartiger Kanäle sei auf die US-PS 3 369 221 hingewiesen.
Bei der bevorzugten Ausführungsform enthält das System eine zweite Tabelle, die ebenfalls auf einer Pro-System-Basis organisiert ist und die eine Vielzahl von Einträgen enthält. Diese Einträge sind so codiert, dass sie eine weitere Hilfsquelle bzw. einen weiteren Hilfsquellentyp bezeichnen, die bzw. der in dem Zielsystem vorhanden ist und von einem Zielsystan-Eingabe/Ausgabe-Befehl genau angegeben werden muss. Die Tabelle enthält einen Eintrag für Jeden Sektor, der in einem Zielsystem vorhanden sein kann. Ein "Sektor" in den betrachteten Zielsystemen entspricht einem übertragungsweg, der eine vorgegebene Anzahl von peripheren Einrichtungen gemeinsam verbindet. In der oben erwähnten US-Patentschrift ist ein "Einzel"-Sektor-System angegeben. Gemäss der vorliegenden Erfindung kann der Sektor eines Zielsystems eine bestimmte maximale Zeichenübertragungsfrequenz ausgleichen bzw. eine Anpassung daran vornehmen (das sind 500 000 Zeichen pro Sekunde). Jeder Sektor ist einer festen Anzahl von Speicherzyklen (das sind 6) zugeordnet, die hier als"Zeitfächer" bezeichnet werden. In den Zielsystemen werden aufeinander-
509828/0678
folgende Speicherzyklen unterschiedlichen Lese/Schreib-Kanälen für die Übertragung von Zeichen zwischen einer peripheren Einrichtung, die an einem vorgegebenen Sektor angeschlossen ist, und dem Hauptspeicher über den zugeteilten Kanal angeboten. Jeder der Lese/Schreib-Kanäle von einigen Zielsystemen, wie die Kanäle des patentierten Systems, sind bestimmten Zeitfächern dauernd zugeordnet. In Systemen dieser Arten wird eine Erhöhung in der Übertragungsfrequenz eines gegebenen Kanals dadurch erzielt, dass mehrere Kanäle "verschachtelt11 werden, so dass sämtliche Zyklen, die für die verschachtelten Kanäle aufgewandt werden, für eine einzige Ubertragungsoperation verfügbar gemacht werden können. Die Verschachtelung erfolgt über den Programmbefehl, der die Datenübertragungsoperation auslöst.
Eine dritte Tabelle ist auf einer Pro-Sektor-Basis organisiert. Diese Tabelle enthält eine Vielzahl von Einträgen, die so codiert sind, dass sie jede periphere Steuereinheits-Adresse (das sind bis 16 Adressen) angibt, die von einem Zielprogramm für den Sektor bezeichnet werden kann. In dem Zielsystem ist die periphere Steuereinheit PCU eine adressierbare Einrichtung, die eine periphere Einrichtung über einen Sektor mit dem zentralen Prozessor verbindet.
Die Anzahl der Einrichtungen, die von einem Befehl eines Zielprogramms für eine gegebene periphere Steuereinheit angegeben werden kann, ist in einer vierten Tabelle enthalten. 1IeSe Tabelle ist auf einer sogenannten PCU-Basis organisiert; sie enthält Einträge, die so codiert sind, dass sämtliche mögliche Einrichtungsadressencodesangegeben werden, die von dem Zielprogramm für eine gegebene periphere Steuereinheit PCU bezeichnet werden kann.
Gemäss der vorliegenden Erfindung wird das System unter der Steuerung des MikroprogrammsteuerSpeichers während der
509828/0678
Verarbeitung des JeweELigen Eingabe /Ausgabe-Befehls derart betrieben, dass automatisch bei Bedarf ein Zugriff zu dem Inhalt der vier Tabellen erfolgt, und zwar in einer bestimmten Reihenfolge, um die unterschiedlichen Teile der Zielprogramm-Eingabe/Ausgabe-Befehle im Hinblick auf den Informationsgehalt, der die Eigenschaften des bestimmten Zielsystems, welches emuliert wird, zu überprüfen und zu bestätigen. Jede Tabelle enthält eine Information, die dem System ermöglicht, nacheinander auf die richtige Tabelle für jede aufeinanderfolgende Operation Bezug zu nehmen.
Der erste Fall einer Anzeige darüber, dass ein Eingabe/ Ausgabe-Befehl nicht ausgeführt werden kann oder nicht ausgeführt werden sollte, liegt dann vor, wenn das unter Mikroprogrammsteuerung stehende System auf die in dem System enthaltene Emulation-Software springt oder zu dieser hin Signale sendet und eine Zustandsinformation an eine derartige Software abgibt. Auf die Feststellung, dass der Eingabe/Ausgabe-Befehl ausgeführt werden kann, gibt, was noch weit wichtiger ist, das System einen Code aus einer Anzahl von Codes an die Software ab, welcher Code anzeigt, auf welche Routine einer begrenzten Anzahl von Software-Routinen Bezug zu nehmen ist für die Ausführung des Befehls unter Heranziehung der Eingabe/Ausgabe-Einrichtungen des Wirts-Systems. Auf diese Weise vermindert das System die Anzahl der für die Anpassung an eine Vielzahl von unterschiedlichen Zielmaschinen erforderlichen Software-Routinen.
Darüber hinaus ist die Emulations-Anordnung gemäss der vorliegenden Erfindung, die die in den Tabellen enthaltene Information benutzt, im Stande, bestimmte Typen von Eingabe/ Ausgabe-Steuerbefehlen vollständig auszuführen, wie zum
509828/0678
solche Befehle, die eine Überprüfung bezüglich der Verfügbarkeit bestimmter Hilfsquellen vornehmen (zum Beispiel der RWC- oder perlpheren Steuereinheit, etc.)» die zu der Beendigung einer vorhergehenden Datenübertragungsoperation und dem Zustand einer Unterbrechungsfunktion während derartiger Operationen in Beziehung stehen. Bei denjenigen Typen von Steuerbefehlen, bei denen die fortgesetzte Ausführung des Befehls zu einem Verlust an Systemverarbeitungszeit führt, gibt der Emulator an das System Signale in der gleichen Veise ab, wie im Falle von DatenUbertragungsbefehlen.
Gemäss der vorliegenden Erfindung können die in die unterschiedlichen Klassen von Tabellen eingefügten Einträge in einer bestimmten Weise codiert sein, um eine Lockerung bestimmter "Verschachtelungen" oder Zwangsmaßnahmen zu ermöglichen, die von den ZielSystemprogrammen auferlegt sind, bei denen die Logik des bestimmten Programms nicht beeinflusst wird. Dies bedeutet, dass das ZielSystemprogramm nicht die Verschachtelungen benötigt, die den Programmablauf richtig gestalten. Auf diese Weise kann der Emulator in wirksamerer Weise jene Zielsystemprogramme ausführen, die nicht von bestimmten Beschränkungen abhängig sind, wie sie in den Zielsystemen vorhanden sind. Demgemäss unterstützt der Emulator lediglich diejenigen Verschachtelungen, die erforderlich sind, um das ZielSystemprogramm richtig ablaufen zu lassen. Dies kann seinerseits die Systemorganisation verringern.
Anhand von Zeichnungen wird die Erfindung nachstehend beispielsweise hinsichtlich ihrer Organisation und ihres Betriebsverfahrens erläutert.
509828/0678
Fig. 1 zeigt in einem Blockdiagramm ein die vorliegende Erfindung verkörperndes System.
Fig. 1a zeigt schematisch die Auslegung eines Hauptspeichers gemäss der vorliegenden Erfindung.
Fig. 1b zeigt die Auslegung eines in dem Hauptspeicher gemäss Fig. 1 enthaltenen Brozess-Steuerblockes.
Fig. 1c zeigt in einem Blockdiagramm ein zentrales Prozessor-Untersystem gemäss Fig. 1.
Fig. 2a zeigt im einzelnen einen Steuerspeicher-Schnittstellen-Adapter (CIA) und eine Steuerspeicher-Einheit (CSU) gemäss Fig. 1 und Ic.
Fig. 2b zeigen im einzelnen unterschiedliche Teile der bis 2d Rechen- und Verknüpfungseinheit (ALU) gemäss Fig. 1 und 1c).
Fig. 2e zeigt im einzelnen eine Adressensteuereinheit (ACU) gemäss Fig. 1 und 1c.
Fig. 3 zeigt die Auslegung eines örtlichen Speichers gemäss Fig. 1 und 1c.
Fig. 4 zeigt das Format eines Abrufes, wie er in einem örtlichen Speicher codiert wird.
Fig. 5 zeigt die Formate von Mikrobefehlen, die von der Steuerspeichereinheit gemäss Fig. 1 und 2a benutzt werden.
Fig. 6 zeigt die Auslegung von Eingabe/Ausgabe-Tabellen eines Hauptspeichersegmentes gemäss der vorliegenden Erfindung.
509828/0678
Fig. 7a zeigt das Formateines Lese/Schreib-Kanal-Tabelleneintrags gemäss der vorliegenden Erfindung.
Fig. 7b zeigt das Format eines Sektortabelleneintrags gemäss der vorliegenden Erfindung.
Fig. 7c zeigt das Format eines peripheren Steuereinheits-(PCU)-Tabelleneintrags gemäss der vorliegenden Erfindung.
Fig. 7d zeigt das Format eines bestimmten Typs eines
Erweiterungstabelleneintrags der peripheren Steuereinheit (PCU) gemäss der vorliegenden Erfindung.
Fig. 7e zeigt das Format eines Einrichtungstabelleneintrags gemäss der vorliegenden Erfindung.
Fig. 7f zeigt das Format eines genau festgelegten Typs eines Einrichtungstabelleneintrags gemäss dem System der vorliegenden Erfindung.
Fig. 7g zeigt das Format eines genau festgelegten Typs eines Einrichtungs-Erweiterungstabelleneintrags gemäss dem System der vorliegenden Erfindung.
Fig. 7h zeigt das Format eines End-Tabelleneintrag gemäss dem System der vorliegenden Erfindung.
Fig. 8a zeigt in einem Flussdiagramm die Verarbeitung eines Eingabe/Ausgabe-Befehls durch das System gemäss Fig. 1 in Übereinstimmung mit der vorliegenden Erfindung.
Fig. 8b zeigen in Flussdiagrammen bestimmte Operationen, bis 8j die von entsprechenden Blöcken der in dem Flussdiagramm gemäss Fig. 8a enthaltenen Blöcke ausgeführt werden.
509828/0678
Fig. 9a zeigt in einem Flussdiagramm im einzelnen einen Lese/Schreib-Kanal-Test gemäss Fig. 8a.
Fig. 9b zeigt in einem Flussdiagramm im einzelnen einen Sektor-Test gemäss Fig. 8a.
Fig. 9c zeigt in einem Flussdiagramm im einzelnen eine das Abholen eines nächsten Varianten-Zeichens betreffende Routine gemäss Fig. 8a.
Fig. 9d zeigt in einem Flussdiagramm im einzelnen eine periphere Steuereinheits-Zustands-Abholroutine gemäss Fig. 8a.
Fig. 9e zeigt in einem Flussdiagramm im einzelnen eine die Belegung der Steuereinheit überprüfende
Testroutine gemäss Fig. 8a.
Fig. 9f zeigt in einem Flussdiagramm im einzelien eine
Einrichtungs-Zuetands-Abholroutine gemäss Fig. 8a
Fig· 9g zeigt in einem Flussdiagramm im einzelnen eine Einrichtungs-Springs und Zustands-Testroutine gemäss Fig. 8a.
Fig. 9h zeigt in einem Flussdiagramm im einzelnen eine Magazin-Testroutine gemäss Fig. 8a.
Fig. 10 zeigt in einem Flussdiagramm im einzelnen die Teile des Hauptflusses gemäss Fig.8a.
Fig. 11 zeigt im einzelnen die Codierung von gemäss der vorliegenden Erfindung verarbeiteten Eingabe/Ausgabe-Datenübertragungsbefehlen der Zielsysteme.
509828/0678
Fig. 12a veranschaulichen die Operationen, die im Zuge ^1 der Verarbeitung eines genau festgelegten Typs des Eingabe/Ausgabe-Steuerbefehls ausgeführt werden.
Allgemeine Beschreibung des System
Aus Fig. 1 geht hervor, dass das System der vorliegenden Erfindung eine Vielzahl von Untersystemen 100-1 bis 100-4 enthält. Die dargestellten Untersysteme entsprechen einem zentralen Verarbeitungseinheits-Untersystem 1ΟΟ-1, einem Eingabe/Ausgabe-Steuereinrichtungs-Uritersystem 100-2, einem peripheren Untersystem 100-3, einem Hauptspeicher-Untersystem 100-4 und einem Speicher-Schnittstelleneinheits-Untersystem 100-5. Das zentrale Verarbeitungseinheits- oder Zentraleinheits-Untersystem 100-1 umfasst eine Datenleiteinheit (DMU) 100-1, eine Befehlsabholeinheit (IFU) 101-3, eine Rechen- und Verknüpfungseinheit (AUJ) 101-6, einen Steuerspeicher-Schnittstellen-Adapter (CIA) 101-4 und eine SteuerSpeichereinheit (CSU) 101-5. Sämtliche d ieser Einheiten sind in der aus Fig. 1 dargestellten Anordnung angeschlossen. Das Zentraleinheits- Untersystern führt die Rechenoperationen fttrdas System aus. Diese Operationen laufen unter der Steuerung von Mikrobefehlen ab, die in dem Steuerspeicher 105 gespeichert sind. Bei einer Bevorzugten AusfUhrungsform werden diese Befehle in den Steuerspeicher 101-5 von einer Steuerspeicher-Ladeschaltung her geladen, die von herkömmlichem Aufbau ist und die sich ausserhalb des Zentraleinheits-Untersystems 100 befindet. Der Steuerspeicher-Schnittstellenadapter 101-4 enthält die Verknüpf ungsschaltungen, die für die Leitung der Steuerablauffolge des für die Verarbeitung von Operationen erforderlichen Steuerspeichers 101-5 notwendig sind.
509828/0671
Der Steuerspeicher-Schnittstellenadapter 101-4 beispielsweise nimmt die erforderliche Adressenmodifikation, Adressenerzeugung und Überprüfung vor und stellt die Verzweigungs-Einrichtungen auf der Grundlage von Signalen bereit, die kennzeichnend sind sowohl für interne als auch für externe Zustände bzw. Bedingungen.
Die verschiedenen Operationen, die von Natur aus Rechenoperationen sind, werden von der Rechen- und Verknüpfungseinheit 101-6 ausgeführt, die Wort- und Byte-Datenverarbeitungseinrichtungen enthält. Darüber hinaus ist der Rechen- und Verknüpfungseinheit die örtliche Speichereinheit (ISU) 101-7 zugeordnet bzw. zugehörig, die einen kleinen Hilfsspeicher und diesem zugehörige Verknüpfungsschaltungen enthält, die von herkömmlichem Aufbau sind und die derart arbeiten, dass sowohl die Steuerinformation als auch Operanden und Teilergebnisse gespeichert werden, die durch verschiedene Rechen- und Datenverarbeitungsoperationen hervorgerufen werden.
Die Adressensteuereinheit (ACU) 101-2, die mit der Rechen- und Verknüpfungseinheit 101-6 verbunden ist, enthält eine Anordnung zur Erzeugung von Adressen für die Bezugnahme auf die Information, die in dem Speicher-Untersystem gespeichert ist. Darüber hinaus ist die Adressensteuereinheit 101-2 mit der Befehlsabholeinheit 101-3 verbunden, die Schaltungen enthält, mit deren Hilfe Befehle im Voraus abgeholt werden, um Befehle verfügbar zu halten, bevor ein gerade ausgeführter Befehl abgeschlossen ist.
Die Datenleiteinheit 101-1 stellt eine Scnuittstelle zwischen dem Zentraleinheits-Un±ersystem und/oder einem Pufferspeicher 300-2, wie dies dargestellt ist. Die betreffende Datenleiteinheit enthält Schaltungen, die angeben, welcher Teil des Speichers des Hauptspeicher-Untersystems
509828/0678
eine Information enthält, die während nachfolgender Speicherzyklen wieder aufzufinden ist. Sie betreffende Einheit wird derart betrieben, dass die Information in das Zentraleinheits-Untersystem zu dem geeigneten Zeitpunkt übertragen wird.
Das Hauptspeicher-Schnittstelleneinheit-Untersystem 100-3 enthält einen Pufferspeicher 103-2, eine Pufferspeicher-Adressliste 103-3 und eine Hauptspeicher-Folgesteuereinrichtung 103-1. Der Pufferspeicher 103-2 bewirkt eine Kurzzeitspeicherung für die Information, die als nächste Information von dem Zentraleinheits-Untersystem zu benutzen ist. Ferner bewirkt der betreffende Speicher eine Kurzzeitspeicherung bezüglich der Information, die verschiedentlich während der Verarbeitungsoperationen zu benutzen ist. Die Pufferspeicher-Adressliste 103-3 enthält die Schattungen für die Erzeugung einer Adresse, wobei die Adressenerzeugung dann erfolgt, wenn die Information, die von einer Operation angefordert ist, in dem Pufferspeicher 103-2 gespeichert ist. Die Hauptspeicher-Folgesteuereinrichtung 103-1 stellt eine Schnittstelle zwischen den verschiedenen Moduln des Hauptspeicher-Untersystems 100-4 und den verschiedenen dargestellten Untersystemen dar (das sind die Eingabe/Ausgabe-Steuereinrichtung 100-2 und die Zentraleinheit 100-1).
Das Hauptspeicher-Untersystem 100-4f das mit der Hauptspeicher-Folgesteuereinrichtung des Speicher-Schnittstelleneinheit-Untersystems verbunden ist, enthält bei einer bevorzugten Ausführungsform vier Speichermoduln 104-1 bis 104-4. Diese Moduln werden unter der Steuerung der Hauptspeicher-Folgesteuereinrichtung in einerAnzahl von unterschiedlichen Betriebsarten betrieben, einschliesslich einer Verschachtelungs-Betriebsart. Diese Moduln bewirken die Speicherung für die Information, die von den
509828/0878
Verarbeitungs-Komponenten des Systems während der Ausführung von laufenden Anforderungen benötigt wird. Weitere Einzelheiten bezüglich der Hauptspeicher-Polgesteuereinrichtung werden an anderer Stelle näher beschrieben (siehe US-Patentanmeldung, Ser.No. 295 331 v. 5.10.72).
Wie in Fig. 1 gezeigt, ist die Eingabe/Ausgabe-Steuereinrichtung 1OO-2 mit dem peripheren Untersystem 100-5 verbunden. Das Untersystem enthält eine Vielzahl von "pheripheren Prozessoren11, die die Operationen einer Anzahl von peripheren Einrichtungen steuern, welche mit ihnen verbunden sind (hierbei handelt es sich um Einrichtungen, wie zum Beispiel um Magnetbandantriebe, Massenspeichereinheiten, wie Platten, und um Einheitsauf Zeichnungs-Einrichtungen, wie Drucker, Kartenleser, Kartenlocher. Zum Zwecke einer geeigneten Bezugnahme werden der Ausdruck "pheripherer Prozessor" sowie weitere hier benutzte Ausdrücke in einer Anhangtabelle weiter unten näher erläutert. Die Eingabe/Ausgabe-Steuereinrichtung steuert Informationsübertragungen zwischen den pheripheren Untersystemen und dem Hauptspeicher-Untersystem. Die betreffende Steuereinrichtung kann zum Beispiel bis zu 16 pheriphere Untersysteme aufnehmen, deren jedes, wie oben erwähnt, eine Ergänzung von Magnetband, Platten, Kartenleser oder Lochungseinrichtungen, Drucker etc. leitet. Die Eingabe/Ausgabe-Steuer-Einrichtung besitzt eine Schnittstelle zu dem Hauptspeichersystem hin, um zwischen dem Hauptspeicher und den pheripheren Untersystemen Informationen zu übertragen und Gruppen von zugehörigen Befehlen, die als "Kanalprogramme11 bezeichnet werden, aus dem Hauptspeicher abzuholen und diese Befehle ohne Unterbrechung des Betdebs des Zentraleinheits-Untersystems auszuführen.
509828/0678
Darüber hinaus besitzt die Eingabe/Ausgabe-Steuereinrichtung eine Schnittstelle zu dem Zentraleinheits-Untersystem hin, um Zustandsinformationen der p__eripheren Untersysteme an die Zentraleinheit für die Bewertung und/oder für ein entsprechendes Einwirken abzugeben und auf Anforderungen von der Zentraleinheit hin mit der Ausführung von "Kanalprograromen" zu beginnen, sowie die Zentraleinheit darüber zu informieren, wenn eine Kanalprogrammausführung beendet worden ist. Bei der bevorzugten Ausführungsform der vorliegenden Erfindung werden Eingabe/Ausgabe-Operationen grundsätzlich unter der Steuerung eines Kanalprogramms ausgeführt, welches einen vollständigen Satz von Befehlen und Adresseninformation für die Ausführung einer bestimmten Eingabe/Ausgabe-Operation enthält. Die Eingabe/Ausgabe-Steuereinrichtung enthält die für die Ausführung eines Kanalprogramms erforderliche Hardware/Firmenware. Die Ausführung eines Programms durch die Eingabe/Ausgabesteuereinrichtung wird über eine Vielzahl von Kanälen bewirkt. Ein "Kanal" ist ein Zugriffsweg von der Zentraleinheit zu der peripheren Einrichtung, und zwar zum Zwe^pke der Ausführung einer Eingabe/Ausgabe-Operation· Der Kanal enthält die Eingabe/Ausgabe-Steuereinrichtungs-Einrichtungen, einen physikalischen Kanal zwischen der Eingabe/Ausgabe-Steuereinrichtung und dem peripheren Untersystem und einen Verknüpfungskanal, der die Einrichtungen in dem peripheren Untersystem enthält, die für die Ausführung einer gegebenen Eingabe/Ausgabe-Operation erforderlich sind· Bei der bevorzugten Ausführungsform kann ein peripherer Prozessor bis zu 255 Verknüpfungskanälen bedienen bzw. verarbeiten· Wie aus Fig. 1 hervorgeht, enthält das Eingabe/Ausgabe-Steuereinrichtungs-Untersystem eine Speicherleiteinheit 102-1, eine Bedienungscodeeinheit 102-2 und eine Vielzahl von Kanalsteuereinheiten. Da die Eingabe/Ausgabe-Steuereinrichtung bis zu 16 periphere Untersysteme aufnehmen kann, ent-
509828/0678
hält sie eine entsprechende Anzahl von Kanalsteuereinheiten. Wie oben erwähnt, werden die Eingabe/Ausgabe-Operationen durch Kanalprogramme festgelegt. Sie Kanalprogramme werden durch den peripheren Prozessor über "Verknüpfungskanäle" ausgelöst, die den peripheren Einrichtungen zugeordnet sind. Sie Eingabe/Ausgabe-Steuereinrichtung hält die gesamte Information fest, die sich auf den Zustand des jeweiligen Verknüpfungskanals bezieht und auf die damit in Verbindung stehenden Kanalprogramme. Sie Kanalprogramme werden gleichzeitig mit den zentralen Verarbeitungsoperationen ausgeführt. Auf diese Weise erhält man eine Mehrprozessverarbeitung und Mehrprogramm-Verarbeitung.
Für die Zwecke der vorliegenden Erfindung kann die Anordnung zur Ausführung von Eingabe/Ausgabe-Operationen als herkömmlich aufgebaut angesehen werden. Bezüglich weiterer Informationen darüber, wie die Kanäle benutzt werden, um Eingabe/Ausgabe-Operationen auszuführen, sei auf die Sruckschrift "Computer Organization and the System/370" von Harry Katzan, Jr., 1971, Van Nostrand Rinehold Company, hingewiesen.
Bevor die verschiedenen Elemente der Fig. 1 erläutert werden, sei zunächst die Organisation des Hauptspeichers 104 unter Bezugnahme auf Fig. 1a erläutert.
Hauptspeicher - Fig. 1a
Ein Bereich, der dem unteren Ende des Hauptspeicher-Adressenraumes entspricht, ist für die Benutzung durch die System-Hardware und -Firmenware reserviert. Sie obere Grenze dieses Bereichs wird durch den Inhalt eines "Grenzadressregisters11 (BAR) genau angegeben, zu dem die System-Software Zugriff hat. Im allgemeinen ist der
509828/0678
Inhalt des Grenzadressregisters auf einen bestimmten Wert zum Zeitpunkt der Inbetriebsetzung des Systems gesetzt. Der Bereich oder der Platz unterhalb der durch den Inhalt des Grenzadressregisters bezeichneten Adresse enthält normalerweise !Tabellen, die von der Eingabe/Ausgabe-Steuereinrichtung verwendet werden und die die bestimmte periphere Untersystem-Konfiguration sowie Firmenware-Befehle für die Steuerung des Betriebs der Zentraleinheit bezeichnen. Wie aus Pig. 1a hervorgeht, ist der Speicher in eine Vielzahl von Segmenten unterteilt, zu denen ein vorgegebener Prozess Zugriff besitzt, der durch die arbeitende System-Software festlegbar ist.
Der Hauptspeicher kann als segmentierter virtueLer Speicher gekennzeichnet werden, in welchem die Adressen von Programmen Daten sind, die durch den Namen des Segmentes, in welchem sie untergebracht sind, und durch eine Versetzung innerhalb des Segmentes dargestellt sind. Den Segmenten sind Schutz-"Ringe" zugeordnet, die den Inhalt des Segments vor Zugriffen schützen. Ausserdem sind die dem Segment zugehörigen Schutz-Ringe Teil der Daten, die dem betreffenden Segment zugehörig sind. Bezüglich einer zusätzlichen Information darüber, wie die Ausführung eines virtuellen Speichers und eines Programmschutzes erfolgt, sei auf die Druckschrift "The Multics Virtual Memory11, von Honeywell Information Systems Inc., veröffentlicht 1972, hingewiesen.
Die Hauptspeicher-Emulator-Information und die Datenstrukturen gemäss Fig. 1a enthalten eine Vielzahl von Segmenten (A bis D)·
Das Segment A ist so codiert, dass es ein Abbild des Zielsystem-Steuerspeichers speichert. Entsprechend enthält
509828/0678
es die Verarbeitungsregiater (zum Beispiel Lese-Schreibzähler - anfangend und laufend, technisch-wissenschaftliche Register, Arbeitsregister, etc.). Das Segment A wird dem System durch den Inhalt des Basisadressregisters (BR3) genau angegeben. Das Segment B enthält die Eingabe/ Ausgabe-Tabellen, die in Übereinstimmung mit der vorliegenden Erfindung organisiert sind. Zu diesem Segment erfolgt durch den Inhalt des Basisadress-Registers 4 (BR4) Zugriff.
Der Zielsystem-Hauptspeicher ist dem Segment C zugeordnet, und das System wird dem Emulations-System durch den Inhalt des Basisadressregisters 2 (BR2) bekannt-gegeben. Die Segmentgrösse ist so ausgelegt, dass sie gleich der Speichergrösse des Zielsystems ist, das emuliert wird. Bei einer vorgegebenen absoluten Adresse M oder einem Zeichen, würde das Zeichen durch Indizierung des Inhalts des Basisadress-Registers 2 durch M festgelegt werden. Bei der bevorzugten Ausfühxungaform entspricht das Format der in dem Hauptspeicher enthaltenen Information dem Format der Information, die von dem Zielsystem benutzt wird. Dies bedeutet, dass beide Systeme ein "Zeichen"verwenden, welches acht Bits enthält, und zwar sechs Datenbits und zwei Zeichensetzungsbits (das sind ein Wortmarkierungsbit-Bit 1 und ein Datenwortmarkierungsbit-Bit O), Der einzige Unterschied zwischen der Art und Weise, in der die Information in dem Wirts-System dargestellt wird, liegt in der Numerierung der Bits von links nach rechts als Bits Null bis 7 anstatt von rechts nach links als Bits 1 bis 8. Das Segment D enthält die TabelLen und Routinen für die Verarbeitung solcher Funktionen, die nicht von der Hardware oder Firmenware des Systems ausgeführt werden. So wird zum Beispiel der Softwareteil, der Emulationstragsatz (ESF) derart betrieben, dass Eingabe/ Ausgabe-Befehle der Zielsysteme übersetzt und ausgeführt
509828/0678
werden* Ausserdem können verschiedene Hartwareteile der Zielsystem-Architekturen simuliert werden, ebenso wie bestimmte Operationen bisher von Zielsyatemen ausgeführt wurden«
Ea dürfte selbstverständlich einzusehen sein, dass die eigentliche Ausführung der Eingäbe/Ausgabe-Operationen über die Eingabe/Auegabe-Struktur des Wirte-Systems abläuft. Die-in dem Segment D zum Beispiel enthaltenen Tabellen weisen periphere Adressen auf, die von den Zielsystemen benutzt werden und die dem Eingabe/Ausgabe-System für eine bestimmte Konfiguration entsprechen, die unter Emulation steht· Weitere Tabellen werden dazu herangezogen, den Zustand einer bestimmten übertragung, deren Steuereinheit8-Einriohtung8adresse sowie den Zustand für sämtliche Lese/Schreibkanäle des Zielsystems aufzuzeichnen.
In dem Hauptspeicher ist ein Segment oder ein Teil eines Segments enthalten, obwohl dies In Fig. 1a nicht gezeigt ist· Dieses Segment oder dieser Segmentteil enthält den Prozess-Steuerblock (PCB) · Der Prozess-Steuerblock enthält die relevante Information, die für den Ablauf oder Betrieb eines vorgegebenen Prozesses erforderlich ist· Der Typ der in dem Prozess-Steuerblook enthaltenen Information ist in Fig· 1b veranschaulicht· Wie aus dieser Fig· hervorgeht, ist diese Information die gesamte Information, die erforderlich ist,um das System gemäss Fig. 1 in den Stand zu versetzen, eine bestimmte Ziel· maschine zu emulieren. Der Inhalt des Prozess-Steuerblockes wU hier In Verbindung Bit der vorliegendes Erfindung beschrieben werden·
509828/0678
250000a
Detaillierte Beschreibung des Zentraleinheits-Untersystems
Nunmehr werden die verschiedenen Teile des Zentraleinheits-Untersystems gemäss Fig. 1, die für die Emulation benutzt werden, näher beschrieben.
Steuerspeicher-Schnittstellenadapter und Steuerspeichereinheit - Pig. 2a
Das Steuerspeicherfeld 205-1 der Steuerspeichereinheit enthält bei der bevorzugten Ausführungsform sowohl festliegende als auch änderbare Bereiche. Der festliegende Bereich kann unter Ausnutzung eines programmierbaren Pestwertspeichers (PROM) aufgebaut sein, und der änderbare Teil des Speichers enthält einen durch eine integrierte Schaltung gebildeten Lese/Schreibspeicher. Der gesamte Speicher ist über ein Adress-Register KS adressierbar; sein oberer Teil ist veränderbar, um die Fähigkeiten zu erhalten, das System in einer Vielzahl von unterschiedlichen Betriebsarten steuern zu können. Eine daartige Betriebsart ist jene, die bei der Emulation des Betriebs in eine Anzahl von unterschiedlichen Zielsystemen benutzt wird. Eine weitere Betriebsart umfasst eine Diagnose-Fähigkeit zum Zwecke der Feststellung, welcher Systemteil oder welche Systemteile ausgefallen sein können. Bei der vorliegenden Ausführungsform besitzt das Steuerspeicherfeld eine Grosse von 7K (K = 1024 Bits), und die Breite jedes Steuerspeicherwortes beträgt 84 Bits. Das Steuerspeicherfeld ist in folgende Bereiche unterteilt: 1K für Mikro-Diagnosen bzw. -Fehlerdiagnosen; 2K für die Emulation und 4K für den Maschinencodebetrieb. Es dürfte einzusehen sein, dass die Steuerspeicherplätze, die einen bestimmten Bereich umfassen, entweder aneinander grenzend bzw. abhängig oder nicht aneinandergrenzend sein können. Der 1K-Bereich, der für Mikro-Fehlerdiagnosen
509828/0678
benutzt wird, ist dynamisch veränderbar. Dasselbe trifft auch für Teile zu, die für die Emulation und für den Maschinencodebetrieb benutzt werden. Die übrigen Speicherplätze des Steuerspeichers sind nicht änderbar oder festgelegt. Es sei bemerkt, dass die Struktur des Steuerspeicher· feldes in Abhängigkeit von den Kosten, der Geschwindigkeit und Flexibilität zusätzlich in Abhängigkeit von anderen Erwägungen geändert werden kann. Bezüglich weiterer Einzelheiten betreffend Pestwertspeicher sei auf einen Artikel mit dem Titel "Universal Logic Modules Implemented Using LSI Memory Techniques" von Kenneth J. Thurber und Robert O. Berg, veröffentlicht in der "Pail Joint Computer Conference", 1971, hingewiesen.
Jedes Steuerspeicherwort besitzt, wie oben erwähnt, eine Länge von 24 Bits; es ist in eine Vielzahl von Feldern (6) unterteilt, wie dies in Pig. 5 veranschaulicht ist. Ein erstes^ als "E"-Peld bezeichnetes PeId ist ein Verzweigungs-Steuerfeld, welches den Typ der vorzunehmenden Verzweigung angibt. Wie aus Pig. 2a hervorgeht, sind bis zu acht verschiedene Typen von Verzweigungscodes vorgesehen, die mit EO bis E7 bezeichnet sind.
Die Auswahlschaltungen 204-1 bis 204-7 des Steuerspeicher-Schnittstellenadapters benutzen die Felder A, B, C, D und L eines Mikrobefehlswortes, um Verzweigungsadressen zu erzeugen. Wenn das E-PeId so codiert ist, dass beispielsweise alle Bits Nullen^ind, gibt dies eine bedingte (oder, wenn kein Test angegeben ist, eine unbedingte) Verzweigungsoperation von vier möglichen Verzweigungsoperationen unter Verwendung der C- und D-Felder als Testfelder an. Die Verzweigung erfolgt zu einer Basisadresse, die gleich dem Wert der A- und B-Felder ist. Dieser Wert wird auf der Basis der Ergebnisse modifiziert, e durch die Schaltungen 204-1 und 204-3 auf die Über-
509828/0678
25000Q6 --22-
prüfung der durch die Felder C und D angegebenen Bedingungen gebildet werden. Jedes Testfeld besitzt eine Länge von sechs Bits; es ermöglicht vierundsechzig unterschiedliche Tests pro Feld. Das Ergebnis der Überprüfung der Bedingungen bzw. Zustände, die durch die Felder C und D angegeben sind, veranlasst die Schaltungen 204-1 und 204-3, die Steueradressenbits 11 bzw. 12 auf binäre Einsen zu setzen. Das Steuerspeicheradressenbit 13 wird in einen Zustand gesetzt, der gleich dem Zustand des Bits L ist.
Wenn das Verzweigungssteuerfeld E auf einen Code von "1" gesetzt ist, ermöglicht dies bis zu eine 64-fache Verzweigung unter Verwendung der Felder D, C und D als Testfunktionen auszuführen. Das B-Feld wird als Testmaske verwendet, wenn die Testfunktionen überprüft werden (das heisst, dass die Testfunktionen mit dem B-Testfeld in einer UND-Operation verknüpft werden). Wenn das E-FeId so codiert ist, dass es einen Code von "2" enthält, gibt dies eine Unterbrechungs-Rückkehroperation an, die die vorliegende Erfindung nicht betrifft und daher hier auch nicht weiter beschrieben zu werden braucht. Wenn das E-FeId so codiert ist, dass es eine "3" enthält, zeigt dies
eine
eine die Rückkehr von einer/Mikroprogramm-Unterroutine betreffenden Operation an, auf die eine weitere Verzweigungs-Operation folgt, um die Rückkehr zu beenden. Bei dieser Operation wird der Adresseninhalt eines KR-Rückführregisters 204-12 als nächste Steueradresse benutzt. DSs Rückführregister 204-12 wird normalerweise mit einem Wert entsprechend dem Adresseninhalt eines Steuerspeicher-Adressregisters KS+1 über nicht dargestellte Inkrement-Schaltungen geladen. Wenn das E-FeId als "4" codiert ist, ermöglicht dies einer Inkrement-Sehaltung 204-11} den Inhalt des KS-Registers 204-1 um 1 zu erhöhen. Dies tritt lediglich
509828/0678
250QQQ6 -23-
nach einer bedingten Operation oder einer
Rückführ-Verzweigungsoperation auf· Ferner sindthier nicht näher dargestellte Einrichtungen vorgesehen, die in das Adress-Register ES einen bestimmten Wert auf bestimmte externe Bedingungen hin einführen·
Wie aus Flg. 5 hervorgeht, enthält das Steuerspeicherwort ein zusätzliches Feld K. Dieses Feld ist ein 14-Bit-Feld, von welchem sechs Bits für die Angabe einer Eonstanten, vier Bits für die Angabe einer weiteren Eonstanten oder eines Steuerungsfeldes und die letzten vier Bits als Steuerungsfeld für eine Eonstante ausgenutzt sind. Ein QA-QB-FeId besitzt acht Bits, von denen vier Bits die an eine erste Busleitung abzugebende Information bezeichnen (das ist die QA-Busleitung) und von denen die nächsten vier Bits die an eine andere Busleitung (das 1st die QB-Busleitung) abgegebene Information steuern· Die beiden Busleitungen sind bidirektional betreibbar; sie verbinden die verschiedenen Einheiten der Zentraleinheit für die Übertragung und Aufnahme von Daten und Steuerinformation·
Bei Fehlen einer Verzweigungsoperation wird der Steuerspeicher während eines OperationsZyklus durch den Inhalt des ES-Adressregisters 204-9 adressiert, und der Inhalt eines adressierten Speicherplatzes wird in eine Vielzahl von Daten-Verriegelungsschaltungen 205-2 ausgelesen. Danach wird ein Teil der Ausgangssignale (das sind die Bits 26ULs 79) aus diesen Verriegelungsschaltungen an Speicherregister (nicht gezeigt) verteilt oder zu diesen übertragen, die innerhalb jeder der Einheiten des Zentraleinheits-Untersystems enthalten sind. Jede derartige Einheit enthält Decodier-Verknüpfungsachaltungen (nicht gezeigt), die die Form von programmierbaren Festwertspeichern (PROM) besitzen und die die erforderlichen
509828/0678
Unterbefehls-Steuersignale für ihre entsprechende Einheit liefern. Auf diese Weise kann jede Einheit die von ihrem PROM-Speicher gelieferten Steuersignale verknüpfen bzw. kombinieren, diese Signale in Gruppen für die Kombination mit anderen Signalen unterteilen, die innerhalb der betreffenden Einheit erzeugt worden sind, und zwar entsprechend der Forderung zur Ausführung verschiedener Operationen. Sie Dekoderschaltungen 203-4 decodieren bestimmte Felder (zum Beispiel Verzweigungsfelder) und erzeugen Signale, die für AblaufSteueroperationen erforderlich sind.
Wie aus Fig. 2a ferner ersichtlich ist, enthält die Steuerspeichereinheit ein örtliches Register KN 205-6 welches über das Register KW 205-3 mit dem Steuerspeieherfeld 205-1 verbunden ist. Diese Anordnung ermöglicht ein Zurückschreiben der während eines Speicheroperatiaszyklus ausgelesenen Information in einen adressierten Speicherplatz. Aufgrund der Registergrösse wird die ausgelesene Information in das Steuerspeicherfeld 12 in Form von Bits zu einem Zeitpunkt wieder eingeschrieben.
Rechen- und Verknüpfungseinheit - Fig. 2b bis 2d
Diese Einheit, die in Fig. 1c in Blockdiagrammform dargestellt ist, führt sämtliche erforderlichen Rechen- und Verknüpfungsoperationen für das Zentraleinheits-Untersystem aus. Die Einheit enthält eine Wort-Rechen- und Verknüpfungseinheit 206-1, die in Fig. 2a dargestellt ist, und die Rechen- und Verknüpfungsoperationen auf zwei Operanden hin ausführt. Diese Operanden haben eine Länge von vier Bits; sie werden in zwei Operanden-Registern 206-3 und 206-5 gespeichert. Die Inhalte der Operanden-Register 206-3 und 206-5 werden über in herkömmlicher Weise aufgebaute Auswahlschaltungen 206-7 und 206-9 abgegeben. Die von
509828/0678
einem Wortaddierer 206-1 erzeugten Ausgangsergebnis-Signale werden dem Register 206-3 und einem Register LY zugeführt. Eine Dekoderschaltung 206-2 überprüft das AC-Register hinsichtlich des Vorliegens von Nullen·
Zwei Register 206-11 und 206-12 dienen als Hilfsregister; sie sind mit den Elementen und den angegebenen Busleitungen verbunden. Das AP-Register 206-12 erhält ferner Datensignale von einem AG-Register 206-88, und zwar über die SPS-Auswahlschaltung 206-14 auf Steuersignale von einem dreistufigen Zähler 206-16 her. Der SE-Zähler 206-16 wird in seiner Zählerstellung durch eine Inkrement-Dekrement-Schaltung 206-18 um 1 erhöht/verringert. Dieser Zähler wird von Registern her geladen, die in dem Byte-Addierer und in der Steuerspeicher-Schnittstellenadapter-Einheit enthalten sind·
Die Rechen- und Verknüpfungseinheit enthält ferner ein AI-Operationscode-Register 206-20, Dekoderschaltungen 206-22 und ein Betriebsart-Steuerregister; diese Register bzw. Schaltungen sind in der dargestellten Weise angeordnet. Der Inhalt des Registers 206-24 veranlasst den Addierer, Operationen auszuführen, wie sie durch den Operations-Code eines Befehls angegeben sind. Die Rechen- und Verknüpfungseinheit enthält ferner eine 64-Bit-Verschiebeschaltung 206-30, die die Form von Yerknüpfungsschaltungen besitzen kann, wie sie an anderer Stelle näher beschrieben werden (siehe US-Patentanmeldung Ser.No. 320 011 v. 2.1.73). Die Verschiebeschaltung 206-30 ist mit den AC- und AE-Registern 206-3 und 206-11 verbunden; sie wird von einem 8-Bit-Steuerregister 206-32 gesteuert. Das Register 206-32 wird direkt von den dargestellten Quellen her geladen oder indirekt über eine Auswahl-
509828/0678
Schaltung 206-34.
Wie aus Fig. 1c hervorgeht, enthält die Rechen- und Verknüpfungseinheit einen 8-Bit-(Byte)-Addierer 206-50, der in fig. 2c in einzelnen gezeigt ist. Für die Zwecke der vorliegenden Erfindung kann der Addierer 206-50 als in herkömmlicher Weise aufgebaut angesehen werden. Der Addierer 206-50 arbeitet auf die Operanden eines Bytes hin, und zwar zu einem Zeitpunkt; er enthält Decodier-Verknüpfungsschaltungen, die diejenigen Operationen ausführen, die von den Zielsystemen benötigt werden. Darüber hinaus enthält der Addierer dezimale Korrekturschaltungen 206-72, Nullergebnis-Dekoderschaltungen 206-74, ein Ausgabe-Flipflop 206-75 und Ausgabe/Auswahlschaltungen 206-76. Ausserdem enthält der Addierer 206-50 eine Vielzahl von Speicherregistern, die an der gemeinsamen Busleitung QA und QB angeschlossen sind sowie an eine weitere in Fig. 2c gezeigte Busleitung. Dabei ist ersichtlich, dass ein Register 206-53 an der gemeinsamen Daten-Steuerungs-Busleitung QB und an Quellen angeschlossen ist, die mit LSM, AA und ARB bezeichnet sind. Die Verbindung erfolgt dabei über die Schaltungen 206-78. Die Quelle LSM entspricht dem Hilfsspeicher gemäss Fig. 2d, der in der örtlichen Speichereinheit 101-7 gemäss Fig. 1 enthalten ist. Wie zuvor erwähnt, bewirkt dieser Speicher eine Kurzzeitspeicherung für die Rechen- und Verknüpfungseinheit sowie eine Kurzzeitspeicherung für die Steuerungsinformation und Adresseninformation, die die Verarbeitung dnes bestimmten Befehls betrifft. Die Anwendungen bestimmter Speicherplätze innerhalb des örtlichen Speichers sind in Fig. 3 und 4 veranschaulicht. Die Quellen AA und ARB entsprechen dem Register 206-52 bzw. dem Byte-Addjfarer 206-50. Das Register 206-52 ist mit den beiden Busleitungen QA und Q-B sowie mit dem AC-Register 206-3 über eine Auswahlschaltung 206-65 verbunden.
509828/0678
Wie aus Pig. 2b ersichtlich ist, dienen die AA- und AB-Register 206-52 und 206-54 hauptsächlich als A- und B-Operanden-Register, die über die AAS- bzw. ABS-Ausmhlschaltung 206-56 bzw. 206-58 mit den Byte-Addierer 206-50 verbunden sind. Ein Betriebsart-Steuerregister 206-57 ist direkt an den Addierer 206-50 angeschlossen. Der Inhalt des Registers veranlasst den Addierer, die Operation auszuführen, wie sie durch eine Konstante angegeben ist, die in das Register geladen ist· Das AB-Register 206-52 nimnt ein bezeichnetes Byte von vier Bytes auf, die in den AD-Register des Wort-Addierers gespeichert sind. Das ausgewählte bestinte Byte ist durch den Inhalt eines SD-Zählers 206-60 festgelegt, der eine Inkrenent/Dekrement-Schaltung 206-61 enthält. Der Zählerinhalt dient als Zeiger, der eines der Bytes angibt, das als nächstes Byte in das AB-Register 206-58 zu laden ist· In ähnlicher Weise enthält der SO-Zähler 206-62 eine Inkrenent/Dekrement· Schaltung 206-63f die als Zeiger dient, welcher angibt, welches Byte in das AA-Register 206-52 von den AC-Register 206-3 des Wort-Addierers her zu laden ist· Dies bedeutet, dass die Zähler SD und SC die Auswahlschaltungen 206-65 bzw. 206-66 veranlassen, die AA- und AB-Operanden-Register von den AC- und AD-Registern her zu laden· Ausserden können die AB- und AA-Register 206-58 und 206-55 über Verknüpfungs- bzw. Gatterschaltungen 206-78 und 206-80 geladen werden. Die Auswahlschaltungen 206-65 und 206-66 können zwei Steuerregister 206-82 und 206-84 laden. Diese Register bewirken eine Kurzzeitspeicherung für bestimmte Varianten-Steuerzeichen eines Befehls, der verarbeitet wird (zum Beispiel Operationscode und Cl-Zeichen). Eine Dekoderschaltung 206-86 ist nit dem Register 206-84 zum Zwecke der Dekodierung der Bits des Cl-Zeichens verbunden.
509828/0678
Die Steuerregister enthalten ein weiteres Register 206-88, welches dazu herangezogen wird, bestimmte Maskierungsbzw. Ausblendoperationen auszuführen, gemäss denen Signale in das Register über eine Auswahlschaltung 206-90 geladen und der Reihe nach über die Auswahlschaltung 206-34 an den Byte-Addierer 206-50 abgegeben werden. Das Register 206-58 wird ferner dazu benutzt, einen dreistufigen Dekrement-Zähler 206-92 zu laden. Dieser Zähler wird dazu benutzt, die Anzahl der Steuerzeichen festzuhalten, die von dem Emulator verarbeitet werden. Der betreffende Zähler enthält ferner eine Dekoderschaltung 206-94» die signalisiert, wenn der Zählerinhalt des Zählers auf Null verringert ist.
Darüber hinaus enthält der Byte-Addierer 206-50 eine Vielzahl von Flipflops, die von dem Wirts-System für Steuerungs- und Speicherzwecke benutzt werden. Ein derartiges Flipflop ist ein Emulationsbetrieb-Flipflop 206-80, das durch Firmenware setzbar und zurückstellbar ist. Weitere Flipflops umfassen eine Vielzahl von Steuerungs-Flipflops CFO bis CF7, die mit den Steuerspeicher-Testschaltungen gemäss Fig. 2a verbunden sind.
örtliche Speichereinheit - Fig. 2d
in Fig. 2d ist die örtliche Speichereinheit der Rechen- und Verknüpfusgs@ish.eit gesäss Fig, 1 and 1e im einzelnen dargestellt. Wie aus Fig. 2d hervorgeht, enthält die betreffende Einheit einen adressierbaren Hilfsspeicher 207-1, der eine 32iger Breite besitzt. Der Speicher enthält, wie dargestellt, bis zu 256 Speicherplätzen. Er ist über ein LR-Register 207-2 adressierbar, welches Eingangssignale von der QA-Busleitung sowie von dem EW-Register 206-84 über ein Register 207-4 und Verknüpfungs-
509828/0678
25000Q6
Schaltungen 207-3 in der dargestellten Weise erhält. Das LR-Register 207-2 enthält ferner eine Inkrement/Dekrement-Schaltung 207-5· Während eines Operationszyklus wird der Inhalt eines adressierten Speicherplatzes in ein Ausgaberegister 207-9 ausgelesen und an die dargestellten Register und Busleitungen abgegeben.
Wie erwähnt, zeigt Fig. 3 die Auslegung des Speichers 207-1· Aus .Fig. 3 ergibt sich dabei, dass die ersten sechzehn Speicherplätze der Speicherung von Informationen zugeteilt sind, und /den Mehrzweckregistern QRO bis GR15 des Prozess-Steuerblockes entsprechend· Wie hier erläutert, werden diese Speicherplätze dazu benutzt, den Emulationstragsatz ESF aufzurufen, wenn sie so codiert sind, dass sie eine Information enthalten, die in einem format, wie dem in Fig. 4 gezeigten, untergebracht ist. Eine weitere Gruppe von Speicherplätzen 30 bis 3F dient als Arbeitsspeicherplätze, die eine Information speichern, welche aus den Eingabe/Ausgabe-Tabellen erhalten wird, wie dies hier beschrieben wird· Die übrigen Speicherplätze betreffen nicht die Erfindung und werden daher hier auch nicht weiter beschrieben.
Adressensteuereinheit - Fig. 2e
In Fig. 2e sind die Schaltungen gezeigt, die effektive und absolute Adressen eines Hauptspeichersegments erzeugen, und zwar unter Verwendung einer 16 Bit breiten Zuordnungsschaltung oder eines inhaltsadressierbaren Speichers 202-1. Der Speicher 202-1 ist mit einem Codierer 202-3 verbunden, der seinerseits dazu benutzt wird, eine Bezugnahme auf den Inhalt eines entsprechenden Speicherplatzes
509828/0678
von sechzehn Speicherplätzen eines Zuordnungsschaltungs-Pufferspeichers 206-5 zu "bewirken, der eine Breite von vierundsechzig Bit besitzt. Eine Information wird in den Puffer über ein Register 202-4 eingeschrieben. Die UAS-Zuordnungsschaltung 202-1 ist ausserdem mit einem Eingaberegister 202-7 verbunden, welches eine Segmentnummarn-Information aus einem Register 202-9 aufnimmt. Wie hier erläutert, wird die obige Anordnung dazu benutzt, eine absolute Adresseninformation für die Bezugnahme auf den Hauptspeicher zu erzeugen. Diese besondere Anordnung wird an anderer Stelle näher beschrieben (siehe US-Patentanmeldung, Ser.No. 283 617 v. 24.8.72).
Die Adressen-Zuordnungsschaltung 202-1 enthält im einzelnen die Segmentzahlen bzw. Segmentnummern "STN/STE" von bis zu sechzehn Segmentdeskriptoren, die in dem Zuordnungspuffer 202-5 gespeichert sind. Jeder der sechzehn Speicherplätze in der Zuordnungsschaltung enthält zwölf Datenbits zuzüglich vier Prüf- und Steuerbits. Während der Entwicklung einer absoluten Adresse wird die Nummer eines gewünschten Segments in ein US-Register 202-7 geladen. Dieses Register dient als Adressregister, dessen Inhalt parallel an die sechzehn Speicherplätze der Zuordnungsschaltung 202-1 abgegeben wird. Wenn ein 1-Vergleich ermittelt wird, wird der Codierer 202-4 durch ein Aus gangs signal von der Zuordnungs schaltung 202-1 veranlasst, einen 4-Bit-Code zu erzeugen, der seinerseits den in Frage kommenden Speicherplatz der 16 Speicherplätze auswählt, die in dem der betreffenden Nummer bzw. Zahl zugeordneten Segmentdeskriptor enthalten sind. In dem Fall, dass kein 1-Vergleich vorliegt, muss der Deskriptor für die betreffende Segmentnummer aus dem Hauptspeicher über die QA-Busleitung abgeholt werden. Der Deskriptor wird, wenn er abgeholt ist, in den Zuordnungspuffer 202-5 über das Register 202-4 eingeschrieben, und ausserdem
509828/0678
250Q006 _31_
wird ein zugehöriges Treffer-Bit gesetzt.
Aus Fig· 2e geht hervor, dass die Ädressensteuereinheit 101-2 ebenfalls eine Einheitsregister-Datei (TSRF) 202-20 enthält, die eine Vielzahl von eine Breite von 32 Bits besitzenden Basisadress-Register-Speicherplätzen BRO bis BR7 zusätzlich zu den Arbeitsregister-Speicherplätzen UW4 bis UW7 aufweist. Sämtliche Speicherplätze sind dabei über eine Auswahlschaltung 202-22 durch die Inhalte der Register 202-24, 202-26 und 202-30 adressiert. Bestimmte Register dieser Register enthalten normalerweise Basisregisteradressen, die aus einem Befehl oder Mikrobefehl etc. abgeleitet sind und die über die Busleitungen QA und QB in der dargestellten Weise abgegeben werden. Die URF-Datei ist unter Verwendung von Verknupfungsschaltungen aufgebaut; sie besitzt eine solche Struktur, dass das Auslesen des Inhalts aus mehr als einem Register zu einem Zeitpunkt ermöglicht ist· Das Register 202-24 enthält eine Iηkrement-Sehaltung 202-28. Während eines Schreib-Operationszyklus ist die Auswahlschaltung 202-22 durch Steuersignale, die von dem Steuerspeicher her erzeugt werden, veranlasst, den Inhalt der Register 202-24, 202-26 und 202-30 auszuwählen, um den Speicherplatz anzugeben, in den eine Information einzuschreiben ist. Die Adresseninhalte jedes der Register 202-24 und 202-26 werden insbesondere dazu herangezogen, einen der ersten acht Speicherplätze auszuwählen. Der Inhalt des Registers 202-30 wird dazu benutzt, einen der zwölf Regiderspeicherplätze auszuwählen. Bei Fehlen von Steuersignalen von dem Steuerspeicher her wird das Register 202-30 als Quelle der Adressensignale ausgewählt. Die Register 202-24 und 202-26 werden auf bestimmte Steuereignale hin ausgewählt.
Während eines Lese-Operationszyklus ist eine Auswahlschaltung 202-32 derart betrieben, dass der Adresseninhalt
509828/0678
eines der Register 202-24 und 202-26 oder eine Konstante aus einem nicht dargestellten Register an eine Ausgabe/Auswahlschaltung 202-40 abgegeben wird, um einen der ersten acht Speicherplätze zum Zwecke des Auslesens auszuwählen. Die Steuersignale bezeichnen ebenfalls das bestimmte Register, das von der Schaltung 202-32 auszuwählen ist·
Daten, die über die Busleitung QA oder die Busleitung QB, die Auswahlschaltung 202-36, das Byte-Adressregister 202-48 oder über die Inkrement/Dekrement-Schaltungen 202-46 abgegeben werden, werden in einen adressierten Speicherplatz über eine Daten-Auswahlschaltung 202-34 eingeschrieben. Die Verknüpfungsschaltungen einer Auswahlsteuereinheit 202-47 erzeugen auf Signale von dem Steuerspeicher und einem Emulatorbetriebs-(UEMU)-Flipflop 202-49 Signale, die die Auswahlschaltung 202-34 veranlassen, ausgewählte Bits von der QB-SannnelLeitung mit Bits von der in Präge kommenden Quelle zu dem richtigen Format entsprechend dem angegebenen Zeichenbetrieb zusammenzufassen bzw. zu kombinieren. Das Adressensteuereinheits-Emulatorbetriebs-Flipflop veranlasst die Auswahlschaltungssteuereinrichtung, Signale für einen Zeichenbetrieb zu erzeugen, wie er durch die Verarbeitung von Zielsystembefehlen angegeben ist. Dieses Flipflop wird anfänglich durch Firmenware eingeschaltet, wie dies hier erläutert wird. Der Zustand eines Steuerungs-Inkrement/Dekrement-(UID)-Flipflops 202-4 legt fest, ob die Schaltungen 202-46 in einem Inkrement- oder Dekrementbetrieb zu benutzen sind. Darüber hinaus nehmen die Inkrement-Dekrement-Schaltungen 202-46 Signale von einem adressierten Speicherplatz über eine Auswahlschaltung 202-36 und von einem Register 202-48 her auf. Die Schaltungen 202-46 können aus herkömmlichen Addierer/Subtrahier-Schaltungen aufgebaut sein.
509828/0678
Wenn die Register 202-42 und 202-44 direkt von den Steuerspeicher-Verriegelungsschaltungen her geladen werden, veranlassen sie die Auswahlschaltungen 202-36 bzw. 202-38, einen derJLetzten acht Registerspeicherplätze für das Auslesen auszuwählen· Die Auswahlschaltung 202-36 gibt Signale an die Busleitungen QA und QB ab, und zwar zusätzlich zur Abgabe an die Increment/Dekrement-Schaltungen 202-46. Sie Auswahlschaltung 202-38 gibt Signale an eine Addiererschaltung 202-50 ab, die an einem Ausgaberegister 202-52 und an der Auswahlschaltung 202-34 angeschlossen ist, während die Auswahlschaltung 202-40 mit einem Basis-Versetzungsregister 202-54 verbunden ist, dessen übrige Eingänge in der dargestellten Weise beschaltet sind.
Während der Erzeugung einer absoluten.Adresse wird die Segmentnummer "SEG" der Basisregisteradresse in das US-Register 202-7 über die UBS-Auswahlschaltung 202-40 geladen, während der "Versetzungs"-Wert der Basisregisteradresse in das UN-Register 202-54 geladen wird. Der Inhalt des UN-Registers 202-54 wird danach an den Addierer 202-50 abgegeben, der den Inhalt zu einem Verschiebewert hinzuaddiert, den er aus dem Adressenteil eines Befehls erhalten hat, der verarbeitet wird. Die durch den Addierer 202-50 erzeugte Summe wird in eines der Arbeitsregister (zum Beispiel UW2) über die UY/B-Datenauswahlschaltung 202-34 für eine weitere Bezugnahme geladen. Die Zuordnungsschaltung 202-1 wird abgefragt, um zu bestimmen, ob die Adresse des Segments in dem US-Register 202-7 in dem Puffer 202-5 gespeichert ist. Wenn sie dort gespeichert ist, wird die in dem Puffer 202-5 gespeicherte Segmentbasisadresse in das UN-Register 202-54 geladen. Der Arbeitsregister-Speicherplatz, der den Versetzungs- und Verschiebewert für das Segment enthält, wird über die Auswahlschaltung 202-38 an den Addierer 202-50 abgegeben und zu der Segmentbasisadresse hinzuaddiert,
609828/0678
Die Summe bildet eine absolute Adresse, die in das UA-Register 202-52 geladen wird, um den Hauptspeicher zu adressieren. Ferner kann die absolute Adresse in einem Arbeitsregisterspeicherplatz der Einheitregister-Datei zum Zwecke einer weiteren Bezugnahme (zum Beispiel UW2) gespeichert werden.
Bezüglich einer weiteren Information betreffend die Art und Weise, in dar bestimmte,gerade beschriebene Elemente aufgebaut sein können (zum Beispiel Auswahlschaltungen, Addiererschaltungen, Inkrement/Dekrement-Schaltungen, Hilfsspeicher, etc.) sei auf eine Veröffentlichung mit dem Titel "The Integrated Circuits Catalog for Design Engineers" von Texas Instruments Inc., 1972 gedruckt, hingewiesen. Es sei bemerkt, dass die angegebenen Addiererschaltungen dazu benutzt werden können, den erforderlichen Typ von Inkrement/Dekrement-Operationen auszuführen.
Eingabe/Ausgabe-Tabellen- Pig. 6
Bevor die Arbeitsweise der vorliegenden Erfindung beschrieben wird, sei zunächst auf Pig. 6 Bezug genommen, in der die Organisation der Eingabe/Ausgabe-Tabellen gemäss der vorliegenden Erfindung angegeben ist. Bei der vorliegenden Ausführungsform, wie sie aus Pig. 6 hervorgeht, sind sechs allgemeine Klassen oder Tabellen vorgesehen· Diese enthalten: Eine Lese/Schreib-Kanal-Tabelle, eine Sektor-Tabelle, eine Beendigungs-Tabelle, periphere Steuereinheit-Tabellen, PCU-Erweiterungstabellen, Einrichtungs-Tabellen und Einrichtungs-Erweiterungstabellen,
Lese/Schreib-Kanal-Tabelle
Die Lese/Schreib-Eanal (RWC)-Tabelle ist auf einer Basis pro emuliertes Zielsystem organisiert. Dies heisst, dass
509828/0678
eine derartige Tabelle für jedes emulierte System vorgesehen ist. Der Inhalt des Basisadressregiders 4 (BR4) gibt den Beginn oder die Basis der RWC-Tabelle an.
Jede !DaDeIIe enthält einen Adressenraum von 256 Bytes· Diese Bytes sind in vierundsechzig Einträge gruppiert. Ein Eintrag ist für jeden möglichen Lese/Schreib-Kanal-Code vorgesehen, der durch ein Zielsystemprogramm bezeichnet werden kann. Jeder Eintrag ist so codiert, wie dies in Fig. 7a angegeben ist. Aus Fig. 7a geht hervor, dass jeder Eintrag ein 6-Bit-Zeitfach-Ausblendfeld, ein 6-Bit-Zählercodefeld, ein einzelnes erweitertes Eingabe/ Ausgabe-Bit (EXX), ein 3-Bit-Sektor-Codefeld und ein 16-Bit-RWC-Belegungs-Ausblendfeld enthält. In Fig. 7a ist ferner ein Beispiel für einen RWC-Feldeintrag gezeigt, wie er für ein bestimmtes Zielsystem angegeben ist. Wie aus der betreffenden Figur hervorgeht, kann ein Maximum von sechs Zeitfächern in einem emulierten Zielsystem vorgegeben werden (das sind die Zeitfächer 1, 1a bis 3a). Bei diesem Beispiel werden zwei Zeitfächer von dem RWC-Code benötigt; dies entspricht einer Datenübertragungsfrequenz von 167 Zeichen pro Sekunde in dem Zielsystem· Dieses Feld zeigt jedoch nicht an, welche Zeitfächer belegt sind·
Der Zählercode entspricht der Adresse in Oktalschreibweise des den gegenwärtigen Speicherplatz angebenden Zählers, der für die Adressenspebherung durch einen Datenübertragungsbefehl mit dem bezeichneten RWC-Code benutzt wird. Bei diesem Beispiel ist die Zählercodeadresse gegeben mit 22 (Oktalschreibweise)· Der Code besitzt normalerweise einen Wert im Bereich von OO Oktal bis 27 Oktal.
509828/0678
Jeglicher Lese/Schreib-Kanal-Code, der für die emulierte Konfiguration unzulässig ist, wird als solcher durch den Zählercodeeintrag bezeichnet. Für den einem Code von OO Oktal entsprechenden RWC-Eintrag und für sämtliche den RWC-Codes, die in den Zielsystemen unzulässig sind, entsprechenden RWC-Einträge ist das Zählercodefeld so codiert, daß ein Bit hoher Wertigkeit eine 1 ist (d.h. 1XXXXX). Dieser Zählercode wird in einer speziellen Weise behandelt. Wenn jemals der Emulator einen Zählercode mit einem 1-Bit hoher Wertigkeit feststellt, das während der Verarbeitung eines Datenübertragungs-Eingabe/ Ausgabe-Befehls ermittelt wird, so erzeugt er eine Bestimmungsnachricht, wie dies erläutert wird.
Das nEXT"-Bit ist 0. Dies bedeutet, daß die erweiterte Eingabe/Ausgabe-Eigenschaft nicht benutzt wird und daß der abgeholte Eintrag bei der Verarbeitung des Befehls benutzt wird. Wenn dieses Bit auf eine binäre 1 gesetzt ist, zeigt dies an, daß es erforderlich sein kann, einen "effektiven" RWC-Code anstelle des genau angegebenen RWC-Codes zu verwenden, und zwar in Abhängigkeit von dem Status eines erweiterten Eingabe/Ausgabe-Zielsystem-Anzeigegliedes. Wenn das Anzeigeglied eine binäre 1 ist (d.h. EIN ist), wird die Information in dem gegenwärtigen Eintrag benutzt. Wenn das Anzeigeglied eine binäre 0 ist, wird die Information in einem Wechseleintrag abgerufen und benutzt. FUr solche Zielsysteme, die diese Art der Eigenschaft nicht aufweisen, wird dieses Bit stets auf 0 gesetzt sein. Die durch dieses Merkmal hervorgebrachte Eigenschaft ist in dem oben erwähnten Programmierungsmanual im einzelnen beschrieben.
509828/0678
Der dem RWC-Code zugehörige physikalische Sektor 1st der Sektor 2; er 1st durch die Bits 13 bis 15 des Sektorfeldes angegeben. Im Falle von Steuerungstypen der Eingabe/Ausgabe-Befehle, die keine Datenübertragung erfordern und die lediglich ein Cl-Steuerzeichen enthalten, werden die Sektorcodebits 13 bis 15 dazu benutzt, einen richtigen Zeitfach-Status-Eintrag abzurufen, wie dies hier erläutert wird. In derartigen Fällen schließt eine überprüfung eines Lese/Schreib-Kanals eine Überprüfung der Sektor-Zeitfächer ein. Der Grund liegt darin, daß eine festliegende Beziehung zwischen dem Sektor, einem Zeitfach und dem RWC-Code in den Zielsystemen vorhanden ist. Im Falle eines Befehles, der eine Datenübertragung erfordert (z.B. ein PDDT-Befehl) werden die Sektorcodebits jedoch nicht benutzt.
Das 16 Bit umfassende RWC-BeIegungs-Ausblendfeld wird dazu benutzt, anzuzeigen, welche Lese/Schreib-Kanäle zu belegen sind (d.h., welche Kanäle für einen Datenübertragungsbefehl verfügbar sein müssen) oder überprüft werden nüssen (das ist ein Steuerbefehl). Wie in Fig. 7a dargestellt, kann ein Zielsystem maximal 16 genau angegebene Lese/Schrelb-Kanäle aufweisen, wie dies veranschaulicht ist. Der Buchstabe HAM bezeichnet dabei einen Hilfskanal im Unterschied zu einem Hauptkanal. In einigen Zielsystemen ist eine feste Beziehung zwischen den Lese/Schreib-Kanälen und den Zeitfächern vorhanden. Um höhere Ubertragungsraten bzw. -Frequenzen zu erzielen, die mehr als ein Zeitfach erfordern, sind die Lese/ Schreib-Kanäle "miteinander verbunden", was bedeutet, daß mehr als ein Kanal und damit Zähler für die Ausführung des Befehls erforderlich ist. Da zwei Zeitfächer für eine Frequenz von 167 Hz erforderlich sind, sind in dem gegebenen Beispiel auch
509828/0678
2500Q06
zwei Lese/Schreib-Kanäle erforderlich. Infolgedessen ist das RWC-Belegungs-Ausblendfeld so codiert, daß es Lese/Schreib-Kanäle 5 und 5a spezifiziert.
Spe zial-Einträge
Es gibt zwei RWC-Tabellen-Einträge, die in einer bestimmten Weise codiert sind. Diese Einträge entsprechen den Einträgen, die in Speicherplätzen gespeichert sind, welche durch die Adresse 00 Oktal und 77 Oktal bezeichnet sind. Der RWC-1'abellen-Eintrag an der Stelle (00)Q besitzt stets ein Zählercodefeld von (1XXXX). Wie oben erläutert, wird dieser Code von dem Emulator im Falle eines Datenübertragungsbefehls als unzulässig behandelt. Im Falle eines Steuerungs-Eingabe/Ausgabe-Befehls bewirkt der Emulator Jedoch eine Umgehung bestimmter Testoperationen, wie dies erläutert wird, und beendet die Verarbeitung des Befehls.
Der RWC-Tabellen-Eintrag an der Stelle (77)8 besitzt ebenfalls ein Zählercodefeld von 1XXXXX, welches den Emulator im Zuge der Verarbeitung eines Datenübertragungsbefehls veranlaßt, eine Spezifikationsnachricht zu erzeugen, wie dies oben erwähnt worden ist. Im Falle eines Steuerungs-Eingabe/Ausgabe-Befehls erzwingt der Emulator Jedoch eine Verzweigung, wie dies erläutert wird. Das RWC-Belegungs-Ausblendfeld in diesem Tabellen-Eintrag wird dazu benutzt anzuzeigen, welche Lese/ Schreib-Kanäle in dem Zielsystem, das emuliert wird, gerade zugeteilt sind (d.h. belegt sind). Jedes Feld wird durch den Emulator-Tragsatz ESP aktualisiert, wenn ein Datenübertragungsbefehl ausgelöst oder beendet wird. Wie hier erläutert wird, bewirkt der Emulator einen Zugriff zu dem Inhalt dieses Feldes, ohne indessen diesen Inhalt Jemals zu ändern, wenn er eine
509828/0678
"RWC-Belegungs-PrUfung" mit einem zulässigen RWC-Code ausführt, der weder (0O)8 noch (77)e für einen Datenübertragungsbefehl oder Steuerbefehl ist.
Sektor-Tabelle
Ein weiterer, in Fig. 6 enthaltener Typ einer Tabelle ist eine Sektor-Tabelle. Eine Sektor-Tabelle ist, wie dargestellt, für jedes Zielsystem vorhanden, das emuliert wird. Die Sektor-Tabelle besitzt einen Adressenraum von 32 Bytes, der, wie Fig. 6 zeigt, dem letzten Byte folgt, das einer RVC-Tabelle zugeordnet ist. Die Sektor-Tabelleneinträge sind in der aus Fig. 7b ersichtlichen Weise codiert. Wie aus Fig. 7b hervorgeht, enthält der Sektortabelleneintrag ein Zeitfach-Status-Feld (Bits O bis 5), das so codiert ist» daß es anzeigt, welche Zeitfächer in dem Sektor gerade benutzt werden (das ist der HBelegungsH-Status sämtlicher Sektor-Zeitfächer). Ein 7-Bit-Feld (das sind die Bits 6 bis 12) ist für die Benutzung durch die Emulator-Software (ESP) reserviert. Der Sektor-Tabelleneintrag enthält ferner ein 3-Bit-Status-Feld (das sind die Bits 13 bis 15), wobei das Bit 13 in dem Fall, daß es eine binäre 1 ist, anzeigt, daß der Sektor für das bestimmte Zielsystem nicht vorhanden ist (d.h., daß er nicht existiert). Die Bits 14 uriL15 des Status-Feldes sind für eine zukünftige Benutzung reserviert. Das letzte Feld (das sind die Bits 16 bis 31) des Sektoreintrags ist ein 16-Bit-Verschiebungs-Feld, welches die Basisstelle der peripheren Steuereinheit-(PCU)-Tabelle für den Sektor in bezug auf die Stelle angibt, die durch den Inhalt des Basisregisters 4 bezeichnet ist bzw. auf die dieser Inhalt hinzeigt.
Ein eindeutiger Eintrag in die Sektor-Tabelle wird dadurch festgelegt, daß demInhalt des Basisadressregisters 4 ein
509828/0678
Wert von 2561O plus ein Wert des Vierfachen des Sektorcodes addiert wird, wobei der Sektor-Code einem 3-Bit-Feld entspricht, das wie folgt gebildet ist: a) Wenn das erste Varianten-Zeichen Cl das einzige in dem Befehl vorhandene Varianten-Zeichen ist, wird der Sektor-Code aus dem RWC-Eintrag entnommen, auf den durch das Cl-Zeichen Bezug genommen wird (lediglich Steuer-Eingabe/Ausgabe-Befehle-PCB); b) wenn die Varianten-Zeichen C1 und C2 in dem Befehl vorhanden sind, wird der Sektor-Code dadurch gebildet, daß die drei Bits hoher Wertigkeit des C2-Varianten-Zeichens herangezogen werden und daß das Bit hoher Wertigkeit auf den Binärwert O gesetzt wird; c) wenn der Befehl ein Varianten-Zeichen C1 und ein Umschaltcodezeichen mit oder ohne der C2-Variante enthält, wird der Sektor-Code dadurch gebildet, daß die drei Bits niedriger Wertigkeit des CE-Zeichens herangezogen werden. Dies wird im einzelnen unter Bezugnahme auf Fig. 11 erläutert werden.
Periphere Steuereinheit-Tabelle
Die periphere Steuereinheit (PCU) ist ein dritter Tabellentyp, der in Fig. 6 enthalten ist. Dabei ist eine PCU-Tabelle für jeden Sektor in dem Zielsystem vorhanden, das emuliert wird. Außerdem ist ein Eintrag in der Tabelle für jede mögliche PCU-Adresse vorhanden, die durch das Zielsystemprogramm spezifiziert werden kann. Demgemäß sind 16 Einträge in der Tabelle vorhanden, die jeweils vier Bytes aufweisen.
Das Format der PCU-Tabelle ist in Fig. 7c dargestellt. aus Fig. 7c hervorgeht, enthält der Eintrag eine Information bezüglich des Typs der peripheren Steuereinheit, bezüglich des Vorhandenseins der peripheren Steuereinheit und bezüglich
509828/0678
ihres Belegungs/Unterbrechungs-Zustandes. Dabei zeigt insbesondere ein Code 0 an, daß eine periphere Steuereinheit für diesen PCU-Adreßcode nicht existiert. Wenn die ersten vier Bits als 0001 codiert sind, zeigt dieser Wert an, daß eine Zielsystem-Druckersteuereinheit emuliert wird. Wenn diese Bits als 0010 codiert sind, zeigt dieser Wert an, daß ein Zielsystem-Zeitgeber oder eine Taktschaltung emuliert wird. Wenn die betreffenden Bits als 0111 codiert sind, zeigt dieser Wert in entsprechender Weise an, daß eine Zielsystem-Magnetbandsteuereinheit emuliert wird. Wenn die betreffenden Bits als 1000 bis 1111 codiert sind, werden diese Werte dazu benutzt anzuzeigen, daß die periphere Steuereinheit, die emuliert wird, als Spezialeinheit zu behandeln ist. Wenn ein Spezialeinheit-Code festgestellt wird, bewirkt, wie hier erläutert wird, der Emulator unverzüglich ein überspringen des Befehls auf den Emulatorstutzsatz ESP für die gesamte weitere Verarbeitung.
Das Bit 4 zeigt, wenn es auf den Binärwert 1 gesetzt ist, an, daß die periphere Steuereinheit kurzzeitig nicht verfügbar oder adressierbar ist. Wenn dieses Bit eine binäre 1 ist, ist das PCU-Belegungs-Bit (CB), das dem Bit 7 entspricht, ebenfalls auf eine binäre 1 gesetzt. Das Bit 5 ist ein KeinStatus-Bit, das als binäre 1 anzeigt, daß kein Status in den Bits 4 und 7 bis 13 dieses Eintrags vorhanden ist und daß die Bits 10 bis 15 einen wechselnden C2-Code enthalten, der den PCU-Tabelleneintrag angibt, in welchem die gewünschte Information untergebracht ist (in demselben Sektor). In diesem Fall sind die Bits 4 und 7 bis 11 für Software reserviert.
Wenn das Bit 5 auf den Binärwert 0 gesetzt ist, enthalten die Bits 4 und 7 bis 15 den Status. In sämtlichen Fällen sind
509828/0678
der Verschiebewert des Einrichtungs-Tabellenfeldes und des PCU-Typ-Feldes gültig, und das Bit 6 ist auf einen Binärwert 1 gesetzt. Wenn das Bit 7 auf einen Binärwert 1 gesetzt ist, zeigt dies an, daß das Zielsystem PCU, das emuliert wird, belegt ist. Die Bits 8 und 9 sind für eine Software-Benutzung reserviert, während die Bits 10 bis 15 einen wechselnden PCU- oder Unterbrechungs-Status angeben, und zwar in Abhängigkeit vom Zustand des Bits 5. Wenn das NS-Bit 5 eine binäre 1 ist, enthält dieses Feld insbesondere einen weiteren oder wechselnden C2-Code für den durch den Befehl bezeichneten Sektor. Dieser wechselnde C2-Code wird in derselben Weise verarbeitet wie der C2-Code des Befehls, um nämlich die Adresse des Tabelleneintrags zu erhalten," der eine Status-Information von Bedeutung enthält. Der Zweck dieser Anordnung besteht darin, periphere Steuereinheiten des Zielsystems emulieren zu können, die mehr als eine PCU-Adresse benutzen, da diese Steuereinheiten mehr als eine angeschlossene Einrichtung aufweisen, jedoch lediglich eine Eingabe/Ausgabe-Operation zu einem Zeitpunkt unterstützen oder steuern können {z.H. nicht gleichzeitig arbeitende Magnetband-Steuereinrichtungen, Kartenleser-Lochsteueranordnungen). Demgemäß sind zwei Einträge in der PCU-Tabelle vorhanden, die durch einen einzigen PCU-Code adressiert werden und die sich ein gemeinsames Belegungs-Status-Bit teilen, welches die zugehörigen Operationen mit den beiden Einträgen verbindet, wie dies im einzelnen erläutert wird.
Wenn das Bit 5 auf den Binärwert O gesetzt ist, enthält das Feld einen Unterbrechungs-Status, der wie folgt definiert ist: Die Bits 10 und 11 sind für Softwaregebrauch reserviert; das Bit 12 ist ein Steuereinheit-Unterbrechungsbit, das in dem
509828/0678
- 43 -
Fall, daß es gesetzt ist, anzeigt, daß die Steuereinheit-Unterbrechungsfunktion für die periphere Steuereinheit des fraglichen Zielsystems gesetzt ist; das Bit 13 ist ein Steuereinheit-Zulassungsbit, das als binäre 1 anzeigt, daß die PCU-Zulassungs-Unterbrechungsfunktion für die periphere Steuereinheit des Zielsystems eingeschaltet ist (das bedeutet, daß Unterbrechungen zugelassen sind); das Bit 14 ist ein Einrichtungs-Unterbrechungsbit, das als binäre 1 anzeigt, daß die Einrichtungs-Uhterbrechungsfunktion für die periphere Steuereinheit PCU des Zielsystems eingeschaltet ist (dies bedeutet, daß eine Einrichtungsunterbrechung gespeichert ist); das Bit 13 ist ein Einrichtungs-Unterbrechungs-Zulassungsbit, das als binäre 1 anzeigt, daß die Einrichtungs-Unterbrechungs-Zulassungsfunktion in der emulierten Steuereinheit eingeschaltet ist (d.h., daß Einrichtungs-Unterbrechungen zugelassen sind); die Bits 16 bis 31 sind schließlich Verschiebungsbits, die die Grundstelle der Einrichtungstabelle für die periphere Steuereinheit in bezug auf die Stelle festlegen, die durch den Inhalt des Basisadressregisters 4 bezeichnet ist.
Periphere Steuereinheit—Erweitemnprstabelle
Wie aus Fig. 6 hervorgeht, kann eine weitere Tabelle, die einer peripheren Steuereinheit-Erweiterungstabelle entspricht, unmittelbar oberhalb einer zu beschreibenden Einrichtungs-Tabelle untergebracht sein. Dabei sind zwei Typen von peripheren Steuereinheiten-Erweiterungstabellen vorhanden, eine für Zielsystem-Massenspeicher-Peripheriesteuereinheiten und eine für Magnetband-Peripherie Steuereinheiten, die emuliert werden. Ib allgemeinen bewirken die Tabellen die Speicherung der Status-Information zum Zwecke der Benutzung durch das
509828/0678
Wirtssystem, und zwar ohne ein direktes Gegenstück in dem Zielsystem oder dem Informationsspeicher, der in dem Zielsystem vorhanden ist. Außerdem ist kein unmittelbares Gegenstück in dem Wirtssystem vorhanden.
In Fig. 7d ist das Format der Massenspeicher-Periphenesteuereinheit-Erweiterungstabelle gezeigt. Eine derartige Tabelle existeiert für jede Zielsystem-Massenspeicher-Peripheriesteuereinheit, die emuliert wird. Wie aus Fig. 7d hervorgeht, enthält jede Tabelle vier abhängige bzw. aneinandergrenzende Worte; sie nimmt vier vorangehende Hauptspeicherworte ein und grenzt an dem Wort MO" der zugehörigen Einrichtungstabelle an, wie dies aus Fig. 6 hervorgeht. Im Unterschied zu anderen Tabellen ändern sich die Erweiterungs-Tabellen in der Größe, und zwar in Abhängigkeit von der Art der Steuereinrichtung. Aus Fig. geht dabei hervor, daß diese Tabellen an der Basis des festliegenden Teiles der Tabelle beginnen und daß die Adressen in einer entgegengesetzten Richtung verlaufen, und zwar soweit dies in Anpassung an die benötigten Größen erforderlich ist.
Jede Zielsystem-Massenspeicher-PCU-Erweiterungstabelle enthält ein 10-Zeichen-Adreßregister, welches eine Aufzeichnungsadressen und Status-Anzeigeglieder angebende Information speichert. Diese in dem Adreßregister gespeicherte Information wird in zehn abhängigen bzw. aufeinanderfol genden Bytes untergebracht, von denen Jeweils lediglich die sechs Bits niedriger Wertigkeit für diesen Zweck benutzt werden. Die Emulator-Software ESP lädt diesen Bereich auf einen Spezialbefehl hin, der als Lade-Adreßregister-PDT-Befehl bezeichnet ist. Die Emulator-Software überträgt anschließend eine Information in dem in Fig. 7d dargestellten Format zu dem Massen-
509828/0678
Speicher-Prozessor hin, und zwar als Teil des Eingabe/Ausgabe-Befehls.
Wie aus Fig. 7d hervorgeht, enthält der Bereich die folgende Information: a) Ein 6-Bit-Feld gibt die Zielsystem-Verknüpfungs-
an
adresse der Einrichtung], zu der von einem nachfolgenden Lese/ Sehreib-PDT-Befehl ein Zugriff erfolgt, welcher als Einrichtungsfeld angegeben ist; b) ein 6-Bit-Magazin-Feld, das eine Gruppe von Einrichtungen angibt, auf die durch einen nachfolgenden Lese/Schreib-PDT-Befehl ein Zugriff auszuführen ist (eine Einrichtungsadresse bezieht sich auf eine Einrichtung in dem adressierten Magazin); c) ein 12-Bit-Zylinder-Feld, das die Binäradresse eines Zylinders in der Einrichtung angibt, die durch die Einrichtungs- und Magazin-Felder bezeichnet ist; d) ein 12-Bit-Spur-Feld, das die Binäradresse der Spur angibt, auf die durch einen nachfolgenden Lese/Schreib-PDT-Befehl ein Zugriff zu erfolgen hat; e) ein 12-Bit-Aufzeichnungsfeld, das die Binäradresse einer durch einen nachfolgenden Such-PDT-Befehl zu suchenden Aufzeichnung angibt.
Wie aus Fig. 7d ersichtlich ist, enthält die Information zusätzlich zwei Status-Felder S1 und S2, die jeweils zwölf festgelegte Bits enthalten, um folgende Status-Information aufzunehmen. Das Bit 2 ist ein Unwirksamkeits-Bit, das im Binärzustand 1 anzeigt, daß die durch das Adreßregister bezeichnete Einrichtung unwirksam ist bzw. nicht zu arbeiten imstande ist. Die Bedingungen, die dieses Bit setzen, umfassen den Umstand, daß die Einrichtung im Off-line-Betrieb arbeitet, daß ein Hardware-Ausfall bzw. -Fehler in der Einrichtung ermittelt worden ist oder daß die Einrichtung nicht richtig angegeben worden ist. Das Bit 3 ist ein Einrichtungsfehler-
509828/0678
Bit, das im Binärzustand 1 anzeigt, daß ein Einrichtungsfehlerzustand bezüglich der durch das Adreßregister bezeichneten Einrichtung existiert. Ein Einrichtungsfehlerzustand existiert Jeweils dann, wenn durch einen Steuerbefehl, wie eine Suchoperation, versucht wird, die Lese/Schreib-Köpfe der Massenspeichereinrichtung auf eine Zylinderadresse einzustellen, die außerhalb der Zylinderadressierungsgrenzen für die fragliche Einrichtung liegt. Das Bit 4 ist ein Schutz-Verletzungs-Bit, das als binäre 1 anzeigt, daß ein Such- und Schreibbefehl ermittelt worden war, der die Schreib-Zu-Iassungsbedingungen verletzte, die von den Steuereinheit-Datei-Schutzschaltern und/oder dem Kopfteil-Kennzeichen der Aufzeichnung zugelassen waren, zu der ein Zugriff erfolgt ist. Das Bit 5 ist ein Lesefehlerbit, das als binäre 1 anzeigt, daß ein Lesefehler in dem letzten Lesebefehl ermittelt worden ist, der in dieser speziellen Einrichtung ausgeführt worden ist. Das Bit 6 ist ein Befehle-Unvollständigkeits-Bit, das als binäre 1 anzeigt, daß ein Befehl aus bestimmten angegebenen Gründen nicht beendet worden ist. Das Bit 7 ist ein Spur-Verbindungs-Auf zeichnungs-TLR- Bit, das als binäre 1 anzeigt, daß die letzte Aufzeichnung, auf die durch einen Such- und Lese/Schreib-Befehl Bezug genommen worden ist, eine Spur-Verbindungs-Auf zeichnung war. Das Bit 10 ist ein Format-Verletzungs-Bit, das in dem Fall, daß es auf eine binäre 1 gesetzt ist, bestimmte unzulässige Formatzustände bzw. Formatbedingungen anzeigt. Das Bit 11 ist ein Spur-Uberlauftfit, das als binäre 1 anzeigt, daß durch einen Lese/Schreib-Befehl versucht worden ist, auf einen Indexteil einer Spur Bezug zu nehmen. Die Bits 12 bis 15 sind Datei-Schutz-Bits, die solche Größen bzw. Datenworte angeben, wie sie in Fig.7d gezeigt sind.
509828/0678
Darüber hinaus enthält die PCU-Erweiterungstabelle 16 Mehrzweck-Statue-Bits, die von der Emulator-Software dazu herangezogen werden, bestimmte Steuerschalter zu simulieren, die in dem emulierten Zielsystem vorhanden sind (Schreib-Zulassungs-Schalter). Außerdem werden die betreffenden Bits für die Speicherung von verschiedenen Zielsystem-Anzeigegliedern benutzt.
Einrichtungstabelle
Eine weitere, in Fig. 6 enthaltene Tabelle ist eine Einrichtungs-Tabelle; dabei ist eine Einrichtungs-Tabelle pro periphere Steuereinheit des Zielsystems in dem emulierten System vorhanden. Jeder Eintrag in der Einrichtungs-Tabelle weist vier Informationsbytes auf, und ein Eintrag ist in der Tabelle für Jede, mögliche VerknUpfungs-Einrichtungs-Adresse vorgesehen, die von dem Zielsystemprogramm für einen bestimmten Typ der peripheren Steuereinheit bezeichnet werden kann. Das generelle Format eines Einrichtungs-Tabellen-Eintrags ist in Fig. 7e veranschaulicht. Wie aus Fig. 7e ersichtlich ist, enthält der Einrichtungs-Tabellen-Eintrag ein 16-Bit-Status-FeId, zu dessen Bits O bis 7 ein Zugriff sowohl von der Emulator-Firmenware als auch von der Software erfolgt. Die Bits 8 bis 15 sind für die Emulator-Softwarebenutzung reserviert; die betreffenden Bits sind einrichtungsspezifisch. Das Bit O ist insbesondere ein Zielsystemeinrichtungs-Belegungs-Bit, das als binäre 1 anzeigt, daß die in Frage stehende Einrichtung belegt ist. Anders ausgedrückt bedeutet dies, daß die Einrichtung kurzzeitig für die Auslösung einer neuen peripheren Operation nicht verfügbar ist, da sie sich gerade in dem Prozeß der Ausführung einer Operation befindet. Außerdem kann dieses Bit, wenn es auf eine
509828/0678
binäre 1 gesetzt ist, einen Einrichtungsfehlerzustand anzeigen. Die Bits 1 bis 6 sind "Ausnahme"-Test-Bits (XT1 bis XT6); diese Bits sind in einer einrichtungsspezifischen Yteise zugeteilt und ausgenutzt. Das Bit 7 ist ein Einrichtungs-Sprung-Bit, das als binäre 1 anzeigt, daß die Emulator-Firmenware für diese Einrichtung adressierte Befehle für die Emulator-Software festhält, und zwar für eine weitere Verarbeitung. Anders ausgedrückt heißt dies, daß ein Sprung- bzw. Festhalte-Aufruf zu der Emulator-Software (ESP) hin erfolgt. Die Bits bis 15 sind einrichtungsspezifische Status-Bits, und die Bits 16 bis 31 stellen ein Verschiebungsfeld dar, welches die Basisstelle der Einrichtungs-Erweiterungstabelle für die Einrichtung in bezug auf den Adresseninhalt des Basisadreßregisters 4 angibt.
In Fig. 7f ist ein spezielles Format für einen Massenspeichereinrichtungs-Tabellen-Eintrag gezeigt. Der Eintrag ist dabei wie folgt definiert. Das Bit O zeigt als binäre 1 an, daß die Einrichtung belegt ist, und zwar auf Grund einer Datenübertragung, einer Suchoperation oder auf Grund der Tatsache, daß sie nicht verfügbar ist. Das Bit 1 wird nicht benutzt, und das Bit 2 ist das die Nichtbetreibbarkeit der Einrichtung anzeigende Bit, das als binäre 1 anzeigt, daß die durch das Adreßregister bezeichnete Einrichtung nicht betreibbar ist. Die Massenspeichereinrichtung des Zielsystems wird in folgenden Fällen als nichtbetreibbar angesehen: die Einrichtung arbeitet im Off-line-Betrieb, d.h. rechnerunabhängig, ein Hardwarefehler ist in der Einrichtung ermittelt worden, oder die Einrichtung ist unrichtig "korrigiert" oder in das System "gewählt" worden. Das Bit 3 ist das Einrichtungsfehlerbit, das im Binärzustand 1 anzeigt, daß ein Einrichtungsfehlerzustand bezüglich der durch das Adreßregister bezeichneten
509828/0678
Einrichtung existiert. Wie zuvor erwähnt, existiert ein Einrichtungsfehlerzustand in einer Massenspeichereinrichtung Jeweils dann, wenn ein Suchbefehl versucht, die Lese/Schreib-Köpfe auf eine Zylinderadresse außerhalb der Zylinderadressengrenzen einzustellen. Das Bit 4 ist ein Varianten-Sprungbit, das als binäre 1 anzeigt, daß unzulässige oder nicht genau angegebene Varianten bestimmter Zielsystem-Eingabe/Ausgabe-Steuerbefehle (periphere Steuer- und Verzweigungsbefehle) durch die Emulator-Firmenware zu überspringen bzw. festzuhalten sind und daß ein Aufruf zu der Emulator-Software hin erfolgt. Das Bit 5 ist ein allgemeines Ausnahme-Bit, das als binäre 1 anzeigt, daß ein Ausnahmezustand (wie er durch die DI-, DE-, II- ect. Bits definiert ist) während des letzten Datenübertragungsbefehls ermittelt worden ist, der zu der durch das Adreßregister bezeichneten Einrichtung hin geleitet worden ist. Das Bit 6 ist ein "Spur —Verbindungs"-Äufzeichnungsbit, das als binäre 1 anzeigt, daß die letzte gesuchte und erfolgreich geschriebene/gelesene Aufzeichnung eine Spur-Verbindungs-Aufzeichnung war. Das Bit 7 ist ein Sprungbit, das stets auf eine binäre O im Falle einer Massenspeichereinrichtung gesetzt ist. Das Bit 8 ist ein eingestelltes Aus-Bit, das in dem Fall, daß es auf eine binäre 1 gesetzt ist, anzeigt, daß die Einrichtung nicht ausgewählt oder in dem Steuerfeldschalter des Zielsystems nicht "eingestellt" worden ist. Das Bit 9 ist ein die NichtVerfügbarkeit betreffendes Bit, das von der Emulator-Software dazu herangezogen wird, zu bestimmen, ob die in Frage stehende Einrichtung eine periphere Operation ausführt oder ob sie infolge ihrer Nichtbetreibbarkeit belegt ist (die Bits O bis 9 werden zur Vornahme dieser Bestimmung benutzt). Die Bits 10 bis 15 sind für Softwaregebrauch reserviert, und die Bits 16 bis
509828/0678
stellen ein Verschiebungsfeld dar, welches die Verschiebung in bezug auf den Inhalt des Basisadreßregisters 4 der zugehörigen Einrichtungserweiterungstabelle für die Einrichtung enthält.
Beendigungs- und Einrichtungs-Erweiterungs-Tabellen
Die letzten beiden Typen von Tabellen, die in Fig. 6 enthalten sind, entsprechen einer Beendigungs- bzw. Abschluß-Tabelle und einer Einrichtungs-Erweiterungs-Tabelle. Zu der Beendigungs-Tabelle erfolgt ein Zugriff über eine Beendigungs-Eintragzeiger-Tabelle (TEPT). Die TEP-Tabelle enthält 128 Zwei-Byte-Einträge, die Verknüpfungseinrichtungszahlen (LDNS) O bis 127 darstellen. Jeder Eintrag ist entweder "Null", was einer nicht vorhandenen LDN-Zahl entspricht, oder "Eins", was einer Einrichtung entspricht, die dem Emulator nicht zugeteilt ist. Es ist aber auch möglich, daß der Jeweilige Eintrag einen Indexwert enthält, der bei Addition zu dem Wert des Basisregisters 4 auf den Anfang des Beendigungs-Tabelleneintrags hinzeigt, der der LDN-Zahl zugehörig ist. Die Verknüpfungseinrichtungszahl (Name) ist eine 16-Bit-Binärzahl, die der jeweils angeschlossenen Wirtssystemeinrichtung zugeteilt ist. Diese Nummer bzw. Zahl wird anschließend von der Emulator-Software in einen Eingabe/Ausgabe- "Steuerblock" geladen, und zwar jeweils dann, wenn ein "Kanalprogramm" für die in Frage stehende Einrichtung gebildet worden ist.
Der Inhalt eines Beendigungs-Tabellen-Eintrags ist in Fig. 7h gezeigt. Wie ersichtlich, enthält der betreffende Eintrag ein 16-Bit-Feld, das als RWC-Zeiger dient. Der in diesem Feld gespeicherte Wert zeigt bei Addition zu dem Basisregister 4
509828/0678
zu dem RWC-Eintrag in der RWC/PCU-Tabelle hin, die dem gegenwärtigen Befehl zugehörig ist. Der betreffende Wert wird durch den Zielsystem-nProzeßn auf jegliche Eingabe/Ausgabe-Befehle hin aktualisiert, die einen Lese/Schreib-Kanal betreffen, der "belegt" worden ist.
Ein zweites, in dem Beendigungs-Tabellen-Eintrag enthaltenes Feld ist ein 16-Bit-CPU-Zeigerfeld. Der in diesem Feld enthaltene Wert liefert in dem Fall, daß er zu den Bits des Inhalts des Basisadreßregisters 4 hinzuaddiert wird, die Adresse des CPU-Eintrags für diese Einrichtung. Ein weiteres, als Teil des Wortes Eins enthaltenes Feld ist ein 16-Bit-PCU-Erweiterungs-Zeigerfeld. Der in diesem Feld enthaltene Wert liefert in dem Fall, daß er zu dem Inhalt des Basisadreßregisters 4 hinzuaddiert wird, die Adresse des PCU-Erweiterungs-Eintrags für diese Einrichtung. Ein weiteres Feld des Wortes Eins ist ein Einrichtungs-Tabellenzeiger. Der in diesem Feld enthaltene Wert zeigt auf den Einrichtungs-Tabelleneintrag, der den Zielsystem-Status für diese Einrichtung enthält. Das erste Feld des Wortes Zwei ist ein 16-Bit-Zielsystem-Verknüpfungsname-Feld. Dieses Feld ist der Zielsystem-Name, und zwar ausgedrückt in Form von "XN", wobei X ein alphanumerisches Zeichen ist, welches den Sektor und die Prozeßsteuereinheit kennzeichnet, und wobei N ein numerischer Zifferncode ist, der die Einrichtung kennzeichnet. Die Worte Drei und Vier des Eintrags enthalten Einrichtungstyp/ Untertyp/Einrichtungs-Nummernfeider. Diese Felder besitzen eine Länge von fünf Zeichen; sie kennzeichnen die emulierten externen Namen. Außerdem enthält das Wort Vier ein 3-Bit-Sektor-Codefeld, welches den Zielsystem-Sektorcode angibt.
509828/0678
Schließlich enthält das Wort Vier ein Einrichtungs-Bereitschafts-Bit, welches den Status der emulierenden Einrichtung angibt.
In Fig. 7g ist der Typ der Einträge gezeigt, die innerhalb eines Typs der Erweiterungs-Tabelle auftreten, die der Massenspeicher-Erweiterungs-Tabelle gemäß Fig. 6 entsp rieht. Im allgemeinen dienen Einrichtungs-Erweiterungs-Tabellen ähnlichen Zwecken wie die oben beschriebenen PCU-Erweiterungs-Tabellen. Aus Fig. 7g dürfte dabei ersichtlich sein, daß die Massenspeicher-Einrichtungs-Erweiterungs-Tabelle 23 Worte aufweist, die sich ändernde Informationsarten enthalten. Diese Informationen können die Form einer Adresseninformation, einer Steuerinformation, einer detaillierten Einrichtungsstatus-Information und einer Eingabe/Ausgabe-Steuereinrichtung-Nachrichteninformation haben. Diese Tabelle wird lediglich insoweit erläutert, als dies die vorliegende Erfindung betrifft; sie ist lediglich der Vollständigkeit halber mit aufgenommen. Es dürfte ersichtlich sein, daß der Typ der in einer Einrichtungs-Erweiterungs-Tabelle gespeicherten Information sich ändert in Abhängigkeit von der Einrichtung.
Beschreibung des Betriebs einer bevorzugten Ausführungsform
Unter Bezugnahme auf die Fig. 1 bis 7h sowie auf Fig. 11 und auf die Flußdiagramme gemäß Fig. 8a bis 8i, 9a bis 9h und Fig. 10 wird nunmehr die Arbeitsweise des Emulatorsystems gemäß der vorliegenden Erfindung näher erläutert, und zwar zunächst in Ausdrücken betreffend die Verarbeitung eines Eingabe/Ausgabe-Peripheriedatenübertragungs-(PDT)-Befehls, der in einem Zielsystemprogramm enthalten ist. Wie erwähnt,
509828/0678
bewirkt dieser Befehl, wenn er in dem Zielsystem ausgeführt wird, eine übertragung von Datenzeichen zwischen einem Bereich des Hauptspeichers und einer peripheren Einrichtung bzw. Peripherieeinrichtung.
Aus Fig. 8a geht hervor, daß zunächst ein Befehl abgerufen oder ausgeblendet bzw. extrahiert wird. Tatsächlich ruft die Befehlsabrufeinheit IFU gemäß Fig. 1c Befehle im Voraus ab, um einen bestimmten Wert einer "Vorschau" im Zuge der Verarbeitung zu erzielen* Die abgerufenen Befehle werden in einem Befehlspuffer 203-1 gespeichert, und danach an die QA- und QB-Busleitungen abgegeben. Vie in Fig. 8a angegeben, wird die Operationscode-Adresse in dem Mehrzweckregister 7 des Hauptspeichers gespeichert. Darüber hinaus berechnet die Adressensteuereinheit 101-2 die erforderlichen absoluten Adressen und speichert sie in dem AC-Register 206-3 der Wort-Rechen- und Verknüpfungseinheit gemäß Fig. 2b. Darüber hinaus wird das in dem Befehlspuffer 203-1 enthaltene Varianten-Zeichen in dem in Frage kommenden Register der Rechen- und Verknüpfungseinheit ALU gespeichert; dieses Register entspricht dem EV-Register 202-82 in Fig. 2c. Zu diesem Zeitpunkt führt der Steuerspeicher gemäß Fig. 2a eine Verzweigung auf die Bits des Operationscode des Befehles hin aus und tritt in die Haupt-Routine ein, wie dies in Fig. 8a und 10 veranschaulicht ist.
Aus Fig. 6 und 11 geht hervor, daß die Zielsystem-Eingabe/Ausgabe-Befehle eine Vielzahl von unterschiedlichen Formaten anzunehmen vermögen. Im allgemeinen besitzt der PDT-Befehl eines Zielsystemprogramms ein solches Format, daß ein Operationscodezeichen, ein/mehrere A-Adressenzeichen und
509828/0678
eine Anzahl von Steuerzeichen C1 bis CN vorhanden sind. Wie in dem oben angegebenen Programmierungsmanual und dem oben angegebenen US-Patent beschrieben, bewirkt der PDT-Befehl, daß Datenzeichen zwischen einer peripheren Einrichtung und einem Hauptspeicherbereich des Zielsystems übertragen werden, dessen am weitesten links stehende Stelle durch die A-Adresse bezeichnet ist. Wenn die Befehlsabrufeinheit 101-3 einen Befehl abruft, ruft sie zunächst das Operationscodezeichen, die A-Adressen-Zeichen und ein erstes Steuer- oder Varianten-Zeichen (das ist das C1-Zeichen) des Befehls ab bzw. auf. Die Anzahl der in der Α-Adresse enthaltenen Zeichen hängt von dem Zeichenbetrieb ab, der von dem Programmierer gewählt worden ist (siehe Programmanual). Die Befehlsabrufeinheit 101-3 ist so ausgelegt, daß sie ihren Betrieb beendet, nachdem sie das erste Varianten-Zeichen extrahiert oder abgerufen hat. Dies bedeutet, daß die Befehlsabrufeinheit 101-3 Formatprüfschaltungen (nicht gezeigt) enthält, die auf das PDT-Befehls-Operationscodezeichen hin die Befehlsextraktion beenden, wenn das erste Varianten-Zeichen extrahiert worden ist. Mit anderen Worten ausgedrückt heißt dies, daß die Befehisabrufeinheit IFU 101-3 annimmt, daß ein vollständiger Zielsystem-Befehl lediglich einen Operationscode, eine Α-Adresse und ein erstes Varianten-Zeichen enthält.
Der bestimmte Operationscode, der zuvor den Steuerspeicher veranlaßt hatte, eine Verzweigung zu einem bestimmten Punkt hin vorzunehmen, an dem Mikrobefehle ausgelesen und decodiert wurden, legt die verschiedenen Einheiten der Zentraleinheit für die Emulation fest. So erzeugen z.B. die decodierten Mikrobefehle linterbefehlssignale, die das Emulationsbetrieb-Flipflop und das ACU-Steuerungs-Flipflop 202-49 des Byte-Addierers 206-50 bzw. der Adressensteuereinheit 101-2 in
509828/0678
den BinJBrzustand 1 setzen. Das Emulationsbetrieb-(EMM)-Flipflop veranlaßt im Binärzustand 1 die Befehlsabrufeinheit 101-3, die erforderlichen FormatprUfungen auszuführen und Ausnahmen zu verarbeiten, die die Speicherung, der Statusinformation ermöglichen, welche anzeigt, daß/die Zentraleinheit ein Zielsystem auf das Auftreten einer Ausnahme hin emuliert wird. Das Adressensteuereinheit-(ACU)-Steuerungs-Flipflop veranlaßt im Binärzustand 1 die Adressensteuereinheit 101-2, daß die Datenauswahlschaltung 202-34 veranlaßt wird, Daten in den URF-Bereich zu laden, und zwar in einem Format, das vereinbar ist bzw. Übereinstimmt mit dem Zeichenoperationsbetrieb des Zielsystems.
Aus Fig. 8a geht hervor, daß auf die Extraktion hin die Emulator-Software ESP verschiedene Register in den Einheiten der Zentraleinheit auf Werte voreinstellt, die die betreffenden Einheiten normalerweise enthalten wurden, wenn ein Zielsystem mit einer ProgrammausfUhrung beginnt. Der Prozeßsteuerblock (PCB) gemäß Fig. 4 enthält z.B. die in den Basisadreßregistern BRO bis BR7 enthaltenen Werte, die auf unterschiedliche Segmente zeigen, welche von der Emulator-Firmenware benutzt werden. Wie zuvor erwähnt, zeigt das Register BR2 auf den Anfang des Zielsystem-Hauptspeichers, das Register BR3 zeigt auf den Beginn des Zielsystem-Steuerspeichers, und das Register BR4 zeigt auf den Anfang der Eingabe/Ausgabe-Tabellen. Wie oben beschrieben, enthalten diese Tabellen die zuvor durch die Emulator-Software ESP geladene Information, und zwar auf der Basis der Information, die der betreffenden Software zugeführt worden ist und die die Zielsystem-Eingabe/Ausgabe-Konfiguration festlegt. Diese Operationen finden während einer Initialisierungsphase statt. Darüber hinaus lädt die
509828/0678
25ÜU006 -56-
Emulator-Software verschiedene Register des URF-Bereichs gemäß Fig. 2e mit der aus dem Prozeßsteuerblock PCB gemäß Fig. 1b abgeleiteten Information. Diese Werte entsprechen jenen Werten, die in dem Neuzuordnungs-Register (BRO), den Indexregistern, den Sperregistern, dem Ablaufzähler (UW1) sowie den AC- und BC-Registern (UW1 und UW6) gespeichert sind. Diese Werte werden zum Abruf der Information aus dem Hauptspeicher während der Verarbeitung eines Eingabe/Ausgabe-Befehls benutzt. In diesen Registern enthaltene Werte werden aktualisiert und in dem LSM-Bereich der örtlichen Speichereinheit 101-7 gespeichert.
Am Ende der Extraktion hat somit die Zentraleinheit eine Firmenware-Ablauffolge ausgeführt, die für die Verarbeitung sämtlicher Zielsystembefehle gemeinsam ist, und zwar unter Verwendung eines Ablaufzählerwertes, der in den Hauptspeicher übertragen worden ist, um einen Operationscode, A-Adressenzeichen und ein erstes Varianten-Zeichen des Befehls zu extrahieren. Außerdem wird die Zentraleinheit die effektive Adresse des Befehls berechnet haben. Schließlich wird die betreffende Zentraleinheit das Operationscodezeichen des PDT-Befehls überprüft haben, um zu ermitteln, wie der Befehl auszuführen ist. Der Ablaufzähler bzw. Folgesteuerungszähler und der AC-Zähler werden aktualisiert sein, und außerdem werden sie dazu herangezogen, den Befehl herauszuholen und die Arbeits-AC-Adresse zu indizieren und zu bilden.
Da die Zentraleinheit tatsächlich mit der Verarbeitung des Befehls beginnt, werden die Inhalte der verschiedenen LSM-Registerspeicherstellen solange nicht aktualisiert, bis die eigentliche Ausführung des PDT-Befehls ausgelöst ist. Während
509828/0678
der Extraktionsphase nimmt die Zentraleinheit nicht auf das Basisadreßregister 4 Bezug, welches auf die Eingabe/Ausgabe-Tabellen hinzeigt. Die Zentraleinheit benutzt jedoch den Inhalt des Basisadreßregisters 2, um den Eingabe/Ausgabe-Befehl aus dem Hauptspeicher abzurufen. Das 6-Bit-Operationscodezeichen, das abgerufen und in der Befehlsabrufeinheit 101-3 gemäß Fig. 1c gespeichert ist, wird dazu herangezogen, die Verzweigungs-Testverknüpfungsschaltungen gemäß Fig. 2a zu konditionieren. Insbesondere werden dabei die Bits des Operationscodes an eine 6Afache Verzweigungen überprüfende Prüfschaltung abgegeben, die einen ersten Mikrobefehl innerhalb einer Folge von Mikrobefehlen auswählt, die in dem Steuerspeicherfeld enthalten sind, und zwar für die Emulierung dieses Typs von Befehl.
Aus Fig. 8a geht hervor, daß die Firmenware zunächst bestimmte Überprüfungen ausführt, wie eine Startadressenprüfung (SAC). Diese Prüfung legt fest, wann der Speicherschutz im Falle einer Adressenverletzung wirklich vorhanden ist. Unter der Annahme, daß keine Adressenverletzung vorliegt, gelangt die Firmenware sodann in eine Initialisierungsroutine, in der bestimmte Register gelöscht werden, die für den "Abruf" der Emulator-Software ESP benutzt werden. Dies beendet erforderlichenfalls die Verarbeitung des Zielsystembefehls. Normalerweise umfaßt dies das Löschen der Inhalte unterschiedlicher Registerspeicherplätze des LSM-Speichers gemäß Fig. 2d auf Nullen. Demgemäß bewirkt die Firmenware über den Mikrobefehl 102-104, daß das in dem AC-Register 206-3 der Wort-Rechen- und Verknüpfungseinheit 206-1 gespeicherte Operationscodezeichen in das örtliche Register 207-9 des LCM-Speichers gemäß Fig. 2c geladen und sodann in den Speicherplatz GRC
B09828/0678
geschrieben wird. Wie in *'ig. 10 dargestellt, wird insbesondere der PDT-Operationscodewert "36" zu dem AG-Register 206-88 gemäß Fig. 2c übertragen. Von diesem Register wird der betreffende Wert in das AF-Register 206-12 gemäß Fig. 2b geladen, und zwar über die SFS-Auswahlschaltung 206-14. Das Operationscodezeichen wird an die QA-Busleitung abgegeben und in das örtliche Register 207-9 geladen und sodann in den Speicherplatz GRC eingeschrieben, der durch den Inhalt des Adreßregisters 207-2 angegeben ist.
RWC-Testroutine
Wie aus Fig. 8a und 10 hervorgeht, tritt die Firmenware in eine RWC-Status-Testroutine gemäß Fig. 8b ein. Diese Routine ist in Fig. 9a im einzelnen dargestellt. In Fig. 9a sind dabei die Operationen veranschaulicht, die ausgeführt werden, um auf den in Frage kommenden Eintrag Bezug zu nehmen, der in der RWC-Tabelle gespeichert ist. Hierzu wird das C1-Varianten-Zeichen als "Indexwert" benutzt. Zunächst setzen die Mikrobefehle 100-102 auf ihre Ausführung hin das 6-Bit-C1-Varianten-Zeichen in ein 8-Bit-Zeichen (C1Q) um. Dieser Wert
wird dann zu der absoluten Startadresse der Eingabe/Ausgabe-Tabellen hinzuaddiert, im folgenden als "Basiswert" bezeichnet. Dies bedeutet, daß der Mikrobefehl 103 zunächst das C1-Zeichen von dem AF-Register über die QA-Busleitung zu dem AC-Register hin überträgt. Anschließend wird der Versetzungswert für die Eingabe/Ausgabe-Tabelle aus dem Speicherplatz Nr. 2 des URF-Bereiches (BR2) abgerufen und in dem UN-Register 202-54 gespeichert, während die Segment-Nummer (STN, STE) in das US-Register 202-7 übertragen wird.
509828/0678
Der Mikrobefehl 104 bewirkt, daß der Versetzungswert in den Arbeitsspeicherplatz UW5 des URF-Bereiches eingeschrieben wird und daß das verschobene C1-Zeichen in das AC-Register 206-3 geladen wird. Außerdem wird der Speicherplatz UW5 durch die Auswahlschaltung 202-38 ausgewählt, und die Segmentbasis aus dem Puffer 202-5 wird in das UN-Register 202-54 geladen. Der Mikrobefehl 103 bewirkt, daß die durch den Addierer 202-50 gebildete Summe aus der Basis und der Versetzung in den Arbeitsspeicherplatz UW5 über die Auswahlschaltung 202-34 eingeschrieben wird. Nunmehr enthält der Arbeitsspeicherplatz UW5 den berechneten "Basiswert". Der Basiswert wird ferner dem Addierer von der USB-Auswahlschaltung 202-38 zugeführt, und das verschobene C1-Zeichen wird über die QA-Busleitung in das UN-Register 202-54 geladen.
Die durch den UBO-Addierer 202-50 gebildete Summe wird in das Ausgaberegister 202-52 geladen. Dieser Wert wird dazu herangezogen, den bestimmten RWC-Tabellen-Eintrag abzurufen, der durch das C1-Zeichen angegeben ist.
Der Mikrobefehl 106 erzeugt ein Signal MMGOP, welches den Hauptspeicher-Schnittstellenschaltungen signalisiert, daß ein Speicheroperationszyklus zu beginnen ist, um den Inhalt des bezeichneten Speicherplatzes abzurufen. Der aus dem Hauptspeicher abgerufene Inhalt stellt einen 4-Byte-Eintrag dar, der in das DN-Register 201-1 gemäß Fig. 1c geladen und danach an den Wort-Addierer 206-1 abgegeben wird. Der Mikrobefehl 108 stellt die Verschiebeschaltung 206-30 derart ein, daß eine Verschiebung nach links um vier Bitstellen erfolgt. Der RWC-Eintrag-Inhalt des DN-Reglsters 201-1 wird dann in das AC-Register 206-3 geladen und in den Speicherplatz 30 des LSM-Speichers eingeschrieben. Wie in Fig. 8b und 9a angegeben,
B0982Ö/0678
läuft die Firraenware dann weiter, um den RWC-Zählercode zu überprüfen und damit festzustellen, ob er unzulässig ist. Dies wird dadurch bewirkt, daß der Zustand des Bits hoher Wertigkeit überprüft wird. Ist das betreffende Bit auf eine binäre 1 gesetzt, so bedeutet dies, daß der RWC-Zählercode unzulässig ist, um in dem betreffenden Zielsystem verwendet zu werden. Dies veranlaßt den Steuerspeicher, einen bestimmten Code (das ist "11111") in das AG-Register 206-88 abzugeben. Dieser Code ist ein Betriebsklassennummern-(SCN)-Code, der der Software ESP signalisiert, daß der RWC-Zählercode unzulässig ist. Der vollständig aus Einsen bestehende SCN-Code wird später in einen Teil des Speicherplatzes GR12 des LSM-Speichers eingeschrieben, wie dies in Fig. 4 veranschaulicht ist. Außerdem ist auch die übrige Information enthalten, so daß die Software ESP den in der Folge nächsten Befehl ausführen kann. So wird z.B. der Ablaufzähler SC derart eingestellt sein, daß die Adresse des Operationscodes des nächsten Befehls angezeigt wird; der Varianten-Teil des Speicherplatzes GRO enthält das C1-Varianten-Zeichen des Eingabe/Ausgabe-Befehls, während der Speicherplatz GR12 das Operationscodezeichen des Befehls enthält. Die übrigen Speicherplätze enthalten eine Information, die anfänglich durch die Software ESP in diese Speicherplätze geladen worden ist (z.B. die INA-, INB-, INC-, BC- und AC-Bereiche, etc.). Noch weitere Speicherplätze werden derart modifiziert, daß sie eine zusätzliche Statusinformation enthalten, wenn der Eingabe/Ausgabe-Befehl weiter verarbeitet worden ist. Wie hier erläutert wird, werden diese Operationen von einer Eingabe/Ausgabe-Betriebsroutine ausgeführt.
509828/0678
Der obige Test wird unter Bezugnahme auf Fig. 9a im einzelnen betrachtet werden. Die in dem AC-Register gespeicherte, aus der RWC-Tabelle abgerufene Information besitzt ein Format, wie es in Fig. 7a angegeben ist. Auf die Mikrobefehle 110 bis 112 hin werden die Inhalte des AC-Registers ausgerichtet, und zwar dadurch, daß sie nach links verschoben werden. Dies ermöglicht die Auswahl und Übertragung der RWC-Eintrag-Bits bis 11 von dem AD-Register 206-5 zu dem AB-Register 206-58 zum Zwecke der Überprüfung. Wie ferner angegeben, enthält das AC-Register 206-3 bei der Beendigung des Mikrobefehls die Sektorcodebits 13 bis 15, die um zwei Stellen nach links verschoben sind. Der Mikrobefehl 113 führt auf seine Ausführung zur Erzeugung von Signalen, die das EXT-Bit 12 aus dem AD-Register 206-5 in die Bitstelle 7 des AB-Registers 206-58 laden, und zwar über die SDS-Auswahlschaltung 206-66. Der Inhalt des SD-Zählers 206-60 wird ferner zu dem betreffenden Zeitpunkt durch die Schaltung 206-61 um 1 erhöht. Darüber hinaus wird der Speicherplatz GRC des LSM-Speichers adressiert, und der Inhalt des betreffenden Speicherplatzes wird in das örtliche LY-Register 207-9 ausgelesen. Aus Fig. 3 und 4 geht hervor, daß der GRC-Speicherplatz dem Speicherplatz GR12 entspricht, der das SCN-Codefeld enthält. Der Mikrobefehl bewirkt ferner, daß der Sektorcode in das AD-Register 206-5 übertragen wird.
Der Mikrobefehl 114 veranlaßt auf seine Ausführung hin den Byte-Addierer 206-50 eine Verknüpfungs-Produkt-Operation auszuführen, gemäß der verschiedene Bitstellen des AB-Register s 206-58 maskiert bzw. ausgeblendet werden, um den Zustand bestimmter Bitpositionen überprüfen zu können. Der Zustand der Bitposition 2 des AB-Registers 206-58, welche
509828/0678
250U006 "62~
dem ersten Bit des Zählercodes entspricht, wird durch den Mikrobefehl 114 überprüft. Das Ergebnis des Testes veranlaßt den Steuerspeicher, entweder auf den nächsten Mikrobefehl vorzurücken oder auf den Mikrobefehl 134 hin eine Verzweigung vorzunehmen. Wenn der Test positiv ausfällt, führt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 134 hin aus. Dies signalisiert, daß der RWC-Zählercode unzulässig ist. Der Mikrobefehl 134 gibt auf seine Ausführung hin einen insgesamt aus Einsen bestehenden Code in das AG-Register 206-88 ein; dieser Code wird anschließend in den Speicherplatz GRC des LSM-Speichers eingeschrieben.
Wie aus Fig. 9a hervorgeht, wird als nächster Mikrobefehl der Mikrobefehl 115 ausgeführt; er veranlaßt, daß der Sektorcodeinhalt des AD-Registers 206-5 über die SDS-Auswahlschaltung 206-66 in das AB-Register 206-58 geladen wird. Außerdem führt der betreffende Mikrobefehl einen bestimmten Konstanten-Code aus dem Steuerspeicher in das AG-Register 206-88 ein, so daß die Bits in dem AB-Register 206-58 ausgeblendet werden, um den Zustand der Bitstelle 7 zu überprüfen, die das EXT-Bit enthält. Der Mikrobefehl 116 bewirkt, daß die Sektorcodebits in das AG-Register 206-88 von der Byte-Addierer-Ergebnis-Busleitung ARB her geladen werden, während das AF-Register 206-12 gelöscht wird, so daß in ihm Nullen enthalten sind. Der Mikrobefehl veranlaßt ferner die Steuerspeicher-Testschaltungen, eine 2-Weg-Verzweigungsoperation auf der Grundlage des Zustande des EXT-Bits 12 des RWC-Eintrags hin auszuführen.
Wie erwähnt, gibt das EXT-Bit an, ob das bestimmte Zielsystem, das emuliert wird, eine erweiterte Eingabe/Ausgabe-Fähigkeit besitzt. Dies bedeutet, daß der durch den Eingabe/Ausgabe-
509828/067
Befehl festgelegte Sektorcode nicht ohne weiteres in einen Code übersetzt werden kann, der einen bestimmten Sektor angibt. Demgemäß legt der Zustand des EXT-Bits 12 fest, ob der RWC-Code durch die erweiterte Eingabe/Ausgabe-Eigenschaft bzw. -Fähigkeit beeinflußt wird. Es sei darauf hingewiesen, daß das erweiterte Eingabe/Ausgabe-Bit den Zustand der Status-Anzeigeglieder darstellt, die den Zielsystemen zugehörig sind. In einem Zielsystem wird dieses Anzeigeglied unter Programmsteuerung ein- und ausgeschaltet.
Wenn das EXT-Bit eine binäre O ist, wird der RWC-Code als unterschiedlicher RWC-Code behandelt, wie dies hier erläutert wird. Wenn das EXT-Bit 12 jedoch eine binäre 1 ist, wird es in einer anderen Weise behandelt, indem der Inhalt des zuvor abgerufenen RWC-Tabelleneintrags herangezogen wird. Wenn das erweiterte Eingabe/Ausgabe-Bit 12 eine binäre O ist, bewirkt im einzelnen der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 132,, gefolgt yon dem Mikrobefehl 133; dadurch wird das Bit hoher Wertigkeit des in dem EV-Register 206-82 gespeicherten C1-Zeichens auf eine binäre 1 gesetzt. Wie aus Fig. 8b und 9a ersichtlich ist, kehrt der Steuerspeicher sodann auf den Mikrobefehl 100 zurück und beginnt wieder mit der Indizierung in der RWC-Tabelle unter Verwendung des modifizierten C1-Varianten-Zeichens. Der aus der RWC-Tabelle abgerufene Eintrag besitzt ebenfalls das in Fig. 7a gezeigte Format. Die Codierung eines derartigen'Eintrags ändert sich jedoch entsprechend der Forderung durch den bestimmten Typ des Zielsystems, das emuliert wird. So gibt z.B. eine derartige Codierung unterschiedliche Zeitfach-Ausblendcodes, etc. an.
309828/0678
Unter der Annahme, daß ein gültiger RWC-Tabelleneintrag verarbeitet worden ist und daß das EXT-Bit 12 getestet worden ist, führt der Steuerspeicher nunmehr den Mikrobefehl 117 aus. Wie aus Fig. 9a ersichtlich ist, bewirkt dies, daß der Sektorcodeinhalt des AG-Registers 206-88 über die SFS-Auswahlschaltung 206-14 in das AF-Register 206-12 geladen wird. Außerdem bewirkt dies, daß eine Konstante "01" von dem Steuerspeicher in das AG-Register 206-88 geladen wird und daß die Schaltung 206-18 den Inhalt des SE-Zählers 206-16 um 1 verringert. Auf den Mikrobefehl 118 hin wird der Konstanten-Inhalt des AG-Registers 206-88 in das AF-Register 206-12 geladen. Dieses Register speichert nunmehr einen Wert, der dem zweimal nach links verschobenen Sektorcode zuzüglich einem Wert von 256 entspricht. Die Schaltung 208-18 erhöht den Inhalt des SE-Zählers 206-16 um 1, und ferner wird eine Konstante aus dem Steuerspeicher in das AG-Register 206-88 geladen, um die Zielsystem-RWC-Belegungs-Statusinformation aus dem Speicherplatz 77o d©r RWC-Tabelle gemäß Fig. 6 abzurufen. Auf den Mikrobefehl 119 hin werden die Sektorbits aus der Tabelle in dem "Sektorcode"-Speicherplatz UW2 des URF-Bereiches gemäß Fig. 2b kurzzeitig gespeichert.
Der Mikrobefehl 120 lädt auf seine Ausführung hin den Inhalt des AG-Registers 206-88 in das AF-Register 206-12, während der Mikrobefehl 121 die weitere Übertragung der Adresse aus dem AF-Register 206-12 in das UN-Register 202-54 bewirkt. Außerdem ist das Adreßregister des LSM-Speichers auf den Adressenspeicherplatz 30 eingestellt. Der Mikrobefehl 122 bewirkt, daß der "Basiswert" der Eingabe/Ausgabe-Tabellen in den Addierer 202-50 geladen wird, und zwar aus der Arbeitsspeicherstelle UW5 des URF-Bereiches 202-20. Die resultierende
&09828/0678
Adresse, die dem Speicherplatz 77g entspricht, wird zusammen mit dem Speichersignal MMGOP zu dem Hauptspeicher hin geleitet. Während desselben Zyklus wird der RWC-Eintrag aus dem Speicherplatz 30 in das AC-Register 206-3 geladen.
Wie zuvor erwähnt, enthält der Speicherplatz 77Q der RWC-Tabelle den RWC-Belegungs-Status des Zielsystems des verarbeiteten Programms. Wie in Fig. 6 angegeben, speichern die Bits niedriger Wertigkeit des Speicherplatzes 77g Werte, die den gegenwärtigen Belegungsstatus sämtlicher Zielsystem-Lese/ Schreib-Kanäle (RWC) angeben. Diese Bits entsprechen dem emulierten RWC-Belegungs-Ausblendfeld gemäß Fig. 7a. Im Unterschied dazu gibt das RWC-Belegungs-Ausblendfeld des RWC-Eintrags die bestimmten Lese/Schreib-Kanäle wieder, die dieser bestimmte Befehl zu benutzen wünscht, um die bestimmte Eingabe/Ausgabe-Operation auszuführen. Die diese beiden Werte benutzende Firmenware prüft, ob die Eingabe/Ausgabe-Operation in dem bestimmten Zielsystem ausgeführt sein könnte. Wie Fig. 8b angibt, wird dieser Test dadurch ausgeführt, daß eine UND-Verknüpfung der 16 Bits niedriger Wertigkeit aus dem RWC-Tabelleneintrag (RWC —Belegungs-Ausblendung) bezüglich des RWC-Codes und der vergleichbaren 16 Bits durchgeführt wird, die aus dem Speicherplatz 77g der Eingabe/Ausgabe-Tabelle abgerufen werden. Sodann wird überprüft, ob das Ergebnis der Verknüpfungsfunktion Und Null ist. Ist das betreffende Ergebnis 0, so bedeutet dies, daß die bestimmte Operation ausgeführt werden kann. Sodann läuft die Verarbeitung weiter.
Aus Fig. 9a geht hervor, daß die Mikrobefehle 123 bis 129 dazu herangezogen werden, den obigen Test durchzuführen.
509828/0678
Der Mikrobefehl 123 löscht die Bitstellen O bis 15 des AC-Registers 206-3 und stellt den Wort-Addierer 206-1 derart ein, daß eine Verknüpfungs-Produktoperation ausgeführt wird. Der Mikrobefehl 124 veranlaßt auf seine Ausführung, daß der Inhalt des AC-Registers in das AD-Register 206-5 übertragen wird. Dies ermöglicht, daß die aus dem Speicherplatz 77« abgerufene Statusinformation aus dem DN-Register 202-1 gemäß Fig. 1c in das AC-Register 206-3 geladen wird. Die Bitstellen 0 bis 15 werden wieder auf 0 gesetzt bzw. gelöscht, und das durch den Wort-Addierer 206-1 gebildete Ergebnis wird in das AC-Register 206-3 geladen. Die Testschaltungen des Steuerspeichers überprüfen das Ausgangssignal des Addierers auf 0, und zwar auf den Mikrobefehl 129 hin.
Wie durch Fig. 8b und 9a angegeben, führt der Steuerspeicher in dem Fall, daß das Addierer-Ausgangssignal 0 ist, den Mikrobefehl 130 aus und kehrt auf die Hauptroutine gemäß Fig. 8a und 10 zurück. Wenn irgendwelche 1-Bits bewirken, daß das Addierer-Ausgangssignal nicht 0 ist, zeigt dies dem bestimmten Lese/Schreib-Kanal RWC an, daß die Operation, die zu benutzen beabsichtigt war, bereits "belegt" ist. Es sei darauf hingewiesen, daß in dem Fall, daß dieser Befehl der erste Eingabe/Ausgabe-Befehl war, der von dem Zielsystemprogramm auf Grund der Einleitung des Prozesses abgegeben wurde, das RWC-Belegungs-Statusfeld insgesamt Nullen enthalten würde. Unter der Annahme, daß dies der Fall ist, würde der erste Eingabe/Ausgabe-Befehl ebenfalls dazu führen, daß der Test positiv ist. In denjenigen Fällen, in denen dies nicht der erste abgegebene Eingabe/Ausgabe-Befehl war und in denen der angeforderte Lese/Schreib-Kanal tatsächlich belegt war, würde der Steuerspeicher einen Zugriff zu dem Mikrobefehl 131 hin vornehmen, durch den das CF1-Steuerungs-Flipflop in den
509828/0678
Binärzustand 1 gebracht würde (siehe Fig. 2b). In dem angegebenen Beispiel ist angenommen, daß der abgerufene RWC-Eintrag in der aus Fig. 7a angegebenen Weise codiert ist. Dies bedeutet, daß beide Lese/Schreib-Kanäle RWC5 und 5a für die Eingabe/Ausgabe-Operation erforderlich sind. Wenn nicht die beiden entsprechenden Bitstellen des RWC-Ausblendfeldes der Speicherstelle bzw» Speicherplatzes 77Q binäre Nullen enthalten, wird der angeforderte Lese/Schreib-Kanal RWC als belegt gewertet. In solchen Fällen, in denen die Beschränkungsanforderung hinsichtlich der Verbindung der Lese/Schreib-Kanäle gelockert werden kann, wird das RWC-Ausblendfeld des Eintrags geändert, um lediglich einen Lese/Schreib-Kanal (z.B. lediglich den Lese/Schreib-Kanal RWC5) anzugeben. Diese Änderung, die eine Änderung der binären 1 im Bit 25 in eine binäre 0 umfaßt, kann entweder durch das Betriebssystem oder durch den Programmierer, wie über einen Befehl vorgenommen werden, der von der Systemkonsole her eingeführt wird. Wenn eine ÜND-Verknüpfung der beiden Felder ausgeführt wird, ist es somit lediglich erforderlich, daß der Lese/Schreib-Kanal RWC5 nicht belegt ist, um ein Null-Ergebnis zu erzeugen.
Sektor-Te stroutine
Wie aus Fig. 8b und 10 hervorgeht, kehrt der Steuerspeicher nach Ausführung des oben genannten Testes zu dem Hauptfluß gemäß Fig. 8a zurück, um einen Sektortest auszuführen. Um diesen Test auszuführen, muß die Firmenware bestimmen, über welchen Sektor die Eingabe/Ausgabe-Operation stattzufinden hat. Wie aus Fig. 6 und 11 ersichtlich ist, kann ein Sektor durch ein C1-Zeichen (lediglich Steuer-Eingabe/Ausgabe-Befehle).
509828/0678
ein C2-Zeichen oder ein Umschalt- bzw. Steuercode-(CE)-Zeichen festgelegt werden, und zwar in Abhängigkeit von dem Format des Befehls. Da dieser Befehl ein PDT-Befehl ist, muß die nächste Befehlssteuerung oder das nächste Varianten-Zeichen abgerufen werden, um das bestimmte Zeichenformat zu bestimmen (d.h., ob ein C2-Zeichen oder ein CE-Zeichen vorliegt). Zunächst wird der Inhalt des Folgesteuerungs- bzw. Ablaufsteuerungs-Zähler—Speicherplatzes des LSM-Speichers benutzt, um den nächsten Teil des PDT-Befehls (das sind vier Bytes) abzurufen; das bestimmte Byte, das dem nächsten Varianten-Zeichen entspricht, wird durch die SDS-Auswahlschaltung 206-66 ausgewählt und in dem AB-Register 206-58 gespeichert. Danach wird das Zeichen in das AG-Register 206-88 übertragen, um die erforderliche Prüfung auszuführen.
Im folgenden seien die obigen Verhältnisse unter Bezugnahme auf die Fig. 8b und 9b näher erläutert. Die Mikrobefehle 105 und 106 werden ausgeführt; sie veranlassen, daß die nächsten vier Bytes des in dem Zielsystera-Hauptspeicherbereich gespeicherten Eingabe/Ausgabe-BefehJs abgerufen werden, wozu der Ablaufsteuerungszähler-Adresseninhalt (SC) benutzt wird. Dies bedeutet, daß die Hauptspeicher-Segmentnummer, die von dem UT-Register 202-9 an das US-Register 202-7 abgegeben wird bzw. worden ist, veranlaßt, daß der in dem UAB-Assoziativspeicher 202-5 gemäß Fig. 2e gespeicherte Basisnummernwert für den betreffenden Sektor in das UN-Register 202-54 geladen wird. Außerdem wird die Adresse des gegenwärtigen Mikrobefehls ti in das Rückführ-Verzweigungsregister 202-12 des Steuerspeichers gemäß Fig. 2a auf das Signal KRSIO hin geladen, und sodann bewirkt der Steuerspeicher eine Ver-
509828/0678
zweigung zum Zwecke des Abrufs der nächsten Varianten-Routine gemäß Fig. 8g und 9c Die Mikrobefehle 101 bis 105 führen die Operationen zur Bildung der Speicheradresse aus. Sie führen z.B. die durch den UBD-Addierer 202-50 erzeugte Adresse über das UA-Register 202-52 zu dem Hauptspeicher. Außerdem werden die Inhalte des Arbeitsspeicherplatzes UW3 in den SE-Zähler 206-16 geladen, und die Ablaufsteuerungs-Zähleradresse wird in den Arbeitsspeicherplatz UW1 gespeichert. Die aus dem Hauptspeicher abgerufenen Bytes werden in das AD-Register 206-5 geladen und dann in den Arbeitsspeicherplatz 34 des LSM-Speichers geschrieben. Das erste Varianten-Zeichen (das ist das C2- oder CE-Zeichen) wird für eine Überprüfung ausgewählt und in die AB- und EW-Register 206-58 und 206-84 geladen. Außerdem erzeugt der Mikrobefehl 105 das Signal CESR1O, welches den Adresseninhalt des Rückführ-Verzweigungsregisters 204-12 in das Adreßregister 204-9 lädt. Dadurch kehrt der Steuerspeicher auf die Sektor-Testroutine gemäß Fig. 9b zurück.
Der Mikrobefehl 101 führt auf seine Ausführung hin eine Konstante von 18 in das AG-Register 206-88 hinein, und der SE-Zähler 206-16 wird auf Null gebracht. Die Verschiebeschaltung wird derart eingestellt, daß eine Linksverschiebung um sechs Stellen erfolgt. Der Mikrobefehl 106 veranlaßt die Verzweigungs-Testschaltungen gemäß Fig. 2a, eine Zwei-Weg-Verzweigung auszuführen, und zwar auf der Grundlage des Zustande des Wort-Markierungsbits 1 des AB-Registers 206-58,
Da dies ein PDT-Befehl ist, sollte keine Wortmarkierung in dem Varianten-Zeichen vorhanden sein, da der Befehl unvollständig wäre (d.h. entweder ein C2-Zeichen oder ein CE-Zeichen erfordert). Wenn das Varianten-Zeichen jedoch eine
509828/0678
Wortmarkierung enthält, führt der Steuerspeicher eine Reihe von Mikrobefehlen in der Hauptroutine gemäß Fig. 10 aus, was die weitere Verarbeitung des Befehls fehlschlagen läßt, und ferner bewirkt dies, daß der Emulator einen peripheren Spezifikationsfehler (PSE) erzeugt, wie dies erläutert wird. Unter der Annahme, daß keine Wortmarkierung vorhanden ist, beginnt der Emulator nunmehr mit der Überprüfung des Wertes der Ziffer hoher Wertigkeit des in dem AB-Register 206-58 gespeicherten Varianten-Zeichens, um zu bestimmen, ob das Varianten-Zeichen ein CE-Zeichen oder ein C2-Zeichen ist. Im einzelnen lädt der Mikrobefehl 103, wie dies in Fig. 9b veranschaulicht ist, den Sektorcodeinhalt des AG-Registers 206-88 in das AF-Register 206-12, und sodann wird eine Konstante in das AG-Register 206-88 geladen. Der Mikrobefehl verringert ferner den Inhalt des SE-Zänlers 206-16 um 1. Der Mikrobefehl 103 überprüft den Zustand des Bits 4 um festzustellen, ob die Ziffer hoher Wertigkeit einen Wert von 1, 3, 5 oder 7 besitzt. Wenn das Bit 4 eine binäre 1 ist, bewirkt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 204, der feststellt, ob der Wert der Ziffer hoher Wertigkeit eine 1, 5 oder 3,7 ist.
Wie durch Fig. 8c und 9b angegeben, ist das Zeichen, wenn der Oktalwert 1 oder 5 beträgt, ein CE-Zeichen. Hier legen die Bits niedriger Wertigkeit (d.h. der Ziffer niedriger Wertigkeit) des Varianten-Zeichens den Sektorcode fest, wie dies durch Fig. 8c und 11 angegeben ist. Wenn die drei Bits niedriger Wertigkeit einen Wert von 4 besitzen, wird ein Sektorcode 2 benutzt. Wenn die Ziffer hoher Wertigkeit nicht einen Wert 1 oder 5 besitzt, ist im übrigen das Zeichen ein C2-Zeichen. Hierbei legen die drei Bits hoher Wertigkeit
509828/0678
(d.h. die Ziffer hoher Wertigkeit) des Varianten-Zeichens den Sektorcode fest (siehe Fig. 8c und 11).
Im einzelnen führen die Mikrobefehle 205, 300-305 jene Operationen aus, die für die Verarbeitung eines Umschaltcodezeichens (CE-Zeichen) erforderlich sind. Die Mikrobefehle 505, 105-110 führen jene Operationen aus, die für die Verarbeitung des CE-Zeichens erforderlich sind.
Diese Operationen werden unter Bezugnahme auf Fig. 9b im einzelnen betrachtet werden. Da dabei keine Wortmarkierung bzw. Wortmarke vorhanden ist, wird der Mikrobefehl 103 ausgeführt. Dabei wird der in dem AG-Register 206-88 gespeicherte Sektorcodeinhalt X8 herangezogen und in das AF-Register 206-12 über die Schaltung 206-14 geladen. Der Mikrobefehl führt ferner eine Konstante 2 in das AG-Register 206-88 ein und verringert den Inhalt des SB-Zählers 206-16 um 1. Außerdem veranlaßt der Mikrobefehl den Steuerspeicher, eine Zwei-Weg-Verzweigung auf der Grundlage des Zustande des Bits 4 des AB-Registers 206-58 auszuführen. Wenn der Sektorcode einen Wert von 1, 3, 5 oder 7 besitzt, werden, wie erwähnt, sodann die Mikrobefehle 204, 205, 505 ausgeführt um zu bestimmen, ob der Wert des Sektorcodes 1, 5 oder 3,7 beträgt. Wie aus Fig. 9b ersichtlich ist, lädt der Mikrobefehl 204 den Sektorcode im AG-Register 206-88 in das AF-Register 206-12 und führt eine Konstante von 27 in das AG-Register 206-88 ein. Dies ermöglicht die Vornahme einer Prüfung bezüglich des Bits 3 des AB-Registers 206-58 um zu bestimmen, ob die Ziffer hoher Wertigkeit einen Wert von 1 oder 5 oder 7 besitzt. Wenn die Ziffer einen Wert von 1 oder 5 besitzt, ist sie ein Umschaltcode bzw. ein Steuerzeichencode, und der Steuerspeicher führt sodann den Mikrobefehl 205 aus. Dadurch
509828/0678
wird eine die Mikrobefehle 300 bis 302 einschließende Ablauffolge begonnen, durch die ferner geprüft wird, ob die Ziffer niedriger Wertigkeit des Umschaltcodes einen Wert von 4 besitzt. Wenn dies der Fall ist, führt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 403 aus, der einen Code von in das AG-Register 206-88 einführt. Dieser Wert wird als Sektorcode benutzt.
Wenn die Ziffer niedriger Wertigkeit nicht einen Wert von 4 besitzt, läuft der Steuerspeicher weiter zu dem Mikrobefehl 303, der den Zifferninhalt niedriger Wertigkeit des AG-Registers 206-88 heranzieht, um ihn in das AF-Register 206-12 zu laden. Der Inhalt des AF-Registers wird dann zu dem AE-Register 206-11 auf den Mikrobefehl 304 hin übertragen. Außerdem wird der Segmentnummerninhalt des UT-Registers 202-9 in dem US-Register 202-7 gespeichert, und der Inhalt des Basisadreßregister-Speicherplatzes BRO des URF-Registers wird in das UN-Register 202-54 ausgelesen.
Der Mikrobefehl 305 verschiebt den Inhalt des AE-Registers nach links um 8, und der Mikrobefehl 30A überträgt den verschobenen Inhalt in das AC-Register 206-3. Außerdem wird die in dem UAB-Assoziativspeicher 202-5 gespeicherte Basisadresse in das UN-Register 202-54 ausgelesen. Die durch den UBO-Addierer 202-50 erzeugten Ergebnisse werden in den Arbeitsspeicherplatz UW7 des URF-Registers 202-20 eingeschrieben. Der Inhalt des Arbeitsspeicherplatzes UW1 wird adressiert und an die USB-Auswahlschaltung 202-38 abgegeben. Der Mikrobefehl 306 bewirkt, daß der aktualisierte Sektoradresseninhalt des AC-Registers 206-3 in den Arbeitsspeicherplatz UW2 eingeschrieben wird (das ist der aktualisierte
509828/0678
Sektorcode). Wie aus Fig. 9c ersichtlich ist, schließen diese Inhalte den um vier nach links verschobenen Sektorcode zuzüglich des Wertes 256 ein.
Die Sektor-Testroutine führt wieder die den Abruf der nächsten Varianten-Routine betreffende Routine ein, um den nächsten Teil des Eingabe/Ausgabe-Befehls abzurufen, der die übrigen Steuerzeichen enthält (d.h. siehe Fig. 11). Wie in Fig. 8c und 9b angegeben, überprüft der Emulator ferner das nächste Varianten-Zeichen um zu bestimmen, ob es eine Wortmarkierung bzw. Wortmarke enthält (das bedeutet, daß der Mikrobefehl 308 ausgeführt wird, der den Zustand des Bits 1 in den AB-Register 206-58 prüft). Trifft dies zu, so liegt erneut ein unvollständiger Befehl vor, und der Emulator verarbeitet diesen Befehl in derselben Weise wie dies oben beschrieben worden ist. Unter der Annahme, daß keine Wortmarke vorhanden ist, führt der Steuerspeicher eine Reihe von Mikrobefehlen aus, die den Zustand des Eingabe/Ausgabe-Bits des C2-Zeichens in der hier erläuterten Weise überprüfen.
Aus Fig. 6, 8c und 11 geht hervor, daß dann, wenn die Ziffer hoher Wertigkeit des Sektorcodes einen anderen Wert als 1 oder 5 besitzt, die Bits 4 und 5 des C2-Zeichens (d.h. die Bits 3 und 4 des C2-Zeichens in Fig. 11) den Sektor in dem Zielsystem angeben. Aus Fig. 9b geht hervor, daß der Mikrobefehl 105 die Verschiebeschaltung 206-30 veranlaßt, die in das AC-Register 206-3 übertragenen Sektorcodebits nach rechts zu verschieben und dann den Inhalt des SE-Zählers um 1 zu erhöhen. Der Mikrobefehl 106 veranlaßt, daß die verschobenen Ergebnisse in das AC-Register 206-3 geladen werden, daß die Verschiebeschaltung 206-30 derart eingestellt wird, daß eine Verschiebung nach links um 2 erfolgt, daß das
509828/0678
ACU-Betriebs-Flipflop in den Binärzustand 1 gesetzt wird und daß das AF-Register 206-12 gelöscht bzw. auf 0 gesetzt wird. Das durch den Byte-Addierer 206-50 erzeugte Ergebnis wird in das AG-Register 206-88 übertragen; dieses Ergebnis entspricht bestimmten Bits des PCU-Codes (das sind die C2-Bits 6, 3, 2, 1 in Fig. 6 und die C2-Bits 2, 5, 6, 7 in Fig. 11).
Der Mikrobefehl 107 bewirkt, daß die aktualisierte Sektoradresseninformation in den Arbeitsspeicherplatz UW2 des URF-Registers 202-20 eingeschrieben wird. Außerdem lädt der betreffende Mikrobefehl die PCU-Bits aus dem AG-Register 206-88 in das AF-Register 206-12. Der Mikrobefehl 107 prüft ferner die Zustandsbitstelle 2 des AB-Registers 206-58, welche das Eingabe/Ausgabe-Bit des C2-Zeichens enthält; diese gibt die Übertragungsrichtung an. Wenn dieses Bit eine binäre 1 ist, wodurch angezeigt wird, daß die Daten aus einer Einrichtung zu lesen sind, führt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 208 hin aus, wodurch die PCU-Bits zu dem AC-Register 206-3 übertragen und das CFO-Flipflop in den Binärzustand 1 gesetzt werden. Ferner wird der Folgesteuerungs-Zähler-Adresseninhalt des Arbeitsspeicherplatzes UW1 um 1 erhöht und in den Arbeitsspeicherplatz 1 in dem in Frage kommenden Adressenformat zurückgeschrieben. Wenn das Eingabe/Ausgabe-Bit auf eine binäre 0 gesetzt ist, führt der Steuerspeicher sodann den Mikrobefehl 108 aus, der ähnliche Operationen mit der Ausnahme durchführt, daß das CFO-Flipflop in den Binärzustand 1 gesetzt wird.
Der Steuerspeicher liest dann Mikrobefehle 109 und 110 aus. Der Mikrobefehl 109 überträgt den Inhalt der Verschiebeschaltung 206-30 zu dem AC-Register 206-3 und liest den Inhalt des Arbeitsspeicherplatzes 2 in das UN-Register 202-54 aus.
509828/0678
Der Mikrobefehl 110 veranlaßt, daß der AC-Inhalt, der den um zwei nach links verschobenen PCU-Code enthält» in den Arbeitsspeicherplatz 30 des URF-Registers 202-20 eingeschrieben wird. Außerdem wird das CF4-Flipflop in den Binärzustand gesetzt.
Wie aus Fig. 9b hervorgeht, wird eine Reihe von Operationen ähnlich den obigen Operationen auf die Mikrobefehle 309 bis 311 hin ausgeführt. Dies führt ferner dazu, daß die PCU-Codebits in den Arbeitsspeicherplatz 3 des URF-Registers 102-20 eingeschrieben werden, und zwar auf den Mikrobefehl hin.
Aus Fig. 8c und 9b dürfte ersichtlich sein, daß auf die Beendigung der Überprüfung der Sektorcodebits der Varianten-Zeichen hin die Firmenware mit dem Mikrobefehl 111 beginnend eine Indizierung in der Sektortabelle vornimmt, und zwar unter Heranziehung des zuvor erhaltenen Sektorcodes· Der Mikrobefehl 111 bewirkt, daß der Inhalt des die Eingabe/Ausgabe-Tabellensegmentinformation enthaltenden Arbeitsspeicherplatzes UW5 an die USB-Auswahlschaltung 202-38 abgegeben wird. Der Mikrobefehl 112 konditioniert den LSM-Speicher für ein Auslesen des Inhalts des Arbeitsspeicherplatzes 30, der den zuvor abgerufenen RWC-Tabelleneintrag enthält.
Der Mikrobefehl 113 bewirkt, daß der RWC-Tabelleneintrag-Inhalt in das AD-Register 206-5 ausgelesen wird. Der Mikrobefehl 120 veranlaßt auf seine Ausführung hin, daß die Verschiebeschaltung 206-30 ihren Inhalt um 13 nach links verschiebt, und ferner wird der Sektortabelleneintraginhalt des DN-Registers 201-1 in die AC- und AE-Register 206-3
509828/0678
und 206-71 des Wort-Addierers 206-1 geladen. Daraufhin lädt der Mikrobefehl 121 auf seine Ausführung hin die verschobenen Sektortabellenbits in das AE-Register 206-11.
Der aus der Sektortabelle gemäß Fig. 6 abgerufene Sektortabelleneintrag besitzt das in Fig. 7b dargestellte Format. Die Zeitfach-Status-Bits 0 bis 5 des Eintrags werden über die SCS-Auswahlschaltung 206-55 in das AA-Register 206-52 des Byte-Addierers 206-50 geladen. Die Zeitfach-Ausblendbits, die den Bits 0 bis 5 des RWC-Eintrags entsprechen, der zuvor in dem AB-Register 206-58 gespeichert worden ist, werden über die SDS-Auswahlschaltung 206-66 in das AB-Register 206-58 geladen. Anschließend bewirkt der Mikrobefehl 122, daß das durch den Byte-Addierer 206-50 gebildete Ergebnis in das AG-Register 206-88 gespeichert wird und daß der LSM-Speicher veranlaßt wird, den Arbeitsspeicherplatz 31 für die Speicherung des abgerufenen Sektortabelleneintrags zu adressieren.
Der Mikrobefehl 123 konditioniert den LSM-Speicher zum Zwecke des Auslesens des Inhalts des Arbeitsspeicherplatzes GRC, und außerdem wird der SE-Zähler 206-16 auf Null gestellt. Ferner überprüft der Mikrobefehl den Zustand der Bitstelle des AE-Registers 206-11, um zu kontrollieren, ob der angegebene bestimmte Sektor in dem Zielsystem vorhanden ist. Diese Bitstelle speichert das Bit 13 des Sektortabelleneintrags, der zuvor in das AE-Register geladen und um 13 Stellen nach links verschoben worden ist.
Wie aus Fig. 9b ersichtlich ist, führt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 224 hin aus, wenn das Bit 13 eine binäre 1 ist. Der Mikrobefehl 224 führt eine
509828/0678
bestimmte Konstante (das ist PSE1) in das AG-Register 206-88 ein. Diese Konstante ist so codiert, daß der Software ESP angezeigt wird, daß der PDT-Befehl einen nicht vorhandenen Sektor angibt und daß damit der Befehl für das Zielsystem, das er angibt, unzulässig ist. Dieser Code wird in das SCN-FeId des Speicherplatzes GRC des LSM-Speichers eingeschrieben. Ferner wird der Inhalt des Zählers SE2O6-16 um 1 verringert, und der Inhalt des Arbeitsspeicherplatzes UW3 wird auf 0 gelöscht. Die Firmenware beendet dann die Verarbeitung des Befehls und tritt in die Eingabe/Ausgabe-Bedienungs-Routine ein.
Unter der Annahme, daß das Bit 13 eine binäre 0 ist, wodurch ein existierender Sektor angezeigt wird, führt der Steuerspeicher zu dem Mikrobefehl 124 hin, der die Ergebnisse des Zeitfach-Belegungs-Tests überprüft. Dieser Test wird ebenfalls in derselben Weise ausgeführt wie der RWC-Belegungstest. Dies bedeutet, daß der. Byte-Addierer 206-50 eine UND-Verknüpfung des Zeitfach-Status von dem Sektortabelleneintrag und den Zeitfach-Ausblendbits ausführt, die zuvor aus dem RWC-Tabelleneintrag abgerufen worden sind. Der Mikrobefehl 124 überprüft die Ergebnisse der UND-Verknüpfung. Wenn der Byte-Addierer 206-50 nicht ein vollständiges Null-Ergebnis erzeugt (d.h., daß das Flipflop 206-75 in den Binärzustand 1 gesetzt ist), geht der Steuerspeicher auf den Mikrobefehl 125 weiter. Dieser Mikrobefehl setzt das SteuerungS-CF1-Flipflop in den Binärzustand 1. Dadurch ist angezeigt, daß keine genügenden Zeitfächer mehr zur Verfügung stehen, um den Befehl von dem Zielsystemprogramm her auszuführen (das bedeutet, daß die Zeitfächer belegt sind). Der Mikrobefehl 125 löscht ferner den SE-Zähler 206-16 bzw. stellt ihn auf 0, und der Steuerspeicher kehrt auf die Hauptroutine gemäß Fig. 8a zurück.
509828/0678
Unter der Annahme, daß genügend Zeitfächer vorhanden sind, führt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 225 aus. Dadurch wird der SE-Zähler 206-16 auf O gesetzt, und außerdem wird auf die Hauptroutine zurückgekehrt, ohne daß das CF1-Flipflop gesetzt wird.
In dem angenommenen Beispiel sind zwei Zeitfächer für eine Rate von 167K-Zeichen pro Sekunde erforderlich. Dies bedeutet, daß zwei angegebene Zeitfächer in dem Zeitfach-Status-Feld als verfügbar angegeben werden müssen (das bedeutet, daß das Feld in jenen Zeitfachpositionen Nullen enthalten muß). Wenn die Zeitfächer im Sektor 2 oder 2A als belegt angezeigt sind, signalisiert der Emulator sodann, daß der Befehl nicht ausgeführt werden kann.
In ähnlicher Weise wie beschrieben kann der Inhalt der Zeitfach-Maske geändert werden, um die Sektor-Verkehrsbeschränkungen zu lockern, wie dies durch das Programm gefordert wird. Nachdem z.B. bestimmt ist, daß es für den richtigen Betrieb des Programms nicht erforderlich ist, daß die durch die Zeitfach-Maske geforderten Sektor-Verkehrsbeschränkungen durchgesetzt werden, können diese Beschränkungen dadurch aufgehoben werden, daß Nullen in die Maske eingeführt werden. Wenn demgemäß der Emulator einen Zugriff zu dem Sektortabelleneintrag hin vornimmt und eine UND-Verknüpfung bezüglich sämtlicher Nullen im Hinblick auf die Zeitfach-Status-Bits ausführt, wird das Ergebnis stets anzeigen, daß Zeitfächer verfügbar sind. Demgemäß wären Zeitfach-Verkehrsbeschränkungen eines Sektors aufgehoben.
Setzt man das obige Beispiel fort, so zeigt sich aus Fig. 8a,
509828/0678
daß die Hauptroutine zunächst den Zustand eines der Steuerungs-Flipflops (d»h. CF4) überprüft (siehe den Mikrobefehl 106 gemäß Fig. 10), um zu bestimmen, ob tatsächlich eine PCU-Einheit in dem Befehl festgelegt worden ist (das ist der in einem C2-Zeichen enthaltene PDT-Befehl), und in entsprechender Weise sollte die Verarbeitung fortgesetzt werden. Da zuvor angenommen worden ist, daß das "Fortsetzungs"-CF4-Flipflop in den Binärzustand 1 gesetzt war (d.h. P=1 in Fig. Ba), tritt der Steuerspeicher in eine PCU-Status-Routine ein. Aus Flg. 8a geht dabei hervor, daß in dem Fall, daß das CF4-Flipflop nicht in den Binärzustand 1 umgeschaltet worden ist, der Steuerspeicher auf Mikrobefehle Bezug nimmt (z.B. die Mikrobefehle 106-108 gemäß Fig. 10), um einen bestimmten Code (PSE3) festzulegen, wobei das SCN-FeId des Arbeitsspeicherplatzes GR10 des LSM-Speichers anzeigt, daß keine PCU-Einheit angegeben worden ist (siehe Fig. 4). Danach beendet der Emulator die Verarbeitung des PDT-Befehls über die Eingabe/Ausgabe-Betriebsroutine.
PCU-Status-Abrufroutine
Die PCU-Status-Abrufroutine bewirkt, daß ähnliche Operationen wie sie oben beschrieben worden sind, ablaufen. Dies führt zum Abruf eines PCU-Tabelleneintrags aus der einem bestimmten Sektor zugeordneten PCU-Tabelle. Obwohl die Sektortabelle acht Einträge zuläßt, sind eigentlich maximal nur sechs Sektoren für ein vorgegebenes Zielsystem vorhanden (das sind die Sektoren 1, 2A, 2B, 2C1 2D und 3). Wie durch Fig. 8d angegeben, führt die PCU-Status-Abruf routine eine Indizierung in der PCU-Tabelle aus, und zwar unter Heranziehung des aus dem. C2-Zeichen erhaltenen PCU-Codes. Die verschiedenen Operationen
5098 28/067
sind in Fig. 9d im einzelnen gezeigt.
Aus Fig. 9d ergibt sich, daß die rufende Routine (das ist die Hauptroutine gemäß Fig. 10) den Mikrobefehl 100 ausführt. Dieser Mikrobefehl 100 veranlaßt den LSM-3peicher den Inhalt des Arbeitsspeicherplatzes W31 auszulesen, der den Sektortabelleneintrag enthält. Außerdem veranlaßt der Mikrobefehl das CF4-Flipflop, in den Binärzustand O umzuschalten. Anschließend liest der Steuerspeicher den Mikrobefehl 100 der PCU-Status-Abrufroutine aus, der auf seine Ausführung hin den Sektorinhalt des Arbeitsspeicherplatzes W31 in das AC-Register 206-3 überträgt. Der Mikrobefehl 101 liest den PCU-Code-Inhalt des Arbeitsspeicherplatzes UW3 (das ist der Wert 4X PCU) des URF.-Registers 202-20 in das UN-Register 202-54 aus. Der Mikrobefehl 102 führt die ersten 16 Bits des AC-Registers 206-3 auf Null und veranlaßt das URF-Register 202-20, den Arbeitsspeicherplatz UW7 zum Zwecke der Speicherung des Wertes von dem UW3-Bereich zu adressieren. Außerdem werden die in dem Arbeitsspeicherplatz UW5 enthaltenen Basis-Plus-Versetzungswerte an den USB-Wähler 202-38 abgegeben. Der Mikrobefehl 103 überträgt auf seine Ausführung hin den Verschiebungswert des in dem AC-Register 206-3 gespeicherten Sektortabelleneintrags in das UN-Register 202-54 (das sind die Bits 16 bis 31, wie dies in Fig. 7b gezeigt ist). Außerdem stellt der Mikrobefehl den Byte-Addierer 206-50 derart ein, daß eine Verknüpfungsmäßige Produkt-Operation ausgeführt wird. Ferner wird die AA-Auswahlschaltung 206-54 auf eingestellt (z.B. durch selektives Zurückstellen des entsprechenden Flipflops).
509828/0678
Der Mikrobefehl 104 bewirkt, daß die durch den UBD-Addierer gebildete Index-Adressensumme (das ist 4X PCU + Verschiebung) in das UA-Register 202-52 geladen wird, und zwar zur Weiterleitung an den Hauptspeicher zusammen mit dem Speichersteuersignal UMßOSO.Außerdem wird die USB-Auswahlschaltung 202-38 derart eingestellt, daß der Inhalt des Arbeitsspeicherplatzes UW7 ausgelesen wird. Ferner wird die Verschiebeschaltung 206-30 so eingestellt, daß eine Verschiebung nach links um fünf Positionen erfolgt. Wenn anschließend der Mikrobefehl 105 ausgeführt wird, wird das URF-Register 202-20 veranlaßt, den durch den UBD-Addierer 202-50 erzeugten Indexwert in den Arbeitsspeicherplatz UW7 einzuspeichern. Die USB-Auswahlschaltung 202-38 ist dann so eingestellt, daß der PCU-Code-Inhalt des Arbeitsspeicherplatzes UW3 zum Zwecke des Auslesens ausgewählt wird. Außerdem wird der Inhalt des SC-Zählers auf gebracht. Der Mikrobefehl 106 lädt auf seine Ausführung hin das örtliche LY-Register 207-9 des LSM-Speichers 207-1 mit dem Indexinhalt des Arbeitsspeicherplatzes UW7, und ferner wird der berechnete Indexwert in den Speicherplatz GR14 eingeschrieben. Darüber hinaus überträgt der Mikrobefehl den Null-Inhalt des SC-Zählers 206-62 in das SD-Zeigerregister 206-60. Schließlich wird der Zustand des CF4-Flipflops überprüft um festzustellen, ob dies das erste Mal durch diese Folge von Mikrobefehlen ist.
Da das CF4-Flipflop im Binärzustand 0 ist, liest der Steuerspeicher den Mikrobefehl 107 aus, auf dessen Ausführung hin der Indexinhalt des Arbeitsspeicherplatzes 7 abgerufen und zu dem AC-Register 206-3 hin übertragen wird. Darüber hinaus ist die Verschiebeschaltung 206-30 so eingestellt, daß eine verSchiebung nach rechts um zwei Stellen erfolgt. Der Mikro-
509828/0678
befehl 108 nimmt den verschobenen Inhalt auf und führt ihn zu dem AC-Register 206-3 zurück. Demgegenüber überträgt der Mikrobefehl 109 den Inhalt des AC-Registers 206-3 zu dem AD-Register 206-5 und verringert den Inhalt des SD-Zeigerregisters 206-60 um 2. Anschließend stellt der Mikrobefehl 110 auf seine Ausführung hin die SDS-Auswahlschaltung 206-62 derart ein, daß der durch das SD-Zeigerregister angegebene Zeicheninhalt (das ist das Byte niedriger Wertigkeit des Indexwertes) von dem AD-Register 206-5 in das AB-Register 206-58 abgegeben wird. Außerdem wird der LSM-Speicher veranlaßt, den Speicherplatz GR2 zu adressieren.
Der Mikrobefehl 111 überträgt auf seine Ausführung hin den PCU-Codeinhalt des AB-Registers 206-58 in das AG-Register 206-88 und den Inhalt des adressierten LSM-Speicherplatzes in das AF-Register 206-12. Außerdem wird das SE-Register 206-16 auf 0 gestellt. Der Mikrobefehl 112 überträgt den PCU-Inhalt des AG-Registers 206-88 in das AF-Register 206-12, und ferner wird die Verschiebeschaltung 206-30 so eingestellt, daß eine Verschiebung nach links um fünf Stellen erfolgt. Daraufhin überträgt der Mikrobefehl 113 den verschobenen PCU-Inhalt des AU-Registers 206-12 in das örtliche LY-Register 207-9 des LSM-Speichers 207-1 und speichert diesen Inhalt in dem Speicherplatz GR2. Außerdem werden die SC- und SD-Register 206-62 und 206-60 auf 0 gestellt. Dies beendet das Laden des PCU-ID-Codes in die Byte-Position hoher Wertigkeit des Speicherplatzes GR2 (siehe Fig. 4). Der aus dem Hauptspeicher abgerufene und in das DN-Register 201-1 geladene PCU-Tabelleneintrag wird ferner in die AC-, AD- und AE-Register 206-3, 206-5 bzw. 206-11 auf den Mikrobefehl 114 hin geladen. Darüber hinaus führt der Mikrobefehl 114 eine Konstante n3f" in das AG-Register 206-88 ein und erhöht den Inhalt des SD-Registers 206-60 um 2. Anschließend überträgt der Mikrobefehl 115 den
509828/0678
Inhalt der Verschiebeschaltung 206-30 in das AC-Register 206-3.
Ferner lädt er das Byte hoher Wertigkeit des PCU-Tabelleneintrags über die SDS-Auswahlschaltung 206-66 in das AB-Register 206-58. Die Verschiebeschaltung 206-30 wird so eingestellt, daß eine Linksverschiebung 30 erfolgt, und das SE-Register 206-16 wird auf 0 gesetzt bzw, gelöscht. Der Mikrobefehl 116 bewirkt, daß das Ergebnis des Byte-Addierers 206-50 in das AG-Register 206-88 geladen wird und daß der verschobene Inhalt in das AC-Register 206-3 gespeichert wird. Der Inhalt des SC-Registers wird dann über die Schaltung 206-63 um 1 verringert, und das AF-Register 206-12 wird gelöscht· Außerdem wird der LSM-Speicher 207-1 veranlaßt, den Inhalt des Arbeitsspeicherplatzes W32 zu adressieren. Schließlich wird der Zustand des CF4-Flipflops überprüft; da dieses Flipflop sich im Binärzustand 0 befindet, liest der Steuerspeicher als nächsten Mikrobefehl den Mikrobefehl 117 aus.
Der Mikrobefehl 117 überträgt auf seine Ausführung hin den Inhalt des AG-Registers 206-88 zu dem AF-Register 206-12 und stellt das SD-Register 206-60 auf 0. Der in dem AE-Register 206-11 gespeicherte PCU-Tabelleneintrag wird dann in das LY-Register 207-9 über die QB-Busleitung geladen und sodann in den Arbeitsspeicherplatz 32 eingeschrieben.
Der Mikrobefehl 117 lädt ferner den Inhalt des AC-Registers 206-3 in das AD-Register 206-5 und überprüft denselben Inhalt des AC-Registers auf Nullen. Dies erfolgt, wie durch Fig. 8e angegeben, um zu bestimmen, ob ein Wechsel-C2-Code zu benutzen ist oder nicht, um eine Indizierung in der PCU-Tabelle vorzunehmen. Wenn das NS-Status-Bit 5 (siehe Fig. 7) auf eine binäre 1 gesetzt ist, ist das Ergebnis gleich 0, und
509828/0678
der Steuerspeicher führt eine Verzweigung zu dem Mikrobefehl 418 aus. Dieser Mikrobefehl legt auf seine Ausführung hin die Wechsel-C2-Codebits des PCU-Tabelleneintrag derart fest, daß eine Indizierung in die PCU-Tabelle vorgenommen wird. Wie aus Fig. 9d ersichtlich ist, werden die Mikrobefehle und 420 ausgeführt, und sodann wird der ¥echsel-C2-Code dazu benutzt, eine Indizierung in die Tabelle vorzunehmen, und zwar durch Wiederholung derjenigen Operationen, die zuvor geschrieben worden sind. Wenn kein V/echselcode angegeben ist, was bedeutet, daß AC nicht gleich O ist, ruft der Steuerspeicher den Mikrobefehl 118 ab. Dieser Mikrobefehl bewirkt, daß die in dem AD-Register 206-5 gespeicherten PCU-Code-Bits über die SDS-Auswahlschaltung 206-66 in das AB-Register 206-58 geladen werden. Außerdem wird der Arbeitsspeicherplatz UW3 auf 0 gesetzt bzw. gelöscht. Daraufhin kehrt die PCU-Status-Abrufroutine zu der Hauptroutine gemäß Fig. 8a zurück. Die Mikrobefehle 217 bis 223 werden ausgeführt, wenn der Wechsel-C2-Code ausgeführt wird, und zwar nach dem ersten Mal durch die PCU-Status-Abrufroutine. Außerdem werden ähnliche Operationen ausgeführt, wie sie durch die Mikrobefehle 115 bis ausgeführt worden sind.
Wie zuvor erwähnt, wird der Wechsel-PCU-Code dazu benutzt, das Zielsystem auf eine einzige Ebene der Gleichzeitigkeit zu beschränken. Wenn das Programm für einen richtigen Lauf nicht die Forderung nach Vorhandensein einer einzigen Ebene der Gleichzeitigkeit erforderlich macht, dann kann dieser Zwang gemildert werden. Dies erfolgt dadurch, daß die Codierung bestimmter Bits der Einträge in die PCU-Tabelle derart geändert wird, daß jede PCU-Adresse ihre eigenen Belegungs-Status-Unterbrechungsbits besitzt und somit zwei gleichzeitige Operationen unterstützen kann. Einige Zielsysteme
509828/0678
enthalten z.B. einen Kartenleser/Locher, wobei diesen Einrichtungen zwei Adressen zugeteilt sind, eine Leseadresse und eine Schreibadresse. Da sich jedoch beide Einrichtungen eine gemeinsame Steuereinheit teilen, können beide Operationen nicht gleichzeitig erfolgen (das bedeutet, daß eine einzige Ebene der Gleichzeitigkeit vorliegt). In dem Fall, daß das Zielsystemprogramm so geschrieben worden ist, daß aus dieser Anordnung ein Nutzen gezogen wird, um eine gewisse Art der Verbindung für die Ermöglichung eines richtigen Laufes des Programms zu erzielen, wäre die vorgesehene Wechsel-PCU-Codeanordnung durch den Emulator in dem Wirtssystem zu unterstutzen sein. In diesem Fall wird demgemäß das NS-Bit in dem PCU-Tabelleneintrag auf eine binäre 1 gesetzt. Dies macht die Überprüfung eines gemeinsamen BeJLegungs-Bits erforderlich um zu bestimmen, ob der Befehl ausgeführt werden kann.
In dem Fall, daß es für das ZielSystemprogramm nicht erforderlich ist, daß diese Beschränkung auferlegt wird, kann sie gemildert werden. Zu diesem Zweck wird der Inhalt des bestimmten Eintrags unter Heranziehung des Wechsel-PCU-Codes (das sind die Bits 10 bis 15) geändert. Dabei wird insbesondere das NS-Bit 5 in dem Eintrag auf eine binäre 0 gesetzt. Dies bedeutet, daß sämtliche Belegungs-Status- und Unterbrechungs-Status-Bits nunmehr für den Eintrag benutzbar/gültig sind. Die Software ESP aktualisiert den Zustand der Belegungsbits 7 des in Frage kommenden Eintrags jeweils dann, wenn die Operation ausgeführt wird. Demgemäß wird der Emulator eine Kartenieseoperation nicht emulieren, die mit einer Kartenlochungsoperation verbunden ist. In Ausdrücken
509828/067 8
des Zielsystems ausgedrückt heißt dies selbstverständlich, daß die Änderung des Eintrags äquivalent ist der Einbeziehung von zwei gesonderten Steuereinheiten, und zwar einer der jeweiligen Einrichtung, wobei jede Einheit gesonderte Status-Anzeigeglieder besitzt. Es dürfte ersichtlich sein, daß entsprechende Änderungen zur Milderung derartiger Zwangslagen vorgenommen werden können, die anderen Typen von Zielsystemeinrichtungen auferlegt sind.
Aus Fig. 10 geht hervor, daß auf den obigen Test folgend die Hauptroutine sodann Mikrobefehle ausführt, die den LSM-Speicher 210-1 veranlassen, den Inhalt des Speicherplatzes GRC auszulesen und die Verzveigungs-Testschaltungen eine "N"-Weg-Verzweigung ausführen zu lassen, und zwar auf der Basis des Hexadezimal-Wertes des in dem AB-Registers 206-58 gespeicherten Code. Die Bits 2 bis 5 des AB-Registers 206-58 werden insbesondere dazu herangezogen, die Steuerspeicher-Verzweigungs-Testlogikschaltungen zu veranlassen, eine von 11N" Mikrooperationen für die Beendigung der Verarbeitung des PDT-Befehls auszuwählen. Aus Fig. 8a geht hervor, daß in Abhängigkeit von dem Typ der Einrichtung ein Mikrobefehl ausgeführt wird, der bewirkt, daß ein bestimmter Code in dem SCN-FeId des Arbeitsspeicherplatzes GRC gespeichert wird (siehe Fig. 4). Es sei ferner im Hinblick auf Fig. 10 bemerkt, daß dann, wenn die Einrichtung nicht existiert (d.h., daß dann ein Hexadezimal-Wert von 0 vorhanden ist) ein Mikrobefehl 2200 ausgeführt wird, der einen Code "PSE2" (das ist 11111010) in das AG-Register 206-88 eingeführt wird, wodurch angezeigt wird, daß durch den PDT-Befehl keine Prozeßsteuereinheit PCU angegeben worden ist. Danach ruft der Emulator die Software ESP über die Eingabe/Ausgabe-Bedienungsroutine
509828/0678
gemäß Fig. 8b auf. In den Klassen, in denen Hexadezimal-Codes a bis f angegeben sind, die kennzeichnend sind für eine Spezial· falleinheit, werden die in Fig. 10 angegebenen Mikrobefehle ausgeführt, die Anzeigen der Zustände der Steuerungs-Flipflops C-1 bis C-3 in das AG-Register 206-88 speichern, und zwar zum Zwecke des Einschreiben in den Speicherplatz GRC des LSM-Speichers 207-1 (d.h. 110000, ST1, ST2, ST3).
Unter der Annahme, daß z.B. die Prozeßsteuereinheit eine Massenspeichereinrichtung ist, wird der Mikrobefehl 2205 gemäß Fig. 10 ausgeführt. Dadurch wird ein Code 98 (M) in das AG-Register 216-88 eingeführt. Außerdem wird das CFS-Flipflop in den Binärzustand 1 gesetzt, und der Inhalt des SB-Registers 206-16 wird um 1 verringert. Die Hauptroutine-Mikrobefehle 100 und 101 werden dann ausgeführt, wodurch tier codierte Inhalt des AG-Registers zu dem AF-Register 206-12 hin übertragen und in den SCN-Codefeld-Speicherplatz GRC des LSM-Speichers eingeschrieben wird (siehe Fig. 4). Anschließend tritt die Hauptroutine in eine Steuereinheit-Belegungs-Testroutine gemäß Fig. 8f ein.
Steuereinheit-Belegungs-Te stroutine
Die Steuereinheit-Belegungs-Testroutine überprüft den Zustand des Belegungs-Status-Bits 7 des PCU-Tabelleneintrags (siehe Fig. 7c); sie ist in Fig. 8f und 9e angegeben. Aus Fig. 9e ist ersichtlich, daß der Mikrobefehl 100, der ausgeführt wird, den LSM-Speicher zum Zwecke des Auslesens des PCU-Tabelleneintrag- Inhalts aus dem Speicherplatz 32 konditioniert. Der Mikrobefehl 101 überträgt auf seine Ausführung hin den Inhalt des Speicherplatzes 32 in das AC-Register 206-3, und zwar über
509828/0678
die QA-Busleitung. Außerdem wird die Verschiebeschaltung 206-30 veranlaßt, eine Verschiebung nach links um sechs Stellen vorzunehmen. Der Mikrobefehl 102 lädt auf seine Ausführung hin den Schiebeschaltungs-Inhalt in das AC-Register 206-3. Die Mikrobefehle 103 und 104 werden ausgeführt, wobei der Mikrobefehl 105 veranlaßt, daß eine Verzweigung ausgeführt wird, und zwar auf der Basis des Zustande der Bitstelle 1 des AC-Registers 206-3. Diese Bitstelle speichert das Bit 7 des PCU-Tabelleneintrags. Wenn das Bit 7 auf eine binäre 1 gesetzt ist, zeigt dies an, daß die Einrichtungssteuereinheit belegt ist. Dies führt dazu, daß der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 205 hin ausführt. Dieser Mikrobefehl setzt seinerseits das CF2-Flipflop in den Binärzustand 1 und führt dann den Steuerspeicher auf die Hauptroutine bzw. das Hauptprogramm zurück. Wenn die Einrichtungssteuereinheit nicht belegt ist (d.h., daß das Bit 7=0 ist) erfolgt durch den Steuerspeicher eine Bezugnahme auf den Mikrobefehl 105 und sodann eine Rückkehr zu der Hauptroutine bzw. dem Hauptprogramm.
Unter der Annahme, daß die PCU-Einrichtung nicht belegt ist, ergibt sich aus Fig. 8a und 10, daß der Emulator zu der den Abruf der nächsten Variante betreffenden Routine gemäß Fig. 8g hin gelangt. Diese Routine ruft, wie zuvor erwähnt, einen folgenden Teil des Eingabe/Ausgabe-Befehls, der verarbeitet wird, ab, und zwar unter Heranziehung der in dem Folgesteuerungsbzw. Ablaufzähler-Speicherplatz gespeicherten Adresse. Außerdem prüft diese Routine das Vorhandensein einer V/ortmarke, wie dies in Fig. 8g veranschaulicht ist. Wenn keine Wortmarke bzw. Wortmarkierung vorzufinden ist, wird die Zählerstellung des Ablaufzählers für eine Anzahl von nicht verarbeiteten Varianten-Zeichen vergrößert, und außerdem wird eine Rückkehr zu
509828/0678
der Hauptroutine bzw. dem Hauptprogramm vorgenommen, nachdem die Varianten-Zeichen in dem Speicherplatz GR5 gespeichert sind.
Unter Bezugnahme auf Fig. 9c seien die obigen Operationen im einzelnen betrachtet. Dabei zeigt sich, daß die Mikrobefehle 100-105 den nächsten Teil des PDT-Befehls in der zuvor erwähnten Weise abrufen. Der Mikrobefehl 106 speichert, wenn er ausgeführt wird, die Varianten-Zeichen in dem Speicherplatz 34 des LSM-Speichers 207-1 und lädt das nächste Zeichen (z.B. das C3-Zeichen) aus dem AB-Register 206-58 in das AG-Register 206-88. Während des nächsten Zyklus werden die Bitstelle 6 (das ist der PDT-Operationscode) und die Bitstelle (Wortmarkenbit) des AI-Registers 206-20 und des AB-Registers 206-58 durch den Mikrobefehl 107 überprüft, um das Vorhandensein einer Wortmarke festzustellen. Wenn beide Bits binäre Einsen sind, führt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 408 hin aus. Dieser Mikrobefehl bewirkt, wenn er ausgeführt wird, daß ein bestimmter Code (das ist 11111101) in das AG-Register 206-88 geladen wird, was mit "PSE 5" bezeichnet ist. Dadurch ist angezeigt, daß der Befehl eine ungenügende C3-Varianten-Zeichen-Reihe enthält (d.h. kein C3-Zeichen, wie es für diesen Typ von Einrichtung erforderlich ist). Außerdem wird der Inhalt des LSM-Speicherplatzes ausgelesen und über die QA-Busleitung in das AF-Register 206-12 geladen. Der Inhalt des SE-Registers 206-16 wird um 1 verringert. Der Steuerspeicher kehrt auf die Hauptroutine bzw. das Hauptprogramm gemäß Fig. 10 zurück, woraufhin er die Mikrobefehle 107 und 108 und sodann die Eingabe/Ausgabe-Bedienungsroutine ausführt. Dies bewirkt, daß der in dem AG-Register 206-88 gespeicherte Code über die SFS-Auswahlschal-
509828/0678
tung 206-14 in das AF-Register 206-12 geladen und sodann in den Speicherplatz GRC des LSM-Speichers 207-1 geschrieben wird.
Bei Fehlen einer Wortmarke führt der Steuerspeicher den Mikrobefehl 208 aus, der das CF7-Flipflop in den Binärzustand 1 überführt und den Inhalt des AblaufZählers um 1 erhöht sowie den erhöhten Wert in den Arbeitsspeicherplatz UW1 des URF-Registers 202-20 zurückführt. Während eines erstmaligen Ablaufs der Ablauffolge bewirkt der Mikrobefehl 107, daß der Steuerspeicher zu dem Mikrobefehl 209 übergeht (dies bedeutet, daß das CF7-Flipflop, das zuvor nicht betrachtet worden ist, in den Binärzustand 1 gesetzt ist). Dieser Mikrobefehl löscht, wenn er ausgeführt wird, das AF-Register 206-12 bzw. stellt es auf 0 und erhöht eine in dem Arbeitsspeicherplatz UW3 enthaltene Zählerstellung. Die Mikrobefehle 2OA und 210 laden, wenn sie ausgeführt werden, das C3-Varianten-Zeichen in das AF-Register 206-12 über die SFS-Auswahlschaltung 206-14, und ferner wird das C3-Zeichen in den Speicherplatz 33 des LSM-Speichers eingeschrieben. Außerdem wird der Inhalt des EX-Zählers 206-12 während dieses Operationszyklus um 1 verringert, und der Steuerspeicher kehrt auf die Hauptroutine bzw. das Hauptprogramm zurück.
Aus Fig. 8a und 10 geht hervor, daß das C3-Varianten-Zeichen bezüglich eines bestimmten Wertes (das ist der Wert 4) überprüft wird um festzustellen, ob der Befehl eine eigentliche Datenübertragung erfordert oder eine Lade- oder Speicher-Adressenregisteroperation angibt, gemäß der ein Adreßregister in dem Hauptspeicher mit der Α-Adresse geladen wird, die durch den Datenübertragungsbefehl angegeben wird (siehe Fig. 7d) und
509828/0678
die keine eigentliche Eingabe/Ausgabe-Ubertragung erfordert. In dem Zielsystem war ein Befehl erforderlich, um eine derartige Adresseninformation zu übertragen, da nämlich das Adreßregister nicht in dem Hauptspeicher, sondern in der Steuereinheit untergebracht war.
Es sei angenommen, daß das C3-Zeichen nicht einen Code von 4 besitzt und daß der Inhalt des Adreßregisters, welches die zuvor geladene Einrichtungs- und Magazin-Information enthält, von der PCU-Erweiterungs-Tabelle abgerufen wird, die eine Information enthält, wie sie in Fig. 7d gezeigt ist.
Die obigen Operationen werden nunmehr im einzelnen betrachtet werden. Aus Fig. 10 ergibt sich dabei, daß die Mikrobefehle 103 bis 108 die Byte-Addiererschaltung 206-50 über das AS-Register 206-57 veranlassen, eine binäre Subtraktionsoperation auszuführen, um nämlich zu bestimmen, ob das C3-Zeicheη einen Wert von n04n besitzt. Außerdem veranlassen die Mikrobefehle den Wort-Addierer, für eine binäre Subtraktionsoperation vorbereitet zu sein, um eine Adresse aus dem PCU-Tabelleneintrag abzuleiten, der aus dem Speicherplatz 32 des LSM-Speichers abgerufen wird. Dies dient dazu, den Magazin- und Einrichtungscodeinhalt aus der dritten Wort-Stelle der Massenspeicher-PCU-Erweiterungstabelle gemäß Fig. 6 abzurufen. Diese Tabelle ist im einzelnen in Fig. 7d dargestellt. Der Mikrobefehl 108 überprüft, wenn er ausgeführt wird, das Ergebnis der Byte-Addierer-Subtraktion; wenn das Ergebnis 0 ist (d.h., daß C3 = 04 ist) führt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 2100 aus. Unter der Annahme, daß in diesem Beispiel das Ergebnis nicht 0 ist, führt der Steuerspeicher den Mikrobefehl 109 aus, durch den die PCU-Tabellen-Adresse in
509828/0678
das UN-Register 202-54 übertragen wird. Außerdem wird das SC-Register 206-62 auf O gestellt.
Der Mikrobefehl 110 bewirkt, daß der UBD-Addierer 202-50 den in dem Arbeitsspeicherplatz UW5 gespeicherten Basiswert zu dem Inhalt des UN-Registers 202-54 hinzuaddiert. Das Ergebnis wird dann in das UA-Register 202-52 geladen und zu dem Hauptspeicher hin geleitet. Außerdem wird das SD-Register 202-60 auf 0 gebracht bzv/. gelöscht. Der Mikrobefehl 111 veranlaßt, wenn er ausgeführt wird, den Wort-Addierer 206-1,eine Verknüpf ungs-Produktoperation auszuführen und den Inhalt des SC-Registers 206-62 um zwei zu erhöhen. Der Mikrobefehl 112 veranlaßt die Verschiebeschaltung, eine Verschiebung nach links um 13 Stellen vorzunehmen. Der Mikrobefehl 113 lädt, wenn er ausgeführt wird, den PCU-Erweiterungstabelleneintrag, der aus dem Hauptspeicher abgerufen worden ist, in die AD- und AC-Register 206-5 und 206-3. Darüber hinaus wird eine Konstante "07" in das AG-Register 206-88 eingeführt. Nachdem der Mikrobefehl 114 veranlaßt hat, daß die Bitstelle 16-31 des AC-Registers 206-3 auf Null gebracht bzw. gelöscht wird, lädt der Mikrobefehl 115, wenn er ausgeführt wird, das den Einrichtungscode enthaltende Byte über die SDS-Auswahlschaltung 206-66 in das AJ3-Register 200-58. Ferner wird durch den betreffenden Mikrobefehl die Verschiebeschaltung 206-30 veranlaßt, eine Verschiebung nach rechts um zehn Stellen vorzunehmen. Schließlich wird der verschobene Inhalt in das AC-Register 206-3 geladen.
Der Mikrobefehl 116 lädt, wenn er ausgeführt wird, das durch die Byte-Addiererschaltung 206-50 gebildete Ergebnis (das ist 000DDD) in das AB-Register 206-58. Ferner wird der ver-
509828/0678
schobene Inhalt in das AC-Register 206-3 geladen. Außerdem wird der Byte-Addierer 206-50 veranlaßt, eine ODER-Verknüpfungsoperation auszuführen, und schließlich wird der Inhalt des SD-Registers 206-60 um 2 erhöht. Der Mikrobefehl 117 bewirkt, wenn er ausgeführt wird, daß das Byte, das durch den Inhalt des SC-Registers 206*62 angegeben ist, von dem AC-Register 206-3 über die SCS-Auswahlschaltung 206-65 in das AA-Register 206-52 geladen wird. Zu diesem Zeitpunkt wird außerdem der verschobene Inhalt des AC-Registers 206-3 über die QA-Busleitung in das AD-Register 206-5 geladen, und ferner wird das Auswahl-Flipflop in den Binärzustand 1 gesetzt. Das Ergebnis (das ist MMMDDD) der durch die Addierer-Schaltung 206-50 auf den Inhalt der AB- und AA-Register 206-58 und 206-52 hin ausgeführten ODER-Verknüpfungsfunktion wird in das AG-Register 206-88 geladen. Außerdem wird der Byte-Addierer 206-50 veranlaßt, eine Verknüpfungs-Produktoperation auszuführen. Das AF-Register 206*12 wird schließlich auf 0 gebracht bzw. gelöscht, und das Auswahl-Flipflop wird in den Binärzustand 0 zurückgestellt. Auf diese Weise ist dieser Teil der Hauptroutine beendet, und sodann tritt der Steuerspeieher in die Magazin-Testroutine gemäß Fig. 8i ein.
Magazin-Teatroutine
Diese Routine ist in Fig. 9e im einzelnen gezeigt; sie wird dazu herangezogen, den richtigen Einrichtungscode zu erzeugen. Aus Fig. 9h geht dabei hervor, daß der Mikrobefehl 100 auf seine Ausführung hin den Inhalt des AG-Registers 206-88 in das AF-Register 206-12 lädt und den Inhalt des AD-Registers 206-5 in das AB-Register 206-58. Außerdem führt der Mikrobefehl 100 eine Konstante 38 in das AG-Register 206-88 ein.
509828/0678
Der Mikrobefehl 100 führt, wenn er ausgeführt wird, das durch die Byte-Addiererschaltung 206-50 erzeugte Ergebnis in das AG-Register 206-58 ein und stellt die Verschiebeschaltung 206-30 derart ein, daß eine zweifache Verschiebung nach links erfolgt. Außerdem lädt der betreffende Mikrobefehl den Inhalt des AF-Registers 206-12 in das AC-Register 206-3 und löscht das AE-Register 206-11 auf 0. Der Mikrobefehl 112 lädt, wenn er ausgeführt wird, das AC-Register 206-3 mit den verschobenen Einrichtungscodebits. Außerdem veranlaßt der betreffende Mikrobefehl den LSM-Speicher 207-1, den Speicherplatz 36 zu adressieren und den Massenspeichereinrichtungscode aus dem AF-Register 206-12 dort einzuschreiben (siehe Fig. 4).
Der Mikrobefehl 103 lädt, wenn er ausgeführt wird, den Inhalt des AC-Registers 206-3 über die QA-Sammelleitung in das AD-Register 206-5. Ferner wird durch den betreffenden Mikrobefehl der LSM-Speicher 207-1 veranlaßt, den Speicherplatz GRC zu adressieren. Außerdem wird durch den betreffenden Mikrobefehl das SE-Register 206-16 auf 0 gesetzt, und ferner werden die Steuerspeicherschaltungen veranlaßt, eine Verzweigung auf der Grundlage des durch den Byte-Addierer 206-50 erzeugten Ergebnisses (das ist der Zustand des Flipflops 206-75) auszuführen. Wenn das Byte-Addierer-Ergebnis nicht 0 ist, führt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 200 aus, der einen bestimmten Code (das ist der mit PSE4 bezeichnete Code »11111100» in das AG-Register 206-88 einführt. Dieser Code ist dabei in den Speicherplatz GRC des LSM-Speichers einzuschreiben (siehe Fig. 4). Außerdem wird der Inhalt des SE-Registers 206-16 um 1 verringert. Der PSE4-Code zeigt die Benutzung eines unzulässigen/Magazincodes für eine Massenspeichereinrichtung an. Bevor jedoch tatsächlich ein Einschreiben in den Speicherplatz erfolgt, wird der Zustand des
509828/0678
CF5-Flipflops durch den Mikrobefehl 200 überprüft. Da das Flipflop in den Binärzustand 1 gesetzt worden ist (siehe Fig. 8a)jführt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 104 hin aus und kehrt zu der Hauptroutine zurück, wie dies in Fig. 9h veranschaulicht ist. Wenn das CF5-Flipflop nicht in den Binärzustand !gesetzt ist, führt der Steuerspeicher den Mikrobefehl 201 aus, der den in dem AG-Register 206-88 gespeicherten PSE4-Code zu dem AF-Register 206-14 hin überträgt. Der Steuerspeicher führt den Mikrobefehl 108 gemäß Fig. 10 aus, welcher den PSE4-Code in den Speicherplatz GRC einschreibt. Die Firmenware tritt dann in die Bedieungsabruf-Routine ein. Da angenommen worden ist, daß der Massenspeichereinrichtungscode zulässig ist, gelangt die Hauptroutine bzw. das Hauptprogramm sodann zu der Einrichtungs-Status-Abrufroutine gemäß Fig. 8f, und zwar nach Ausführung des Mikrobefehls 119 gemäß Fig. 10.
Einrichtungsstatus-Abrufroutine
Wie aus Fig. 8j hervorgeht, wird diese Routine dazu benutzt, einen Hinweis bzw. Index in die Einrichtungstabelle einzugeben, und zwar unter Heranziehung des angegebenen Einrichtungscodes und eines Verschiebungswertes, der aus dem in dem Speicherplatz W32 des LSM-Speichers 207-1 gespeicherten PCU-Tabelleneintrag erhalten wird· Diese Routine ist in Flg. 9f im einzelnen gezeigt. Aus Fig. 9f geht dabei hervor, daß der Mikrobefehl 100 auf seine Ausführung hin den PCU-Inhalt des Speicherplatzes W32 (siehe Fig. 7c) über die QA-Busleitung in das AC-Register 206-3 lädt und den angegebenen Einrichtungscode aus dem AD-Register 206-5 zu dem Wort-Addierer 206-1 hin abgibt. Der Mikrobefehl 101 löscht, wenn er ausgeführt wird,
509828/0678
die 16 Bits niedriger Wertigkeit des AC-Registers 206-3, und der Mikrobefehl 102 lädt das durch den Addierer 206-1 gebildete Ergebnis in das AC-Register 206-3. Der Mikrobefehl 103 lädt, wenn er ausgeführt wird, den Inhalt des AC-Registers 206-3 in das UN-Register 202-54 und in das LY-Register 207-9· Darüber hinaus wird der Einrichtungs-Inhalt zuzüglich des Verschiebungs-IndScwert-Inhalts in den Speicherplatz GR15 des LSM-Speichers 207-1 geschrieben (siehe Fig. 4).
Der Mikrobefehl 104 gibt, wenn er ausgeführt wird, den Basiswert-Inhalt des Arbeitsspeicherplatzes UW5 an die USB-Auswahlschaltung 202-38 ab, und zwar für eine Addition zu dem Indexwert, der von der Addiererschaltung 202-50 erfolgt worden ist. Außerdem wird das Ergebnis in das UA-Register 202-52 geladen, und ferner wird ein Hauptspeicherzyklus dadurch ausgelöst, daß das Signal UMGOSO in ein Binärsignal 1 gebracht wird. Der Mikrobefehl 106 veranlaßt die Verschiebeschaltung 206-30, eine Verschiebung nach links um sieben Stellen vorzunehmen. Der Mikrobefehl 107 lädt, wenn er ausgeführt wird, den aus der Einrichtungstabelle gemäß Fig. 6 abgerufenen Eintrag in das AC-Register 206-3 und in das AD-Register 206-5. Während dieses Zyklus wird außerdem der Einrichtungstabelleneintrag in den Speicherplatz W37 des LSM-Speichers 207-1 eingeschrieben. Die Einrichtungsstatus-Abrufroutine kehrt dann zu der Hauptroutine bzw. dem Hauptprogramm zurück.
Wie aus Fig. 8a und 10 hervorgeht, führt der Steuerspeicher einen Mikrobefehl 103 aus, der eine bestimmte Konstante (80)
509828/0678
in das AG-Register 206-88 einführt, den Inhalt der Verschiebeschaltung 206-30 in das AC-Register 206-3 lädt und die Status-Bits aus dem AD-Register 206-5 (siehe Fig. 7f) über die SDS-Auswahlschaltung 206-66 in das AB-Register 206-58 lädt. Anschließend tritt der Emulator in die Einrichtungs-Sprung- und Status-Routine gemäß Fig. 8h ein.
Einrichtungs-Sprung- und Status-Testroutine
Diese Routine führt eine Überprüfung aus um festzustellen, ob die bezeichnete Einrichtung belegt ist. Die durch die betreffende Routine ausgeführten Operationen sind in Fig. 9g im einzelnen gezeigt. Aus Fig. 9g geht hervor, daß der Mikrobefehl 100, wenn er ausgeführt wird, das AG-Register 206-88 mit dem Ergebnis lädt, das durch die Byte-Addiererschaltung 206-50 erzeugt wird. Der Mikrobefehl 101 bewirkt, daß der Speicherplatz GRC des LSM-Speichers 207-1 adressiert wird. Außerdem wird das SE-Register 206-16 durch den betreffenden Mikrobefehl auf 0 gebracht. Ferner veranlaßt der Mikrobefehl 101, daß die Verzweigungs-Testschaltungen den Zustand der Bitposition 0 des AC-Registers 206-3 überprüfen. Dadurch wird der Zustand des Bits 7 des Einrichtungseintrags überprüft; dieser Zustand ist normalerweise eine binäre 0, es sei denn, daß die für diese Einrichtung adressierten Befehle zu der ESP-Software zum Zwecke der weiteren Verarbeitung zu überspringen bzw. "festzuhalten" sind. IWenn dieses Bit eine binäre 1 ist, führt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 202 hin aus, der auf seine Ausführung hin einen bestimmten Code (das ist 11001000, als DT bezeichnet) in das AG-Register 206-88 einführt, den Inhalt des Speicherplatzes GRC zu dem AF-Register 206-12 hin überträgt und den
609828/0678
Inhalt des SE-Registers 206-16 um 1 verringert. Die Firmenware kehrt dann auf die Hauptroutine gemäß Fig. 10 zurück, wobei sie den Mikrobefehl 107 ausführt, der den Inhalt des AF-Registers 206-12 in den Speicherplatz GRC einschreibt.
Unter der Annahme, daß das Einrichtungs-Sprungbit bzw. -Festhaltebit 7 eine binäre 0 ist, führt der Steuerspeicher den Mikrobefehl 102 aus, der das CF6-Flipflop in den Binärzustand überführt. Außerdem werden die Verzweigungs-Testschaltungen veranlaßt, des durch die Byte-Addiererschaltung 206-50 erzeugte Ergebnis zu überprüfen, und zwar durch die Schaltung 206-75. Dies bedeutet, daß die Bits 0 bis 7 des Einrichtungseintrags (siehe Fig. 7f) mit einer in dem AG-Register 206-88 gespeicherten Konstante 80 ausgeblendet bzw. maskiert werden, um den Zustand des Bits 0 zu überprüfen, welches das Belegungs-Bit ist. Die Byte-Addiererschaltung 206-50 führt auf diese Bits hin eine Verknüpfungs-Produktoperation aus (d.h., eine Operation, die zuvor konditioniert worden ist). Wenn das Ergebnis 0 ist, zeigt dies an, daß die Einrichtung nicht belegt ist. Ist das Ergebnis nicht 0, so führt der Steuerspeicher eine Verzweigung zu dem Mikrobefehl 203 hin aus und kehrt auf die Hauptroutine gemäß Fig. 10 zurück. Wenn die Einrichtung belegt ist, führt der Steuerspeicher den Mikrobefehl 103 aus, durch den die beiden Flipflops CF3 und CF6 in Binärzustände 1 gebracht werden, und sodann erfolgt eine Rückkehr zu der Hauptroutine bzw. dem Hauptprogramm.
Aus Fig. 10 ist ersichtlich, daß der Steuerspeicher die Mikrobefehle 104 und 105 ausführt, die den LSM-Speicher 207-1 veranlassen, den Inhalt des Speicherplatzes GRC in das
509828/0678
AF-Register 206-12 auszulesen, den Inhalt des SE-Registers 206-16 um 1 zu verringern und das AG-Register 206-88 mit einer Konstanten zu laden. Der Mikrobefehl 105 bewirkt ferner, daß die Verzweigungs-Tastschaltungen die Zustände der CF1-3-Flipflops überprüfen. Wenn sämtliche Flipflops sich in Binärzuständen 0 befinden, bedeutet dies, daß der Eingabe/Ausgabe-Befehl ausgeführt werden kann. Der Steuerspeicher führt ferner eine Verzweigung zu dem Mikrobefehl 206 hin aus und kehrt unmittelbar auf die Eingabe/Ausgabe^Bedienungs-Abrufroutine zurück. In dem Fall, daß irgendeines dieser Flip flops nicht 0 ist, führt die Firmenware die Mikrobefehle 106 und 107 aus, die den Inhalt des AG-Registers 206-88 und Bits, die die Zustände der Fllpflops CFI bis CF3 anzeigen, in bestimmte Bitpositionen des SCN-Feldbereiches des Speicherplatzes GRC des LSM-Speichers 209-1 laden (siehe Fig. 4). Aus Fig. 4 geht hervor, daß die Anzeigen der Zustände der Flipflops CF1 bis CF3 als Bits 5 bis 7 des SCN-Feldes gespeichert sind. Wenn der Emulator das als RWCB-Bit bezeichnete Bit 5 auf eine binäre 1 setzt, signalisiert dies der ESP-Software, daß der Lese/Schreib-Kanal RWC belegt ist. Wenn das als PCUR-Bit bezeichnete Bit 6 auf eine binäre 1 gesetzt ist, signalisiert dies der ESP-Software, daß eine PCU-Einheit belegt ist oder daß im Falle eines Steuerungs-Eingabe/Ausgabe-Befehls eine positive Antwort auf eine Unterbrechungsanfrage vorhanden war. Wenn das als DEVR-Bit bezeichnete Bit 7 auf eine binäre 1 gesetzt ist, signalisiert dies schließlich der ESP-Software, daß die Einrichtung belegt ist oder daß im Falle eines Steuerungs-Eingabe/Ausgabe-Befehls eine positive Antwort auf eine die Einrichtung betreffende Anfrage vorhanden war.
50 98287 007
Eingabe/Ausgabe-Bedienungsanforderungs-Routine
Sobald die Firmenware die Verarbeitung eines Eingabe/Ausgabe-Befehls beendet, tritt sie in die Kingabe/Ausgabe-Bedienungsroutine gemäß Fig. 8d ein. Diese Routine ist diejenige Routine, die dazu benutzt wird, die übrigen Varianten-Steuerzeichen des PDT-Befehls abzurufen und die in Frage kommende Information in die entsprechenden Speicherplätze des LSM-Speichers 207-1 zu laden. Wie aus Fig. 8d hervorgeht, kehrt diese Routine auf die den Abruf der nächsten Variante betreffende Routine zurück, die die übrigen Varianten-Zeichen in der zuvor beschriebenen Weise abruft und diese Zeichen in die in Frage kommenden Speicherplätze des LSM-Speichers 207-1 lädt (siehe Fig. 4). Wenn die Firmenware eine Wortmarke ermittelt, die signalisiert, daß sämtliche Varianten-Zeichen aus dem Zielsystem-Hauptspeicher abgerufen worden sind, laden die übrigen Mikrobefehle auf ihre Ausführung hin die einschlägigen Teile des verarbeiteten PDT-Befehls in die Speicherplätze des LSM-Speichers, v/ie dies zuvor im Zusammenhang mit Fig. 4 und 8d angegeben worden ist. Auf diese Weise wird die Verarbeitung des PDT-Befehls abgeschlossen, woraufhin die Firmenware der ESP-Software signalisiert, daß der Steuerspeicher Zugriff zu Mikrobefehlen hat, und zwar an einer bestimmten Speicherstelle beginnend. Diese Mikrobefehle rufen auf ihre Ausführung hin den nächsten Maschinencodebefehl auf den Befehl hin ab, der das System in einen Emulationsbetrieb geführt hat. Außerdem werden zu diesem Zeitpunkt die dem betreffenden Betrieb zugehörigen Flipflops zurückgestellt. Dadurch, daß die Firmenware auf den Bereich des Steuerspeichers zurückgeführt ist, der von dem System benutzt wird, wenn es nicht einen Befehl eines Zielsystems ausführt, ist die Forderung
509828/0678
beseitigt nach Ausführung von Operationen, die für die Aktivierung und Unwirksammachung von diesen Operationen zugehörigen Prozessen erforderlich sind.
Periphere Steuerungs- und Verzweigungsbefehle
Es sei z.B. angenommen, daß der nächste abgerufene Befehl aus demselben Zielsystemprogramm stammt. Normalerweise wird dieser Befehl ein Typ eines peripheren Steuerungs- und Verzweigungs-(PCB)-Befehls sein, der dazu herangezogen wird, zu ermitteln, wann eine Datenübertragungsoperation abgeschlossen worden ist.
Im vorliegenden Beispiel ist ferner angenommen, daß die üSP-Software den gerade verarbeiteten PDT-Befehl abgegeben hat und daß damit die von dem PDT-Befehl benötigten Hilfsquellen in Benutzung oder "belegt11 sind. Nunmehr ruft die ESP-Software einen PCB-Befehl ab, der feststellt, ob die durch den PDT-Befehl angegebenen Operationen vollendet worden sind. Auf diese Weise werden die zugeteilten Hilfsquellen verfügbar gemacht.
Der PCB-Befehl kann sämtliche in Fig. 6 und 11 gezeigten Formate besitzen. Demgemäß kann der PCB-Befehl im Unterschied zu dem PDT-Befehl ein Format besitzen, welches lediglich ein einziges Steuer-Varianten-Zeichen enthält (das ist das C1-Zeichen). In diesem Beispiel sei angenommen, daß der PCB-Befehl das gerade erwähnte bestimmte Format besitzt. Mit wenigen Worten gesagt können in den Zielsystemen die PCB-Befehle verschiedene Typen von Operationen auslösen, einschließlich Nicht-Datenübertragungsoperationen, die
509828/0678
streng genommen mechanische periphere Einrichtungsoperationen, Test- und Verzweigungsoperationen, Betriebsart-Änderungsoperationen und periphere Unterbrechungsoperationen berühren. Eine Test- und Verzweigungsoperation überprüft den Status eines PCU-Bereiches und/oder eines Lese/Schreib-Kanals oder von Lese/Schreib-Kanälen. Wenn die Bedingung vorhanden ist, eine Überprüfung vorzunehmen (z.B. dann, wenn CPU/RWC belegt ist), wird eine Programmverzweigung zu dem Befehl an der Speicherstelle hin vorgenommen, die durch die AT-Adresse des PCB-Befehls bezeichnet ist. Das C1-Steuerzeichen gibt den Lese/Schreib-Kanal oder eine Kombination von Kanälen an, deren Status zu überprüfen ist. Wenn eine Lese/Schreib-Kanal-Überprüfung nicht erwünscht ist, wird das C1-Zeichen so codiert, daß es insgesamt Nullen enthält. Das C2-Zeichen gibt, wenn es vorhanden ist, die Adresse der zu überprüfenden PCU-Einheit an; das betreffende Zeichen ist in derselben Weise codiert, wie für einen PDT-Befehl. Die Zeichen C3 bis CN geben, wenn sie vorhanden sind, die Steuerungs- und Testoperationen an. Zur weiteren Information bezüglich der Anwendung von PCB-Befehlen sei auf das oben erwähnte Programmierungs-Manual Bezug genommen.
Es sei angenommen, daß der PCB-Befehl eine Α-Adresse enthält. Bei dieser Adresse handelt es sich um dieselbe Adresse wie bei der Α-Adresse des PCB-Befehls, der verarbeitet wird. Wenn der PCB-Befehl in dem Zielsystem ausgeführt wird, um den bezeichneten Zustand zu überprüfen, bewirkt er daher eine Verzweigung zu sich selbst in dem Fall, daß der Test positiv ist. Ferner wird er wieder durch das Zielsystem ausgeführt. Eine wiederholte Ausführung eines PCB-Befehls wird vorgenommen, wenn das Zielprogramm erfordert, daß eine bestimmte Operation abzuschließen ist, bevor der nächste Befehl abgerufen wird (z.B. bei Vorliegen der Forderung nach Hilfsquellen).
509828/0678
Im Unterschied dazu hindert die Anordnung der vorliegenden Erfindung das Wirtssystem daran, eine wiederholte Ausführung desselben Befehls zu emulieren. Dadurch werden die System-Hilfsquellen für andere Prozesse verfügbar. Dies wird generell dadurch erreicht, daß man die Emulator-Firmenware in dem Fall, daß der Test positiv ist, eine Adressenprüfung ausführen läßt, nachdem sie den angegebenen Test ausgeführt hat. Sie überprüft die Adresse, zu der der Befehl hin eine Verzweigung vorzunehmen hat, und vergleicht diese Adresse mit der in dem Befehl selbst enthaltenen Adresse. Wenn die Adressen gleich sind, wird signalisiert, daß der Befehl selbst eine Verzweigung auszuführen vermag. Die Emulator-Firmenware leitet einen bestimmten Abruf an die ESP-Software hin, wodurch di· Freigabe des Wirtssystems für die Ausführung von anderen Aufgaben ermöglicht ist. In dem Fall, daß der durch den PCB-Befehl ausgeführte Test anzeigt, daß der Befehl nicht aus sich selbst heraus eine Verzweigung auszuführen vermag, speichert die Emulator-Firmenware die erforderliche einschlägige Information und gibt die richtige Adresse zum Zwecke des Abrufs des nächsten Befehls ab. In ähnlicher Weise kehrt die Emulator-Firmenware in dem Fall, daß der Test negativ ist, zurück, um den Befehl auf den PCB-Befehl hin abzurufen.
Die von dem Emulator im Zuge der Verarbeitung eines PCB-Befehls hin ausgeführten Operationen sind in Fig. 12a und 12b gezeigt. Zum Zwecke einer leichteren Erläuterung sei angenommen, daß der PCB-Befehl einen RWC-Belegungs-Test angibt und daher lediglich ein C1-Zeichen enthält. Aus Fig. 12a geht dabei hervor, daß der PCB-Befehl extrahiert und zunächst in derselben Weise wie der PDT-Befehl verarbeitet wird. An-
509828/0678
schließend überprüft der Emulator den RV/C-Code um zu bestimmen, ob dieser einen Wert von O oder 77 besitzt. Diese
als
Tests können/ähnlich dem Anfangstest des RWC-Codes des PDT-Befehls angesehen werden. Das in dem EV-Register 206-82 gespeicherte SC1-Zeichen wird z.B. in die AC-, AA- und EW-Register 206-3, 206-52 bzw. 206-84 geladen, mKljzwar auf die Extraktion des PCB-Befehles hin. Danach überprüfen die Verzweigungs-Testschaltungen den Inhalt des EW-Registers und des AC-Registers auf das Vorliegen des Viertes 778 bzw. 00. Wenn der Inhalt einen Wert von 0 besitzt, bedeutet dies, daß der PCB-Befehl einen Test auf die durch das C2-Zeichen angegebene PCU-Einheit hin auszuführen hat (dies bedeutet, daß der Lese/Schreib-Kanal RV/C nicht belegt ist). In diesem Fall ist die Emulator-Firmenware erforderlich, um die RWC--Testroutine gemäß Fig. 8b zu übergehen bzw. wegzulassen und in die Sektor-Testroutine überzugehen, die von anderen erforderlichen Testroutinen gefolgt wird, um den bezeichneten Test zu beenden. Wenn der RV/C-Code einen Wert von 77 besitzt, tritt die Emulator-Firmenware ebenfalls sofort in die Sektor-Testroutine ein, führt jedoch zunächst einen Mikrobefehl aus, der das CF1-Flipflop in den Binärzustand 1 setzt. Dies signalisiert der ESP-Software, daß der Lese/Schreib-Kanal RWC belegt ist.
Unter der Annahme, daß der RWC-Code nicht einen Wert von 0 oder 77 besitzt, tritt die Emulator-Firmenware in die RWC-Testroutine gemäß Fig. 8b ein. Diese Routine bewirkt, daß jene Operationen, die in Verbindung mit dem PDT-Befehl beschrieben worden sind, durch die Finnenware auszuführen sind. Zu diesem Zeitpunkt werden die Sektorbits aus dem RWC-Eintrag-
509828/0678
250Ü006 _105.
Abruf aus der RWC-Tabelle gemäß Fig. 6 in dem durch den Sektorcode bezeichneten Speicherplatz gespeichert. Wie in Verbindung mit dem PDT-Befehl erwähnt, wird dieser Wert in Übereinstimmung mit den Werten geändert, die in den C2- oder CE-Steuerzeichen enthalten sind, und zwar in Abhängigkeit von dem bestimmten Befehlsformat. In diesem Beispiel bleibt dieser Wert jedoch unverändert, da der PCB-Befehl, der verarbeitet wird, lediglich ein C1-Steuerzeichen enthält.
Wie aus Fig. 12a hervorgeht, tritt der Emulator sodann in die Sektor^Testroutine gemäß Fig. 8c ein. Aus Fig. 8c ist dabei ersichtlich, daß mit Rücksicht darauf, daß das Format des PCB-Befehls lediglich ein C1-Zeichen enthält, das nächste abgerufene Zeichen eine Wortmarke enthalten wird. Demgemäß ist der Wortmarkentest positiv, was bedeutet, daß der in dem bezeichneten Speicherplatz gespeicherte Sektorcodewert dazu benutzt wird, eine Indexangabe in die Sektorcodetabelle zu liefern (dies bedeutet, daß eine feste Beziehung zwischen dem Sektor und dem Lese/Schreib-Kanal vorhanden ist). Auf den Abruf des Sektortabelleneintrags werden sodann dieselben Operationen ausgeführt, die in Verbindung mit dem PDT-Befehl ausgeführt wurden. Aus Fig. 8c dürfte dabei ersichtlich sein, daß mit Rücksicht darauf, daß der Befehl lediglich ein C1-Zeichen enthält, der Emulator nicht das P-Bit (d.h. das CF4-Flipflop in den Binärzustand 1) setzt.
Auf die Beendigung des Sektortestes hin kehrt der Emulator auf die Hauptroutine bzw. das Hauptprogramm zurück, und zwar auf überprüfung des -Zustande des CF4-Flipflops (das ist das P-Bit) durch einen Mikrobefehl hin. Da dieses Flipflop sich noch im Binärzustand 0 befindet, führt der Emulator eine
509828/0678
2500008
Verzweigung zu der Endroutine gemäß Fig. 12b hin aus. Aus Fig. 12b ist ersichtlich, daß diese Routine die Zustände der Flipflops CF1 bis CF3 auf das Vorliegen von NuIl-Zuständen überprüft. Wenn alle diese Flipflops in den Binärzuständen 0 sind, bedeutet dies, daß die Datenübertragung beendet worden ist. Der Emulator beginnt dann mit der Extraktion des nächsten Befehls.
Somit dürfte ersichtlich sein, daß der Emulator einen Test vorständig auszuführen imstande ist, um die Verfügbarkeit einer Hilfsquelle zu bestimmen, und zwar unter Verwendung der in den Eingabe/Ausgabe-Tabellen gemäß Fig. 6 enthaltenen Information. Wenn der Emulator festgestellt hat, daß die Hilfsquelle verfügbar ist, wodurch die Beendigung der Datenübertragungsoperation angezeigt ist, beginnt er mit der Extraktion des nächsten Befehls.
Wenn die bezeichnete Hilfsquelle, hier der Lese/Schreib-Kanal RWC,'belegt ist, ist eines der Flipflops CF1 bis CF3 in den Binärzustand 1 gesetzt (das ist das CF2-Flipflop). Dies veranlaßt den Emulator, einen Mikrobefehl auszuführen, der den Ablaufzähler-Adresseninhalt, der in dem Speicherplatz GR2 gespeichert ist und der die Α-Adresse des PCB-Befehls, der ausgeführt wird, darstellt, mit der A-Adresse vergleicht, die in dem PCB-Befehl angegeben ist, welcher in dem Speicherplatz GR7 gespeichert ist. Dieser Test bestimmt, ob der PCB-Befehl erfordert, daß er aus sich selbst heraus eine Verzweigung ausführt oder nicht. Venn die Adressen gleich sind, veranlaßt der Emulator, daß ein bestimmter, mit L bezeichneter Code sowie die Zustände der Flipflops CF1 bis CF3 in dem SCN-Codefeld des Speicherplatzes GRC gespeichert werden
509828/0678
(siehe Fig. 4). Dadurch wird der ESP-Söftware signalisiert, daß derselbe PCB-Befehl solange wiederholt wird, bis eine bestimmte Eingabe/Ausgabe-Operation beendet ist. Das Wirtssystem ist dann imstande, die verfügbare Zeit für die Verarbeitung von anderen Programmen auszunutzen.
Wenn die Adressen nicht gleich sind, lädt der Emulator den Adresseninhalt des Ablaufzähler-Speicherplatzes des LSM-Speichers in den BC-Speicherplatz des LSM-Speichers 207-1 und den Adresseninhalt des A-Zähler-Speicherplatzes in den Ablaufzähler-Speicherplatz des LSM-Speichers. Dies bewirkt die Verzweigungsoperation. Anschließend ruft die Befehlsabrufeinheit 101-3 den durch die Verzweigungsadresse bezeichneten Befehl ab, wie dies in Fig, 12b angegeben ist.
Aus Vorstehendem dürfte ersichtlich sein, daß die Anordnung gemäß der vorliegenden Erfindung in erleichterter Weise irgendeine Anzahl von unterschiedlichen Typen von Eingabe/Ausgabe-Befehlen ausführen kann, die verschiedene Systemforde— rungen angeben. Darüber hinaus vermag das Emulationssystem der vorliegenden Erfindung schnell zum frühesten Zeitpunkt während der Verarbeitung zu bestimmen, ob der Eingabe/Ausgabe-Befehl des Zielsystems für die Ausführung zutrifft bzw. gültig ist. Wenn das Emulationssystem festgestellt hat, daß dies nicht zutrifft, nimmt es unmittelbar einen Anruf der ESP-Software vor und kehrt auf die Status-Information zurück, und zwar aus dem Grunde, daß der Befehl nicht als gültig ermittelt worden ist. In denjenigen Fällen, in denen der Eingabe/Ausgabe-Befehl als ausführbar ermittelt worden ist, liefert der Emulator eine Information, die die Emulator-Software ESP in den Stand versetzt, diejenigen Operationen,
509828/0ΒΪ8
die für die Ausführung des Eingabe/Ausgabe-Befehls erforderlich sind, unter Ausnutzung der Einrichtungen, die durch das Wirtssystem verfügbar gemacht worden sind, schneller auszuführen.
Darüber, hinaus ist die Emulations-Anordnung der vorliegenden Erfindung unter Heranziehung der in einer Anzahl von Tabellen enthaltenen Information imstande, vollständig bestimmte Typen von Eingabe/Ausgabe-Steuerbefehlen der Zielsystemprogramme auszuführen. Außerdem signalisiert die Emulationsanordnung gemäß der vorliegenden Erfindung diejenigen Fälle, in denen eine fortgesetzte Ausführung eines Steuerbefehls zu einem Verlust an Systemverarbeitungszeit führt. Diese Anordnung führt zu einer Steigerung der Gesamtleistung des Wirtssystems.
Gemäß der vorliegenden Erfindung können ferner verschiedene Typen von Einträgen, die in den Tabellen enthalten sind, auf die während der Verarbeitung von Zielsystembefehlen Bezug genommen wird, derart codiert sein, daß bestimmte Verbindungen oder Beschränkungen, die durch die Zielsystemprogramme auferlegt sind, gemildert werden. Auf diese V/eise kann die Emulationsanordnung der vorliegenden Erfindung weit effektiver diejenigen Zielsystemprogramme ausführen, die für eine richtige Ausführung nicht auf bestimmte, in dem Zielsystem vorhandene Beschränkungen abgestützt sind. Diese Anordnung kann in beträchtlichem Ausmaß die Systemorganisation vermindern. Weitere Vorteile der vorliegenden Erfindung dürften für den Fachmann ohne weiteres ersichtlich sein.
509828/0678
Um die Beschreibung mit Dingen, die im Wissen des auf dem vorliegenden Gebiet tätigen Fachmannes liegen, nicht unnötig zu überlasten, ist eine Blockdiagramm-Darstellungsweise gewählt worden, wobei jeder Block im einzelnen funktionell beschrieben worden ist und wobei die Schaltungen, die der jeweilige Block darstellt, speziell angegeben worden sind. Dem einzelnen Ingenieur steht es dabei frei, Elemente und Bauteile, wie Flipflop-Schaltungen, Schieberegister, ect. aus seinem eigenen Wissen oder aus den verfügbaren Standart-Bezugsquellen auszuwählen, auf die hier Bezug genommen worden ist.
Darüber hinaus sind die genauen Codierungsmuster für die einzelnen Mikrobefehle nicht angegeben worden, da es dem Ingenieur freisteht, alternative Codierungsformen auszuwählen. Bezüglich weiterer Einzelheiten und bezüglich eines Einblicks in die Verfahren zur Ableitung einer derartigen Codierung sei auf die Druckschrift mit dem Titel "Microprogramming Principles and Practices" von S. S. Husson, Veröffentlicht von Prentice-Hall, Inc., Copyright 1970 hingewiesen.
Zum Zwecke einer leichteren Bezugnahme sind in der nachfolgenden Anhangtabelle bestimmte Ausdrücke definiert, die im Zuge der Beschreibung einer bevorzugten Ausführungsform der vorliegenden Erfindung benutzt worden sind»
5098 28/067 8
b Q U Ü Ü 6
Anhangtabelle Verzeichnis von Ausdrücken
Absolute Adresse - das ist die physikalische Adresse eines Bytes in dem Hauptspeicher.
Adressenbildung - das ist eine Hardware-Funktion, die auf eine Anzahl von Adressenelementen hin eine absolute Adresse berechnet, die dazu benutzt wird, auf einen Speicherplatz in dem Hauptspeicher Bezug zu nehmen.
Adressierung - das ist die Lokalisierung eines Objektes durch irgendein Mittel aus einer Anzahl von virtuellen, verknüpfungsmäßigen und physikalischen Mitteln.
Adressenraum - das ist der einem Prozeß entsprechende Satz von verknüpfungsmäßigen, se_^aentlerten Adressen, die die Zentraleinheit in absolute Adressen während der Ausführung des betreffenden Prozesses zu transformieren erlaubt ist.
Adressenraumwort - das ist eines von zwei Worten in einem Prozeßsteuerblock, welches auf ein Segmenttabellenwortfeld zeigt. Das Segmenttabellenwortfeld definiert die dem Prozeß zugehörigen Segmenttabellen.
Adressensilbe - das ist eine Verknüpfungsadresse, die von der Zentraleinheit-Hardware erkannt wird; normalerweise ist es ein Operand eines Befehls.
Basisregister - das ist das Hauptelement in der Segment-Adressierung, auf das durch eine Zahl in jeder Adressilbe Bezug genommen wird,
Grenzadreßregister - das ist ein verfügbares Hardware-Register, welches die unterste Speicheradresse angibt, zu der die Software eine Zugriffsmöglichkeit hat.
509828/0678
- 111 -
Zentrale Prozessoreinheit bzw. Zentraleinheit - das ist ein Teil eines Rechners, der Schaltungen zur Steuerung der Interpretation und Ausführung von Befehlen enthält.
Kanal - das ist ein Kommunikationsmittel zwischen dem
ProzessoiLJuntersystem und einem peripheren Untersystem. Es gibt zwei Typen von Kanälen, physikalische Kanäle und Verknüpfungskanäle. Ein physikalischer Kanal ist die Hardware-Verbindung zwischen der Eingabe/Ausgabe-Steuereinrichtung und der peripheren Steuereinheit PCU. Ein Verknüpfungskanal ist ein Software-Kommunikationsweg zwischen dem Hauptspeicher und einer einzelnen peripheren Einrichtung.
Kanalbefehlseintrag (CCE) - das ist ein Befehl in einem Kanalprogramm·
Kanalbefehlswort - das ist ein Element eines Kanalbefehlseintrags · Zwei Kanalbefehlsworte bilden einen Kanalbefehlseintrag.
Kanalprogramm - das ist eine Folge von Befehlen, die die
Ausführung einer bestimmten Eingabe/Ausgabe-Operation durch eine periphere Einrichtung veranlassen.
Kompatibilitätseigenschaft (CF) - das ist die in dem Wirtssystem zur Erzielung einer gegnerischen Emulation enthaltene Hardware/Firmenware.
Effektive Adresse - das ist eine Verknüpfungsadresse im
Unterschied zu einer physikalischen Adresse, bestehend aus einer Segmenttabellennummer, einem Segmenttabelleneintrag und einer relativen Segmentadresse. Diese Elemente zeigen den Weg zu einem bestimmten Segmentdeskriptor, der schließlich zu dem Segment hinzeigt, auf das Bezug genommen ist»
509828/0678
Emulator-Unterstützungs-Packung (ESP) - das ist die Software-Einrichtung, die zur Vornahme der Emulation erforderlich ist. Die ESP-Packung bzw. der ESP-Satz ist die Schnittstelle zwischen der Kompatibilitätseigenschaft (CF) und dem Unterstützungs-Steuerprogramm (DF).
Emulator - das ist die kombinierte Hardware/Firmenware/Software. Der Emulator enthält:
1) die Kompatibilitätseigenschaft,
2) die Emulations-Unterstützungs-Packung und
3) die periphere Umsetz-Packung.
Firmenware - das ist eine Hardware-Einheit, wie ein Steuerspeicher, die Mikroprogramme speichert und eine Form der mikroprogrammierten Steuerung bildet.
Mehrzweckregister - das ist ein 32-Bit-Register, das für die Ausführung von Prozessen verfügbar ist und das im allgemeinen binäre Daten oder Bit-Reihen-Daten enthält. Bestimmte Mehrzweckregister können für die Indizierung benutzt werden.
Index - das ist eine Datenstruktur, die beibehalten wird und auf die hin durch das System gearbeitet wird. Die Struktur ist für den Benutzer lediglich in Größen eines Kennzeichens verfügbar, das der Benutzer abgibt, um eine bestimmte auftretende Aufzeichnung verfügbar zu machen oder eine Einstellung in eine bestimmte Aufzeichnung vorzunehmen.
Indizierung - das ist die Modifikation einer Adresse durch einen vorzeichenbehafteten arithmetischen Wert.
Index (Verschiebungs)-Wert - dieser Wert bezieht sich auf einen berechneten Adressenwert (der normalerweise durch die Kompatibilitätseigenschaft berechnet und in ein Indexregister eingeführt wird); der betreffende
509828/0678
Adressenwert kann auf ein Basisregister bezogen sein, um einen Informationsposten zu adressieren.
Indexregister - das ist ein für die Indizierung benutztes Mehrzweckregister.
Integrierte Emulation - der Emulator ist in dem System integriert; dabei erscheinen und laufen der Emulator und das System in dem möglichen Ausmaß als System-Benutzerjob unter dem Betriebssystem.
Verschachtelung - das ist ein sequentieller Zugriff zu Speichermoduln, um die Speicherzugriffszeit zu senken.
Eingabe/Ausgabe-Steuereinrichtung - das ist eine Einheit, die die Grundsteuerung für ein bestimmtes Eingabe/ Ausgabe-Untersystem liefert.
Eingabe/Ausgabe-Prozesse - das sind möglicherweise asynchrone Systemprozesse, die sich hauptsächlich mit der Verschiebung von Daten zwischen der peripheren Speichereinrichtung oder den Eingabe/Ausgabe-Einrichtungen und dem Hauptspeicher beschäftigen.
Verknüpfungskanal - siehe Kanal.
Hauptspeicher - das ist der gesamte adressierbare Speicher, von welchem aus Befehle ausgeführt oder von welchem Daten direkt in Register geladen werden können.
Magnetband-Steuereinrichtung - das sind die Elemente des peripheren Untersystems, die Magnetbandeinrichtungen steuern und betreiben (siehe periphere Prozessor/
Steuereinheit).
Massenspeicher-Steuereinrichtungen - das sind die Elemente des peripheren Untersystems, die Massenspeichereinrichtungen steuern und betreiben (siehe periphere Prozessor/Steuereinheit)
509828/0678
Speichermanagment - das ist das Betriebssystem, welches die Zuordnung, Neuzuordnung und Trennung des physikalischen Speichers erleichtert.
Mikroprogramm - das ist ein Satz von Maschinencodes, die zur Ausführung der Steuerfunktionen eines Prozessors benutzt werden.
Multiplex - das ist die Aufteilung einer Hardware-Hilfsquelle, wie eines Speichers, gewöhnlich in zeitlicher Aufteilung.
Versetzung - das ist bei der Adressenbildung die Anzahl von Bytes nach dem Beginn des Segments, wo ein adressierter Teil des Segments beginnt.
Betriebssystem - das ist ein System von Grund-Software, die vorgesehen ist, um die effektive Operation der Benutzer-Software zu unterstützen.
Periphere Prozessor/Steuereinheit - das ist ein alleinstehender mikroprogrammierter Prozessor, der Kanalprogramme zur Ausführung von Eingabe/Ausgabe-Operationen ausführt.
Periphere Umsetz-Packung - das sind die Bingabe/Ausgabe-Umsetz-Algorithmen, die von der ESP-Software in Verbindung mit der Hardware/Firmenware-Unterstützungsanordnung des peripheren Wirts-Untersystems ausgeführt werden.
Periphere Untersystem-Schnittstelle - das ist eine Standard-Schnittstelle * die für die Übertragung und Steuerung zwischen freistehenden peripheren Steuereinheiten und Eingabe/Ausgabe-Steuereinheiten verwendet werden.
Physikalischer Kanal - siehe Kanal.
509828/0678
Physikalische Datenstruktur - das ist eine vollständige Definition der Organisation der Daten, wie sie auf einem Datenträger physikalisch aufgezeichnet sind.
Physikalische Eingabe/Ausgabe - das ist derjenige Teil des Betriebssystems, der die Übertragung von Daten zwischen dem Speicher und den peripheren Einrichtungen oder Endeinrichtungen auslöst und steuert.
Physikalischer Speicher - das ist die Hardware, die für die Speicherung von Daten benutzt wird. Sie besteht aus verschiedenen Typen von Aufzeichnungs-Datenträgern und der Aufzeichnungs-Lese-Hardware.
Prozesssteuerblock - das ist eine Datenstruktur (durch Hardware festgelegt und erkennbar), die diejenige Information enthält, die erforderlich ist, um den Zustand eines Prozesses zu irgendeinem gegebenen Zeitpunkt anzugeben.
Prozessor - das ist eine Funktion, die Daten aufzunehmen, zu verarbeiten, Ergebnisse abzugeben und ihre Operations-Ablauffolge auf gespeicherte Programme hin zu steuern imstande ist: kurz für den zentralen Prozessor, generell für den zentralen Prozessor, den peripheren Prozessor oder den Hardware/Software-Prozessor.
Programm - das ist die Spezifikation der Prozedur und der zugeordneten Information, die zur Lösung eines Problems erforderlich ist.
ProgrammausfUhrung - das ist die Aktivität eines Prozesses in Übereinstimmung mit der Programmspezifikation.
Relative Adresse - das ist die Inkrement/Dekrement-Stelle einiger Objekte relativ zueinander.
509828/0678
Ring - das ist ein Schutz-Attribut eines Segmentes, welches den Lese-, Schreib- und Ausführungs-Zugriff von Prozessen auf ein Segment beschränkt.
Segment - das ist ein abhängiger bzw. angrenzender Hauptspeicherraum, der als Einheit behandelt wird.
Segmentierung - das ist die Ausnutzung einer Unterteilung des Hauptspeichers in Verknüpfungs-Gruppen, die Segmente genannt werden, anstatt in einen einzigen linearen Speicher.
Segmentbasis - das ist der gegenwärtige Ursprung des Segments. Dies ist ein Feld der Felder in einem Segment-Diskriptorwort.
Segmentdeskriptor - das ist ein Eintrag in einer Segmenttabelle, der die Eigenschaften eines Segmentes definiert oder auf einen Segmentdeskriptor zeigt.
Segmentierte Adresse - siehe effektive Adresse.
Segmentnummer - das ist die Idendifikation eines bestimmten Segmentes, bestehend aus einer Segmenttabellennummer (die eine der Segmenttabellen des Prozesses auswählt) und einem Segmenttabelleneintrag der betreffenden gewählten Tabelle.
Alleinstehender-(Kompatibilitäts)-Betrieb - das ist eine nicht-integrierte Form der Emulation, bei der die Wirts-Umgebung ausschließlich als emuliertes Zielsystem funktioniert. Dabei sind keine System-Zusammenstellungen angenommen; zur Umschaltung von einem System auf ein anderes System ist eine Neuini tialisierung erforderlich.
Stützsteuerprogramm (SCP) - das ist ein Prograem, unter dem mit speziellen Systemmoduln die ESP-Software bestimmt wird, als Prozeßgruppe zu laufen.
509828/0678
Für den auf dem vorliegenden Gebiet tätigen Fachmann dürfte ersichtlich sein, daß eine Vielzahl von Veränderungen bei der bevorzugten Ausführungsform der vorliegenden Erfindung vorgenommen werden kann. So können z.B. in dem Fall, daß bestimmte Typen von Hilfsquellen durch die Eingabe/Ausgabe-Befehle, bestimmte Tabellen und Tests, die von den Mikrobefehlsroutinen ausgeführt werden, nicht angegeben zu werden brauchen, entweder vereinfacht oder weggelassen werden. Außerdem können alternative Anordnungen der Betriebsart-Umschaltung und der Mikroprogrammsteuerelemente verwendet werden. So kann es z.B. erwünscht sein, ein gesondertes Mikroprogrammsteuerelement anstelle eines gemeinsamen Steuerelementes für die Speicherung von Emulations-Mikrobefehlsroutinen zu verwenden.
Abschließend sei bemerkt, daß durch die vorliegende Erfindung ein mikroprogrammiertes Wirts-Datenverarbeitungssystem mit einer Vielzahl von Tabellen geschaffen worden ist, um Informationen zu speichern, die so codiert sind, daß sie eine Vielzahl von unterschiedlichen Eingabe/Ausgabe-Systemkonfigurationen von Hilfsquellen angeben, die zur Ausführung von Eingabe/Ausgabe-Befehlen in einer entsprechenden Anzahl von Zielsystemen, die durch das Wirtssystem emuliert werden, erforderlich sind. Das Wirtssystem enthält ferner eine Emulationsanordnung, die einen Steuerspeicher aufweist, der Mikroprogramme zur Leitung des Systems im Zuge der Verarbeitung von Eingabe/Ausgabe-Befehlen der Zielprogramme speichert. Ferner dient diese Anordnung dazu zu kontrollieren, ob jeder derartige Befehl durch das Wirtssystem ausgeführt werden kann. Die Emulationsanordnung erzeugt eine codierte Information, die anzeigt, welche Routine aus einer vorgegebenen Anzahl von Kanalprogrammroutinen des Wirtssystems benötigt wird, um
509828/0678
für die Ausführung des Eingabe/Ausgabe-Befehls unter Ausnutzung der Wirts-Eingabe/Ausgabe-Hilfsquellen verwendet zu v/erden. Unter Heranziehung der Information der Tabellen vermag die Emulationsanordnung vollständig bestimmte Typen von Zielsystem-Singabe/Ausgabe-Befehlen auszuführen, die zur Durchführung von Steueroperationen benutzt werden.
509828/0678

Claims (1)

  1. Patentansprüche
    Wirtsdatenverarbeitungssystem für die Verarbeitung von Befehlen eines Zielprogramms, welches eine Vielzahl von Befehlen enthält, die mit irgendeinem Format aus einer Vielzahl von Formaten codiert sind, dadurch gekennzeichnet, daß eine erste Speichereinrichtung (104) mit einer Vielzahl von Speicherbereichen vorgesehen ist, deren jeder eine Vielzahl von adressierbaren Speicherplätzen aufweist, daß ein erster Speicherbereich so ausgelegt ist, daß er das Zielsystemprogramm speichert, welches zumindest einen Eingabe/Ausgabe-Befehl mit einem Operationscode-Zeichen und einer Vielzahl von Steuerzeichen enthält, daß ein zweiter Speicherbereich der genannten Speicherbereiche eine Vielzahl von Tabellen speichert, deren jede eine Anzahl von Einträgen aufweist, welche Anzahl der Anzahl von Zielsystem-Hilfsquellen unterschiedlicher Klassen entspricht, die in dem Wirtssystem nicht vorhanden sind und die für die Ausführung von Eingabe/Ausgabe-Befehlen erforderlich sind, welche unterschiedliche programmierbare Konfigurationen von Hilfsquellen angeben, die in irgendeinem Zielsystem einer Anzahl von normalerweise für die Ausführung der Befehle betriebenen Zielsystemen enthalten sind, daß mit der ersten Speichereinrichtung eine Vielzahl von Speicherregistern (206-58, 206-82, 206-84) verbunden ist, die unterschiedliche Steuerzeichen der Eingabe/Ausgabe-Befehle während deren Ausführung zu speichern gestatten, daß mit der Vielzahl von Registern eine Reehen- und Verknüpfungseinheit verbunden ist, daß eine Steuerspeichereinrichtung (101-5) vorgesehen ist, die eine Vielzahl von Mikroprogramm-Ablauf folgen enthält, deren jede eine Vielzahl von Mikrobefehlen aufweist, auf deren Decodierung Steuereignale für die Steuerung der Übertragung von Informationsbytes zwischen der ersten Speichereinrich- ' tung, der Vielzahl von Registereinrichtungen und der
    509828/0678
    Rechen- und Verknüpfungseinrichtung in dem Fall erzeugt werden, daß das Wirtssystem veranlaßt ist, die Operationen eines der genannten Zielsysteme zu emulieren, daß die betreffenden Steuersignale ferner die Ausführung der genannten Befehle bewirken, daß mit der Rechen- und Verknüpfungseinrichtung und den in einer Vielzahl vorgesehenen Register-
    (101-4) einrichtungen eine Verzweigungs- und Prüfeinrichtung/ver-
    (101-5) bunden ist, und daß die Steuerspeichereinrichtung/derart betrieben ist, daß eine Bezugnahme auf Jede der in einer Vielzahl vorgesehenen Mikroprogramm-Ablauffolgen in einer bestimmten Reihenfolge erfolgt, derart, daß Einträge in jeder der in einer Vielzahl vorgesehenen Tabellen dadurch abgerufen werden, daß die Rechen- und Verknüpfungseinrichtung Adressensignale unter Heranziehung von unterschiedlichen Steuerzeichen erzeugt, die in den genannten Registern gespeichert sind, wobei jede Ablauffolge die Rechen- und Verknüpfungseinrichtung veranlaßt, bestimmte Bits von entsprechenden Einträgen von der Verzweigungsund Prüfeinrichtung dadurch überprüfen zu lassen, daß die Gültigkeit und die Verfügbarkeit unterschiedlicher Zielsystem-Hilfsquellen kontrolliert wird, die für die Ausführung des Befehls durch das Wirtssystem festgelegt sind, derart, daß innerhalb einer minimalen Zeitspanne festgestellt wird, ob die Befehlsausführung vornehmbar ist.
    2. System nach Anspruch 1, dadurch gekennzeichnet, daß jede der Tabellen des genannten zweiten Bereichs durch eine bestimmte Basis-Bezugsadresse in ihrer Lage bestimmbar ist, daß der genannte zweite Bereich eine Kanal-Hilfsquellentabelle enthält, die eine Vielzahl von Einträgen für das Zielsystem speichert, das emuliert wird, daß ein Eintrag je Kanal vorgesehen ist, der durch einen Eingabe/Ausgabe-
    509828/0673
    Befehl des Zielsystem-Programms angebbar 1st und der den Status des Kanals anzeigt, daß ein bestimmter Eintrag vorgesehen ist, der zur Anzeige des gegenwärtigen Status von Kanälen in dem Zielsystem entsprechend codiert ist, daß die Steuerspeichereinrichtung eine erste Mikrobefehls-Ablauffolge mit den Mikrobefehlen für die Erzeugung eines ersten Satzes von Steuersignalen enthält, durch die die Rechen- und Verknüpfungseinheit veranlaßt wird, die Bezugs-Basisadresse und ein erstes Steuerzeichen des Eingabe/Ausgabe-Befehls in einer solchen bestimmten Weise miteinander zu verknüpfen, daß eine indizierte Adresse erzeugt wird, durch die einer der Einträge aus der Kanal-Hilfsquellentabelle abrufbar ist, daß durch die genannten Mikrobefehle ein zweiter Satz von Steuersignalen für die Erzeugung einer bestimmten Adresse erzeugbar ist, durch die der jeweilige bestimmte Eintrag abholbar ist, daß die Rechen- und Verknüpfungseinrichtung eine Anordnung enthält, die auf die ersten Steuersignale der Ablauffolge hin eine Verknüpfungsoperation ausführt, und zwar auf bestimmte Informationsteile der Einträge, derart, daß die Verfügbarkeit der Kanal-Hilfsquellen für die Zuteilung überprüft wird, und daß eine mit der Rechen- und Verknüpfungseinrichtung verbundene Ausgabeeinrichtung auf das Ergebnis der betreffenden Verknüpfungsoperation hin eine Anzeige-Speichereinrichtung in einen bestimmten Zustand setzt, durch den der Belegtzustand des Kanals für das Wirtssystem signalisiert wird.
    System nach Anspruch 2, dadurch gekennzeichnet, daß die Einträge jeweils so codiert sind, daß sie einen Zählercode-Schrittbereich und einen Belegungs-Maskenfeldbereich enthalten, daß der Zählercode-Feldbereich so codiert ist, daß er eine Adresse eines der in einer Vielzahl vorgesehenen
    509828/0678
    Zählers angibt, die in dem Zielsystem für die Adressierung von Speicherraum durch die bezeichnete Kanal-Hilfsquelle benutzt sind, daß der Belegungs-Ausblendfeldbereich so codiert ist, daß er angibt, welche Kanal-Hilfsquellen zum Zwecke der Anpassung an eine bestimmte Übertragungsrate miteinander zu verbinden sind, daß die erste Mikrobefehls-Ablauf folge Steuersignale erzeugt, durch die die Rechen- und Verknüpfungseinrichtung und die Verzweigungs- und Prüfeinrichtung veranlaßt werden, den betreffenden Zählercode-Feldbereich des betreffenden einen Eintrags auf ein bestimmtes Bitmuster hin zu überprüfen, welches die Ungültigkeit der Zähleradresse in dem Zielsystem anzeigt, daß die Steuerspeichereinrichtung durch die Verzweigungs- und Prüfeinrichtung in dem Fall, daß die Zähleradresse als ungültig ermittelt wird, veranlaßt wird, eine Verzweigung zu einer Folge von Mikrobefehlen hin zu bewirken, derart, daß eine in bestimmter Weise codierte Nachricht erzeugt wird, die anzeigt, daß die betreffende Zähleradresse ungültig ist, daß die Verzweigungs- und Prüfeinrichtung in dem Fall, daß die Zähleradresse als gültig ermittelt worden ist, derart betrieben wird, daß die Steuerspeichereinrichtung veranlaßt wird, die Ausführung der genannten ersten Ablauffolge fortzusetzen, daß durch die betreffende Ablauffolge Steuersignale erzeugt werden, die die Rechen- und Verknüpfungseinheit veranlassen, eine Verknüpfungs- und/oder Rechenoperation auf den Inhalt der Belegungs-Ausblendfeldbereiche des betreffenden einen Eintrags bzw. des betreffenden bestimmten Eintrags hin auszuführen, und daß das Ergebnis zum Zwecke der Feststellung der Verfügbarkeit der Zielsystem-Kanalhilfsquellen für die Zuteilung auf Null überprüft wird.
    509828/0678
    4. System nach Anspruch 39 dadurch gekennzeichnet, daß der Belegungs-Ausblendfeldbereich jedes Eintrags selektiv derart codiert ist, daß bestimmte Beschränkungen festgelegt werden, und daß diejenigen Verbindungs-Beschränkungen aufgehoben werden, die für eine in Frage kommende Ausführung des Zielsystem-Programms durch das Wirtssystem nicht benötigt werden.
    5. System nach Anspruch 2, dadurch gekennzeichnet, daß die Rechen- und Verknüpfungseinrichtung durch die genannten Steuersignale veranlaßt wird, die indizierte Adresse in der genannten bestimmten Weise dadurch zu erzeugen, daß der Wert der Basisadresse zu dem Vierfachen des Wertes des Kanalcodes hinzuaddiert wird, der durch das erste Steuerzeichen angegeben ist.
    6. System nach Anspruch 3> dadurch gekennzeichnet, daß der zweite Bereich ferner eine Sektor-Hilfsquellentabelle enthält, die eine Vielzahl von Einträgen für das Zielsystem speichert, das emuliert wird, daß jeder Eintrag so codiert ist, daß er diejenigen Zeitfächer angibt, die von dem Zielsystem für die Zuteilung zum Zwecke der Anpassung an eine Übertragungsrate in einem Sektor des Zielsystems benötigt sind, die bzw. der durch bestimmte Steuerzeichen angegeben ist, daß der betreffende eine Eintrag der Kanal-Hilfsquellentabelle ferner einen Zeitfach-Ausblendfeldbereich enthält, der so codiert ist, daß er eine Anzahl von Zeitfächern angibt, die von dem Sektor zwecks Anpassung an die betreffende Übertragungsrate für eine Zuteilung erforderlich sind, daß die Steuerspeichereinrichtung eine zweite Mikrobefehls-Ablauffolge enthält, die Mikrobefehle für die Erzeugung von Steuersignalen aufweist, durch die die Rechen- und Verknüpfungseinrichtung und die Verzwelgungs- und Prüfein-
    509828/0678
    richtung veranlaßt werden, den Wert eines bestimmten Teiles eines zweiten Steuerzeichens des genannten Befehles zu überprüfen, derart, daß die Formatbildung des betreffenden Befehls bestimmt wird, daß die Rechen- und Verknüpfungseinrichtung durch bestimmte Steuersignale in Übereinstimmung mit den Ergebnissen der Überprüfung veranlaßt wird, einen Sektorcode aus bestimmten Bits bestimmter Steuerzeichen zu erzeugen, die mit der genannten Bezugs-Basisadresse in einer solchen bestimmten Weise verknüpft werden, daß eine indizierte Adresse erzeugt wird, durch die ein Eintrag aus der Sektor-Hilfsquellentabelle abholbar ist, daß die Rechen- und Verknüpfungseinrichtung und die Verzweigungs- und Prüfeinrichtung durch andere Steuersignale veranlaßt werden, auf einen einen gültigen Zielsystem-Sektor angebenden Befehl hin eine Verknüpfungsoperation auszuführen, und zwar auf den genannten Zeitfach-Ausblendbereich des genannten einen Eintrags und auf einen bestimmten Teil des betreffenden einen Eintrags von der genannten Sektor-Hilfsquellentabelle her, derart, daß die Verfügbarkeit derjenigen Zeitfächer geprüft wird, die für die Anpassung an die Übertragungsrate angegeben sind, und daß die genannte Ausgabeeinrichtung auf das Ergebnis der betreffenden Operation hin die Anzeige-Speichereinrichtung in den bestimmten Zustand setzt, der den Belegungsstatus des betreffenden Kanals hervorruft und der signalisiert, daß die angegebenen Zeitfächer belegt sind.
    System nach Anspruch 6, dadurch gekennzeichnet, daß die Zeitfach-Ausblendung des jeweiligen Eintrags derart selektiv codiert ist, daß bestimmte Beschränkungen hervorgerufen und diejenigen Verwendungs-Beschränkungen aufgehoben werden, die für eine in Frage kommende Ausführung des genannten Zielsystemprogramms nicht erforderlich sind.
    509828/0678
    2b0U006
    8. System nach Anspruch 6, dadurch gekennzeichnet, daß die genannte Rechen- und Verknüpf ungseinrichtung durch die Steuersignale veranlaßt wird, die indizierte Adresse dadurch zu erzeugen, daß der Wert der betreffenden Basisadresse und ein konstanter Wert, der kennzeichnend ist für die Größe der Kanal-Hilfsquellentabelle, dem Vierfachen des Wertes des Sektorcodes hinzuaddiert wird, der durch das zweite Steuerzeichen angegeben ist.
    9. System nach Anspruch 6, dadurch gekennzeichnet, daß die Einträge der Sektortabelle Jeweils einen Zeitfach-Statusfeldbereich und einen Statusfeldbereich enthalten, daß der Zeitfach-Statusfeldbereich so codiert ist, daß er diejenigen Zeitfächer angibt, die in den Sektor gerade benutzt sind, daß der Statusfeldbereich so codiert ist, daß er anzeigt, ob der Sektor in dem Zielsystem vorhanden ist, und daß die Rechen- und Verknüpfungseinrichtung durch bestimmte Mikrobefehle in der zweiten Mikrobefehls-Ablauffolge veranlaßt wird, den Statusfeldbereich zu überprüfen und eine UND-Verknüpfungsoperation auf den Inhalt des Zeitfach-Statusfeldes und des Zeitfach-Ausblendfeldes hin auszuführen, derart, daß die Verfügbarkeit von angegebenen Zeitfächern lediglich dann überprüft wird, wenn die Prüfung positiv ist.
    10. System nach Anspruch 9, dadurch gekennzeichnet, daß die Verzweigungs- und Prüfeinrichtung bei Fehlen einer positiven Prüfung veranlaßt wird, eine Verzweigung auf eine Folge von Mikrobefehlen hin auszuführen, und zwar zur Erzeugung einer in bestimmter Weise codierten Nachricht, die signalisiert, daß der durch den Befehl bezeichnete Sektor in dem Zielsystem nicht vorhanden ist. .........
    609828/0678
    11. System nach Anspruch 6, dadurch gekennzeichnet, daß der zweite Bereich ferner eine periphere Steuer-Hilfsquellentabelle enthält, die eine Vielzahl von Einträgen für Jeden Sektor in dem Zielsystem speichert, daß ein Eintrag für jede mögliche periphere Steueradresse vorgesehen ist, die von dem ZielSystemprogramm angebbar ist, daß jeder derartige Eintrag so codiert ist, daß er eine den Typ der peripheren Steuereinheit angebende Statusinformation enthält, daß jeder Eintrag der Sektor-Hilfsquellentabelle ferner einen Verschiebungsadressenwert enthält, der die Lage der zugehörigen peripheren Steuerhilfsquellentabelle angibt, daß die Steuerspeichereinrichtung eine dritte Mikrobefehls-Ablauf folge enthält, welche Mikrobefehle aufweist, die die Rechen- und Verknüpfungseinrichtung veranlassen, eine indizierte Adresse dadurch zu erzeugen, daß in einer bestimmten Weise die Basisadresse und der Verschiebungsadressenwert des betreffenden einen Eintrags mit einem peripheren Steuercode verknüpft werden, der einer Vielzahl von Adressencodebits entspricht, die in einem bestimmten Steuerzeichen der Steuerzeichen enthalten sind, derart, daß eine Adresse einer der in einer Vielzahl vorgesehenen peripheren Steuereinheiten der Rechen- und Verknüpfungseinrichtung angegeben wird, und daß die Verzweigungs- und Prüfeinrichtung durch in der dritten Mikrobefehls-Ablauffolge enthaltene Mikrobefehle veranlaßt wird, zur Überprüfung ein bestimmtes Bit des betreffenden einen aus der peripheren Steuertabelle abgerufenen Eintrags auszuwählen, derart, daß überprüft wird, ob der betreffende Status unmittelbar für eine einzelne periphere Steuerung ausnutzbar ist oder ob eine Aufteilung mit dem Abruf eines weiteren Eintrags von der peripheren Steuertabelle erforderlich ist, und zwar zum Zwecke der Festlegung der Status-Information,
    509828/0678
    die den durch den Befehl bezeichneten Typ der peripheren Steuerung angibt.
    12. System nach Anspruch 11, dadurch gekennzeichnet, daß das bestimmte Bit des genannten einen Eintrags in einen bestimmten Zustand gesetzt wird, derart, daß die unmittelbare Ausnutzung des betreffenden Zustande für die einzelne periphere Einrichtung ermöglicht ist.
    13. System nach Anspruch 11, dadurch gekennzeichnet, daß die Rechen- und Verknüpfungseinrichtung veranlaßt wird, die indizierte Adresse in der bestimmten Weise dadurch zu erzeugen, daß der Vert der Basisadresse und des Verschiebungswertes des einen Sektortabelleneintrags zu dem Vielfachen des peripheren Steuercodes hinzuaddiert wird.
    14. System nach Anspruch 11, dadurch gekennzeichnet, daß die Steuerspeichereinrichtung ein· weitere Mikrobefehlsfolge mit Mikrobefehlen enthält, die die Verzweigungs- und Prüfeinrichtung veranlassen, eine Mehrfachverzweigungsoperation auf die Codierung derjenigen Zustandeinformation hin auszuführen, die den Typ der peripheren Steuerung für eine der in einer Anzahl vorgesehenen unterschiedlichen Mikrobefehlsfolgen angibt, welche in Übereinstimmung mit dem Typ der peripher·» Steuerung codiert lind, und daß jede der Mikrobefehlefolgen Mikrobefehle enthält, durch die Steuersignale erzeugbar sind, mit deren Hilfe ein unterschiedlicher bestimmter Code speicherbar ist, der den Typ der peripheren Steuerung angibt, der durch den Befehl bezeichnet ist.
    &09828/0678
    15. System nach Anspruch 14, dadurch gekennzeichnet, daß die Verzweigungs- und Prüfeinrichtung auf eine insgesamt aus Nullen bestehende Codierung hin eine Verzweigung zu einer bestimmten der in einer Anzahl vorgesehenen Mikrobefehlsfolgen hin ausführt, derart, daß eine bestimmte Nachricht erzeugt wird, die signalisiert, daß der durch den betreffenden Befehl bezeichnete periphere Steuerungstyp in dem Zielsystem nicht vorhanden ist.
    16. System nach Anspruch 14, dadurch gekennzeichnet, daß die Steuerspeichereinrichtung eine vierte Mikrobefehlsfolge enthält und daß die Rechen- und Verknüpfungseinrichtung und die Verzweigungs- und Prüfeinrichtung durch Mikrobefehle der vierten Mikrobefehlsfolge veranlaßt werden, ein bestimmtes Bit des betreffenden einen Eintrags aus der peripheren Steuertabelle zu überprüfen und ein zweites Anzeigeglied derart zu setzen, daß der Belegungsstatus der peripheren Steuerung für das Wirtssystem signalisiert wird.
    17. System nach Anspruch 14, dadurch gekennzeichnet, daß
    der zweite Bereich ferner eine Einrichtungs-Hilfsquellentabelle für die Speicherung einer Vielzahl von Einträgen für jeden Typ einer peripheren Steuerung enthält, wobei jeweils ein derartiger Eintrag für jede mögliche periphere Einrichtungsadresse erfolgt, die von dem Zielsystemprogramm angebbar ist, daß der jeweilige Eintrag so codiert ist, daß er eine Statusinformation bezüglich der betreffenden Einrichtung enthält, daß der jeweilige Eintrag der peripheren Steuertabelle ferner einen Verschiebungsadressenwert enthält, der den Ort der zugehörigen peripheren Steuertabelle angibt, und daß die Steuerspeichereinrichtung
    509828/0678
    ferner eine fünfte Mikrobefehlsfolge mit Mikrobefehlen enthält, welche die Rechen· und Verknüpfungseinrichtung veranlassen, eine indizierte Adresse zu erzeugen, und zwar durch Verknüpfung der Basisadresse und des Verschiebungsadressenwertes des betreffenden einen Eintrags mit einem perlpheren Einrichtungsadressencode, der einer Vielzahl von Adressencodebits entspricht, die in einem bestimmten der Steuerzeichen enthalten sind und eine Adresse einer der in einer Vielzahl vorgesehenen peripheren Einrichtungen angeben, derart, daß ein Abruf einer der in einer Vielzahl vorgesehenen Einträge aus der Einrichtungs-Hilfsquellentabelle erfolgt.
    18. System nach Anspruch 17> dadurch gekennzeichnet, daß die Rechen- und Verknüpfungseinrichtung durch die Mikrobefehle veranlaßt wird, die indizierte Adresse in der bestimmten Weise dadurch zu erzeugen, daß der Wert der Basisadresse und der Verschiebewert des betreffenden einen peripheren Steuertabelleneintrags zu dem Vierfachen des peripheren Einrichtungscodes hinzuaddiert wird.
    19. System nach Anspruch 17, dadurch gekennzeichnet, daß der Steuerspeicher eine sechste Mikrobefehlsfolge enthält und daß die Rechen- und Verknüpfungseinrichtung und die Verzweigungs- und Prüfeinrichtung durch Mikrobefehle in der betreffenden Mikrobefehlsfolge veranlaßt werden, den Einrichtungs-Hilfsque11eneintrag zu überprüfen und eine dritte Anzeige-Speichereinrichtung derart einzustellen, daß der Belegungsstatus der betreffenden Einrichtung dem Wirtssystem signalisiert wird.
    509828/0678
    20. Datenverarbeitungssystem für die Verarbeitlang von Befehlen eines ZielSystemprogramms, welches unterschiedliche Arten von Eingabe/Ausgabe-Befehlen enthält, die in irgendeinem Format aus einer Vielzahl von unterschiedlichen Formaten codiert sind, unter Verwendung einer Vielzahl von Registern, die zur Aufnahme und übertragung der Information miteinander verbunden sind und mit denen eine Reehen- und Verknüpfungseinrichtung verbunden ist, und unter Verwendung einer Mikroprogrammsteuereinrichtung, die die Informationsübertragung in dem System zu steuern gestattet, insbesondere nach einem der Ansprüche 1 bis 19, dadurch gekennzeichnet, daß für einen Emulationsbetrieb ein Hauptspeicher/mix einer Vielzahl von adressierbaren Bereichen vorgesehen ist, daß das Zielsystemprogramm in einem ersten der betreffenden Bereiche gespeichert wird, daß das ZielSystemprogramm zumindest einen Typ von Eingabe/Ausgabe-Befehl enthält, der so codiert ist, daß er ein Operationscodezeichen enthält, welches eine Operation angibt, die von dem Verarbeitungssystem in dem Fall nicht ausführbar ist, daß in einem Normalbetrieb gearbeitet wird, daß eine erste Gruppe von Adressenzeichen entsprechend einem ersten Adressenfeld vorgesehen ist, daß zumindest ein erstes Steuerzeichen vorgesehen ist, welches so codiert ist, daß es zumindest eine Kanalhilfsquelle von in einer Vielzahl vorgesehenen Kanalhilfsquellen eines Zielsystems angibt, welches für die Ausführung des betreffenden Zielprogramms ausgebildet ist, daß in einem zweiten Bereich der genannten Bereiche eine Vielzahl von Tabellen gespeichert ist, deren Jede durch eine bestimmte Basisbezugsadresse angebbar ist und eine Vielzahl von Einträgen enthält, die so codiert sind, daß der Status der Jeweiligen Hilfsquelle eines Typs einer Vielzahl von
    609828/067 8
    unterschiedlichen Typen bezeichnet wird, die von dem Programm angebbar sind und die für die Ausführung der unterschiedlichen Typen von Eingabe/Ausgabe-Befehlen erforderlich sind, daß die^Mikroprogramm-Steuereinrichtung einen Steuerspeicher/enthält, der eine Vielzahl von Mikroprogrammfolgen speichert, deren Jede die Gültigkeit und Verfügbarkeit von Hilfsquellen einer bestimmten Klasse von HilfsqueIlen dadurch kontrolliert, daß die übertragung von Informationseinträgen zwischen einer Tabelle des genannten zweiten Bereichs des Hauptspeichers, den in einer Vielzahl vorgesehenen Registern und der Rechen- und Verknüpfungseinrichtung gesteuert *Afd, daß eine Verzweigung s- und Prüfsteuereinrichtung/vorgesehen ist, die Signale von der Rechen- und Verknüpfungseinrichtung und von ausgewählten Registern der in einer Vielzahl vorgesehenen Register aufnimmt, daß die betreffende Steuereinrichtung durch die Verzweigungs- und Prüfsteuereinrichtung zunächst veranlaßt wird, eine Verzweigung auf eine erste Hauptroutine in dem Fall auszuführen, daß das Operationscodezeichen derart codiert ist, daß eine Steuerungs- und Verzweigungsoperation angegeben 1st, daß die erste Hauptroutine durch den Steuerspeicher veranlaßt wird, auf unterschiedlich· Routinen in einer bestimmten Reihenfolge Bezug zu nehmen» derart, daß bestimmt wird, daß die für die überprüfung durch den Befehl bezeichneten Hilfsquellen für «ine Zuteilung in dem Zielsystem zutreffen und verfügbar sind, und daß die Haupt-Routine an einer bezeichneten Stell· eine Mikrobefehlsfolge enthält, durch die die Mikroprogramesteuereinrichtung veranlaßt wird, Signale zur Ausführung einer AdressenprUfung auf das erste Adressenfeld des Befehls hin in dem Fall zu erzeugen, daß die bezeichneten Hilfsquellen
    509828/067 θ
    belegt sind, derart, daß eine Wiederholung in dem Zielsystemprogramm der durch das Befehls-Operationscodezeichen bezeichneten Operation solange signalisiert wird, bis die Hilfsquellen verfügbar sind, wobei eine Systemfreisetzung für andere Operationen ermöglicht ist.
    21. System nach Anspruch 20, dadurch gekennzeichnet, daß die Mikrobefehlsfolge der Haupt-Routine an einer bezeichneten Stelle einen Mikrobefehl enthält, der die Rechen- und Verknüpfungseinrichtung veranlaßt, das erste Adressenfeld mit einer Adresse zu vergleichen, die in einem der in einer Vielzahl vorgesehenen Register gespeichert ist und die die Adresse in dem Zielprogramm des betreffenden einen Typs von Befehl darstellt, der ausgeführt wird, und daß die Routine Mikrobefehle enthält, die die Mikroprogramm-Steuereinrichtung veranlassen, auf Mikrobefehle Bezug zu nehmen, derart, daß eine Verzweigung auf den Befehl in dem Zielsystemprogramm hervorgerufen wird, der durch das erste Adressenfeld angegeben ist, und zwar auf die Ermittelung eines Signals, welches anzeigt, daß die Adressen ungleich sind,
    22. System nach Anspruch 20, dadurch gekennzeichnet, daß der genannte eine Typ des Eingabe/Ausgabe-Befehls ferner ein zweites Steuerzeichen enthält, welches so codiert ist, daß es eine von in einer Vielzahl vorgesehenen Sektor-Hilfsquellen und eine von in einer Vielzahl vorgesehenen peripheren Steuer-Hilfsquellen in dem Zielsystem für die Ausführung des betreffenden Befehls bezeichnet, daß der betreffende Befehl ferner eine erforderliche Anzahl von Steuerzeichen enthält, durch die weitere Hilfsquellen des
    509828/0678
    Zielsystems angebbar sind, die von dem System für die Ausführung einer Datenübertragungsoperation anzugeben erforderlich sind, welche eine der in einer Vielzahl vorgesehenen peripheren Einrichtungen betrifft, daß die Verzweigungs- und Prüfsteuereinrichtung die genannte Steuereinrichtung veranlaßt, zunächst eine Verzweigung zu einer zweiten Haupt-Routine hin in dem Fall vorzunehmen, daß das Operationscodezeichen derart codiert ist, daß die Ubertragungsoperation bezeichnet ist, daß die zweite Routine den betreffenden Steuerspeicher veranlaßt, auf jede der Befehlsfolgen in der bestimmten Reihenfolge solange Bezug zu nehmen, bis die UnverfUgbarkeit einer Hilfsquelle für die Zuteilung ermittelt ist oder bis festgestellt ist, daß sämtliche durch den Befehl bezeichneten Hilfsquellen für die Zuteilung zutreffen und verfügbar sind, daß die zweite Hauptroutine an unterschiedlichen bezeichneten Stellen Mikrobefehle enthält, die eine Abruf nachricht von in einer Anzahl vorgesehenen bestimmten Abruf nachrichten für die Speicherung in einem bestimmten Register der in einer Vielzahl vorgesehenen Register erzeugen, und daß durch die Abrufnachricht der Typ einer erforderlichen Programmunterstützung angezeigt wird, wobei die betreffende Abrufnachricht eine Information enthält, welche die Klasse des Befehls anzeigt, der ausgeführt wird, und den Zustand der jeweils verarbeiteten Hilfsquelle.
    23. System nach Anspruch 22, dadurch gekennzeichnet, daß für einen ersten Unterstützungstyp eine bestimmte Abrufnachricht derart codiert ist, daß sie irgendeinen Code aus einer Anzahl von einrichtungsspezifischen Codes enthält, welcher signalisiert, daß der betreffende Befehl ein
    SOd828/067Ö
    gültiger, ausführbarer Datenübertragungsbefehl für die durch den Code bezeichnete Einrichtung ist, daß für einen zweiten Unterstützungstyp die Nachricht derart codiert ist, daß sie einen ersten bestimmten Code enthält, der signalisiert, daß der betreffende Befehl eine unzulässige Kanal-Hilfsquelle angibt, daß für einen dritten Unterstützungstyp die Nachricht derart codiert ist, daß sie einen dritten bestimmten Code enthält, der signalisiert, daß der betreffende Befehl eine nicht vorhandene periphere Steuer-Hilfsquelle bezeichnet, daß für einen vierten Unterstützungstyp die betreffende Nachricht derart codiert ist, daß sie einen vierten bestimmten Code enthält, der signalisiert, daß der Befehl nicht eine periphere Steuer-Hilfsquelle angibt, und daß für einen fünften Unterstützungstyp die betreffende Nachricht derart codiert ist, daß sie einen fünften bestimmten Code enthält, der signalisiert, daß der betreffende Befehl unzulässige/undefinierte Reihen von Steuerzeichen enthält.
    24. System nach Anspruch 23» dadurch gekennzeichnet, daß die genannte eine bestimmte Abrufnachricht Status-Bits für die Signalisierung des Status der Kanal-Hilfsquelle, der peripheren Steuer-Hilfsquelle und d?r peripheren Einrichtungs-Hilfsquelle enthält, daß sämtliche Status-Bits für den genannten ersten Unterstützungstyp in einen ersten bestimmten Zustand gesetzt sind, in welchen signalisiert wird, daß die genannten Hilfsquellen nicht belegt sind, und daß die übrigen Abrufnachrichten bezüglich zumindest eines der Status-Bits in einen zweiten bestimmten Zustand gesetzt sind, in welchem signalisiert wird, daß eine der genannten Hilfsquellen belegt ist.
    509828/0678
    25. System nach Anspruch 23, dadurch gekennzeichnet, daß die erste Haupt-Routine und die zweite Haupt-Routine und die Vielzahl von Mikrobefehlsfolgen an festgelegten Punkten einen Mikrobefehl enthalten, der für die Speicherung einer Status-Information in einem bestimmten Satz der in einer Vielzahl vorgesehenen Register dient, welche Information aus dem Befehl abgeleitet 1st, der die Befehlsverarbeitung betrifft, wobei die Statusinformation ein Operationscodezeichen, einen peripheren Identifizierungscode und einen Steuer-Identifizierungscode enthält.
    26. Verfahren zur Erleichterung der Emulation von Eingabe/Ausgabe-Befehlen mit irgendeinem Format aus einer Vielzahl von unterschiedlichen Formaten, wobei jeder Befehl eine Vielzahl von Zeichen eines Zielsystemprogramms enthält, unter Verwendung eines Datenverarbeitungssystems, insbesondere nach einem der vorhergehenden Ansprüche, mit einem Hauptspeicher, der eine Vielzahl von Speicherbereichen aif weist, deren einer das Zielsystemprogramm speichert, mit einer Vielzahl von Registern, die über eine Vielzahl von Busleitungen miteinander verbunden sind, mit einer Rechen- und Verknüpfungseinrichtung, die Signale von bestimmten Registern aufzunehmen vermag, und mit einem Mikroprogramm-Steuersystem^ welches die Übertragung von Daten zwischen dem Speicher, den Registern und der Rechen- und Verknüpfungseinrichtung/in einem Emulations-Operationsbetrieb dadurch zu steuern gestattet, daß in einem Steuerspeicher/enthaltene Mikrobefehle decodiert werden, dadurch gekennzeichnet, daß eine Vielzahl von Tabellen in einem zweiten Bereich des Hauptspeichers gespeichert wird, daß in frdar der Tabellen eine Vielzahl
    50982870670
    von Einträgen vorgesehen wird, die so codiert sind, daß sie den Status jeder Hilfsquelle einer Klasse von Hilfsquellen aus einer Vielzahl von unterschiedlichen Klassen angeben, die in dem Datenverarbeitungssystem physikalisch nicht vorhanden sind und die in gültiger Weise durch Befehle des Zielsystemprogramms angebbar sind und für die Ausführung der Zielsystembefehle erforderlich sind, daß in dem Steuerspeicher/eine Vielzahl von Mikrobefehlsfolgen gespeichert wird, durch deren jede ein Zugriff auf unterschiedliche Einträge der Vielzahl von Einträgen in einer der in einer Vielzahl vorgesehenen Tabellen vorgenommen wird, derart, daß die Gültigkeit und Verfügbarkeit des Status von Hilfsquellen einer bestimmten Klasse kontrolliert wird, daß die Mikrobefehlsfolgen in einer bestimmten Reihenfolge ausgeführt werden, derart, daß auf bestimmte Einträge der genannten Einträge dadurch Bezug genommen wird, daß entsprechende Steuerzeichen dazu benutzt werden, die Gültigkeit und Verfügbarkeit zum Zwecke der Zuteilung solcher Hilfsquellen festzustellen, die durch den betreffenden Eingabe/Ausgabe-Befehl bezeichnet sind, daß die Ausführung der Befehlsfolgen in dem Fall beendet wird, daß die Ungültigkeit oder Unverfügbarkeit einer ersten Hilfsquelle bezüglich der Zuteilung oder die Beendigung der Ausführung der Befehlsfolgen festgestellt wird, und daß eine bestimmte Abrufnachricht erzeugt wird, die den Typ der erforderlichen Programmunterstützung anzeigt und die eine Information enthält, welche die Klasse des Eingabe/Ausgabe-Befehls, der ausgeführt wird, und den Status von Hilfsquellen angibt, die überprüft worden sind.
    27. Verfahren nach Anspruch 26, dadurch gekennzeichnet, daß eine erste Tabelle der genannten Tabellen als Kanalhilfsquelle-Tabelle für die Speicherung einer Vielzahl von
    609828/0678
    Einträgen für das Zielsystem verwendet wird, daß ein Eintrag für jeden Kanal vorgesehen wird, der von den Eingabe/Ausgabe-Befehlen angebbar ist und der den Status des betreffenden Kanals angibt, daß ein bestimmter Eintrag derart codiert wird, daß eine Anzeige bezüglich des gegenwärtigen Status von Kanälen dem Zielsystem erhalten wird, daß eine indizierte Adresse dadurch erzeugt wird, daß Mikrobefehle einer ersten Folge der Mikrobefehlsfolgen unter Verwendung eines ersten bestimmten Zeichens der Vielzahl von Zeichen ausgeführt werden, und zwar zum Zwecke des Abrufs eines Eintrags aus der Kanalhilfsquelle-Tabelle, daß eine Verknüpfungsoperation auf bestimmte Teile des betreffenden einen Eintrags und des bestimmten Eintrags zur Überprüfung der Verfügbarkeit des genannten Kanals ausgeführt wird, und daß zur Signalisierung des Belegungsstatus des betreffenden Kanals eine bestimmte Abrufnachricht auf ein bestimmtes Ergebnis hin erzeugt wird.
    28. Verfahren nach Anspruch 27, dadurch gekennzeichnet, daß jede der Kanal-Hilfsquellen-Einträge mit einem Belegungs-Ausblend-Feldbereich versehen wird, durch den angegeben wird, welche der Kanal-Hilfsquellen in Anpassung an eine bestimmte Ubertragungsrate miteinander zu verbinden sind, und daß der Ausblendfeldbereich jedes Eintrags derart selektiv codiert wird, daß bestimmte Beschränkungen wirksam gemacht und bestimmte Beschränkungen, die nicht für eine in Frage kommende Ausführung des Zielsystemprogramms durch das Datenverarbeitungssystem erforderlich sind, aufgehoben werden.
    29. Verfahren nach Anspruch 27» dadurch gekennzeichnet, daß die Kanal-Hilfsquellen-Einträge jeweils mit einem Zeitfach-
    5098 2 8/067 8
    2b0Ü006
    Ausblendfeldbereich versehen werden, durch den eine Anzahl von Zeitfächern angegeben wird, die für die Zuteilung zu einer Kanal-Hilfsquelle in Anpassung an die bestimmte Übertragungsrate erforderlich sind, und daß das Zeitfach-Ausblendfeld des jeweiligen Eintrags derart selektiv codiert wird, daß bestimmte Beschränkungen wirksam gemacht und Verkehrsbeschränkungen, die für die in Frage kommende Ausführung des ZielSystemprogramms durch das Datenverarbeitungssystem nicht erforderlich sind, aufgehoben werden.
    30. Verfahren nach Anspruch 27, dadurch gekennzeichnet, daß die Kanal-Hilfsquellen-Einträge jeweils mit einem Zählercode-Feldbereich versehen werden, durch den eine Adresse eines der in einer Vielzahl vorgesehenen Zähler bezeichnet wird, der in dem Zielsystem für eine Adressenspeicherung durch die zugehörige Kanal-Hilfsquelle verwendet wird, und daß das Zähler-Codefeld des jeweiligen Eintrags in dem Fall mit einem bestimmten Code versehen wird, daß die Zähleradresse für die Verwendung in dem Zielsystem ungültig ist.
    31. Verfahren zur erleichterten Emulation von Eingabe/Ausgabe-Befehlen, die irgendein Format aus einer Vielzahl von unterschiedlichen Formaten aufweisen und die jeweils eine Vielzahl von Zeichen eines ZielSystemprogramms enthalten, unter Verwendung eines Datenverarbeitungssystems mit einem Hauptspeicher, der eine Vielzahl von Speicherbereichen aufweist, deren einer das Zielsystemprogramm speichert, mit einer Vielzahl von Registern, die über eine Vielzahl von Busleitungen miteinander verbunden sind, mit einer Rechen- und Verknüpfungseinrichtung, die Signale von bestimmten Registern her aufnimmt, und mit einem Mikroprogramm-Steuer-
    609828/0678
    system zur Steuerung der Datenübertragung zwischen dem Speicher, den Registern und der Rechen- und Verknüpfungseinrichtung in einem Emulationsbetrieb durch Decodierung von in einem Steuer spei eher enthaltenen Mikrobefehlen, insbesondere für ein Datenverarbeitungssystem nach einem der Ansprüche 1 bis 25, dadurch gekennzeichnet, daß eine Vielzahl von Tabellen in einem zweiten Bereich des Hauptspeichers gespeichert wird, daß jede Tabelle mit einer Vielzahl von Einträgen versehen wird, die so codiert werden, daß die den Status der jeweiligen Hilfsquelle einer Klasse aus einer Vielzahl von unterschiedlichen Klassen angeben, die physikalisch in dem Datenverarbeitungssystem nicht vorhanden sind und die in gültiger Weise durch Befehle des ZielSystemprogramms bezeichnet werden und für die Ausführung der ZielSystembefehle erforderlich sind, daß eine Vielzahl von Mikrobefehlsfolgen in dem Steuerspeicher gespeichert wird, daß jede Mikrobefehls-Folge für den Zugriff zu Einträgen der in einer Vielzahl vorgesehenen Einträgen in einer der in einer Vielzahl vorgesehenen Tabellen verwendet wird , derart, daß die Gültigkeit und Verfügbarkeit des Status von Hilfsquellen einer bestimmten Klasse kontrolliert wird, daß selektiv bestimmte Mikrobefehls-Folgen in einer bestimmten Reihenfolge ausgeführt werden, derart, daß ein Zugriff zu bestimmten Einträgen unter Verwendung entsprechender Steuerzeichen für die Überprüfung des Status derjenigen Hilfsquellen bewirkt wird, die durch den Eingabe/Ausgabe-Befehl bezeichnet sind, und daß das Datenverarbeitungssystem veranlaßt wird, einen nächsten Befehl in dem Zielsystem in dem Fall auszuführen, daß festgestellt wird, daß die durch den betreffenden Bingabe/Ausgabe-Befehl bezeichneten Hilfs-
    Β0982Θ/0678
    quellen nicht belegt sind.
    32. Verfahren nach Anspruch 31» dadurch gekennzeichnet, daß eine Adressenüberprüfung auf ein erstes Adressenfeld des Befehls hin in dem Fall ausgeführt wird, daß die bezeichneten Hilfsquellen belegt sind, und daß eine bestimmte Nachricht in dem Fall erzeugt wird, daß die erste Adresse mit einer Adresse übereinstimmt, die den Befehl, der ausgeführt wird, kennzeichnet, wobei durch die betreffende Nachricht eine Wiederholung der durch den genannten Befehl bezeichneten Operation solange signalisiert wird, bis die bezeichneten Hilfsquellen nicht belegt sind.
    33. Verfahren nach Anspruch 32, dadurch gekennzeichnet, daß das Mikroprogramm-Steuersystem veranlaßt wird, auf Mikrobefehle Bezug zu nehmen, derart, daß eine Verzweigung auf den Befehl hin bewirkt wird, der durch das erste Adressenfeld bezeichnet ist, und zwar auf die Feststellung, daß die betreffenden Adressen ungleich sind.
    509828/0678
    Leerseite
DE19752500006 1974-01-02 1975-01-02 Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen Withdrawn DE2500006A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/430,322 US3955180A (en) 1974-01-02 1974-01-02 Table driven emulation system

Publications (1)

Publication Number Publication Date
DE2500006A1 true DE2500006A1 (de) 1975-07-10

Family

ID=23707026

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19752500006 Withdrawn DE2500006A1 (de) 1974-01-02 1975-01-02 Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen

Country Status (6)

Country Link
US (1) US3955180A (de)
JP (1) JPS5853369B2 (de)
CA (1) CA1026466A (de)
DE (1) DE2500006A1 (de)
FR (1) FR2295485A1 (de)
GB (1) GB1497601A (de)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4106091A (en) * 1975-02-18 1978-08-08 Motorola, Inc. Interrupt status indication logic for polled interrupt digital system
US4042914A (en) * 1976-05-17 1977-08-16 Honeywell Information Systems Inc. Microprogrammed control of foreign processor control functions
US4156927A (en) * 1976-08-11 1979-05-29 Texas Instruments Incorporated Digital processor system with direct access memory
US4079453A (en) * 1976-08-20 1978-03-14 Honeywell Information Systems Inc. Method and apparatus to test address formulation in an advanced computer system
US4092715A (en) * 1976-09-22 1978-05-30 Honeywell Information Systems Inc. Input-output unit having extended addressing capability
US4122519A (en) * 1976-12-14 1978-10-24 Allen-Bradley Company Data handling module for programmable controller
US4261033A (en) * 1977-01-19 1981-04-07 Honeywell Information Systems Inc. Communications processor employing line-dedicated memory tables for supervising data transfers
US4156907A (en) * 1977-03-02 1979-05-29 Burroughs Corporation Data communications subsystem
US4155118A (en) * 1977-09-20 1979-05-15 Burroughs Corporation Organization for an integrated circuit calculator/controller
JPS54122043A (en) * 1978-03-15 1979-09-21 Toshiba Corp Electronic computer
GB2030741B (en) * 1978-10-02 1982-11-17 Ibm Data processing terminal with addressable characterising store
JPS5576447A (en) * 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4253145A (en) * 1978-12-26 1981-02-24 Honeywell Information Systems Inc. Hardware virtualizer for supporting recursive virtual computer systems on a host computer system
US4377852A (en) * 1980-03-31 1983-03-22 Texas Instruments Incorporated Terminal emulator
US4370709A (en) * 1980-08-01 1983-01-25 Tracor, Inc. Computer emulator with three segment microcode memory and two separate microcontrollers for operand derivation and execution phases
US4574349A (en) * 1981-03-30 1986-03-04 International Business Machines Corp. Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
US4575814A (en) * 1982-05-26 1986-03-11 Westinghouse Electric Corp. Programmable interface memory
JPS5941064A (ja) * 1982-08-31 1984-03-07 Nec Corp プロログ処理装置
US4509122A (en) * 1982-11-18 1985-04-02 International Business Machines Corporation Method for controlling the file transfer capability of an interactive text processing system that is emulating a host processing system terminal
JPS6017539A (ja) * 1983-07-11 1985-01-29 Hitachi Ltd エミユレ−シヨン方式
US4727480A (en) * 1984-07-09 1988-02-23 Wang Laboratories, Inc. Emulation of a data processing system
DE3584324D1 (de) * 1984-07-11 1991-11-14 Hitachi Ltd Datenflussgesteuertes informationsverarbeitungsverfahren und -system.
US4984151A (en) * 1985-03-01 1991-01-08 Advanced Micro Devices, Inc. Flexible, next-address generation microprogram sequencer
JP2826309B2 (ja) * 1985-11-20 1998-11-18 日本電気株式会社 情報処理装置
US4875186A (en) * 1986-02-28 1989-10-17 Prime Computer, Inc. Peripheral emulation apparatus
US4920481A (en) * 1986-04-28 1990-04-24 Xerox Corporation Emulation with display update trapping
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US5210832A (en) * 1986-10-14 1993-05-11 Amdahl Corporation Multiple domain emulation system with separate domain facilities which tests for emulated instruction exceptions before completion of operand fetch cycle
US4833594A (en) * 1986-12-22 1989-05-23 International Business Machines Method of tailoring an operating system
EP0299612B1 (de) * 1987-06-09 1995-02-08 Hitachi Maxell Ltd. Datenverarbeitungsanlage mit Anpassung der Ein-/Ausgabe-Funktionen
US5128810A (en) * 1988-08-02 1992-07-07 Cray Research, Inc. Single disk emulation interface for an array of synchronous spindle disk drives
US5283791A (en) * 1988-08-02 1994-02-01 Cray Research Systems, Inc. Error recovery method and apparatus for high performance disk drives
US5067073A (en) * 1988-08-02 1991-11-19 International Business Machines Corporation Embedded tracing method for identifying program executed paths
US5121489A (en) * 1988-08-02 1992-06-09 International Business Machines Corporation Tracing method for identifying program execution paths using a trace points bit map with one-to-one correspondence with embedded trace points
US5218689A (en) * 1988-08-16 1993-06-08 Cray Research, Inc. Single disk emulation interface for an array of asynchronously operating disk drives
US5036484A (en) * 1988-11-23 1991-07-30 International Business Machines Corporation Personal computer/host emulation system for handling host data with personal computer application programs at personal computers
US5109353A (en) 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware system
DE69033438T2 (de) 1989-04-13 2000-07-06 Sandisk Corp Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US5093776A (en) * 1989-06-15 1992-03-03 Wang Laboratories, Inc. Information processing system emulation apparatus and method
JPH03147013A (ja) * 1989-11-01 1991-06-24 Casio Comput Co Ltd データ更新装置
US5121483A (en) * 1990-05-21 1992-06-09 International Business Machines Corporation Virtual drives in an automated storage library
US5652869A (en) * 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
US5333298A (en) * 1991-08-08 1994-07-26 Honeywell Inc. System for making data available to an outside software package by utilizing a data file which contains source and destination information
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5920712A (en) * 1994-05-13 1999-07-06 Quickturn Design Systems, Inc. Emulation system having multiple emulator clock cycles per emulated clock cycle
US5632028A (en) * 1995-03-03 1997-05-20 Hal Computer Systems, Inc. Hardware support for fast software emulation of unimplemented instructions
US5923865A (en) * 1995-06-28 1999-07-13 Quickturn Design Systems, Inc. Emulation system having multiple emulated clock cycles per emulator clock cycle and improved signal routing
US5819065A (en) * 1995-06-28 1998-10-06 Quickturn Design Systems, Inc. System and method for emulating memory
US5799169A (en) * 1995-10-02 1998-08-25 Chromatic Research, Inc. Emulated registers
US5920713A (en) * 1995-10-06 1999-07-06 Advanced Micro Devices, Inc. Instruction decoder including two-way emulation code branching
US5758061A (en) * 1995-12-15 1998-05-26 Plum; Thomas S. Computer software testing method and apparatus
US5822564A (en) * 1996-06-03 1998-10-13 Quickturn Design Systems, Inc. Checkpointing in an emulation system
US5892939A (en) * 1996-10-07 1999-04-06 Honeywell Inc. Emulator for visual display object files and method of operation thereof
US5918048A (en) * 1997-03-17 1999-06-29 International Business Machines Corporation Booting an operating system using soft read-only storage (ROS) for firmware emulation
US5875336A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system
US5960191A (en) * 1997-05-30 1999-09-28 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US5970240A (en) * 1997-06-25 1999-10-19 Quickturn Design Systems, Inc. Method and apparatus for configurable memory emulation
US6389503B1 (en) 1997-08-04 2002-05-14 Exabyte Corporation Tape drive emulation by removable disk drive and media formatted therefor
US6128698A (en) * 1997-08-04 2000-10-03 Exabyte Corporation Tape drive emulator for removable disk drive
US6259781B1 (en) * 1997-08-06 2001-07-10 Siemens Information And Communication Networks, Inc. Generic distributed protocol converter
US6324639B1 (en) * 1998-03-30 2001-11-27 Matsushita Electric Industrial Co., Ltd. Instruction converting apparatus using parallel execution code
CA2236640A1 (en) * 1998-05-04 1999-11-04 Claudio Gambetti Emulation system including emulator generator
GB2367651B (en) * 2000-10-05 2004-12-29 Advanced Risc Mach Ltd Hardware instruction translation within a processor pipeline
GB2367653B (en) * 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
US7913237B2 (en) * 2003-08-26 2011-03-22 Ensequence, Inc. Compile-time code validation based on configurable virtual machine
US20090159701A1 (en) 2007-12-24 2009-06-25 Dynamics Inc. Payment cards and devices with enhanced magnetic emulators

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3369221A (en) * 1964-05-04 1968-02-13 Honeywell Inc Information handling apparatus
US3480914A (en) * 1967-01-03 1969-11-25 Ibm Control mechanism for a multi-processor computing system
US3631405A (en) * 1969-11-12 1971-12-28 Honeywell Inc Sharing of microprograms between processors
US3675214A (en) * 1970-07-17 1972-07-04 Interdata Inc Processor servicing external devices, real and simulated
US3721961A (en) * 1971-08-11 1973-03-20 Ibm Data processing subsystems
US3748649A (en) * 1972-02-29 1973-07-24 Bell Telephone Labor Inc Translator memory decoding arrangement for a microprogram controlled processor
US3766532A (en) * 1972-04-28 1973-10-16 Nanodata Corp Data processing system having two levels of program control
US3859636A (en) * 1973-03-22 1975-01-07 Bell Telephone Labor Inc Microprogram controlled data processor for executing microprogram instructions from microprogram memory or main memory

Also Published As

Publication number Publication date
US3955180A (en) 1976-05-04
FR2295485B1 (de) 1979-06-15
CA1026466A (en) 1978-02-14
FR2295485A1 (fr) 1976-07-16
JPS5099656A (de) 1975-08-07
JPS5853369B2 (ja) 1983-11-29
GB1497601A (en) 1978-01-12

Similar Documents

Publication Publication Date Title
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
DE2517276A1 (de) Datenverarbeitungssystem
DE2846495C2 (de) Zentraleinheit
DE2540824C2 (de) Auf verschiedene Ausbaustufen veränderbare Abrechnungsmaschine
DE2456602C2 (de) Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher
DE2055716A1 (de) Datenverarbeitungssystem zur gleich zeitigen Verarbeitung mehrerer Programme
DE69731998T2 (de) Informationsverarbeitungsvorrichtung und Verfahren
DE2417795C2 (de) Datenverarbeitungsanlage
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE2459675A1 (de) Datenverarbeitungssystem
DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2459956A1 (de) Prozessor und diesen verwendendes peripheres verarbeitungssystem
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2813128A1 (de) Mikroprogrammspeicher
DE2806045A1 (de) Dv-system mit pufferspeicher
DE69133571T2 (de) Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE1524102B2 (de) Elektronische, aus baueinheiten aufgebaute datenverarbeitungsmaschine
DE2717976A1 (de) Computer mit einer anordnung zur veraenderung der arbeitsumgebung des computers
DE2801610A1 (de) Verfahren zum definieren von anfangswerten fuer die textverarbeitung
DE2721623A1 (de) System zur bearbeitung eines zielsystemprogrammes
DE2401364A1 (de) Datenverarbeitungssystem

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8139 Disposal/non-payment of the annual fee