DE2054835A1 - Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor - Google Patents

Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor

Info

Publication number
DE2054835A1
DE2054835A1 DE19702054835 DE2054835A DE2054835A1 DE 2054835 A1 DE2054835 A1 DE 2054835A1 DE 19702054835 DE19702054835 DE 19702054835 DE 2054835 A DE2054835 A DE 2054835A DE 2054835 A1 DE2054835 A1 DE 2054835A1
Authority
DE
Germany
Prior art keywords
registers
stack
program
register
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19702054835
Other languages
English (en)
Other versions
DE2054835C2 (de
Inventor
Frederick Veit Malvern Earnest Elmer Dean Downing town Bock Robert Voss Malvern Gerbstadt Frederick Hugo Berwyn Monek James Joseph Exton Pa Rehhausser (V St A )
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.)
Unisys Corp
Original Assignee
Burroughs Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Burroughs Corp filed Critical Burroughs Corp
Publication of DE2054835A1 publication Critical patent/DE2054835A1/de
Application granted granted Critical
Publication of DE2054835C2 publication Critical patent/DE2054835C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Description

Dipl.-Ing. Horst Rose
Dipl.-lng. Peter Kosel Bad ^andersheim> den 6· November 1970
Patentanwälte
Bad Gandersheim
Hohenhöfen 5
Burroughs Corporation
P^itentgesuch vom 6. November 1970
BURROUGHS CORPORATION, Detroit, VStA
Prozessor für ein Informationsverarbeitungssystem und ein Betriebsverfahren für diesen Prozessor
Die Erfindung betrifft einen Prozessor für ein Informationsverarbeitungssystem mit einem Speichersystem, in dem verschachtelte Prozeßstrukturen speicherbar sind, und ein Betriebsverfahren für einen derartigen Prozessor.
Dieses Informationsverarbeitungssystem verwirklicht Funktionen und Datenstrukturen, die mehreren, auf einer höheren Ebene liegenden Programmiersprachen gemeinsam sind.
Digitale Großrechenanlagon oder -datenverarbeitungssysteme werden häufig zur Multiprogrammverarbeitung verwendet. Das heißt, sie haben die Möglichkeit, mehrere voneinander unabhängige Programme gleichzeitig ablaufen zu lassen. Dazu
109824/ 1671
gehört die sogenannte "Stapelverarbeitung","Realzeitverarbeitung" und das sogenannte "time sharing". Um mehrere dieser unzusammenhängenden Aufgaben oder "Tasks" durchführen zu können, sind bekannte Systeme mit sogenannten "Betriebssystemen" oder Steuerprogrammen versehen, die solche Vorgänge wie die Steuerung der Reihenfolge der Tasks, SpeieherZuordnung oder Speicherzuweisung und dergleichen überwachen. Das Betriebssystem enthält auch die verschiedenen Kompilierer, auch "Übersetzer" genannt, der in einer problemorientierten Programmiersprache abgefaßte Ursprungsanweisungen in Zielanweisungen einer maschinenorientierten Programmiersprache umwandelt (kompiliert), d.h. er gestattet dem Programmierer die Verwendung verschiedener Programmiersprachen, ohne daß dieser den speziellen Schaltungsaufbau der betreffenden Anlage kennen muß. Dabei beeinflußt die Art der Aufgaben, für die die Maschine verwendet werden soll, auch das Betriebssystem, das seinerseits die Ausbildung der Anlage selbst beeinflußt. Wenn die Maschine problemorientiert ist, dann ist das Überwachungsprogramm so aufgestellt, daß es eine eingegebene Folge von Programmen und dessen zugehörige Eingabedaten verarbeitet. Wenn die Maschine dagegen auf Realzeit- oder time-sharing-Betrieb ausgelegt ist, dann erkennt das Überwachungsprogramm Teile eingegebener Daten als solche, die der Vielzahl von Verarbeitungsprogrammen zugeleitet werden müssen. Wenn die Maschine auf timesharing- Betrieb ausgelegt ist, dann müssen verschiedene Programme und zugehörige Hilfsmittel überwacht werden.
Obwohl es möglich ist, ein Einprozessorsystem mehrere Programme gleichzeitig verarbeiten zu lassen, erhält man doch eine größere Flexibilität, wenn man ein Multiprozessorsystem verwendet, bei dem mehrere Prozesse oder Programme mehreren Prozessoren zugewiesen werden. Bei-
109824/16-71
spiele derartiger Multiprozessorsysteme sind in den USA-Patentschriften 3 419 849 und 3 411 139 beschrieben. Ein zentraler Prozessor (auch Zentraleinheit genannt), wie er bei dem System nach der USA-Patentschrift 3 411 139 verwendet wird, ist in der USA-Patentschrift 3 401 376 beschrieben.
Bei den beschriebenen Systemen werden Betriebssysteme verwendet, für die Multiprozessorsysteme aufgestellt sind. Ein wesentlicher Unterschied der Erfindung besteht darin, daß der Prozessor (die Prozessoreinheit) eine Schaltungsanordnung enthält, mit der es möglich ist, Systemanweisungen (auch Befehle genannt) mit größerer Geschwindigkeit als bisher auszuführen. Das Betriebssystem nach der Erfindung und die Schaltung zur Ausführung dieses Betriebssystems sind insbesondere so aufgebaut, daß die Anlage für einen Multitask-, einen timesharing-, einen Realzeit- oder einen Stapelverarbeitungsbetrieb besser geeignet ist.
Besonders vorteilhaft sind rekursive oder Wiedereintritts-Systemprogramme, wie Dienstprogramme. Ferner ist es vorteilhaft, wenn diese Rekursivität in einer Hierarchie von Ebenen und nicht nur einer Ebene vorliegt. Ferner ist es vorteilhaft und auch notwendig, bestimmte Systemprogramme sowie Benutzerprogramme im Speicher vor einem unerwünschten Aufruf, einer unerwünschten Eingabe oder einem unerwünschten Eintritt durch unzusammenhängende Prozesse zu schützen, die anderswo in dem System ausgeführt werden. Ein weiterer Vorteil ist die Bildung von Funktionen, die verschiedenen Ursprungssprachen gemeinsam sind und durch Schaltungsanordnungen verwirklicht werden, wo es möglich ist, um die Ausführungszeit zu verkürzen.
Man hat verschiedene Programmiersprachen oder Ursprungssprachen entwickelt, die dem Benutzer die Aufstellung von Programmen ohne spezielle Kenntniss der jeweiligen Maschinensprache gestatten. Zu diesen verschiedenen Programmiersprachen gehören Fortran, Cobol, Algol und PL/1. Ein besonderes Problem bei der Entwicklung von Kompilierern oder Übersetzern für die Ursprungssprachen besteht darin, daß nicht nur verschiedene Arten von Operatoren, sondern auch verschiedene Anweisungsformate (Befehlsformate) und Datenstrukturen verwendet werden. Diese Unterschiede im Strukturformat und in den Operatoren sind zum Teil in den verschiedenen Speicherorganisationen begründet, die für verschiedene Verarbeitungssysteme ausgebildet sind. Wenn daher das eine System für eine bestimmte Programmiersprache besonders geeignet ist, muß es nicht ebenso gut für irgendeine andere Programmiersprache geeignet sein. Man strebt daher eine Speicherorganisation an, die frei von irgendeiner internen Struktur ist und die sich an Daten- und Anweisungs- bzw, Befehlssegmente mit einer nahezu unendlichen Vielzahl von Größen anpassen kann. Ein derart strukturfreier Speicher kann sich jedoch nicht nur an Informationssegmente mit unterschiedlicher Größe anpassen, sondern er gestattet auch eine größere Datenpackungsdichte.
Es ist unpraktisch, einen vollständig bitadressierbaren Speicher zu bauen, daher sind Speicher wort- oder byteorientiert. Bei bekannten wortorientierten Speichern ist es möglich, an einem ausgewählten Byte-Speicherplatz zu speichern oder zu lesen. Dabei ist ea jedoch nicht möglich, ein Feld beliebiger Größe zu wählen, das also größer oder kleiner als ein Byte ist und an irgendeinem ausgewählten Bit-Speicherplatz beginnen kann. Dies
1UÜÖ2A/1671
χ[.\γ- "iji'inni niinpiiiiii^ '!■■!Iiiiiiiiiii'iiiihiii'iiii1" \y
ist besonders zur Lösung verschiedener Aufgaben vorteilhaft, für die verschiedene Prograsuasprachen und Datenformate entwickelt wurden.
Bekannte Informationsverarbeitungssysteme enthalten ferner eine Schaltung für bestimmte Funktionen, für die eine Programmsprache entwickelt wurde. Systeme, die nur auf die Lösung bestimmter Probleme ausgelegt sind, lassen sich jedoch nicht ohne weiteres so ändern, daß sie auch zur Lösung anderer Probleme geeignet sind. Mit einem System, bei dem Funktionen, die vielen Programmsprachen gemeinsam sind, gerätetechnisch verwirklicht sind, lassen sich kürzere Ausführungszeiten und Kompilierzeiten erzielen.
Der Erfindung liegt daher die Aufgabe zugrunde, ein verbessertes Multiprozessorsystem zu schaffen, das für zahlreiche verschiedene Anwendungsfälle geeignet ist, wie time sharing, Lösung wissenschaftlicher Probleme und andere Datenverarbeitungsaufgaben. Dieses Multiprozessorsystem soll insbesondere Daten mit komplizierten Strukturen verarbeiten können, die sowohl verschachtelt als auch aus Elementen veränderbarer Art und Länge zusammengesetzt sein können. Dieses Multiprozessorsystem soll gleichzeitig für ausgefeilte Programmstrukturen geeignet sein, die durch derzeitige und zukünftige Ursprungssprachen bestimmt werden.
Nach der Erfindung ist ein Prozessor für ein Informationsverarbeitungssystem mit einem Speichersystem, in dem verschachtelte Prozeßstrukturen speicherbar sind, gekennzeichnet durch eine zur Ausführung einer Folge von Programmanweisungen ausgebildete Programmvorrichtung, eine
109824/1671
Gruppe von Hinweisstapelpufferregistern zur Aufnahme einer Folge von Hinweisen (oder Bezugszeichen) auf Operanden, die von dem Programm verlangt werden, und eine Gruppe von Steuerpufferregistern zur Aufnahme eines Kennzeichens (einer Beschreibung) der Hinweise, die die Hinweisstapelpufferregister aufgenommen haben.
Eine andere Lösung dieser Aufgabe besteht darin, daß der Prozessor Hinweisregister zur Aufnahme einer Folge von Hinweisen (Bezugszeichen) auf Operanden, die von einer Programmfolge gefordert werden, Steuerregister zur Aufnahme eines Kennzeichens (einer Beschreibung) der Hinweise, Hilfsmittelregister zur Aufnahme von Hinweisen auf Routinen, aus denen Programmfolgen gewonnen werden können, eine Vorrichtung zum Adressieren eines der Hilfsmittelregister zur Gewinnung eines Routine-Hinweises für eine Übertragung in eines der Steuerregister und eine Vorrichtung zum Adressieren eines der Steuerregister zur Gewinnung von Hinweisen für eine Übertragung in eines der Hinweisregister enthält.
Das Verfahren zum Betreiben eines Prozessors für ein Informationsverarbeitungssystem, wobei der Prozessor Hinweisregister zur Aufnahme einer Folge von Hinweisen (oder Bezugszeichen) auf Operanden, die von einer Programmfolge verlangt werden, Steuerregister zur Aufnahme eines Kennzeichens (einer Beschreibung) der Hinweise und Hilfsmittelregister zur Aufnahme von Hinweisen auf Routinen, aus denen Programmfolgen gewonnen werden können, enthält, ist zur Lösung dieser Aufgabe dadurch gekennzeichnet, daß eines der Hilfsmittelregister zur Gewinnung eines Routine-Hinweises für eine Übertragung in eines der Steuerregister adressiert wird und daß eines der Steuerregister zur Gewinnung von Hinweisen für eine Übertragung in eines der Hinweisregister adressiert wird.
1098 24/167.1-·. ·;■·■■.:
Obwohl auf verschieden hoher Ebene liegende Programm-Sprachen sich nicht nur in der Art der zu verwendenden Operatoren, sondern auch in ihren Anweisungsformaten (bzw. Befehlsformaten) und in der verwendeten Datenstruktur (Datenaufbau) unterscheiden, ist dieses System in der Lage, Informationen mit veränderbarer Struktur zu verarbeiten, so daß es für die verschiedensten Programmiersprachen geeignet ist. Dieses Grundprinzip läßt sich auch bei einem Mehrprozessorsystem anwenden, der mit einem Freifeldspeicher versehen ist, wobei jeder Prozessor in dem System in der Lage ist, dynamisch Adressen für Datenstrukturen zu bilden, die an irgendeinem Bitspeicherplatz im Arbeitsspeicher beginnen und eine beliebige Länge haben. Dadurch ist das System in der Lage, eine Hierarchie verschachtelter Prozesse zu verarbeiten. Aus diesem Grunde wird nach der Erfindung für die erforderliche Strukturpufferung (Strukturzwischenspeicherung) gesorgt, um die richtige Hilfsmittelzuweisung und Prozedurrückkehr (Prozedurwiederholung oder -rücksprung) zu ermöglichen, die bei einer derartigen Prozeßhierarchie erforderlich ist.
Der Prozessor ist mithin so ausgebildet, daß er Programmfolgen ausführen kann und Strukturpuffer enthält, die auf Hilfsmittel hinweisen (bzw. diese kennzeichnen), die Routinen umfassen, die gerade für den Prozeß zur Verfügung stehen, der diesem Prozessor zugewiesen ist.
Dabei sind nach der Erfindung Strukturpuffer vorgesehen, die Hinweise auf die Prozeßumgebung einer Routine enthalten, die gerade ausgeführt wird, und die ferner Kennzeichen (Beschreibungen) von Werten und Operanden enthalten, die verwendet werden sollen. Diese Beschreibungen
109824/1671
oder Namen und die Werte sind in Stapeln im Arbeitsspeicher angeordnet. Der Prozessor ist jedoch mit Pufferregistern zur Aufnahme des oberen Teils dieser Stapel für einen schnellen Zugriff durch den Prozessor versehen. Die Zustände oder Anweisungen der Namen- und Wertstapelpufferregister werden wieder durch Informationen gekennzeichnet, die in Steuerfeldpufferregistern gespeichert sind und aus Hilfsmittelstapelpufferregistern geholt werden.
Die Erfindung und ihre Weiterbildungen werden im folgenden anhand von Zeichnungen ausführlicher beschrieben.
Fig. 1 ist eine schematische Darstellung eines Systems, bei dem die Erfindung angewandt wird.
Fig. 2 ist eine schematische Darstellung eines Prozessors, bei dem die Erfindung angewandt wird.
Fig. 3 ist eine schematische Darstellung des Interpretiererteils des Prozessors.
Fig. 4 ist eine: Darstellung des nach der Erfindung angewandten Deskriptorformats.
Fig. 5 ist eine Darstellung von Strukturausdrucksformaten.
Fig. 6 ist eine Darstellung einer Folge (auch Sequenz oder String genannt) von Strukturausdrücken, die in einem Deskriptor vorkommen können.
Fig. 7 ist eine Darstellung des Namenformats.
109824/1671
Fig. 8 ist eine Darstellung der Organisation der Strukturpuffer nach Fig. 3.
Fig. 9 ist eine Darstellung der Programmoperatorformate.
Fig. 10 ist eine schematische Darstellung der Informationsübertragung zwischen dem Speicher (Arbeitsspeicher) der Ebene 1 und dem Prozessor.
Fig. 11 ist eine Darstellung des Slementarsteuerwortformats und
Fig. 12 ist eine Darstellung eines Speichersteuerwortformats.
Multiprozess-Systeme und Multiprogramm-Systeme können als eine Folge zusammenhängender oder unzusammenhängender Programme, Aufgaben (auch Tasks genannt) oder Arbeiten angesehen werden, die im folgenden "Prozesse" genannt werden. Ein Elementarprozess ist eine serielle Ausführung von Operatoren durch einen einzigen Prozessor. Ein Prozeß kann in Unterprozesse aufgeteilt oder Teil eines Hauptprozesses sein. Auf diese Weise läßt sich eine Prozeßhierarchie aufstellen. Der Begriff "Prozeß" kann als eine Assoziierung zwischen einem Prozessor und Adressenraum definiert werden. Der Adressenraum ist die Gruppe aller Speicher, die durch diesen Prozeß zugänglich sind. Der gesamte in dem System zur Verfügung stehende Speicherraum kann so betrachtet werden, als sei in ihm ein Globalprozeß gespeichert, bei dem es sich um den Stammvater aller anderen Prozesse und Unterprozesse in dem System handelt. Ein derartiger Globalprozeß kann so betrachtet werden, als enthalte er das gesamte Betriebssystem mit Uberwachungsprogrammen, Dienstprogrammen und
1 0982Λ/16 71
205A835 - ίο -
Kompilierern sowie den verschiedenen Benutzerprogrammen.
Der Adressenraum des Systems nach der Erfindung erstreckt sich über alle Speieherebenen einschließlich den Hauptspeicher und einen Hilfs- oder Reservespeicher und periphere Geräte. Dieses System enthält mehrere Prozessoren, von denen jeder mit einer HilfsStruktur im Arbeitsspeicher zum Speichern der Kennzeichnung eines neuen Arbeitsraumes oder neuer Arbeitsräume versehen ist. Diese Hilfsstruktur, die noch ausführlicher beschrieben wird, gestattet jedem Prozessor mit der Relation zwischen dem gesamten Globalprozeßraum (Arbeitsspeicher) und dem jeweiligen Prozeßraum, mit dem er gerade in Verbindung steht, Schritt zu halten.
Die Prozeßhilfsstruktur ist die Vorrichtung, die zum Durchlassen aller Hilfsmittel zwischen Prozessen der Prozeßüierarchie verwendet wird, und ist daher ein integraler Bestandteil des Hilfsmittelschutzschemas, das zum Schutz verschiedener Benutzerprogramme während des time sharing und generell zum Schutz der verschiedenen Prozesse erforderlich ist. Wenn ein bestimmter Prozessor von einem Hauptprozeß auf einen Unterprozeß übergeht, werden zugeordnete Hilfsmittel in der Hilfsmittelstruktur des Prozessors übereinandergestapelt und aus der Prozeßhilfsmittelstruktur entfernt, wenn der Prozessor aus dem Unterprozeß in den Hauptprozeß zurückkehrt. Die Hilfsmittelstruktur enthält daher alle dynamisch zugeordneten Hilfsmittel, die ihr Prozessor für irgendeinen bestimmten Unterprozeß eventuell benötigt. Ein bestimmter Systemmanagementprozeß ist der einzige Prozeß, der direkten Zugang zu Eingaben oder Einsprüngen in jede der Hilfsmittelstrukturen hat.
109824/1671
Diese oben angegebene allgemeine Beschreibung des Prozeßaufbaus umfaßt bereits in allgemeiner Form eine Beschreibung der Art, in der die verschiedenen Speicherebenen verwendet werden. Im folgenden soll kurz das nach der Erfindung derart ausgebildete System beschrieben werden, daß es diesen Prozeßaufbau verwenden kann. Fig. 1 stellt schematisch ein System dar, bei dem die Erfindung angewandt ist. Dieses System enthält mehrere zentrale Prozessorwerke 10 und ein oder, .mehrere EÄ-Steuerwerke (EA = Eingabe/Ausgabe), die zusammen mit einem Reservespeicher 14 an mehrere Speicherwerke 11 über ein Verriegelungsschaltwerk 20 angeschlossen sind. Alle Speicherwerke 11 bestehen aus zwei Speichereinheiten 12 und eine Trenneinheit 13, deren Zweck und Wirkungsweise noch ausführlicher beschrieben wird. Der Reservespeicher 14 enthält ein Speichererweiterungssteuerwerk 15 und mehrere Einheiten 16 und 17, die Register, Kernspeicher oder Plattenspeicher enthalten können. Der Reservespeicher (auch Hilfs- oder Ergänzungsspeicher genannt) wird im folgenden als Speicher der Ebene 2 bezeichnet. Von den EA-Steuerwerken 18 werden ein oder mehrere zur Herstellung der Verbindung zu den Peripheriegeräten 19 verwendet.
Der in Fig. 1 dargestellte Aufbau unterscheidet sich nicht wesentlich von dem nach der US-Patentschrift 3 411 139. Das nach der Erfindung ausgebildete System unterscheidet sich jedoch gegenüber dem bekannten erheblich in der Art, in der die erwähnte Prozeßhierarchie angewandt wird,und in der Art, in der die Teile nach der Erfindung angepaßt sind, um diese Hierarchie anzuwenden.
Die Hauptmerkmale der Erfindung sind sowohl in der Art zu sehen, in der die Speicherwerke 12 angepaßt sind, um
109824/161M
der Einrichtung als Freifeldspeicher zu erscheinen, und in der Art, in der die jeweiligen Prozessoren 10 ausgebildet sind, um diesen Speicher zur Anwendung der erwähnten Prozeßhierarchie zu benutzen.
Die wesentlichen Einzelheiten des Prozessors werden zunächst anhand von Fig. 2 allgemein beschrieben. Wie aus Fig. 2 zu ersehen ist, enthält der Prozessor 10 nach Fig. 1 eine Interpretierereinheit 21 und ein Rechenwerk 20. Eine Speicherverbindungseinheit 22 (auch Speicher-Koppelelektronik oder Speicher-Schnittstelleneinheit.genannt) dient als Verbindungseinheit zwischen dem Interpretierer 21 und den jeweiligen Speieherwerken 11 nach Fig. 1. Der Interpretierer 21 besteht aus vier Grundteilen: Einem Kernteil 23, einem Strukturpufferteil 24, einem Programmteil 25 und einem Unterbrechungsteil 26.
Die Hauptfunktion jedes Prozessors 10 besteht in der Aktivierung und Deaktivierung von Prozessen, der Steuerung von Informationsübertragungen zwischen Baueinheiten, der Bedienung von Unterbrechungen und der Ausführung von Rechenoperationen, die von einem Programm verlangt werden. Diese Funktionen werden unter der Leitung eines Hauptsteuerprogramms ausgeführt. Der Prozessor verringert die Speicherzugriffszeiten durch Verwendung in der Phase aufeinander abgestimmter Lese- und Schreiboperationen, wo immer es möglich ist, und durch gleichzeitige Pufferung bzw. Zwischenspeicherung von Informationen. Durch die Zentralisierung der Steuerung der funktionell unabhängigen Unterteile der Interpretierereinheit 21 wird die Ausfuhrungsgeschwindigkeit erhöht und werden die Hardware-Kosten verringert. In jedem Prozessor ist es der Interpretierer 21, der die Bewegung von Programm und Daten steuert, für einen selbsttätigen Speicherschutz
100824/1671
sorgt, auf Unterbrechungen und Steuerungen anspricht und die verschiedenen Stapel und Puffer im Prozessor leert und wieder füllt.
In dem Interpretierer liest (aus dem Speicher), interpretiert und führt der Programmteil 25 die Programmoperatoren in dem Programmstring aus. Durch den Kernteil 23 werden Deskriptoren, die in dem Programmstring in Abhängigkeit von dem Programmoperator, der gerade ausgeführt wird, aufgerufen werden, gelesen, interpretiert, ausgeführt und auf den neuesten Stand gebracht. Der Strukturpufferteil 24 besteht aus einer Gruppe örtlicher Speicher, die häufig aufgesuchte Posten zwischenspeichern um die Anzahl der Leseoperationen, die mit der Ebene 1 (dem Hauptspeicher) durchgeführt werden, möglichst gering zu halten. Die Zwischenspeicherung basiert auf den Strukturen, die zur Festlegung des Prozessors verwendet werden. Der ünterbrechungsteil 26 empfängt Unterbrechungen und Fehler, prüft sie und läßt das geeignete Fehler- oder Unterbrechungssignal durch, um eine Programmänderung zu bewirken.
Die Interpretierereinheit 21 ist dann so ausgebildet, daß sie die Verarbeitungs- oder Prozeßsteuerung in der Einrichtung mit Hilfe von Strukturoperatoren, die speziell für ein wirksames Management von Daten und Programmstrukturen ausgelegt sind, und mit Hilfe von Programmoperatoren übernimmt, die so ausgewählt sind, daß sie eine einfache Verwirklichung auf höherer Ebene liegender Sprachen gestattet. Die Steuerinformation wird, wie dies erforderlich ist, an das Rechenwerk und über die Speicherverbindungseinheit 22 an das Speicherwerk verteilt.
109824/1671
Obwohl der Hauptspeicher oder Speicher der Ebene 1 dem System als Freifeldspeicher oder ohne Struktur erscheinen kann, sind die verschiedenen darin gespeicherten Prozesse und Informationssegmente natürlich strukturiert. Die Deskriptoren sind so beschaffen, daß sie die verschiedenen Informationsstrukturen im Speicher bezeichnen oder darauf hinweisen. Sie schreiben auch diese Strukturen und ihre Bedeutung in bezug auf den Prozeß vor, in dem sie vorkommen, oder in bezug auf den Hauptprozeß, wenn die Struktur selbst ein Unterprozeß ist.
In diesem Sinne umfaßt das Aufrufen aller strukturierten Informationen in den verschiedenen Speicherebenen die Auswertung von Deskriptoren. Diese Auswertung wird durch den Kernteil 23 vorgenommen, wie es in Fig. 2 dargestellt ist. Nach Fig. 4 gibt es vier Arten von Deskriptorformaten, die sich jeweils auf verriegelte Datenfelder, Datenobjekte, Programmsegmente oder andere Deskriptoren beziehen, bzw. diese kennzeichnen.
Jeder dieser Deskriptoren enthält drei größere Informationsgruppen oder Ausdrücke. Diese werden als Zugriffattribute, Interpretiererattribute und Strukturausdrücke bezeichnet. Die Zugriffattribute bestimmen das Schutzvermögen und ob ein gekennzeichnetes Element im Speicher abgespeichert oder ausgelesen werden kann. Die Interpretiererattribute bestimmen die Eigenschaften dieses gekennzeichneten Elements, und der Strukturausdruck enthält die Art der Struktur, in der das Element liegt, und dies bestimmt die Struktur und Strukturparameterfelder, die die Parameter vorgeben, die für einen Zugriff zu dieser Struktur erforderlich sind. Es sei anhand von Fig. 4
109824/1671
darauf hingewiesen, daß jeder Deskriptor soviele Strukturausdrücke enthalten kann, wie zur Bestimmung oder Abgrenzung eines bestimmten Elements erforderlich sind.
Die Formate des Strukturausdrucksfeldes sind in Fig. 5 dargestellt. Neben dem allgemeinen Format sind zwei spezielle Strukturausdrucksarten dargestellt, bei denen es sich um die Segmentnummer und die Rufausdrücke handelt. Dies sind die zwei einzigen Strukturausdrücke, die eine vorbestimmte Größe haben. Die Segmentnummer ist stets mit einem 8-Bit-Index zum Auswählen des Hilfsmittelstapels als ihr Parameter versehen. Der Rufausdruck ist stets mit einem Namen als Parameter versehen, der zur Bezeichnung von Deskriptoren verwendet wird. Nach dieser allgemeinen Beschreibung der Deskriptoren sei daran erinnert, daß ein Speichersteuerwort aus dem Deskriptor erzeugt wird.
Ausführliche Beschreibung der Erfindung A. Interpretierer-Kernteil
Das folgende bezieht sich auf Fig. 3, die die Schaltung des Interpretierers 21 und insbesondere des Kernteils 23 zur Auswertung der jeweiligen Deskriptoren und Strukturoperatoren darstellt. Die Kern-Hardware enthält fünf Attributstapel 30 - 34 (für Stapel wird auch der Begriff Kellerspeicher verwandt), eine Deskriptor-Zusammensetzungs-Zerlegungs-Vorrichtung 35, ein Programm-Deskriptor-Steuerregister 36, ein Deskriptorausführungsregister 38 und Deskriptorsteuerwerke 39 sowie einen Programm-Deskriptor-Steuerstapel 37. Der Kernteil 23 erhält Daten aus Strukturpuffern 40, einem Wertstapel 42, einer Programmwalzenschaltung 43 und dem Rechenwerk 20, wie es in Fig. 2 dar-
100024/1671
gestellt ist, Der Kernteil 23 überträgt Daten in die Strukturpuffer 40 und das Rechenwerk 20.
Die Auswertung der verschiedenen Deskriptoren durch den Kernteil 23 sorgt für den Zugriff zu den verschieden strukturierten Informationen in den jeweiligen Speicherebenen. Das Ergebnis dieser Auswertung ist ein Zeichen, das Terminal- oder Datenendstationsdeskriptor genannt wird. Bestimmte Elementzeichen in der Struktur hängen von der Art der Auswertung des Deskriptors und den Auswertungsparametern ab. Die Auswertungsbetriebsarten sind das Eingeben, Entfernen und Konstruieren und können auf alle Strukturen angewandt werden.
Die Auswertung beginnt mit der Ausführung einer Auswertungsoperation, bei der ein Leerterminaldeskriptor und ein Deskriptor verwendet werden, der durch den Kernteil während der Auswertungsoperation abgetastet werden muß. Jede Struktur kann sich auf zwei Fehlerprozeduren (eine zum Lesen und eine zum Schreiben) beziehen, die während der Auswertung festgelegt werden, wenn der Fehlerprozedurname in dem Deskriptor vorgeschrieben ist, der abgetastet wird. Dieser Name wird dann zum Terminaldeskriptor gebracht. Die Fehlerindikatoren werden dementsprechend in dem Terminaldeskriptor akkumuliert.
Der Strukturausdruck des Deskriptors besteht aus einem Zuordnungsbit, an das sich eine Folge von Strukturanweisungen anschließt* Wenn das Zuordnungsbit falsch ist, tritt sofort ein Zuordnungsfehler auf. Andernfalls werden die Strukturausdrucksanweisungen der Reihe nach von links nach rechte ausgeführt. Jede Anweisung besteht aus einer Operation und einem Strukturzustand.
1ÖÖ824/1671
Der Strukturzustand enthält Adressen- und Längenfelder. Die Länge der Felder im Strukturzustand wird durch die Adressenfeldlänge des Strukturausdrucks vorgeschrieben. Die erste Anweisung des Strukturausdruckes muß eine Segmentnummer bestimmen. Diese kann entweder explizit mit einer Segmentanweisung oder mit einer Rufanweisung einer anderen Struktur, die die Segmentnummer bestimmt, bestimmt werden. Die Segmentnummer wird in der Segmentanweisung des Terminaldeskriptors eingefügt.
Einige Anweisungen können betriebsartenabhängig sein und diejenigen Strukturen überwachen, bei denen eine Zuordnung auftreten kann. Zugriffe zu betriebsartenabhängigen Anweisungen im Entfernungs- oder Eingabebetrieb ändern jeweils den Strukturzustand für eine Zuordnung (auch Zuweisung oder Zuteilung genannt) oder Abweisung eines Elements. Zugriffe zu irgendeiner Struktur im Konstruktionsbetrieb haben keinen Einfluß auf den Strukturzustand. Im Falle betriebsartenunabhängiger Strukturen sind Eingabe- und Entfernungsbetriebsarten gleichbedeutend mit der Konstruktionsbetriebsart. Bei Strukturen mit mehr als einer be-, triebsartenabhängigen Anweisung (Instruktion) hat die betreffende Betriebsart nur auf die erste betriebsartenabhängige Anweisung einen Einfluß. Das heißt, wenn die Struktur Unterstrukturen aufweist, bei denen eine Zuordnung auftreten kann, kann die Zuordnung nur bei der innersten zuordnungsfähigen Struktur auftreten.
Jede der Strukturen im Speicher (Arbeitsspeicher) kann als in einen Adresssnraum enthalten angesehen werden, der durch eine Adresse und eine Länge bestimmt ist. Bei der Strukturausdrucksauswertung arbeitet also jede Anweisung nach der Anfangsanweisung in diesem Ausdruck auf eine Behälteradresse, die im Behälteradressenstapel 32 nach
1098-24/1671
Fig. 3 gespeichert ist, und auf eine Behälterlänge im Behälterlängenstapel 31, um eine geeignete Unterstruktur in dem Behälter zu bestimmen. Wenn das Unterfeld nicht vollständig in dem so bestimmten Behälter enthalten ist, tritt ein Fehler auf. Wenn nicht anders vorgeschrieben, sind von bestimmten Anweisungen benötigte Parameter in dem Wertestapel zu finden, der in dem Arbeitsspeicher vorgesehen ist und den Wertestapelpuffern 42 nach Fig. Werte zuführt.
Der Attributsammelstapel 30 nach Fig. 3 sammelt dann Zugriffgestattungsattribute, Segmentnummern und Formatselektoren, die er während der Auswertung aus den verschiedenen Deskriptoren erhält. Die anderen vier Stapel 31..., 34 werden zur Strukturausdruckparameterbehandlung verwendet. Jeder Stapel besteht aus vier Wörtern, die 32 Bits lang sind. Die Stapel stehen bei allen Rechenoperationen mit dem Rechenwerk in Verbindung. Sie verwenden und modifizieren auch die in dem Struktur- und Deskriptorpuffer 40 gespeicherten Strukturausdrucke, und sie erhalten Parameter aus dem Wertstapel über Wertstapelpuffer 42 und die Programmwalzenschaltung 43. Die B Stapel werden einzeln behandelt, Zwei der Stapel enthalten Behälterinformationen (Anfangsadresse und Länge), während die übrigen beiden Stapel Elementinformationen (Anfangsadresse und Länge) speichern* Die Stapel sind in Fig. 3 entsprechend beschriftet. während der Auswertung speichern die Stapel Zwischenwerte aus diesen Behältern für Längeninformationen und Selbstidentifizierungsstrukturen. Am Ende jeder Strukturtypauswertung sind die Elementstapel leer, während die Behälterstapel ein Teilbezugszeichen für das Objekt aufweisen. Das Teilbezugs-
100624/1671
zeichen ist eine Behälteradresse und eine Länge, die der Länge bis zu der Stelle entspricht, bis zu der der Deskriptor ausgewertet wurde.
Das Deskriptorausführungsregister 38 im Kernteil 23 speichert das laufende (augenblickliche) Deskriptorstrukturausdruckstypfeld, so daß es zusammen mit Informationen aus dem Interpretierersteuerteil bei der Bestimmung des Algorithmus verwendet werden kann, der vom Deskriptorsteuerteil 39 bei der Auswertung des augenblicklichen Strukturausdruckes angewandt werden soll, In Übereinstimmung mit dem Strukturausdrucksformat nach Fig. 5 ist der Strukturausdruckstyp 4 Bits lang, so daß das Deskriptorausführungsregister 38 ebenfalls 4 Bits lang ist.
Die Deskriptor-Zusammensetzungs-Zerlegungs-Vorrichtung 35 hat zwei Funktionen. Sie wird zum Zerlegen der Felder in den verschiedenen Deskriptoren und dazu verwendet, jedem Feld seine passende Bestimmung zuzuweisen. Sie wird auch dazu verwendet, die Felder aus verschiedenen Quellen auf den neuesten Stand- zu bringen und wieder zusammenzusetzen und Deskriptoren auf den neuesten Stand zu bringen.
Das Programm/Deskriptor-Steuerregister 36 und der Programm/Deskriptor-Steuerstapel 37 bilden die Programm/ Deskriptor-Steuerstruktur. Das PD-Steuerregister 36 (PDSR) ist 106 Bits lang und der Programm/Deskriptor-Steuerstapel 37 (PDSS) besteht aus 8 Wortstellen (oder Wortplätzen), von denen jede 106 Bits lang ist. Der Stapel 37 ist das Verbindungsglied zum Speicher der Ebene 1. Diese Struktur speichert sowohl den Programmausführungs- als auch den Deskriptorauswertungsverlauf (bzw. die Historie der Programmausführung und Deski'iptorauswertung). Der Übergang .
109024/1671
in eine Subroutine, Prozedur, Funktion oder Schleife bewirkt, daß die Programmausführungsinformation aus dem PDSR ins PDSS tibertragen wird. Dieser Einsprung wird dann im PDSR festgehalten. Eine Programmverzweigung ersetzt dann die gerade im PDSR gespeicherte Information durch eine Beschreibung (Deskription) der Verzweigung. Während der Deskriptorauswertung bewirkt ein Strukturausdruck vom Typ "Ruf", daß der Inhalt des PDSR ins PDSS übertragen wird. Die Ruf-Beschreibung wird ins PDSR gebracht. Da die Deskriptor-Auswertung niemals den bisherigen Programmablauf (die Programmhistorie) ändert, befindet Sich der bisherige Deskriptor-Auswertungsverlauf stets an der Spitze (bzw. oben) im bisherigen Programmausführungsablauf im PDSS.
Die Struktur- und Deskriptorpuffer 40 und der zugehörige Speicher 41 bilden keinen unmittelbaren Teil der Hardware des Kernteils 23. Sie versorgen jedoch den Kernteil mit den Deskriptoren, die ausgewertet werden sollen. Der Puffer ist ein örtlicher 32-Wort- und 128-Bit-Speicher. Der Puffer ist in fünf Bereiche unterteilt: Koroutine, Steuerfeldpuffer, Namenstapelpuffer, Deskriptorpuffer, Hilfsmittelstapelpuffer und Anzeigepuffer. Die Deskriptorhilfsmittelstapel- und Anzeigepuffer sind mit einem Arbeitsspeicher versehen, um besetzte Einsprünge schnell kenzeichnen zu können. Die Ebene-1-Adressen der Koroutinefeldeinsprünge und Namenstapeleinsprünge sind in dem zugehörigen Arbeitsspeicher gespeichert, um sie schnell auf den neuesten Stand bringen zu können. Der Aufbau der Strukturpuffer 40 und des: zugehörigen Arbeitsspeichers 41 ist in Fig. 8 dargestellt.
109824/1671
B. Interpretierer-Programmteil
Nach der Beschreibung der Deskriptorauswertung wird nun die Ausführung des Programms beschrieben, das durch den Programmteil 25 nach den Fig. 2 und 3 gebildet wird. Die Programmsilbe, die gerade ausgeführt wird, wird durch den Inhalt des PDSR 36 bestimmt. Diese Programmsilbe ist ein Teil eines Programmsegments, das in dem Programmpuffer 44 gespeichert ist, bei dem es sich um einen örtlichen, zu- " gehörigen, bzw. angeschlossenen Arbeitsspeicher handelt. Der Programmpuffer 44 füllt sich automatisch selbst wieder auf, wenn er feststellt, daß der Programmstring bzw. die Programmfolge zu Ende geht. Bei einem Richtungswechsel in dem Programmstring, der entweder durch Prozedureinsprünge oder Verzweigungen hervorgerufen wird, wird der Programrapuffer 44 assoziativ überprüft, um festzustellen, ob der Beginn des neuen Programmsegmentes, das ausgeführt werden soll, bereits im Programmpuffer 44 vorhanden ist. Bei der Zwischenschaltung und dem Herausschalten (Einnisten und Ausnisten) des PD-Steuerregisters 36 für einen Prozedureinsprung und -aussprung und Schleifensteueroperatoren A wird der PD-Steuerstapel 37 verwendet, bei dem es sich um einen weiteren örtlichen Arbeitsspeicher handelt. Der PD-Steuerstapel 37 verbindet sich selbsttätig mit dem Arbeitsspeicher der Ebene 1, um sich zu entleeren und erneut aufzufüllen.
Programmoperatoren werden aus dem Programmstring durch die Programmwalzenschaltung 43 herausgezogen und ins Programmausführungsregister 45 gebracht. Namen (wie oben erwähnt) werden aus dem Programmstring durch die Programmwalzenschaltung 43 herausgezogen und in den Attributstapel
10982 4/1671
der Strukturpuffer 40 zur Auswertung übertragen. Literale werden durch die Programmwalzenschaltung 43 aus dem Programmstring herausgezogen und in die Wertestapelpuffer oder den Namenstapel der Strukturpuffer 40 gebracht.
Die jeweiligen Programmoperatoren gehören vier allgemeinen Klassen an, wie es in Fig. 2 dargestellt ist. Diese Klassen sind: Literaloperatoren, Rechenoperatoren, Namenoperatoren und allgemeine Operatoren.
Nach Fig. 9 beginnt jede Klasse von Operatoren mit einer 8-Bit-Silbe. Literal- und Namenoperatoren können in 4-Bi t-Inkrementell bis auf eine Maximal Silbengröße von 32 Bits bei Namenoperatoren und 40 Bits bei Literaloperatoren zunehmen. Die ersten beiden Bits des Operationscode bestimmen, welche Operatorklasse die Programmsilbe enthält. Wenn die Programmsilbe einen Literaloperator enthält, bestimmen die nächsten beiden Bits die Größe des Literais. Das Literal kann 4, 8, 16 oder 32 Bits lang sein. Die nächste 4-Bit -Gruppe der Literalsilbe bestimmt den Ziel- oder Bestimmungsort und das Rechenformat des Literais. Das erste Bit dieser Gruppe bestimmt, ob das Literal in den Namenstapel oder in den Wertestapel eingegeben werden soll. Die übrigen drei Bits enthalten den Formatselektor, der als Index des Rechenformatvektors verwendet wird. Diese Selektion bestimmt das Rechenformat des Literais. Der Rest der Programmsilbe enthält das Literal.
Wenn die ersten zwei Bits des Operationscode einen Rechenoperator bestimmen, dann bestimmen die übrigen sechs Bits die auszuführende Rechenoperation. Wenn die ersten
10Ö824/1671
beiden Bits des Operationscode einen Namenoperator bestimmen, dann bestimmen die nächsten fünf Bits die auszuführende Operation. Die übrigen Bits geben an, ob das benannte Objekt oben in der Namenstapelscheibe enthalten ist, und die nächsten 8 Bits geben die Verschiebung oder Versetzung des Objekts in der Scheibe an.
Im folgenden wird die Schaltungsanordnung des Programmteils 25 beschrieben. Der Programmpuffer 44 dient zur Verringerung von Hauptspeicherauslesungen durch Schaf- M fung von Programmstrings für das Prozessorwerk vor dem Auslösen einer Speicherauslesung. Die angeschlossene Hardware des Programmpuffers 44 soll diesen Puffer überprüfen, um festzustellen, ob die Verzweigungsadresse oder die benachbarte Programmadresse in dem Programmpuffer vorhanden ist. Der Puffer 44 soll eine maximale Speicherpufferkapazität von 8 Wörtern aufweisen, von denen jedes 64 Bits breit sein soll.
Die Programmwalzenschaltung 43 führt folgende Funktionen durch: Das Ausrichten von Eingangssignalen aus dem Programmpuffer 44, das Auswählen (die Selektion) und Trennung eines 8-Bit-Operationscode, das Auswählen und Tren- % nen eines Literais oder Namens veränderbarer Länge und das Aufteilen von Ausgangsimpulsen des Schiebeimpulsgebers auf alle natürlichen Bestimmungsorte. Während der Ausrichtung von Eingangssignalen aus dem Programmpuffer sollen die Eingangssignale aus zwei 64-Bit-Wörtern bestehen.
Das Programmsteuerwerk 46 bildet die Dekodier- und Kodiervorrichtung, Steuervorrichtungen und Taktgebervorrichtungen, die zur Durchiü*\mng ihrer jeweiligen Funktionen
109824/1671
in dem Programmteil 25 erforderlich sind. Zu diesen Funktionen gehört die Bestimmung der Klasse der Operatoren, die durch die Programmsübe vorgeschrieben sind, und auch die Bestimmung der Literalgröße, die durch den Literaloperator vorgeschrieben ist. Eine weitere Funktion ist die Übersetzung eines durch den Namenoperator vorgeschriebenen Namens in ein Terminalbezugszeichen. Das Programmsteuerwerk 46 bestimmt auch die Operation, die durchgeführt werden soll und durch einen Namenoperator oder einen allgemeinen Operator vorgeschrieben ist. Ferner steuert es das Durchlassen des Rechenoperationsfeldes des Rechenoperators ins Rechenwerk 20 nach Fig. 2. Eine weitere Funktion besteht darin zu gewährleisten, daß die erforderliche Prozessorumgebung vor der Ausführung der Programmsilbe vorhanden ist. Das Programmsteuerwerk 46 wirkt auch mit dem Unterbrechungsteil 26, den (nicht dargestellten) Rechensteuerwerken und den Deskriptorsteuerteilen 39 zusammen, um zu gewährleisten, daß die richtige Reihenfolge der Operationen eingehalten wird.
Der Unterbrechungsteil 26 erhält extern erzeugte Unterbrechungen und extern oder intern erzeugte Fehler, um diese Fehler in Übereinstimmung mit einem programmierbaren Vorrat aus Masken zu überprüfen. Der Programmteil soll von Unterbrechungen und unmaskierten Fehlern unterrichtet werden, um Änderungen des Programms, das gerade ausgeführt wird, durchzuführen. Die geeignete Unterbrechungs- oder Fehlerroutine kann aufgerufen werden. Der Interpretierer-Unterbrechungsteil 26 soll den Programmteil 25 auch informieren, wenn eine bedingte Fehlersituation auftritt.
4/1671
C. Interpretierer-Strukturpuffer
Jeder Prozessor in dem nach der Erfindung ausgebildeten System läßt sich funktionell so beschreiben, als benutze er lediglich jene Strukturen, die der Kernteil 23 auswerten kann. Dadurch kann die Prozessorstruktur als Struktur bestimmt werden, die im Speicher der Ebene 1 (Hauptspeicher) enthalten ist. Dies gewährleistet praktisch, daß die Verwendung oder Menge der im Prozessor verwendeten örtlichen Pufferkapazität den funktionellen Betrieb der Maschine nicht beeinflußt.
Die hauptsächlichen Prozessorstrukturen sind die Hilfsmittelsteuerstruktur, die Prozedursteuerstruktur, die Koroutinesteuerstruktur und die Programmsteuerstruktur. Diese Strukturen stellen alle Vorrichtungen dar, die zur Leitung der jeweiligen Speieherebenen, Zuweisung von Prozessoren und die interne Steuerung eines Einsprungs oder einer Rückkehr in eine !Coroutine oder eine Prozedur erforderlich sind.
Das nach der Erfindung ausgebildete System kann als eine Gruppe oder ein Vorrat von Hilfsmitteln bezeichnet werden, die einer Anzahl gleichzeitiger bzw. miteinander konkurrierender Prozesse zur Verfügung stehen. Die Leitung und Zuweisung dieser Hilfsmittel ist auf eine Gruppe von Steuerprozessen aufgeteilt, von denen jeder eine Untergruppe von Prozessen leitet. Die Verteilung der Hilfsmittel auf die verschiedenen Prozesse, die durch einen bestimmten Prozess erzeugt und gesteuert werden,.erfolgt durch die Hilfsmittelsteuerstruktur.
109824/1671
?■*■■■■$■
05Α835
- 26 -
Für jeden Prozessor in dem System ist nur eine Hilfsmittelsteuerstruktur vorgesehen. Während der Prozessor von Prozeßraum zu Prozeßraum weitergeht, speichert die Struktur eine Historie der Hilfsmittel, die durchlaufen werden. Wenn ein Prozeß aufgerufen ist, wird die Untergruppe der Hilfsmittel, die der Aufrufer durchlaufen will, zur Benutzung durch den aufgerufenen Prozeß in die Hilfsmittelstruktur gebracht. Der aufgerufene Prozeß kann diese Hilfsmittel benutzen, braucht sie jedoch nicht zu ändern. £. Wenn ein Prozeß in denjenigen Prozeß zurückkehrt, der ihn ausgelöst hat, werden die Hilfsmittel, die diesem Prozeß zugewiesen wurden, aus der Hilfsmittelstruktur entfernt.
Die verschiedenen Hilfsmittel, die durch Einsprünge oder Eingaben in die Hilfsmittelsteuerstruktur vorgeschrieben bzw. angegeben werden können, umfassen Segmentbehälter im Speicher der Ebene 1, Segmentbehälter im Speicher der Ebene 2, Speicher der Ebene 3 (die verschiedenen EA-Geräte), eine Vorschrift der Prozessorzeit, eine Vorschrift der Fehlermasken und die Fehler- und Unterbrechungsregister.
Die Hilfsmittelstruktur sorgt für einen Schutz gegen die W unbefugte Benutzung von Hilfsmitteln durch einen Prozeß und den Wechsel von Hilfsmitteln, die nicht zu einem bestimmten Prozeß gehören. Dies wird dadurch erreicht, daß die Hilfsmittelsteuerstruktur außerhalb des Adressenraumes aller Prozesse, mit Ausnahme des Interpretierermanagementprozesses, gelegt wird.
Die Prozedursteuerstruktur dient zum Steuern der Zuweisung des Speichers der Ebene 1 oder Durchlassen von Parametern zu Prozeduren und Funktionen, zum Zuordnen von Speicherraum für örtliche Variable, die in den Prozeduren,
109824/1671
- 27 -
Funktionen und Blöcken verwendet werden. Eine derartige Struktur kann durch mehrere Sprachen, die auf einer höheren Ebene liegen, wirksam verwendet werden.
Die Prozedursteuerstruktur besteht aus einem Stapel (Kellerspeicher) zum Speichern von Deskriptionen (Beschreibungen bzw. Darstellungen) der Datenstrukturen, die von einem Programm benutzt werden, und einem Anzeigestapel (Sichtwiedergabestapel) zum Steuern der speziel- μ len Deskriptionen, die dem Programm gerade (laufend) sichtbar sind. Die Prozedursteuerstruktur soll aus drei zusammenhängenden Stapeln bestehen: Einem Namenstapel, Anzeigestapel und Wertstapel. Der Zusammenhang dieser Stapel ist bei einem Prozeduraufruf und einer Prozedurrückkehr ersichtlich, wenn die Adressierungsuragebung der Prozedur ausgebildet sein muß. Die jeweiligen Stapel befinden sich im Speicher der Ebene 1, obwohl für diese Stapel jeweils Puffer in dem Strukturpufferteil 24 vorgesehen sind, wie es anhand der Fig. 2, 3 und 8 beschrieben wurde. Der Namenstapel enthält die Deskriptionen, Parameter und Zielorte, die bei verschiedenen Prozeduren, Funktionen und Blockebenen erforderlich sind. In dem |j
Namenstapel werden Scheiben ausgebildet, so daß Parameter und Zielorte durch den Namen adressiert werden können. Jede Scheibe enthält Deskriptionen von Parametern für eine bestimmte Prozedur, Funktion oder für Deskriptionen von Zielorten für einen bestimmten Block. Jede Scheibe ist als eine lexikalische Ebene definiert oder ausgebildet. Eine Deskription jeder Scheibe ist in dem Anzeigestapel enthalten. Ein typischer Name besteht aus einer lexikalischen Ebene und einer Verschiebung, d.h. einem Index in den Anzeigestapel, der die richtige Namenstapelsei ^ibe lokalisiert, und einem Index
109824/1671
in die Namenstapelscheibe, der die richtige Deskription in dem Namenstapel lokalisiert. Scheiben können durch Prozeduroperatoren oder durch Prozeduraufrufe und -rticksprünge erzeugt und zerstört werden. Eingaben oder Einsprtinge in den Namenstapelbereich zwischen dem oberen Stapel und der obersten Scheibe werden zur Ausdrucksauswertung angewandt. Diese Eingaben oder Eingänge sind nur auf der Basis "der letzte hinein, der erste hinaus" adressierbar. Die oberen vier Eingaben in den Ausdrucksauswertungsbereich können in einem örtlichen Speicher für schnellen Zugriff zwischengespeichert werden.
Wie in Fig. 8 dargestellt, umfaßt der Namenstapelpuffer vier Wörter mit je 128 Bits. Der Puffer wird auf der Basis der Benutzung dynamisch gesteuert. Die Größe dieses Arbeitsspeichers begrenzt die Breite des Namenstapels auf 128 Bits.
Der Anzeigestapel enthält Deskriptionen der Namenstapelscheiben. Diese Deskriptionen werden durch eine aufgerufene Prozedur oder den Scheibenoperator in den Anzeigestapel eingegeben* Diese Deskriptionen werden durch den Prozedurrücksprung oder den Entscheibungsoperator aus dem Anzeigestapel entfernt. Jede Eingabe in den Anzeigestapel, der angewählt wird, wird überprüft, um festzustellen, ob sie im örtlichen, zugehörigen Arbeitsspeicher des Anzeigestapels festgehalten wird. Wenn sie nicht festgehalten wird, dann wird diese Eingabe aus dem Arbeitsspeicher der Ebene 1 geholt und zum Ersetzen der ältesten Eingabe in den örtlichen Arbeitsspeicher verwendet. Wie in Fig. 8 dargestellt ist, enthalten die Anzeigepuffer des örtlichen Arbeitsspeichers acht Wörter mit je 64 Bits.
109824/1671
Der Wertstapel speichert Rechenoperanden, deren Benutzung unmittelbar bevorsteht oder die das Ergebnis einer Rechenoperation darstellen. Jede Eingabe in den Wertestapel ist durch einen Datendeskriptor im Namenstapel gekennzeichnet. Die Werte können explizit benannt sein. Der Name bezeichnet einen Deskriptor im Namenstapel. Diese Deskription bestimmt wiederum die gewünschte Eingabe in den Wertstapel. Rechenoperatoren, die Werte anfordern, veranlassen eine Überprüfung des oberen Teils des Namenstapels, um festzustellen, ob er einen Wert kennzeichnet oder dar- M stellt. Programmoperatoren, die den Inhalt des Namenstapels beeinflussen, beeinflussen auch den Inhalt des Wertstapels, wenn die Namenstapeleingabe den Wertstapel bezeichnet.
Der Wertstapel enthält Scheiben, die gleichzeitig mit den Namenstapelscheiben erzeugt und zerstört werden. Diese Scheiben (oder Abschnitte) enthalten Operanden, Konstanten und Teilergebnisse einer Programmausführung in verschiedenen lexikalischen Ebenen.
Irgendeine oder alle der vier obersten Eingaben in den M
Wertstapel können in dem Wertstapelpuffer 42 festgehalten sein, wie es in Fig. 3 dargestellt ist. Der Puffer 42 ist ein örtlicher Arbeitsspeicher mit vier Wörtern aus jeweils 256 Bits. Die Wortgröße mit 256 Bits begrenzt die Größe eines einzelnen Operanden für eine Rechenoperation. Der Wertstapelpuffer verbindet sich selbsttätig mit dem Wertstapel im Speicher der Ebene 1.
Die Koroutinesteuerstruktur steuert alle Routinen, die gleichzeitig auftreten können, muß jedoch konsekutiv durchlaufen werden. Jede Koroutine ist durch eine Proze-
109824/1671-
dursteuerstruktur und eine Programmsteuerstruktur bestimmt, deren Name im Stapel der augenblicklichen (laufenden) Struktur enthalten ist. Die Strukturdeskriptoren befinden sich in aufeinanderfolgenden Plätzen des Namenstapels. Diese Gruppe aufeinanderfolgender Plätze (oder Zellen) wird Koroutinesteuerfeld genannt. Dieses Feld für die Routine, die gerade ausgeführt wird, befindet sich im Deskriptorpuffer 40, wie es in den Fig. 3 und dargestellt ist.
Die Koroutinestruktur ist mit einer Koroutineanzeigedeskription (für Sichtanzeige) versehen, die in einem festen Platz in einem Prozeßumgebungsbereich gespeichert ist. Die Koroutineanzeigedeskription bestimmt die Koroutineanzeige, bei der es sich um einen Stapelzeiger handelt. Die oberste Singabe in die Koroutineanzeige bestimmt die aktive Koroutine. Die oberste Eingabe soll eine Deskription der Hauptanzeige und einen Namen (das heißt eine lexikalische Ebene und Verschiebung) enthalten, der, wenn er auf die Hauptanzeige angewandt wird, das Koroutinefeld der aktiven Koroutine findet. Die übrigen Eingaben in die Koroutineanzeige bestimmen die Vorgänger der aktiven Koroutine.
Eine Koroutine kann durch einen Koroutineaufrufoperator aufgerufen werden. Dieser Operator hat den Namen des Koroutinesteuerf eldes der Koroutine, die aufgerufen werden soll. Dieser Name ersetzt den augenblicklichen Namen in der oberen Eingabe der Koroutineanzeige. Die Hardware-Schaltung speichert das Koroutinesteuerfeld der vorliegenden Koroutine wieder im Namenstapel der Hauptanzeige ab. Das neue Koroutinesteuerfeld wird jetzt in der Deskriptorpufferstruktur festgehalten.
109824/1671
Der Koroutxneauslösungsoperator bildet eine neue Familie von Koroutinen, und zwar dadurch, daß er eine neue Eingabe in den oberen Teil der alten Koroutineanzeige bringt. Der Koroutineendeoperator entfernt die augenblickliche Familie von Koroutinen durch Entfernen der oberen Eingabe aus der Koroutineanzeige. Wie bereits bei der Beschreibung von Fig. 8 erwähnt wurde,, besteht der Koroutinesteuerfeldpuffer aus einem örtlichen Arbeitsspeicher aus 12 Wörtern a 128 Bits und einem zugehörigen Arbeitsspeicher aus 12 Wörtern ά 40 Bits.
Die Aufgabe des Koroutinesteuerfeldpuffers besteht darin, das Steuerfeld der laufenden Koroutine und die Deskriptionen des Hilfsmittelstapels und der Koroutineanzeige festzuhalten. Die Deskriptionen sind Strukturinformationen, die durch den Programmoperator bezeichnet sind, d.h. Strukturen, die von den Programmoperatoren verwendet werden.
Der angeschlossene bzw. zugehörige Speicher 41 nach Fig. 3 enthält die Ebene-1-Adresse jedes Deskriptors, der in dem Puffer enthalten ist, so daß jeder auf den neuesten Stand gebrachte Deskriptor schnell wieder in den Speicher der Ebene 1 zurückgebracht werden kann.
Um zu erläutern, wie der Inhalt der verschiedenen Stapel in den Strukturpufferteil 24 des Prozessors übertragen wird, wird im folgenden auf Fig. 10 Bezug genommen. Die erste Eingabe in den Hilfsmittelstapelabschnitt enthält den Prozeßumgebungsdeskriptor, der dann transferiert wird, um die erste Eingabe in den Hilfsmittelstapelpuffer des Strukturpuffers 40 zu bilden. Die nächsten drei Eingaben, die die Prozessorzustandsinformation enthalten, werden
109824/1671
in die geeigneten Register des Unterbrechungsteils 26 gebracht. Diese Eingaben enthalten den Inhalt für das Prozessormaskenregister, das äußere Maskenregister und einen Dekrementaltaktzähler.
Die übrigen Eingaben, bei denen es sich um Behälter der Ebene 1, Behälter der Ebene 2 und Gerätenummern der Ebene 3 handelt, werden nach einem Zugriff im Hilfsmittelstapelteil des Strukturpuffers 40 festgehalten. Für jede Eingabe in den Puffer 40 gibt es eine entsprechende Eingabe in den zugehörigen Speicher 41. Der Hilfsmittelstapelpuffer im Prozeßzustand ist jetzt gesetzt.
Programmoperatoren
Im folgenden werden die bei der Ausführung der Programmoperatoren angewandten Algorithmen beschrieben. Die Operatoren, die nach der Erfindung verwendet werden, umfassen Hinweisoperatoren (Bezugszeichen), Deskriptoroperatoren, Prozedursteueroperatoren, Koroutineoperatoren und ProzeßrufOperatoren.
Auf diese Operatoren wurde bei der Beschreibung der Interpretiererstrukturpuffer allgemein Bezug genommen. Sie werden beim Indizieren und Übertragen der verschiedenen Datenstrukturen zwischen dem Arbeitspeicher und den einzelnen Prozessoren des Systems verwendet. Neben der Zuweisung der einzelnen Prozessoren sorgen diese Operato ren auch in jedem Prozessor für die interne Steuerung eines Einsprungs und Rücksprungs (bzw. einen Eingang und eine Rückkehr) in Koroutinen und eine Prozedur.
109824/1671
Die Hinweisoperatoren sind Namen-, Wert-, Speicherund Ausführungsoperatoren. Bei einer Nanienoperation wird das Interpretiererattribut ausgewertet. Wenn das Interpretiererattribut Daten sind, bleibt der Deskriptor oben im Namenstapel. Wenn das Interpretiererattribut ein Programm ist, wird eine Funktion aufgerufen. Der Wertoperator wertet die Interpretiererattribute aus. Wenn das Interpretiererattribut Daten sind, werden die Daten aus dem Wertstapel geholt und in diesen eingegeben. Wenn das Interpretiererattribut ein Programm ist, wird eine Prozedur aufgerufen. Der Speicheroperator wird ebenfalls bei der Auswertung von Interpretiererattributen verwendet. Wenn das Attribut ein Programm ist, wird eine Funktion aufgerufen. Ein Datendeskriptor wird als Folge des Funktionsaufrufes zurückgeleitet. Das Format des Wertes wird in das Format des Speicherfeldes umgeformt. Dann wird der Wert in dem durch den Datendeskriptor bezeichneten Feld gespeichert. Der Ausführungsoperator wird zum expliziten Aufrufen von Prozeduren verwendet.
Die Deskriptoroperatoren sind Lade-, Beschreibungs-, Zuweisungs-, Binde-, Verkürzungs- und Endverknüpfungsoperatoren. Der Ladeoperator sucht einen Deskriptor in einem Namenstapel auf und überträgt ihn nach oben in den Namenstapel. Der Beschreibungsoperator wird zur Erzeugung einer Beschreibung (eines Kennzeichens) eines Namens verwendet (d.h., er setzt den Namen in eine Deskription bzw. Beschreibung um). Die Operation setzt die Zugriffattribute in einen Löschzustand und stellt die Interpretiererattribute auf einen Deskriptor ein. Bei dem erzeugten Strukturausdruck handelt es sich um ein Feld, bei dem die Elementadresse und Länge des Namens als Parameter zum Deskriptoroperator durchgelassen werden. Der Zuweisungs-
10 9 8 2 4/1671
operator wird zum Zuweisen von Speicherraum in einer unzugewiesenen Struktur verwendet. Der Bindeoperator wird zum Abbilden einer unzugewiesenen Struktur auf einem zugewiesenen Speicherraum verwendet. Der Verkürzungsoperator wird zur Verringerung der Zugriffwegstrecke einer Deskription verwendet. Der Verkürzungsoperator liest den Namendeskriptor aus und führt den ersten Term des Strukturausdruckes aus, bei dem es sich nicht um eine Segmentnummer auf dem Feld handelt, und ersetzt diesen Term durch einen abgeleiteten Feldausdruck. Der Endverknüpfungsoperator wird zur Berechnung der absoluten Adresse einer Struktur verwendet.
Die Stapeloperatoren sind Verdoppelungs-, Lösch-, Austausch-, Wertstapel-zum-Namenstapel- und Namenstäpel-zum-Wertstapel-Operatoren. Die Funktion des Verdoppelungsoperators besteht in der Verdoppelung der Eingabe in den oberen Teil bzw. oben in den Namenstapel; wenn der Inhalt des Namenstapelscheibensegments einen Hinweis auf ein Wertstapelscheibensegment enthält, wird der Inhalt des Wertsegments ebenfalls verdoppelt. Der Löschoperator löscht die obere Eingabe oberhalb des Namenstapelscheibensegments und auch den Inhalt des Wertstapelscheibensegments wenn ein Hinweis auf dieses erfolgt. Der Austauschoperator tauscht die beiden obersten Eingaben des Namenstapels und auch die beiden obersten Eingaben des Wertstapels aus, wenn ein Hinweis auf diese im Namenstapel enthalten ist. Der Wertstapel-zura-Namenstapel-Operator entfernt die obere Eingabe des Wertstapels und gibt sie oben in den Namenstapel ein. Der Namenstapel-zum-Wertstapel-Operator nimmt die oberste Eingabe des Namenstapels und gibt sie in den Wertstapel ein, und ein Hinweis auf die neue Wertstapeleingabe ersetzt das Original im Namenstapel.
109824/1671
Die Prograramsteueroperatoren umfassen Schleifen-, Schleifenprüf-, Verzweigungs-, bedingte Verzweigungs-, Haltoperatoren und einen Operator "keine Operation". Der Schleifenoperator veranlaßt einen Subroutineaufruf bei einem Unterprogramm, dessen Name genannt ist. Der Schleifenprüf operator wird dazu verwendet, zu bestimmen, ob das Ende der Schleife erreicht worden ist. Der Verzweigungsoperator wertet das Interpretiererattribut des Deskriptors im Namenstapelscheibensegment aus, um den auszulösenden Jj Vorgang zu bestimmen. Der Operator "bedingte Verzweigung" bewirkt eine Änderung oder einen Wechsel in der Programmsteuerung, wenn eine vorbestimmte Bedingung erfüllt ist bzAV. ein vorbestimmter Zustand auftritt. Der Halt-Operator dient als Mittel zum programmatischen Anhalten eines Prozessors. Der Operator "keine Operation" bewirkt, daß das Programmsteuerregister auf den neuesten Stand gebracht und der nächste Operator ausgeführt wird.
Die Prozedursteueroperatoren sind ein Scheibenbildungs-, ein Nicht-Scheibenbildungs- und ein Prozedurrückkehr-Operator. Der Scheibenbildungs-Operator führt eine Eingabe in den Wertstapel durch und löscht den gebildeten ™ Hinweis. Dann führt er eine Eingabe in den Namenstapel durch und speichert den Hinweis oben im Naraenstapel und auch in der Position der nächsten lexikalischen Ebene des Anzeigestapels, auf die das Feld der lexikalischen Ebene im Programmsteuerregister hinweist. Der Nicht-Scheibenbildungs-Operator führt die entgegengesetzte Operation zu der aus, die der Scheibenbildungsoperator ausführt. Der Prozedurrückkehr-Operator wird zum Entfernen örtlicher, veränderbarer Scheiben (bzw. Abschnitte) im Namenstapel und Wertstap^l verwendet.
109824/1671
^ verwendet.
- 36 -
Die Koroutineoperatoren sind ein Koroutineaktivierungs-, ein Koroutineruf- und ein Koroutineende-Operator. Der Koroutineaktivierungsoperator dient zur Bildung einer Gruppe von Koroutinen durch Eingeben des augenblicklichen Anzeigedeskriptors in den Koroutinestapel. Der Koroutinerufoperator bringt das aktive Koroutinesteuerfeld in den Speicherplatz des Namenstapels zurück, und ein neues Koroutinesteuerfeld wird ausgelesen und in dem Deskriptorpufferteil abgespeichert. Der Koroutineende-Operator wird für eine Rückkehr in eine Hauptkoroutine
Die ProzeßrufOperatoren sind ein Prozeßparameteroperator, ein Operator "indirekter Prozeßparameter", ein Prozeßrufoperator und ein Prozeßende-Operator. Der Prozeßparameteroperator leitet Hilfsmittel aus dem Hauptprozeß in einen Unterprozeß. Der Operator "indirekter Prozeßparameter" wird dazu verwendet, Hinweise auf externe Objekte aus einem Hauptprozeß in einen Unterprozeß zu leiten oder zu erzeugen. Der Prozeßrufoperator wird zur Erzeugung einer neuen Hilfsmittelstapelscheibe verwendet. Der Prozeßende-Operator wird zum Entfernen oder Beseitigen einer Hilfsmittelstapelscheibe verwendet.
Dieses neue Informationsverarbeitungssystem kann mithin Funktionen ausüben, die zahlreichen, auf höherer Ebene liegenden Programmiersprachen gemeinsam sind und Infor"-mationsstrukturen mit veränderbarer Länge und Größe benötigen. Jedör Prozessor dieses Multiprozessorsystems enthält verschiedene Strukturpuffer zur Verarbeitung verschiedener. Prozeß- oder Programmstrukturen, die verschachtelt sind, um eine Hierarchie aus Prozessen und Unterprozessen zu bilden. Die Strukturpuffer enthalten Hilfsmittelstapelpuffer, die Hinweise auf Hilfsmittel
10 9 8 2 4/1671
enthalten, die einem gerade zugewiesenen Prozeß zur Verfügung stehen und eine Deskription dieser Prozeßumgebung enthalten, die ihrerseits Steuerinformationen für gerade in der Ausführung befindliche Routinen kennzeichnet. Puffer sind ebenfalls für die verschiedenen Prozeßnamenstapel, die Parameter und Operanden beschreiben bzw. bezeichnen, und auch für die Wertstapel vorgesehen, die diese Operanden zwischenspeichern.
Die Strukturpuffer werden über einen assoziativen (zugehörigen bzw. angeschlossenen) Speicher adressiert, um das Suchen der Puffer für häufig benutzte Eingaben zu gestatten.
Patentanwälte
Dipi.-Ing. Horst Rose Dipl.-Ing. Peter Kose!
10982/. /167 1

Claims (6)

  1. Dipl.-lng. Horst Rose
    Dipl.-lng. Peter Kosel
    Patentanwälte
    3353 Bad Gandersheim
    Hohenhöfen 5 _.,-...,...
    33 Bad Gandersheim, den
    Burroughs öorporation 6, November 1970
    Patentgesuch vom 6. Nov. 1970
    „ . . „ . Akten-lNr. : 788/245
    Patentansprüche
    Prozessor für ein Informationsverarbeitungssystem mit einem Speichersystem, in dem verschachtelte Prozeßstrukturen speicherbar sind, gekennzeichnet durch eine zur Ausführung einer Folge von Programmanweisungen ausgebildete Programmvorrichtung, eine Gruppe von Hinweisstapelpufferregistern zur Aufnahme einer Folge von Hinweisen (oder Bezugszeichen) auf Operanden, die von dem Programm verlangt werden, und eine Gruppe von Steuerpufferregistern zur Aufnahme eines Kennzeichens (einer Beschreibung) der Hinweise, die die Hinweisstapelpufferregister aufgenommen haben.
  2. 2. Prozessor nach Anspruch 1, gekennzeichnet durch eine Gruppe von Wertstapelpufferregistern zur Aufnahme von Operanden, auf die der Inhalt der Hinweisstapelpufferregister hinweist, und ein Anzeigeregister, das an die Gruppe von Hinweispufferregistern angeschlossen ist, um die darin enthaltene Gruppe von Hinweisen anzuzeigen.
  3. 3. Prozessor nach Anspruch 2, gekennzeichnet durch eine Gruppe von assoziativen Speicherregistern, die mit jedem der Hinweispufferregister und dem Steuerpufferregister zur Speicherung von Adressierungsindizes des Inhalts dieser Register verbunden sind.
  4. 4. Prozessor nach Anspruch 3, gekennzeichnet durch eine Vorrichtung zum Adressieren eines der Speicherregister der Steuerregister zur Gewinnung eines Hinweises für eine Übertragung in die Hinweisstapelpufferregister.
    1 098247.1,67 1,
  5. 5. Prozessor nach Anspruch 3, gekennzeichnet durch eine Gruppe von Hilfsmittelpufferregistern zum Speichern von Hinweisen auf Routinen, die der Programmvorrichtung zur Verfügung stehen, und durch eine Gruppe von assoziativen Speicherregistern, die mit den Hilfsmittelpufferregistern zur Speicherung von Adressierungsindizes des Inhalts dieser Register verbunden sind.
  6. 6. Prozessor nach Anspruch 5, gekennzeichnet durch eine Vorrichtung zum Adressieren eines der Hilfsmittelpuffer- ^ Speicherregister zur Gewinnung eines Routine-Hinweises für eine Übertragung in das Steuerpufferregister.
    7. Prozessor nach Anspruch 2, gekennzeichnet durch ein Deskriptorregister zur Aufnahme des Hinweises auf einen Operanden, der gerade verarbeitet wird.
    8. Prozessor nach Anspruch 7, gekennzeichnet durch eine Gruppe von Deskriptorstapelregistern zur Aufnahme von Hinweisen auf Operanden, die zuvor verarbeitet wurden.
    9. Prozessor nach Anspruch 8, gekennzeichnet durch eine Vorrichtung zum Adressieren der Deskriptorstapelregister ^ zum Auslesen eines Hinweises auf einen vorherigen Operanden.
    10. Prozessor für ein Informationsverarbeitungssystem, dadurch gekennzeichnet, daß der Prozessor Hinweisregister zur Aufnahme einer Folge von Hinweisen (Bezugszeichen) auf Operanden, die von einer Programmfolge gefordert werden, Steuerregister zur Aufnahme eines Kennzeichens (einer Beschreibung) der Hinweise, Hilfsmittelregister zur Aufnahme von Hinweisen auf Routinen, aus denen Programmfolgen gewonnen werden können, eine Vorrichtung zum Adres-
    10 9824/167 1
    sieren eines der Hilfsmittelregister zur Gewinnung eines Routine-Hinweises für eine Übertragung in eines der Steuerregister und eine Vorrichtung zum Adressieren eines der Steuerregister zur Gewinnung von Hinweisen für eine Übertragung in^eines der Hinweisregister enthält.
    11. Prozessor nach Anspruch 10, gekennzeichnet durch eine Gruppe von Wertstapelregistern zur Aufnahme der Operanden und eine Vorrichtung zum Adressieren eines der Hinweisregister zur Gewinnung eines Hinweises auf einen Operanden für eine Übertragung in eines der Wertstapelregister.
    12. Prozessor nach Anspruch 10, gekennzeichnet durch ein Anzeigeregister, das mit den Hinweisregistern verbunden ist, um die darin enthaltene Gruppe von Hinweisen anzuzeigen. ·
    13. Verfahren zum Betreiben eines Prozessors für ein Informationsverarbeitungssystem, wobei der Prozessor Hinweisregister zur Aufnahme einer Folge von Hinweisen (oder Bezugszeichen) auf Operanden, die von einer Programmfolge verlangt werden, Steuerregister zur Aufnahme eines Kennzeichens (einer Beschreibung) der Hinweise und Hilfsmitifeelregister zur Aufnahme von Hinweisen auf Routinen, aus denen Programmfolgen gewonnen werden können, enthält, dadurch gekennzeichnet, daß eines der Hilfsmittelregister zur Gewinnung eines Routine-Hinweises für eine übertragung in eines der Steuerregister adressiert wird und daß eines der Steuerregister zur Gewinnung von Hinweisen für eine Übertragung in eines der Hinweiäregister
    adressiert Wird. Patentanwälte
    Dipl.-lng. Horst Rose Dipl.-Ing. Peter Kosel
    1 0 9 8 2 Λ / 167 1
    L e e r s e 11 e
DE2054835A 1969-11-28 1970-11-07 Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage Expired DE2054835C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US88053669A 1969-11-28 1969-11-28

Publications (2)

Publication Number Publication Date
DE2054835A1 true DE2054835A1 (de) 1971-06-09
DE2054835C2 DE2054835C2 (de) 1983-08-11

Family

ID=25376500

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2054835A Expired DE2054835C2 (de) 1969-11-28 1970-11-07 Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage

Country Status (6)

Country Link
US (1) US3665421A (de)
JP (1) JPS5740530B1 (de)
BE (1) BE758813A (de)
DE (1) DE2054835C2 (de)
FR (1) FR2069371A5 (de)
GB (1) GB1339284A (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4121284A (en) * 1972-09-11 1978-10-17 Hyatt Gilbert P Computerized system for operator interaction
BE789828A (nl) * 1972-10-09 1973-04-09 Bell Telephone Mfg Gegevensverwerkend besturingsstelsel.
FR2253421A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2253425A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2253418A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4073005A (en) * 1974-01-21 1978-02-07 Control Data Corporation Multi-processor computer system
US4369494A (en) * 1974-12-09 1983-01-18 Compagnie Honeywell Bull Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system
US4104718A (en) * 1974-12-16 1978-08-01 Compagnie Honeywell Bull (Societe Anonyme) System for protecting shared files in a multiprogrammed computer
US4099230A (en) * 1975-08-04 1978-07-04 California Institute Of Technology High level control processor
JPS5296836A (en) * 1976-02-10 1977-08-15 Toshiba Corp Multiplex data processing system
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus
US4177514A (en) * 1976-11-12 1979-12-04 General Electric Company Graph architecture information processing system
JPS5362945A (en) * 1976-11-17 1978-06-05 Toshiba Corp Disc address system
US4065810A (en) * 1977-01-26 1977-12-27 International Business Machines Corporation Data transfer system
US4346436A (en) * 1979-03-23 1982-08-24 Burroughs Corporation Interpretive digital data processor comprised of a multi-level hierarchy of processors and having program protection means
US4597044A (en) * 1982-10-14 1986-06-24 Honeywell Information Systems, Inc. Apparatus and method for providing a composite descriptor in a data processing system
US4862351A (en) * 1983-09-01 1989-08-29 Unisys Corporation Method of executing called activities via depictor-linked low level language microcode, hardware logic, and high level language commands; and apparatus for same
US4901225A (en) * 1984-04-09 1990-02-13 Kabushiki Kaisha Toshiba Processing apparatus with hierarchical structure for implementing a machine instruction
US4710868A (en) * 1984-06-29 1987-12-01 International Business Machines Corporation Interconnect scheme for shared memory local networks
US5010482A (en) * 1987-07-02 1991-04-23 Unisys Corp. Multi-event mechanism for queuing happened events for a large data processing system
US5513332A (en) * 1988-05-31 1996-04-30 Extended Systems, Inc. Database management coprocessor for on-the-fly providing data from disk media to all without first storing data in memory therebetween
US5097533A (en) * 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
JPH04100731U (de) * 1991-01-25 1992-08-31
JPH0831041B2 (ja) * 1991-09-06 1996-03-27 インターナショナル・ビジネス・マシーンズ・コーポレイション プログラム条件処理方法およびコンピュータ・システム
US7784051B2 (en) * 2005-11-18 2010-08-24 Sap Ag Cooperative scheduling using coroutines and threads

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1151686B (de) * 1958-08-29 1963-07-18 Ibm Speicherprogrammiertes elektronisches Datenverarbeitungssystem
US3411139A (en) * 1965-11-26 1968-11-12 Burroughs Corp Modular multi-computing data processing system
US3461434A (en) * 1967-10-02 1969-08-12 Burroughs Corp Stack mechanism having multiple display registers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1151686B (de) * 1958-08-29 1963-07-18 Ibm Speicherprogrammiertes elektronisches Datenverarbeitungssystem
US3411139A (en) * 1965-11-26 1968-11-12 Burroughs Corp Modular multi-computing data processing system
US3461434A (en) * 1967-10-02 1969-08-12 Burroughs Corp Stack mechanism having multiple display registers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
In Betracht gezogenes älteres Patent: DE-PS 15 24 103 *

Also Published As

Publication number Publication date
BE758813A (fr) 1971-04-16
DE2054835C2 (de) 1983-08-11
JPS5740530B1 (de) 1982-08-28
FR2069371A5 (de) 1971-09-03
US3665421A (en) 1972-05-23
GB1339284A (en) 1973-11-28

Similar Documents

Publication Publication Date Title
DE2054835A1 (de) Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor
DE2515696C2 (de) Datenverarbeitungssystem
DE2714805C2 (de)
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2410491C2 (de)
DE3638572C2 (de)
DE2054947A1 (de) Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem
DE2417795C2 (de) Datenverarbeitungsanlage
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE2547488C2 (de) Mikroprogrammierte Datenverarbeitungsanlage
DE1928202B2 (de) Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen
DE2720578A1 (de) Rechnersystem mit mehrprogrammbetrieb/mehrprogrammverarbeitung sowie verfahren zum betrieb eines solchen rechnersystems
CH657218A5 (de) Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher.
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2023354A1 (de) Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit
DE2458096C2 (de) Einrichtung zum Laden von Mikroprogrammen in einer mikroprogrammierbaren Datenverarbeitungsanlage
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE1549531A1 (de) Digitale Rechenanlage
DE19848742C2 (de) Registerumbenennung bei einem Prozessor, der Instruktionen ausserhalb der sequentiellen Reihenfolge bearbeiten kann
DE2433436A1 (de) Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer
DE2000608A1 (de) Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage

Legal Events

Date Code Title Description
8125 Change of the main classification

Ipc: G06F 9/46

8128 New person/name/address of the agent

Representative=s name: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING.

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee