[go: up one dir, main page]

DE2113890C2 - Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen - Google Patents

Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen

Info

Publication number
DE2113890C2
DE2113890C2 DE2113890A DE2113890A DE2113890C2 DE 2113890 C2 DE2113890 C2 DE 2113890C2 DE 2113890 A DE2113890 A DE 2113890A DE 2113890 A DE2113890 A DE 2113890A DE 2113890 C2 DE2113890 C2 DE 2113890C2
Authority
DE
Germany
Prior art keywords
register
instruction
program
address
memory
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.)
Expired
Application number
DE2113890A
Other languages
English (en)
Other versions
DE2113890A1 (de
Inventor
Bruce A. Acton Mass. Delagi
Harold L. Concord Mass. Mcfarland Jun.
James F. Westford Mass. O'Loughlin
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=21807053&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE2113890(C2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE2113890A1 publication Critical patent/DE2113890A1/de
Application granted granted Critical
Publication of DE2113890C2 publication Critical patent/DE2113890C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

Die Erfindung ist eine zentrale Verarbeitungseinrichtung nach dem Oberbegriff des Anspruchs 1. Derartige Einrichtungen sind beispielsweise durch DE-OS 19 00 007 allgemein bekannt
LlcrarUgC JuIIIl iwIllUIlgCll au IU Lf^iap*^ia»» wia^» v»ui wn i-'L- x^«^ ι -*■ ww ww* ungvuivin i/v..»!!·.«
Datenverarbeitungsanlagen enthalten gewöhnlich als Zentraleinheit eine zentrale Verarbeitungseinnchtung, die die ihr zugeführten Verarbeitungsbefehle verarbeitet, die als Verarbeitungsprogramme, als Unterprogramme sowie als Unterbrechungsprogramme in den Speicherplätzen eines Speichers gespeichert werden. Diese Instruktionen werden nacheinander an die Zentraleinheit übertragen, wobei die Steuerung durch einen Programmzähler erfolgt. Die Daten, die die Anlage verarbeitet, werden durch Eingabe-/Ausgabe-Einrichtungen oder durch periphere Einheiten in und aus der Anlage übertragen, beispielsweise durch Fernschreiber, Streifenlocher oder Kartenleser. Gewöhnlich werden die Daten vor oder nach der Verarbeitung vorübergehend gespei-
Während der normalen Operationen werden diese Instruktionen durch den Programmzähler von den Speicherplätzen des Speichers abgerufen. Jede Instruktion enthält normalerweise einen Operationskode und eine Operandenadresse. Der Operationskode legt die durch die Zentraleinheit durchzuführende Operation fest, während die Operandenadresse den Speicherplatz der zu übertragenden Daten oder den Speicherplatz, an den die Daten übertragen werden sollen, festlegt.
Die Instruktionen werden gewöhnlich in Blöcken von einander benachbarten Speicherplätzen als Operationsprogramme, als Unterprogramme oder als Unterbrechungsprogramme, die jeweils eine Kategorie eines Betriebsprogramms sind, organisiert. Hierbei enthält ein Betriebsprogramm Instruktionen, die zur Lösung eines
speziellen Problems benutzt werden. Instruktionen zur Herstellung einer versichenmgstechnischen Tabelle würden beispielsweise ein versicherungstechnisches Operationsprogramm darstellen. Ein Unterprogramm enthält Instruktionen, die zur Durchführung einer allgemeinen Funktion benutzt werden und die in einem Operationsprogramm oder in verschiedenen Operationsprogrammen mehrmals benötigt werden können. Beispielsweise erzeugen viele Datenverarbeitungssysteme trigonometrische Funktionen mit Hilfe von mathematischen Annäherungen. Ein Operationsprogramm, das den Wen: einer trigonometrischen Funktion wie beispielsweise cos θ benötigt, verwendet ein Cosinus-Unterprogramm, das im Speicher gespeichert ist, um den Wert von cos θ für einen bestimmten Wert von Θ, der durch das Operationsprogramm zugeführt wird, zu erhalten. Ein Druck-Unterprogramm enthält in entsprechender Weise diejenigen Instruktionen, die die Zentraleinheit ausführen muß, um Daten *.n ein peripheres Gerät zu übertragen. Unterbrechungsprogramme enthalten Instruktionen, die verwendet werden, wenn Unterbrechungszustände auftreten. Unterbrechungszustände können bezüglich der datenverarbeitenden Zentraleinheit innerbetrieblicher Art sein und durch Netzausfall oder unzulässige Instruktionen verursacht sein. Sie können aber auch außerhalb der Zentraleinheit liegen, wenn beipielsweise eine Ein-/Ausgabe-Einrichtung eine Verbindung mit der Zentraleinheit oder mit dem Speicher benötigt
Bei einer bekannten Datenverarbeitungsanlage (beispielsweise dem Datenverarbeitungssystem PDP 8 der Anmelderin) enthält eine Operationsprogramminstruktion zur Übertragung von der Zentraleinheit an ein Unterprogramm eine Operandenadresse, die die erste Adresse des Unterprogramms und eine Unterprogrammkennzeichnung als Operationskode kennzeichnet In Abhängigkeit von der Instruktion verschiebt, die Zentraleinheit den Inhalt des Programmzählers, der den nächsten Instruktionsspeicherplatz des Operationsprogramms festlegt, zu der ersten Adresse des Unterprogramms. Diinn wird die Instruktions-Operanden-Adresse um eine Stelle weitergeschaltet bzw. erhöht und an den Programmzähler übertragen. Nun enthält der Proprammzähler die Adresse für die erste Unterprogramminstruktion im Speicher, Die Zentraleinheit führt die Uniirprogramminstruktionen der Reihe nach aus. In diesen A vdagen enthält die letzte Unterprogramminstruktion dk,- Adresse der ersten Adresse des Unterprogramms. Diese Adresse enthält die Operationsprogramm-Adresse für die nächste Operationsprogramm-Instruktion, und der Inhalt wird auf den Programmzähler übertragen. Dadurch kann die Zentraleinheit die nächste Operationsprogramm-Instruktion erhalten. Oft ist es vorteilhaft eine Operation der Zentraleinheit von einem ersten Unterprogramm an ein zweites Unterprogramm zu übertragen, welches das erste Unterprogramm benutzt In anderen Fällen kann es vorteilhaft sein, wenn das erste Unterprogramm sich selbst erneut wieder aufruft Mitunter ist es schwierig, wenn nicht sogar unmöglich, diese Übertragungen mit Datenverarbeitungseinrichtungen der obenbeschriebenen Art zu erzielen, ohne daß eine Abwandlung oder eine Erhöhung der Anzahl der Instruktionen erforderlich ist Wenn das erste Unterprogramm zum ersten Mal aufgerufen wird, wird der Operationsprogramm-Zählerstand an den ersten Unterprogramm-Speicherplatz (z. B. SR-I) übertragen. Wenn das erste Unterprogramm beispielsweise durch ein Zwischenprogramm wieder aufgerufen wird, wird der vorhandene Inhalt des Programmzählers wieder zu demselben Speicherplatz (SR-i) übertragen. Der Operationsprogramm-Zählstand wird gelöscht. Deshalb kann die Zentraleinheit zum Zwischenprogramm und vom Zwischenprogramm zum ersten Unterprogramm zurückkehren. Jedoch kann die Zentraleinheit-Operation nicht zum Operationsprogramm zurückgebracht werden.
Bei einer weiteren bekannten Datenverarbeitungsianlage (beispielsweise dem Datenverarbeitungssystem PDP 10 der Anmelderin), bei der ein erstes oder ein zweites Unterprogramm das erste Unterprogramm wieder aufruft, bewegt bzw. verschiebt die Zentraleinheit den Inhalt des Programmzählers zu einem bestimmten Speicherplatz, nicht aber zu dem Speicherplatz, der durch die Operandenadresse festgelegt ist Die letzte Unterprogramm-Instruktion enthält die Adresse für den Oper-tionsprogramm-Zählstand. Bei dieser Anlage kann das eine Unterprogramm das andere Unterprogramm benützen (indem die Unterprogramme verschachtelt werden) und ein teilweise beendetes Unterprogramm kann anschließend für andere Zwecke verwendet werden, wobei ein reservierter Speicherplatz für jeden Verschachtelungspegel benötigt wird. Eine Erhöhung der Anzahl dieser Speicherplätze für jedes verschachtelte Unterprogramm erhöht die Kompliziertheit dir Steuerschaltung tder der Programmierung. Die Kompliziertheit der Programmierung wird größer, weil die letzte Unterprogramminstruktion abgewandelt werden muß, um den richtigen Speicherplatz für jedes Unterprogramm zu adressieren, wenn dieses benutzt wird. Deshalb wird dieses Vorgehen um so komplizierter, je höher die Anzahl der Verschachtelungen ist.
Bei bekannten Datenverarbeitungsanlagen (beispielsweise dem Datenverarbeitungssystem PDP 10 der Anmelderiri oder einem Datenverarbeitungssystem von Burroughs der Serie 5000) svird der Inhalt des Programmzählers νου; Operationsprogramm zu einem Block aufeinanderfolgender Speicherplätze verschoben. Die letzte Unterprogramminstruktion verschiebt den Zählstand des Operationsprogramms von dem betreffenden Block zum Programmzähler. Obwohl dadurch eine Mehrfachverschachtelung ermöglicht wird, ist es dabei nicht ohne weiteres möglich. Daten im Operationsprogramm, die auf den Unterprogrammbefehl folgen, an das Unterprogramm zu übertragen, weil der Inhalt des Programmzählers sofort multipliziert wird, um die Speicherplätze der Unterprogramminstruktion zu identifizieren. Dadurch wird die Kompliziertheit der Programmierung, jeweils Daten zu übertragen, die Werte oder Datenadressen für das Unterprogramm enthalten können, noch größen
Unterprogrammzustände werden entsprechend einer vorher bestimmten Γ/iorität festgelegt und erkannt. Wenn ein Zustand erkannt wird, führt die Zentraleinheit ein entsprechendes Unterbrechungsprogramm durch. Bei diesen Datenverarbeitungsanlagen erzeugt die unterbrechende Einrichtung einen besonderen, eindeutigen »Unterbrechungsvektor«, der eine Speicheradresse ist und den ersten von zwei einander benachbarten Speicherplätzen festlegt. Am ersten Speicherplatz wird die erste Instruktionsadresse für das Unterbrechungsprogramm gespeichert während am zweiten Speicherplatz eine ein Statuswort identifizierende Zentraleinheit-Priorität gespeichert wird, wenn das Unterbrechungsprogramm ausgeführt wird.
Nachdem der Inhalt des Programmzählers und das 3tatuswort für das Operationsprogramm an vorher bestimmten Speicherplätzen gespeichert sind, werden die neue Adresse und das Statuswort an die Zentraleinheit
übertragen. Wenn dann ein zweiter Unterbrechungszustand mit einer höheren Priorität auftritt, muß das erste Unterbrechungsprogramm unterbrochen werden, wenn, was bei einigen Anlagen nicht möglich ist, das erste Unterbrechungsprogramm überhaupt unterbrochen werden kann.
In anderen Anlagen (beispielsweise im Datenverarbeitungssystem von Burroughs der Serie 5000) werden Register oder Speicherplätze benutzt, um den Zählstand des Programmzählers und das Statuswort für jeden Prioritätspegel zu speichern. Hierbei wird das erste Unterbrechungsunterprogramm beendet, nachdem das zweite Unterbrechungsunterprogramm beendet ist; aber selbst mit diesen Einschränkungen ist eine verhältnismäßig unvollständige Speicherausnutzung verbunden. Ferner wird die Programmierung kompliziert, weil jede Instruktion in der letzten Stelle des Unterbrechungsunterprogramms abgewandelt werden muß, um den Speicherplatz mit der Information des Operationsprogramms zu kennzeichnen.
Bei bekannten Datenverarbeitungsanlagen (beispielsweise dem Datenverarbeitungssystem PDP 10 der Anmelderin) werden die Inhalte des Programmzählers und eines bestimmten Speicherplatzes gegeneinander ausgetauscht. Der bestimmte Speicherplatz enthält die erste Unterbrechungsprogramm-Instruktionsadresse vor dem Tausch. Als Folge davon wird die Adresse an den Programmzähler übertragen, während der Zählstand des Operationsunterprogramms an den bestimmten Speicherplatz übertragen wird. Die Programmierung wird mühsam, wenn vielfache Unterbrechungszustände von der Zentraleinheit verarbeitet werden müssen und wenn es zu einem Versagen oder Ausfall der Anlage kommt.
Gelegentlich ist es auch notwendig, Unterprogramme von Zeit zu Zeit zu unterbrechen und dann das unterbrochene Unterprogramm als Teil des IJnterbrechunesprogramms abzurufen. Bei einigen der vorerwähnten Datenverarbeitungsanlagen kann ein Unterprogramm, das nicht beendet ist, beim Unterbrechungsprogramm nicht verwendet werden, obwohl verschachtelte Unterprogramme und Mehrfachunterbrechungen möglich sind. Beipielsweise könnte ein Unterprogramm für die Berechnung eines Cosinuswertes mit dem sich ergebenden Unterbrechungsprogramm unterbrochen werden, das dasselbe Cosinusunterprogramm benötigt. In diesen Fällen ergibt sich eine komplizierte Programmierung und ein geringer Wirkungsgrad der Speicherausnutzung bei der Anwendung des Unterprogramms.
Der Erfindung liegt die Aufgabe zugrunde, eine derartige zentrale Verarbeitungsanlage so auszubilden, daß sie die Übergänge von einem gerade in Verarbeitung befindlichen Programm zu Unterprogrammen und zu Unterbrechungsprogrammen verschiedener Prioritäten bei vollständiger Speicherausnutzung und mit geringem Aufwand möglichst flexibel durchzuführen vermag.
Diese Aufgabe wird erfindungsgemäß durch die im kennzeichnenden Teil des Anspruchs 1 angegebenen Maßnahmen gelöst.
Vorteilhafte Einzelheiten bzw. Weiterbildungen der Erfindung sind Gegenstand der Unteransprüche.
Bei einer derartigen Datenverarbeitungsanlage kennzeichnet eine Unterprogramm-Übertragungsinstruktion oder ein Unterbrechungsvektor den Speicherplatz des Unterprogramms oder des Unterbrechungsprogramms
in einem Speicher. Die Unterprogramm-Übertragungsinstruktion kennzeichnet hierbei auch ein Register. Ferner wird eine Operation der Zentraleinheit an das Unterprogramm übertragen, indem der bestehende Programmzählerinhalt im Register und der Registerinhalt zu einer freien Speicherstelle übertragen wird, die einer anderen gespeicherten information benachbart ist. Durch die letzte Ünterprogramminstnikiiori wird der Registerinhalt zum Programmzähler verschoben, und es wird die letzte daneben gespeicherte Information im Speicher zum Register verschoben.
Wenn an ein Unterbrechungsprogramm übertragen werden muß, werden der Zählstand des Operationsprogramms und das Zustandswort in die nächsten zwei einander benachbarten, freien Speicherstellen eingespeichert. Dann werden das Zustandswort und die erste Befehlsadresse an die Zentraleinheit übertragen. Bei der letzten Unterbrechungsprogramm-Instruktion werden die letzten zwei einander benachbart gespeicherten
Informationen zur zentralen Einheit verschoben. Wenn diese Übertragungen beendet sind, setzt die Zentraleinheit Durchführungsinsirukticnen im zuvor unterbrochenen Betriebsprogramm fort
Somit ist die Erfindung eine zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen, die eine Speichereinheit (Speichereinrichtung) aufweisen. Die Speichereinrichtung enthält Speicherplätze zum Speichern verschiedene»" Verarbeitungsbefehle sowie eine Vielzahl von freien Speicherplätzen, von denen jeder
so durch eine Adresse identifiziert ist Die Verarbeitungseinrichtung weist eine Adressiereinrichiung auf, die ständig beziehungsweise immer wieder Adressen von freien Speicherplätzen im Speicher bereitstellt. Eine Steuereinrichtung spricht an auf einen Übergangssprung auf Unterprogrammbefehl oder Unterbrechung. Wenn einer dieser Vorgänge abgefühlt beziehungsweise erkannt wird, erhält eine Transfer- beziehungsweise Übertragungseinrichtung die Adresse aus der Adressiereinrichtung und speichert Rückantwortinformationen an dem durch die Adresse aus der Adressiereinrichtung identifizierten Speicherplatz ab. Die Adressiereinrichtung schaltet beziehungsweise schreitet nach jedem Transfer in Richtung auf den nächsten freien Speicherplatz weiter.
Sowie Unterprogramme oder Unterbrechungen aufgetreten sind, unter der Annahme einer Anhäufung von Unterprogrammen und Unterbrechungen, werden sich daher die freien Speicherplätze in der Speichereinrichtung schrittweise auffüllen. Die Anordnung wird somit keine Lücken im Speichervorgang in der Speichereinrichtung freilassen, und auch die Adressiereinrichtung muß nicht darüber informiert werden, daß ein weiteres Unterbrechungsprogramm oder eine weitere Unterbrechung aufgetreten ist; vielmehr braucht statt dessen nur die Adressiereinrichtung davon informiert zu werden, daß die Transfereinrichtung Information an die freien Speicherplätze in der Speichereinrichtung übertragen hat
Durch die DE-OS 19 00 007 ist bereits eine Datenverarbeitungsanlage bekannt, bei der die Speichereinrichtung freie Speicherstellen aufweist die in Blöcke zu jeweils acht Wörtern unterteilt sind; beim Ausiührungsbeispiel sind dort sechzehn solcher Blöcke vorgesehen, und daher ist die Anhäufung beziehungsweise die Verarbeitung von Unterbrechungs- und Unterprogrammen auf maximal sechzehn derartiger Auftritte begrenzt Da
weiterhin die Wortanzahl in jedem solchen Block festgelegt ist, muß jeder Block nach zumindest der maximalen Wortanzahl, die jeweils bei Unterprogrammanforderung oder Unterbrechung gespeichert werden muß, einen Zwischenraum aufweisen. Wenn jedoch dort ein Unterprogramm oder eine Unterbrechung eine nur geringe Wortanzahl zur Abspeicherung in einem solchen Block erfordert, sind die verbleibenden Wörter im Block verschwendeter Platz. Dieses Problem wird mit der Erfindung vermieden. Außerdem ist aber der Adressiermechanismus bei der bekannten Anlage gegenüber dem bei der Erfindung erheblich komplizierter, denn bei der Erfindung braucht der Adressiermechanismus nur dann aufwärtszuzählen, wenn die Angaben zum Speicher hinübertragen werden, und er braucht nur dann abwärtszuzählen, wenn diese vom Speicher zurückübertragen werotfs. Bei der bekannten Anlage werden dagegen zwei Speicher benötigt, von denen der eine für die Blöcke und der andere für die Wörter im Block bestimmt ist, und es ist eine Steuerschaltung erforderlich, die den Wörterzähler beim Übergang vom einen zum anderen Block zurückstellen muß. Dies ist aufwendiger und umfangreicher auch im Aufbau der Anlage als die Erfindung.
Durch die DE-OS 15 24 150 ist bereits eine Datenverarbeitungsanlage bekannt, bei der eine zentrale Verarbeitungseinrichtung (Prozessor) vorgesehen ist, die zwar Unterbrechungen verarbeitet, dies aber in einer mit der Erfindung nicht zu vergleichenden und diese nicht nahelegenden Weise durchführt. Bei der bekannten Anlage werden die Statuswörter für alle Unterbrechungsvor- beziehungsweise -übergänge an festen Plätzen im Speicher gespeichert (die Statuswörter enthalten die Programmzählung). Wenn eine Unterbrechung erkannt ist und der Prozessor mit deren Verarbeitung beginnt, speichert er das alte Statuswort in dem für die Priorität dieses Programms vorgesehenen Platz; danach erhält er das neue Statuswort von dem für dessen Priorität vorgesehe- i
nen Platz. Dieses Vorgehen geht von dem der Erfindung weit ab und iäut sich mit dieser daher nicht vergleichen. λ> η
Durch US 33 48 211 ist bereits eine Datenverarbeitungsanlage mit einer Speichereinheit zum Speichern von ;■'<
Maschinendaten bekannt, bei der jedoch die Zentraleinheit keine Register zum Zuführen von Adressen nichtbe- j
setzter abhängiger Speicherplätze in der Speichereinheit aufweist. Bei der bekannten Anordnung sind lediglich Rückkehr-Adressenregister vorgesehen, die zwar Unterprogramm-Rückkehradressen, jedoch keine Adressen unbesetzter Speicherplätze in der Speichereinheit speichern. Bei der Erfindung dagegen verursachen Unterprogramme oder Unterbrechungen, daß Rückkehrinformalionen in einem Stapelspeicher des Hauptspeichers an Speicherplätzen gespeichert werden, die durch das Stapelzeiger-Register bestimmt werden. Bei der bekannten Anordnung werden Unterprogramm-Rückkehrinformationen im obersten Register der Rückkehr-Adressenregister gespeichert, und die Rückkehrinformationen vorhergehender Unterprogramme werden nach unten zum Register mit der nächsthöheren Nummer verschoben. Bei der Erfindung dagegen wird der Inhalt des Stapelzeiger-Registers erhöht, so daß dieser zu einem nächsten unbesetzten Speicherplatz zeigt, wodurch vorzugsweise eine Unterprogramm- oder Unterbrechungs-Verschachtelung möglich ist. Im Vergleich zu der bekannten Anordnung werden mit der Erfindung wesentliche Vorteile erzielt. Wenn ein neues Unterprogramm eingeführt wird, wird bei der bekannten Anordnung der Inhalt aller Register zum Register mit der nächsthöheren Numerierung verschoben. Dies ist bei der Erfindung nicht der Fall, weil nur das Stapelzeiger-Register inkrementiert wird und weil die Rückkehrinformationen direkt in einen Speicherplatz geladen werden. Bei der bekannten Anordnung sind ferner keine Möglichkeiten für die Einführung von Unterbrechungs-Unterprogrammen vorgesehen. Durch die Erfindung wird es außerdem dem Programmierer ermöglicht, die Größe des Stapelspeicher? zu steuern, während bei der bekannten Anordnung ein fester Stapelspeicher vorgesehen ist. Bei der Erfindung kann die Größe des Stapelspeichers durch den Programmierer in einfacher Weise dadurch bestimmt werden, daß anfänglich das Stapelzeiger-Register mit einem ausgewählten Wert beladen wird. Obwohl sich für den Programmierer Begrenzungen durch andere Speicheranforderungen seines Programms ergeben, ergibt sich für den Programmierer im Vergleich zu der Entgegenhaltung eine beträchtlich größere Flexibilität.
Die Erfindung wird nun an Hand der Zeichnungen näher erläutert. Es zeigt
F i g. 1 eine Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinrichtung gemäß der Erfindung; F i g. 2 ein Ausführungsbeispiel der zentralen Verarbeitungseinrichtung in F i g. 1;
F i g. 3 ein Ausführungsbeispiel des Instruktions-Dekoders in F i g. 2;
F i g. 4 die Organisation einer Instruktions-Operandenadresse;
F i g. 5 ein Ausführungsbeispiel der Speichereinheit in F i g. 1;
F i g. 6 das Flußdiagramm eines durch die zentrale Verarbeitungseinrichtung in F i g. 2 ausgeführten Abrufzyklus;
F i g. 7 das Flußdiagramm eines durch die zentrale Verarbeitungseinrichtung in F i g. 2 ausgeführten Ausführungszyklus;
F i g. 8 das Flußdiagramm eines durch die zentrale Verarbeitangseinrichtung in F i g. 2 ausgeführten Termzyklus; F i g. 9 ein Ausführungsbeispiel der Zeitgebereinheit in F i g. 2;
F i g. 10 ein Ausführungsbeispiel der arithmetischen Einheit in F i g. 2;
F i g. 11 ein Ausführungsbeispiel der Speicherregister-Steuereinheit und des Speicherregisters in F i g. 2;
F i g. 12 ein Ausführungsbeispiel der Statuseinheit und der Unterbrechungs-Prioritätseinheit in F i g. 2; und
F i g. 13 ein Beispiel für die Organisation der Speichereinheit in F i g. 5 für eine spezielle Situation.
Die Datenverarbeitungsanlage in F i g. 1 enthält eine zentrale Verarbeitungseinrichtung 22, eine Speichereinheit 24 mit wahlfreiem Zugriff und eine Anzahl peripherer Einheiten 26 und 28. Die verschiedenen Einheiten sind durch einen in beiden Richtungen leitenden Übertragungsweg 30 verbunden, um direkte Daten- und Befehlsübertragungen zwischen ihnen zu ermöglichen, wobei unter Befehlen alle Arten von erforderlichen Instruktionen verstanden werden sollen. Während das Ausführungsbeispiel in F i g. 1 alle Vorteile der Erfindung erbringt ist die Erfindung auch für einen Einsatz in anderen Datenverarbeitungsanlagen geeignet, wobei zumindest ein Teil ihrer Vorteile erzielbar sind.
Jede periphere Einheit und auch die Speichereinheit enthält einen Steuerabschnitt mit Daten-Pufferregistern,
Adressen-Dekodierungsschaltungen für Auswählzwecke, Register zum Speichern unterbrechender Vektoren und andere Schaltungselemente, die für die Steuerung der betreffenden Einheit erforderlich sind. Einzelheiten dieser Steuerabschnitte werden im folgenden näher erläutert
Die in Fig.2 dargestellte zentrale Verarbeitungseinrichtung 22 ist mit dem Übertragungsweg 30 über eine Anzahl von Verbindungsstellen gekoppelt Die primäre Verbindung erfolgt über eine Zwischenstelleneinheit 32, die ein Adressenregister 34, eine Zwischenstelleneinheit 36 und eine Unterbrechungs-Prioritätseinheit 38 enthält Informationen in Form von Daten oder Befehlen werden zu Speicherplätzen hin übertragen oder von diesen her t .npfangen, die durch die peripheren Einheiten 26 bzw. 28 oder die Speichereinheit 24 dargestellt sind Jeder Speicherplatz ist durch eine Adresse im Adressenregister 34 definiert Die Daten oder Befehle werden to über den Übertragungsweg 30 übertragen.
Das Adressenregister 34 überträgt auch Daten mit Hilfe einer mit dem Übertragungsweg 30 gekoppelten Konsol-Steuereinheit 35. Dadurch kann der Inhalt des Adressenregisters 34 für Wiedergabezwecke an die Steuereinheit 35 übertragen werden, oder es kann eine Adresse für Testzwecke durch die Steuereinheit 35 dem Übertragungsweg 30 zugeführt werden.
Ein Speicherregister 40 enthält ein Speicherregister-Leitwerk 42 und eine Anzahl von Speicherregistern R 0 bis R 7, TEMPund SOURCE Das Register R 7 ist der Programmzähler, und es wird entweder als R 7- oder als PC-Register bezeichnet, je nach seiner Funktion. Das Register R 6 wird auch als SP-Register bezeichnet wenr. seine Funktion darin besteht, abhängige Speicherplätze zu identifizieren. Einzelheiten des Speicherregistsrs 40 werden in Verbindung mit F i jj. 11 näher beschrieben.
Eine arithmetische Einheit 44 enthält eine Addiereinheit 46 und zwei A- bzw. B-Eingangsschaitungcn 46 und 52. Die A- und B-Eingangsschaltungen 48 und 52 empfangen Eingangssignale vom Speicherregister 40 über den Übertragungsweg 49 und von der Zwischenstelleneinheit 36 über den Übertragungsweg 50. Ausgangssignale von der Addiereinheit 46 werden über die Auswerteinheit 54 mit Vertausch- und Verschiebungsmöglichkeiten auf den Übertragungsweg 56 weiterübertragen. Der Übertragungsweg 56 ist mit dem Adressenregister 34, der Zwischenstelleneinheit 36, der Unterbrechungs-Prioritätseinheit 38, dem Speicherregister 40 und der Statuseinheit 58 verbunden. Die Statuseinheit 58 umfaßt ein Statuswortregister 59 und ist in einer Steuereinheit 60 angeordnet
Das Statuswortregister 59 für acht Bits in F i g. 2 speichert die acht Bits mit dem niedrigsten Wert auf dem Übertragungsweg 30, wenn die Gerätepriorität und vorangegangene Operationen und ob die Geräteeinheit 22 nach einer Instruktion angehalten (bedingter Programmsprung) werden kann, angeben. Die Prioritäts-Bits (Bits 5,6 und 7) definieren eine von acht Prioritäten. Ein Bit T (Bit 4) bedingt das Anhalten. Ein Bit N (Bit 3) kann eingestellt werden, wenn das Ergebnis des vorangegangenen Befehls negativ war, während ein Bit Z (Bit 2) für Null-Ergebnisse eingestellt werden kann. Ein Bit V (Bit 1) kann eingestellt werden, wenn ein arithmetischer Überschuß auftritt, während ein Bit C (Bit 0) eingestellt werden kann, wenn ein Übertrag durch die Addiereinheit 46 für das Bit mit dem höchsten Wert erzeugt wird.
Die Informationsübertragungen in der Verarbeitungseinrichtung 22 werden durch die Steuereinheit 60 überwacht Im allgemeinen werden die Instruktionen vom Übertragungsweg 50 zu einem Instruktionsregister 62 für die Dekodierung in einem Insiruktions-Dekoder 64 in Abhängigkeit von Signalen von einer Zsitgsbereinheit 66 und einer zentralen Steuereinheit 68 gekoppelt Die Taktsignale und die Signale vom Dekodierer 64 und von der Steuereinheit 68 sind auch der arithmetischen Steuereinheit 70 zugeführt die die verschiedenen Einheiten in der arithmetischen Einheit 44 steuert
Die Operationen im Speicherregister 40 werden durch eine Speicherregister-Steuereinheit 7L' gesteuert Innere Operationsbedingungen werden durch eine innere Steuereinheit 74 nachgewiesen, die auch auf andere Signale in der Steuereinheit 60 anspricht. Signale, die das Vorliegen von bestimmten inneren Bedingungen anzeigen, können über die B-Eingangsschaltung 52, die Addiereinheit 46 und die Auswerteinheit 54 auf den Übertragungsweg 56 ausgegeben werden.
Bevor die Einzelheiten zur Erläuterung der Erfindung beschrieben werden sollen, erscheint es zweckmäßig, die Übertragung von Informationen durch die Geräteeinheit 22 in Abhängigkeit von verschiedenen Befehlen zu erläutern. Während eines Abrufzyklus, der in Verbindung mit F i g. 6 eingehend erläuten werden soll, überträgt so die Steuereinheit 60 mit der arithmetischen Steuereinheit 70 und der Speicherregister-Steuereinheit 72 den Zählstand vom PC-Register (Register R 7 in dem Speicherregister 40) über die B-Eingangsschaltung 52, die Addiereinheit 46 und die Auswerteinheit 54 zum Adressenregister 34 ohne Modifikation. Der Programm-Zählstand wird dann inkrementiert und zum PC-Register zurückgeführt Dann wird der Befehl in dem vom Übertra-
§ gungsweg-Adressenregister 34 adressierten Speicherplatz aufgenommen und über die Zwischenstelleneinheit
55 36 in ein Instruktions-Register 62 gegeben. Nach Dekodierung des Befehls in einem Instruktions-Dekoder 64,
der in Verbindung mit F i g. 3 näher beschrieben wird, beendet die Steuereinheit 60 den Abrufzyklus.
g Wenn der Befehl einer von verschiedenen Steuerbefehlen (Instruktionen) in F i g. 3 ist, kann die Steuereinheit
60 veranlassen, daß die Verarbeitungseinrichtung 22 entweder zu einem Ausführungs- oder zu einem Term-Zy-
Ij klus umleitet Wenn der Befehl eine Operandenadresse, beispielsweise eine in F i g. 4 dargestellte Operanden-
£ 60 adresse enthält, wird diese dekodiert, und der durch die Operandenadresse definierte Operand, gewöhnlich
Daten, wird von der Speichereinheit 24 zur Verarbeitungsemrichtung 22 übertragen.
Nach der Übertragung der Daten an die Geräteeinheit 22 beendet entweder ein Term- oder ein Ausführungs-
| zyklus die Operation der Verarbeitungseinrichtung 22. Der Ausführungszyklus bearbeitet die beim Abrufzyklus
entsprechend dem Operationskode aufgefundenen Daten. Während des Termzyklus bestimmt die Verarbei-
65 tungseinrichtung 22, ob irgendeine Bedingung vorliegt, die eine Umleitung zu einem Unterbrechungs-Unierpro-
gramm erfordert
Bei der Erfindung kann die VerarbeiVjngseinrichtung 22 nacheinander Befehle von einem einen Verarbeitungsprogramm (Operations-Maschinenprogramm) und dann von einem anderen Verarbeitungsprogramm
(Operations-Maschinenprogramm) erhalten. Diese Maschinenprogramme werden gewöhnlich in verschiedenen Gruppen von Speicherplätzen gespeichert, und eine für die Speichereinheit 24 typische Organisation ist in F i g. 5 dargestellt Adressen vom Adressenregister 34 werden zu einem Speicher-Adressenregister (MAR) 84 gegeben. Wenn Befehle oder Daten an die Speichereinheit 24 übertragen werden, werden sie durch den Speicherpuffer (MB) 88 zu den bezeichneten Speicherplätzen übertragen. Befehle oder Daten in Speicherplätzen werden von den bezeichneten Speicherplätzen über die Speicherpuffer 88 zum Übertragungsweg 30 übertragen.
Die Speichereinheit 24 ist in Blöcke oder Gruppen von einander benachbarten Speicherplätzen unterteilt, um zusammengehörende Befehle der Reihe nach an beliebigen Speicherplätzen abzuspeichern. Beispielsweise können die Speicherplätze des Blocks 86 Programmbefehle speichern. Diese Speicherplätze werden normalerweise durch das PC-Register R 7 adressiert Ein JSR-Befehl (Instruktion) enthält eine Adresse für den Block 90, der die verschiedenen Unterprogramm-Befehle speichert Unterbrechungsprogramm-Befehle werden in einem Block 92 mit benachbarten Speicherplätzen gesteuert Der Block 94 speichert den Inhalt des PC-Registers R 7 und den Inhalt des Statuswortregisters 59, wenn ein Unterprogramm oder ein Unterbrechungsprogramm an Speicherplätzen eingeleitet wird, die durch den Inhalt des SP-Registers R 6 definiert sind.
Wie aus den F i g. 2 und 5 ersichtlich ist, wird eine Instruktion als Befehl für ein Verarbeitungs- bzw. Operationsprogramm von einem Speicherplatz im Block 86 übertregen, wenn der Inhalt des PC-Registers R 7 über die arithmetische Einheit 44 zum Adressenregister 34 übertragen wird. Die adressierte Instruktion wird dann von der Speichereinheit 24 erhalten und an das Instruktionsregister 62 und an den Instruktions-Dekoder 64 übertragen Wenn die Instruktion eine Operandenadresse enthält, wird der Inhalt des gekennzeichneten Registers über die B-Eingangsschaltung 52 der arithmetischen Einhcii 44 auf den Übertragungsweg 56 übertragen. Wenn die Ausgangssignaie der arithmetischen Einheit 44 auf dem Übertragungsweg 56 Daten sind, werden diese an eine durch die Im-iruktion definierte Adresse übertragen und im Adressenreg'ster 34 gespeichert.
Wenn das arithmetische Ausgangssignal eine Adresse ist, wird sie an das Adressenregister 34 übertragen. Der Inhalt des adressierten Speicherplatzes wird auf die A- oder B-Eingangsschaltung 48 oder 52 als Daten oder als andere Adresse übertragen. Die Erläuterung von Einzelheiten der Adressierung entsprechend dem Operandenadressen-Format in F i g. 4 ist zum Verständnis der Erfindung nicht erforderlich.
Bei der Erfindung hat eine JSR-Instruktion gewöhnlich ein Oktalformat von 004RXX, wobei »R« gewöhnlich das Register R 5 identifiziert und »XX« die Operandenadresse ist Wenn diese Instruktion dekodiert wird, wird der Inhalt des Registers R 5 zum nächsten unbesetzten Speicherplatz im Block 90 bewegt, der durch das SP-Register R 6 definiert ist Dir Inhalt des PC-Registers R 7 wird in das Register R 5 bewegt. Dann wird der 'nhalt des Speicherplatzes, der durch die Operandenadresse adressiert wurde, in das PC-Register R 7 übertragen. Wenn die zur Dekodierung der JSR-Instruktion benötigten Ausführungs- und Termzyklen beendet sind, bewirkt die Verarbeitungseinrichtung 22 einen Abrufzyklus und erhält den ersten Unterprogramm-Befehl von der Speichereinheit 24.
Bei einer RTS-Instruktion, die das Format 00020R hat, definiert »R« gewöhnlich das Register R 5. Wenn ein anderes Register in der betreffenden JSR-Instruktion !gekennzeichnet ist, muß die RTS-Instruktion modifiziert werden. Wenn die RTS-Instruktion dekodiert ist, wird der Speicherinhalt des Registers R 5 in das PC-Register R 7 bewegt Zusätzlich wird der Inhalt des Speicherolatzes, der durch das SP-Register R 6 identifiziert ist, in das Register R 5 bewegt Nach der Ausführung der RTS-Instruktion enthält deshalb das PC-Register R 7 die Adresse des auf die JSR-Instruktion folgenden Verarbeitungsprogramm-Befehls.
Die Verarbeitungseinrichtung 22 kann auf alle Bedingungen antworten, die während des Termzyklus eine Antwort der Verarbeitungseinrichtung erfordern. Wenn eine derartige Anfrage mit einer ausreichenden Priorität gemacht wird, wird ein Unterbrechungsvektor zur Verarbeitungseinrichtung 22 bewegt, um zwei benachbarte Speicherplätze zu identifizieren. Diese Speicherplatte enthalten die erste Unterbrechungsbefehlsadresse und ein zugehöriges Statuswort Der Inhalt des PC-Register.» R 7 und der Inhalt des Statuswortregisters 59 weisen auf die nächsten beiden unbesetzten Speicherplätze im Block 94 unter Steuerung des SP-Registers R 6 übertragen. Dann werden die erste Befehlsadresse und das zugehörige Statuswort auf das PC-Register R 7 bzw. das Statuswortregister 59 übertragen. Wenn die Verarbeitungseinrichtung 22 den nächsten Abrufzyldus ausführt, wird von der Speichereinheit 24 der erste Unterbrechungsbefehl erhalten.
Der letzte Unterbrechungsbefehl (eine RTI-Instruktion) führt die Verarbeitungseinrichtung 22 zum unterbrochenen Verarbeitungsprogramm zurück. Wenn die RTI-Instruktion dekodiert ist, werden das Statuswort und der nächste Programmzählstand des Verarbeitungsprogramms vom Block 94 zum Statuswortregister 59 bzw. zum PC-Register R 7 übertragen. Wenn die Verarbeitiiingseinrichtung 22 den nächsten Abrufzyklus ausführt, wird von der Speichereinheit 24 der Verarbeitungsbefehl erhalten, der auf diejenige Instruktion folgt, die gerade in der Verarbeitungseinrichtung 22 war, als die Unterbrechung auftrat
Ein unterbrochenes Verarbeitungsprogramm kann ein übliches Verarbeitungsprogramm, ein Unterprogramm oder ein Unterbrechungsprogramm sein. Deshalb kann jedes Unterprogramm oder jedes Unterbrechungsprogramm zusätzlich zu den üblichen Verarbeitungsprogrammen unterbrochen werden. Eine Übertragung des Inhalts des PC-Registers R 7 zum Register J? 5 und des Registers R 5 zum Block 94 ermöglicht eine zeitliche Verschachtelung von Unterprogrammen und einen erneuten Abruf als Verarbeitungsprogramme innerhalb anderer Unterprogramme, Unterbrechungsprogramme oder üblicher Verarbeitungsprogramme. Wenn die Information immer zum selben Block übertragen wird, beispielsweise zum Block 94, dann können Unterbrechungsprogramme und Unterprogramme miteinander vermischt werden. Die RTI- und RTS-Instruktion und das Ende jedes Unterbrechungsprogramms oder Unterprogramms verursachen, daß die Verarbeitungseinrichtung 22 durch die verschiedenen Verarbeitungsprogramme in umgekehrter Reihenfolge gegenüber der- jenigen, mit der die Verarbeitungsprogramme eingeleitet wurden, zum ersten Verarbeitungsprogramm zurückgelangt
Es sei beispielsweise angenommen, daß ein Unterprogramm SUBR-X, das in einem Verarbeitungsprogramm
Verwendung Findet, unterbrochen wird und daß das Unterbrechungsprogramm das Unterprogramm SUBR-I benötigt Die Verarbeitungsemrichtung 22 beginnt das Verarbeitungsprogramm, schaltet auf das Unterprogramm SUBR-i um und wird unterbrochen. Dann wird das Unterprogramm SUBR-I wieder aufgerufen. Zu diesem Zeitpunkt enthalt das PC-Register R 7 eine Si/SÄ-l-Befehlsadresse, und die gesamte Rückführin-
formation ist im Register R 5 oder im Block 94 gespeichert Das Register R 5 enthält eine Adresse für das Unterbrechungjprogramm, während die Information im Block 94 so angeordnet ist, daß die nächste Verarbeitungsprogramm-Befehlsadresse zuerst für die Übertragung an das Register R 5 ausgelesen wird. Danach folgt die Adresse für den nächsten Befehl für das St/S/M-Unterprogramm, das unterbrochen war, und das Statuswort für das Verarbeitungsprogramm.
to Wenn das SL/BÄ-1-Unterprogramm beendet ist, überträgt dessen RTS-Instruktion den Inh&lt des Registers R 5 an das PC-Register und die letzte im Block 94 gespeicherte Information an das Register R 5. Dadurch kann die Verarbeitungseinrichtung 22 das Unterbrechungs-Unterprogramm beenden und schließlich die RTi-Instruktion ausführen. Nun wird die Adresse für die SL/BÄ-l-Unterprogramm-lnstruktion, die auf den Befehl folgt, der ausgeführt wurde, als die Unterbrechung auftrat, direkt an das PC-Register R 7 übertragen. Schließlich über-
trägt die RTS-Instraktion am Ende dieses Unterprogramms den Inhalt des Registers R 5 zurück an das PC-Register R 7, damit die Verarbeitungseinrichtung 22 das Verarbeitungsprogramm vervollständigen kann.
Aus <hn obigen Ausführungen geht hervor, daß das Ausführungsbeispiel in F i g. 1 mit der Verarbeitungseinrichtung 22 in F i g. 2 die Programmierung vereinfacht, während andererseits ermöglicht wird, daß der Verarbeitungseinrichtung 22 verschiedene Verarbeitungsprogramme ganz und teilweise ausgeführt Irgendeine Größe, Anzahl oder Kombination von Unterprogrammen und Unterbrechungsprogrammen kann teilweise durchgeführt werden, wobei jedoch die Bewegung des Inhalts des PC-Registers R 7, des Registers R 5 und des Statuswortregisters 59 zum Block 94 die Kompliziertheit der Programmierung verringert Die Vrrarbeitungszeiten der Verarbeitungserarichtung 22 werden aus zwe: Gründen verringert Die Verwendung der Register R 5 und R 6 (SP) im Speicherregister 40 verringert für diese Übertragungen die Ausführung!- und Übertragungszeiten und
ermöglicht mit den RTI- und RTS-Instruktionen eine arithmetische Verschachtelung ohne eine bedeutsame Dekodierung von Adressen.
Im folgenden soll eine eingehende Erläuterung der Arbeitsweise erfolgen. Da die Operation, Adressenmodus und Register-Auswählkode in einer Wechselbeziehung stehen und primäre Signale in der Steuereinheit 60 bilden, zeigen F i g. 3 und 4 das Format für einige Beispiele von Befehlen (Instruktionen). Die für die Erfindung wichtigen Befehle werden zusammen mit der Bedeutung der verschiedenen Arten der Operandenadressen eingehend beschrieben.
a) Instruktionen
Wie insbesondere aus F i g. 3 ersichtlich ist, werden die Befehle bzw. Instruktionen willkürlich in Steuer-, Ein-Operanden und Zwei-Operanden-Adressen-Kategorier. zum Zwecke der Erläuterung unterteilt Jede Instruktion ist so ausgebildet, wie es in der Spalte instruktions-Format gezeigt ist Wenn eine spezielle insiruküon zum Instruktions-Dekoder 64 in Fig.2 Obertragen wird, wird ein Instruktions-Signalleiter erregt Es sollen jedoch nur diejenigen Instruktionen näher erläutert werden, die sich direkt auf die Erfindung beziehen, nämlich
die JSR-, RTI- und RTS-Instruktionen. Jede Instruktion erzeugt ein Signal auf einem Ausgangsleiter, von denen beide durch dieselbe Gedächtnishilfe gekennzeichnet werden, die in der folgenden Tabelle und in der Instruktionsspalte von F i g. 3 auftritt
Tabelle I
Instruktionen Oktalzahl Funktion JRS 0004RXX Wenn es erforderlich ist, ein Zwischenergebnis von einem anderen Satz von Instruktionen zu erhalten und dann zu dem ursprünglichen Operationspro-
gramm zurückzukehren, wird die JSR-lnstruktion ausgegeben, wenn »R« ein
Code mit drei Bits ist, wodurch gewöhnlich das R 5-Register identifiziert wird. Die anfängliche Unterprogramm-Instruktionsadresse wird durch die Operandenadresse XX lokalisiert Die Adresse für die Instruktion, die auf die JSR-lnstruktion in dem ursprünglichen Programm folgt, wird in dem ausgewählten (R 5)-Register gespeichert
RTS 00020R Dies ist die letzte Instruktion in einem Unterprogramm. »R« ist der Register-
Auswählcode mit drei Bits, wodurch gewöhnlich das Register R 5 identifiziert wird. Die Verarbeitungseinrichtung erhält die Instruktion, die auf die JSR-Instruktion folgt, von der Speichereinheit während des nächsten Abrufzyklus.
RTI 000002 Dies ist die letzte Instruktion in einem Unterbrechungsprogramm, die in der
Speichereinheit gespeichert ist Die Verarbeitungseinrichtung erhält die nächste Instruktion in dem unterbrochenen Programm von der Speichereinheit während des nächsten Abrufzyklus.
b) Operandenadressen
Die bei der JSR-Instruktion benutzte Operandenadresse kann das in Fig.4 dargestellte Format haben. Während die Antwort der Verarbeitungseinrichtung im vorliegenden Falle nicht erläutert werden muß, ist die Antwort auf jede Operandenadressenart aus Gründen der Übersichtlichkeit dargestellt
Tabelle H Adressenmodus Funktion
0 und 1 Das ausgewählte Register enthält Daten, wenn Modus-0, und eine Datenadresse, wenn Modus-1.
2 und 3 Das ausgewählte Register enthält eine Datenadresse, wenn Modus-2, und die Adresse eines
datenenthaltenden Zwischenspeicherplatzes, wenn Modus-3. Die Registerinhalte weiden nach ihrer Verwendung inkrementiert
4 und 5 Die ausgewählten Registerinhalte werden anfänglich dekrementiert Der dekrementie-O
Inhalt bildet eine Datenadresse, falls Modus-4, und die Adresse eines datenadressenenthaltenden Zwischenspeicherplatzes, wenn Modus-5.
6 und 7 Der Inhalt des nächsten instruktions-Speicherpiatzes wird als der indexwert aufgefunden und
zu dem ausgewählten Registerinhalt addiert Die Summe ist eine Datenadresse, falls Modus-6, und die Adresse eines eine Datenadresse enthaltenden Zwischenspeicherplatzes, wenn Modus-7.
c) Arbeitsweise der Verarbeitungseinrichtung
Nach dieser allgemeinen Erläuterung der Bedeutung der Adressenarten und der Register-Auswählbits können die verschiedenen Operationszyklen erläutert werden, die durch die Verarbeitungseinrichtung 22 in Abhän- gigkeit von den JSR-, RTS- und RTl-Instruktionen erzeugt werden.
I. Abrufzyklus
Fi g. 6 zeigt ein Flußdiagramm des Abrufzyklus, der mit einer Instruktion von der Speichereinheit 24(Fig. 1) beginnt und bei dem die gegebenenfalls vorhandenen Daten, die durch die Operandenadresse definiert sind, an die Vcfäfbeitungscinrichtuiig 22 übertragen werden. Jeder Zyklus ist durch ein Taktsigna! gekennzeichnet, das durch eine Gedächtnishilfe ISR und BSR identifiziert ist und durch eine Schaltung erzeugt wird, die in Verbindung mit F i g. 9 noch beschrieben wird.
Wenn die in F i g. 2 dargestellte Verarbeitungseinrichtung 22 erregt ist, wird durch die Steuereinheit 60 ein /SÄ-O-Zustand mit drei ßS/?-Zuständen erzeugt Der Inhalt des PC-Registers wird während des ßS/M-Zustands zur B-Eingangsschaltung 52 übertragen. Wenn nichts anderes angegeben wird, liefert eine nichtbenutzte Eingangsschaltung kein Ausgangssignal. Wenn die A-Eingangsschaltung 48 ein Ausgangssignal Null erzeugt gelangt der Programmzählstand während eines ersten Teils des ßSÄ-2-Zustands durch die Addiereinheit 46 ohne Modifikation zum Adressenregister 34. Ein inkrementierender Wert, der der A-Eingangsschaltung 48 zugeführt wird, bewirkt während eines zweiten Teils des ßSÄ-2-Zustands einen neuen Programmzählstand am Ausgang der Addiereinheit 46. Nachdem dieser neue Programmzählstand während eines ersten Teils des ßS/?-3-Zustands zum PC-Register im Speicherregister 40 bewegt ist, wird die in dem durch das Adressenregister 34 adressierten Speicherplatz gespeicherte Instruktion während eines zweiten Teils des ßSÄ-3-Zustands in das Instruktionsregister 62 übertragen. so
Wenn der /S/?-O-Zustand beendet ist, erzeugen die Zeitgebereinheit 66 und die Steuereinheit 68 einen /S/?-l-Zustand für die Dekodierung der Instruktion in der Dekodhrschaltung C4 und zur Durchführung verschiedener Entscheidungen. Wenn die Instruktion als eine RTI- oder RTS-lnstmktion oder als eine ähnliche Instruktion dekodiert wird, kann sie sofort ausgeführt werden. Mit diesen Instruktionen leitet die Verarbeitungseinrichtung 22 zu dem in F i g. 7 dargestellten Zyklus über. Die Verarbeitungseinrichtung 22 kann aber mit anderen Instruktionen auch zum Termzyklus von F i g. 8 umgeleitet werden.
Wenn die Verarbeitungseinrichtung 22 nicht auf den Ausführungs- oder auf den Termzyklus umgeleitet ist, erfolgen die erforderlichen Schritte zur Erzielung der durch die Operandenadresse in der JSR-Instruktion definierten Information.
Die Steuereinheit 60 verwendet einen erweiterten ASTM, der drei ßSÄ-Zustände enthält, um anfänglich die Operandenadresse zu dekodieren. Der Inhalt des in der Operandenadresse identifizierten Registers wird während des ßSÄ-1-Zustands in die B-Eingangsschaltung bewegt Eine dekrementierende Größe wird an die A-Eingangsschaltung 48 geliefert, um den Wert der B-Eingangsschaltung 52 zu dekrementieren, wenn die Operandenadresse eine Modus-4- oder Modus-5-Operandenadresse ist. In jedem Fall wird das Ausgangssignal der Addiereinheit zum Adressenregister 34 während des ß5/?-2-Zustands übertragen. Wenn die Operandenadresse eine Modus-2- oder Modus-3-Operandenadresse ist, wird eine inkrementierende Größe während eines zweiten Teils des ßStf-2-Zustands an die A-Eingangsschaltung 48 übertragen. Nachdem während eines ersten Teils des ßS/?-3-Zustands das Ausgangssignal der Addiereinheit 46 zu dem in der Operandenadresse definierten
Register zurückgeführt ist, wird der Inhalt des durch das Adressenregister 34 adressierten Speicherplatzes zur B-Eingangsschaltung 52 übertragen. Der ESÄ-3-Zustand wird erweitert, bis diese Übertragung vervollständigt "^lit Modus-1-, Modus-2- oder Modus-4-Operandenadressen enthält die B-Eingangsschaltung 52 Daten und es
s sind somit keine weiteren Operationen erforderlich. Mit Modus-3-, Modus-5-, Modus-6- oder Modus-7-Operandenadressen enthält die B-Eingangsschakung 52 eine Adresse, und die Verarbeitungseinnchtung gelangt in einen /SR-2-Zustand, der die drei BSR-Zustände enthält Keine Operation tritt beim flSK-1-Zustand auf, falls die Operandenadresse nicht eine Modus-6- oder Modus-7-Operandenadresse ist Jeder Modus verursachte die implizite Auswahl des PC-Registers und die Inkrementierung dessen Speicherinhalts während des /5A-I-Zu-
stands, so daß die B-Eingangsschaltung am Ende des /SÄ-1-Zustaiids einen Indexwert enthält Während des /SÄ-2-Zustands wird der Speicherinhalt des Registers, der durch die Operandenadresse identifiziert ist zur A-Eingangsschaltung 48 bewegt um den Indexwert zu addieren. Nach der Übertragung des Ausgangssignals der Addiereinheit 46 zum Adressenregister 34 während des BSÄ-2-Zustands wird ein erweiterter ÄSÄ-3-Zustand benutzt um den Speicherinhalt des Speicherplatzes, der durch das Adressenregister 34 adressiert wurde, zur
B-Eingangsschaltung 52 zu bewegen.
Wenn der /SK-2-Zustand aufhört, enthält die B-Eingangsschaltung 52 Daten, wenn die Operandenadresse eine Modus-3-, Modus-5- oder Modus-6-Operandenadresse ist Es sind dann keine zusätzlichen Adressierungsoperationen erforderlich. Mit einer Modus-7-Operandenadresse enthält die B-Eingangsschaltung eine Datenadresse, und es wird ein /SK-3-Zustand benutzt Keine Operationen treten während des 5SÄ-1-Zustands auf. Die
Datenadresse wird während des ÄSÄ-2-Zustands direkt an das Adressenregister 34 übertragen. Ein erweiterter ßSÄ-3-Zuitfnd bewegt die Daten zur B-Eingangsschaltung 52.
Eine JSR-Instruktion modifiziert den Abrufzykius. wenn der ieizte zur Dekodicruag der Operandenadresse benötigte ISR-Zustand ausgelöst wird, modifiziert die Steuereinheit 60 den ÄSÄ-3-Zustand, um die Übertragung des adressierten Inhalts an die B-Eingangsschaltung 52 auszulassen. Diese Modifikation erfolgt weil das Aus-
gangssignal der Addiereinheit 46 die Adresse für die erste Instruktion ist, die nach der Beendigung der JSR-Instruktion benutzt werden solL Mit einer JSR-Übertragungsinstruktion wird die anfängliche Unterprogramm-Instruktionsadresse während eicis /SÄ-O-Zustands zwischenzeitig im 7EWP-Register gespeichert Die Verarbeitungseinrichtung 22 leitet dann zum Ausführungszyklus von F i g. 6 um, was <mch erfolgt wenn die Instruktion jetzt eine JMP- oder eine JSR-Instruktion ist
II. Ausführungszyklus
Die Antwort der Verarbeifngseinrichtung während des Ausführungszyklus hängt von der Instruktion ab. Im folgenden sollen nun die Antworten auf JSR-, RTS- und RTI-Instruktionen erläutert werden, die zum Verständnis der Erfindung erforderfich sri
JSR-Instruktien Wie aus F i g. 7A ersichtlich ist erzeugt die Steuereinheit 60 anfänglich einen erweiterten /S/?-O-Zustand in
m> Abhängigkeit von einer JSR-Instruktion bei einem Operationsprogramm und überträgt den inhalt des SP-Registers R 6 im Speicherregister 40 zur B-Eingangsschaltung 5Z Ein dekrementierender Wert wird gleichzeitig während des ÄS/?-l-Zustands an die A-Eingangsschaltung 48 gegeben. Der dekremeniierte Wert von der Addiereinheit 46 wird während der Zustände BSR 2 bzw. BSR-3 zum Adressenregister 34 und zum SP-Register im Speicherregister 40 bewegt Wenn der ßSÄ-3-Zustand beendet ist adressiert das Adressenregister 34 einen
« unbesetzten Speicherplatz in der Gruppe von abhängigen Speicherplätzen, die als Block 94 in F i g. 5 definiert sind. Während der folgenden Zustände BSR-O und BSR-4 wird der Inhalt des Registers R 5, definiert durch Bits 6, 7 und 8 in der Instruktion, über die B-Eingangsschaltung 52 an die unbesetzten Speicherplätze übertragen.
Wie bereits erwähnt wurde, könnte irgendein anderes Register im Speicherregister 40 durch die JSR-Instruktion identifiziert werden. Während des Zustands BSR-5 wartet die Verarbeitungseinrichtung 22, bis der Inhalt des Registers R 5 tatsächlich gespeichert ist und beendet dann den Zustand /SK-O. Deshalb wird der Inhalt des Registers R 5 während des Zustands ISR-O durch Dekrementieren des Inhalts des Registers SP in die Speichereinheit 24 übertragen, um eine unbesetzte Adresse im Block 94 zu definieren.
Während des folgenden ISR-1 -Zustands wird der Inhalt des PC-Registers zur B-Eingangsschaltung 52 und dann während des /SÄ-2-Zustands zum R 5-Register übertragen. Die Adresse für die erste Unterprogramm-In struktion wird vom TEMP-Register übertragen, wo diese während des Abrufzyklus gespeichert war, und zwar während des /SÄ-3-Zustands zur B-Eingangsschaltung 5Z Dieser neue Programmzählstand wird dann während des /SÄ-4-Zustands zum PC-Register bewegt. Wenn der /SÄ-4-Zustand beendet ist enthält das PC-Register die Adresse für die erste Instruktion im Unterprogramm. Das R 5-Register enthält die Adresse für die nächste Instruktion beim Maschinenprogramm, und die letzte Erklärung, die zum Block 94 bewegt wird, ist der letzte
Inhalt des Registers R 5. Dies beendet die Operation, die durch die JSR-Instruktion verlangt wurde, so daß die Yerarbeitungseinrichtung den Termzyklus beendet. Während des nächsten Abrufzyklus wird die erste Instruktion im Unterprogramm im Block 90 der Speichereinheit 24 enthalten, wie dies in F i g. 5 dargestellt ist.
RTS-Instruktion
Jedes Unterprogramm endet mit einer RTS-Instruktion, die dasselbe Register identifiziert wie die in einem Zusammenhang damit stehende JSR-Instruktion. Wenn das Register R 5 in der JSR-Instruktion gekennzeichnet ist, hat die RTS-Instruktion ein feststehendes Format. Deshalb benutzt ein Programmierer immer dieselbe
i£ Instruktion als letzte Instruktion in einem Unterprogramm. Wie aus F i g. 7A und 7B ersichtlich ist, übertragen j die ISR-4- und /SÄ-5-Zustände, die durch die Steuereinheit 60 erzeugt wurden, den Inhalt des Registers R 5 Ober jt die B-Eingangsschaltuiig 52 zum .FC-Register R 7. Während des erweiterten /SR-6-Zustands und des folgenden * /SÄ-7-Zustands bewegt die Verarbeitungseinrichtung 22 die letzte Eintragung in den Block 94 (Fig.5) zum ί Register« 5.
- Während des 5S/M-Zustands im /SR-6-Zustand wird der Inhalt des SP-Registers R 6 zur B-Eingangsschaltung 52 übertragen. Weil das SP-Register R 6 dekrementiert wird, bevor die Daten zum Block 94 in der Speichereinheit 24 übertragen werden, enthält das SP-Register R 6 die Adresse für die letzte Eintragung. Diese Adresse wird während eines ersten Teils des ÄSR-2-Zustands an das Adressenregister 34 übertragen. Ein inkrementierender Wert wird während eines zweiten Teils des ÄSR-2-Zustands an die A-Eingangsschaltung 48 angelegt Die inkrementierte Adresse wird zum SP-Register R 6 während des BSÄ-3-Zustands zurückgeführt ;■■■; Am Ende des ÄSÄ-3-Zustands enthält die B-Eingangsschaltung 52 die letzte Eintragung vom Block 94. Diese ; Eintragung wird an das Register R 5 während des /SÄ-7-Zustands übertragen. Wenn der /SR-7-Zustand beendet
: ist, enthält das PC- Register R 7 die Adresse des Verarbeitungsbefehls, d. h. der Operationsprogramm-Instruk- : tion, die auf die JSR-Instruktion folgt Das Register R 5 enthält die letzte Eintragung vom Block 94, und das is
SP-Register R 6 enthält die Adresse des nächsten besetzten Speicherplatzes im Block 94. Während des nächsten ;- Abrufzyklus wird die Instruktion im Operationsprogramm, das auf die JSR-Instruktion folgt, von einem der Blöcke 86,90 oder 92 in der Speichereinheit 24 in F i g. 5 erhalten.
i: RTI-Instruktion
ψ- Wenn die Verarbeitungseinrichtung 22 ihre Steuerung über das Datenverarbeitungssystem au^ibt, nachdem
; eine periphere Abfrage zur Unterbrechung dris Maschinenprogramms gegeben wird, werden der Piogramm-
v- zählstand und das Statuswort für das unterbrochene Maschinenprogramm zu den nächsten beiden verfügbaren p: Speicherplätzen im Block 94 bewegt Dann werden das Statuswort und der Programmzählstand für das Unter-ν-brechungsprogramm zum Statuswortregister bzw. zum PC-Register bewegt
Alle Unterbrechungsprogramme enden mit derselben RTI-InstruLiion. Wenn die Instruktion dekodiert wird, : benutzt die Geräteeinheit 22 die /SÄ-4-, /SR-5-, /SÄ-6- und /SÄ-7-Zustände zur Übertragung des Zählstands des
unterbrochenen Maschinenprogramms und des Statusworts zum PC-Register und zum Statuswortregister 59. Wie aus F ί g. 7B und 7C ersichtlich ist, benutzt ein erweiterter /SÄ-4-Zustand BSR-X-, BSR-2- und fiSÄ-3-Zustände, um den Zählstand des Maschinenprogramms von einem Speicherplatz in der Speichereinheit 24 zu , erhalten, der durch das SP-Register R 6 definiert ist Nachdem der Inhalt des SP-Registers R 6 während der BSR-i- und ßSÄ-2-Zustände in das Adressenregister 34 bewegt ist, wird ein inkrementierender Wert an die A-Eingangsschaltung 48 angelegt und erzeugt während des ÄSÄ-3-Zustands einen inkrementierten Wert für die Rückführung zum SP-Register R 6. Dieser Zustand wird auch benutzt, um für eine Übertragung zum PC-Register während des /SÄ-5-Zustands die letzte Eintragung im Block 94 (den Programmzählstand) zur B-Eingangsschaltung 52 zu übertragen. Ein erweiterter /SÄ-6-Zustand mit drei ßSft-Zuständen inkrementiert in entsprechender Weise den Inhalt des SP-Registers R 6 und erhält während des /SÄ-?-Zustands das Statuswort für die Übertragung zum Statuswortregister 59. Nachdem diese Operationen beendet sind, leitet die Verarbeitungseinrichtung 22 zum Termzyklus um.
Andere Instruktionen
Wenn die Instruktion eine der anderen in F i g. 3 dargestellten Instruktionen ist also nicht eine JSR-, RTI- oder RTS-Instruktion, spricht die Verarbeitungseinrichtung in einer Weise an, die jedoch hier nicht näher beschrieben wird.
III. Termzyklus
Der dritte Arbeitszyklus für die Verarbeitungseinrichtung 22 ist der in F i g. 8 dargestellte Termzyklus. Wenn die Prioritätseinheit 38 -in Übertragungs-Abrufsignal erzeugt, wie es in Fig. 12 erläutert ist, gelangt die Steuereinheit 60 in einen /SÄ-0-Zustand.
Bei der in F i g. 1 dargestellten Anlage gibt die Verarbeitungseinrichtung 22 die Steuerung der Anlage an die periphere Einheit ab. Sobald die Steuerung auf die periphere Einheit übergegangen ist, wird eine vorher gespeicherte Adresse von der peripheien Einheit über die B-Eingangsschaltung 52 in das 7ΈΆ/Ρ-Register im Speicherregister 40 übertragen. Diese Adresse dient als Unterbrechungsvektor zur Identifizierung der SDeicherplätze in der Speichereinheit für die Unterbrechungsprogramm-Adresse und das Statuswort Nachdem diese Übertragung zur B-Eingangsschaltung 52 beendet ist, steuert wieder die Verarbeitungseinrichtung 22 die Anlage und bewirkt einen /SÄ-2-Zustand. Es ist ersichtlich, daß andere Verfahrensschritte angewandt werden können, um diese oder äquivalente Informationen zu erhalten, und daß die zur Durchführung der Übertragung eo beschriebene Anordnung und deren Arbeitsweise ungeachtet der zur Erzielung dieser Informationen benutzten Maßnahmen oder Schaltungsteile mit nur geringen Abwandlungen angewendet werden kann.
Der /Sä-2-Zustand enthält sechs BSR-Zustände. Wenn die Steuereinheit 60 den BSÄ-1-Zustand erzeugt, wird der Inhalt des SP-Registers R 6 zur B-Eingangsschaltung 52 bewegt Ein dekrementierender Wert wird zur A-Eingangsschaltung 48 bewegt Während des ÄSÄ-2-Zustands wird der dekrementierte Wert von der Addiereinheit 46 zum Adressenregister 34 übertragen, um den nächstverfügbaren Speicherplatz im Block 94 in Fi g. 5 zu identifizieren. Der dekrementierte Wert wird während eines ßSÄ-3-Zustands auch zum SP-Register R 6 zurückgeführt Nach ei;i;.*m zwischenzeitlich inaktiven ßSÄ-0-Zustand bewegt die Steuereinheit 60 ein Status-
wort mit acht Bits vom Statuswortregister 59 über den Übertragungsweg 30 zur Speichereinheit 24 zur Speicherung im Block 94 in F i g. 5 an dem durch das Adressenregister 34 definierten Speicherplatz. Ein erweiterter ßSK-7-Zustand halt die Arbeitsweise der Verarbeitungseinrichtung an, bis das Statuswort gespeichert ist.
Nun erzeugt die Steuereinheit 60 einen /SÄ-3-Zustand, der ebenfalls sechs BSR-Zustände enthält, um den Inhalt des PC-Registers R 7 an die Speichereinheit 24 zu übertragen. Der Inhalt des SP-Registers Ä6 wird während eines ESTM-Zustands in der arithmetischen Einheit 44 dekrementiert, während eines ÖSÄ-2-Zustands an das Adressenregister 34 übertragen und während eines öSÄ-3-Zustands zum SP-Register R 6 zurückgeführt. Auf einen ßSfl-O-Zwischenzustand, der zur Übertragung des Inhalts des PC-Registers R 7 and die B-Eingangsschaltung 52 vorgesehen ist, folgt ein ßSÄ-6-Zustand, der den Programmzählstand zum Übertragungsweg 30
ίο bewegt. Dann ermöglicht ein erweiterter ßS/?-7-Zustand die tatsächliche Speicherung des Programmzählstands in der Speichereinheit 24 in den nächsten unbesetzten Speicherplatz im Block 94 in F i g. 5. Wenn der ISR-3-Zustand beendet ist, werden das Statuswort und der Programmzählstand für das unterbrochene Maschinenprogramm in benachbarten Speicherplätzen gespeichert.
Ein /SÄ-4-Zustand mit drei BSR-Zuständen bewegt den Unterbrechungsvektor während eines BSR-i-Zustands vom TEMP-Register zur B-Eingangsschaltung 52. Während eines ersten Teils des ßS/?-2-Zustands wird der Unterbrechungsvektor zum Adressenregister 34 bewegt und dann während eines zweiten Teils des ßSR-2-Zustands inkrementiert. Die Steuereinheit 60 benutzt einen BSÄ-3-Zustand, um den inkrementierten Unterbrechungsvektor zum TEMP-Register zurückzuführen. Zusätzlich wird der Inhalt des Speicherplatzes, der durch das Adresäcnrcgistcr 34 definiert ist, zur B-Eingangsschaltung 52 übertragen. Deshalb speichert die B-Eingfingsschaltung 52 die Adresse für die erste Instruktion beim Unterbrechungsprogramm. Diese Adresse wird an das PC-Register R 7 übertragen, wenn die Steuereinheit 60 einen /SÄ-5-Zustand erzeugt.
Der inkrementierte Unterbrechungsvektor im TEMP-Register ist die Adresse fü.· das Statuswort, das dem Unterbrechungsprogramm zugeordnet ist. Ein neues Statuswort muß vorgesehen werden, weil das Unterbrechungsprogramm gewöhnlich eine andere Priorität und Kodierung hat als das Verarbeitungsprogramm.
Ein /SÄ-6-Zustand mit drei BSR-Zuständen dient während der BSR-X- und flS/?-2-Zustände zur Übertragung dieses inkrementierten Unterbrechungsvektors an die B-Eingangsschaltung 52 und an das Adressenregister 34. Der ßS/?-2-Zustand wird auch dazu verwandt, den Inhalt der B-Eingangsschaltung für eine Rückführung an das T£MP-Register während des SSÄ-3-Zustands zu inkrementieren woraufhin das neue Statuswort in die B-Eingangsschaltung 52 bewegt wird. Es wird während eines /5/7-7-Zustands über die arithmetische Einheit 44 zum Statusregister 59 übertragen.
Nachdem der /SÄ-7-Zustand beendet ist, hat die Verarbeitungseinrichtung 22 den Termzyklus vervollständigt und kehrt zum Abrufzyklus zurück. Die nächste Instruktion, die in Abhängigkeit vom Inhalt des PC-Registers R 7 erhalten und an die Verarbeitungseinrichtung 22 übertragen wird, ist die erste Instruktion beim Unterbrechungsprogramm. Wenn keine Unterbrechungen auftreten, tritt keine dieser Stufen auf, und die Verarbeitungseinrichtung erzeugt einen Abrufzyklus, um die nach dem Ausführungszyklus nächste Maschinenprogramm-Instruktion zu erhalten.
IV. Zusammenfassung der Operationen
Wenn die Verarbeitungseinrichtung für jede Instruktion im Unterbrechungsprogramm den Abruf-, Ausführungs- und Termzyklus durchläuft, kann eine Unterbrechung höherer Priorität von der Verarbeitungseinrichtung 22 angenommen werden. Die nächste Instruktionsadresse und das nächste Statuswort im ersten Unterbrechungs-Maschinenprogramm werden jedoch in dem Block 94 (Fig.5) aufbewahrt. Wenn die RTI-Instruktion beim zweiten Unterbrechungs-Maschinenprogramm ausgeführt wird, werden der Inhalt des PC-Registers R 7 und das Statuswort für das erste Unterbrechungsprogramm zur Verarbeitungseinrichtung 22 zurückgeführt Es ist auch ersichtlich, daß alle Verarbeitungsprogramme, ob sie Operationsprogramme, Unterprogramme oder Unterbrechungsprogramme sind, über die Statuseinheit 58 unterbrochen werden können, wenn der Unterbrechungszustand eine ausreichende Priorität hat
Während sowohl der Inhalt des PC-Registers R 7 als auch der des Statusregisters an den Block 94 in F i g. 5
so übertragen wird, wird der Inhalt des PC-Registers R7 in Abhängigkeit von einer JSR-Instruktion an das Register R 5 übertragen. Eine Zwischenspeicherung im Register R 5 ermöglicht, daß der Inhalt des PC- Reglers R 7 für das Operationsprogramm, das die JSR-Instruktion enthält, durch das Unterprogramm benutzt oder abgewandelt wird. Beispielsweise können bestimmte Operationsprogramm-Instruktionen weggelassen werden, indem der Inhalt des Registers R 5 vorgeschoben wird, wenn gewisse Bedingungen während des Unterprogramms auftreten. Wenn daraufhin die RTS-Instruktion ausgeführt wird, wird der modifizierte Inhalt des PC-Registers R 7 vom Register R 5 erhalten, wobei einige Instruktionen ausgelassen werden.
Da alle Informationen im Block 94 chronologisch gespeichert werden, kann jedes beliebige Unterbrechungsprogranun oder Unterprogramm benutzt werden, bevor ein vorangegangenes Verarbeitungsprogramm vervollständigt ist Die Verwendung von RTS- und RTI-Instruktionen in jedem Unterprogramm und Unterbrechungsprogramm gewährleistet, daß das als letztes begonnene Verarbeitungsprogramm als erstes vervollständigt wird Folglich kann die Datenverarbeitungsanlage jede beliebige Anzahl und Organisation von nichtbeendeten Unterprogrammen und Unterbrechungsprogrammen in einem Verarbeitungsprogramm durchführen, ohne daß die Kompliziertheit der Programmierung erhöht wird und ohne daß die Kompliziertheit des Schaltungsaufbaus der Verarbeitungseinrichtung vergrößert wird.
d}Zeitgebsreir.heit
Wie in Verbindung mit F i g. 6,7 und 8 beschrieben wurde, wird jede Operation der Verarbeitungseinrichtung 22 durch ein ISR- oder BSR-Zeitsignal definiert und gesteuert, das durch die Zeitgebereinheit 66 in F i g. 2
erzeugt wird. Jeder Taktsteuerungszustand hängt von verschiedenen Faktoren einschließlich des vorhergehenden Zustands, der Instruktion und der Bedingungen in der Verarbeitungseinrichtung 22 ab. Eine eingehende Erläuterung der Erzeugung jedes Taktsteuerungs-Zustands ist zum Verständnis der Erfindung nicht erforderlich. Die in F i g. 9A und 9B dargestellte Anordnung und die zugehörigen Taktsignale dienen in Vi-, üindung mit den Flußdiagrammen in F i g. 6, 7 und 8 dazu, die Verhältnisse klarzumachen, so daß es danach möglich ist, die spezielle Steuerschaltung herzustellen, die für die beschriebene Operation der Verarbeitungseinrichtung erforderlich ist.
Wie aus F i g. 9B ersichtlich ist, enthält die Zeitgebereinheit 66 eine Zeitgeberschaltung 76, einen Taktgeber 78 und zv,»-i Signalgeneratoren 80 und 82. F i g. 9A zeigt die Beziehung der CLK-Signale vom Taktgeber 78 und der SCLK-Signale von der Zcitgeberschaltung 76. Jede Änderung der CLK-Signale definiert eine Lese- oder Schreibzyklus-Grenze, wobei ein spezieller Lese- oder Schreibzyklus durch die Beziehung der SCLK- und CLK-Signale bestimmt ist. Wie in F i g. 9A dargestellt ist, werden vier Lese- oder Schreibzyklen R/W-0, R/W-1, R/W-2 und R/W-3 während jedes SCLK-Zyklus von der Zeitgeberschaltung 76 erzeugt. Der R/W-2-Zyklus ist immer ein Schreibzyklus, während der Taktgeber 78 während eines R/W-3-Zyklus angehalten sein kann, um einen BSR-Zustand wie bei der Übertragung von Daten von der Verarbeitungseinrichtung zu verlängern. Jede Gruppe von vier R/W-Zyklen zusammen mit anderen Signalen von der Steuereinheit 60 definiert einen Schieberegister-Zustand, der durch ein Signal auf einem der Ausgangsleiter eines der Generatoren 80 oder 82 gekennzeichnet ist.
Die SCLK-Signale von der Zeitgeberschaltung 76 und die Signale von der Steuereinheit 60 werden einem Instruktions-Schieberegister-Taktgeber ais Signaigenerator So und einem Übertragungsweg-Schieberegister-Zeichengeber als Signalgenerator 82 zugeführt. Der Generator 80 erzeugt die ISR-Signale, während der Generator 82 die BSR-Signale erzeugt. Ein Freigabesignal, das an einen der Generatoren angelegt wird, erzeugt einen Null-Zustand. Sonst gelangt jeder Generator normalerweise aufeinanderfolgend mit der erforderlichen Sequenz vom einen Zustand zum anderen Zustand, um die Verarbeitungseinrichtung 22 zu betätigen, wie es in F i g. 6, 7 und 8 dargestellt ist Diese Zeichnungen zeigen, wie jeder Taktsteuerungs-Zustand von vorangegangenen Bedingungen abhängt und wann die Sequenz modifiziert werden kann. t
f) Arithmetische Einheit
Wie aus Fig. 10 ersichtlich ist, enhält die Addiereinheit 46 eine Anzahl von Bit-Addierern, von denen die Addierer 100 und 102 beispielsweise dargestellt sind. Jeder Addierer hat drei Eingangsquellen: die A- bzw. B-Eingangsschalitungen 48 und 52 und den Übertrag vom vorhergehenden Bit-Addierer. Beispielsweise wird das Signal Cn-1 dem Bit-Addierer 100 zugeführt Jeder Bit-Addierer erzeugt eine Summe und einen Übertrag wie beispielsweise die Sn- und C-Signale vom Bit-Addierer 100.
Die A-Eingangsschaltung 48 enthält eine Eingangs-Sperrschaltung für jeden Bit-Addierer. Die A-Eingangsschaltung 48 für den Bit-Addierer 102 (BITo) enthält eine ODER-Schaltung 104. Deren Ausgangssignal wird zu einem Eingang des Bit-Addierers 102 übertragen und durch Verbindung über eine UND-Schaltung 108 verriegelt. Die UND-Schaltung 108 ist normalerweise durch ein Sperrsigp.a! A von der Datenweg-Steuerschaltung 70 in F i g. 2 aktiviert Das Sperrsignal A fällt ab, um die UND-Schaltung 108 abzuschalten und um das Ausgangssignal von der A-Eingangsschaltung 48 zu ändern. Eine UND-Schaltung 110, die durch ein GATE-Signal Α-3δ von der Datenweg-Steuereinheit 70 aktiviert wird, überträgt dns vom Übertragungsweg 50 über einen Negator 112 kommende Signal zum Bit-Addierer 102. Ein Signal auf dem Übertragungsweg 49 vom Speicherregister 40 wird über eine UND-Schaltung 114 durch ein GATE-Signal /4-49(0) übertragen. Das Signal wird auch über einen Negator 116 und eine UND-Schaltung 118 durch ein GATE-Signal A-49 (0) übertragen. Das GATE-Signal /4-49(1-15) und das GATE-Signal /4-49(1 — 15) werden analog zu den UND-Schaltungen 114 bzw. 118 angeordneten UND-Schaltungen zugeführt, um die verbleibenden Signale auf dem Übertragungsweg 49 oder um die betreffenden invertierten Signale zu den anderen Bit-Addierern zu übertragen.
Die Verwendung von zwei Sätzen von Taktsignalen für die A-Eingangsschaltung 48 ermöglicht daß Daten von der B-Eingangsschaltung 52 in der Addiereinheit 46 inkrementiert oder dekrementiert werden. Wenn die Datenweg-Steuereinheit 70 die GATE-Signale A-49 (0) und A-49 (0) gleichzeitig erzeugt wird eine »Eins« zu dem Inhalt der B-Eingangsschaltung hinzuaddiert Ein inkrementierender Wert von »zwei« wird durch die zusätzliche Übertragung einer weiteren »Eins« zum Übertrag-Eingang von dem Bit-Addierer 102 erzeugt Wenn die arithmetische Steuerschaltung 70 alle vier GATE-Signale A-49 gleichzeitig erzeugt, wird das Zweier-Zahlenkomplenrjent von (+1) der Addiereinheit 46 zugeführt Dadurch wird der Inhalt der B-Eingangsschaltung um »eins« dekrementiert Durch eine simultane Erzeugung der GATE-Signale A-49 (1 — 15) und A-49 (1 — 15) wird der Inhalt der B-Eingangsschaltung um »zwei« dekrementiert
Drei Eingangssignale steuern die B-Eingangsschaitung 52, und die Schaltung für BITn ist typisch. Eine ODER-Schaltung 120 liefert das B-Eingangssignal für den Bit-Addierer 100 und wird durch die Übertragung von dessen Ausgangssigna] über eine UND-Schaltung 124, die normalerweise durch ein Sperrsignal B aktiviert ist, gesperrt Dieses Signal wird abgeschaltet um das Ausgangssignal der B-Eingangsschaltung 52 zu ändern. Ein Signal auf dem Übertragungsweg 50 wird über eine UND-Schaltung 126 durch ein GATE-Signal B-SO gesteuert, während ein Signal auf dem Übertragungsweg 49 über eine UND-Schaltung 128 durch ein GATE-Signal B-49 gesteuert wird.
Jedes Summen-Ausgangssignal der Addiereinheit 46 wird über die Auswerteinheit 54 durch eines von drei Signalen übertragen. Wenn ein GATE-ADD-Signal durch die arithmetische Steuereinheit 70 in F i g. 2 erzeugt wird, überträgt die UND-Schaltung 130 das Sn-Ausgangssigna! des Bit-Addierers 100 über eine ODER-Schaltung 132 auf den Übertragungsweg 56. Ein GATE-Signal rechts, das der UND-Schaltung 134 zugeführt wird, bewegt das Signal Sn+1 durch die ODER-Schaltung 132 und verschiebt jedes Signal von einem der Bit-Addierer
Zi υ az7\j
um eine Stelle nach rechts. Eine entsprechende Verschiebung nach links um eine Stelle wird erhalten, indem ein GATE-Signal links erzeugt wird. Dieses Signal aktiviert die UND-Schaltrng 136 ?,ur Übertragung des S„_i-Signals über die ODER-Schaltung 132 auf den Übertragungsweg 56. Deshalb liefern diese Signale zwei Verschiebungsoperationen, die zu Vertauschungsoperationen werden, wenn der erste und der letzte Bit-Addierer über die Auswerteinheit 54 miteinander verbunden sind.
g) Speicherregister
F i g. 11 z*igt ein Ausführungsbeispiel des Speicherregisters 40 und der Steuereinheit 72 des Speicherregisters.
Bei diesem speziellen Ausführungsbeispiel enthält das Speicherregister 40 eine Anzahl von Triggerschaltungen, die jeweils eine Mehrzahl von wahlweisen Flip-Flop-Einrichtungen und eine Auswahlmatrix enthalten. Beispielsweise liefert eine Triggerschaltung 140 für jedes Register im Speicherregister 40 Signale BITn auf den Übertragungsweg 49, während Triggerschaltungen 142 und 144 für jedes Register die Signale BIT\ bzw. BIT0 speichern. Deshalb speichert eine Triggerschaltung ein Bit für jedes Register und enthält so viele einzelne Flip-Flop-Ein-
richtungen, wie Register vorhanden sind. Wenn die Verarbeitungseinrichtung 22 auf Wörter mit beispielsweise sechzehn Bits anspricht, enthält das Speicherregister 40 sechzehn Flip-Flop-Schaltungen, von denen jede Schaltung zumindest zehn Flip-Flop-Einrichtungen enthält, um ein äquivalentes Bit in den RO bis R 7 SOURCE und TEMP-Registern zu speichern.
Ein spezielles Register im Speicherregister 40 wird durch Dekodierung der benutzten Register-Auswahl-Bits, nämlich der Bits IR-O, IR-\ und IR-2 in der Operandenadresse und der Biis m-6, In-7 und IR-S irr; Rcgistcrtei! der JSR-Instruktion, ausgewählt, wonach die betreffende Flip-Flop-Einrichtung in jeder Trigger-Schaltung ausgewählt wird. Jedes Register-Auswahl-Bit vom Instruktions-Register 62 in F i g. 2 wird über eine Anzahl von UND-Schaltungen in der Speicherregister-Steuereinheit 72 ausgewertet, die durch Signale von der Steuereinheit 60 aktiviert werden.
Wenn die Steuereinheit 60 die UND-Schaltungen 146,148 und 150 aktiviert, werden die Signale IRO, IR-\ und IR-2 über ODER-Schaltungen 152,154 und 156 an eine Dekodiereinheit 158 übertragen. Das Ausgangssignal der Dekodiereinheit 158 erregt die Auswahlmatrix in jeder Triggerschaltung, um die geeignete Flip-Flop-Einrichtung auszuwählen und Eingangssignale dazu hin und Ausgangssignale davon weg weiterzuleiten. Als Folge davon werden entsprechende Flip-Flop-Einrichtungen in jeder Triggerschaltung mit dem Übertragungsweg 49
verbunden. Wenn beispielsweise das /JO-Register in der JSR-Instruktions-Operandenadresse ausgewählt wird, wird die erste Flip-Flop-Einrichtung in jeder Triggerschaltung mit dem Übertragungsweg 49 verbunden. Deshalb stellen die Signale auf den Leitungen 49 (0), 49 (1) und 49 (n) die Signale ß/To, BIT\ bzw. BlTn dar. Das durch Bits 6,7 und 8 in der JSR-Instruktion identifizierte Register wird in entsprechender Weise durch Aktivierung von UND-Schaltungen 160,162 und 164 erhalten, um die Signale IR-6, IR-7 und IR-S über die ODER-Schaltungen
35 152,154 und 156 zu der Dekodiereinheit 158 zu übertragen.
Da immer ein Register ausgewählt wird, erscheint der Inhalt des ausgewählten Registers im Speicherregister 40 immer auf dem Übertragungsweg 49 zu den A- und B-Eingangsschaltungen 48 und 52. Der Registerinhah — wird geändert, wenn die Steuereinheit 60 ein Schreibsigna! erzeugt Die Einstell- und Rückstellimpulse für jede | gewählte Flip-Flop-Einrichtung werden über die üblichen Einstell-Eingänge (S) und Rückstell-Eingänge (R) zu M den Triggerschaltungen übertragen. Diese üblichen Eingänge sind über identische Schreibschaltungen für jede Triggereinrichtung mit dem Übertragungsweg 56 verbunden, wobei die Schreibschaltung für die Flip-Flop-Einrichtung 140 typisch ist. Das Schreibsignal wird den UND-Schaltungen 166 und 168 zugeführt, vihrend das datendarstellende BiTn auf der Leitung 56 (n) vom Übertragungsweg 56 der UND-Schaltung 166 zugeführt wird. Wenn das Signal auf dieser Leitung eine logische »Eins« ist, wird die ausgewählte Flip-Flop-Einrichtung einge-
« stellt, wenn die UND-Schaltungen 166 und 168 durch das Schreibsignal aktiviert sind. Das Rückstell-Eingangssignal wird nicht erregt, weit das Ausgangssignal der UND-Schaltung 166 über einen Negator 170 mit der UND-Schaltung 168 gekoppelt ist. Eine logische »Null« auf der Leitung 56 ^erregt die UND-Schaltung 168 zur Rückstellung der ausgewählten Flip-Flop-Einrichtung in der Flip-Flop-Schaltung 140.
50 h) Statuseinheit
Fig. 12 zeigt ein Ausführungsbeispiel der Unterbrechungs-Prioritätseinheit 38 und der Statuseinheit 58 mit dem Statuswortregister 59 in der Verarbeitungseinrichtung 22 in F i g. 2.
Die Priorität der Verarbeitungseinrichtung wird durch Signale auf den Leitungen 56 (5), 56 (6) und 56 (7)
geändert, wenn ein Statuswort auf dem Übertragungsweg 56 vorhanden ist Diese drei Signale werden in taktgesteuerten Flip-Flop-Einrichtungen 200,202 und 204 gespeichert, wenn ein CLKT-Impuls durch die Steuereinheit 60 erzeugt wird. Der CLKT-Impuls wird erzeugt, wenn das Statusregister 59 implizid während des /S/?-7-Zustands eines RTI-Instruktions-Ausführungszyklus oder des Termzyklus adressiert wird, oder während des /SÄ-4-Zustands eines Ausführungszyklus, wenn eine Instruktions-Operandenadresse explizid das Statusregister identifiziert und die Verarbeitungseinrichtung bereit ist, den Termzyklus zu übertragen. Jeder CLKT-Impuls tritt auf, wenn die Zeitgeberschaltung sich von dem einen /Sft-Zustand zu dem nächsten ändert Deshalb definieren die taktgesteuerten Flip-Flop-Einrichtungen 200,202 und 204 eine von acht Geräteeinheit-Prioritäten, die einer Vergleichsschaltung 206 zugeführt werden.
Die Vergleichseinheit 206 spricht auch auf Signale von Flip-Flop-Einrichtungen 208,210,212 und 214 an. Bei einer Datenverarbeitungsanlage nach F i g. 1 ist es möglich, daß eine periphere Einheit die Steuerung der Anlage übernehmen kann und Informationen zum oder vora Übertragungsweg durch eigene Steuerung übertragen kann. Jede periphere Einheit, die die Anlage steuern kann, ist je nach der betreffenden Priorität mit einer von vier BR-Leitungen verbunden. Wenn die Steuerung der Anlage übernommen werden soll, wird ein anliegendes
14
BR-2igr:sl durch einen CLKBR-Impuls in eine der Flip-Flop-Einrichtungen eingespeist. Dieser Impuls wird am Beginn <;iner Reihe von BSR-Zuständen in der Verarbeitungseinrichtung oder durch eine entsprechende Operation in einer peripheren Einheit erzeugt, wenn Daten über den Übertragungsweg 30 übertragen werden, oder mit jeder Änderung eines Schieberegister-Zustands, der durch die SCLK-Signale von der Zeitgeberschaltung 76 definiert ist, wenn die Verarbeitungseinrichtung dia Steuerung der Anlage abgegeben hat, um ein BR-Signal von einer peripheren Einheit zu erwarten, das anzeigt, daß Informationen auf den Übertragungsweg 30 bewegt wurden oder bewegt werden sollen.
Wenn ein BR-Signal eine frühere Priorität als die Verarbeiturigseinrichtung hat, wird ein Erteilungsimpuls eine bestimmte Zeit später durch die Steuereinheit 60 am Ende eines /S/?-O-Zustands des Termzyklus erzeugt. Dadurch wird ein Signal über eine Torschaltung 216 auf eine reservierte Übertragungswegleitung übertragen, um eine Übertragung der Anlagensteuerung auf die anfordernde Einrichtung zu bewirken. Wenn die periphere Einheit anfordert, daß die Verarbeitungseinrichtung ein Unterbrechungsprogramm durchführen soll, überträgt sie den Unterbrechungsvektor an die Verarbeitungseinrichtung.
Die C-, V-, Z- und N-Zustandskodierungen treten auf Leitungen 56 (0) bis 56 (3) auf, wenn der Übertragungsweg 56 ein Statuswort enthält. Da die Schaltungsausbildung für das Z-Bit beispielhaft ist, ist sie in Fig. 12 dargestellt. L)as Z-Bit wird eingestellt, wenn der Datenwert am* dem Übertragungsweg 56 Null ist, nachdem eine Instruktion ausgeführt wurde. Alle Daten werden durch Inverter gekoppelt, die durch den Negator 218 repräsentiert sind, um eine UND-Schaltung 220 in Verbindung mit einem normalerweise aktivierenden CL-Signal zu erregen. Eine taktgesteuerte Flip-Flop-Einrichtung 224 wird während des nächsten CLKC-Impulses eingestellt oder zurückgestellt. Innere Gerätezustände zur Erzeugung des CLKC-Impulses sind identisch mit denjenigen für den CLKT-impuls. Der CLKC-lmpuls wird auch während eines Ausführungszyklus-/S/?-4-Zustands erzeugt für gewisse Imruktionen, die eine Modifikafion der Zustandskodierung verlangen. Eine der Flip-Flop-Einrichtung 224 analoge andere Flip-Flop-Einrichtung für das C-Bit kann zusätzlich für noch weitere Instruktionen zeitlich gesteuert werden.
Wenn es erwünscht ist, das Statuswort auf den Übertragungsweg 30 zu übertragen, aktiviert ein CSTB-Signal eine Torschaltung 226, die eine UND-Schaltung 228 für das Z-Bit enthält. Das CSTB-Signal wird während der BSR-6- und ßSR-7-Zustände eines Termzyklus-/5°-2-Zustands erzeugt, wenn der Inhalt des Statuswortregisters 59 in die Speichereinheit übertragen wird. Es wird auch erzeugt, wenn Daten auf dem Übertragungsweg 30 zur Speichereinheit übertragen werden. Es wird weiterhin auch erzeugt, wenn Daten auf dem Übertragungsweg 30 vom Statuswortregister 59 in Abhängigkeit von einer Instruktion übertragen werden, die explizid oder implizid das Statuswortregister 5s adressiert
Bedingungskodes oder eine spezielle Kodierung werden in die Bedingungskode-Flip-Flop-Einrichtungen wie die Flip-Flop-Einrichtung 224 durch ein CSTD-Signal übertragen. Dieses Signal aktiviert eine UND-Schaltung 230 zur Einstellung oder Rückstellung der Flip-Flop-Einrichtung 224 entsprechend dem Ausgangssignal der Addiereinheit 46 in F i g. 2, insbesondere vom 5b2-Signal. Das CSTD-Signal wird durch Bedingungen wie den CLKT-lmpuls erzeugt, ist jedoch während des gesamten ISR-Zustands vorhanden.
Deshalb enthält das Statuswortregister 59 acht taktgesteuerte Flip-Flop-Einrichtungen und zugeordnete Torschaltungen, die durch einen von mehreren sich gegenseitig ausspielenden Impulsen aktiviert werden, die durch die Steuerschaltung 60 erzeugt werden. Ein Satz von Fiip-Fiop-Schaitungen speichert Pfioriiäisiniönriätionen, während der andere Bedingungskodes speichert Jede Gruppe kann unabhängig von oder zusammen mit den Prioritäts-Flip-Flop-Einrichtungen eingestellt werden, die gewöhnlich nur dann eingestellt werden, wenn eine Prioritätsänderung benötigt wird, z. B. wenn ein Unterbrechungsprogramm eingeleitet oder vervollständigt wird
3. B e i s ρ i e 1 e
a) Verarbeitungsprogramme, Unterprogramme und Unterbrechungsprogramme
Eine Analyse von Fig. 13 zeigt, daß die Verarbeitungseinrichtung 22 in Fig. 2 verschiedene Verarbeitungsprogramme (Operations-Maschinenprogramme) in einer zeitlichen Verschachtelung sowie die Verwendung eines Unterprogramms, das vorher nur teilweise ausgeführt wurde, ermöglicht Ferner zeigt dieses Beispiel, daß Daten im Operationsprogramm einfach in ein Unterprogramm übertragen werden können.
Die folgende Diskussion ist auf die Beschreibung der Bewegung von Informationen in der Verarbeitungseinrichtung bei der Vervollständigung relevanter zeitbestimmender ISR-Zustände beschränkt Zusätzliche Einzelheiten im Zusammenhang mit diesen Informationsübertragungen sind aus F i g. 6 bis 8 und den zugeordneten Beschreibungsteilen ersichtlich. Es wird angenommen, daß Speicherplätze 2000 bis 2003 keine relevanten Informationen enthalten, und daß die Register in der Verarbeitungseinrichtung den folgenden Speicherinhalt haben:
Tabelle III
Register Inhalt
Statuswortregister 59 0
Speicherregister 40:
R 0-Register 477
Ä6fSP>Register 2004
R 7(PC)-Register 1
'«5
Es wird ferner angenommen, daß eite periphere Einheit ein Drucker ist, der durch eine Ä2(l)-Operandenadresse identifiziert wird und einen Unterbrechungsvektor 500 übertragen kann.
Die Verarbeitungseinrichtung 22 erhält die Programminstruktionen INST-i und INST-2 und führt diese aus. Am Beginn des nächsten Abrufzyklus enthält das PC-Register R 7 eine »3«, so daß die JSR-Ä 5, R 0 (1)-Instruktion erhalten unJ dekodiert wird. Zusätzlich wird der Inhalt des PC-Registers während des ISR-O- und des ersten /SÄ-1-Zustands auf 4 inkrementiert Dann benutzt die Verarbeitungseinrichtung 22 aufeinanderfolgende ISR-I- und /SÄ-0-Zustände zum Dekodieren der R 0 (1 ^Operandenadresse. Als Folge, davon wird der R O-Registerinhalt 477 zum Adressenregister 34 übertragen. Eine erste Cosinus-Unterprogramm-Instruktionsadresse 110 wird zum TEMP-Register bewegt Während des Ausführungszyklus wird der SP-Registerinhalt dekrementiert und
ίο zum Adressenregister 34 und zum SP-Register R 6 übertragen, um den R 5-Registerinhalt an einem Speicherplatz 2003 in der Speichereinheit 24 zu speichern. Die ISR-i- und /SÄ-2-Zustände werden durch die Verarbeitungseinrichtung 22 benutzt, um den PC-Registerinhalt 4 zum R 5-Register zu bewegen, während die 1SR-3- und /Sfl-4-Zustände den TEMP-Registerinhalt 110 zum PC-Register R 7 bewegen.
Wenn der Ausführungszyklus beendet ist, enthält daher das PC-Register R 7 die Adresse für die erste
is Instruktion im Cosinus-Unterprogramm. Es sei angenommen, daß die ersten beiden Unterprogramm-Instruktionen ausgeführt sind, daß aber der Drucker eine Anforderung macht, die durch die Vergleichsschaltung 206 (Fig. 12) berücksichtigt wird. Wenn der Termzyklus, der der COS-2-Instruktion zugeordnet ist, erreicht wird, gibt die Verarbeitungseinrichtung 22 die Anlagensteuerung während des /SÄ-1-Zustands ab. Dann wartet sie, bis der Drucker den Unterbrechungsvektor 500 an das ΓΕΜΡ-Register überträgt und bis die Rückübertragung der Anlagensteuerung erfolgt
Die Verarbeitungseinrichtung 22 benutzt ISR-2- und /SÄ-3-Zustände, um den Inhalt des Statuswortregisters 59 und des PC-Registers R 7 zu den nächsten beiden unbesetzten Speicherplätzen 2002 bzw. 2001 im Speicher zu bewegen, durch Dekrementieren des Inhalts des 5P-Registers während jedes Zustands. Der neue Inhalt des PC-Registers R 7 wird während der ISR-4- und /SÄ-5-Zustände durch Verwendung des Unterbrechungsvektors
500 als eine Adresse erhalten, um die Zahl 200 für die Übertragung zum PC-Register R 7 zu erhalten, und durch Inkrementieren des 7EMP-Registerinhalts auf 501. Dann werden die ISR-6- und /SÄ-7-Zustände benutzt, um das neue Statuswort 100 an das Statuswortregister 59 zu übertragen. Am Ende des Termzyklus identifiziert der PC-Registerinhalt 200 die Adresse für die erste Instruktion bei dem während des nächsten Abrufzyklus erhaltenen Unterbrechungsprogramm.
Wenn das PC-Register 205 enthält und die Verarbeitungseinrichtung 22 einen Abrufzyklus beginnt, wird der PC-Registerinhalt während des /SÄ-0-Zustands auf 206 erhöht, während die JSR-KS, Ä0(l ^Instruktion während des /S/M-Zustands dekodiert wird. Zuvor beschriebene Schritte bewegen den neuen PC-Registerinhalt 110 durch das 72?MP-Register zum PC-Register R 7, während der alte R 5-Registerinhalt 4 zum Speicherplatz 2000 und der alte PC-Registerinhalt 206 zum R 5-Register übertragen werden. Zu diesem Zeitpunkt sind vier nichtbeendete Programme in der Speichereinheit 24 vorhanden, nä—.lich das Vcrarbcitungs- bzw. Operationsprogramm, dessen zugehöriges Cosinus-Unterprogramm, das ünterbrechungsprogramm und dessen zugehöriges Cosinus-Unterprogramm. Diese Programme werden zeitlich ineinander verschachtelt und gemäß der Erfindung in umgekehrter Ordnung dann vervollständigt und beendet, wie nun näher erläutert werden soll.
Wenn der Programmzähler den Zählstand 117 enthält, erhält der nächste Abrufzyklus die RTS R 5-lnstruktion und inkrementiert den PC-Registerinhalt auf 120. Die Verarbeitungseinrichtung 22 bewirkt einen Ausführungszyklus zur Beendigung des Cosinus-Unterprogramms, und danach schaltet die Verarbeitungseinrichtung 22 auf das Unterbrechungsprogramm zurück. Im einzelnen werden ISR-4- und /S/?-5-Zustände benutzt, um die Zahl 206 im Register RS an das PC-Register R 7 zurückzuübertragen. Die letzte an den Speicherplatz 2000 übertragene Zahl wird zum Register R 5 bewegt und das SP-Register R 6 wird während des ISR-6- und /SÄ-7-Zustands inkrementiert Wenn die RTSÄ 5-Instruktion ausgeführt ist, enthält das PC-Register R 7 die Adresse für die nächste Unterbrechungsprogramm-Instruktion. Das SP-Register R 6 wurde auf 2001 inkrementiert, und das Register R 5 enthält die Adresse der nächsten Operationsprogramm-Instruktion.
Im Speicherplatz 206 ist eine RTI-Instruktion gespeichert, so daß die Verarbeitungseinrichtung 22 sofort das Unterbrechungsprogramm beendet, und danach schaltet die Verarbeitungseinrichtung 22 auf das der Operationsprogramm-Instruktion zugeordnete Cosinus-Unterprogramm um. Im einzelnen wird während des Abrufzyklus das PC-Register R 7 auf 207 inkrementiert und die RTI-Instruktion vom Speicherplatz 206 erhalten. Dann werden ein ISR-4- und ein /S/?-5-Zustand durch die Verarbeitungseinrichtung erzeugt und der Inhalt des Speicherplatzes 2001 wird zum PC-Register R 7 übertragen. Zusätzlich wird der Inhalt des SP-Registers R 6 auf 2002 erhöht Deshalb identifiziert der PC-Registerinhalt 112 die Adresse der Cosinus-Unterprogramm-Instruktion, die ausgeführt worden wäre, wenn die Unterbrechung nicht aufgetreten wäre. Das Statuswort für das Operationsprogramm wird vom Speicherplatz 2002 während der ISR-6- und /S/?-7-Zustände auf das Statuswortregister 59 zurückübertragen, und das SP-Register R 6 wird auf 2003 inkrementiert.
Nun ermöglicht der PC-Registerinhalt 112 die Vervollständigung des Cosinus-Unterprogramms. Wenn das PC-Register Ä7 den Inhalt 117 hat, ruft die Verarbeitungseinrichtung 22 die RTS /? 5-lnstruktion auf zur
Übertragung des Inhalts des Registers R 5 an das PC-Register R 7 und des Inhalts des Speicherplatzes 2003 zum Register R 5 während der ISR-4- und /SÄ-7-Zustände. Zusätzlich wird das SP-Register R 6 auf seinen ursprünglichen Wert 2004 inkrementiert.
Nun setzt die Verarbeitungseinrichtung 22 die Ausführung der Instruktionen im Operationsprogramm fort, indem zunächst die /NST-4-Instruktion ausgeführt wird. Wenn dies beendet ist, wird die JSRR5-, R7 (3)-lnstruktion während eines Abrufzyklus erhalten, um die Ausführung eines Druck-Unterprogramms durch die Verarbeitungseinrichtung 22 zu verursachen. Mit diesem Instruktionsformat enthält der Speicherplatz 6 die Adresse für die erste Unterprogramm-Instruktion, während der Speicherplatz 7 die Adresse für die zu druckenden Daten enthält. Deshalb ist es erforderlich, diese Information zum Druck-Unterprogramm zu übertragen.
Nach Erhöhung des Inhalts des .FC-Registers R 7 auf 6 und der Dekodierung der JSR-Instruktion während des Abrufzyklus finden ein ISR-t- und ein /SÄ-0-Zustand Verwendung, um die Operandenadresse Λ 7 (3) zu dekodieren. Während des /SÄ-1-Zustands wird der R 7 fPQ-Registerinhalt 6 an das Adressenregister 34 übertragen, und der PC-Registerinhalt wird auf 7 erhöht, weil dies eine Modus-3-Operandenadresse ist Der Inhalt des Speicherplatzes 6, die Zahl 120, wird zur B-Eingangsschaltung 52 in F i g. 2 für eine Übertragung zum TEMP-Register während des /SÄ-O-Zustands übertragen. Während des Ausführungszyklus wird der SP-Registerinhalt auf 2003 verringert und zum Adressenregister 34 und zum SP-Register während des /S/?-0-Zustands übertragen. Zusätzlich wird der R 5-Registerinhalt zum Speicherplatz 2003 übertragen. Dann werden die ISR-X- und ISR-2-Zustände durch die Verarbeitungseirrichtung 22 benutzt, um den .FC-Registerinhalt 7 zum Register R 5 zu übertragen. ISR-Z- und /S/?-4-Zustände bewegen den TEMP-Registerinhalt 120 zum PC-Register R 7. Deshalb enthält das FC-Register R 7 die Adresse für die erste Instruktion beim Druck-Unterprogramm.
Der Speicherplatz 120 enthält eine MOVR5 (3)-, Ä2(l)-Instruktion mit der zweiten Operandenadresse R 2 (1), die den Drucker identifiziert Wenn die erste Operandenadresse R 5 (3) dekodiert ist wird die Zahl 7 vom R 5-Register zum Adressenregister 34 übertragen und dann für eine Rückführung zum R 5-Register während des /SÄ-1-Zustands auf 10 erhöht Der Inhalt des Speicherplatzes 7 wird während des /SÄ-2-Zustands zum Adressenregister 34 übertragen, um die Rückführung der Daten Λ'zur B-Eingangsschaltung 52 für eine Übertragung durch die Verarbeitungseinrichtung 22 zum Drucker, nachdem die zweite Adresse dekodiert ist zu ermöglichen.
Da der PC-Registerinhalt nun 121 ist, verursacht der nächste Abrufzyldus eine Erhöhung des PC-Registerinhalts auf 122 und eine Dekodierung der RTSR 5-Instruktion. Während der 1SR-4- und /S/?-5-Zustände wird der R 5-Registerinhalt !0 zum PC-Register R 7 zurücküberirsgers. Nachdem der Inhalt des Speicherplatzes 2003 auf das Register R 5 zurückübertragen ist wird das SP-Register R 4 während der ISR-6- und /SÄ-7-Zustände auf 2004 erhöht WähremJ des nächsten Abrufzyklus erhält die Verarbeitungseinrichtung 22 die Halt-Instruktion und beendet die Arbeitsweise.
Somit wurden verschiedene Maschinenprogramme zeitlich verschachtelt und wurde ein Unterprogramm erneut aufgerufen. Zusätzlich wurden Daten im Operationsprogramm auf ein Unterprogramm übertragen. Unter Bezugnahme auf die Übertragung von Daten wird speziell erwähnt daß die R 7 (3)- und R 5 (3)-Operandenadressen in den JSR- und MOV-Instruktionen eine erste Unterprogramm-Adresse zum PC-Register R 7 und die Datenadresse zum Register R 5 für eine darauffolgende Verwendung bewegen. Da der R 5-Registerinhalt durch die MOV-Instruktion erhöht wird, definiert der PC-Registerinhalt nach der ATSflS-Instruktion die nächste Instruktion im Operationsprogramm.
b) Mitprogrammierung
Ein anderer Vorteil der Erfindung ist die Möglichkeit einer sogenannten Mitprogrammierung. Bei einer Mitprogrammierung wird ein erstes Operationsprogramm zunächst teilweise ausgeführt Dann führt die Verarbeitungseinrichtung 22 ein zweites Verarbeitungsprogramm durch, wobei eine spezielle JSR-Instruktion, nämlich /SR R 7, R6 (2) benutzt wird. Diese Instruktion kann dann im zweiten Operationsprogramm benutzt werden, um die Verarbeitungseinrichtung 22 zu der auf die JSR-Instruktion folgenden ersten Operationsprogramm-Instruktion zurückzuführen. Eine Instruktion muß verwendet werden, um die Adresse für die erste Instruktion im zweiten Operationsprogramm zu einem durch den SP-Speicherinhalt definierten Speicherplatz zu übertragen.
Es sei angenommen, daß die folgenden beiden Operationsprogramme in der Speichereinheit gemäß Fi g. 13 vorhanden sind:
Erstes Verarbeitungsprogramm Zweites Verarbeitungsprogramm Speicherplatz Inhalt Speicherplatz Inhalt
1100 MOV»1200«,/?6(4) 1200
1103 1203 JSRR7,R6(3)
1165 JSRR7,R6(3)
Ferner wird angenommen, daß das SP-Register R 6 den 1 nhalt 2004 hat.
Die Zahl 1200 wird durch die Verarbeitungseinrichtung 22 in Abhängigkeit von der iV/OV»1200«, R 6 (4)-Instruktion zum Speicherplatz 2003 bewegt. Dann wird die nächste Instruktion ausgeführt, während der das PC-Register R7 auf 1102 erhöht wird. Wenn die JSR R7,R6(3)-Instruktion erhalten wird, wird das PC-Register R 7 während des Abrufzyklus auf 1103 erhöht. Der 5/*(7?6)-Registerinhalt 2003 wird zum Adressenregister 34 (F i g. 2) übertragen und auf 2004 erhöht. Zusätzlich wird der /S/M-Zustand dazu verwandt, den Inhalt 1200 des Speicherplatzes 2003 für eine Übertragung zum TEMP-Register während des /S/?-0-Zustands an die B-Eingangsschaltung52 zu übertragen.
Während des /SÄ-0-Zustands des Ausführungszyklus wird der SP-Registerinhalt erneut auf 2003 dekrementiert, um den Speicherplatz für den R 7 (PQ-Registerinhalt 1103 zu definieren. Der PC-Registerinhalt wird dann
MOV»l200«, /?6(4) 1200
1201
JSR R 7, R 6 (3) 1202
1203
1204
JSR R 7, R 6 (3)
durch die B-Eingangsschaltung 52 bewegt und während der ISRA- und /SÄ-2-Zustände zurückgeführt Während der 1SR-3- und /SÄ-4-Zustände wird der TEMP-Registerinhalt 1200 zum /"C-Register R 7 bewegt, so daß die Verarbeitungseinrichtung 22 während des nächsten Abrufzyklus die erste Instruktion im zweiten Verarbeitungsprogramm erhält .j .....
Im Ergebnis spricht die Verarbemingseinrichtung 22 auf die /SR R 7-, R 6 (3)-Instruktion an, indem die Inhalte des «T-Registers R 7 und des durch den SP-Registerinhalt definierten Speicherplatzes ausgetauscht werden. Wenn die JSR R7-,R6(3)-Instruktion am Speicherplatz 1203 erhalten wird, bewirkt die Verarbeitungsemrichtung 22 einen entsprechenden Austausch. Der Speicherplatz 2003 erhält die Zahl 1204, während die Zahl 1103 zum /"C-Register R 7 übertragen wird. Eine entsprechende Antwort führt die Verarbeitungseinrichtung 77 zum
ίο zweiten Verarbeitungsprogramm zurück, wenn die JSR R7-,R6 {3)-Instruktion im Speicherplatz 1105 erhalten und ausgeführt wird. Dann arbeitet die Verarbeitungseinrichtung 22 mit dem zweiten Verarbeitungsprogramm weiter. Deshalb ermöglicht eine Mitprogrammierung, daß die Verarbeitungseinrichtung 22 Instruktionen ausführt, die von den Speicherplätzen wie folgt erhalten werden: 1100 durch 1102,1200 durch 1203,1102 durch 1105 und 1204 und so weiter. Eine Mitprogrammierung erfordert keine schwierige Piogrammierung bei der Erfin-
dung. Es ist lediglich erforderlich, die JSR-Instruktion modifiziert durch die Verwendung des R 7- und nicht des R 5-Registers als Zwischenspeicherplatz zu verwenden.
Zusammenfassend ist deshalb zu sagen, daß diese Beispiele und die Beschreibung und Organisation der Datenverarbeitungsanlage erläutern, wie eine Verarbeitungseinrichtung mit unterschiedlichen Operationsprogrammen arbeitet, von denen jedes nur teilweise beendet wird. Dies erfolgt durch Speicherung des Inhalts von
/tT-Registera und Statuswortregistern in einem Block von Speicherplätzen, die durch das SP-Register oder äquivalente Register identifiziert werden. Wenn eine Programmzählstand-Modifikation eines Verarbeitungsprogramms, das eine JSR-Instruktion enthält gewünscht werden sollte, kann ein anderes Register mit einer feststehenden Adresse als erster Speicherplatz für den Programmzählstand benutzt werden. Wenn ein Unterprogramm oder ein Unterbrechungsprogramm beendet ist werden der gespeicherte Pro-
grammzählstand für das vorangegangene Verarbeitungsprogramm und das Statuswort sofern die Priorität geändert ist zur Verarbeitungseinrichtung zurückübertragen und deren Speicherplätze werden geleert Daraus ist ersichtlich, daß eine verhältnismäßig einfache Verarbeitungseinrichtung Vielfach-Verarbeitungsprogramme in einem jeweils nichtbeendeten Zustand ermöglicht ohne daß die Kompliziertheit der Programmierung in nachteiliger Weise erhöht wird. Vielfach-Unterprogramme und Unterbrechungsprogramme können in unvoll-
ständigen Zuständen ineinander verschachtelt werden, ohne daß eine zusätzliche Kompliziertheit des Programms erfc-dsrlich ist Schließlich ermöglicht die Verarbeitungseinrichtung, daß Daten von einem Operationsprogramm zu einem Unterprogramm übertragen werden.
Obwohl die Erfindung in Vtrbindung mit einer speziellen Datenverarbeitungsanlage beschrieben wurde, sind deren Vorteile auch in Verbindung mit anderen Anlagen erzielbar. Beispielsweise wurde bereits angedeutet daß,
um den unterbrechenden Vekto zu erhalten, die Übergabe der Steuerung der Verarbeitungseinrichtung an eine periphere Einheit nicht erforderlich sein muß, weil die Verarbeitungseinrichtung selbst die Unterbrechung steuern kann. Andere Verarbeitungseinrichtungen und andere Arbeitsweisen der Verarbeitungseinrichtung, die Instruktionen mit Formaten benutzen, die sich von dem beschriebenen Ausführungsbeispiel unterscheiden, können in geeigneter Weise modifiziert werden, um die Vorteile der Erfindung zu erzielen. Die Taktsteuerung
und andere funktionsmäßig beschriebene Schaltungsteile können abgewandelt werden, ohne die wesentliche Wirkungsweise der Datenverarbeitungsanlage zu beeinträchtigen.
Hierzu 15 Blatt Zeichnungen

Claims (4)

  1. Patentansprüche:
    1 Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen, bei denen eine Speichereinheit Speicherplätze, die zugeordnete Verarbeitungsbefenle als Verarbeitungsprogramme, afc Unterprogramme sowie als Unterbrechungsprogramme enthalten, sowie eine Vielzahl von belegten und freien Speicherplätzen, von denen jeder durch eine Adresse identifiziert ist aufweist und die Verarbeitungseinnchtung die von den durch einen Programmzähler identifizierten Speicherplätzen der Speicheremheit aufeinanderfolgend ihr zugeführten Verarbeitungsbefehle verarbeitet und eine Steuereinrichtung aufweist die auf erste und zweite Übertragungssignale anspricht die jeweils Speicherplätze für Unterprogrammbefehle und fur SJnterbrechungsprogrammbefenle identifizieren, sowie eine Übertragungseinrichtung aufweist die auf die Steuereinrichtung anspricht um Rückkehrinformationen einschließlich des Inhalts des Programmzählers fur ein jeweils unterbrochenes Programm abzuspeichern, dadurchgekennzeichnet.daß eine Adressiereinrichtung (40, 44 in Fig.2) fortlaufend die Adresse des jeweils letzten Speicherplatzes von unmittelbar aufeinanderfolgenden, mit Rückkehrinformationen belegten Speicherplätzen der Speichereinheit (24 in F i g 1) in einem ersten Register (SPm F i g. 2) bereitsatllt, und daß die Übertragungseinnchtung (32 und 42 m F i g. 2) mit der Adressiereinrichtung (40,44 in F i g. 2) verbunden ist um Rückkehrinformationen an einem durch die Adressiereinrichtung (40,44 in F i g. 2) jeweils identifizierten Speicherplatz der Speichereinheit (24 in F i g. 1) abzuspeichern, wobei die Adressiereinrichtung (40,44 in F i g. 2) vor jedem solchen Speichervorgang jeweils weiterschaltet und die genannte Adresse im ersten Register (SPm F i g. 2) bereitstellt
  2. 2. Zer-Tale Verarbeitungseinrichtung nach Anspruch 1, wobei j'edes Unterprogramm und UnterbreclmnosrijY)«rramm eine Rückkehrinstruktion enthält und die Steuereinrichtung eine Einrichtung zur Erzeugungen Zustanden enthält durch die die Übertragungseinrichtung jeweils Rückkehrinformationen an die zentrale Verarbeitungseinnchtung von der Speicheremheit überträgt dadurch gekennzeichnet daß die Steuereinrichtung (60 in F i g. 2) eine Einrichtung zur Erzeugung von Zuständen (IRS-6, BSRl bis BSR-3 in Fig.7B) enthält durch die der Inhalt des ersten Registers (SP) so modifiziert wird, daß er nach einer Übertragung jeweiliger Rückkehrinformationen an die zentrale Verarbeitungseinrichtung jeweils den nächsten belegten angrenzende!! Speicherplatz der Speichereinheit (24) identifiziert.
  3. 3 Zentrale Verarbeitungseinrichtung nach Anspruch 2, dadurch gekennzeichnet daß sie ein mit der Übertragungseinrichtung (32,42) verbundenes zweites Register (R S) enthält daß die Steuereinrichtung (60) die Übertragungseinrichtung (32,42) veranlaßt den Inhalt des zweiten Registers (R S) zu dem durch das erste Register (SP) identifizierten Speicherplatz zu übertragen (durch ISR-O, BSRi bis BSR-S in F i g. 7A) und den Inhalt des Programmzählers (PC) in Abhängigkeit von einer das erste Übertragungssignal erzeugenden BetriebsinstruktioR in das zweite Register (R S) zu übertragen (durch ISRi und ISR-2 in F i g. 7A), und daß die Steuereinrichtunfe (60) in Abhängigkeit von einer Unterprogrammrückkehrinstruktion die Ubertragungseinrichtung (32,42) veranlai , den Inhalt des zweiten Registers (R S) in den Programmzähler (durch ISR-4 und ISR-S oben in F i g. 7B) und den Inhalt eines durch das erste Register (SP) identifizierten Speicherplatzes in das zweite Register (R 5) zu übertragen.
  4. 4. Zentrale Verarbeitungseinrichtung nach Anspruch 2, dadurch gekennzeichnet daß ein drittes Register (59) zur Speicherung von Betriebsinformationen für die zentrale Verarbeitungseinnchtung vorgesehen ist und daß die Steuereinrichtung (60) veranlaßt, daß die Übertragungseinrichtung (32,42) de« Inhalt des dritten Registers (59) und des Programmzählers (PC) in angrenzende Speicherplätze überträgt (durch ISR-2 und ISR-3 in F i g. 8A), die durch das erste Register (SP) in Abhängigkeit vom Empfang eines zweiten Übertragungssignals identifiziert werden, und außerdem veranlaßt daß die Übertragungseinrichtung (32, 42) den Inhalt durch das erste Register (SP) identifizierter nachfolgender Speicherplätze an den Programmzähler (PC) und an das dritte Register (59) in Abhängigkeit von einer Unterbrechungs-Rückkehrinstruklion überträgt
DE2113890A 1970-03-23 1971-03-23 Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen Expired DE2113890C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US2195770A 1970-03-23 1970-03-23

Publications (2)

Publication Number Publication Date
DE2113890A1 DE2113890A1 (de) 1971-10-14
DE2113890C2 true DE2113890C2 (de) 1985-10-17

Family

ID=21807053

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2113890A Expired DE2113890C2 (de) 1970-03-23 1971-03-23 Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen

Country Status (5)

Country Link
US (1) US3614740A (de)
JP (1) JPS564943B1 (de)
CA (1) CA943258A (de)
DE (1) DE2113890C2 (de)
GB (1) GB1353951A (de)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3710324A (en) * 1970-04-01 1973-01-09 Digital Equipment Corp Data processing system
US3815099A (en) * 1970-04-01 1974-06-04 Digital Equipment Corp Data processing system
NL182178C (nl) * 1970-04-01 1988-01-18 Digital Equipment Corp Dataeenheid met een adresseerbaar opslagorgaan.
US3740722A (en) * 1970-07-02 1973-06-19 Modicon Corp Digital computer
US3760366A (en) * 1971-09-15 1973-09-18 Ibm Unprintable character recognition
US3774163A (en) * 1972-04-05 1973-11-20 Co Int Pour L Inf Hierarchized priority task chaining apparatus in information processing systems
JPS549456B2 (de) * 1972-07-05 1979-04-24
US3829839A (en) * 1972-07-24 1974-08-13 California Inst Of Techn Priority interrupt system
US3781823A (en) * 1972-07-28 1973-12-25 Bell Telephone Labor Inc Computer control unit capable of dynamically reinterpreting instructions
US3828327A (en) * 1973-04-30 1974-08-06 Ibm Simplified storage protection and address translation under system mode control in a data processing system
FR2253425A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2258112A5 (de) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
US4193113A (en) * 1975-05-30 1980-03-11 Burroughs Corporation Keyboard interrupt method and apparatus
US4074353A (en) * 1976-05-24 1978-02-14 Honeywell Information Systems Inc. Trap mechanism for a data processing system
US4152761A (en) * 1976-07-28 1979-05-01 Intel Corporation Multi-task digital processor employing a priority
US4122519A (en) * 1976-12-14 1978-10-24 Allen-Bradley Company Data handling module for programmable controller
US4339793A (en) * 1976-12-27 1982-07-13 International Business Machines Corporation Function integrated, shared ALU processor apparatus and method
US4342082A (en) * 1977-01-13 1982-07-27 International Business Machines Corp. Program instruction mechanism for shortened recursive handling of interruptions
US4348725A (en) * 1977-01-19 1982-09-07 Honeywell Information Systems Inc. Communication line service interrupt technique for a communications processing system
US4259718A (en) * 1977-03-10 1981-03-31 Digital Equipment Corporation Processor for a data processing system
IT1192334B (it) * 1977-10-25 1988-03-31 Digital Equipment Corp Sistema di elaborazione dei dati numerici
IN150275B (de) * 1977-10-25 1982-08-28 Digital Equipment Corp
GB2008293B (en) * 1977-10-25 1982-05-06 Digital Equipment Corp Data processing system with read operation splitting
ES474428A1 (es) * 1977-10-25 1979-04-16 Digital Equipment Corp Un sistema de tratamiento de datos.
US4272829A (en) * 1977-12-29 1981-06-09 Ncr Corporation Reconfigurable register and logic circuitry device for selective connection to external buses
JPS54107643A (en) * 1978-02-13 1979-08-23 Toshiba Corp Operation control method and unit executing structured program
US4409653A (en) * 1978-07-31 1983-10-11 Motorola, Inc. Method of performing a clear and wait operation with a single instruction
US4338663A (en) * 1978-10-25 1982-07-06 Digital Equipment Corporation Calling instructions for a data processing system
US4241399A (en) * 1978-10-25 1980-12-23 Digital Equipment Corporation Calling instructions for a data processing system
US4374418A (en) * 1979-06-27 1983-02-15 Burroughs Corporation Linear microsequencer unit cooperating with microprocessor system having dual modes
US4287560A (en) * 1979-06-27 1981-09-01 Burroughs Corporation Dual mode microprocessor system
US4504903A (en) * 1979-07-19 1985-03-12 Digital Equipment Corporation Central processor with means for suspending instruction operations
US4395758A (en) * 1979-12-10 1983-07-26 Digital Equipment Corporation Accelerator processor for a data processing system
US4410940A (en) * 1980-12-05 1983-10-18 International Business Machines Corporation Transfer of control method and means among hierarchical cooperating sequential processes
US4649472A (en) * 1981-02-04 1987-03-10 Burroughs Corporation Multi-phase subroutine control circuitry
US4467410A (en) * 1981-02-04 1984-08-21 Burroughs Corporation Multi-phase subroutine control circuitry
US4939640A (en) * 1981-05-22 1990-07-03 Data General Corporation Data processing system having unique microinstruction control and stack means
US4445190A (en) * 1981-06-16 1984-04-24 International Business Machines Corporation Program identification encoding
US4451882A (en) * 1981-11-20 1984-05-29 Dshkhunian Valery Data processing system
DE3146769A1 (de) * 1981-11-25 1983-06-09 Jurij Egorovi&ccaron; Moskva &Ccaron;i&ccaron;erin Rechensystem
US4803619A (en) * 1984-03-15 1989-02-07 Bernstein David H Digital data processing system incorporating apparatus for resolving names
DE3419559A1 (de) * 1984-05-25 1985-11-28 Robert Bosch Gmbh, 7000 Stuttgart Steuervorrichtung fuer funktionen im kraftfahrzeug
US4972317A (en) * 1986-10-06 1990-11-20 International Business Machines Corp. Microprocessor implemented data processing system capable of emulating execution of special instructions not within the established microprocessor instruction set by switching access from a main store portion of a memory
US5043879A (en) * 1989-01-12 1991-08-27 International Business Machines Corporation PLA microcode controller
JPH03129402A (ja) * 1989-07-10 1991-06-03 Mitsubishi Electric Corp プログラマブルコントローラのプログラム作成方法およびプログラミング装置
US5197138A (en) * 1989-12-26 1993-03-23 Digital Equipment Corporation Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
JPH0590558U (ja) * 1991-06-14 1993-12-10 アラコ株式会社 三角停止表示板
US6864570B2 (en) * 1993-12-17 2005-03-08 The Regents Of The University Of California Method and apparatus for fabricating self-assembling microstructures
US6128728A (en) 1997-08-01 2000-10-03 Micron Technology, Inc. Virtual shadow registers and virtual register windows
US6088787A (en) * 1998-03-30 2000-07-11 Celestica International Inc. Enhanced program counter stack for multi-tasking central processing unit
US6829719B2 (en) * 2001-03-30 2004-12-07 Transmeta Corporation Method and apparatus for handling nested faults
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8725990B1 (en) * 2004-11-15 2014-05-13 Nvidia Corporation Configurable SIMD engine with high, low and mixed precision modes
KR101002485B1 (ko) 2004-11-15 2010-12-17 엔비디아 코포레이션 비디오 처리
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US8683126B2 (en) * 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) * 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8681861B2 (en) * 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) * 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8489851B2 (en) * 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3059222A (en) * 1958-12-31 1962-10-16 Ibm Transfer instruction
GB993879A (de) * 1961-11-16
US3292155A (en) * 1963-03-15 1966-12-13 Burroughs Corp Computer branch command
US3348211A (en) * 1964-12-10 1967-10-17 Bell Telephone Labor Inc Return address system for a data processor
US3366929A (en) * 1964-12-30 1968-01-30 Ibm Computing system embodying flexible subroutine capabilities
FR1554578A (de) * 1965-04-05 1969-01-24
US3359544A (en) * 1965-08-09 1967-12-19 Burroughs Corp Multiple program computer
US3387278A (en) * 1965-10-20 1968-06-04 Bell Telephone Labor Inc Data processor with simultaneous testing and indexing on conditional transfer operations
NO119615B (de) * 1966-02-25 1970-06-08 Ericsson Telefon Ab L M
US3480917A (en) * 1967-06-01 1969-11-25 Bell Telephone Labor Inc Arrangement for transferring between program sequences in a data processor
US3568158A (en) * 1968-01-03 1971-03-02 Bell Telephone Labor Inc Program and subroutine data storage and retrieval equipment

Also Published As

Publication number Publication date
GB1353951A (en) 1974-05-22
JPS564943B1 (de) 1981-02-02
DE2113890A1 (de) 1971-10-14
US3614740A (en) 1971-10-19
CA943258A (en) 1974-03-05

Similar Documents

Publication Publication Date Title
DE2113890C2 (de) Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen
DE2113891C2 (de) Datenverarbeitungsanlage
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE2350884C2 (de) Adreßumsetzungseinheit
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE1524102C3 (de) Elektronische, aus Baueinheiten aufgebaute Datenverarbeitungsmaschine
DE3914265C2 (de)
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
CH634939A5 (de) Kanaldatenpufferanordnung in einer datenverarbeitungsanlage.
DE2635592A1 (de) Multiprozessor-abrufsystem
DE2358545A1 (de) Datenverarbeitungssystem mit dynamisch veraenderlichem vorrangzugriffssystem
DE2540975A1 (de) Multi-mikro-prozessor-einheit
DE2524229A1 (de) Datenverarbeitungssystem mit pyramidenfoermiger hierarchie des steuerflusses
DE2455803A1 (de) Mehrprozessor-datenverarbeitungsanlage
DE1929010B2 (de) Modular aufgebaute datenverarbeitungsanlage
DE2130299A1 (de) Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2134402B2 (de) Vorrichtung zum Abfragen der Verfügbarkeit eines Kommunikationsweges zu einer Eingabe-Ausgabeeinheit
DE1815078A1 (de) Mikro-programmierte Datenverarbeitungseinrichtung
DE2533403A1 (de) Datenverarbeitungssystem
DE2746505C2 (de)
DE2023354A1 (de) Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit
DE19524402C2 (de) Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge
DE3121742C2 (de) Mikroprogramm-Steuereinrichtung
DE2363846A1 (de) Verfahren zum steuern des transfers von daten zwischen einem speicher und einem oder mehreren peripheren geraeten und nach diesem verfahren arbeitende datenverarbeitungsanlage

Legal Events

Date Code Title Description
OD Request for examination
OI Miscellaneous see part 1
OI Miscellaneous see part 1
D2 Grant after examination
8364 No opposition during term of opposition