DE2054947A1 - Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem - Google Patents
Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystemInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing 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
Bad Gandersheim
Hoher.höfen 5
Burroughs Corporation
Patentgesuch vom 6„ November 1970
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
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.
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.
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.
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
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)
- bipi.-lng. Morst RoseDipl.-lng. Peter Kos·! onePatentanwälte fiad Gandershelm den4?4fr%6&r 1970Bad GandersheimHohenhöfen 5 «. 54 _Burroughs Corporation Patentgesuch vom 6. November 1970PatentansprücheAdressenvorbereitungseinrichtung 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. 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. 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. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Adressenverknüpfungsvorrichtung eine auf Betäti-7Ö8/246 109824/1675gungssignale zur Bildung einer absoluten Elementarstrukturadresse in Fora der Summe der Behälterstrukturadresse und der Elementarstrukturadresse ansprechende Schaltungsanordnung enthält.
- 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. 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. 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. 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 Elementarbitadressen109824/1675in 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. 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. 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. 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. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, daß die Adressenverknüpfungsvorrichtung eine auf Betätigungssignale zur Bildung einer absoluten Elementarstrukturbitadresse als Summe der Behälterstrukturbitadresse109824/1675und der Elementarbitstrukturadreese, vermindert um die Elementarlängenbitzahl, ansprechende Vorrichtung enthält.
- 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. Einrichtung nach Anspruch 13, dadurch gekennzeichnet, daß die Verknüpfungsvorrichtung auf ein Betätigungssignal zur Bildung der absoluten Adresse anspricht.
- 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. Adressenvorbereitungsverfabren für ein Informationsverarbeitungssystem mit einem adressierbaren Speicher, in dem verschachtelte Datenstrukturen speicherbar sind,109824/1675dadurch 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. 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. 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 Kosel109824/1675Leerseite
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)
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)
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)
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 |
-
0
- BE BE758815D patent/BE758815A/xx not_active IP Right Cessation
-
1969
- 1969-11-28 US US880537A patent/US3654621A/en not_active Expired - Lifetime
-
1970
- 1970-11-07 DE DE2054947A patent/DE2054947C3/de not_active Expired
- 1970-11-13 CH CH1685070A patent/CH549244A/de not_active IP Right Cessation
- 1970-11-13 CA CA098,094A patent/CA949225A/en not_active Expired
- 1970-11-13 FR FR7040726A patent/FR2069372A5/fr not_active Expired
- 1970-11-14 JP JP45101400A patent/JPS5113539B1/ja active Pending
- 1970-11-16 NL NLAANVRAGE7016735,A patent/NL176499C/xx not_active IP Right Cessation
- 1970-11-25 SE SE7015989A patent/SE413815B/sv unknown
- 1970-11-28 GB GB5420070A patent/GB1339285A/en not_active Expired
Cited By (1)
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 |