DE2251876A1 - Datenverarbeitungsanlage - Google Patents
DatenverarbeitungsanlageInfo
- Publication number
- DE2251876A1 DE2251876A1 DE2251876A DE2251876A DE2251876A1 DE 2251876 A1 DE2251876 A1 DE 2251876A1 DE 2251876 A DE2251876 A DE 2251876A DE 2251876 A DE2251876 A DE 2251876A DE 2251876 A1 DE2251876 A1 DE 2251876A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- memory
- instruction
- register
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Bus Control (AREA)
Description
2251876 Böblingen, 19. Oktober 1972
jo/fr-sz
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtl. Aktenzeichen: Neuanmeldung · ' ■
Aktenzeichen der Anmelderin: BC 970 015
Die Erfindung betrifft eine Datenverarbeitungsanlage zur Durchführung
von Datenverarbeitungsaufgaben, die auf hierarchisch aufgebauten Prioritätsstufen basieren.
Sie bezieht sich insbesondere auf eine Datenverarbeitungsanlage,
deren. Anwendungsbereich sich auch auf die Datenverarbeitung im Realzeitbetrieb erstreckt. Außerdem bezieht sie sich auf Prozessoren,
Ein-/Ausgabegeräte und/oder den Schnittstellenbetrieb zwischen diesen genannten Einheiten, wobei die gewählte Konfiguration
auf relativ rasche Reaktionen des Systems Rücksicht nimmt, die für die Datenaguisition und Prozeßsteuerung erforderlich
ist.
Die digitale Datenverarbeitungstechnologie hat sich so entwickelt,
daß relativ ökonomische und schnelle Datenverarbeitungsschritte •mit einem hohen Grad an Flexibilität durchgeführt werden können.
Bei den meisten Datenverarbeitungssystemen können die Eih-/Ausgabegeräte,
die dem Prozessor zugeordnet sind, für einen Daten^ austausch verwendet werden, der eine Pufferung, Wartessehlangenbildung
und andere Techniken zuläßt, da von solchen Geräten im allgemeinen schnelle Reaktionen nicht gefordert werden. Die Daten-·
aquisition und Prozeßsteuerung erfordert jedoch in typischer Weise sehr schnelle Reaktionen und die Zugrundelegung von Steuer-
9/1017
funktionen der zentralen Verarbeitungseinheit, so daß solche Aufgaben in bestimmten Anwendungsfällen berücksichtigt werden
können. So betrifft beispielsweise die rechnergesteuerte Prozeßsteuerung im allgemeinen die Aquisition von analogen und digitalen
Daten von einem industriellen oder ähnlichen Prozeß, die Errechnung der Steuerkorrekturen, um das einwandfreie Funktionieren
des Prozesses sicherzustellen und die Anwendung geeigneter Steuersignale auf die Steuerelemente des Prozesses auf eine schnelle
und zeitgerechte Weise. Um hierbei effektiv zu sein, muß die Aquisition, die Errechnung und Steuerfunktionserzeugung im
Realzeitbetrieb geführt werden. D.h., daß die Verzögerung zwischen der Datenaquisition von einer Vielzahl von Quellen, und die Steuerung
der Funktionen oder Prozesse, die beteiligt sind, muß so sein, daß die Effektivität der Steuerung nicht verlorengeht. Für
viele Anwendungen bedeutet dies, daß die Verzögerung nur einen Bruchteil einer Sekunde betragen darf, obwohl andere Anwendungen,
die von dem gleichen System behandelt werden können, Verzögerungen von Stunden zulassen. Die Zeit zwischen einem "Stimulus",
beispielsweise von analogen oder digitalen Quellen und der Reaktion oder Antwort des Systems wird häufig als Unterbrechungsantwortzeit
bezeichnet und sie ist die wichtigste Größe bei Realzeit-Rechnersystemen. Die Erfahrung hat gezeigt, daß solche Stimuli,
die die kürzesten Unterbrechungsantwortzeiten in einem System erfordern, häufig durch eine kurze einfache Codierung charakterisiert
sind, die eine Verwendung von konventionellen Ein-/Ausgabehilfsquellen (Resourcen) nicht erfordern und oft.auch nicht zulassen.
Die bekannten Systeme für Datenaquisition und Prozeßsteuerung haben immer zwischen der Antwortzeit unterschieden, die von einem
Komplex von Ein/Ausgabegeräten benötigt wird, indem Unterbrechungsprioritätsstufen
für diese Geräte vorgesehen werden. Daher kann eine Unterbrechung, die von einem Ein~/Ausgabegerät einer niedrigen
Priorität ausgeht, von einem steuernden Prozessor bearbeitet werden, diese Bearbeitung kann aber selbst wieder von einer Unterbrechung
unterbrochen werden, die von einem höheren Prioritats-
BC 970 015 309819/1017
2251878
— "5 _
rang herrührt, der später für ein anderes Ein-/Ausgabegerät auftritt.
Hierfür benutzen die bekannten Datenverarbeitungssysteme
feste Prioritätsstufenanordnungen für "jedes Ein-/Ausgabegerät,
so daß dieses stets um die Aufmerksamkeit des Prozessors in dieser Stufe kämpfte, was dazu führte, daß für eine Veränderung seines
Prioritätsrangs eine Neuverdrahtung des Gerätes erforderlich wurde. Selbst dann, wenn eine Unterbrechung auftrat mit einer,
höheren Stufenpriorität/ dann erforderten die bekannten Prozessoren eine Folge von speziellen Bedingungsroutinen für den Zweck,
Daten, die dem Status des unterbrochenen Prozesses entsprachen, in den Speicher einzugeben, so daß diese später wieder aufgesucht
und in die Steuerschaltungen des Prozessors geladen werden konnten, nachdem die Unterbrechung mit der höheren Prioritätsstufe befriedigt wurde.. Ein solches Verfahren erforderte ein Inkaufnehmen
von Verzögerungszeiten, die durch diese Speicherprozedur
verursacht wurden, wobei auch zusätzliche Verzögerungen noch hinzukamen, die davon herrührten, daß die gespeicherten Daten zu
einer späteren Zeit erst wieder aufgesucht werden mußten. Zusätzliche Verzögerungen werden von den bekannten Systemen ferner noch
gefordert, um die Unterbrechungsquelle zu identifizieren, und um den Status identifizierende Signale zu gewinnen, bevor mit der
Bedienung der Anforderung fortgefahren wird. Darüber hinaus wurde auch die Wiederaufnahme des unterbrochenen Programms durch
Programmfehler oftmals gestört. Weiterhin erforderte der Prozessor
Einrichtungen für die Bestimmung der geeigneten Dienst-Sub~ routine, bevor die Unterbrechung behandelt werden konnte.
Viele Voraussetzungen für die Datenaquisition und/oder Prozeßsteuerung
befassen sich mit dem Datenaustausch und mit Steuerfunktionen, die in ihren Anforderungen bezüglich der Zeitgerechtheit
der Systemantwort von Zeit zn Zeit variieren. Beispielsweise können einige Anwendungen relativ langsame Antworten für einen
bestimmten Datenaustausch oder eine bestimmte Steuerfunktion
über relativ lange Zeitperioden zulassen, für andere Zeitzuwachse fordern sie jedoch im wesentlichen augenblickliche Antworten
und Steuerungen.
BC 970 015 309819/1017
Die vorstehend genannten Verfahren und Anordnungen sind aber für die Realzeitverarbeitung bei der Datenaquisition und Prozeßsteuerung
mit entscheidenden Nachteilen behaftet, die durch die vorliegende Erfindung vermieden werden sollen.
Es ist daher die Aufgabe der Erfindung, Systemkomponenten anzugeben,
die die Realzeitantworten einer Datenverarbeitungsanlage wesentlich verbessern. Es soll deshalb eine virtuelle Prozessororganisation
angegeben werden, die insbesondere für die Datenaquisition und Prozeßsteuerung günstig ist.
Für eine elektronische Datenverarbeitungsanlage zur Durchführung von Aufgaben auf der Basis einer Prioritätsstufenhierarchie ist
die Erfindung gekennzeichnet durch adressierbare Speicher, logische Schaltungen zur Durchführung von Datenverarbeitungsoperationen,
einschließlich arithmetischer und logischer Operationen und des Datenaustausches zwischen den genannten Speichern, durch eine
Anzahl von Steuerschaltungsgruppen, von denen jeweils eine einer bestimmten Prioritätsstufe zugeordnet ist und die Operation der
genannten Steuerschaltung, unabhängig von den anderen Gruppen steuern kann, durch eine Einrichtung, die auf Dienstanforderungssignale
anspricht, denen Prioritätsstufenmerkmale für die Betätigung nur derjenigen Steuerschaltungsgruppe beigegeben sind,
die der Prioritätsstufe der höchsten Priorität des anliegenden Dienstanforderungssignals entspricht, wodurch die Steuerung der
genannten Logikschaltung der genannten betätigten Steuerschaltungsgruppe ohne Berücksichtigung des Vorliegens von Dienstanforderungssignalen
niedrigerer Prioritätsstufen übergeben wird.
Weitere Merkmale, vorteilhafte Ausgestaltungen und Weiterbildungen
des Gegenstandes der Erfindung sind den Unteransprüchen zu entnehmen.
Die Vorteile der Erfindung liegen nun darin, daß dem Datenverarbeitungssystem
die nachstehenden, insbesondere für die Durch-
970 015 309819/1017
führung von Datenaquisitions- und Prozeßsteueraufgaben günstigen
Eigenschaften gegeben wurden* Diese Eigenschaften und somit die Vorteile der Erfindung ergeben sich daraus, daß der Prozessor
mehrere Steuerkomponenten besitzt, die so organisiert sind, daß
verschiedene Aufgaben auf der Basis von Prioritätsunterbrechungsstufen'
mit einem Minimum an Zeitverlust durch die Umschaltung zwischen diesen Stufen durchgeführt werden können.
Zu den Vorteilen zählt ferner die Tatsache, daß Ein-/Ausgabemodule
vorgesehen sind, die dynamisch zuteilbare Unterbrechungsprioritätsstufen
aufweisen. Sie sind ferner in der Lage Adresseninformation dynamisch zu speichern, die den in einem Steuerprozessor
gespeicherten Dienstsubroutinen zugeordnet sind. Ferner können die Ein-/Ausgabemodule von dem Hauptverarbeitungssystem
individuell maskiert werden.
Außerdem können die Ein-/Ausgabemodule ihren eigenen Zustand überwachen und ein Signal an einen Steuerprozessor übertragen,
das angibt, ob eine Veränderung des Zustandes erforderlich ist oder nicht.
Ein weiterer Vorteil der Erfindung besteht darin, daß Realzeitreaktionen
des Systems auf dynamisch'extern veränderbare Anforderungen eingestellt werden können, während wesentliche zusätzliche
Programmverarbeitung im Steuerprozessor durchgeführt wird.
Schließlich kann mit Hilfe der Erfindung ein polymorphes Datenverarbeitungssystem
aufgebaut werden, das in der Lage ist, sich auf variierende Ein-/Ausgangsanforderungen auf dynamischer Basis
einzustellen.
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und werden anschließend näher beschrieben. Es zeigen:
970 015 309819/1017
Fig. 1 in einem Systemblockdiagraram die allgemeine
Umgebung verschiedener Systemkomponenten und anderer Prozessoren, zu denen die vorliegende
Erfindung in Beziehung steht;
Fig. 2 die Beziehung einiger Merkmale der vorliegenden
Erfindung insbesondere zur Zuordnung, Behandlung und Einheitenmaskierung von Unterbrechungsbedienungsanforderungen
unter Benutzung von Prioritätszuordnungen;
Fig. 3 einige der auf Prioritätsebene bezogenen Multi-
prozessor-Steuerkomponenten, die einem Prozessor nach dem Erfindungsgedanken gestatten, als
virtuelle Maschine zu arbeiten;
Fig. 4 das allgemeine Format einiger Instruktionen;
Fig. 5 eine typische Anordnung eines Teiles des Prozessorspeichers,
der zur Wiedergewinnung von Unterroutinen adressiert werden kann, um Bedienungsansprachen
auf verschiedene, von einer Unterbrechung stammende Steuersignale liefert;
Fig. 6 einige wichtige Komponenten für die Schnittstellenschaltungen
zwischen einem Prozessor, einer direkten Kanalsteuerung und einigen, an den Kanal angeschlossenen E/A-Geräten;
Fig. 7 einige Komponenten in einem typischen E/A-Gerät
und deren gegenseitige Beziehung zu der in Fig. 6 gezeigten Schnittstellen-Multiplexschaltung
und
Fig. 8 eine Anordnung einer weiteren, in Verbindung mit
der vorliegenden Erfindung nützlichen Instruktion,
BC 970 015 309819/1017
Genaue Beschreibung der Ausführungsbeispiele I - Einführung
Die in der Erfindung beschriebenen Geräte und der Prozessor sind häuptsächlich für Anwendungen der Datenerfassung und -steuerung
vorgesehen und im wesentlichen im IBM System 7 verwirklicht. Zahlreiche Konstruktionsmerkmale sind jedoch auch in einem System
vorteilhaft, welches Echtzeitverarbeitung fordert.
Solche Systeme verden benötigt, um auf externe Anläße zu reagieren,
die geforderten Bedienungsroutinen auszuführen und mit einer Reaktion auf die auslösenden Vorgänge zu antworten. Die Zeit zwischen
einem auslösenden Vorgang und der darauf erwarteten Antwort wird oft als Ansprache- oder Antwort-Unterbrechungszeit bezeichnet
und ist die wichtigste Wertungsziffer in Echtzeit-Rechnersystemen. Die Erfahrung hat gezeigt, daß diejenigen äußeren Vorgänge, welche
die kürzesten Antwort-Unterbrechungszeiten in einem System fordern, im allgemeinen durch kurze einfache Routinen gekennzeichnet
sind, die die Benutzung konventioneller E/A- oder anderer Systemquellen nicht erfordern,
'4
Um die Antwortzeiten so klein wie möglich zu halten, enthält die vorliegende Erfindung Schaltungen, mit denen der Programmierung
die Zuordnung von Unterbrechungsprioritäten übertragen wird, die nach Wunsch des Programmes außer Kraft gesetzt oder dynamisch
neu zugeordnet werden können. Der Prozessor ist mit Registersätzen ausgerüstet und sieht Bedingungen für jede Unterbrechungsebene
so vor, daß das Konzept virtueller Maschinen in der Maschinenausrüstung verwirklicht wird und bei Unterbrechung einen
sehr schnellen Starterschalter ermöglicht. Die Umschaltung zwischen
Registern als Teil der Unterbrechungsbehandlung umgeht die Notwendigkeit von Programmrettungs- und -rückführungsoperationen.
Der Prozessor der vorliegenden Erfindung kann entweder als Kern eines unabhängigen Datenerfassungs- und -Steuersystemes oder als
intelligente Steuereinheit oder Vorprozessor zum Anschluß an
BC 970 015 . 1% λ a a «j « ι & λ * a
andere Rechnersysteme benutzt werden. Diese Wachstumsmöglichkeit
von einem kleinen unabhängigen System zu einem großen verbundenen Multisystem ist besonders in dem Bereich der Datenerfassung
und -steuerung mit ihrem großen und variablen Bereich der gesamten Systemleistungsforderungen wichtig.
Der Prozessor ist von seinen E/A-Geräten durch einen anderweitig beschriebenen Kanal getrennt. Die Elemente der Kanalfunktionen,
die sich auf die Unterbrechungssteuerung beziehen, werden später
beschrieben. Der Kanal soll nach Annahme so aufgebaut sein, daß bis zu 63 E/A-Moduln an die bediente Schnittstelle angeschlossen
werden können. Jedes E/A-Modul soll weiter in der Lage sein, bis zu 64 Geräte zu umfassen. Kanal und Speicher des Prozessors
sowie bestimmte andere Einheiten befinden sich in einem als Prozessormodul bekannten Gerät. Dazu gehören der asynchrone Kommunikationssteueradapter
ACCA, der Bedienungsstationsadapter und zwei Intervallzeitgeber.
Einige neue Merkmale der vorliegenden Erfindung sind
1. die Realisierung und Maschinenausstattung des Konzeptes virtueller
Maschinen für die mehrstufige ünterbrechungsverarbeitung, die bisher nur durch Programmierung möglich war;
2. die extrem kurze Statusumschaltzeit aufgrund der automatischen Verzweigung auf unteren Ebenen und Vorsehung der direkten Bezeichnung
(mit Status) der Unterbrechungsquelle;
3. die Wahl eines Instruktionssatzes, der in bezug auf schnelle, einfache, von der Unterbrechung veranlaßte Unterroutinen optimiert
ist;
4. eine zusammenfassende schnelle, offenendige E/A-Behandlungsmöglichkeit;
5. Verbindungsmöglichkeit zu einem anderen Prozessor;
6. gegenseitige Beeinflussung von Prioritätsunterbrechungen und
Klassenunterbrechungen und ,
7. die Vorsehung extrem deskriptiver, eindeutiger Statusbezeichnungen,
die eine leichte Programmwiederholung bei Maschinen- und Programmfehlern gestattet.
BC-970 015 309819/1017
Der allgemein in den Fign. 1, 2, 3, 6 und 7 dargestellte Datenfluß
im Prozessor verläuft durch ein Instruktionsadreßregister, vier Arbeitsregister, eine Rechen- und Logikeinheit (ALU) und
einen Arbeitsspeicher sowie ein Maskenregister IMR.
Das Instruktionsadreßregister (IAR) ist 16 Bit groß und wird
von der Datensammelleitung geladen. Das IAR kann um den Wert 1 ohne Benutzung der ALU erhöht werden und enthält eine Instruktionsadresse.
Das Operationsregister (OP) ist ebenfalls 16 Bit groß, wird jedoch vom Speicher geladen und enthält das erste
Wort aller Instruktionen. Das Speicherdatenregister (SDR) kann 16 Bits und ein Paritätsbyte aufnehmen. Es wird vom Speicher,
der Datensammelleitung oder von Datenschaltern geladen. Es treibt wahlweise den direkten Steuerkanal, den Speicher oder
die Y-Sammelleitung. Das Speicheradreßregister (SAR) ist 16 Bit groß, wird von der Datensammelleitung oder dem IAR geladen
und enthält die laufende Speicheradresse.
Die 16 Bits der Y-Sammelleitung leiten Operanden in das Y-Register
oder die Datensammelleitung und wirken auch als Dateneingäbe vom direkten Steuerkanal. Das Y-Operandenregister (Y),
ein 16 Bit großes, nach links und rechts verschiebbares Register, wird von der Y-Sammelleitung geladen und wirkt als Puffer
für einen Operanden der ALU. Die ALU ist eine 16 Bit große parallele
Kombinationsschaltung für zwei Operanden. Ein Operand wird
durch die ALU-Sammelleitung, der andere durch das Y-Register und/oder Zwangsleitung. Die ALU kann addieren, subtrahieren und
die logischen Operationen UND, ODER sowie XODER ausführen. Sie wird außerdem zur Adreßberechnung benutzt.
Arbeitsspeiehergruppe
Um eine schnelle Zustandsumschaltung zu ermöglichen, werden alle vom Programm und von Bedingungen her adressierbaren Register in
BC 970 015 309819/1017
der Arbeitsspeichergruppe auf einer Pro-Stufen-Basis gehalten: Die Umschaltung zwischen Registerbanken zur Adressierung der
entsprechenden Stufe ist eine automatische Maschinenteilfunktion. Die zu einer bestimmten Stufe gehörenden Register werden
nur benutzt, wenn der Prozessor in dieser Stufe arbeitet. Diese mehrstufige redundante Registerkonfiguration ist in Fig. 3 gezeigt.
Die Stufen sind hier eine Hierarchie aus für die Unterbrechungsbehandlung zugeordneten Prioritäten. In diesem Beispiel
wird die Stufe O als höchste Stufe und die Stufe 3 als niedrigste angenommen.
Die vier Akkumulatoren ACCO bis ACC3 (Fig. 3) sind für jeweils eine Stufe vorgesehen und haben je 16 Bits. Außerdem sind vier
IAR-Rückgriffregister IARBO bis IARB4 vorgesehen (1 pro Stufe).
Jedes hat 16 Bits. Ihre Funktion besteht in der Unterstützung des IAR bei einem Stufe-zu-Stufe-Ubergang und dadurch wird die Notwendigkeit
vermieden, das IAR durch Programmierung zu retten. Jedes der Indexregister (XRl bis XR7) wird viermal auf einer
Pro-Stufen-Basis reproduziert und umfaßt 16 Bits und ein Paritätsbyte
.
Wie in Fig. 3 zu sehen ist, wird die Arbeitsspeichergruppe (Indexregister) von der Datensammelleitung geladen und ihr
Inhalt in die Y-Sammelleitung geleitet. Paritätsprüfung ist
in der Gruppe vorgesehen.
Hauptspeicher
Der verwendete Speicher ist vorzugsweise ein monolithischer Speicher und in Schritten von 2 K Wörtern mal 18 Bits mit Paritätsbyte
bis zu einem Maximum von 16 K Wörtern organisiert. Der monolithische Speicher paßt zum Magnetspeicher und ist leistungsflüchtig.
Die bipolare monolithische Speichereinheit paßt auch zu den logischen Signalen des Prozessors. Die Gruppenmoduln und
Unterstützungsmoduln befinden sich auf der Speicherkarte, die 2 048 Wörter mal 2 Bits enthält. Zugriffs- und Zykluszeit, ge-
970 015 30981971017
messen an der Speicherkarte, betragen 125 Nanosekunden bzw.
400 Nanosekunden. Das Speichermodul umfaßt 4 Chips oder 512 Bits und ist ein gestapeltes Modul mit zwei Substraten, die je zwei
Chips tragen.
Übertragsanzeiger:
Der Übertragsanzeiger wird gesetzt, wenn eine Operation ein Ergebnis
erzeugt hat, welches die physikalische Kapazität des
Akkumulators übersteigt. Der Übertragsanzeiger wird* durch folgende drei Bedingungen gesetzt:
1. bei einer nicht zirkulären Linksschiebeoperation, wenn das
letzte aus der Vorzeichenbitposition 0 ausgeschobene Bit ein Einerbit war;
2. bei einer Recheninstruktion, wenn ein Übertrag aus dem Bit
(Vorzeichenbit) erfolgt. Das kann ungeachtet der Polarität der betroffenen Operanden erfolgen. Wenn eine große negative Zahl
zu einer kleineren positiven Zahl oder dgl. addiert wird, wird eine größere Zahl von einer kleineren Zahl subtrahiert und der
Übertragsanzeiger teilt dem Programm die Polarität des Ergebnisses mit. Sobald kein Übertrag stattfindet, ist' das Ergebnis
negativ und sollte erneut komplementiert werden;
3. bei einer Subtraktionsoperation, wenn ein Borgen über Bit 0 hinaus auftritt. Vor jeder Addition, Subtraktion und nicht zirkulären
Linksschiebeoperation werden die Übertragsanzeiger automatisch zurückgestellt.
Überlaufanzeiger:
Sobald das Ergebnis einer Additions- oder Subtraktionsoperation die Kapazität des Systems überschreitet, d. h. ein Ergebnis erzeugt,
welches entweder größer als 2 - 1 oder kleiner als -215 ist, tritt eine Überlaufbedingung ein. Der Prozessor erkennt
eine Überlaufbedingung durch Beobachtung der Überträge in die und aus der werthohen Bitposition (Vorzeichenposition).
Wenn die Überträge nicht übereinstimmen, liegt eine Überlauf-
BC 970 015 309819/1017
bedingung vor, sonst nicht. Es gibt vier Möglichkeiten:
1. Kein übertrag hinein und kein übertrag hinaus. (Überträge
stimmen überein - kein überlauf).
2. übertrag hinein und übertrag hinaus. (Überträge stimmen
überein - kein überlauf).
3. übertrag hinein aber kein übertrag hinaus. (Überträge stimmen
nicht überein - überlauf).
4. übertrag aus aber kein übertrag ein. (Überträge stimmen nicht
überein - überlauf) .
Der überlaufanzeiger wird nur zurückgestellt, wenn er entweder
von der bedingten Sprung- oder der bedingten Verzweigungsinstruktion geprüft und das Überlaufrettungszeichen (Bit 8) gleich null
ist und das Bit 15 in der Bedingungsmaske gleich eins.
übertrag und überlauf enthalten den Bedingungscode, der einer
ΡΙΟ-Instruktion folgt, übertrag ist das Bit 0 des Bedingungscodes und überlauf das Bit 1. Mit dem übertrag wird auch das
summarische Statusbit (S-Bit) bei Unterbrechungen festgehalten.
Weiterhin sind noch Null-, Gleich-, Plus- und Minus-Anzeiger vorhanden. Diese Anzeiger werden ebenfalls als Ergebnis einer
logischen oder Rechenoperation gesetzt.
Alle Operanden werden als ganze Zahlen mit Vorzeichen behandelt, wobei das Vorzeichenbit als das äußerste linke Bit betrachtet
wird. Positive Zahlen werden in echter binärer Notierung dargestellt, wobei das Vorzeichenbit auf 0 gesetzt ist. Negative
Zahlen werden in ihrem Zweierkomplement dargestellt und das Vorzeichenbit wird auf 1 gesetzt. Das Zweierkomplement einer
Zahl erhält man durch Umkehrung eines jeden Bit der Zahl und Addition einer 1 in der wertniedersten Bitposition.
970 015 309819/1017
225187S
Diese Art der Zahlendarstellung kann als der wertniedere Teil
einer unbegrenzt langen Darstellung der Zahl betrachtet werden. Wenn die Zahl positiv ist, sind alle Bits links vom höchsten
Bit darstellenden Bit der Zahl einschließlich des Vorzeichenbits null. Wenn ein Operand daher mit werthohen Bits erweitert
werden muß, erhält man diese Erweiterung durch Vorsetzen eines Feldes, in welchem jedes Bit so gesetzt wird, wie das werthohe
Bit des Operanden steht.
Die Notierung im Zweierkomplement schließt nicht die negative Null ein. Die höchste positive Zahl besteht aus einem ganzzahligen
Feld aus lauter Einsen mit einem Vorzeichenbit 0, wogegen die größte negative Zahl aus einem ganzzahligen Feld mit lauter
Nullen mit einem Einerbit in der Vorzeichenbitposition besteht.
Der in einem Prozessor nach dem Erfindungsgedanken benutzte Instruktionssatz
liefert bei minimalen Kosten ausreichende Fähig-= keiten zur Ausführung einfacher Rechen- und logischer Funktionen
und zur Steuerung der Einheiten und ihrer Schnittstellen mit einem anderen Prozessorsystem. Der Instruktionssatz ist in Klassen
eingeteilt. Allgemein geben die Klassen die Art der auszuführenden Operation an.
Laden und Speichern - Diese Instruktionen übertragen Operanden zwischen dem Hauptspeicher und dem Prozessor. Sie sind: Laden
und Null, Laden Akkumulator, Speichern Akkumulator, Direkt Laden, Index Speichern und Langen Index Laden.
Arithmetik - Diese Instruktionen führen arithmetische Operationen zwischen Operandenhauptspeicher und/oder im Prozessor durch.
Sie sind: Addition, Subtraktion, Direkte Addition, Komplementregister,
Addition Register und Subtraktion Register.
rh!
0L5
Logisch - Diese Instruktionen führen logische Operationen zwischen
Operanden im Hauptspeicher und/oder im Prozessor durch. Sie sind: Logisch UND, Logisch Antivalent, Logisch ODER, UND-Register,
Antivalent-Register und ODER-Register.
Verschiebung - Diese Instruktionen führen Links- oder Rechtsverschiebung
eines Indexregisters oder des Akkumulators durch. Sie sind: Linksverschiebung Logisch, Rechtsverschiebung Logisch,
Rechtsverschiebung Arithmetisch und Linksverschiebung Umlauf.
Verzweigung - Hierzu gehören Addition zum Speicher und Sprung,
bedingter Sprung, Verzweigung und Verknüpfung, bedingte Verzweigung, Verzweigung und Verzweigung und lange Verknüpfung.
Eingabe/Ausgabe - Die Instruktion steuert das Setzen voh Unterbrechungen
und die Kommunikation mit E/A-Einheiten. Sie lautet: Eingabe/Ausgabe Ausführen.
Register-zu-Register - Diese Instruktionen bewegen Daten zwischen den Steuerregistern, den Indexregistern, dem IAR und dem Akkumulator.
Sie sind: Laden vom Register, Speichern in Register, Abfrage Stufe und Maske, Inspektion IAR Rückgriffregister, Laden
Prozessorstatus, Austauschregister, UND nach Maske sowie ODER nach Maske.
Zustandssteuerung - Diese Instruktionen ändern den Zustand des Prozessors. Sie sind: Stufe Ausgang und Stopp.
VI - Instruktionsformat
Zwei Instruktionsformate sind vorgesehen. Das Kurzinstruktionsformat
ist 16 Bits lang nach Darstellung in Fig. 4A und das Langinstruletionsformat
nach Darstellung in Fig. 4B 32 Bits lang. Jedes der beiden Formate ist in verschiedene Felder unterteilt, die die
Operation und die Art ihrer Ausführung angeben. Obwohl die meisten Felder dieselbe Bedeutung von einer Instruktion zur nächsten ha-
,: .70 Gib 3098 19/1017 bad original
ben, haben doch auch einige von ihnen besondere instruktionsabhängige
Bedeutungen. Das OP-Codefeld ist fünf Bits lang und gibt die auszuführende Instruktionsoperation an. Das R-FeId ist
drei Bits lang und steuert die Benutzung von Index, Akkumulator und Instruktionsadreßregistern. Das Verschiebtangsfeld DISP ist
acht Bit lang und steuert die Instruktionsausführung und/oder Erzeugung der effektiven Adresse, abhängig von den Angaben im
OP-Code und im R-FeId. Das Adreßfeld ist 16 Bits lang. Im Langinstruktionsformat
wird es für die effektive Adreßerzeugung benutzt, mit Ausnahme der ΡΙΟ-Instruktion, wo es als Teil des E/AKommandos
gebraucht wird. Die meisten Instruktionen beziehen sich auf eine Stelle im Hauptspeicher, die den Instruktionsoperanden
enthält. Die Adresse dieser Stelle wird die effektive Adresse (EA) genannt. Zur Erzeugung der effektiven Adresse gibt
es zwei Verfahren: eines für das Kurzinstruktionsformat und eines für das Langinstruktionsformat.
In dem in Fig. 4A gezeigten Kurzinstruktionsformat werden das
R-FeId und das Verschiebungsfeld DISP dazu benutzt, gemeinsam die effektive Adresse zu erzeugen. Das R-FeId gibt das Instruktionsadreßregister (IAR) , de,n Akkumulator (A) oder ein Indexregister
(XR) an. Für die effektive Adreßerzeugung wird für einen der Operanden der Akkumulator jedoch nicht herangezogen.
R = 000 Instruktionsadreßregister oder Akkumulator'
R = 001 Indexregister 1
R β 010 Indexregister 2
R = 011 Indexregister 3
R = 100 Indexregister 4
R =* 101 Indexregister 5
R = 110 Indexregister 6
R = 111 Indexregister 7
Die Verschiebung (DISP) ist eine acht Bit große Zahl, deren werthohes Bit das Vorzeichenbit ist. Negative Verschiebungen stehen
in Zweierkomplementform. Wenn sie zur Erzeugung einer effektiven
BC 970 015
309Ö19/1017
Adresse benutzt werden, wird das Vorzeichenbit durch die werthohen Positionen fortgeschrieben. Die effektive Adresse wird
folgendermaßen erzeugt:
EA = [IAR] + DISP für R =000
EA = [XR ] + DISP für R = 000
EA = [XR ] + DISP für R = 000
(Ausgenommen kurze bedingte Verzweigung, wo die effektive
Adresse der Inhalt des R-Registers ist.)
Im langen Format ist die Verschiebung der Bits 8 bis 15 das
direkte Feld. Bei allen langen Instruktionen ist auszunehmen Load Index Long (PLXL), EA = Adreßfeld.
Akkumulator Laden - PL: Der Inhalt der durch die effektive Adresse angegebenen Hauptspeicherstelle ersetzt den Inhalt
des Akkumulators. Der Inhalt des Hauptspeichers bleibt unverändert.
Übertrags- und überlaufanzeiger bleiben unverändert.
Abhängig von dem im Akkumulator gespeicherten Operanden werden mit dieser Instruktion die anderen Anzeiger verändert. Der neue
Wert bleibt bestehen und kann geprüft werden, bis eine andere Instruktion die Anzeige ändert. Wenn das R-FeId gleich 0 ist,
ist die effektive Adresse relativ zu IAR.
Laden und Null - PLZ: Diese Instruktion bewirkt dasselbe wie Laden Akkumulator Kurz, hat jedoch die zusätzliche Funktion,
daß die durch die effektive Adresse angegebene Hauptspeicherstelle auf null gesetzt wird. Durch diese Instruktion werden
die anderen Anzeiger abhängig von dem im Akkumulator gespeicherten Operanden verändert. Der neue Wert bleibt bestehen und
kann geprüft werden, bis eine andere Instruktion die Anzeige ändert. Übertrags- und überlaufanzeiger bleiben unverändert.
BC 970 015
309819/1017
Laden Direkt - PLI: Der Akkumulator oder ein Indexregister werden
mit dem angegebenen Operanden geladen. Das zu ladende Register wird durch das R-FeId der Instruktion angegeben: Ein R-PeId
von 0 bezeichnet den Akkumulator. Das Verschiebungsfeld der Instruktion bildet den direkt zu ladenden Operanden. Der acht Bit
große Operand wird auf einen 16 Bit großen Operanden ausgedehnt durch Fortschreibung des Vorzeichenbitwertes durch die werthohen
Bitpositionen. Übertrags- und Überlaufanzeiger bleiben unverändert.
Mit dieser Instruktion werden die anderen Anzeiger abhängig von dem in das R-Register geladenen Operanden verändert. Der
neue Wert bleibt bestehen und kann geprüft werden, bis eine andere
Instruktion die Anzeige ändert.
Laden Index Lang - PLXL: Diese Instruktion folgt im wesentlichen
dem in Fig. 4B gezeigten Format mit Ausnahme der Bits 5 bis 7, die das Rl-FeId bilden, während die Bits 8 bis IO das R2-Feld
bilden. Die Bits 11 bis 15 müssen null sein. Die effektive Adresse ist:
EA = Inhalt (R2) + Adresse R2 φ 000
EA = Adresse R2 = 000
Der Inhalt der effektiven Adresse bildet den 16 Bit großen Operanden,
der in das vom Rl-FeId angegebene Register geladen wird,
Rl = 000 - ACC R2 = 000 - Keine Indexierung
Rl oder R2 = 001 - XRl
Rl oder R2 = 010 - XR2
Rl oder R2 = 011 - XR3
Rl oder R2 = 100 - XR4
Rl oder R2 = 101 - XR5
Rl oder R2 = 110 - XR6
Rl oder R2 = 111 - XR7 *
Die Übertrags- und überlaufanzeiger bleiben unverändert. Mit
dieser Instruktion werden die anderen Anzeiger abhängig von
UC"0015 309819/1017
dem in das Rl-Register geladenen Operanden verändert. Der neue
Wert bleibt bestehen und kann geprüft werden, bis eine andere Instruktion die Anzeige ändert.
Speichern Akkumulator - PST: Das Kurzformat in Fig. 4A wird befolgt
wie bei den meisten hier beschriebenen Instruktionen, bei denen nichts anderes angegeben ist. Der Inhalt des Akkumulators
ersetzt den Inhalt der durch die effektive Adresse angegebenen Hauptspeicherstelle. Ein R-FeId mit dem Wert 0 bezeichnet das
IAR: ein von null verschiedenes Feld bezeichnet ein Indexregister. Der Inhalt des Akkumulators sowie Übertrags- und Überlaufanzeiger
bleiben unverändert. Mit dieser Instruktion werden die anderen Anzeiger abhängig von dem an der effektiven Adresse gespeicherten
Operanden verändert. Der neue Wert bleibt bestehen und kann geprüft werden, bis eine andere Instruktion die Anzeige
ändert.
Index Speichern - PSTX: Die effektive Adresse wird gebildet durch die Summe des Inhaltes des IAR und der Verschiebung. Der Inhalt
eines Indexregisters oder null ersetzen den Inhalt der durch die effektive Adresse angegebenen Hauptspeicherstelle. Das zu speichernde
Register wird durch das R-FeId angegeben, worin eine aus drei Bits bestehende Binärzahl das Register bezeichnet
(z. B. R= 001 bezeichnet das Register XRl, während R - 111 das
Register XR7 angibt). Wenn R = 000 ist, wird in der effektiven Adresse eine Null gespeichert.
Der Inhalt des angegebenen Registers sowie Übertrags- und Überlaufanzeiger
bleiben unverändert. Mit dieser Instruktion werden die anderen Anzeiger abhängig von dem an der effektiven Adresse
gespeicherten Operanden verändert. Der neue Wert bleibt bestehen und kann geprüft werden, bis eine andere Instruktion die Anzeige
ändert.
BC 970 015
309819/1017
Addition - PA: Der Inhalt der durch die effektive Adresse angegebenen
Hauptspeicherstelle wird zum Inhalt des Akkumulators
addiert. Das Ergebnis ersetzt den Inhalt des Akkumulators. Der Inhalt des Hauptspeichers bleibt unverändert. Mit dieser Instruktion
werden die Anzeiger abhängig von dem in den Akkumulator geladenen Ergebnis verändert. Der neue Wert bleibt erhalten und
kann geprüft werden, bis eine andere Instruktion die Anzeige ändert. Ein R-FeId von null bezeichnet das IAR.
Subtrahieren - PS: Der Inhalt der durch die effektive Adresse angegebenen Hauptspeicherstelle wird vom Inhalt des Akkumulators
subtrahiert und die Differenz ersetzt den Inhalt des Akkumulators, Der Inhalt des Hauptspeichers bleibt unverändert. Mit dieser Instruktion
werden die Anzeiger abhängig von dem in den Akkumulator geladenen Ergebnis verändert. Der neue Wert bleibt bestehen
und kann geprüft werden, bis eine andere Instruktion die Anzeige ändert. Ein R-FeId von null bezeichnet das IAR.
Logisch UND - PN: Der Irihalt der durch die effektive Adresse
angegebenen Hauptspeicherstelle wird bitweise mit dem Inhalt
des Akkumulators UND-vexknüpft. Das Ergebnis ersetzt den Inhalt
des Akkumulators. Der Inhalt des Hauptspeichers sowie Ubertrags- und überlaufanzeiger bleiben unverändert. Mit dieser Instruktion
werden die anderen Anzeiger abhängig von dem in. den Akkumulator geladenen Ergebnis verändert. Der neue Wert bleibt bestehen und .
kann geprüft werden, bis eine andere Instruktion die"Anzeige
ändert. Ein R-FeId von null bezeichnet das IAR.
Logisch ODER - PO: Der Inhalt der durch die effektive Adresse angegebenen Hauptspeicherstelle wird bitweise mit dem Inhalt
des Akkumulators ODER-verknüpft. Das Ergebnis ersetzt den Inhalt des Akkumulators. Der Inhalt des Hauptspeichers sowie übertrags-
und überlaufanzeiger bleiben unverändert. Mit dieser Instruktion
werden die anderen Anzeiger abhängig von dem in den Akkumulator geladenen Ergebnis verändert. Der neue Wert bleibt bestehen und
kann geprüft werden, bis eine andere Instruktion die Anzeige
BC 970 015 309819/1017
- 20 ändert. Ein R-FeId von null bezeichnet das IAR.
Logisch Antivalent - PX: Der Inhalt der durch die effektive Adresse angegebenen Hauptspeicherstelle wird bitweise antivalent
mit dem Inhalt des Akkumulators verknüpft. Das Ergebnis ersetzt den Inhalt des Akkumulators. Der Inhalt des Häuptspeichers sowie
Übertrags- und überlaufanzeiger bleiben unverändert. Mit dieser
Instruktion werden die anderen Anzeiger abhängig von dem in den Akkumulator geladenen Ergebnis verändert. Der neue Wert bleibt
bestehen und kann geprüft werden, bis eine andere Instruktion die Anzeige ändert. Ein R-PeId von null bezeichnet das IAR.
Register - Akkumulatorinstruktionen: PAR, PSR1 PNR, POR, PXR,
PSTR, PLR, PCR, PSLM, PIR, PIPS, PUB.
Eine arithmetische oder logische Operation, die durch das M-FeId
(Bits 12 bis 15 in Fig. 4A) vorgeschrieben wird, wird zwischen dem Inhalt eines Registers und dem Inhalt des Akkumulators ausgeführt.
Diese Operationen sind:
M=I Addition (PAR)
M = 2 Subtraktion (PSR)
M = 3 UND-Verknüpfung (PNR)
M = 4 ODER-Verknüpfung (POR) und M = 5 antivalente Verknüpfung (PXR).
Das Ergebnis wird in den Akkumulator gesetzt. Bei der Subtraktionsoperation (PSR) wird das Indexregister vom Akkumulator subtrahiert.
Anzeiger werden wie für die entsprechenden Speicher-Akkumulatorinstruktionen (PA, PS, PN, PO, PX) beeinflußt. Ein R-FeId von
null bezeichnet den Akkumulator, ein von null verschiedenes R-FeId
ein Indexregister.
Außerdem bedeutet M = 6 Speicher zum Register (PSTR) während
M = 7 Laden vom Register (PLR) angibt.
Der Akkumulatorinhalt wird in ein durch das R-FeId (PSTR) oder
BC 970 015
309819/1017
den Inhalt des durch das R-FeId angegebenen Registers gespeichert,
oder der Inhalt des durch das R-FeId angegebenen Registers wird in den Akkumulator geladen (PLR). Übertrags- und Überlaufanzeiger
werden nicht verändert. Mit diesen Instruktionen werden andere Anzeiger abhängig von dem betroffenen Operanden verändert. Der
neue Wert bleibt bestehen und kann geprüft werden, bis andere
Instruktionen die Anzeiger ändern. Das Quellenregister wird in PLR nicht verändert. Ein R-FeId von null bezeichnet das IAR,,
ein von null verschiedenes Feld ein Indexregister.
M = 8 wählt das Komplementregister (PCR). Das durch das R-FeId
angegebene Register wird zweierkomplementiert. Das Ergebnis wird in das R-Register gesetzt. Ein R-FeId von null bezeichnet den
Akkumulator, ein xvon null verschiedenes R-FeId ein Indexregister.
Der Übertragsanzeiger wird nicht verändert: Wenn die zu komplementierende
Zahl die höchste im Akkumulator darstellbare negative Zahl ist, wird der überlaufanzeiger gesetzt. Mit dieser
Instruktion werden die anderen Anzeiger abhängig vom Ergebnis im R-Register verändert. Der neue Wert bleibt bestehen und kann
geprüft werden, bis eine andere Instruktion die Anzeiger ändert.
M = 9 entspricht der Instruktion Stufe und Maske Abfühlen (PSLM). Die momentan aktive Stufe wird in binär codiertem Format in die
Bitpositionen 14 und 15 des durch das R-FeId angegebenen Registers
gesetzt. Der Inhalt des Maskenregisters wird in die Bitpositionen O bis 3 gesetzt. Die Bitpositionen 4 bis 13 werden
auf null gesetzt und die Maske wird nicht verändert. Die Übertrags-
und überlaufanzeiger werden nicht beeinflußt. Mit dieser
Instruktion werden die anderen Anzeiger abhängig von dem in das R-Register geladenen Operanden verändert. Der neue Wert bleibt
bestehen und kann geprüft werden, bis eine andere Instruktion die Anzeiger ändert. Ein R-FeId von null bezeichnet den Akkumulator,
ein von null verschiedenes R-FeId ein Indexregister. Wenn Bit 11 in der Instruktion auf 1 steht, wird die Maske ausgeleitet aber nicht verändert. Es kann keine Unterbrechung auftreten.
Dieser Zustand dauert an, bis eine PNM- oder POM-Instruktion
BC 970 015 309819/1017
- 22 - .
ausgeführt wird. Das liefert eine summarische Maskenfunktion.
ausgeführt wird. Das liefert eine summarische Maskenfunktion.
M=A wählt ein Austauschregister (PIR). Der Akkumulatorinhalt
wird in das durch das R-FeId angegebene Register gespeichert und
der Inhalt des durch das R-FeId angegebenen Registers in den Akkumulator geladen. Wenn das R-FeId gleich null ist, findet
keine Operation aufgrund dieser Instruktion statt. Übertragsund Oberlaufanzeiger werden nicht verändert. Mit dieser Instruktion
werden die anderen Anzeiger abhängig von dem aus dem R-Register in den Akkumulator gesetzten Operanden verändert. Der
neue Wert bleibt bestehen und kann geprüft werden, bis eine andere Instruktion die Anzeiger ändert.
M=B entspricht der Instruktion Prozessorstatus Laden (PLPS).
Der Prozessorstatus wird in die Bitpositionen 0 bis 9 des R-Registers geladen. R = 000 bezeichnet den Akkumulator. Übertragsund
Überlaufanzeiger werden nicht betroffen. Mit dieser Instruktion
werden die anderen Anzeiger abhängig von dem in das R-Register geladenen Operanden verändert. Der neue Wert bleibt bestehen
und kann geprüft werden, bis eine andere Instruktion die Anzeiger ändert.
M=C bezeichnet die Instruktion IARB-Register Prüfen (PUB).
Der Inhalt des IARB-Register für die gewählte Stufe ersetzt den Inhalt des durch das R-FeId angegebenen Registers. R = 000
bezeichnet den Akkumulator. Wenn die angegebene Stufe null ist, resultiert die Ausführung dieser Instruktion im Laden von Nullen
in das durch das R-FeId angegebene Register. Das IARB-Register bleibt unverändert. Die Stufe wird durch den binär codierten
Wert in den Bitpositionen 10 und 11 dieser Instruktion gewählt. Wenn die gewählte Stufe aktiv oder in der Verarbeitung ist und
gerade aufgrund eines Abrufs von einer höheren Ebene läuft, wird der Übertragsanzeiger eingeschaltet und die Stufe zurückgestellt.
Wenn die gewählte Stufe nicht aktiv ist oder gerade läuft, wird der Übertragsanzeiger ausgeschaltet. Wenn die gewählte
Stufe daher gerade läuft, wird sie abgebrochen, d. h.,
ac 970 015 309819/101 7
sie wird nicht automatisch zur laufenden Stufe, wenn alle höheren Stufen erregt sind. Auch wenn die laufende Stufe gewählt ist,
wird sie erregt. Der überlaufanzeiger wird nicht betroffen. Mit
dieser Instruktion werden die anderen Anzeiger abhängig von dem in das R-Register geladenen Operanden verändert. Der neue Wert
bleibt bestehen und kann geprüft werden, bis andere Instruktionen
die Anzeiger ändern.
Die Werte D bis F im M-PeId sind ungültig und führen zu einer
Programmprüfungsunterbrechung.
Bedingter Sprung - PSKC: Das R-FeId muß null sein. Bit 8 ist
das Überlaufrettungskennzeichen und die Bits 9 bis 15 werden zum Bedingungsfeld, in welchem darstellen:
Bit 9 = Bedingungscode null (d. h. übertrag und überlauf
ausgeschaltet) Bit 10 = Ergebnis null
Bit 11 = Ergebnis negativ (werthohes Bit = 1)
Bit 12 = Ergebnis positiv und nicht null Bit 13 = Ergebnis gleich {wertniederes Bit = 0)
Bit 14 = Übertragsanzeiger aus
Bit 15 = überlaufanzeiger aus
Bit 15 = überlaufanzeiger aus
Das die sieben Bits 9 bis 15 umfassende Feld wird als Bedingungsmaske benützt. Die zu prüfenden Bedingungen werden durch ein Bit
in der Maske angegeben. Wenn eine der angegebenen Bedingungen zutrifft, wird das Instruktionsadreßregister um eins erhöht, bevor
die nächste Instruktion geholt wird. Dadurch springt das Programm über das nächste Wort in der normalen Programmfolge. Wenn keine
Bedingungen angegeben sind oder keine der angegebenen Bedingungen zutrifft, erfolgt kein Sprung. Wenn der überlaufanzeiger gesetzt
ist (Bit 15 in der Bedingung muß auf 1 stehen), wird er ausgeschaltet,
wenn das überlaufrettungskennzeichen (Bit 8) gleich 0 ist. Alle anderen Anzeiger werden nicht betroffen. Das über-
BC 970 015
309819/1017
laufrettungskennzeichen hat keine Auswirkungen, wenn der Bedingungscode
0 (Bit 9) geprüft wird (d. h. Übertrags- und Überlaufkennzeichen werden durch diese Prüfung nicht verändert). Die
anderen Anzeiger werden durch diese Instruktion nicht betroffen.
Verzweigung und Verknüpfung - PBAL: Der Inhalt des Instruktionsadreßregisters (die Lage der nächstfolgenden Instruktion) wird
in dem durch das R-FeId angegebenen Register gespeichert. Das Instruktionsadreßregister wird dann auf die durch die Summe von
IAR plus Verschiebung gebildete effektive Adresse gesetzt, die die Lage der nächsten ausgeführten Instruktion wird. Ein R-FeId
von null bezeichnet den Akkumulator, ein von null verschiedenes R-FeId ein Indexregister. Übertrags- und überlaufanzeiger sowie
die anderen Anzeiger werden durch diese Instruktion nicht beeinflußt.
Il
Verzweigung und Lange Verknüpfung - PBALL: Das Format der Fig. 4B wird benutzt, die Bits 8 bis 15 müssen aber null sein. Der Inhalt
des Instruktionsadreßregisters wird in dem durch das R-FeId angegebenen
Register gespeichert. Ein R-FeId von null bezeichnet den Akkumulator, ein von null verschiedenes R-FeId ein Indexregister.
Das Adreßfeld wird in das Instruktionsadreßregister geladen und wird zur Adresse der als nächste auszuführenden
Instruktion. Übertrags- und überlaufanzeiger sowie die anderen
Anzeiger werden von dieser Instruktion nicht beeinflußt.
Verzweigung - PB: Die effektive Adresse ersetzt den Inhalt des
Instruktionsadreßregisters und bildet die Adresse der als nächste auszuführenden Instruktion. Ein R-FeId von null bezeichnet das
IAR, ein von null verschiedenes R-FeId ein Indexregister. Alle Anzeiger bleiben unverändert.
Bedingte Verzweigung - PBC: Das Format der Fig. 4B wird benutzt mit Ausnahme des Bits 8, welches das überlaufrettungekennzeichen
ist und der Bits 9 bis 15, die das Bedingungsfeld darstellen, in welchem bedeuten:
BC 970 015 309819/1017
Bit 9 = Bedingungscode null (d. h. überlauf und übertrag
beide aus)
Bit 10 = Ergebnis null
Bit 11 '= Ergebnis negativ (werthohes Bit =1) Bit 12 = Ergebnis positiv und nicht null
Bit 13 = Ergebnis gleich (wertniederes Bit = 0) Bit 14 = Übertragsanzeiger aus
Bit 15 = überlaufanzeiger aus.
Bit 15 = überlaufanzeiger aus.
Wenn das R-FeId gleich null ist, ist die Instruktion lang und
die Verzweigungsadresse der Inhalt des Adreßfeldes. Wenn das R-FeId von null verschieden ist, ist die Instruktion kurz und .
die Verzweigungsadresse der Inhalt des Indexregisters R.
Das die sieben Bits 9 bis 15 umfassende Feld wird als Bedingungsmaske benutzt. Die zu prüfenden Bedingungen werden durch die Bits
in der Maske angegeben. Wenn keine der angegebenen Bedingungen zutrifft oder keine Bedingungen angegeben sind, wird das
Instruktionsadreßregister mit dem Inhalt des Adreßfeldes (R = 000) oder dem Inhalt eines Indexregisters (R φ 000) geladen.
Wenn eine der angegebenen Bedingungen zutrifft, erfolgt keine Verzweigung und die nächstfolgende Instruktion wird ausgeführt.
Wenn der überlaufanzeiger geprüft wird (Bit 15 in der
Bedingung muß gleich 1 sein), wird er ausgeschaltet, falls das
überlaufrettungskennzeichen (Bit 8) auf 1 steht. Alle anderen
Anzeiger werden nicht betroffen. Das überlaufrettungskennzeichen
hat keine Auswirkung, wenn der Bedingungscode 0 (Bit 9) gleich
null ist. Das überlaufrettungskennzeichen kann geprüft werden
(d. h. übertrag und überlauf werden durch diese Prüfung nicht·
beeinflußt). Die Instruktion hat keine Auswirkung auf die anderen Anzeiger.
Verschiebung - PSLL, PSRA, PSRL, PSLC: Es wird das Format der Fig. 4A benutzt mit Ausnahme der das Modifizierfeld bildenden
Bits 8 bis 10 und der die Schiebezahl darstellenden Bits 11 bis 15. Das Register R wird um die Anzahl der in der Schiebezahl
BC 970 015 3 09 81971017
angegebenen Bitpositionen verschoben. Die Schiebezahl kann jeden Wert im Bereich von 0 bis 16 annehmen. Schiebezahlen mit einem
höheren Wert als 16 sind ungültig und führen zu einer Programmprüfunterbrechung im Prozessor. Ein R-FeId von null bezeichnet
den Akkumulator, ein von null verschiedenes R-FeId ein Indexregister.
Die Bits 8 bis 15 bilden einen Modifizierer für die Schiebeinstruktion:
000 - Linksumlaufschiebung (PSLC). Das Register R wird logisch
nach links um die Anzahl von Bitpositionen gedreht, die in der Schiebezahl angegeben sind. Übertrags- und Überlaufanzeiger werden
nicht verändert. Mit dieser Instruktion werden die anderen Anzeiger abhängig von dem Ergebnis der Schiebeoperation verändert.
Der neue Wert bleibt erhalten und kann geprüft werden, bis eine andere Instruktion die Anzeiger ändert.
001 - Logische Linksschiebung (PSLL). Das Register R wird um die Anzahl von Bitpositionen nach links verschoben, die in der
Schiebezahl angegeben sind. Die geleerten wertniederen Positionen werden auf null gesetzt. Der Überlaufanzeiger bleibt unverändert.
Die aus der Bitposition null des R-Registers ausgeschobenen Bits
steuern den Übertragsanzeiger. Eine Eins setzt den Übertragsanzeiger, eine Null stellt ihn zurück. Mit dieser Instruktion
werden die anderen Anzeiger abhängig vom Ergebnis der Schiebeoperation verändert. Der neue Wert bleibt erhalten und kann geprüft
werden, bis eine andere Instruktion die Anzeiger ändert.
010 - Logische RechtsverSchiebung (PSRL). Das Register R wird um
die durch die Schiebezahl angegebenen Bitpositionen nach rechts verschoben. Übertrags- und Überlaufanzeiger werden nicht verändert.
Mit dieser Instruktion werden die anderen Anzeiger abhängig vom Ergebnis der Schiebeoperation verändert. Der neue Wert
bleibt bestehen und kann geprüft werden, bis eine andere Instruktion die Anzeige ändert. Die geleerten werthohen Bitpositionen
des Registers R werden auf null gesetzt.
BC 970 015
309819/1017
Oil - Arithmetische Rechtsverschiebung (PSRA). Register R wird
um die durch die Schiebezahl angegebene Anzahl von Bitpositionen nach rechts verschoben. Der Wert des Vorzeichens (das werthohe
Bit) wird in die geleerten werthohen Bitpositionen des Registers R eingegeben. Übertrags- und Überlaufanzeiger bleiben unverändert.
Mit dieser Instruktion werden die anderen Anzeiger abhängig vom Ergebnis der Schiebeoperation verändert. Der neue Wert bleibt
bestehen und kann geprüft werden, bis eine andere Instruktion die- Anzeiger ändert.
Addiere Direkt - (PAI): Es wird das in Fig. 4A gezeigte Feld verwendet, dabei wird jedoch das Operandenfeld auf 16 Bits durch
Vorzeichenfortschreibung auf die acht werthohen Bits 8 bis 15 erweitert. Dann wird es zum Inhalt des durch das R-FeId angegebenen
Registers addiert. Das Ergebnis wird in das R-Register gesetzt. Ein R-FeId von null bezeichnet den Akkumulator, ein von
null verschiedenes R-FeId ein Indexregister. Übertrags- und Überlaufanzeiger
werden wie bei der Additionsinstruktxon (PA) beeinflußt. Mit dieser Instruktion werden die anderen Anzeiger
abhängig von dem in das R-Register geladenen Ergebnis verändert. Der neue Wert bleibt bestehen und kann geprüft werden, bis eine
andere Instruktion die Anzeiger wieder ändert.
Addition zum Speicher und Sprung - (PAS): Die durch die effektive Adresse angegebene Speicherstelle wird um eins erhöht. Übertragsund
überlaufanzeiger sind nicht betroffen. Mit dieser Instruktion
werden die anderen Anzeiger abhängig von dem in die effektive Adresse gespeicherten Wert verändert. Der neue Wert bleibt bestehen
und kann geprüft werden, bis eine andere Instruktion die Anzeiger ändert. Wenn das Ergebnis null ist, wird das.IAR um eins
erhöht, bevor die nächste Instruktion geholt wird. Ein R-FeId mit dem Wert null.bezeichnet das IAR, ein von null verschiedenes
R-FeId ein Indexregister.
UND und ODER zur Maske - (PNM und POM): Es gilt das Format der Fig. 4a mit Ausnahme der Bits 8 bis 14, die auf Null stehen, und
BC 970 015 3 09819/1017
dem Bit 15, welches das "C"-Bit ist. Der Inhalt der Bits O bis 3
des durch das R-FeId angegebenen Registers wird mit dem Inhalt des Unterbrechungsmaskenregisters UND-verknüpft (C « O, PNM) oder
ODER-verknüpft (C = 1, POM) und das Ergebnis in das Maskenregister gesetzt. Ein R-FeId mit dem Wert null bezeichnet den Akkumulator,
ein von null verschiedenes R-FeId ein Indexregister. Das Quellenregister wird nicht verändert. Übertrags- und Überlaufanzeiger
werden nicht betroffen, diese Instruktion ändert die anderen Anzeiger nicht. Ein Einerbit in der Maske gestattet
eine Unterbrechung.
Ausführen E/A - (PIO): Diese Instruktion folgt dem in Fig. 8 gezeigten
Format, worin die Bits 11 bis 15 null sein müssen. Die Operation dieser Instruktion und die Bitfelddefinitionen werden
später beschrieben. Allgemein wird der Bedingungscode jedoch in den Übertrags- und überlaufanzeigern gesetzt, übertrag ist Bit 0
und überlauf ist Bit 1. Die anderen Anzeiger werden durch eine PIO-Direkt-Schreiben-Instruktion nicht betroffen. Die Anzeiger
werden jedoch verändert, um die Daten zu markieren, die in das angegebene Register durch die PIO-Direkt-Lesen-Instruktion geladen
werden.
Stufenausgang - (PLEX): Die Bits 0 bis 4 definieren den OP-Code, die Bits 5 bis 15 sind aber null. Wenn diese Instruktion ausgeführt
wird, läuft der Prozessor aus der laufenden Stufe hinaus: Wenn keine anderen Unterbrechungen ausstehen, geht der Prozessor
in den Zustand. Übertrags- und überlaufanzeiger werden
nicht verändert. Diese Instruktion beeinflußt die anderen Anzeiger
nicht.
Stopp - (PSTP): Diese Instruktion umfaßt 16 Bits, worin die Bits 0 bis 4 der eindeutige OP-Code sind, die Bits 5 bis 15 aber null
sein müssen. Diese Instruktion wird nur ausgeführt, wenn das System von außen so vorbereitet wird, als ob ein Konsolenschalter
auf Einschalten steht. Sonst löst diese Instruktion keine Operation aus. Wenn die Instruktion ausgeführt wird, läuft der Pro-
BC 970 015 . 309819/1017
2251873
zessor in den Stoppzustand am Ende dieser Instruktion. Von dieser Instruktion sind keine Anzeiger betroffen.
Das Format für E/A-Instruktionen des Prozessors ist in Fig.
gezeigt. Die verschiedenen Felder haben folgende Bedeutung:
Bits O bis 4 - Diese Bits stellen das Codefeld für den Operationscode
des Prozessors dar. Der Wert 00001 entspricht PIO. Das R-FeId wird zur Bezeichnung des Registers im Prozessor benutzt/
welches von dieser E/A-Instruktion betroffen ist. Ein R-FeId mit dem Wert null bezeichnet den Akkumulator.
Bei direkten Lese/Schreibkommandos gibt das R-FeId das Register
an, welches als Quellen/Zielfeld für die zu übertragenden Daten dient. Bei der Vorbereitung E/A gibt das R-FeId das Register an,
welches die Quelle für die Vorbereitungsinformation ist und an die Unterbrechungsquelle übertragen wirdo Bei Stopp E/A wird
das R-FeId nicht benutzt. Bei Unterbrechung Setzen gibt das R-FeId das Register an, welches den Unterbrechungsdatensatz
enthält, der an den direkten Steuerkanal übertragen wird.
FUN - Das Funktionsfeld gibt die Art des auszuführenden E/Ä-Kommandos
an. Dieses Kommando kann sein Direkt Schreiben, Direkt Lesen, E/A Vorbereiten, Stopp E/A oder Unterbrechung
Setzen. Ungültige Funktionen resultieren in einer Programmprüfungsunterbrechung im Prozessor.
MOD - Das Modifizierfeld wird nur bei den Kommandos Direkt Lesen oder Direkt Schreiben benutzt» Es wird von der adressierten Einheit
dazu benutzt, die auszuführende Operation zu bestimmenο
Das Einheitenadreßfeld enthält in sechs Bits binär codierte kdreßinformation. Es bezeichnet einen Punkt, eine Gruppe oder
sine Einheit innerhalb eines Moduls'. Das Moduladreßfeld ist
BC 970 015
301819/1017.
2251873
ein binär codiertes, sechs Bit großes Feld, mit welchem das durch die ΡΙΟ-Instruktion adressierte Modul gewählt wird.
Der Bedingungscode zeigt dem Programm an, ob die durch die PIO-Instruktion
angegebene E/A-Operation erfolgreich durchgeführt wurde oder nicht und im Verneinungsfalle den Grund für das Versagen.
Bedingungscodes werden bei einer E/A-Operation in folgender Reihenfolge erzeugt:
1. Bedingungscode 3 - nicht angeschlossen,
2. Bedingungscode 2 - Belegung oder Unterbrechung ausstehend,
3. Bedingungscode 1 - Fehler und
4. Bedingungscode 0 - erfolgreich.
Direktes Schreiben - Dieses Kommando liefert die notwendigen Parameter
zur übertragung von 16 Datenbits aus dem angegebenen Register im Prozessor zur adressierten Einheit. Das Modifizierfeld
gibt die an der Einheit auszuführende Operation an. Wenn die Operation erfolgreich durchgeführt oder eingeleitet wurde, wird
der Bedingungscode 0 gesetzt. Wenn ein Fehler festgestellt wird,
wird der Bedingungscode 1 gesetzt und der Zustand im Einheitenstatuswort
(DSW) gespeichert. Wenn die Einheit belegt ist oder in einem laufenden Unterbrechungszustand steht, wird der Bedingungscode
2 gesetzt. Wenn die Einheit nicht angeschlossen ist, wird der Bedingungscode 3 gesetzt.
Direktes Lesen - Das Kommando liefert die notwendigen Parameter zur übertragung von 16 Datenbits aus der adressierten Einheit
in das angegebene Prozessorregister. Das Modifizierfeld gibt die in der Einheit auszuführende Operation an. Bedingungscodes
werden; grundsätzlich genauso gesetzt wie bei dem oben beschriebenen
Kommando Direktes Schreiben.
E '',A- Vorbereitung (Fig. 4c) - Das Kommando wird genauso ausgeführt
wie das oben beschriebene Schreibkommando. Die an die Einheit von
der:. Kommando gegebenen Parameter werden von dieser für die Festste
Ii ung benutzt, ob eine Unterbrechung gestattet ist und auf
se 970 015 309819/1017
225187S
welcher Stufe und.mit welcher Verschiebung. Die durch dieses
Kommando übernommene Punktion gestattet eine schnelle dynamische Zuordnung und Modifizierung der ünterbrechungsprioritäten sowie
des Codes, zu dem sie gehören. Die E/A-Vorbereitung gestattet diese Zuordnungsfunktion durch Programme auszuführen, auch während
andere Programme laufen. Bisher wurde diese Funktion in Maschinenteile eingebaut und zu ihrer Änderung sind technische
Schritte notwendig. Der Betrieb des Systems muß gestoppt werden, während die Änderung durchgeführt wird. E/A-Vorbereitung ist eine
zusätzliche Möglichkeit, die den ünterbrechungsmechanismus der vorliegenden Erfindung, wie er im IBM System 7 verwirklicht ist,
weiter verbessert. Das Modifizierfeld ist null und das 16 Bit große Datenbyte, welches übertragen wird, hat folgende Bedeutung:
LVL - Vier Bits (Bits 0 bis 3), welche die Prioritätsunterbrechungsstufe
angeben, die der Unterbrechungsquelle zugeordnet ist. Da angenommen wird, daß der hier beschriebene Prozessor nur vier
Prioritätsstufen (0 bis 3) unterstützt, werden nur die Bitpositionen 2 und 3 dieses Feldes benutzt, d. h. der direkte Steuerkanal
ignoriert die Bits 0 und 1, die null sein müssen.
DISP - Vier Bits (Bits 4 bis 7), die eine von 16 eindeutigen Verschiebungen für jede Unterbrechungsstufe angeben. Der Prozessor
benutzt dieses Feld zur Lokalisierung der zugehörigen Verzweigungsadresse, um zur vorgespeicherten Bedienungsroutine
Bezug zu nehmen. Die Bits 8 bis 14 sind null.
I - Das I-Bit (Bit 15) übernimmt die Unterbrechungssteuerung über
die Unterbrechungsquelle (d. h. eine Pro-Einheiten-Maske). Ein Einerbit gestattet eine Unterbrechung. Eine durch die E/A-Vorbereitungsfunktion
gesteuerte Unterbrechungsquelle darf keine Unterbrechung anfordern, wenn ihr I-Bit auf null steht. Wenn
ein eine Unterbrechung verursachendes Kommando an eine Unterbrechungsquelle
geleitet wird, deren I-Bit auf null steht, wird der Bedingungscode 1 gesetzt und eine Kommandorückweisung im'
DSVJ gespeichert (oder im CSW, wenn sich das Gerät im Steuer-
EC 970 015 309819/1017
- 32 modul befindet). Das Kommando wird nicht ausgeführt.
Wenn die E/A-Vorbereitungsoperation erfolgreich ausgeführt wird, wird der Bedingungscode 0 gesetzt. Wenn ein Fehler festgestellt
wird, wird der Bedingungscode 1 gesetzt und der Status im DSW (oder CSW) gespeichert. Wenn die adressierte Unterbrechungsquelle
belegt ist oder ein Unterbrechungszustand aussteht, wird der Bedingungscode 2 gesetzt. Wenn das adressierte Modul nicht
angeschlossen ist, wird der Bedingungscode 3 gesetzt. Die an einer Unterbrechungsquelle gespeicherte Vorbereitungsinformation wird nur bei der Systemrückstellung zurückgestellt.
Stopp E/A - Dieses Kommando setzt das adressierte E/A-Modul zurück.
Das Kommando Stopp E/A mit einer Moduladresse 0 löst eine Programmprüfungsunterbrechung im Prozessor aus. Auf Fühlern basierende
Ausgabepunkte und Vorbereitungsfelder werden nicht zurückgestellt. Andere Steuerungen, der Status und laufende Unterbrechungen
werden zurückgestellt. Wenn das Modul vorhanden ist, wird es zurückgestellt und der Bedingungscode 0 wird gesetzt.
Wenn das Modul nicht angeschlossen ist, wird der Bedingungscode 3 gesetzt. Es tritt kein anderer Bedingungscode auf. Wenn eine
Einheit eine Unterbrechung im Prozessor-Unterbrechungspuffer ausstehen hat, wird diese Unterbrechung durch das Kommando
Stopp E/A nicht zurückgestellt. Daher kann eine Unterbrechung von einer Quelle, die zurückgestellt wurde, tatsächlich dem
Prozessor präsentiert werden.
Unterbrechung Setzen - Dieses Kommando wird vom Prozessor abgegeben
und liefert die Information, die zum Setzen einer Prioritätsunterbrechung am Prozessor oder einer Achtungsunterbrechung
an einer anderen CPU notwendig ist. Das Modul Adreßfeld muß das Steuermodul angeben. Wenn das Modul Adreßfeld von null verschieden
ist, wird eine Programmunterbrechungsprüfung erzeugt. Das angegebene Register muß Daten in einem Format enthalten, in
welchem die Bits 0 bis 3 die Stufe angeben, und Bit 15 ein "Ä"-Bit ist. Das Α-Bit leitet die Unterbrechung an den Prozessor
Bc 970 015 3098 19/1017
oder die andere CPU. Die Bits 4 bis 14 sind reserviert und müssen
null sein.
Wenn das Α-Bit gleich null ist, hat das LVL-FeId dieselbe Bedeutung
wie im E/A-Vorbereitungskommando, und die Unterbrechung wird
an den Prozessor geleitet. Das LVL-PeId wird an den direkten
Steuerkanal gesendet. Wenn der direkte Steuerkanal diese Unterbrechung erfolgreich in den Unterbrechungspuffermechanismus eingibt,
wird der Bedingungscode 2 gesetzt. Wenn die geforderte
Stufe bereits ein Programm gesetzt hat, wird der Bedingungscode 2 gesetzt. Die Bedingungscodes 1 und 3 werden in diesem Fall
nicht benutzt. Diese Form des Unterbrechungssetskommandos wird für die Programmverteilung im Prozessor benutzt.
Wenn das Α-Bit gleich eins ist, wird die Unterbrechung an die andere CPU geleitet. In diesem Fall wird mit dem Unterbrechungssetzkommando
die Bedienung von einem anderen Prozessor angefordert. Der fremde Anschluß erzeugt eine Unterbrechung für die
fremde Einheit, und das entsprechende Anschlußstatusbit wird
auf Achtung gesetzt. Wenn das Achtungsbit erfolgreich aktiviert wird, wird der Bedingungscode 0 gesetzt. Wenn das Achtungsbit
bereits gesetzt ist, wird der Bedingungscode 2 gesetzt. Wenn die Fremdeinheit nicht verfügbar oder gar nicht in der Systemkonfiguration
vorhanden ist, wird der Bedingungscode 3 gesetzt. In diesem Fall des Unterbrechungssetzkommandos wird der Bedingungscode
1 nicht gesetzt.
IX - Prioritätsunterbrechungen
Wie in der Einleitung bereits erwähnt wurde, ist das Verfahren„
durch welches das Echtzeitsystem die Prioritätsunterbrechungen
behandelt, von entscheidender Bedeutung für seinen schließlichen Erfolg. Für den Prioritätsunterbreehungsmechanismus der vorliegenden
Erfindung gibt es. viele Punkte„ die anschließend aufgeführt sind?
BC970015 309819/101?
A. E/A-Vorbereitung: Die Operation dieses Kommandos wurde bereits
im Abschnitt VIII beschrieben. Sein Beitrag zum ünterbrechungsmechanismus
besteht in der Erstellung der dynamischen Zuordnung und Modifikation von Stufen und Unterstufen für Unterbrechungsquellen
und darin, daß die Manipulation reiner Einheitenmasken ermöglicht wird.
B. Das ebenfalls im Abschnitt VIII beschriebene Unterbrechungssetzkommando
gestattet die Programmsteuerung der Aufgabenverteilung oder Unterroutinen an vorgeschriebenen Stufen.
Somit stehen dieselben Prioritätsanordnungen für extern erzeugte Unterbrechungen und das Programm selbst zur Verfügung.
Dadurch wird ein hoher Grad von Flexibilität in der Verteilung neuer Aufgaben gewährleistet.
C. Die Erfindung umfaßt ein mehrstufiges vorgreifendes Priorität sun terbrechungs system. Die für diese Beschreibung angenommenen
Stufen sind mit 0, 1, 2 und 3 numeriert. Je kleiner die Stufenzahl, desto höher die Priorität. Wenn der Prozessor
nicht auf einer dieser Stufen arbeitet, befindet er sich im Wartezustand. Ein Unterbrechungsmaskenregister IMR (siehe
Fig. 3) ist im System vorgesehen mit einer Bitposition für jede der vier Unterbrechungsstüfen (siehe Beschreibung von
PNN, POM, PSLM im Abschnitt VII). Der Inhalt dieses Maskenregisters kann durch Programme manipuliert werden. Ein Einerbit
in einer gegebenen Stufenposition im Maskenregister gestattet eine Unterbrechung auf dieser Stufe. Ein Nullbit verhindert
die Unterbrechung. Somit hat das Programm die Möglichkeit, Unterbrechungen auf einer Stufenbasis zu steuern.
Außerdem ist ein summarisches Maskenbit im IMR vorgesehen, welches auch durch das Programm manipuliert werden kann und
bei Nullstellung alle Unterbrechungen verhindert. Ein Einerbit in dieser summarischen Maskenbitstellung gestattet die
Unterbrechungen, die wiederum durch das Maskenregister eingeschaltet werden. Dei: für die Bestimmung der Priorität ver-
BC 970· Ol
309819/1017
wendete Algorithmus gestattet die Unterbrechung auf der laufenden
Stufe durch eine Stufe, die eine höhere Priorität hat, vorausgesetzt, daß diese neue Stufe durch das summarische
Maskenbit und das Maskenregister eingeschaltet wird. Wenn also z.B. die Stufe 2 -arbeitet, kann sie durch die Stufe
1 oder die Stufe 0 unterbrochen werden, jedoch nicht durch die Stufe 3 oder eine neue Unterbrechung auf der Stufe 2.
Die auf einer gegebenen Stufe laufende Routine wird abgeschlossen,
wenn sie nicht durch höhere Unterbrechungsstufen
abgebrochen wird. Eine Routine ist abgeschlossen, wenn der Programmierer die Stufenausgangsinstruktion (siehe Abschnitt
VII) abgibt. Wenn diese Instruktion auftritt, stellt der Prozessor fest, ob niedrigere Stufen bereits ausstehen und wenn
das nicht der Fall ist, geht er in den Wartesustand und wartet auf neue Unterbrechungen. Wenn eine Routine einer niedrigeren
Stufe ausgeführt und durch eine Routine einer höheren Stufe abgebrochen wird, wird ihr Status im System festgehalten
und wenn die Ausführung der Routine der höheren Stufe abgeschlossen ist, kehrt das System zur niedrigeren Stufe
am Unterbrechungspunkt zurück und läuft dann auf der niedrigeren Stufe weiter bis zur Vollendung, wenn keine neuen Unterbrechungen
auftreten.
D. Für jede der vier Stufen sind 16 Unterstufen bezeichnet. Diese
sind mit null bis F numeriert. Zwischen den Unterstufen einer gegebenen Stufe bestehen keine zwangsläufigen relativen Prioritätsunterschiede.
Mit der Unterstufeninformation wird die Unterbrechungsquelle für die Maschinenteile bezeichnet, um die
richtige maschinengestützte Verbindung zur Bedienungsroutine herstellen zu können. Siehe hierzu den nachfolgenden Abschnitt
über Automatische Unterstufenverzweigung.
E. Unterbrechungspräsentation: Der direkte Steuerkanal (siehe besonders Fign. 1 und 6) enthält den Unterbrechungspräsentationsmechanismus.
Für jede der vier Stufen ist hier ein Unterbrechungspufferregister und eine Unterbrechungsanforde-
BC 970 015 309819/1017 BAD ORIGINAL
rungsverriegelung vorgesehen. Alle Prioritätsunterbjrechungen
müssen durch diesen Puffer laufen. Wenn eine Unterbrechungsquelle, wie z. B. die in Fig. 7 gezeigte Einheit, eine Unterbrechungsanforderung
abzugeben wünscht, nimmt sie mit dem direkten Steuerkanal entweder direkt oder über die interne
Schnittstelle der Fig. 7 Verbindung auf und teilt dem Kanal ihre Unterbrechungsstufe mit. Wenn der dieser Stufe entsprechende
Puffer bereits voll ist, akzeptiert der Kanal die Stufeninformation und fordert zusätzliche Information von
der Einheit an, welche dann in den Puffer gesetzt wird. Zu dieser Zeit wird der Puffer voll und die diesem Puffer entsprechende
Unterbrechungsanforderungsverriegelung wird gesetzt. Die im Puffer gehaltene Information besteht aus der
Unterstufe, der Einheitenadresse, der Moduladresse und einem summarischen Statusbit, welches später beschrieben wird.
Wenn zum Zeitpunkt einer Anforderung der Puffer für die jeweilige
Stufe bereits voll ist, wird die Anforderung gestapelt. Der unterbrechenden Quelle wird durch Setzen ihrer
Stapelverriegelung (siehe Fig. 7) mitgeteilt, daß sie" ihre Unterbrechungsbedingung aufrechterhalten muß, bis sie Instruktionen
erhält, diese wieder über die direkte Kanalsteuerung zu präsentieren. Das eine Erneuerung der Präsentation
der gestapelten Unterbrechungsanforderungen für eine gegebene Stufe begleitende Signal wird automatisch durch
den direkten Steuerkanal abgegeben, wenn der Puffer für die betreffende Stufe während der Annahme der jeweiligen
Unterbrechung durch den Prozessor leer wird. Die vier Unterbrechungsanforderungsriegel
(in Fig. 6 dargestellt), die zu den vier Puffern gehören, bilden eine Gruppe von den drei
Riegelgruppcn, die den Prioritätsunterbrechungsmechanismus im System steuern. Vom Programm gesetzte Unterbrechungen
und von einem anderen Prozessor ankommende Unterbrechungen werden in ähnlicher" Weise behandelt. Für vom Programm gesetzte
Unterbrechungen ist jedoch ein in Fig. 6 gezeigter Unterbrochungssatz-Vorpuffor für den Fall vorgesehen, daß
BC 97° °15 3 0 9 8 19 /1 0 1 7
BAD
der Puffer für die gewählte Stufe bereits voll ist. Dadurch wird sichergestellt, daß zumindestens eine vom Programm gesetzte
Unterbrechung auf der vorgeschriebenen Stufe auftritt
nach der Abgabe eines ünterbrechungssetzkommandos. Der Prozessor prüft die vier Unterbrechungsanforderungsriegel, die
von dem direkten Steuerkanal gesendet werden vor dem Ende einer jeden Instruktion und im Wartezustand kontinuierlich.
Der laufende Unterbrechungszustand des Prozessors wird in einer zweiten Gruppe von vier Riegeln festgehalten, die in
Fig. 6 als die laufenden Stufenriegel gezeigt sind. Nur einer, dieser Riegel kann zu einem gegebenen Zeitpunkt gesetzt sein.
Wenn keiner der Riegel gesetzt ist, befindet sich das System im Wartezustand. Die laufenden Stufenriegel zeigen nicht an,
welche Stufe des Prozessors tatsächlich zu einem gegebenen Zeitpunkt arbeitet. Hereinkommende Unterbrechungsanforderungen
werden durch den Prozessor mit dem summarischen Maskenbit, mit der einzelnen Stufenmaske im Maskenregister und mit
dem Wert des laufenden Stufenriegels verglichen. Wenn die Unterbrechung durch die Maskierungseinrichtungen eingeschaltet
ist und sie eine höhere Priorität hat als die laufende Stufe, dann bewirkt die Prioritatsstufensteuerlogik eine
Stufenumschaltung auf die neue Stufe am Ende der laufenden Instruktion oder unmittelbar wenn sich das System im Wartezustand
befindet. Die dritte erwähnte Gruppe aus vier Riegeln besteht aus den in Fig. 6 gezeigten Prozeß-Ein-Riegeln. Sie
zeigen die Stufen an, auf denen der Prozessor entweder gegenwärtig arbeitet oder die aufgrund der Ausführung einer Unterbrechung
mit höherer Priorität abgebrochen wurden. Um z. B. zu verhindern, daß die Stufe 2 die Stufe 2 unterbricht, wird
keine neue Anforderung für die Stufe angenommen, für welche der Prozeß-Ein-Riegel bereits gesetzt ist.
Wenn durch den Prozessor eine neue Unterbrechung auf der
Stufe X akzeptiert wird, wird die laufende X-Stufenverriegelung eingeschaltet und die Prozeß-Ein-Verriegelung für die
X-Stufe ausgeschaltet. Zu diesem Zeitpunkt wird der Anforde-
970 015 309813/1017
rungsriegel im direkten Steuerkanal für die X-Stufe zurückgestellt
und der Puffer geleert. Diese Bedingung wird allen Unterbrechungsquellen mitgeteilt, die auf der X-Stufe gestapelt
sind, und dann die erste Unterbrechungsquelle akzeptiert, die den Unterbrechungspuffer belegen kann. Diese Operation ist
in der gleichzeitig laufenden Anmeldung mit der Überschrift "Interface Multiplexer" von Patrick und Rickard beschrieben.
Andere Anforderungen auf derselben Stufe bilden wieder einen Stapel. Wenn der auf der Stufe X arbeitende Prozessor durch
eine höhere Prioritätsstufe unterbrochen wird, dann wird die Prozeß-Ein-Verriegelung eingeschaltet gelassen, die laufende
Stufe schaltet jedoch um und gibt die Ausführung auf der neuen
höheren Stufe wieder. Wenn diese Ausführung beendet ist, tastet der Prozessor die Prozeß-Ein-Riegel ab und stellt fest,
daß der Prozeß-Ein-Riegel der Stufe X gesetzt ist und damit anzeigt, daß die Stufe X bereits abgebrochen wurde, die Ausführung
jedoch schon begonnen hat. Wenn weitere Unterbrechungen mit höherer Priorität fehlen, nimmt der Prozessor die
Arbeit auf der Stufe X an dem Punkt wieder auf, an dem sie abgebrochen wurde, und führt sie zur Vollendung. An diesem
Punkt werden der Prozeß-Ein-Riegel für die Stufe X und der laufende Stufenriegel gesetzt.
Statusrettung. Bestimmte Teile eines Zentralprozessors können von dem Programm erkannt werden, welches in diesem Prozessor
arbeitet. Diese Teile werden als programmadressierbare Teile bezeichnet. Typischerweise bestehen sie aus den Registern,
die das Programm manipulieren oder benutzen kann, und Bedingungen, die das Programm erstellen oder prüfen kann.
Eines der wichtigsten Register zählt die Instruktionen, durch welche das Programm bereits gelaufen ist und wird allgemein
Instruktionsadreßregister genannt. Andere Teile des Prozessors können nicht vom Programm adressiert werden und enthalten
Spezialarbeitsregister, die von Maschinenelementen zwar benutzt werden, zu denen das Programm jedoch keinen Zugriff
hat. Solche Register stehen der Rechen- und Logikeinheit zur
970015 309819/1017
Verfügung und einer großen Anzahl von Steuer- und Takteinrichtungen.
Wenn eine Unterbrechung auftritt, wurde bisher der Wert des Instruktionsadreßregisters, durch Maschinenteile gespeichert.
Das Programm muß dann den Inhalt aller von ihm adressierbaren Register und Bedingungen speichern. Es muß
dann seine eigenen Werte laden und zum Ende weiterlaufen, wo dann die unterbrochenen Werte zurückgespeichert werden müssen.
Diese Rettung und Rückspeicherung des vom Programm adressierbaren Abschnittes der Zentraleinheit stellt einen beträchtlichen
Zeitausfall dar, der einer der Komponenten in einer gesamten Unterbrechung ist, durch die vorliegende Erfindung
aber vermieden wird.
Die Lösung dieses Problemes durch die vorliegende Erfindung besteht darin, die vom Programm adressierbaren Teile der Zentraleinheit
in Maschinenelementen zu duplizieren; daher sind für jede Unterbrechungsstufe ein Akkumulator/ sieben Indexregister,
ein Instruktionsadreßregister und ein Anzeigersatz vorgesehen. Die Statusumschaltung bei einer Unterbrechung besteht
dann in einer einfachen Umschaltung auf die entsprechende Bank von durch das„ Programm adressierbaren Daten. Dadurch
ist eine sehr schnelle Statusumschaltung auf dem System möglich und ein hohes Maß von Integriertät insofern, als die
Statusinformation gerettet und durch Maschinenteile wieder
zurückgespeichert wird und ein Programm nicht vom anderen abhängig ist, um seinen eigenen Status zurückzuspeichern
und zu retten.
Während des Empfangs einer Unterbrechung leitet das System
nicht nur don Status und lädt ihn, sondern führt auch den neuen Status ein, der sich auf die limfondo Unterbrechung
ber.ioht. Dieser Status wird aiatomatisch den Routinen zur
Verfügung gestellt, an welchen eine Unterbrechung vorgenommen wird, und spart die zeitaufwendige Anforderung des Status
von den E/A-Einheiten. Die Einheitenadresse und die Moduladrosoe
der Unterstufe werden in don Akkumulator der Haupt-
'■ «0 015 309819/1017 BAD OR1GINAL
stufe geladen, welcher die Unterbrechung zugestanden wurde, und das S-Bit wird in den Übertragsanzeiger geladen. Das
S-Bit ist ein aus einem Bit bestehender summarischer Statusanzeiger,
der in der in Fig. 7 gezeigten Einheit durch Öberwachung aller Einheitenstatusanzeiger entwickelt wird, die
im Statusregister gespeichert sind. Wenn das S-Bit auf null steht, ist die Unterbrechung auf eine normale Endbedingung
an der Unterbrechungseinheit zurückzuführen. Keine weitere Statusinformation ist dann erforderlich und die Einheit
steht direkt für eine neue Instruktion zur Verfügung. Wenn das S-Bit auf eins stand, dann ist eine Fehler- oder Ausnahmebedingung
aufgetreten und das Programm muß dann eine genaue Statusbeschreibung erhalten, indem es eine Statuspräsentation
von der Einheit fordert. Das S-Bit kann durch eine 400 Nano-Sekunden
dauernde Instruktion geprüft werden und trägt zur schnellen Ansprache des Systems bei, indem es die Möglichkeit
im allgemeinen Fall schafft, die Anforderung des Status und seine nachfolgende Analyse durch diese eine Instruktion zu
ersetzen, um festzustellen, daß eine normale Endbedingung aufgetreten ist.
G. Automatische Unterstufenverzweigung. Die gesamten, mit der Unterbrechungsumschaltung verbundenen organisatorischen Vorgänge
lassen sich durch eine automatische Verzweigung auf der Unterstufe weiter reduzieren. Aus dem in Fig. 5 gezeigten
Diagramm der Prozessorspeicherzuordnung läßt sich entnehmen, daß die Stelle 08-OB hexadezimal Tabellenhinweise
für die Startinstruktionsadreßtabellen (SIA-TabeIlen) für
jede der vier Stufen enthalten. Der Inhalt einer jeden dieser festen Adressen zeigt auf eine Tabelle mit Startinstruktionsadressen
für die verschiedenen Unterstufenwerte innerhalb der Stufe. Die Unterstufe kann daher als ein Verschiebungswert
angesehen werden, der zu der Basis addiert wird, die durch den Inhalt der festen Stelle geliefert wird.
Wenn eine Unterbrechung auf der Stufe X Unterstufe Y auftritt, adressiert der Prozessor bei der Behandlung dieser
Bc 970 015 309819/1017
Unterbrechung eine der vier festen Stellen, die der Stufe X entsprechen. Er addiert den Wert Y zu dieser Adresse und
adressiert die entsprechende Kombination aus Stufe und Unter-" stufe in der zugehörigen SIA-Liste der Stufentabelle. Die aus
diesem Speicherzugriff gewonnenen Daten werden in das Instruktionsadreßregister geladen und bilden die Adresse der ersten
Instruktion der Bedienungsroutine für die Stufe X Unterstufe
Y. Hier nimmt wieder eine Maschinenfunktion die Stelle der Programmanalyse ein und sorgt für eine schnelle Abwicklung
der Unterbrechung/ wodurch die Ansprache' des Systems weiter verbessert wird. Die Abkürzung ΟΙΑ in Fig. 5 bedeutet Alte
Ins truktion sadre s se.
Die Kombination mehrerer Register pro Unterbrechungsstufe,
die vorgesehene Bezeichnung der Unterbrechungsquelle, des summarischen Status und die automatische Unterstufenverzweigung
gestatten eine Statusumschaltung innerhalb von 800 Nanosekunden
zwischen dem Ende der Unterbrechung von der Instruktion und dem Anfang der Unterbrechung zur Instruktion. Die
definierte Lage im Speicher für Unterbrechungszwecke ist
weiter unten genauer beschrieben.
Wie bereits erwähnt wurde, wird auf die Speicheradressen in hexadezimaler Notierung Bezug genommen. Die Adressen 2 bis
7 sind in dem in Fig. 5 gezeigten Beispiel nicht zugeordnet, die Stellen 0 und 1 sind aber für die neue Startinstruktion
reserviert. Eine erzwungene Verzweigung erfolgt zu dieser Adresse, nachdem der Maschinenteil des Anfangsladeprograinmes
IPL abgelaufen ist. Die Stellen 08, 09, OA und OB enthalten die Hinweise für die Startinstruktionsadresse auf die Stufen
0 bis 3. Diese Hinweise sind die Basisadressen der Stufenverschiebungstabellen. Das erste Wort einer jeden Stufenverschiebungstabelle
ist die Programmprüfung der alten Instruktionsadresse für diese Stufe PROG 0IA. Die übrigen 15 Wörter
sind die Startinstruktionsadressen für die Stufe X Verschiebung 0 bis Stufe X Verschiebung F. Die Tabelle braucht nur
BC 970 015
309 819/1017
so lang zu sein, wie sie von der Zuordnung der Verschiebungen gefordert wird. Die Speicherstellen OD bis OF enthalten entsprechend
die Programmprüfung der Startinstruktionsadresse PROG SIA, die Leistung/Thermo-Warnung-Startinstruktionsadresse
PWRF SIA und die Maschinenprüfungs-Startinstruktionsadresse MCK SIA. Diese Adressen werden Klassenvektoren genannt und
sind die Adressen der ersten Instruktion in der entsprechenden Routine. Die Stellen 10 und 11 sind die alte Leistung/-Thermo-Warnungs-Instruktionsadresee
PWRF IOA und die alte Maschinenprüfungs-Instruktionsadresse MCK IOA.
X ~ Klassenunterbrechungen
Außer den vier Prioritatsunterbrechungsstufen sind im Prozessor
drei Klassenunterbrechungen vorgesehen. Diese sind: Programmprüfung, Maschinenprüfung und Leistung-ZThermo-Warnung. Diese
Unterbrechungen können nicht ausgeschaltet werden. In jeder Unterbrechungsstufe ist eine Speicherstelle zum Speichern des
IAR für den Fall einer ProgrammunterbrechungsprUfung vorgesehen. Daher können Programmprüfungsunterbrechungen auf jeder Stufe
auftreten und bedient werden. Da die Maschinenprüfung und die Leistung/Thermo-Warnungsunterbrechungen Bedingungen sind, die
in der ganzen Maschine auftreten können, werden aufeinanderfolgende Unterbrechungen in einer dieser beiden Klassen rekursiv
behandelt.
Wenn eine Klassenunterbrechung vorgenommen wird, werden alle Prioritätsstufen durch die Maschine automatisch abgeschaltet
und müssen auf Wunsch des Programmes erneut eingeschaltet werden. Die Unterbrechungsmaske wird nicht verändert und die Prioritätsstufen
durch das die POM- oder PNM-Instruktion abgebende Programm neu eingeschaltet. Wenn eine Klassenunterbrechung auftritt»
ist die Rettung von Registern mit Ausnahme des IAR Sache des Programmes. Bei Programmprüfungsunterbrechungen wird die Instruktion
nicht ausgeführt und keines der vom Programm adressierbaren internen Register des Prozessors verändert.
BC 970 015 3 09819/101 7
Durch eine Prograrnmprüfungsunterbrechung wird die Adresse der
Instuktion, die den Fehler verursachte, in der alten Instruktionsadresse
für Programmprüfung dieser Stufe (2. B. in PROG I0A
Stufe 0) gespeichert und die Programmprüfung-Startinstruktionsadresse
in das IAR geladen und die Ausführung begonnen. Eine Programmprüfung wird vorgenommen bei ungültigen QP-Codefunktionen
und Modifizierwerten, ungültigen Schiebezahlwerten und wenn die
passende Speichergröße durch Instruktionsabruf oder Operandenzugriff überschritten wird.
Wenn eine Maschinenprüfungsunterbrechung auftritt, ist die gerettete
Instruktionsadresse die Adresse der Instruktion, die gerade ausgeführt wurde, als die Unterbrechung auftrat« Eine Maschinenprüfung
tritt bei Register- oder Speicherparitätsfehlern auf und bei Maschinenfehlern in den Steuerungen des Prozessors,
dem Kanal .oder der Schnittstelle.
Bei einer Leistung/Thermo-Warnungsunterbrechung ist die gerettete
Instruktionsadresse die Adresse der nächsten Instruktion. Leistung/Thermo-Warnungsunterbrechungen
sind nur zwischen Instruktionen zulässig. Die Bedingung tritt auf, wenn die primäre Stromleistung
anfängt auszufallen oder wenn eine überhitsungsbedingung im System auftritt. Eine ausreichende Voranzeige dieser Bedingungen
ist vorgesehen, damit das System ordentlich abgeschaltet werden kann.
Die in Fig. 1 gezeigte allgemeine Systemkonfiguration eines
Datenerfassungs- und Prozeßsteuersystemes nach dem Erfindungsgedanken soll mit einem minimalen Zeitausfall auf Anforderungen
reagieren, die von den Benutzereinheiten gestellt werden, welche an die E/A-Moduln angeschlossen sind. Diese E/A-Moduln sind, über
eine gemeinsame Schnittstelle an einen direkten Steuerkanal angeschlossen zwecks Datenaustausch zwischen Prozessor und Speicher.
Der Speicher im Prozessormodul kann entweder adressiert werden
970 015 309819/1017
durch einen Austausch zwischen diesem Speicher und dem Speicher eines anderen Prozessors über einen Fremdanschluß oder er kann
in Verbindung treten mit anderen Datenverarbeitungsanlagen über einen Kommunikationsadapter (ACCA), über welchen der Austausch
dann ähnlich wie bei den E/A-Moäuln auf Unterbrechungsbasis abgewickelt
wird. Intervallzeitgeber sind separat im Prozessormodul enthalten, um ihre Zeitgeberfunktionen unabhängig ausführen
und den Prozessor von der Programmlast für diese Funktion befreien zu können. Die vorgesehene Bedienungsstatlon (Operatorstation)
gestattet dem Benutzer mit dem Prozessormodul über Tastatur, Lochstreifen oder dgl. in Verbindung zu treten.
Der Speicher des Prozessormoduls wird durch Austausch entweder mit einem anderen Prozessor oder mit der Bedienungsetation initialisiert,
indem ein die durchzuführenden Aufgaben definierendes Oberwachungsprogramm und die verschiedenen SpeieherZuordnungen
für Stufen- und UnterStufenverarbeitung nach Darstellung in
Fig. 5 in den Speicher gesetzt werden. Das Prozessormodul ist
dann bereit, Einleitung und Steuerung mehrerer durch die Benutzereinheiten
auszuführender Aufgaben zu beginnen. Diese Aufgaben können verschiedene Kombinationen digitaler und analoger
Dateneingabe und -ausgabe umfassen, wobei allerdings bei den analogen Funktionen die Umwandlung der analogen in digitale
Signalpegel für die Verarbeitung durch den Prozessor erforderlich ist, bevor diese Signale an die interne Schnittstelle gegeben
werden können.
Der Prozessor kann dann die Initialisierung der verschiedenen E/A-Moduln beginnen, indem er die jeweiligen E/A-Einheiten gemäß
der Darstellung in den Fign. 2 und 7 adressiert und eine E/A-Vorbereitungsinstruktion überträgt, die die Einheit dazu
veranlaßt, verschiedene, ihre Fähigkeit der Unterbrechungsabgabe an den Prozessor betreffende Information zu speichern. Dazu
gehört ein Feld, welches die Unterbrechungsstufe definiert, die in dem in den Fign. 2 und 7 gezeigten INT LEVEL-Register
gespeichert ist. Die der Adresse der jeweiligen Prozessorunter-
BC970015 309819/1017
routine entsprechende Verschiebung, die die durch die jeweilige Einheit erzeugte Unterbrechung bedienen würde, ist in dem Unterstufenregister
gespeichert. Außerdem ist darin auch eine Bitmaske an der Einheit enthalten, dia das Auftreten von Unterbrechungen
gestattet oder nicht. Es handelt sich um das I-Bit, welches im I-Bitriegel gespeichert ist.
Beim Auftreten einer, eine Unterbrechung fordernden Bedingung an der E/A-Einheit setzt diese ihre Unterbrechungsanforderungsverriegelung
nach Darstellung in den Fign= 2 und 7, die der Einheit gestattet, sich am Schnittstellenmultiplexer um eine Unterbrechungsverarbeitung
zu bemühen unter der angenommenen Voraussetzung, daß das I-Bit vorher an der Einheit gesetzt wurde und
der Stapelriegel gelöscht ist. Dieser Schnittstellenmulitplexer kann so gebaut sein, wie er in der gleichseitig angemeldeten
Patentschrift mit dem Titel "Schnittstellenmultiplexer" von Patrick und Rickard beschrieben ist» Dieses Gerät weist insofern
Vorteile auf, als eine schnelle Reaktion auf Unterbrechungen vorgesehen ist, während eine bestimmte Einheit daran gehindert
wird, die Schnittstelle zu beherrschen. Der direkte Steuerkanal erkennt, ob das Unterbrechungspufferregister, welches zn der
Stufe gehört, die der Bedienung anfordernden Einheit zugeordnet ist, leer ist. Wenn das der Fall ist, werden die AdreBunterstufe
und der summarische Status, die zu der Einheit gehören, in ihrer
Unterbrechungspuffer-Registerstufe gespeichert und die zu dem
Puffer gehörende Unterbrechungsanforderungsverriegelung gesetzt. Die Einheit bewirbt sich dann effektiv auf der Prozessorstufe
um Bedienung als Funktion ihrer Prioritätsstufe. Wenn das der Stufe der anfordernden Einheit entsprechende Unterbrechungspufferregister
bereits gefüllt ist, dann wird umgekehrt die Einheit vom Schnittstellenmultiplexer angewiesen, ihren Stapelriegel zu setzen,
ihren Unterbrechungsanforderungsriegel zurückzustellen und die Schnittstelle freizugeben. Sobald das zu der betreffenden Stufe
gehörende Unterbrechungspufferregister vom Prozessor gelöscht ist, teilt der Schnittstellenmultiplexer das allen Einheiten mit,
deren Stapelriegel gesetzt ist, damit diese dann ihren Unterbre-
80970015 309813/1017
chungsanforderungsriegel wieder setzen und sich um die Bedienung
bewerben können.
Im Prozessor reagiert die Prioritätsstufensteuerlogik auf das
Laden des Unterbrechungspufferregisters und Setzen der zugehörigen Unterbrechungsanforderungsriegel nur, wenn die angeforderte
Stufe eingeschaltet ist und gegenwärtig eine Unterbrechung auf derselben oder einer höheren Prioritätsstufe verarbeitet wird.
Die Riegel der laufenden Stufe und der in Verarbeitung befindlichen Unterbrechungen zeigen der Prioritätsstufensteuerlogik
sowohl die gerade bearbeitete Unterbrechungsstufe als auch die Stufen an, die vorher unterbrochen wurden, und fordern eine Rückkehr
zur ultimativen Bedienung zum Abschluß.
Wie aus Fig. 6 zu ersehen ist, reagiert die Prioritätssteuerlogik auf die abgegebene Unterbreehungsanforderung mit der" höchsten
Stufe und betätigt Register und setzt zu dieser Stufe gehörende Bedingungen, um die anderen Stufen auszuschließen, im gegebenen
Beispiel bedeutet das, daß die zu den Stufen 1, 2 und 3 gehörenden
Bedingungsschaltungen effektiv von der logischen und Recheneinheit und den CPU-Steuerungen getrennt werden, während nur die
Stufe 0 verbunden bleibt, wenn eine Unterbrechungsanforderung der Stufe 0 abgegeben wird. Fig. 3 zeigt im besonderen die zu
den Registern und den Bedingungsschaltungen einer jeden Stufe gehörenden Komponenten. Wenn eine Unterbrechungsanforderung
der Stufe 0 vorliegt, werden der ACC 0, alle XR-Register und das IAR der Stufe 0 betätigt, während alle anderen, zu niedrigeren
Stufen gehörenden Register vorübergehend suspendiert werden. Die ALU und die Speicheradressierung funktionieren grundsätzlich
so ähnlich wie bei konventionellen Zentraleinheiten, es ist jedoch ein Spezialmaskenregister in die Zentraleinheit eingeschlossen
worden, mit der die Maskierung einzelner Unterbrechungsstufen oder aller Unterbrechungsstufen möglich ist. Das bedeutet, daß
das erfindungsgemäße System effektiv sechs verschiedene Kriterien hat, mit denen Unterbrechungen insofern maskiert werden können,
BC970015 309819/1017
maskiert werden können, Unterbrechungen von bestimmten Stufen
durch das IMR und daß alle Unterbrechungen maskiert werden können.
Weiterhin können dies^ Maskierungsfunktionen dynamisch
durch Programmanipulation verändert·werden f die daher einea sehr
hohen Grad der Flexibilität für dieses System liefert und eine Reaktion auf wechselnde Bedingungen ermöglicht. Wenn ζ.'B0 ain
bestimmtes E/A-Gerät während kurzer Zeitabschnitte an einem gegebenen Tag kritisch ist, ^u anderen Seiten jedoch ignoriert
werden kann, kann, mit Hilfe der E/A-Vorbereitungsixistruktion
dieser Einheit am Tagesanfang eine ünterbrechungsstuf© 0 Steilen,
den I-Bitriegel jedoch gelöscht lassen. Für diese Bedingungen kann die Einheit jede unterbrechungsanforderung präsentieren«,
Der Programmierer kann dann eine Vorbereitungs-E/A-Instruktion am Anfang der kritischen ^eitperiode für diese Einheit ©rsengen^
um nur den I-Bitriegel zu setzen,- woraufhin die Einheit dann
auf ihrer.Unterbrechungsprioritätsstufe 0 arbeitet« Dieser X-Bitriegel
kann am Ende der kritischen Zeitperiode gelöscht mnd
damit die Operation dieser Einheit effektiv suspendiert werden«,
Andererseits kann die E/A-Vorbereitungsinstruktion am Anfang mit einer relativ niedrigen önterbrechungsstufe ©rseugt werden,
die dann für die kritische Seit einfach auf die Unterbrechungsstufe 0 geändert wird.
Die Arbeitsgeschwindigkeit wird weiter dadurch erhöht, -daß verschiedene
obligatorische Sammlungen und Analysen des Einheitsnstatus vermieden werden. Diese Operationen überläßt man der Einheit durch ihren summarischen Statusgenerator selbst» Die-Verwendung
des S-Bit, weiches zusammenfaßt, ob eine Statusanforderung
und Analyse erforderlich ist, gestattet dem Prozessor, diese
zeitliche Belastung zu umgehen, wenn sie nicht notwendig ist, indem
das S-Bit einfach der Datenübertragung durch die Puffer auf der Unterbrechungsanforderung hinzugefügt wird.
Die Speicherung der Unterstufenindexposition an der Einheit, die
dann an den Prozessor übertragen wird, befreit den Prozessor von einer weiteren Zeitbelastung, da die Verarbeitung der ünterbre-
BC 970 015
309819/1017
chung dem Prozeß gestattet, direkt zu der jeweiligen Unterroutine
Zugriff zu nehmen, die die Bedienungsanforderung der abgegebenen Einheit behandelt.
Im Prozessor ist der Arbeitsbereich in dem gezeigten Beispiel eine 16 Bit große Logikschaltung, die einen Eingang an die ALU-Sammelleitung
liefert. Daten werden in den Arbeitsbereich aus einer von vier Quellen eingegeben. Dazu gehört einer der die
logischen und Rechenoperationen speichernden Akkumulatoren, während langer Indexladeoperationen ein Indexregister, während der
Operationen ODER-nach-Maske oder UND-nach-Maske das Maskenregister
und während der Stufenabfühl- und Maskenoperationen das Maskenregister und die binär codierte laufende Stufe. Der Arbeitsbereich
wird ebenfalls betätigt durch ein Unterbrechungsstufen-Anzeigesignal von den Unterbrechungsstufen- und Prioritätssteuerschaltungen.
Die Parität kann an jeder gewünschten Stelle erzeugt (PG) oder geprüft (PC) werden, obwohl die in Fig. 3 gezeigten
Stellen für diesen Vorgang bevorzugt werden. Die spezifischen Datensamraelleitungen für die Datenübertragung zwischen
dem Prozessor und den Einheiten wurde nicht genauer dargestellt, da ihre Arbeitsweise durch den Schnittstellenmultiplexer allgemein
bekannt ist. Nur die zur Unterbrechungsverarbeitung und dem Abfühlen der Einheit und der Ansprache zur Vorbereitung von
E/A-Instruktion gehörenden Teile wurden in Fig. 7 besonders gezeigt.
Der Prozessor kann verschiedene Hintergrund-Programmfunktionen übernehmen, indem er den Unterbrechungsvorpuffer der Fig. 6 so
setzt, daß sein Hintergrund effektiv um eine Unterbrechungsstufe mit den anderen Einheiten konkurriert. Diese Hintergrundverarbeitung
hat natürlich eine niedrigere Prioritätsebene, die Programmierung kann jedoch vorsehen, daß unter bestimmten kritischen
Umständen nur die Hintergrundverarbeitung ausgeführt wird. Die ursprünglichen Einheiten, Zeitgeber, Bedienungsstation und Kommunikationsadapter
(ACCA) können ebenfalls dynamisch entspre-
BC 970 015
309819/1017
chend der E/A-Vorbereitungsoperation der Einheiten gesetzt werden.
Nach der Darstellung in Fig. 3 kann nur das IAR-Register um eins
erhöht werden. Um eine Duplizierung oder Umschaltung von Schaltungen
zu vermeiden, die normalerweise von der Adreßregisteroperation betroffen sind, kann die Wahl einer Prioritätsstufe zur
Bedienung begleitet sein von einer übertragung des Inhaltes eines
entsprechenden Rückgriffadreßregisters IARB in das IAR. Obwohl
im allgemeinen ein Rückgriffregister für die Stufe 0 (IARBO) nicht gebraucht wird, da die Stufe 0 durch eine andere Stufe nicht
unterbrochen werden kann, kann es dazu benutzt werden, den Inhalt des IAR der Stufe 0 bei einer Klassenunterbrechung festzuhalten.
Eine andere Benutzungsmöglichkeit für das IARBO wäre die Festhaltung der Instruktionsadresse, die gerade ausgeführt wird.
se 970 015 309819/1017
Claims (9)
- Elektronische Datenverarbeitungsanlage zur Durchführung von Aufgaben auf der Basis einer Prioritätsstufenhierarchie, gekennzeichnet durch adressierbare Speicher (Fig. 1) , logische Schaltungen zur Durchführung von Datenverarbeitungsoperationen, einschließlich arithmetischer und logischer Operationen und des Datenaustausches zwischen den genannten Speichern, durch eine Anzahl von Steuerschaltungsgruppen, von denen jeweils eine einer bestimmten Prioritätsstufe zugeordnet ist und die Operation der genannten Steuerschaltung unabhängig von den anderen Gruppen steuern kann, durch eine Einrichtung, die auf Dienstanforderungssignale anspricht, denen Prioritätsstufenmerkmale für die Betätigung nur derjenigen Steuerschaltungsgruppe beigegeben sind, die der Prioritätsstufe der höchsten Priorität des anliegenden Dienstanforderungssignals entspricht, wodurch die Steuerung der genannten Logikschaltung der genannten betätigten Steuerschaltungsgruppe ohne Berücksichtigung des Vorliegens von Dienstanforderungssignalen niedrigerer Prioritätsstufen, übergeben wird.
- 2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß jede Steuerschaltungsgruppe eine Anordnung für die Aufbewahrung der Signale besitzt, die den Operationsstatus der Gruppe, die der Logikschaltung zugeordnet ist, angibt, wobei die Betätigungseinrichtung auf den Empfang eines Dienstanforderungssignals mit höherer Prioritätsstufe dadurch anspricht, daß es die Operation der Steuerschaltung mit einer niedrigeren Prioritätsstufe an der Stelle abbricht, an der die Aufbewahrungsanordnung genügend Daten erhalten hat, um eine nachfolgende Wiederbetätigung der unterbrochenen Steuerschaltung und die Vervollständigung der unterbrochenen Operation durchzuführen.BC 970015 309819/1017
- 3. Datenverarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß die Aufbewahrungseinrichtung in jeder Gruppe aus einer Anzahl von Registern besteht, die ausreicht, um zusammen mit den Speichereinrichtungen und der Logikschaltung eine zentrale Verarbeitungseinheitenkonfigurationzu bilden und daß die Betätigungseinrichtung Mittel für die Betätigung aller Register einer Gruppe, die der ausgewählten Prioritätsstufe entspricht, umfaßt, während • · sie andererseits die Register aller unterbrochenen Gruppen dazu veranlaßt, solche Daten aufzubewahren, die deren Status bei der Unterbrechung reflektieren.
- 4. Datenverarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß für die Zusammenarbeit mit mehreren externen Einheiten, die jeweils Dienstanforderungssignale erzeugen und Anordnungen für die Speicherung von Prioritätsstufendaten besitzen, ferner folgende Einrichtungen vorgesehen sind: eine Einrichtung für die Auswahl einer externen Einheit, einer Einrichtung zur übertragung einer Prioritätsstufe, die ein Datensignal für die ausgewählte externe Einheit definiert, das in dieser Einheit gespeichert ist, eine Betätigungseinrichtung, die· auf ein Dienstanforderungssignal von einer externen Einheit mit dem Empfang einer Prioritätsstufe anspricht, die das Signal definiert, das von der betreffenden externen Einheit erzeugt wurde, als Funktion des übertragenen Prioritätsstufen-Datensignals und für die Betätigung der Steuerschaltungsgruppe, die der so definierten Prioritätsstufe entspricht.
- 5. Datenverarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß für die Zusammenarbeit mit mehreren externen Einheiten weiterhin folgende Einrichtungen vorgesehen sind: bestimmte Speicherbereiche in dem adressierbaren Speicher für mehrere getrennt adressierbare Subroutinen, eine Einrichtung für die Auswahl einer externen309819/1017Einheit, Einrichtungen für die übertragung von Daten, die eine Korrelation zwischen mindestens einer Subroutinenadresse und dem Datenspeicher einer ausgewählten Einheit durchführen, wobei die Betätigungseinrichtung Schaltungen einschließt, die auf ein Dienstanforderungssignal einer externen Einheit mit dem Empfang der übertragenen Daten von dem Speicher der externen Einheit anspricht, um zu bewirken, daß die ausgewählte Steuerschaltungsgruppe ihre Arbeit mit der Logikschaltung und dem adressierbaren Speicher beginnt, so daß die gespeicherten Subroutinen von den von der entsprechenden externen Einheit empfangenen Daten adressiert wird.
- 6. Datenverarbeitungsanlage nach Anspruch 3, dadurch gekennzeichnet, daß ferner folgendes vorgesehen ist: eine Anzahl externer Einheiten mit Speichern, Schaltungen zur Bildung eines Ausgangssignals als Funktion des Inhaltes der Speicher und Einrichtungen für die Erzeugung von Dienstanforderungssignalen, ferner Einrichtungen für die Auswahl externer Einheiten und für die übertragung der Prioritätsstufensignale zu den genannten Speichern und schließlich Betätigungseinrichtungen, die auf die Ausgangssignale der Ausgangssignalbildeeinrichtung und die genannten Dienstanforderungssignale von einer betreffenden externen Einheit mit der Betätigung der Gruppe anspricht, die eine Prioritätsstufe besitzt, die der Ausgangssignalbildeeinrichtung entspricht.
- 7. Datenverarbeitungsanlage nach Anspruch 6, dadurch gekennzeichnet, daß die externen Einheiten jeweils zweite Speicher besitzen, daß die genannten adressierbaren Speicher jeweils eine Anzahl getrennt adressierbarer Subroutinen an verschiedenen Speicherstellen aufweisen, daß ferner vorgesehen sind eine Einrichtung für die übertragung der Daten, die mindestens einer Subroutinenadresse zugeordnet sind, zu dem zweiten Speicher einer ausgewählten externenBC 970 015 309819/1017Einheit, ferner Betätigungsinitte.l, die auf ein Dienstanforderungssignal einer externen Einheit mit dem Empfang der von dem zweiten Speicher der gewählten externen Einheit übertragenen Daten anspricht, um zu bewirken, daß die ausgewählte Steuerspeichergruppe mit der Logikschaltung und dem adressierbaren Speicher zusammenarbeitet, und zwar in Übereinstimmung mit den vorher gespeicherten Subroutinen, die von den Daten adressiert werden, die von dem zweiten Speicher der entsprechenden externen Einheit empfangen werden.
- 8. Datenverarbeitungsanlage nach Anspruch 7, dadurch gekennzeichnet, daß jede externe Einheit aus folgendem besteht: •einer Einrichtung zur Speicherung von Daten, die für eine Anzahl von Bedingungen einer zugeordneten Steuereinheit indikativ sind, aus einer Logikeinrichtung für die Überwachung dieses Speichers, die immer dann ein Ausgangssignal erzeugt, wenn die Bedingungsdaten das Erfordernis einer besonderen Aufmerksamkeit der externen Einheit für die genannte Steuereinheit angeben und einer Einrichtung, die beim Vorliegen von Dienstanforderungssignalen der zugeordneten externen Einheit tätig wird, um die Ausgangssignale der Logikeinrichtung für die Überwachung zu der Steuereinheit zu übertragen, wodurch diese Steuereinheit den Statusdatenaustausch mit der externen Einheit unbe-. rücksichtigt bleiben läßt, ausgenommen, wenn das Auggangssignal der Logikeinrichtung für die Überwachung empfangen wird.
- 9. Datenverarbeitungsanlage nach Anspruch 8, dadurch gekennzeichnet, daß weiterhin folgendes vorgesehen ists eine Einrichtung zur Übertragung von Maskendaten zu einer ausgewählten externen Einheit, die'einen dritten Speicher für die Aufbewahrung der Maskendaten besitzt und außerdem eine Steuerlogikeiririchtung aufweist, die auf den Zustand des dritten Speichers anspricht, um zwischen der Betäti-EC 970 eis 309819/1017gung und Nichtbetatigung eines externen Gerätes auszuwählen, und zwar in Abhängigkeit von der Dienstanforderung der Steuereinheit, dem Ausgangssignal der Logikeinrichtung für die überwachung, des Inhaltes des zweiten Speichers und dem Ausgangssignal der Bildungseinrichtung.BC 970 015 309819/1017SSLeerseite
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US19407571A | 1971-10-27 | 1971-10-27 | |
US461337A US3905025A (en) | 1971-10-27 | 1974-04-16 | Data acquisition and control system including dynamic interrupt capability |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2251876A1 true DE2251876A1 (de) | 1973-05-10 |
DE2251876B2 DE2251876B2 (de) | 1976-03-18 |
DE2251876C3 DE2251876C3 (de) | 1978-04-20 |
Family
ID=26889676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2251876A Expired DE2251876C3 (de) | 1971-10-27 | 1972-10-23 | Elektronische Datenverarbeitungsanlage |
Country Status (5)
Country | Link |
---|---|
US (1) | US3905025A (de) |
AU (1) | AU469899B2 (de) |
CA (1) | CA980910A (de) |
DE (1) | DE2251876C3 (de) |
GB (1) | GB1397438A (de) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2305790A1 (fr) * | 1975-03-26 | 1976-10-22 | Honeywell Inf Systems | Appareil d'interface programmable et procede correspondant |
FR2305788A1 (fr) * | 1975-03-26 | 1976-10-22 | Honeywell Inf Systems | Dispositif d'affectation des traitements a un processeur suivant une polarisation de priorite |
FR2305789A1 (fr) * | 1975-03-26 | 1976-10-22 | Honeywell Inf Systems | Appareil d'interruption de programme pour un systeme de traitement des donnees |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1432335A (en) * | 1972-05-04 | 1976-04-14 | Schlumberger Ltd | Well logging data processing techniques |
US4130865A (en) * | 1974-06-05 | 1978-12-19 | Bolt Beranek And Newman Inc. | Multiprocessor computer apparatus employing distributed communications paths and a passive task register |
GB1529581A (en) * | 1974-10-29 | 1978-10-25 | Xerox Corp | Data processing apparatus |
US4263650B1 (en) * | 1974-10-30 | 1994-11-29 | Motorola Inc | Digital data processing system with interface adaptor having programmable monitorable control register therein |
US4010448A (en) * | 1974-10-30 | 1977-03-01 | Motorola, Inc. | Interrupt circuitry for microprocessor chip |
GB1505535A (en) * | 1974-10-30 | 1978-03-30 | Motorola Inc | Microprocessor system |
US4193113A (en) * | 1975-05-30 | 1980-03-11 | Burroughs Corporation | Keyboard interrupt method and apparatus |
US4012722A (en) * | 1975-09-20 | 1977-03-15 | Burroughs Corporation | High speed modular mask generator |
US4124889A (en) * | 1975-12-24 | 1978-11-07 | Computer Automation, Inc. | Distributed input/output controller system |
US4225917A (en) * | 1976-02-05 | 1980-09-30 | Motorola, Inc. | Error driven interrupt for polled MPU systems |
US4159516A (en) * | 1976-03-23 | 1979-06-26 | Texas Instruments Incorporated | Input/output controller having selectable timing and maskable interrupt generation |
US4047161A (en) * | 1976-04-30 | 1977-09-06 | International Business Machines Corporation | Task management apparatus |
US4056847A (en) * | 1976-08-04 | 1977-11-01 | Rca Corporation | Priority vector interrupt system |
US4090238A (en) * | 1976-10-04 | 1978-05-16 | Rca Corporation | Priority vectored interrupt using direct memory access |
US4084232A (en) * | 1977-02-24 | 1978-04-11 | Honeywell Information Systems Inc. | Power confidence system |
US4168532A (en) * | 1977-02-24 | 1979-09-18 | The United States Of America As Represented By The Secretary Of The Air Force | Multimode data distribution and control apparatus |
DE2754890C2 (de) * | 1977-12-09 | 1982-10-28 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Programmunterbrechung |
US4315314A (en) * | 1977-12-30 | 1982-02-09 | Rca Corporation | Priority vectored interrupt having means to supply branch address directly |
US4320502A (en) * | 1978-02-22 | 1982-03-16 | International Business Machines Corp. | Distributed priority resolution system |
JPS5515007A (en) * | 1978-07-19 | 1980-02-01 | Hitachi Ltd | Display control method |
JPS5530730A (en) * | 1978-08-22 | 1980-03-04 | Nec Corp | Data processor |
JPS5584858A (en) * | 1978-12-18 | 1980-06-26 | Nippon Denso Co Ltd | Engine control |
US4268906A (en) * | 1978-12-22 | 1981-05-19 | International Business Machines Corporation | Data processor input/output controller |
JPS55134721A (en) * | 1979-04-06 | 1980-10-20 | Hitachi Ltd | Electronic engine controlling method |
DE3072043D1 (en) * | 1979-04-06 | 1987-11-19 | Hitachi Ltd | Electronic type engine control method and apparatus |
JPS55137358A (en) * | 1979-04-16 | 1980-10-27 | Nissan Motor Co Ltd | Controller for automobile |
US4287560A (en) * | 1979-06-27 | 1981-09-01 | Burroughs Corporation | Dual mode microprocessor system |
FR2464008A1 (fr) * | 1979-08-17 | 1981-02-27 | Thomson Brandt | Dispositif d'alimentation de tube a decharge et generateur de lumiere comportant un tel dispositif |
JPS5638542A (en) * | 1979-09-05 | 1981-04-13 | Hitachi Ltd | Controlling method for engine |
US4338675A (en) * | 1980-02-13 | 1982-07-06 | Intel Corporation | Numeric data processor |
USRE33629E (en) * | 1980-02-13 | 1991-07-02 | Intel Corporation | Numeric data processor |
US4434461A (en) | 1980-09-15 | 1984-02-28 | Motorola, Inc. | Microprocessor with duplicate registers for processing interrupts |
US4423480A (en) * | 1981-03-06 | 1983-12-27 | International Business Machines Corporation | Buffered peripheral system with priority queue and preparation for signal transfer in overlapped operations |
US4382284A (en) * | 1981-04-15 | 1983-05-03 | Honeywell Inc. | Command and residual priority control of loads |
DE3138961C2 (de) * | 1981-09-30 | 1985-12-12 | Siemens AG, 1000 Berlin und 8000 München | Schaltungsanordnung zur schnellen Ausführung von Unterbrechungen nach Erkennen einer Unterbrechungsanforderung |
IT1145730B (it) * | 1981-11-13 | 1986-11-05 | Olivetti & Co Spa | Sistema di elaborazione di dati con dispositivo di controllo delle interruzioni di programma |
US4709349A (en) * | 1982-01-05 | 1987-11-24 | Sharp Kabushiki Kaisha | Method for maintaining display/print mode in display printer |
US4672543A (en) * | 1982-08-31 | 1987-06-09 | Sharp Kabushiki Kaisha | Data transmission control apparatus in local network systems |
DE3241357A1 (de) * | 1982-11-09 | 1984-05-10 | Siemens AG, 1000 Berlin und 8000 München | Vorrichtung zur mikrobefehls-bereitstellung fuer mindestens zwei unabhaengig arbeitende funktionseinheiten in einem integrierten, mikroprogrammierten elektronischen baustein und verfahren zu ihrem betrieb |
JPS5999521A (ja) * | 1982-11-29 | 1984-06-08 | Toshiba Corp | インタフエ−ス回路 |
EP0132161B1 (de) * | 1983-07-19 | 1988-06-15 | Nec Corporation | Anordnung zur Steuerung der Verarbeitung mehrerer Unterbrechungen |
JPS60121127A (ja) * | 1983-12-06 | 1985-06-28 | Nissan Motor Co Ltd | パワ−トレ−ンの制御方法 |
JPS60128031A (ja) * | 1983-12-14 | 1985-07-08 | Nissan Motor Co Ltd | パワ−トレ−ンの制御方法 |
JPS60128055A (ja) * | 1983-12-14 | 1985-07-08 | Nissan Motor Co Ltd | パワ−トレ−ンのスリツプ防止用制御方法 |
JPH0650071B2 (ja) * | 1983-12-14 | 1994-06-29 | 日産自動車株式会社 | 車両の駆動力制御装置 |
US4636944A (en) * | 1984-01-17 | 1987-01-13 | Concurrent Computer Corporation | Multi-level priority micro-interrupt controller |
JPS619748A (ja) * | 1984-06-25 | 1986-01-17 | Nec Corp | 入出力制御装置 |
JPS61107456A (ja) * | 1984-10-30 | 1986-05-26 | Toshiba Corp | 割込制御方式 |
US4718004A (en) * | 1985-02-25 | 1988-01-05 | Honeywell Inc. | Sample data acquisition system using microprocessor controlled sequence having FIFO buffer, DAM controller |
US4748573A (en) * | 1985-06-28 | 1988-05-31 | Honeywell Inc. | Test management system to acquire, process and display test data |
US4779195A (en) * | 1985-06-28 | 1988-10-18 | Hewlett-Packard Company | Interrupt system using masking register in processor for selectively establishing device eligibility to interrupt a particular processor |
JPH0792782B2 (ja) * | 1985-09-30 | 1995-10-09 | 富士通株式会社 | 処理実行システム |
US4972312A (en) * | 1985-11-04 | 1990-11-20 | U.S. Philips Corporation | Multiprocess computer and method for operating same having context switching in response to a peripheral interrupt |
US4761732A (en) * | 1985-11-29 | 1988-08-02 | American Telephone And Telegraph Company, At&T Bell Laboratories | Interrupt controller arrangement for mutually exclusive interrupt signals in data processing systems |
US4788640A (en) * | 1986-01-17 | 1988-11-29 | Intel Corporation | Priority logic system |
US4809164A (en) * | 1986-03-26 | 1989-02-28 | Tandem Computers Incorporated | Processor controlled modifying of tabled input/output priority |
JPS63238630A (ja) * | 1987-03-26 | 1988-10-04 | Toshiba Corp | マイクロプロセツサの割込み制御装置 |
JPS63245529A (ja) * | 1987-03-31 | 1988-10-12 | Toshiba Corp | レジスタ退避復元装置 |
US5222241A (en) * | 1987-06-05 | 1993-06-22 | Mitsubishi Denki Kabushiki Kaisha | Digital signal processor having duplex working registers for switching to standby state during interrupt processing |
US4914580A (en) * | 1987-10-26 | 1990-04-03 | American Telephone And Telegraph Company | Communication system having interrupts with dynamically adjusted priority levels |
JPH01126751A (ja) * | 1987-11-11 | 1989-05-18 | Fujitsu Ltd | グルーピング装置 |
FR2629230B1 (fr) * | 1988-03-22 | 1990-12-28 | Texas Instruments France | Dispositif de controle et d'acquisition de donnees a grande vitesse |
US5289583A (en) * | 1990-10-19 | 1994-02-22 | International Business Machines Corporation | Bus master with antilockup and no idle bus cycles |
JPH0776951B2 (ja) * | 1990-10-30 | 1995-08-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータシステム、複数の入出力アダプタによるアドレス空間共用システム、及び複数の入出力装置とコンピュータプロセッサ間の通信管理方 |
JPH04188303A (ja) * | 1990-11-22 | 1992-07-06 | Minolta Camera Co Ltd | 制御装置 |
US5555420A (en) * | 1990-12-21 | 1996-09-10 | Intel Corporation | Multiprocessor programmable interrupt controller system with separate interrupt bus and bus retry management |
US5613128A (en) * | 1990-12-21 | 1997-03-18 | Intel Corporation | Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller |
US5412782A (en) | 1992-07-02 | 1995-05-02 | 3Com Corporation | Programmed I/O ethernet adapter with early interrupts for accelerating data transfer |
US5404536A (en) * | 1992-09-15 | 1995-04-04 | Digital Equipment Corp. | Scheduling mechanism for network adapter to minimize latency and guarantee background processing time |
US5659759A (en) * | 1992-09-21 | 1997-08-19 | Kabushiki Kaisha Toshiba | Data processing device having improved interrupt controller to process interrupts of different priority levels |
US5471618A (en) * | 1992-11-30 | 1995-11-28 | 3Com Corporation | System for classifying input/output events for processes servicing the events |
US5530874A (en) * | 1993-02-02 | 1996-06-25 | 3Com Corporation | Network adapter with an indication signal mask and an interrupt signal mask |
JPH0713772A (ja) * | 1993-06-29 | 1995-01-17 | Mitsubishi Electric Corp | データ処理装置 |
US5894577A (en) * | 1993-09-22 | 1999-04-13 | Advanced Micro Devices, Inc. | Interrupt controller with external in-service indication for power management within a computer system |
CA2137507A1 (en) * | 1993-12-09 | 1995-06-10 | Young W. Lee | Interrupt controller for an integrated circuit |
GB2298503B (en) * | 1993-12-16 | 1998-08-12 | Intel Corp | Multiple programmable interrupt controllers in a computer system |
US5727221A (en) * | 1994-12-22 | 1998-03-10 | Texas Instruments Incorporated | Computer system power management interconnection circuitry and systems |
DE69610450T2 (de) * | 1995-03-13 | 2001-04-26 | Sun Microsystems Inc | Virtueller Ein/Ausgabeprozessor |
US5627745A (en) * | 1995-05-03 | 1997-05-06 | Allen-Bradley Company, Inc. | Parallel processing in a multitasking industrial controller |
GB9509626D0 (en) * | 1995-05-12 | 1995-07-05 | Sgs Thomson Microelectronics | Processor interrupt control |
US5852746A (en) * | 1995-06-26 | 1998-12-22 | Canon Kabushiki Kaisha | System for transmitting a message using status button to system administrator by using a signal comprising predetermined number of changes effected over a period |
DE19535546B4 (de) * | 1995-09-25 | 2004-04-08 | Siemens Ag | Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems |
US6065089A (en) * | 1998-06-25 | 2000-05-16 | Lsi Logic Corporation | Method and apparatus for coalescing I/O interrupts that efficiently balances performance and latency |
FI982262A0 (fi) * | 1998-10-19 | 1998-10-19 | Valmet Automation Inc | Menetelmä ja laitteisto teollisuusprosessin toiminnan seuraamiseksi |
JP3241332B2 (ja) * | 1998-10-27 | 2001-12-25 | 日本電気株式会社 | 無線携帯端末のノイズ低減方法 |
JP3600095B2 (ja) * | 1999-12-07 | 2004-12-08 | 松下電器産業株式会社 | 割り込み管理装置及び割り込み管理方法 |
DE10047574C2 (de) * | 2000-09-22 | 2003-07-17 | Systemonic Ag | Prozessorbusanordnung |
CN102495816B (zh) * | 2011-11-16 | 2014-12-24 | 武汉日电光通信工业有限公司 | 一种快速中断分级处理装置及方法 |
US10560317B2 (en) | 2015-12-11 | 2020-02-11 | Hewlett Packard Enterprise Development | Subscription to a subset of switching events |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3573852A (en) * | 1968-08-30 | 1971-04-06 | Texas Instruments Inc | Variable time slot assignment of virtual processors |
US3611307A (en) * | 1969-04-03 | 1971-10-05 | Ibm | Execution unit shared by plurality of arrays of virtual processors |
US3713109A (en) * | 1970-12-30 | 1973-01-23 | Ibm | Diminished matrix method of i/o control |
US3781810A (en) * | 1972-04-26 | 1973-12-25 | Bell Telephone Labor Inc | Scheme for saving and restoring register contents in a data processor |
US3825902A (en) * | 1973-04-30 | 1974-07-23 | Ibm | Interlevel communication in multilevel priority interrupt system |
-
1972
- 1972-10-02 GB GB4530372A patent/GB1397438A/en not_active Expired
- 1972-10-05 AU AU47464/72A patent/AU469899B2/en not_active Expired
- 1972-10-23 DE DE2251876A patent/DE2251876C3/de not_active Expired
- 1972-10-26 CA CA154,872A patent/CA980910A/en not_active Expired
-
1974
- 1974-04-16 US US461337A patent/US3905025A/en not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2305790A1 (fr) * | 1975-03-26 | 1976-10-22 | Honeywell Inf Systems | Appareil d'interface programmable et procede correspondant |
FR2305788A1 (fr) * | 1975-03-26 | 1976-10-22 | Honeywell Inf Systems | Dispositif d'affectation des traitements a un processeur suivant une polarisation de priorite |
FR2305789A1 (fr) * | 1975-03-26 | 1976-10-22 | Honeywell Inf Systems | Appareil d'interruption de programme pour un systeme de traitement des donnees |
Also Published As
Publication number | Publication date |
---|---|
AU4746472A (en) | 1974-04-11 |
GB1397438A (en) | 1975-06-11 |
DE2251876B2 (de) | 1976-03-18 |
CA980910A (en) | 1975-12-30 |
DE2251876C3 (de) | 1978-04-20 |
US3905025A (en) | 1975-09-09 |
AU469899B2 (en) | 1976-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2251876A1 (de) | Datenverarbeitungsanlage | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE2718051C3 (de) | Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben | |
DE2722099C2 (de) | ||
DE60015395T2 (de) | Speicher, der zwischen verarbeitenden threads geteilt ist | |
EP0048767B1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE2714805C2 (de) | ||
DE3607889A1 (de) | Verfahren zum steuern von unterbrechungen in einem virtuellen maschinensystem und virtuelles maschinensystem zur durchfuehrung des verfahrens | |
DE2912738A1 (de) | System mit direkter uebertragung zwischen subsystemen | |
DE2659662C3 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE2054835C2 (de) | Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage | |
DE2431379A1 (de) | Datenverarbeitungseinrichtung | |
EP0010198A2 (de) | Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
DE4011745A1 (de) | Taskverfolgungseinrichtung | |
DE2725522A1 (de) | Datenverarbeitungsvorrichtung | |
EP0006164A1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE1549531A1 (de) | Digitale Rechenanlage | |
DE2164793A1 (de) | Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit | |
DE2360303A1 (de) | Datenverarbeitungssystem mit dynamischer adressuebersetzung | |
DE1474063A1 (de) | Datenverarbeitungsanlage | |
DE2454613C2 (de) | Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage | |
DE19955776C1 (de) | Multitasking-Prozessorsystem | |
EP0799441B1 (de) | Verfahren zur steuerung von technischen vorgängen | |
DE2458286A1 (de) | Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |