DE2054947A1 - Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem - Google Patents

Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem

Info

Publication number
DE2054947A1
DE2054947A1 DE19702054947 DE2054947A DE2054947A1 DE 2054947 A1 DE2054947 A1 DE 2054947A1 DE 19702054947 DE19702054947 DE 19702054947 DE 2054947 A DE2054947 A DE 2054947A DE 2054947 A1 DE2054947 A1 DE 2054947A1
Authority
DE
Germany
Prior art keywords
address
elementary
bit
memory
container
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
DE19702054947
Other languages
English (en)
Other versions
DE2054947B2 (de
DE2054947C3 (de
Inventor
Robert Voss Rehhausser. Frederick Veit Malvern Earnest Elmer Dean Downingtown Gerbstadt Frederick Hugo Berwyn White James Arthur West Chester Pa Bock (V St A ) G06g I 06
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 DE2054947A1 publication Critical patent/DE2054947A1/de
Publication of DE2054947B2 publication Critical patent/DE2054947B2/de
Application granted granted Critical
Publication of DE2054947C3 publication Critical patent/DE2054947C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words

Description

Dipl.-lng. Horst Rose
Dipl.-lng. Peter Kosel Bad Gandersheira, den 6. November 1970
Patentanwälte
Bad Gandersheim
Hoher.höfen 5
Burroughs Corporation Patentgesuch vom 6„ November 1970
BURROUGHS CORPORATION, Detroit, VStA
Adressenvorbereitungseinrichtung und -verfahren und Speicherzugriffanforderungseinrichtung für ein Informationsverarbeitungssystea
Die Erfindung betrifft eine Adressenvorbereitungseinrichtung und ein Adressenvorbereitungsverfahren sowie eine Speicherzugriffanforderungseinrichtung für ein Informationsverarbeitungssystem, das Mit eine» Freifeldspeicher oder Speichereinheiten versehen ist und bei dem es möglich ist, Operanden und Datensegmente von beliebige» Gröfienfor- »at zu verwenden, und die Adressen dynamisch auszubilden.
Digitale GroBrechenanlagen oder -datenverarbeitungssysteee werden häufig zur Multiprogrammverarbeitung verwendet. Das heiet, si· haben die Möglichkeit, mehrere voneinander unabhängige Programme gleichzeitig ablaufen zu lassen. Dazu
109824/1675
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, Speicherzuordnung oder Speieherzuweisung 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 auegelegt 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/1675
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, die für 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.
109824/1675
Man hat verschiedene Programmiersprachen oder Ursprungssprachen entwickelt, die dem Benutzer die Aufstellung von Programmen ohne spezielle Kenntnis der jeweiligen Maschinensprache gestatten. Zu diesen verschiedenen Programm!ersprachen gehören Fortran, Cobol, Algol und PL/1. Sin 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 es 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
1Ö9824/167S
ist besonders zur Lösung verschiedener Aufgaben vorteilhaft, für die verschiedene Programmsprachen und Datenformate entwickelt wurden.
Bei der Bearbeitung von Aufgaben, bei denen große Datenmengen zu verarbeiten sind, benötigen bekannte digitale elektronische Rechenanlagen eine verhältnismäßig lange Zeit für die Erstellung (Vorbereitung) indirekter Adressen, wie sie für einen Zugriff zu verschachtelten Dateien und Aufzeichnungen bei Reservierungssystemen und dergleichen benötigt werden. Es ist daher vorteilhaft, die Speicheradressenvorbereitung bzw. -erstellung auf den Prozessor zu übertragen, so daß die Erstellung von Programmen für diesen Zweck entfallen kann.
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.
Eine Lösung dieser Aufgabe bei einer Adressenvorbereitungseinrichtung für ein Informationsverarbeitungssystem mit einem Speichersystem xur Aufnahm« veränderbarer Behitlterdatenstrukturen, die aus elementaren Dmtenstrukturen aufgebaut und jeweils durcb eine Adressen- und
10982A/167S
eine Längenzahl gekennzeichnet sind, wobei die elementaren Datenstrukturen durch Elementaradressen in der Behälterstruktur und eine Elenentarlängenzahl gekennzeichnet sind, ist nach der Erfindung gekennzeichnet durch eine Registervorrichtung zur Aufnahme der Behälterstrukturadresse und der Elementarstrukturadresse und eine Verknüpfungsvorrichtung zur Bildung einer absoluten Elementarstrukturadresse in Abhängigkeit von der Behälterstrukturadresse und der Elementarstrukturadresse.
Eine andere Lösung dieser Aufgabe bei einer Adressenvorbereitungseinrichtung für ein Informationsverarbeitungssystem mit einem Speichersystem zur Aufnahme veränderbarer Behälterdatenstrukturen, die aus elementaren Datenstrukturen aufgebaut und jeweils durch eine Bitadressen- und Bitlängenzahl gekennzeichnet sind, wobei die elementaren Datenstrukturen durch Elementarbitadressen in der Behälterstruktur und eine Elementarlängenbitzahl gekennzeichnet sind, ist nach der Erfindung gekennzeichnet durch eine Registervorrichtung zur Aufnahme der Behälterstrukturbitadresse und der Elementarstrukturbitadresse und durch eine Verknüpfungsvorrichtung zur Bildung einer absoluten Elementarstrukturbitadresse in Abhängigkeit von der Behälterstrukturadresse und der Elementarstrukturadresse.
Bei einer Speicherzugriffanforderungseinrichtung für ein Informationsverarbeitungssystem mit einem Speicher, der __ zur Speicherung verschachtelter Datenstrukturen ausgebildet ist, ist die Lösung »ach der Erfindung gekennzeichnet durch ein· Registerrorrichtung zur Aufnahm« einer Deakription einer Hauptdatenatrukturadresse und einer
109824/16?S
Adresse einer Datenunterstruktur in der Hauptstruktur und eine Verknüpfungsvorrichtung zur Bildung einer absoluten Adresse von den Unterstrukturen in Abhängigkeit von den Haupt- und Unterstrukturadressen.
Eine andere Lösung bei einer Speicherzugriffanforderungseinrichtung für ein Informationsverarbeitungssystem mit einem Speicher, in dem verschachtelte Datenstrukturen speicherbar sind, ist nach der Erfindung gekennzeichnet durch eine Steuervorrichtung zur Aufnahme einer Deskription einer Hauptdatenstrukturadresse, einer Adresse einer Datenunterstruktur in der Hauptstruktur und von Indizes, die die Art und Charakteristik der Hauptstruktur anzeigen, und mehrere Pufferregister zur Aufnahme einer Folge dieser Deskriptionen zur späteren Übertragung in die Steuerregistervorrichtung, wobei die Steuervorrichtung so ausgebildet ist, daß sie die Indizes von einer Deskription zu einer anderen überträgt.
Das Adressenvorbereitungsverfahren für ein Informationsverarbeitungssystern mit einem adressierbaren Speicher, in dem verschachtelte Datenstrukturen speicherbar sind, besteht nach der Erfindung darin, daß eine Deskription (ein Kennzeichen) einer Hauptdatenstrukturadresse, einer Adresse einer Datenunterstruktur und die Art und Charakteristik der Hauptstruktur anzeigende Indizes aufgenommen und die Hauptadresse und die Unterstrukturadresse zur Bildung einer absoluten Unterstrukturadresse verknüpft werden.
Weiterbildungen der Erfindung sind in Unteransprüchen gekennzeichnet.
109Ö24/167S
Dies bedeutet, da es für einen Zugriff zu verschachtelten Feldern, Aufzeichnungen und anderen Strukturen vorteilhaft ist, die gewünschten Elemente nach der Hauptstruktur zu adressieren, in denen die Elemente enthalten sind, daß die Speicheradressen für irgendein bestimmtes Element eines Feldes veränderbarer Länge, das in irgendeinem Teil des Systemspeichers enthalten sein kann, dynamisch vorbereitet bzw. erstellt werden. Jedes gewünschte Element wird durch einen Deskriptor (auch fc Deskription oder Kennzeichen genannt) gekennzeichnet (oder vorgeschrieben), der die gesamte Information enthält, die für diese Kennzeichnung notwendig ist, und das System ist alt einem Auswerteteil versehen, der in der Lage 1st, den Deskriptor auszuwerten und diejenige Information herauszuholen, die zur Bildung des Steuerwortes erforderlich ist, das zum Adressieren des Systemspeichers verwendet wird. Wegen der dynamischen Deskriptorauswertung oder Speicheradressenvorbereitung, brauchen absolute Adressen nicht eher erzeugt zu werden, als bis sie benötigt werden. Das angewandte Verfahren und die verwendete Einrichtung gestatten ferner den Zugriff zu einer Hierarchie verschachtelter Strukturen in dem Systemspeicher.
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 1st eine schematische Darstellung des Interpretiererteils des Prozessors.
100824/10*5
Fig. 4 ist eine Darstellung des nach der Erfindung angewandten Deskriptorforaats.
Fig. 5 ist eine Darstellung von Strukturausdrucksformaten.
Fig. 6 ist eine Darstellung einer Folge (auch Sequenz oder String genannt) von Strukturausdrucken, die in eines Deskriptor vorkommen können.
Fig. 7 ist eine Darstellung des Namenformats.
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 de» Prozessor.
Fig. 11 ist eine schematische Darstellung eines Speicherwerk» (Arbeitsspeicherwerks) nach Fig. 1.
Fig. 12 ist eine schematieche Darstellung einer Einheit des Arbeitespeichers nach Fig. 11.
Fig. 13 ist ein· echematische Darstellung einer Feldtrennungeeinheit nacb FIf. 12.
Fig· 14 ist «la· Darstellung der Verbindungsvorrichtung swiechen einer Arbeiteepeichereinbeit und einer FeIdtrennungeeiaheit.
1 09824/ 1675
Fig. 15 ist eine Darstellung einer Verbindungsvorrichtung zwischen einer Feldtrennungseinheit und einer Anforderungsvorrichtung.
Fig. 16 ist eine schematische Darstellung der Arbeits-•peicher-Verbindungsvorrichtung eines Prozessors nach Fig. 2.
Fig. 17 ist eine Darstellung des Elementsteuerwortformats und
Fig. 18 ist eine Darstellung eines Arbeitsspeichersteuerwortformats.
Multiprozess-Systeme und MuItiprogramm-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
Pffozefihierarchie aufstellen. Der Begriff "ProzeA" kann als eine Assoziierung zwischen einem Prozessor und Adres- senraum definiert werden. Der Adressenraum ist die Gruppe aller Speicher, die durch diesen Prozeß zugänglich sind« Der gesamte in dem System zur Verfügung stehend· Spei cherraum kann so betrachtet werden, als sei in ihm ein Globalprozed gespeichert, bei dem es eich um de» Stammvater aller anderen Prosesse und ünterprosesse in dem System haadelt. Ein derartiger Qlobalproxei kann so betrachtet werden, als enthalte er das gesamte Betriebs« system alt Uberwachungaprogrammen, Dienstprogrammen und
109824/1675
Kompilierern sowie den verschiedenen Benutzerprogrammen.
Der Adressenraum des Systems nach der Erfindung erstreckt sich über alle Speicherebenen einschließlich den Hauptspeicher und einen Hilfe- 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 gesaraten 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ßhierarchie 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ß fibergeht, 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 Einsparungen in jede der Hilfs- ' mittelstrukturen hat.
109824/1675
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. Ia 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 EA-Steuerwerke 18 (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 14 (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 dich 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
10 9 8 2 4/167 S
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 Speicherwerken 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 Ausführungsgeschwindigkeit 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
109824/1676
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 Programastring aus. Durch den Kernteil 23 werden Deskriptoren, die in dem Programmstring in Abhängigkeit von dem Prograamoperator, der gerade ausge- f fü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 Unterbrechungsteil 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 alt Hilfe von Strukturoperatoren, die speziell für ein wirksames Management von Daten und Programmstrukturen ausgelegt sind, und alt Hilfe von Programmoperatoren übernimmt, die so ausgewählt sind, daS sie eine ein fache Verwirklichung auf höherer Ebene liegender Sprachen gestattet. Die Steuerinformation wird, wie dies erforderlich ist, an das Rechenwerk und über die Speicherverbin dungseinheit 22 an das Speicherwerk verteilt.
109824/167
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/1675
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 Bufausdrü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 Anwä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-Zusammensetzunge· 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 Programmwalzehschaltung 43 und dem Rechenwerk 20, wie es In Fig. 2 dar-
109824/1675
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.
Dmr Strukturausdruck des Deskriptors besteht aus einem Zuordnungsbit, mn 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.
109824/1675
Der Strukturzustand enthält Adressen- und Längenfelder. Die Länge der Felder im Strukturzustand wird durch die Adressenfeidlänge des Strukturausdrucks vorgeschrieben. Die erste Anweisung des Strukturausdruckes muß eine Segnentnummer bestimmen. Diese kann entweder explizit mit einer Segaentanweisung 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 betriebsartenabhä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 zuordnungsfthigen.Struktur auftreten.
Jede der Strukturen im Speicher (Arbeitsspeicher) kann als in einem Adressenraum enthalten angesehen werden, der durch eine Adresse und eine Lunge bestimmt ist. Bei der Strukturauadrucksauswertung arbeitet also jede Anweisung nach der Anfangaanweisung in diesem Ausdruck auf eine Behälteradresse, die is Behllteradressenstapel 32 nach
1098ΪΑ/167Β
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 Bite 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 Strukturausdrücke, und sie erhalten Parameter aus dem Wertstapel über Wertstapelpuffer 42 und die Programmwalzenschaltung 43. Die 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 EIementstapel leer, während die Behälterstapel ein Teilbezugszeichen für das Objekt aufweisen. Das Teilbezugs-
109824/1675
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 zusanmen 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 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 Deskriptorauswertung). Der Übergang
109824/1675
in eine Subroutine, Prozedur, Funktion oder Schleife bewirkt, daß die Programmausführungsinformation aus dem PDSR ins PDSS übertragen wird. Dieser Einsprung wird dann im PDSR festgehalten. Eine Prograeaverzweigung 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-Speieher. 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 kennzeichnen 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/1675
_ 22 -B. Interpretierer-Programmteil
Nach der Beschreibung der Deskriptorauswertung wird nun die Ausführung des Programs 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 bestirnt. Diese Programmsilbe ist ein Teil eines Programmsegaents, das in den Programmpuffer gespeichert ist, bei dem es sich um einen örtlichen, zugehörigen, bzw. angeschlossenen Arbeitsspeicher handelt. Der Programmpuffer 44 füllt sich automatisch selbst wieder auf, wenn er feststellt, daß der Programmstring basw. die Programmfolge asuende geht. Bei einem Richtungswechsel in dem Programmstring, der entweder durch Prozedureinsprünge oder Verzweigungen hervorgerufen wird, wird der Programmpuffer 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
" 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
109824/1675
der Strukturpuffer 40 zur Auswertung übertragen. Literale werden durch die Programmwalzenschaltung 43 aus dem Programmstring herausgezogen und in die Wertestapelpuffer oder den Namensstapel 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-Bit-Inkrementen bis auf eine Maximalsilbengröß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 Literals!Ibe 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 Rechenfonaatvektors 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
1 09824/1675
2054347
beiden Bits des Operationscode einen Namenoperator best innen f 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 Programmteil· 25 beschrieben. Der Programmpuffer 44 dient zur Verringerung von Hauptspeicherauslesungen durch Schaffung von Programmetringe 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 durchi Das Ausrichten von Singangssignalen aus dem Programmpuffer 44, das Auswählen (die Selektion) und Trennung eines 8-Blt-Operationscode, das Auswählen und Trennen eines Literals oder Namens veränderbarer Länge und da« Aufteilen von Ausgangeimpulsen des Schiebeimpulsgebers auf alle natürlichen Bestimmungsorte. Während der Ausrichtung von Singangssignalen aus dem Programmpuffer •ollen die Eingangssignal au· zwei 64-Bit-Wörtern bestehen.
Das Programmeteuerwerk 40 bildet die Dekodier- und Kodiervorrichtung, Steuervorrichtungen und Taktgebervorrichtungen, 41 e mr Durchführung larer jeweiligen Funktionen
1 09824/1675
in dem Programmteil 25 erforderlich sind. Zu diesen Funktionen gehört die Bestimmung der Klasse der Operatoren, die durch die Programmsilbe vorgeschrieben sind, und auch die Bestimmung der Literalgröße, die durch den Literaloperator vorgeschrieben ist. Sine weitere Funktion ist die übersetzung eines durch den Namenoperator vorgeschriebenen Hamens 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 dee Programme, das gerade ausgeführt wird, durchzuführen. Die geeignete Unterbrechung»- oder Fehlerroutine kann aufgerufen werden. Der Interpretierer-Unterbrechungsteil 26 soll den Programmteil 25 auch informieren, wenn eine bedingte Fehlersituation auftritt.
109824/1675
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 funktioneilen 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 Speicherebenen, Zuweisung von Prozessoren und die interne Steuerung eines Einsprungs oder einer Rückkehr in eine Koroutine oder eine Prozedur erforderlich sind.
Das nach der Erfindung ausgebildete System kann als eine Gruppe oder ein Vorrat von Hilfsmitteln bezeichnet werden, die einerAnzahl 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 Hilfemittelsteuerstruktur.
109824/1675
Für jeden Prozessor in den System ist nur eine Hilfsmittelsteuerstruktur vorgesehen* Während der Prozessor von Prozeßrau» 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 Ibeae 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 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 Prozedursteverstruktur dient sum Steuern der Zuweisung des Speichers der Sbene 1 oder Durchlassen von Parametern zu Prozeduren und Funktionen, zum Zuordnen von Speicherraum für örtliche Variable, die in den Prozeduren,
109824/1675
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 au© einem Stapel (Kellerspeicher) zum Speichern von Deskriptionen (Beschreibungen bzw. Darstellungen) der Datenstrukturen, die von «inen Program» benutzt werden, und einem Anzeigestapel (Sichtwiedergabestapel) zum Steuern der speziellen 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 Adressierungsumgebung 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 Namenstape1 enthält die Deskriptionen, Parameter und Zielorte, die bei verschiedenen Prozeduren, Funktionen und Blöckebenen erforderlich sind. In dem Namenstapel werden Seheiben 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 Seheibe ist als eine lexikalische Ebene definiert oder ausgebildet. Eine Deskription jeder Scheibe ist in dem Anzeigestapel enthalten. Ein typischer Name besteht au« einer lexikalischen Ebene und einer Verschiebung, d.h. einem Index in den Anzeigeatapel, der die richtige lamenstapelscheibe lokalisiert, und einem Index
109824/1075
in die Namenstapelscheibe, der die richtige Deskription in dem Namenstapel lokalisiert. Scheiben können durch Prozeduroperatoren oder durch Prozeduraufrufe und -rück-Sprünge erzeugt und zerstört werden. Eingaben oder Einsprünge in den Namenstapelbereich zwischen den 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.
10**24/1675
205494?
Der Wertstapel speichert fiechenoperanden, 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 darstellt. 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 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-
10982W1676
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 8 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 Eingabe 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 Koroutinesteuerfeldes der Koroutine, die aufgerufen werden soll. Dieser Nase 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/167S
Der Koroutineauslö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 einen örtlichen Arbeitsspeicher aus 12 Wörtern a 128 Bits und einen zugehörigen Arbeitsspeicher aus 12 Wörtern ä 40 Bits.
Die Aufgabe des Koroutinesteuerfeidpuffers 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 eulgeschlossene 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.
Un zu erläutern, wie der Inhalt der verschiedenen Stapel in den Strukturpufferteil 24 des Prozessors übertragen wird, wird in folgenden auf Fig. 10 Bezug genommen. Die erste Eingabe in den Hilfsmittelstapelabschnitt enthält den Prozeßungebungsdeskriptor, der dann transferiert wird, um die erste Eingabe in den Hilfsmittelstapelpuffer des Strukturpuffers 40 zu bilden. Die nächsten drei Eingaben, die die Prozessorzustandslnformation enthalten, werden
10^624/1675
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.
Das soweit beschriebene Verfahren und Gerät ermöglichen den Zugriff zu einer Hierarchie verschachtelter Strukturen in dem Systemspeicher. Um die Vorteile eines derartigen Systems voll zur Geltung zu bringen, ist es zweckmäßig, einen Freifeldspeicher zu verwenden. Obwohl es unpraktisch ist, einen derartigen Speicher ohne Wortstruktur zu bauen, kann doch ein wortstrukturierter (wortorganisierter) Speicher durch die Anordnung einer Trenneinheit zwischen dem Speicher und dem übrigen Teil des Systems als Freifeldspeicher erscheinen. Sine derartige Einheit muß in der Lage sein, Datensegmente aus einem Speicheranforderungsgerät aufzunehmen und sie zu irgendeiner gewünschten Ausrichtung benachbarter Bitplätze im Speicher zu verschieben. Auf diese Weise können Datenstrukturen irgendeiner Größe im Speicher gespeichert werden, und zwar bei irgendeinem vorgeschriebenen Bitplatz beginnend. Ein derartiges Speichersystem ist unten beschrieben.
- 34 -D. Speicherwerke
Die Hauptaufgabe der Speicherwerke 12 nach Fig. 1 besteht darin, den anfordernden Geräten zu ermöglichen, Informationsfelder irgendwo aus dem oder in das Speichersystem herauszuholen oder einzugeben· Ein Informationsfeld ist als eine Anzahl von Bits definiert, deren Anfangsbitstelle irgendwo im Speichersystem sein kann. Fig. 1 stellt die Beziehung der Speicherwerke 12 zu den anderen 'Geräten des Systems dar. Es gibt drei Arten von anfordernden Geräten: Zentrale Prozessoren 10 (CPM - central processor module), Eingabe/Ausgabe-Steuerwerke 18 (I/O - input/ output) und die Speichererweiterungssteuerwerke 15 (HEC -memory extention controllers). Die maximale Anzahl von Speicherwerken, auf die das System ausgelegt sein kann, ist vorzugsweise 16, und jedes Speicherwerk soll in der Lage sein, jede beliebige Kombination von bis zu maximal 16 anfordernden Geräten zu bedienen. Die Speicherwerke sollen keinen Unterschied zwischen den anfordernden Geräten machen, so daß irgendeine Operation, die für ein anforderndes Gerät ausgeführt wird, für irgendein anderes anforderndes Gerät ausgeführt werden kann.
Wie in Fig. 1 dargestellt ist, bilden vorzugsweise zwei Speichereinheiten 12 (MSU - memory storage unit) in Verbindung mit jeweils einer Feldtrenneinheit 13 (FIU « field isolation unit) ein vollständiges Speicherwerk 11. In einem besonderen System können auch nur eine Speichereinheit 12 mit einer Trenneinheit 13 vorgesehen sein. Jede Speichereinheit 12 speichert Informationen in einem Kernspeicherstapel, obwohl andere Speicherarten für diesen Zweck verwendet werden können, und eine derartige Einheit soll die Fähigkeit haben, diese Information auf Anforderung
109824/1676
auszugeben. Jede Speichereinheit 12 steht nur mit ihrer eigenen Feldtrenneinheit 13 in Verbindung, so daß alle Operationen in dem System zunächst eine bestimmte Trenneinheit durchlaufen, bevor sie begonnen werden.
Nach den Fig. 11 und 12 ist jede Speichereinheit 12 strukturorientiert und in mehrere Stapel unterteilt. Jeder Speicherstapel besteht vorzugsweise aus 8192 Plätzen (Zellen), von denen jeder 288 Informationsbits enthält. Von diesen 288 Bits werden 256 von dem System als Speicherraum und die übrigen 32 Bits intern als Fehlercodeinformation benutzt. Das Fehlercodebit soll nur zu den vorausgehenden 64 Informationsbits gehören. Jedesmal, wenn im Speicher Informationen gespeichert werden, werden diese Fehlercodebits in Abhängigkeit von der neuen Information im Stapelwort gesetzt.
E. Feldtrenneinheit (FIU)
Jede Feldtrenneinheit 13 ist mit einer Logik versehen, die es ermöglicht, Informationsfelder unabhängig von der Speicherstruktur herauszuholen oder einzugeben. Der Speicher wird daher vom anfragenden Gerät als ein kontinuierlicher Raum behandelt, der die Fähigkeit hat, Felder, die an irgendeiner Stelle (Bit) beginnen und sich bis zu irgendeiner vorgeschriebenen Länge fortsetzen, aufzunehmen .
Die Feldtrenneinheit 13 besteht aus 13 größeren Funktionseinheiten, die miteinander verbunden sind. Wie in Fig. 13 gezeigt ist, ist das Leseregister 60 ein 144-Bit-Register,
1G9824/167S
2Ü54947
das zur Aufnahme einer Kopie von zwei Speicherwörtern verwendet wird. Die erste Gruppe aus 72 Bits ist daher eine Kopie des Speicherwortes, die das gegenwärtige Anfangsbit eines Feldes enthält, und die zweite Gruppe aus 72 Bits ist eine Kopie des Speicherwortes, das die Fortsetzung eines Feldes enthält. Wenn beispielsweise eine Operation vorschreibt, daß das Anfangsbit das Bit 5 im Speicherwort B sein soll und die Länge größer als 59 Bits ist, nimmt das Leseregister 60 die Wörter B und C auf. Während der Leseoperationen wird das Leseregister
60 zur übertragung von Speicherwörtern zur Walzenlogik
61 für einen Feldentzug verwendet. Während der Speicheroperation wird das Leseregister 60 zur Wiedereinfügung von Bits eines Speicherwortes verwendet, die durch das Speichern eines neuen Feldes nicht geändert wurden.
Der Walzenteil 61 bildet das Schiebenetzwerk, das eine Kapazität zur Verschiebung von 128 Informationsbits nach links herum bis zu einem Maximum oder einem Minimum von null Stellen oder Plätzen aufweist. Während einer Leseoperation wird die Trommel oder Walze 61 dazu verwendet, das Feld so zu positionieren, daß es linksberechtigt oder rechtsberechtigt ist, bevor es in das anfordernde Gerät übertragen wird. Während einer Speicheroperation wird die Walze 61 dazu verwendet, die eingegebenen Daten im richtigen Bitplatz des Speichers zu positionieren. Ein Maskengeber sorgt für die Fähigkeiten, ein Feld aus der Walzenausgabeschaltung auszuwählen und ins Ausgaberegister 63 oder ein Erzeugungsregister 64 zu übertragen. Das ausgewählte Feld wird durch die Anfangsbit- und Langenfeldinformation bestimmt, die in dem Steuerwort enthalten ist, und auch durch die Art der angeforderten Operation. Ein Schiebenetzwerk, daa hier
1Ö0824/167S
2U54947
verwendet werden kann, wurde bereits an anderer Stelle vorgeschlagen (Deutsche Patentanmeldung P 20 00 275.9, angemeldet an 5. Januar 1970).
Das Ausgaberegister 63 ist ein 65-Bit-Register und wird zur Zwischenspeicherung von Informationen während mindestens eines Taktes verwendet, die aus den verschiedenen logischen Schaltungen der Feldtrenneinheit zum anfordernden Gerät übertragen werden.
Ein Paritätsgenerator 65 wird zur Bildung einer Parität bei allen ausgegebenen Datenwörtern verwendet. Ein Paritätsbit soll der Datenübertragung nach einer Taktperiode folgen.
Das Eingaberegister 66 ist ein 65-Bit-Register, das zum Speichern des Steuerwortes für eine Paritätsprüfung verwendet wird. Das Eingaberegister 66 sorgt auch für eine kurzzeitige Zwischenspeicherung während mindestens einer Taktperiode für die Datenübertragung aus dem anfordernden Gerät.
Ein Paritätsprüfer 67 dient zum Prüfen aller eingegebenen Datenwörter. Ein Paritätsbit soll eine Taktperiode nach der Datenübertragung empfangen werden.
Das Steuerwortregister 68 ist ein 64-Blt-Register, das zur Aufnahme des Steuerwortes dient, das vom anfordernden Gerät gesendet wird. Während des Ablaufs einer Operation soll dieses Register für einen Gleichlauf mit der genauen Anfangsposition und der übrigen Feldlänge dieser Operation sorgen.
10082A/167E
Das Erzeugungsregister 64 ist ein 128-Bit-Register und dient zur Verknüpfung der Walzenteilausgabe mit der Leseregisterausgabe. Das Ergebnis ist ein Speicherwort. Das Erzeugungsregister 64 soll ferner das Speicherwort für mindestens eine Taktperiode festhalten, um dem Codegenerator zu ermöglichen, Prüfcodebits zu erzeugen, bevor das Wort ins Speicherregister übertragen wird.
Das Speicherregister 69 ist ein 72-Bit-Register und wird zur Zwischenspeicherung des Datenwortes verwendet, das an einem Platz gespeichert werden soll, der durch das richtige Speicheradressenregister 92 (MAR = memory address register) nach Fig. 12 vorgeschrieben wird.
Der Codegenerator 70 dient zur Bildung für Prüfbits für alle Informationen, die im Speicher gespeichert werden. Diese Prüfbits stellen ein Mittel zur Feststellung von Bitfehlern zwischen der Feldtrenneinheit 13 und dem Speicher 12 dar.
Das Fehlerregister 71 ist ein 64-Bit-Register und dient zur Aufnahme aller Informationen, die zur Identifizierung und Definierung eines Fehlers erforderlich sind, z.B. eines externen Fehlers (Fehler, die durch das anrufende Gerät hervorgerufen werden), eines internen Fehlers (der in der Feldtrenneinheit festgestellt wird) und eines Speichereingabefehlers (eines durch eine falsche Stapelinformation bewirkten Fehlers).
Wenn Wörter aus dem Leseregister 60 aufgenommen werden, enthalten sie Jeweils insgesamt 72 Bits. Die 64 höchststelligen Bits sind Datenbits, und die übrigen acht Bits· sind Prüfcodebits. Diese Prüfcodebits gestatten dem Nach-
1O0&24/1676
weis- und Bitkorrekturteil 72 den Nachweis eines 1-Bit-Fehlers oder eines 2-Bit-Fehlers. Wenn ein 1-Bit-Fehler auftritt, wird das Bit korrigiert, bevor das Feld übertragen wird. Wenn ein 2-Bit-Fehler auftritt, ist keine Korrektur möglich. In jedem Falle wird das anfordernde Gerät vom Auftreten eines Fehlers und der Art des aufgetretenen Fehlers unterrichtet.
F. Arbeitsspeicher-FIU-Verbindungsvorrichtung
Im folgenden wird die Verbindungsvorrichtung (auch Koppelelektronik oder Schnittstellenverbindungsvorrichtung genannt) zwischen der Speichereinheit 12 und der Feldtrenneinheit 13 anhand von Fig. 14 beschrieben. Diese Verbindungsvorrichtung enthält Steuerleitungen, Adressenleitungen und Datenleitungen. Wie in Fig. 14 dargestellt ist, ist die Verbindungsvorrichtung in dem Sinne repetitiv, daß die gleichen Arten von Übertragungsleitungen zu jedem der vier Stapel führen, in denen jede der Speichereinheiten so organisiert ist, wie es anhand der Fig. 11 und 12 beschrieben wurde.
Nach Fig. 14 enthält die Verbindungsvorrichtung zum Stapel A 26 Adressenleitungen, die zur Übertragung einer 13-Bit-Adresse verwendet werden, die einen der 8192 Speicherplätze vorschreiben kann. Die Verbindungsvorrichtung zum Adressieren enthält 26 Leitungen, da die Speichereinheit 12 1- und O-Ziffern für jedes Adressenbit benötigt.
Es gibt 72 Dateneingabeleitungen, die zur Übertragung von Dateninformationen verwendet werden, die in einen Adressenspeicherplatz eingegeben werden sollen. Entsprechend sind 72 Datenausgabeleitungen vorgesehen, die zur Über-
109824/1675
tragung einer Kopie des aus eine» adressierten Speicherplatz ausfelesenen Inhalts (72 Bits) in die Feldtrenneinheit dienen. '
Die übrigen Steuerleitungen umfassen eine IMC-Leitung, die das Signal "Auslöse Speicherzyklus" (IMC - initiate memory cycle) aberträgt, und eine Leitung zur Übertragung des Lesebetriebsignals, des zu» Auslösen der Über- tragung von Daten aus einea Adressenspeicherplatz ins Speicherlnforaationsregister 91 (Hifi « aeaory information register) dient, das in 71g. 12 dargestellt 1st. Das Schreibbetriebsignal wird zur Freigabe der übertragung von Daten aus der Feldtrenneinheit 13 ins Speicherinforaationsreglster 91 verwendet. Das Löschsignal wird zua Löschen dee Speicherinforaationsregistera vor der Dateneingabe verwendet. Das Schreibtastsignal wird sun Eintasten von Daten ins Speicherlnforaationsregister verwendet, so daft si· für einen adressierten Speicherplatz BUr Verfügung stehen. Das Lesedaten-Verfügbar-Signal dient dazu, die Feldtrenneinheit 13 (FIU) davon zu unterrichten, daft aus de« Adressenspeicherplatz aus-
P gelesene Daten ia Speicherinformationsregister 91 verfügbar sind.
O. AttfordTer-FIU-Verbindungsvorrichtung
Die Verbindungsvorrichtung zwischen der Feldtrenneinheit 13 (FIU) «ad jedea der jeweiligen Anforderer ist ia Fig. 15 dargestellt und enthält ein· 64-Bit-InforaatlOtt*- Mehrfachleitung, die bidirektional ist und Mir übertragung von Daten und Steuerwörtern dient. Die Mehrfachleitung let Insofern bidirektional, als dlo Informationen
109824/1670
entweder von der Feldtrenneinheit 13 stm Anforderer oder vom Anforderer zur Feldtrenneinheit tibertragen werden können. Eine Totzeit von Mindestens einer Taktperiode ist jedesmal zwischen zwei aufeinanderfolgenden Operationen erforderlich, wenn die Übertragungsrichtung umgekehrt wird.
Zu den Steuerleitungen gehört, wie Fig. 15 zeigt, eine Anforderungssignalleitung, die ein von einem Anforderer abgegebenes Anforderungssignal zur Auswahl einer bestimmten Feldtrenneinheit überträgt. Is muB eine Taktperiode vor dem Anforderungsleitsignal auf SIMS ("wahr") Obergehen und solange auf SIHS bleiben, bis das erste Bestätigungssignal von der Feldtrenneinheit eintrifft. Ein Anforderungsleitsignal wird zur Feldtrenneinheit übertragen, um diese davon zu unterrichten, da* ein Steuerwort über die Informationsleitung übertragen wird. Zu Anfang geht das Anforderungsleitsignal eine Taktperiode nach dem Anforderungssignal auf IIMS über, und es bleibt für die Dauer einer Taktperiode BIVS, bevor das Steuerwort über die Informationsleitung übertragen wird. Es mud solange SIMS bleibe», bis ein erstes Bestätigungssignal für jede Leseoperation oder Speioberoperation empfangen wird, dessen Feldlänge gro&er als 64 Bits ist. Das Anforderungsleitsignal mufi für die Dauer einer Taktperiode SIVS sein und jeder Übertragung des Steuerwortes um eine Taktperiode vorausgehen, und zwar bei jedem Leitsignal, dessen Feldlänge gleich oder kleiner als 64 Bits ist.
Ein Datenleitsignal wird zur Feldtrenneinheit übertragen, um diese davon zu unterrichten, daft über die Informationsleitung ein Datenwort übertragen werden soll. Venn die
10982W167S
Feldlange des Dateawortes graft·? als 64 Bits ist, folgt das Datenwortleitsignal dea "Sende-Daten-Signal". Wenn die Feldlange des Dateawortes gleich oder kleiner als 64 Bits ist, wird das Datenwortleitsignal automatisch nach des Anforderungsleitsignal übertragen and eine Sauer aufweisen, die gleich einer Taktperlode ist.
Ein Bestatigungssignal in For» eines Iapulses «it einer . Dauer, die gleich der einer Taktperiode ist» wird stets " sun Auforderer Obertragen, wenn die Bedienung des Aaforder«rs ausgelöst ist. Her Anforderer ηβ sich jedoch darauf einstellen, daft der Empfang des ersten Best&tigungssignals keine Garantie dafür ist, daß die Operation ausgeführt wird.
Bin Daten-Vorhanden-Leltsignal wird übertragen, vm den Anforderer su iaforaleren, daft Ip Bingaberegister 66 der FeldArenneinheit (sieh« Fig. 13) «in Datenwort vorhanden ist· Das Daten-Torhanden«81gnal wird bei allen Leeeoperationen in lolnxidena «it dea Datenwort übertragen, solange keine Fehler bei den ans der Speichereinheit 12 ausgelesenen Hat·» festgestellt werden. Is sei darauf hingewiesen, daft das Daten-tawhanden-Signal nicht das gleich· 1st, wie daa rom Anforderer gesendete Datenwort-Leitsignal. Das Daten-Vorhaaden-Leitaignal xeigt an, da* ein gültiges Datenwort aus der Feldtrenneinheit gesendet wurde.
Bin 8ende-Daten-Signal wird Jedesmal si» Anforderer gesendet, wenn die Feldlange hol irgendeiner Speicberoperation gröAer als 64 Bits ist. Jod· Taktperiode, wahrend der das Sende-Daten-Signal auf 1IBl steht, seigt de« An« forderer an, da· er «in Datenwort-Leitsignal senden «uß,
109824/167«
bevor er ein Datenwort sendet. Dieses Kontrollverfahren ist erforderlich, im zu vermeiden, daß der Anforderer wissen muß, ob die Feldtrenneinheit eine Minimi*- oder eine Maximum-Speichereinheitskonfiguration aufweist.
Das Signal Fehlerunterbrechung 1 informiert den Anforderer davon, daß die Feldtrenneinheit zumindest eine der folgenden Fehlerarten festgestellt hat. Das Fehlerunterbrechungssignal hat eine Dauer von zwei Takten und wird dem anfordernden Gerät zugeführt, das die Operation ausgelöst hat. Die Fehlerarten sind: Sin 2-Bit-Fehler beim Auslesen aus der Speichereinheit, ein Paritätsfehler im Steuerwort, ein unzulässiger Operationscode im Steuerwort, ein· falsche Feldtrenneinheitsadresse im Steuerwort, eine falsche Anzahl- von Datenwortleitsignalen bei einer Speicheroperation, «in Paritätsfehler im Anfordererdatenwort und ein interner Fehler.
Das Signal "Fehlerunterbrechung 2" informiert den Anforderer davon, daß die Feldtrenneinheit einen 1-Bit-Fehler bei einer Auslesung aus der Speichereinheit festgestellt hat. Das Fehlerunterbrechung-2-8ignal hat eine Dauer von zwei Takten und wird mn dem anfordernden Gerät gesendet, das die Operation ausgelöst hat.
Die Anfordererparitätsleitung wird zur Übertragung des verzögerten Paritätsbits bei irgendeiner Anfordererübertragung In die Feldtrenneinheit verwendet. Die verzögerten Paritätsbits folgen dem übertragenen Wort stets nach einer Taktperiode und müssen ein· Dauer von mindestens einer Taktperiode aufweis·«.
109824/1676
- 44 -H. Prozessor-Speicher-Verbindungseinheit
Anhand von Fig. 16 wird im folgenden die Anfordererseite der Anforderer-Feldtrenneinheit-Verbindungsvorrichtung beschrieben. Es sei daran erinnert, daß die Feldtrenneinheit Daten oder Steuerwörter empfangen und an irgendeinen Anforderer übertragen kann, sei es ein Prozessor, ein SA-Steuerwerk oder das Speichererweiterungssteuerwerk für den Speicher der Ebene 2. In Fig. 16 ist jedoch eine Schaltung dargestellt, die speziell für einen Prozessor ausgelegt ist. Die Schaltungsanordnung nach Fig. stellt daher die Speicher-Verbindungseinheit 22 dar, die in den Fig. 2 und 3 dargestellt ist.
Die Speicherverbindungseinheit 22 (MIU = memory interface unit) führt alle Übertragungen zwischen dem Prozessor und irgendeinem von bis zu maximal 16 Speicherwerken 11 durch. Die Speicherverbindungseinheit (MIU) führt alle Datenübertragungen in Form von feldorientierten Operationen durch und leitet die Speicherzugriffanforderungen durch die Funktionselemente des Prozessors auf der Basis zuvor zugeordneter Prioritäten. Die Zugriffprioritätszuordnung wird vom Prozessor vorgeschrieben und umfaßt die folgenden Elemente: Anzeige, Hilfsmittelstapelscheibe (oder-Abschnitt), Namenstapelpuffer, Programmsteuerstapel, Wertstapelpuffer, Deskriptionspuffer und Programmpuffer.
Wenn eines der Funktionselemente des Interpretierers 21 die Dienste der Speicherverbindungseinheit 22 anfordert, hebt es das Potential seiner "Zugriffanforderung"-Leitung, die zur Speicherverbindungseinheit führt, und führt es ein Elementsteuerwort (ECW - Element control word), wie
109824/1676
es in Fig. 17 dargestellt ist, einer entsprechenden ECW-Leitung zu. Jede der ECW-Leitungen führt jeweils von einem der Elemente zu einer Steuerwortauswähllogik 102, wie es in Fig. 16 dargestellt ist. Wenn das anfordernde Element Priorität hat, überträgt die •Speicherverbindungseinheit 22 das Elementsteuerwort in dessen Steuerwortregister 104 und bestimmt, welche der folgenden Operationen vorgeschrieben wird: Eine 1-Wort-Speicheroperation (Feldlänge kleiner als 64 Bits), eine Mehrfachwort-Speicheroperation (Feldlänge größer als 64 Bits) oder eine Leseoperation.
Wie Fig. 16 zu entnehmen ist, enthält die Speicherverbindungseinheit neun Funktionseinheiten, die jetzt beschrieben werden.
Die Prioritätslogik 101 ist dafür verantwortlich, dem anfordernden Element, das die höchste Priorität aufweist, die Dienste der Speicherverbindungseinheit zu gewährleisten. Eine Steuerwortwähllogik 102 ist verantwortlich für die Übertragung des Elementsteuerwortes ECW des anfordernden Elements zu einem Steuerwortregister 104 in Abhängigkeit von der Prioritätslogik 101. Das Steuerwortregister 104 ist ein 64-Bit-Register und wird zum Speichern des Elementsteuerwortes ECW verwendet, während es von einem Hauptsteuerteil 106 ausgeführt und auf den neuesten Stand gebracht wird. Der Hauptsteuerteil 106 enthält die zur Ausführung aller Operationen der Speicherverbindungseinheit erforderliche Steuerlogik, einschließlich der Steuerungen, die zur Vervollständigung der Empfänger- und Treiberkanäle erforderlich sind. Ein Speicherpufferregister 105, bei dem es sich um ein 64-Bit-Register handelt, wird zur Zwischenspeicherung aller über die Informationsverbindung in den Speicher einge-
109824/1676
gebenen oder aus dem Speieber ausgegebenen Daten verwendet. Ein Datenpufferregister 103, bei den es sieb ebenfalls um ein 64-Bit-Register handelt, wird zur Zwischenspeicherung aller Daten verwendet, die zwischen dem anfordernden Element des Prozessors und der Speicherverbindungseinheit übertragen werden. Dieses Register wird für Längenübertragungsoperationen verwendet, bei denen die Verknüpfung von Datenfeldern, wie bereits erwähnt, erforderlich ist. Ein Paritätsgenerator und -prüfer 107 dient zur Erzeugung von Paritäten bei allen Wörtern, die in den Speicher übertragen werden, und zur Prüfung der Parität von Wörtern, die aus dem Speicher geholt werden. Empfänger und Treiber 100 enthalten 16 Gruppen aus Empfänger- und Treiberschaltungen in der Speicherverbindungseinheit, und zwar eine Gruppe pro Speicherwerkschnittstelle. Der Zustand dieser Gruppen wird durch den Hauptsteuerteil 106 bestimmt, und nur jeweils eine Gruppe ist zu einer bestimmten Zeit aktiv.
Datenstrukturen
Im folgenden werden die verschiedenen Anweisungen in jedem der Deskriptorstrukturausdrücke beschrieben. Sie beziehen sich auf die verschiedenen Strukturen im Speicher.
Die Feld-Anweisung kennzeichnet ein Unterfeld in dem Behälter dadurch, daß sie eine Adresse A des Anfangsbits und die Länge L des Unterfeldes vorschreibt. Die feldvariable Anweisung kennzeichnet in ähnlicher Weise ein Feld, doch sind die Adresse und die Länge parametrisch.
109824/1675
Die Vektor-Anweisung bezeichnet ein Feld, bei der es sich um ein einziges Element einer Gruppe abhängiger, gleich großer Elemente handelt, durch einen parametrischen Index, die Adresse A des ersten Elements und die Elementlänge L.
Die Stapel-Anweisung und die Abwärtsstoß- oder Abwärtsschi ebe- Anweisung werden für abhängige "Letzte hinein Erste hinaus"-Strukturen jeweils mit Elementen fester und veränderbarer Größe verwendet. Während des Aufbaubetriebs (construct mode) definiert jede Anweisung ein Kennzeichen des oberen Elementes der Struktur mit der zugehörigen Adresse (A, L). Während des Entfernungsoder Lesebetriebs (remove mode) definiert jede Anweisung ein Kennzeichen eines Elements, das durch (A - L, L) definiert ist. Im Eingabebetrieb definiert jede Anweisung ein Kennzeichen eines Elements, das durch (A + L, L) definiert ist. Die Elementlänge ist ein Parameter für Zugriffe zu Abwärtsstoß-Strukturen im Eingabebetrieb. Zugriff zu Stapel- und Abwärtsstoß-Strukturen bewirkt Fehler im Falle eines Über- oder Unterlaufs.
Die Anweisungen für Warteschlangen und T/arteschlangen mit veränderbarer Länge werden für benachbarte "Erster hinein Erster hinaus"-Strukturen mit Elementen von jeweils fester und veränderbarer Größe verwendet. Ein Zugriff zu dem ersten oder letzten Element jeder Struktur bewirkt die Verwendung jeweils des Lese- oder Eingabebetriebs. Die Elementlänge ist ein Parameter für Zugriffe in Warteschlangenstrukturen mit veränderbarer Länge im Eingabebetrieb. Zugriffe zu beiden Arten von Warteschlangenstrukturen bewirken Fehler im Falle einer vollen oder leeren Warteschlange.
109824/1675
Die Listen-Anweisung bestiemt Kennzeichen für Elemente einer zusammenhängenden Liste gleich großer Elemente. Die Zuweisung und Kntzuweisung werden durch Verwendung einer freien Liste erzielt, die sich zusammen mit der Listenstruktur in einem Behalterfeld befindet. Ein Zugriff zur Listenstruktur im Aufbaubetrieb hat einen Hinweis bzw. eine Kennzeichnung zur bzw. des Listenelements zur Folge, Ein Vorlaufseiger A, ein Augenblickselernentt zeiger P und ein Zeiger C1 der auf das Element weist, das dem Augenblickselement (laufenden Element) vorausläuft, bilden einen Teil des Listenstrukturzustands.
Die zusammengesetzten Strukturen Abwärtsstoß-Stapel und Abwärtsstoß-Abwärtsstoß sind Strukturen, die bestimmten Hardware-Strukturen des zentralen Prozessors ähneln und sich mit einer Grob- oder Feinstruktur befassen. Der Zweck, warum diese zusammengesetzten Strukturen hier erwähnt werden, dient der Klarstellung, daß sie in der Hardware verwendet werden; Sie sind also keine Strukturanweisungen, die in den Vorschriften der Software verwendet werden können, doch sind einige Operationen besser zu w verstehen, wenn man üit diesen Strukturen vertraut ist.
Zusammengesetzte Strukturen haben ähnliche Eigenschaften wie koräumliche Strukturen, und swar insofern, als beide aber ein einziges Behälterfeld aus Mehrfachstrukturen bestehen. Zugriffe zu zusammengesetzten Strukturen umfassen jedoch zusätzliche Maßnahmen, um den Strukturzustand aller Strukturen In der zusammengesetzten Struktur auf den neuesten Stand zu bringen. Zusammengesetzte Strukturen lassen sicm auch durch ihren groben, feinen oder zusammengesetzten Kamen bezeichnen oder ausdrücken.
109824/1675
So läßt sich beispielsweise bei einem einzigen Zugriff zu einem Abwärtsstoß-Stapel eine Änderung des Zustande sowohl des Abwartstoßes als auch des Stapels oder nur des Stapels durch Auswählen des geeigneten Namens aus der Struktur bewirken. Insbesondere hat ein Entfernungsoder Lesebetriebsart-Zugriff mit einer Bückwärtsstoß-Stapel-Anweisung eine einzige Operation zur Folge, die gleich einer Beseitigung des Abwärtsstoß-Elementes ist, und eine Anzahl von Rücksprüngen in die Stapel-Struktur zur Folge hat, die gleich den Feinelementen ist, die vom Abwärtsstoß-Element umfaßt sind. Der Abwärtsstoß-Abwärtsstoß- Algorithmus bewirkt einen Vorgang, der dem Abwärtsstoß-Stapel ähnlich ist, wobei die Feinstruktur Jedoch ein Abwärtsstoß anstelle eines Stapels ist.
Die Stapel-Vektor-Anweisung bewirkt Indexoperationen in einen Vektor von Stapelelementen. Vektorzugriffe bei einer StapelVektorstruktur sind durch den Stapel gebunden. Das Stapelelement und das Vektorelement sind gleich groß, im Gegensatz zu den feinen oder groben Größen der anderen Bestandteile.
Die Rufanweisung wertet eine Deskription durch Vorschreiben des Hamens der Deskription aus, die ausgewertet werden soll. Eine Rückkehr tritt auf, wenn die Auswertung der Suf-Deskription abgeschlossen ist.
Mit dem Abschluß oder der Vollendung des Strukturausdrucke werden die Interpretiererattribute in ihre Terminaldeskription kopiert. Dadurch wird die Auswertungsoperation abgeschlossen.
109824/1675
Strukturoperatoren und Algorithmen
Die Strukturoperatoren sind Konstruieren, Eingeben und Entfernen. Bei der Konstruktionsoperation wird der benannte Deskriptor geholt (d.h. aus de» Speicher ausgelesen) und durch Ausführung der Deskription ein Bezugszeichen gebildet. Die Ausführungsfolge hängt von den Strukturausrucksarten in der Deskription ab. Bei der Bingabeoperation wird der benannte Deskriptor geholt, die innerste Struktur gefunden, ein Feld in der innersten Struktur zugeordnet und ein Terminalbezugszeichen für das neu zugeordnete Feld in dem oberen Teil des Namenstapels gebildet. Bei der Entfernungsoperation werden die benannten Deskriptoren geholt, die innerste Struktur gesucht und ein Terminalbezugszeichen für das neu anders zugewiesene Feld in dem oberen Teil des Namenstapels gebildet.
Im folgenden werden Strukturausdrucksauswertungsalgorithmen beschrieben· Dies sind die Algorithmen, die vom Interpretierer zur Auswertung des Deskriptorstrukturausdrucks verwendet werden. Die Auswertung aller Strukturausdrücke, mit Ausnahme des letzten in dem Deskriptor, erfolgt mit Hilfe des Konstruktionsoperators· Strukturausdrücke, die sich auf Datenstrukturen beziehen, bei denen keine Zuweisung oder Kntzuweisung von Speicherraum vorgesehen ist, werden stets durch den Konstruktionsoperator ausgewertet. Wenn es sich bei dem Strukturausdruck um die Segmentnummer handelt, wird das Nummerfeld als Index In den Hilfsmittelstapelabschnitt eingegeben, um den geeigneten Speicherebenenbehälter oder das geeignete Speicherebenengerät zu lokalisieren. Bin Strukturausdruck vom Typ "Ende** (Fin) zeigt das Ende
109824/1675
des Deskriptorausdruckstring an. Er hat eine Übertragung des Behälterfeldes aus dem Attributstapel in den oberen Teil des Namenstapels zur Folge.
Nach Fig. 6 kann das Strukturausdrucksfeld eine veränderbare Anzahl verschiedener Strukturausdrücke sein, die zur Ausführung irgendeiner vorbestimmten Routine erforderlich sein können. Die jeweiligen Ausdrücke werden von links nach rechts ausgewertet.
Der Vektorkonstruktionsalgorithmus bildet bzw. konstruiert ein Bezugszeichen im Attributstapel für ein Element, wobei der Vektor eine Folge gleich langer benachbarter Elemente ist, von denen jedes durch einen Indexwert adressiert wird. Der mit der Länge des Elementes multiplizierte Indexwert wird zum Platzfeld des Vektorbehälters addiert, um das Platzfeld des gewünschten Elements zu bestimmen.
Der Feldkonstruktionsalgorithmus bildet ein Bezugszeichen für ein Feld, bei dem es sich um ein Element handelt, das so behandelt wird« als hätte es keine Unterstruktur. Der Konstruktionsalgorithmus für veränderbare Felder ist ähnlich dem des Feldkonstruktionsalgorithmus.
Der StapeleingabealgorithJBus weist ein Feld im Stapel zu und bildet ein Bezugszeichen für dieses Feld. Der Stapel ist ein derartiger Speicherbereich, bei dem in ihn eingegebene Posten nur in der Reihenfolge "der Erste hinein und der Letzte hinaus" entfernt (herausgeholt) werden können, und der eine Gruppe benachbarter gleich langer Elemente enthalt. In ähnlicher Weise löst ein Stapelentfernungsalgorithmus die Zuordnung eines Feldes in einem Stapel. Ein Stapelkonstruktionsalgorithmus bildet ein
109824/1675
Bezugszeichen (oder Kennzeichen) für ein Feld in dem Stapel. Die Stapelvektoralgorithmen sind ähnlich den Stapelalgorithmen, nur daß bei dem Stapelvektorkonstruktionsalgorithmus jedes Element im Vektor durch einen Indexwert adressiert wird, wie es bereits erwähnt wurde.
Der Warteschlangeneingabealgorithmus weist ein Feld in einer Warteschlange zu, bei der es sich um ein Behälterelement handelt, das in zugewiesenen freien Raum aufgeteilt ist. Die Zuweisungsregel ist "Erster hinein, Erster heraus"· Der Wartescklängenentferungsalgorithmus löst die Zuweisung oder Zuordnung eines Feldes in der benannten Warteschlange. Der Warteschlangenkonstruktionsalgorithmus bildet ein Bezugszeichen für ein Element in der Warteschlange.
Der Eingabealgorithmus für eine zusammenhängende Liste weist ein Feld in der benannten zusammenhängenden Liste zu, bei der es sich um ein Behälterelement handelt, das in eine Gruppe zugewiesener oder zugeordneter Elemente und einen freien Raum unterteilt ist. Jedes zugewiesene Element (oder Listenelement) ist in ein zusammenhängendes Element und ein Informationselement unterteilt. Jedes zusammenhängende (angekoppelte) Element ist eine Gruppe von Bezugszeichen, die den Weg zum logisch benachbarten Listenelement begrenzen. Der Entfernungsalgorithmus für eine zusammenhängende Liste wird zum Lösen der Zuweisung oder Zuordnung eines Feldes in der zusammenhängenden Liste verwendet. Bei einer Konstruktionsbetriebsart für »ine zusammenhängende Liste wird ein Bezugszeichen in dem Attributstapel gebildet. Die Folgebetriebsart für ein· zusammenhängende Liste und der Rücksetzalgorithmus für
109824/1675
die zusammenhängende Liste vervollständigen diese Gruppe.
Der Abwärtsstoß-Eingabealgorithmus ordnet ein Feld in einem Abwärtsstoßstapel zu, bei dem es sich um einen Stapel von Elementen veränderbarer Höhe und Länge handelt. Der Abwärtsstoß-Entfernungsalgorithmus ordnet in ähnlicher Weise ein Feld in dem Abwärtsstoß zu. Die Abwärtsstoß-Konstruktionsbetriebsart bildet ein Bezugszeichen im Attributstapel für das gewünschte Element.
Patentanwälte Dipl.-Ing. Horst Rö·· Dipl.-Ing. Peter ΚοβθΙ
109824/1675

Claims (18)

  1. bipi.-lng. Morst Rose
    Dipl.-lng. Peter Kos·! one
    Patentanwälte fiad Gandershelm den4?4fr%6&r 1970
    Bad Gandersheim
    Hohenhöfen 5 «. 54 _
    Burroughs Corporation Patentgesuch vom 6. November 1970
    Patentansprüche
    Adressenvorbereitungseinrichtung für ein Informationsverarbeitungssystem mit eine« Speichersystem zur Aufnahme veränderbarer Behälterdatenstrukturen, die aus elementaren Datenstrukturen aufgebaut und jeweils durch eine Adressen- und eine Längenzahl gekennzeichnet sind, wobei die elementaren Datenstrukturen durch Klementaradressen in der Be hälterstruktur und eine Elementarlängenzahl gekennzeichnet sind, gekennzeichnet durch eine Registervorrichtung zur Aufnahme der Behälterstrukturadresse und der Elementarstrukturadresse und eine Verknüpfungsvorrichtung zur Bildung einer absoluten Elementarstrukturadresse in Abhängigkeit von der Behälterstrukturadresse und der Elementarstrukturadresse .
  2. 2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Registervorrichtung mehrere Register jeweils zur Aufnahme der BehälterStrukturadressen, der Behälterstruktürlängenzahl, der Elementarstrukturadresse und der EIe-
    " mentarstrukturlängenzahl enthält.
  3. 3. Einrichtung nach Anspruch 2, gekennzeichnet durch eine Eingabe-Ausgabe-Vorrichtung zur Aufnahme der Strukturkennzeichen aus den und zur übertragung der Strukturkennzeichen in die jeweiligen Register der Behälterstrukturadresse, der Behälterstrukturlängenzahl, der Elementarstrukturadresse und der Elementarstrukturlängenzahl.
  4. 4. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Adressenverknüpfungsvorrichtung eine auf Betäti-
    7Ö8/246 109824/1675
    gungssignale zur Bildung einer absoluten Elementarstrukturadresse in Fora der Summe der Behälterstrukturadresse und der Elementarstrukturadresse ansprechende Schaltungsanordnung enthält.
  5. 5. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Adressenverknüpfungsvorrichtung eine auf Betätigungssignale zur Bildung einer absoluten Elementarstrukturadresse in Fora der Summe der Behälterstrukturadresse, der Elementarstrukturadresse und des Produkts aus einem Indexbruchteil und der Elementarlängenzahl ansprechende Schaltungsanordnung enthält.
  6. 6. Einrichtung nach Anspruch I1 dadurch gekennzeichnet, daß die Adressenverknüpfungsvorrichtung eine auf Betätigungssignale zur Bildung einer absoluten Elementarstrukturadresse in Fora der Summe der Behälterstrukturadresse, der Elementarstrukturadresse und der Elementarlängenzahl ansprechende Schaltungsanordnung enthält.
  7. 7. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Adressenverknüpfungsvorrichtung eine auf Betätigungssignale zur Bildung, einer absoluten Elementarstrukturadresse als Summe der Behälterstrukturadresse und der Elementarstrukturadresse, vermindert um die Elementarlängenzahl, ansprechende Schaltungsanordnung enthält.
  8. 8. Adressenvorbereitungseinrichtung für ein Informationsverarbeitungssystem mit einem Speichersystem zur Aufnahme veränderbarer Behälterdatenstrukturen, die aus elementaren Datenstrukturen aufgebaut und jeweils durch eine Bitadressen- und Bitlängenzahl gekennzeichnet sind, wobei die elementaren Datenstrukturen durch Elementarbitadressen
    109824/1675
    in der Behälterstruktur und eine Elementarlängenbitzahl gekennzeichnet sind, gekennzeichnet durch eine Registervorrichtung zur Aufnahme der Behälterstrukturbitadresse und der Elementarstrukturbitadresse und durch eine Verknüpfungsvorrichtung zur Bildung einer absoluten Elementarstrukturbitadresse in Abhängigkeit von der Behälter-Strukturadresse und der Elementarstrukturadresse.
  9. 9. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, daß die Adressenverknüpfungsvorrichtung eine auf Betätigungssignale zur Bildung einer absoluten Elementarstrukturbitadresse als Summe der Behälterstrukturbitadresse und der Elementarstrukturbitadresse ansprechende Schaltungsanordnung enthält.
  10. 10. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, daß die Ädressenverknttpfungsvorrichtung eine auf Betätigungssignale zur Bildung einer absoluten Elernentarstukturbitadresse als Summe der Behälterstrukturbitadresse, der Elementarstrukturbitadresse und des Produkts aus einem Indexbruchteil und der Elementarlängenbitzahl ansprechende Schaltungsanordnung enthält.
  11. 11. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, daß die Adressenverknüpfungsvorrichtung eine auf Betätigungssignale zur Bildung einer absoluten Elementarstrukturbitadresse als Summe der Behälterstrukturbitadresse, der Elementarstrukturbitadresse und der Elementarlängenbitzahl ansprechende Schaltungsanordnung enthält.
  12. 12. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, daß die Adressenverknüpfungsvorrichtung eine auf Betätigungssignale zur Bildung einer absoluten Elementarstrukturbitadresse als Summe der Behälterstrukturbitadresse
    109824/1675
    und der Elementarbitstrukturadreese, vermindert um die Elementarlängenbitzahl, ansprechende Vorrichtung enthält.
  13. 13. SpeicherzugriffanfOrderungseinrichtung für ein Informationsverarbeitungssystem Mit eine» Speicher, der zur Speicherung verschachtelter Datenstrukturen ausgebildet ist, gekennzeichnet durch eine Begistervorrichtung zur Aufnahme einer Deskription einer Hauptdatenstrukturadresse und einer Adresse einer Datenunterstruktur in der Hauptstruktur und eine Verknüpfungsvorrichtung zur Bildung einer absoluten Adresse von den Unterstrukturen in Abhängigkeit von den Haupt- und Unterstrukturadressen.
  14. 14. Einrichtung nach Anspruch 13, dadurch gekennzeichnet, daß die Verknüpfungsvorrichtung auf ein Betätigungssignal zur Bildung der absoluten Adresse anspricht.
  15. 15. Speicherzugriffanforderungseinrichtung für ein Informationsverarbeitungssystem mit einem Speicher, in dem verschachtelte Datenstrukturen speicherbar sind, gekennzeichnet durch eine Steuervorrichtung zur Aufnahme einer Deskription einer Hauptdatenstrukturadresse, einer Adresse einer Datenunterstruktur in der Hauptßtruktur und von Indizes, die die Art und Charakteristik der Hauptstruktur anzeigen, und mehrere Pufferregister zur Aufnahme einer Folge dieser Deskriptionen zur späteren Übertragung in die Steuerregistervorrichtung, wobei die Steuervorrichtung so ausgebildet ist, daß sie die Indizes von einer Deskription zu einer anderen überträgt.
  16. 16. Adressenvorbereitungsverfabren für ein Informationsverarbeitungssystem mit einem adressierbaren Speicher, in dem verschachtelte Datenstrukturen speicherbar sind,
    109824/1675
    dadurch gekennzeichnet, daß eine Deskription (ein Kennzeichen) einer Hauptdatenstrukturadresse, einer Adresse einer Datenunterstruktur und die Art und Charakteristik der Hauptdatenstruktur anzeigende Indizes aufgenommen und die Hauptadresse and die Unterstrukturadresse zur Bildung einer absoluten Unterstrukturadresse verknüpft werden·
  17. 17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß die Bildung der absoluten Adresse bis zur Ausführung einer Anweisung, bei der die absolute Adresse erforderlich ist, verzögert wird.
  18. 18. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß Art- und Charakteristikkennzeichen aus einer Deskription in eine andere übertragen werden, wobei sich die eine Deskription auf eine Unterstruktur einer Hauptstruktur und die andere Deskription auf eine zweite Unterstruktur in der ersten Unterstruktur bezieht.
    Patentanwalt· Dipl.-Ing. Horst Rös· Dipl.-Ing. Peter Kosel
    109824/1675
    Leerseite
DE2054947A 1969-11-28 1970-11-07 Datenverarbeitungsanlage Expired DE2054947C3 (de)

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
DE2054947A1 true DE2054947A1 (de) 1971-06-09
DE2054947B2 DE2054947B2 (de) 1980-01-10
DE2054947C3 DE2054947C3 (de) 1980-09-04

Family

ID=25376504

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2054947A Expired DE2054947C3 (de) 1969-11-28 1970-11-07 Datenverarbeitungsanlage

Country Status (10)

Country Link
US (1) US3654621A (de)
JP (1) JPS5113539B1 (de)
BE (1) BE758815A (de)
CA (1) CA949225A (de)
CH (1) CH549244A (de)
DE (1) DE2054947C3 (de)
FR (1) FR2069372A5 (de)
GB (1) GB1339285A (de)
NL (1) NL176499C (de)
SE (1) SE413815B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2443176A1 (de) * 1973-09-10 1975-03-13 Computer Automation Daten-speichereinrichtung mit automatischer adressenzuordnung und dafuer geeignetes adressierungsverfahren

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3739352A (en) * 1971-06-28 1973-06-12 Burroughs Corp Variable word width processor control
FR2200988A5 (de) * 1972-09-26 1974-04-19 Honeywell Bull Soc Ind
GB1447297A (en) * 1972-12-06 1976-08-25 Amdahl Corp Data processing system
US3958221A (en) * 1973-06-07 1976-05-18 Bunker Ramo Corporation Method and apparatus for locating effective operand of an instruction
US3868644A (en) * 1973-06-26 1975-02-25 Ibm Stack mechanism for a data processor
FR111574A (de) * 1973-12-13 1900-01-01
US4103329A (en) * 1976-12-28 1978-07-25 International Business Machines Corporation Data processing system with improved bit field handling
US4135242A (en) * 1977-11-07 1979-01-16 Ncr Corporation Method and processor having bit-addressable scratch pad memory
US4433377A (en) * 1981-06-29 1984-02-21 Eustis Mary S Data processing with format varying
US4777589A (en) * 1985-06-28 1988-10-11 Hewlett-Packard Company Direct input/output in a virtual memory system
US4858106A (en) * 1987-04-03 1989-08-15 General Electric Company Automated method implemented on a distributed data processing system for partitioning a data string into two substrings
US5060147A (en) * 1987-05-01 1991-10-22 General Electric Company String length determination on a distributed processing system
US4802090A (en) * 1987-06-24 1989-01-31 General Electric Company Histogramming of pixel values on a distributed processing system
US5442770A (en) * 1989-01-24 1995-08-15 Nec Electronics, Inc. Triple port cache memory
US5737547A (en) * 1995-06-07 1998-04-07 Microunity Systems Engineering, Inc. System for placing entries of an outstanding processor request into a free pool after the request is accepted by a corresponding peripheral device
US7197625B1 (en) 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US7711763B2 (en) * 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7599981B2 (en) * 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1181461B (de) * 1963-10-08 1964-11-12 Telefunken Patent Adressenaddierwerk einer programm-gesteuerten Rechenmaschine
US3337854A (en) * 1964-07-08 1967-08-22 Control Data Corp Multi-processor using the principle of time-sharing
US3331056A (en) * 1964-07-15 1967-07-11 Honeywell Inc Variable width addressing arrangement
US3340513A (en) * 1964-08-28 1967-09-05 Gen Precision Inc Instruction and operand processing
US3374464A (en) * 1965-01-08 1968-03-19 Sangamo Electric Co Supervisory control system
US3351917A (en) * 1965-02-05 1967-11-07 Burroughs Corp Information storage and retrieval system having a dynamic memory device
US3348213A (en) * 1965-04-07 1967-10-17 Ibm Record retrieval control unit
US3344410A (en) * 1965-04-28 1967-09-26 Ibm Data handling system
US3470537A (en) * 1966-11-25 1969-09-30 Gen Electric Information processing system using relative addressing
US3461433A (en) * 1967-01-27 1969-08-12 Sperry Rand Corp Relative addressing system for memories
US3510847A (en) * 1967-09-25 1970-05-05 Burroughs Corp Address manipulation circuitry for a digital computer
US3461434A (en) * 1967-10-02 1969-08-12 Burroughs Corp Stack mechanism having multiple display registers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2443176A1 (de) * 1973-09-10 1975-03-13 Computer Automation Daten-speichereinrichtung mit automatischer adressenzuordnung und dafuer geeignetes adressierungsverfahren

Also Published As

Publication number Publication date
BE758815A (fr) 1971-04-16
SE413815B (sv) 1980-06-23
JPS5113539B1 (de) 1976-04-30
NL176499C (nl) 1985-04-16
US3654621A (en) 1972-04-04
CH549244A (de) 1974-05-15
CA949225A (en) 1974-06-11
GB1339285A (en) 1973-11-28
NL7016735A (de) 1971-06-02
DE2054947B2 (de) 1980-01-10
DE2054947C3 (de) 1980-09-04
FR2069372A5 (de) 1971-09-03
NL176499B (nl) 1984-11-16

Similar Documents

Publication Publication Date Title
DE2054947A1 (de) Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem
DE2054835C2 (de) Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage
DE2119063C2 (de) Datenverarbeitungseinrichtung mit einer Einrichtung zur Steuerung von Programmunterbrechungsanforderungen
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE2704842C2 (de) Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE2515696C2 (de) Datenverarbeitungssystem
DE2714805C2 (de)
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE2719295A1 (de) Programmsteuerung
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2023354A1 (de) Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit
DE60006021T2 (de) VLIW-Prozessor und Programmkomprimierungsgerät and -verfahren
DE3131341A1 (de) "pufferspeicherorganisation"
DE2055716A1 (de) Datenverarbeitungssystem zur gleich zeitigen Verarbeitung mehrerer Programme
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE1815078B2 (de) Elektronisches Datenverarbeitungssystem
DE1524102B2 (de) Elektronische, aus baueinheiten aufgebaute datenverarbeitungsmaschine
DE1285220B (de) Datenverarbeitungssystem mit mehreren selbstaendigen Recheneinheiten
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE2458096C2 (de) Einrichtung zum Laden von Mikroprogrammen in einer mikroprogrammierbaren Datenverarbeitungsanlage
DE1549531A1 (de) Digitale Rechenanlage
DE1499206B2 (de) Rechenanlage
DE4135347C2 (de) Verfahren zur Aufrechterhaltung einer gegenseitigen Beziehung zwischen mehreren Objekten in einem für objekt-orientierte Sprache vorgesehenen Computer-System und Vorrichtung zur Durchführung eines derartigen Verfahrens
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8325 Change of the main classification

Ipc: G06F 9/34

8328 Change in the person/name/address of the agent

Free format text: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING., PAT.-ANW., 2800 BREMEN

8339 Ceased/non-payment of the annual fee