DE2251876A1 - Datenverarbeitungsanlage - Google Patents

Datenverarbeitungsanlage

Info

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
Application number
DE2251876A
Other languages
English (en)
Other versions
DE2251876B2 (de
DE2251876C3 (de
Inventor
Michael Jan Davis
John Mario Loffredo
Patrick Lee Rickard
Larry Edward Wise
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2251876A1 publication Critical patent/DE2251876A1/de
Publication of DE2251876B2 publication Critical patent/DE2251876B2/de
Application granted granted Critical
Publication of DE2251876C3 publication Critical patent/DE2251876C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority 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
Datenverarbeitungsanlage
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
II - Datenfluß
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.
III - Rechenanzeiger
Ü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.
IV - Zahlendarstellung
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.
V - Instruktionsklassen
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
(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.
VII - Instruktionsbeschreibung
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.
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
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.
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.
VIII - E/A-Operationen
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 Punktedie 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.
XI - Arbeitsweise
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)

  1. 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. 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. 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 Verarbeitungseinheitenkonfiguration
    zu 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. 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. 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 externen
    309819/1017
    Einheit, 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. 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. 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 externen
    BC 970 015 309819/1017
    Einheit, 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. 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. 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/1017
    gung 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/1017
    SS
    Leerseite
DE2251876A 1971-10-27 1972-10-23 Elektronische Datenverarbeitungsanlage Expired DE2251876C3 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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