DE2645537C2 - - Google Patents
Info
- Publication number
- DE2645537C2 DE2645537C2 DE2645537A DE2645537A DE2645537C2 DE 2645537 C2 DE2645537 C2 DE 2645537C2 DE 2645537 A DE2645537 A DE 2645537A DE 2645537 A DE2645537 A DE 2645537A DE 2645537 C2 DE2645537 C2 DE 2645537C2
- Authority
- DE
- Germany
- Prior art keywords
- segment
- memory
- entry
- capability
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Die Erfindung bezieht sich auf ein Speicherverwaltungssystem
nach dem Oberbegriff des Patentanspruchs 1.
Ein solches Speicherverwaltungssystem, das aus dem US-Buch
Knuth: "The Art of Computer Programming", Vol. 1, 2. Aufl.
1969, S. 406-420, bekannt ist, steuert die Zuordnung und
Freigabe von Speicherplatz im Speicher einer Datenverarbeitungsanlage.
In vielen derzeit angewendeten Datenverarbeitungsanordnungen
wird direkt zugänglicher Speicherplatz einem aktiven
Prozeß dynamisch zugeordnet, und die gesamte Adressierung
dieses Speicherplatzes durch das den Prozeß bildende Programm
wird indirekt unter Verwendung der relativen Adressierung
erzielt. Dies gestattet es, die verfügbaren
Speicherplätze so zuzuordnen, daß sie die Segmente des
aktiven Prozesses der Datenverarbeitungsanordnung nach
Bedarf festhalten. Anschließend wird der Speicherplatz
für die Verwendung mit anderen Segmenten der anderen
Prozesse freigegeben, wenn alle auf einen bestimmten
Speicherplatz bezugnehmenden Prozesse vollständig ausgeführt
sind. Es existieren zahlreiche Listenverarbeitungssysteme,
bei denen von Anordnungen der oben angegebenen
Art Gebrauch gemacht wird; ein typisches System
dieser Art macht von sogenannten "Fähigkeiten" (capabilities)
Gebrauch, wie in der GB-PS 13 29 721 beschrieben ist.
Bei der oben erwähnten Anordnung ist eine sogenannte
Systemfähigkeitstabelle vorgesehen, in der Segmentangaben
enthalten sind, die aus der Basisadresse und der
Grenzadresse aller Speichersegmente im Direktzugriffsspeicher
bestehen. Jeder aktive Prozeß wird bei Beginn
der Verarbeitung dann einer Tabelle mit Hinweisen auf
reservierte Segmente zugeordnet, die für jedes Segment,
auf das der Prozeß einen Zugriff ausüben darf, einen
Eintrag enthält. Jeder Eintrag besteht aus einer Zugriffsart-
Codegruppe und einem Hinweiswert, der sich
auf die Basisadresse der Systemfähigkeitstabelle (SCT)
bezieht. In jedem System sind somit drei Arten von Segmenten
im Direktzugriffsspeicher vorhanden, nämlich
I) ein Programmcodesegment, II) ein Datensegment und
III) ein Fähigkeitshinweissegment.
Die Datenverarbeitungsanordnung ist so organisiert, daß
alle Direktzugriffsspeicheroperationen unter der Steuerung
durch ein Speicherschutzregister, ein sogenanntes
Fähigkeitsregister, ausgeführt werden, das sich in dem
Rechner befindet, der den Zugriff auf den Speicher ausübt.
Bevor der Zugang zu einem speziellen Segment erhalten
werden kann, muß daher zunächst die Segmentangabe für
dieses Segment in ein Fähigkeitsregister geladen werden.
Die Fähigkeitsregister-Ladeoperation macht von der Tabelle
mit den Hinweisen auf die reservierten Segmente und der
Systemfähigkeitstabelle Gebrauch, um die in das ausgewählte
Fähigkeitsregister zu ladende Information herzuleiten.
Aufgrund der Flexibilität des Fähigkeitsmechanismus und
der Speicherzuordnungsanordnungen ist es möglich, daß die
Speichersegmente bereits mit dem Prozeß fertig sind,
doch ist aufgrund der Tatsache, daß ihre Fähigkeitshinweise
auf mehrere Prozesse verteilt sind und sie keinen
ihnen eigenen Prozeß haben, kein Prozeß vorhanden, der
verantwortlich dafür sein kann, dieses Segment ausdrücklich
freizugeben. Es ist tatsächlich vorteilhaft, dafür
zu sorgen, daß alle Anwenderprozesse frei von der Verpflichtung
sind, ein Segment freizugeben, wenn ein Prozeß
mit einem Segment fertig ist.
Es gibt verschiedene Möglichkeiten, wie Speichersegmente
stillschweigend freigegeben werden können (das bedeutet,
daß der Benutzerprozeß alle Fähigkeitshinweise auf das
Segment außer Acht läßt, jedoch das Segment nicht ausdrücklich
freigibt). Wenn beispielsweise die einzige Fähigkeit
eines Fähigkeitshinweissegments von einem Benutzerprozeß
in einem Fähigkeitsregister aufrecht erhalten wird und
der Benutzerprozeß dann dieses Fähigkeitsregister wieder
mit einer anderen Segmentangabe lädt, dann kann mit normalen
Mitteln kein Zugriff mehr auf das ursprüngliche
Fähigkeitshinweissegment ausgeübt werden, da die einzige
Fähigkeit für dieses Segment zerstört worden ist. Wenn
keine der Fähigkeiten innerhalb der mit dem Fähigkeitssegment
verbundenen Struktur außerhalb der Struktur
existiert, dann gilt in gleicher Weise, daß der Vorgang
des Überschreibens des Fähigkeitsregisters bedeutet, daß
von der Struktur nichts mehr zugänglich ist. Die betroffenen
Speichersegmente sind nicht ausdrücklich freigegeben
worden, so daß sie innerhalb des Systems einen "Ausschuß"
(garbage) bilden. Dieser Ausschuß kann als "Inselausschuß"
bezeichnet werden, da er eine Insel bildet, auf die mittels
normaler Fähigkeitsoperationen kein Zugriff mehr ausgeübt
werden kann.
Ein Benutzerprozeß kann zwar Ausschuß durch Überschreiben
von Hinweisen erzeugen, doch kann die das Segment definierende
Eintragung in der Systemfähigkeitstabelle von keiner
der Operationen des Benutzers beeinflußt werden. Obgleich
der Benutzer zwar alle Zugangsmöglichkeiten zu einem
stillschweigend freigegebenen Speicherblock verloren hat,
kann das Betriebssystem doch Kenntnis von diesem Block
haben, in dem ein privilegierter Zugriff zur Prüfung der
Systemfähigkeitstabelle angewendet wird.
Es besteht also ein Ausschußerfassungsproblem, da Speicherblöcke
von der Gesamtsystemstruktur abgetrennt werden
können, und es ist erforderlich, solche Blöcke aufzusuchen
und die Speicherblöcke sowie die auf sie bezugnehmenden
Eintragungen der Segmentfähigkeitstabelle wieder
in die Gesamtheit der freien Speicher-Kapazitäten
zurückzuführen.
Außerdem besteht das Erfordernis, eine Ausschußerfassung
bei den Eintragungen der Systemfähigkeitstabelle durchzuführen.
Dieses Erfordernis ergibt sich deshalb, weil
ein Benutzerprozeß einen Speicherblock freigeben kann
und alte Hinweise auf den Block beibehalten kann. Wenn
das System die entsprechende Eintragung in der Segmentfähigkeitstabelle
wieder zuordnet und für einen neuen
Speicherblock benutzt, dann kann der ursprüngliche Prozeß
seinen alten Hinweis für einen Zugriff auf den neuen Block
benutzen. Somit kann die einem freigegebenen Block entsprechende
Eintragung der Segmentfähigkeitstabelle nicht
mehr benutzt werden, bis nachgewiesen worden ist, daß
keine Hinweise im Schnellspeicher auf die Eintragung der
Segmentfähigkeitstabelle mehr existieren. Dies bedeutet,
daß ein anderer Aspekt der Ausschußerfassung im System
darin besteht, freigegebene Eintragungen der Segmentfähigkeitstabelle
zu finden, für die keine Hinweise mehr
existieren.
In dem eingangs genannten Buch sind Algorithmen zur als
"garbage collection" bekannt gewordenen Ausschußerfassung
angegeben worden, die grundsätzlich für jedes Segment im
Schnellzugriffsspeicher ein Knotenwort benötigen, und in
jedem Knotenwort ist ein "Ausschußmarkierungsbit" vorgesehen.
Der Ausschußerfassungsprozeß (garbage collection) arbeitet
in zwei Phasen, beginnend mit einem Zustand, bei dem alle
Markierungsbits beispielsweise auf den Wert Null gesetzt
sind.
Die erste Phase umfaßt die Abtastung aller Knotenwortlisten
des Systems, beginnend mit einem Ausgangsknoten (Wurzelknoten)
im Betriebssystem, und für jeden angetroffenen
Knoten wird beim Abtastprozeß das darin befindliche
Markierungsbit auf den Wert "1" gesetzt. In der zweiten
Phase erfolgt ein sequentieller Durchlauf durch den gesamten
Speicher mit einer Betrachtung aller Segmentknotenwörter,
und alle Knoten, deren Ausschußmarkierungsbit
immer noch rückgesetzt ist, werden als freie Lücken markiert;
das von dem Knotenwort definierte Speichersegment
kann dann freigegeben werden.
Diese Ausschußerfassungsalgorithmen können auf ein Listenverarbeitungssystem
angewendet werden, wie es in der
GB-PS 13 29 721 angegeben ist; in diesem Fall entsprechen
die Knotenwörter den Eintragungen der Systemfähigkeitstabelle.
Zwei Gesichtspunkte der in dem obengenannten
Buch angegebenen Algorithmen machen diese jedoch für die
Verwendung mit einem mit Fähigkeiten arbeitenden System
unbrauchbar, wenn das System in einem Echtzeit-Simultanbetrieb
arbeitet. Diese Gesichtspunkte sind:
- (I) Der Algorithmus erfordert eine vollständige Abtastung der Systemfähigkeitstabelle bei angehaltenem System und
- (II) eine durchgehende Abtastung der Systemfähigkeitstabelle erfordert die Anwendung eines relativ langen Stapels.
Gemäß dem Gesichtspunkt (I) würde der Algorithmus offensichtlich
zusammenbrechen, wenn andere Prozesse ihre
Datenstrukturen gleichzeitig mit der Durchführung der
Ausschußerfassungsabtastung ändern würden. Wenn das System
für ein Arbeiten im Echtzeitbetrieb ausgelegt ist, sind
solche Vorfälle unannehmbar. Wenn nun der Gesichtspunkt
(II) betrachtet wird, können Anordnungen durch Modifizieren
der Knoten während der Abwärtsabtastung getroffen
werden, so daß sie Aufwärtshinweise auf die bereits abgetasteten
Knoten enthalten. Solche Operationen erfordern
jedoch eine Modifikation der Segmenteinträge der Systemfähigkeitstabelle
oder der Fähigkeitshinweise während der
Ausschußabtastung und würden somit die Gültigkeit des
Rests der Eintragung gefährden und daher die Fähigkeitsanordnungen
des Systems verdächtig machen.
Aufgabe der Erfindung ist es, ein gattungsgemäßes Speicherverwaltungssystem
für die Bedürfnisse im Echtzeitbetrieb
auszubilden.
Gelöst wird diese Aufgabe erfindungsgemäß durch die im
kennzeichnenden Teil des Patentanspruchs 1 angegebene
Ausbildung des Speicherverwaltungssystems.
Vorteilhafte Weiterbildungen der Erfindung sind in den
Unteransprüchen angegeben.
Die Erfindung wird nun anhand der Zeichnung beispielshalber
erläutert. Es zeigt
Fig. 1 ein vereinfachtes Blockschaltbild einer typischen
modularen Mehrprozeßanordnung für die Verwendung
bei der Ausführungsform nach der Erfindung,
Fig. 2 eine schematische Darstellung der System- und
Prozeßtabellen, die bei den von einem Prozessor
durchgeführten Operationen beteiligt sind, die
für die erfindungsgemäße Ausführungsform gelten,
Fig. 3 ein Flußdiagramm eines Ausschußerfassungsalgorithmus
gemäß der Ausführungsform der Erfindung,
Fig. 4a und 4b Seite an Seite mit Fig. 4b auf der rechten
Seite ein Blockschaltbild eines Prozessormoduls
für die Verwendung bei der Ausführungsform der
Erfindung,
Fig. 5 eine Darstellung des Akkumulatorstapels des
Prozessormoduls der Fig. 4a und 4b,
Fig. 6 eine Darstellung des Fähigkeitsregisterstapels
des Prozessormoduls nach den Fig. 4a und 4b,
Fig. 7 ein Flußdiagramm eines Fähigkeitsregister-Ladebefehls
und
Fig. 8 eine schematische Darstellung der bei der Ausführung
eines Fähigkeitsregister-Ladebefehls
durchgeführten Operationen.
Unter Bezugnahme auf Fig. 1 sei zunächst eine typische
Mehrprozessor-Datenverarbeitungsanlage betrachtet, die
auf modularer Basis organisiert ist und von Prozessormodulen
Gebrauch macht, die Einrichtungen enthalten, die
für die bevorzugte Ausführungsform der Erfindung geeignet
sind. Die Anordnung besteht typischerweise aus (I) einem
Hauptspeicher mit mehreren Speichermodulen SM 1 bis SM 4,
(II) mehreren Prozessormodulen CPUA, CPUB und CPUC, (III)
mehreren Peripherieeinheiten PU 1, PU 2, PUA bis PUN und
(IV) ein Übertragungsmedium ICM für Übertragungen zwischen
den Speichermodulen und den Prozessormodulen oder den
Peripherieeinheiten. Die tatsächliche Anzahl der verschiedenen
in Fig. 1 dargestellten Module ist nur als typisches
Beispiel ohne jede Einschränkung angegeben.
Jeder Prozessormodul kann über das Übertragungsmedium ICM
mit jedem der Speichermodule SM 1 bis SM 4 verbunden werden,
und der Speicher MEM speichert alle Anwendungs- und
Leitprogramme sowie Arbeitsdaten und Dauerdaten für
jeden Prozeß. Während der Durchführung eines Prozesses
gibt ein Prozessormodul eine Bedarfsmeldung an das Übertragungsmedium,
die die erforderliche Speicheradresse
anzeigt, und das Übertragungsmedium leitet die Zugriffsbedarfsmeldungen
mit Zeitteilung zu den verschiedenen
Speichermodulen.
Typische Peripherieeinheiten PU 1 können ein Plattenspeicher
sein, der als Hilfsspeicher für den Hauptspeicher MEM verwendet
wird. In solchen Fällen ist es von Zeit zu Zeit
notwendig, Informationssegmente aus dem Plattenspeicher
zu entnehmen und in definierte Bereiche des Hauptspeichers
MEM einzugeben. Eine solche Operation wird durch einen
Eingabe/Ausgabe-Abhandlungsprozeß ausgelöst, der in asynchroner
Weise die erforderlichen Übertragungen zwischen
dem Plattenspeicher und dem Hauptspeicher ausführt. Nach
Beendigung der Übertragung informiert der den Prozeß ausführende
Prozessor den Systemorganisationsprozeß, wodurch
ermöglicht wird, daß alle Prozesse, die in Erwartung der
Vollendung der Übertragung ausgesetzt worden sind, zur
weiteren Ausführung freigegeben werden. Die Operationen
eines Unterbrechungssystems der geschilderten Art sind in
der GB-PS 13 32 797 beschrieben.
Bei einem modularen Datenverarbeitungssystem, für das
sich die Erfindung besonders eignet, wie bereits angegeben
worden ist, ist der Speicher auf der Basis der Segmentierung
aufgebaut. Alle Programmdaten sowie die Arbeits- und
Dauerdaten des Prozesses sind in segmentierter Form auf
die verschiedenen Speichermodule des Systemspeichers verteilt.
Jeder Prozessormodul ist mit mehreren sogenannten
Fähigkeitsregistern ausgestattet, die jeweils so ausgebildet
sind, daß sie ein Fähigkeitswort enthalten, das sich
auf ein Speichersegment bezieht, zu dem der Prozessor bei
der Durchführung des gerade laufenden Prozesses einen Zugriff
benötigt. Eine solche Anordnung ist in der
GB-PS 13 29 721 beschrieben.
Zwei der Fähigkeitsregister in einem Prozessormodul werden
dazu verwendet, Fähigkeitswörter zu speichern, die sich
auf eine sogenannte Haupt- oder Systemfähigkeitstabelle
und auf eine sogenannte Reservefähigkeits-Hinweistabelle
beziehen. Die Systemfähigkeitstabelle enthält für jedes
Segment im Systemspeicher eine Eintragung, und jede Eintragung
enthält Informationen, die die Basis- und die
Grenzadressen des Segments definieren, auf das sich die
Eintragung bezieht. Die Systemfähigkeitstabelle liefert
somit Informationen über den Ort des Blocks im Speicher
für jedes Informationssegment.
Die bevorzugte Ausführungsform der Erfindung eignet sich
für die Verwendung in einem Mehrprozessorsystem, in dem
jeder Prozessormodul selbst keinen wesentlichen internen
Speicher enthält und einen direkten Zugriff auf alle Speichermodule
des Systemspeichers hat. Jeder Prozessormodul
ist typischerweise so ausgeführt, wie in der GB-PS 13 29 721
angegeben ist, und die Anordnung wird allgemein im Echtzeitbetrieb
eingesetzt, wie es beispielsweise bei speicherprogrammgesteuerten
Fernsprechvermittlungssystemen der
Fall ist. In einem solchen System kann der Steueralgorithmus
typischerweise in mehrere Anwendungsprogramme aufgeteilt
sein, von denen jedes mit einem speziellen Aspekt
der Herstellung einer Fernsprechverbindung und der Vermittlungsschaltungs-
Verwaltungsprozedur befaßt ist. Zu
irgendeinem Zeitpunkt können sich mehr als ein Anruf in
einem ähnlichen Stadium der Herstellung der Gesprächsverbindung
befinden, so daß sich die gleichen Anwendungsprogramme
durch verschiedene Prozessormodule gleichzeitig in
der Ausführung befinden können. Als Folge davon müssen
die Systemsteuerprogramme einzeln jeden Durchlauf eines
Anwendungsprogramms, beispielsweise für Organisationszwecke,
einzeln identifizieren können. Typischerweise wird
jeder Durchlauf eines Anwendungsprogramms als ein Prozeß
angesehen, und vom Organisationsstandpunkt aus ist ein
aktiver Prozeß gleich einer auszuführenden Aufgabe. Jedem
Prozeß wird bei Beginn seines Ablaufs sein eigener Abspeicherstapel
und seine eigene Reserve-Fähigkeitshinweistabelle
zugeordnet. Jeder Abspeicherstapel bildet ein
Speichersegment, in das Arbeitsparameter jedesmal dann
abgespeichert werden, wenn der Prozeß vor Erreichen seines
Endes ausgesetzt wird. Die Reserve-Fähigkeitshinweistabelle
definiert alle Systemeinrichtungen, die für die Ausführung
des Prozesses erforderlich sind. Die Systemeinrichtungen
umfassen alle Speichersegmente, sowohl Hauptspeichersegmente
als auch Hilfsspeichersegmente, sowie alle Systemelemente,
wie Unterprogramme, die sich auf Rechner, Peripheriegeräte
und dergleichen beziehen, die für die Ausführung
des Prozesses erforderlich sind. Jeder Punkt in
der Reserve-Fähigkeitshinweistabelle definiert eine Systemeinrichtung.
Die Punkte der Reserve-Fähigkeitshinweistabelle,
die sich auf Speichersegmente beziehen, enthalten
ein Hinweisfeld und ein Zugriffscodefeld. Der Hinweis
definiert in relativer Weise das erste Wort einer aus
drei Wörtern bestehenden Eintragung in der Systemfähigkeitstabelle,
die den Ort des Segments im Speicher definiert,
während der Zugriffscode die Art des Zugriffs
(nur Lesen, Lesen und Schreiben usw.) definiert, die dem
Prozeß für dieses Segment erlaubt werden soll. Die zwei
höchstwertigen Bits des Zugriffscodes werden bei einer
Einstellung auf den Zustand "11" für die Definition verwendet,
daß sich die Eintragung auf einen verwendbaren
Platz in der Systemfähigkeitstabelle bezieht. Die Punkte
der Reserve-Fähigkeitshinweistabelle, die sich auf Systemeinrichtungen
wie ein Segment im Hilfsspeicher oder die
Unterprogramme zur Abhandlung von Zugriffen auf Peripheriegeräte
usw. beziehen, sind so ausgebildet, daß das Zugriffscodefeld
den Typ der Einrichtung definiert, während sich
das Hinweisfeld auf die die spezielle Einrichtung definierende
Eintragung bezieht. Typischerweise bezeichnen die
zwei höchstwertigen Bits des Zugriffscodes allgemein den
Typ der Einrichtung.
Offensichtlich gehören einige Informationssegmente mehreren
Prozessen gemeinsam an, während andere nur zu einem
speziellen Prozeß gehören.
Nach der Erfindung wird von einer freien Kapazität in
einer Eintragung der Systemfähigkeitstabelle im Zugriffscodeabschnitt
des dritten Worts Gebrauch gemacht, um für
die volle Steuerung der Zuordnung und Freigabe des Segments
und der Eintragung in der Tabelle selbst zu sorgen.
Wie bereits erwähnt wurde, ergibt sich in einem modularen
Speichersystem aufgrund der Tatsache ein Ausschuß, daß
eine ausdrückliche Freigabe von Speichersegmenten nicht
zwingend erfolgen muß. Ein Benutzerprozeß gibt ein Speichersegment
stillschweigend frei, wenn er alle Bezugnahmen
auf dieses Speichersegment verliert. Da alle Bezugnahmen
auf Speichersegmente über die Fähigkeitsanordnungen erfolgen,
bedeutet dies, daß der Benutzer alle Fähigkeiten
verliert, die sich auf diesen Teil des Speichers beziehen.
Beispielsweise sei angenommen, daß der Benutzer einen
Block des Speichers S nach Fig. 2 aufweist, für den dem
Benutzer ein einzelner Fähigkeitshinweis zugeordnet ist,
der sich mit der Versetzung x in einer Reserve-Fähigkeitshinweistabelle
RCP befindet. Wenn der Hinweis RCP (x) der
einzige Hinweis ist, den der Benutzer für den Speicher S
hat und kein anderer Benutzer Zugang zu diesem Speicher S
hat, dann kann der Benutzer den Speicher S einfach durch
Überschreiben des Hinweises RCP (x) freigeben; in diesem
Fall kann der Benutzer (oder jeder andere Prozeß) dann
keinen Zugriff auf den Speicher S durch zulässige Mittel
mehr ausüben. Das Speichersegment S ist nun ein Ausschußsegment
geworden, obgleich für das Betriebssystem keine
Möglichkeit besteht, aus dem Überschreibungsvorgang durch
den Benutzer Kenntnis über diesen Sachverhalt zu erlangen.
Dabei ist wichtig, sich daran zu erinnern, daß trotz des
Überschreibens des Hinweises die Eintragung in der Segmentfähigkeitstabelle
so verbleibt, daß die Kenntnis über die
Größe und den Ort des Speichersegments S durch Untersuchen
dieser SCT-Eintragung durch einen ausreichend privilegierten
Prozeß bestimmt werden kann. In dem geschilderten Fall
ist das Segment S nicht nur ein Ausschußsegment, sondern
die Eintragungsstelle SCT (p) wird auch nicht mehr benötigt.
Eines der Ziele der Ausschußerfassung besteht darin,
solche Blöcke und SCT -Eintragungen auszusuchen. In genau
der gleichen Weise könnte das Speichersegment S aus einem
Block aus Fähigkeitshinweisen bestehen, auf die lediglich
durch CP (x) Bezug genommen wird. Wenn der Hinweis CP (x)
nur der Hinweis auf das Speichersegment S ist und der
Benutzer diesen Hinweis überschreibt, dann sind wie zuvor
die Eintragung P und das Speichersegment S nicht mehr zugänglich.
Es sei jedoch bemerkt, daß in diesem Fall möglicherweise
mehr als nur die Eintragung P und das Speichersegment
S isoliert worden sind, da das Speichersegment S
aus einem Block aus Fähigkeitshinweisen besteht. Alle
einzelnen Hinweise innerhalb des Speichersegments S und
der Speicher, auf den sie Bezug nehmen, sind offensichtlich
ebenfalls isoliert. Dies könnten selbst weitere Fähigkeitsblöcke
sein. Die Eintragung P könnte sich also auf eine
beliebig komplizierte Datenstruktur aus Fähigkeits- und
Datenblöcken beziehen, und das Überschreiben des Hinweises
CP (x) verursacht die Isolierung aller Teile dieser Datenstruktur,
auf die über einige Wege (innerhalb oder außerhalb
der Datenstruktur), die außerhalb der Datenstruktur
beginnen, kein Zugriff mehr ausgeübt werden kann.
Zu jedem gegebenen Zeitpunkt ist "Ausschuß" (garbage)
als das definiert, das für einen Benutzer bei der Durchführung
normaler Datenstrukturdurchläufe nicht mehr zugänglich
ist. Zwei Punkte sind dabei erwähnenswert:
- (I) Die Systemprogramme, die einen Datenzugriff auf die Systemfähigkeitstabelle ausüben können, können einen Zugriff auf jeden Teil des Systems ausüben, da das System vollständig in eine Fähigkeitsstruktur organisiert ist und die Segmentfähigkeitstabelle alle Fähigkeiten enthält; solche Programme werden daher nicht als Programme betrachtet, die "normale Datenstrukturdurchläufe" ausführen.
- (II) Diese Definition von "Ausschuß" umfaßt solche Datenstrukturen nicht, mit denen ein Benutzer fertig ist und die von ihm nicht ausdrücklich freigegeben worden sind oder für die er alle seine Hinweise nicht zerstört hat.
Vor der genauen Betrachtung des Ausschußerfassungsalgorithmus
von Fig. 3 wird vorteilhafterweise zunächst auf
die vom Prozessormodul gemäß den Fig. 4a und 4b gebildeten
Einrichtungen eingegangen.
Der Prozessormodul enthält ein Befehlsregister IR, einen
Registerstapel aus Akkumulator/Arbeitsregistern ACC STK,
ein Ergebnisregister RESREG, ein Operandenregister OPREG,
ein Mikroprogramm-Leitwerk μ PROG, ein Rechenwerk MILL,
einen Komparator COMP, ein Speicherdateneingaberegister
SDIREG, zwei Speicherschutz-Fähigkeitsregisterstapel BASE STK
und TC/LMT STK und eine Gruppe von Maschinenanzeigeregistern
PIR (primär), SIR (sekundär) und FIR (Fehler). Typischerweise
können die drei Registerstapel (ACC STK,
BASE STK und TC/LMT STK) unter Verwendung sogenannter
Zwischenspeichereinheiten aufgebaut sein, die mit Leitungsauswahlschaltungen
(SELA, SELB bzw. SELL) ausgestattet
sind, die die Verbindung des erforderlichen Registers
des Stapels mit dessen Eingangs- und Ausgangswegen
steuern.
Die Prozessoreinheit ist zur Durchführung der Parallelverarbeitung
organisiert, doch sind zur Vereinfachung der
Darstellung die verschiedenen Datenwege in den Fig. 4a
und 4b als einfache Leitungen dargestellt. Der Prozessormodul
ist mit einer Hauptübertragungsleitung MHW, einer
Speichereingabe-Übertragungsleitung SIH und einer Speicherausgabe-
Übertragungsleitung SOH ausgestattet. Jede
dieser Übertragungsleitungen ist typischerweise für eine
Übertragung von 24 Bits entsprechend einem Speicherwort
ausgebildet, und den Speicherübertragungsleitungen SOH
und SIH sind Steuersignal-Übertragungsleitungen SOHCS und
SIHCS zugeordnet. Diese Steuersignal-Übertragungsleitungen
werden dazu verwendet, Steuersignale zwischen dem Prozessormodul
und dem Speicher zu übertragen, und sie enthalten
eine sogenannte Zeitsteuerader und Steueradern für Speicherzugriffe
über die Leitung SIHCS (zum Lesen, Lesen und
Schreiben usw.). Der Speicher ist in den Fig. 4a und 4b
zwar nicht dargestellt, doch sei angenommen, daß die Übertragungsleitungen
SIH und SOH über das Systemübertragungsmedium
mit dem Systemspeicher verbunden sind. Somit entsprechen
die Übertragungsleitungen SIH und SOH zusammen
mit ihren zugeordneten Steuersignal-Übertragungsleitungen
SIHCS und SOHCS zusammen einem Übertragungsweg wie dem
Weg SH von Fig. 1.
Diese Zwischenspeichereinheit wird zur Bereitstellung
einer Anzahl von Akkumulatorregistern (ACC 0-ACC 7)
verwendet, die auch als Maskenregister oder Änderungsregister
benutzt werden können, und das davon benötigte
Register wird durch eine entweder vom Mikroprogrammleitwerk
μ PROG, einem Registerwählfeld oder einem Modifizierungswählfeld
im Befehlswort im Register IR an die Leitungen
RSEL angelegten Codegruppe ausgewählt. Im Akkumulatorregisterstapel
ACC STK ist auch eine Gruppe sogenannter
verdeckter Register enthalten, die ein Ablaufsteuerregister
(SCR), ein Unterbrechungsannahmeregister (IAR),
ein Maschinenfehler-Anzeigeregister (MFI) und ein Abspeicherstapel-
Abwärtshinweisregister (DSPP) nach Fig. 5
enthalten. Die Bedeutung dieser verdeckten Register wird
später noch erkennbar. Das für eine Operation benötigte
Register wird dadurch ausgewählt, daß eine Auswahlcodegruppe
zu der dem Akkumulatorstapel zugeordneten Auswahleinheit
SELA (Fig. 4a) übertragen wird.
Diese Zwischenspeichereinheit wird dazu verwendet, eine
Anzahl von "halben" Fähigkeitsregistern für den Prozessormodul
bereitzustellen. Es wurde bereits oben erwähnt, daß
das Speicherschutzsystem mehrere sogenannte Fähigkeitsregister
enthält, von denen jedes ein Fähigkeitswort aus
einer Segmentangabe (Basisadresse) und einer die Art des
zulässigen Zugriffs anzeigenden Codegruppe enthält. Der
Basisregisterstapel enthält die Basisadressen aller Fähigkeitsregister.
Auf der linken Seite von Fig. 6 sind die
in diesem Stapel enthaltenen Fähigkeitsregister dargestellt;
sie bestehen aus acht sogenannten Arbeitsspeicher-
Fähigkeitsregistern WCR 0-WCR 7 und aus einer Anzahl sogenannter
verdeckter Fähigkeitsregister. In Fig. 6 sind nur
drei verdeckte Fähigkeitsregister dargestellt (DCR, NICR
und MCR), da dies die einzigen verdeckten Fähigkeitsregister
sind, die für das Verständnis der Erfindung von
Bedeutung sind. Die Arbeitsspeicher-Fähigkeitsregister
können durch Auswahlcodefelder im Maschinenbefehlsregister
IR oder durch Mikroprogrammsteuersignale ausgewählt
werden, während die verdeckten Fähigkeitsregister nur
durch spezielle Befehlswortsteuercodegruppen und durch
vom Mikroprogramm erzeugte Auswahlcodegruppen ausgewählt
werden können.
Die Arbeitsspeicherfähigkeitsregister werden zur Speicherung
von Fähigkeitswörtern verwendet, die einige der Arbeitsbereiche
des Speichers definieren, auf die ein Zugriff
durch den derzeit gerade aktiven Prozeß, der vom Prozessormodul
ausgeführt wird, erforderlich ist. Eines der Arbeitsspeicherfähigkeitsregister
wird dazu verwendet, ein Fähigkeitswort
zu speichern, das eine Reserve-Fähigkeitshinweistabelle
definiert, und vereinbarungsgemäß wird die Reserve-
Fähigkeitshinweistabelle für den laufenden Prozeß von der
im Register WCR 6 enthaltenen Segmentangabe definiert.
Die verdeckten Fähigkeitsregister werden dazu verwendet,
Fähigkeitswörter zu speichern, die Segmentangaben enthalten,
die die Verwaltungssegmente definieren. Das Fähigkeitsregister
DCR ist das Abspeicherfähigkeitsregister,
und das darin befindliche Wort definiert das Segment, in
das die Parameter des derzeit gerade laufenden Prozesses
abgespeichert werden sollen, wenn die Operationen dieses
Prozesses ausgesetzt werden. Das Fähigkeitsregister NICR
enthält ein Fähigkeitswort, dessen Segmentangabe ein
Segment definiert, in dem ein Hinweis gespeichert ist,
der die Fähigkeit für den Abspeicherstapel des Systemunterbrechungs-
Abhandlungsprozesses definiert. Ein Zugriff
auf diesen Hinweis erfolgt dann, wenn durch eine Sperrungsdetektorschaltung
TD eine Unterbrechung erzwungen wird.
Das Fähigkeitsregister MCR enthält eine Segmentangabe für
das Segment, in dem sich die Hauptfähigkeitstabelle befindet.
Die Bedeutung aller dieser Segmente und ihrer Segmentangaben
wird später bei der Betrachtung der genauen Arbeitweise
des Systems gemäß den Merkmalen der Erfindung noch
ersichtlich.
Jede Basisadresse eines Fähigkeitsregisters bezeichnet
(a) den Speichermodul (8 Bits), in dem sich das Segment
befindet, und (b) die Basis- oder Anfangsadresse des Segments
innerhalb des Speichermoduls (16 Bits).
Dieser Stapel bildet die andere Hälfte der Fähigkeitsregister;
er ist in Fig. 6 auf der rechten Seite dargestellt.
Jedes Fähigkeitsregister wird von einer entsprechenden
Zeile sowohl im Basisstapel als auch im Grenzadressenstapel
gebildet. Jeder Speicherplatz im TC/LMT-Stapel
speichert die Grenzadresse der Segmentangabe und die die
zulässige Zugriffsart bezeichnende Codegruppe des zugehörigen
Fähigkeitsworts.
Dieses Register wird über die Hauptübertragungsleitung MHW
des Prozessormoduls gespeist; es kann zur vorübergehenden
Speicherung der Ergebnisse einer arithmetischen Operation
verwendet werden.
Dieses Register kann entweder von der Hauptübertragungsleitung
MHW oder von der Speicherausgangsübertragungsleitung
SOH gespeist werden; es dient als Zwischenregister
bei der Bildung einer Speicherzugriffsadresse. Die Versetzungsadresse
eines Befehlsworts wird in dieses Register
eingegeben, wenn ein Befehlswort aus dem Speicher geholt
wird.
Dieses Register wird zum Speichern der Steuerfelder eines
Befehlsworts verwendet, wenn dieses aus dem Speicher geholt
wird. Die Bedeutung der verschiedenen Felder wird später
bei der Ausführung eines speziellen Befehls noch erörtert.
Dieses Leitwerk steuert den Ablauf und die Durchführung
der Operationen des Prozessormoduls bei der Ausführung
jedes Befehlsschritts. Das Leitwerk gibt zeitlich festgelegte
und fortgeschaltete Einrichtungssteuersignale (μ PECS)
ab, damit (I) nach Bedarf die verschiedenen Registereingangs-
UND-Schaltungen über geeignete Signale an den unbezeichneten
Leitungen dieser Schaltungen aktiviert werden,
(II) die Operation des Rechenwerks MILL (über Leitungen
AU μ S) gesteuert werden, (III) die Operationen des Komparators
COMP (über die Leitung C μ S) gesteuert wird und (IV)
die Einstellung einiger Primäranzeiger (über Leitungen μ PIC),
der Sekundäranzeiger (über Leitungen μ SIC) und der Fehleranzeiger
(über Leitungen μ FIC) gesteuert wird. Das Mikroprogrammleitwerk
kann auch (I) verschiedene Register für
die Verwendung in einem Mikroablauf über Leitungen CRSEL
und RSEL auswählen, (II) den Inhalt der Speichereingaberegister
SDIREG (über die Leitung +1 S) erhöhen und (III)
Speicherzugriffs-Steuercodegruppen an der Übertragungsleitung
SIHCS erzeugen und die Zeitsteuerader dieser Übertragungsleitung
aktivieren. Im übrigen Abschnitt des
Prozessormoduls werden verschiedene Steuer- und Bedingungssignale
erzeugt und in das Mikroprogrammleitwerk μ PROG eingegeben.
Diese Signale sind als folgende Signale angegeben:
(a) Bedingungssignale aus dem Rechenwerk MILL an den Leitungen
AUCS, (b) Bedingungs- und Anzeigesignale aus dem
Komparator COMP an den Leitungen CIS, (c) Anzeigesignale
aus den Primär- und Sekundäranzeigeregistern PIR und SIR
an den Leitungen ICS und (d) Anzeigesignale aus dem Fehleranzeigeregister
FIR an den Leitungen FICS.
Diese Einheit ist ein herkömmliches Rechenwerk, das
parallele Rechenoperationen mit Datenwörtern durchführen
kann, die ihm über seine beiden Eingänge zugeführt werden.
Das von ihm erzeugte Ergebnis wird über die Hauptübertragungsleitung
MHW einer vom Mikroprogramm festgelegten
Bestimmung zugeführt. Die vom Rechenwerk MILL tatsächlich
durchgeführten Operationen werden von den dafür vorgesehenen
Mikroprogrammsteuersignalen AU μ S festgelegt.
Gewisse Bedingungssignale wie Überlauf werden vom Rechenwerk
MILL erzeugt und entweder in das Primäranzeigeregister
PIR oder in das Mikroprogrammleitwerk μ PROG (Signale
AUCS) eingegeben.
Diese Einheit vergleicht die in das Speicherdateneingaberegister
SDIREG geladene Adresse und die erforderlichen
Zugriffsoperationen mit den Begrenzungen (d. h. Basis und
Grenze) sowie der die zulässige Zugriffsart definierenden
Codegruppe des zu dem erforderlichen Speicherzugriff gehörigen
Fähigkeitsworts. Die vom Komparator erzeugten
Bedingungsanzeigeausgangssignale CIS werden in das Mikroprogrammleitwerk
μ PROG eingegeben. Die Bedeutung der
Funktion des Komparators wird noch ersichtlich.
Dieses Register wirkt als Ausgaberegister für den Prozessormodul;
Adressen- und Arbeitsdaten für die Weitergabe zum
Speicher werden in diesem Register vor ihrer Weitergabe
über die Speichereingangsübertragungsleitung SIH in diesem
Register gesammelt.
Dieses Register wird zum Speichern von 8 Primäranzeigern
verwendet, die im Prozeßabspeicherstapel festgehalten
werden müssen, wenn ein Prozeß ausgesetzt wird. Typischerweise
gibt es folgende Primäranzeiger:
- Bit 0 - Rechenergebnis gleich Null
- Bit 1 - Rechenergebnis kleiner als Null
- Bit 2 - Rechenergebnis Überlauf
- Bit 3 - Schreiben der inversen Parität
- Bit 4 - Zweite Gruppe
- Bit 5 - Schnittstellenfehlersperre
- Bit 6 - Halt
- Bit 7 - Erster Versuch
- Bits 8 bis 23 - Frei
Die ersten drei Anzeiger werden von allen Datenbefehlen
beeinflußt, während die übrigen fünf Anzeiger von der
internen Hardware und von gewissen Steuerprogrammen bearbeitet
werden.
Dieses Register wird dazu verwendet, Anzeigebits zu speichern,
die in erster Linie für den internen Gebrauch durch
das Mikroprogrammleitwerk μ PROG bestimmt sind. Typischerweise
enthält dieses Register Rechenoperations-, Fehlersteuer-
und Unterbrechungsanzeiger.
Dieses Register wird dazu verwendet, Fehlerbedingungsanzeiger
zu speichern. Typischerweise enthält es Paritätsanzeiger,
Anzeiger für eine Fähigkeitsfeldüberschreitung
und für eine Fähigkeitszugriffs-Feldüberschreitung.
Der Ausschußerfassungsalgorithmus gemäß der Erfindung ist
in Fig. 3 dargestellt; er besteht aus acht Grundschritten
B 1 bis B 8. Wie bereits erwähnt wurde, besteht jede Systemfähigkeitseintragung,
beispielsweise die in der Einfügung
in Fig. 3 dargestellte Eintragung SCTE, aus drei Speicherwörtern.
Diese Wörter sind (I) eine Codegruppe Summenprüfcode,
(II) eine Basisadresse und (III) eine Grenzadresse.
Die Grenzadresse ist auf die Basisadresse bezogen,
so daß demnach die acht höchstwertigen Bits dieses Worts
frei sind.
Die zwei höchstwertigen Bits der freien Zone des Grenzadressenworts
einer Systemfähigkeitstabelleneintragung
werden dazu verwendet, ein Ausschußbit GB und ein Testbit
VB für die SCT-Eintragung zu speichern, und diese Bits
werden vom Ausschußerfassungsalgorithmus gemäß der Ausführungsform der Erfindung
angewendet. Das Ausschußbit GB wird vom Ausschußerfassungsalgorithmus
zurückgesetzt und durch die Durchführung
eines Befehls zum Laden eines Fähigkeitsregisters
unter Einbeziehung dieser SCT -Eintragung gesetzt. Das
Testbit VB wird allein vom Ausschußerfassungsalgorithmus
gesetzt und zurückgesetzt. Die folgende Beschreibung ist
in Abschnitte mit Überschriften unterteilt, die den Grundschritten
des in Fig. 3 dargestellten Ausschußerfassungsprozesses
entsprechen.
Am Anfang wird dem Ausschußerfassungsprozeß folgende
Hilfsquellenliste zugeordnet: (I) ein Aktivspeicherkennzeichen,
(II) ein Folgeeintragungswort, (III) ein konstanter
Wert der Größe der SCT-Eintragung, (IV) ein konstanter
Wert für die SCT-Größe und (V) ein Hinweis auf
einen Ausgangsknotenpunkt. Die Hilfsquellen (I) bis (IV)
sind Speichersegmente; sie sind somit mit SCT-Eintragungen
versehen und haben demgemäß entsprechende Hinweise in der
Reserve-Hinweistabelle für den Ausschußerfassungsprozeß,
während die Hilfsquelle (V) lediglich durch einen geeigneten
Hinweis in der Hinweistabelle auf das Ausgangsknotenpunktsegment
vorgesehen wird. Ein typischer Ausgangsknotenpunkt
wäre eine Grundtabelle, die vom Systemorganisationsprozeß
festgehalten ist und alle derzeit gerade vom System
behandelten Prozesse identifiziert.
Bei diesem Schritt durchläuft der den Ausschußerfassungsalgorithmus
durchführende Prozessor alle SCT-Eintragungen,
und er setzt das Ausschußbit GB und das Testbit VB jeder
Eintragung auf den Wert Null. Typischerweise führt der
Prozessor eine Reihe von Befehlen "maskierter Austausch"
durch, von denen jeder die Grenzadresseneintragung aufeinanderfolgender
SCT-Eintragungen umfaßt. Vor der Durchführung
des ersten Befehls "maskierter Austausch" wird ein
Maskenregister (typischerweise das Register ACC 0) im Prozessormodul
auf eine Codegruppe 11 in den zwei höchstwertigen
Bits und in allen anderen Bits auf "0" eingestellt,
während eines der anderen Mehrzweckregister, beispielsweise
das Register ACC 1, mit einer nur aus den Werten "0"
bestehenden Codegruppe geladen wird. Der Befehl "maskierter
Austausch" hat zur Folge, daß ein vom Maskenregistermuster
ausgewähltes Zeichen- oder Bitmuster des Inhalts
des Speicherplatzes, der durch den Adressenaufbau ausgewählt
wird, zwischen dem Speicherplatz und einem von einem
Befehlswort definierten Datenregister vertauscht wird, ohne
daß der übrige Inhalt des Speicherplatzes oder des Registers
verändert wird. Die Operation des Lesens aus dem
Speicherplatz und des Zurückschreibens des neuen Werts
findet bei gesperrtem Speichermodul statt, damit ein
gleichzeitiger Zugriff von anderen Prozessoren verhindert
wird. Nach jedem Befehl "maskierter Austausch" ist die
Adresse der SCT-Eintragung um den Größenwert der SCT-Eintragung
(d. h. um 3, da drei Wörter in einer Eintragung
vorhanden sind) erhöht. Der Größenwert der SCT-Eintragung
ist natürlich bereits in einem der Modifizierungsregister,
beispielsweise dem Register ACC 2, eingestellt.
Ein Befehl zum Laden eines Fähigkeitsregisters wird bei
diesem Schritt unter Einbeziehung eines Fähigkeitsblocks
ausgeführt, der ein Ausgangsknotenpunkt (innerhalb des
Betriebssystems) für das gesamte System ist. Diese Operation
gibt dem Ausschußerfassungsalgorithmus einen
Startpunkt, da sie das Ausschußbit für eine SCT -Eintragung
mit VB = 0 auf den Wert "1" setzt, was die Durchführung
des Schritts B 5 für diesen Fähigkeitsblock ermöglicht. Es
sei bemerkt, daß derzeit gerade andere Echtzeitprozesse
ausgeführt werden, die Befehle zum Laden von Fähigkeitsregistern
umfassen, was natürlich die Operationen des
Ausschußerfassungsprozesses beschleunigt.
Die bei einem Befehl zum Laden eines Fähigkeitsregisters
tatsächlich ausgeführten Operationen sind in Fig. 7 und
in Fig. 8 dargestellt. Diese Operationen sind in der
GB-PS 13 29 721 genau beschrieben.
In Fig. 8 sind zehn in Klammern gesetzte Bezugszeichen
angegeben, die die zehn grundlegenden Schritte der Mikroprogrammfolge
zum Laden von Fähigkeitsregistern bezeichnen.
Ein Flußdiagramm dieser Mikroprogrammfolge ist in Fig. 7
dargestellt. Die verschiedenen Schritte sind in Fig. 7
mit S 1 bis S 10 entsprechend den in Klammern gesetzten
Bezugszeichen von Fig. 8 bezeichnet, während die Schritte,
die in Fig. 8 nicht angegeben sind, da sie interne Prozessorbetriebsschritte
sind, mit SV, SW, SX, SY und SZ
bezeichnet sind.
Die nachfolgende Beschreibung ist entsprechend den
Schritten von Fig. 7 in Abschnitte unterteilt; auf die
Fig. 4a, 4b und 8 wird häufig Bezug genommen.
Bei diesem Schritt erfolgt ein Zugriff auf den Programmblock
CRCP (Fig. 8) des laufenden Prozesses, damit eine
Leseoperation am nächsten Befehlswort mit Hilfe einer
Adresse ausgeführt wird, die durch die Einstellung des
Ablaufsteuerregisters SCR relativ zur Basisadresse des
Fähigkeitsregisters WCR 7 bestimmt ist. In den Fig. 4a
und 4b werden diese Operationen unter einer Steuerung
durch das Mikroprogrammleitwerk μ PROG dadurch ausgeführt,
daß
- (I) unter Verwendung der Leitung RSEL das Register SCR ausgewählt wird,
- (II) unter Verwendung der Leitungen CRSEL das Fähigkeitsregister WCR 7 ausgewählt wird,
- (III) die Gatter G 18 und G 7 aktiviert werden,
- (IV) dem Rechenwerk MILL die Durchführung einer Additionsoperation befohlen wird,
- (V) das Gatter G 11 geöffnet wird,
- (VI) der Komparator COMP zur Durchführung von Zugriffsart- und Grenzwertprüfungen aktiviert wird und
- (VII) das Gatter G 14 und die Übertragungsleitung SIHCS aktiviert werden.
Der Weg (I) von Fig. 8 zeigt die Operationen dieses
Schritts schematisch an.
Bei diesem Schritt wird das Eingeben des Befehlsworts, auf
das im Schritt S 1 ein Zugriff ausgeübt worden ist, in den
Prozessormodul gesteuert. Das Mikroprogrammleitwerk μ PROG
(Fig. 4b) öffnet die Gatter G 1, G 2 und G 3, wenn die Zeitsteuerader
der Steuersignalleitung SOHCS in der Speicherübertragungsleitung
anzeigt, daß das aus dem Speicher
gelesene Wort (in diesem Fall das Befehlswort) an der
Speicherausgangsübertragungsleitung SOH anliegt. Das gelesene
Befehlswort ist in Fig. 8 oben dargestellt; es besteht
aus mehreren Verwaltungsfeldern (Bits 10 bis 24)
und aus einem Adressenversetzungsfeld A (Bits 1 bis 9).
Die Verwaltungsfelder definieren:
- (a) mit Hilfe der Bits 10 bis 12 (CRPT) das Fähigkeitsregister WCR 7, das sich auf die Reserve-Fähigkeitshinweistabelle bezieht,
- (b) in den Bits 13 bis 15 (MOD) den als Adressenänderungsregister zu verwendenden Akkumulator,
- (c) in den Bits 16 bis 18 (CRL) das zu ladende Fähigkeitsregister,
- (d) in den Bits 19 bis 23 (LDCR) die Funktionscodegruppe, die in diesem Fall den Befehlsgeber zum Laden des Fähigkeitsregisters bestimmt, und
- (e) im Bit 24 (S) das direkte oder Speicheroperations-Bit.
Der Weg (2) von Fig. 8 zeigt schematisch die Operationen
dieses Schritts.
Bei diesem Schritt bringt das Mikroprogrammleitwerk μ PROG
von Fig. 4a die Leitungen CRSEL in einen solchen Zustand,
daß das vom CRPT-Feld des Befehlsworts bestimmte Arbeitsfähigkeitsregister
ausgewählt wird. Diese Operation ist
in Fig. 8 durch den Weg (3) angegeben.
Bei diesem Schritt wird die Adresse des Reserve-Fähigkeitshinweisausdrucks
gebildet; der Weg (4) von Fig. 8 gibt
diese Operation an. Das Mikroprogrammleitwerk μ PROG aktiviert
die Gatter G 4 und G 5 und befiehlt dem Rechenwerk MILL,
eine Additionsoperation auszuführen und die Gatter G 11 und
G 14 zu aktivieren. Gleichzeitig mit der Aktivierung des
Gatters G 14 wird an die Übertragungsleitung SIHCS eine
Lesecodegruppe angelegt, und die Zeitsteuerader wird
aktiviert.
Bei diesem Schritt legt das Mikroprogrammleitwerk an die
Leitungen SRSEL von Fig. 4a die Information aus dem CRL-
Feld an, damit das zu ladende Fähigkeitsregister (WCRX
von Fig. 8) ausgewählt wird. Der Weg (5) in Fig. 8 zeigt
die bei diesem Schritt ausgeführten Operationen.
Bei diesem Schritt wird das Reserve-Fähigkeitshinweiswort
(d. h. die Zugriffsart-Codegruppe des Fähigkeitsworts und
der Adressenversetzungswert des Reserve-Fähigkeitshinweises)
in den Prozessormodul aus der Speicherausgangsübertragungsleitung
SOH eingegeben. Die Zugriffsart-Codegruppe wird in
den TC-Abschnitt des Grenzadressenstapels LIM STK an den
im Schritt S 5 ausgewählten Speicherplatz eingegeben, während
das ganze Wort einschließlich der Zugriffsart-Codegruppe
und des Adressenversetzungswerts in das Operandenregister
OPREG eingegeben wird. Diese Operationen, die in
Fig. 8 durch den Weg (6) angegeben sind, werden unter der
Steuerung durch das Mikroprogramm durch Aktivieren der
Gatter G 2, G 3 und G 19 in den Fig. 4a und 4b ausgeführt,
wenn die Zeitsteuerader der Steuersignalübertragungsleitung
SOHCS aktiviert wird.
Bei diesem Schritt, der durch den Weg (7) in Fig. 8 angegeben
ist, wird der im Operandenregister OPREG (Fig. 4b)
sitzende Reserve-Fähigkeitshinweis in den Abspeicherstapel
des gerade laufenden Prozessors übertragen, der für das zu
ladende Fähigkeitsregister reserviert ist. Diese Operation
wird unter der Steuerung durch das Mikroprogramm dadurch
ausgeführt, daß
- (I) über die Leitungen CRSEL das Fähigkeitsregister DCR des Prozeßabspeicherstapels ausgewählt wird,
- (II) das Gatter G 5 aktiviert wird,
- (III) eine Versetzungsadressen-Codegruppe an den Leitungen GOS erzeugt wird, die die Versetzungsadresse des im Abspeicherstapel benötigten Worts bestimmt,
- (IV) das Rechenwerk MILL zur Durchführung einer Additionsoperation aktiviert wird,
- (V) die Gatter G 11 und G 14 aktiviert werden und
- (VI) ein Zugriff auf den Speicher zur Durchführung einer Schreiboperation ausgeführt wird.
Bei der nachfolgenden Schreiboperation ist der Inhalt des
Operandenregisters beteiligt, der über die Gatter G 4, G 11
und G 14 in den Speicher gegeben wird.
Bei diesem Schritt wird die beim Schritt S 6 in den TC-
Abschnitt des Grenzstapels LIM STK eingegebene Zugriffsart-
Codegruppe daraufhin überprüft, ob sie sich auf eine
Fähigkeit "Kein Speicher" bezieht. Wenn der Fähigkeitshinweis
auf einen "Kein Speicher"-Hinweis zeigt, wird der
Schritt SW ausgeführt.
Bei diesem Schritt wird erneut das Fähigkeitsregister WCRX
ausgewählt, und die Gatter G 19 und G 20 in den Fig. 4a
und 4b werden unter der Steuerung durch das Mikroprogramm
aktiviert. Dies hat zur Folge, daß in beide Hälften des
Fähigkeitsregisters WCRX der Wert "Null" (die laufende
Ausgangsgröße aus dem Rechenwerk MILL an der Übertragungsleitung
MHW) geschrieben wird, und die Mikroprogrammbefehlsfolge
zum Laden des Fähigkeitsregisters wird beendet. Wenn
sich also die in der Reserve-Fähigkeitshinweistabelle einer
Fähigkeit enthaltene Zugriffsart-Codegruppe von der eines
Speichersegments unterscheidet, dann wird der gesamte Inhalt
einschließlich der Zugriffsart-Codegruppe des entsprechenden
Fähigkeitsregisters so, wie es zu laden ist,
auf den Wert Null zurückgesetzt.
Wenn die Prüfung beim Schritt SV ein negatives Ergebnis
hatte (d. h. das gilt: TI = 0), dann wird der Schritt S 8
ausgeführt.
Bei diesem Schritt wird das erste Wort der aus drei Wörtern
bestehenden Eintragung in der Systemfähigkeitstabelle gelesen.
Diese Operation ist in Fig. 8 durch den Weg (8)
angegeben; sie umfaßt:
- (I) die Auswahl des Fähigkeitsregisters MCR,
- (II) die Aktivierung der Gatter G 4 und G 5,
- (III) die Aktivierung des Rechenwerks MILL zur Durchführung einer Additionsoperation und
- (IV) die Aktivierung der Gatter G 11 und G 14 unter der Steuerung durch das Mikroprogramm.
Wenn die Speicherleseoperation beendet ist, werden die
Gatter G 2 und G 3 geöffnet, und das Summenprüfwort wird
in das Operandenregister eingegeben. Zu diesem Zeitpunkt
wird auch das Gatter G 15 geöffnet, damit die MCT-Adresse
aufbewahrt wird.
Wie oben erwähnt wurde, wird jede Eintragung in der Systemfähigkeitstabelle
(SCT von Fig. 8) von drei Wörtern gebildet.
Das erste Wort ist so ausgebildet, daß es eine Summenprüf-
Codegruppe hinsichtlich der zwei anderen Wörter der
Eintragung bildet. Wenn eine Neuzuordnung erfolgt, zeigt
der Neuzuordnungsvorgang dem Rest des Systems an, daß der
Zugriff auf das beteiligte Segment zeitweise ausgesetzt
werden soll, indem die Eintragung in der Systemfähigkeitstabelle
markiert wird. Typischerweise werden bei dem Neuzuordnungsvorgang
in den bestimmten Speicherplatz des
Summenprüf-Codeworts lauter Signale mit dem Wert "Null"
geschrieben. Da die Summenprüf-Codegruppe S-CX für den
in das Fähigkeitsregister WCRX zu ladenden Segmenthinweis
derzeit im Operandenregister sitzt, wird der Schritt SZ
daher für die Prüfung benutzt, ob das Segment neu zugeordnet
wird.
Das Mikroprogrammleitwerk μ PROG (Fig. 4a und 4b) überprüft
den Zustand des Signals an der Leitung OP = 0 aus der
Nulldetektorschaltung ZD daraufhin, ob die Summenprüf-
Codegruppe den Wert Null hat.
Wenn das Signal an der Leitung OP = 0 den Signalwert "1"
hat, dann wird der Schritt SW ausgeführt, ehe die Mikroprogrammfolge
zum Laden des Fähigkeitsregisters verlassen
wird. Wenn jedoch an der Leitung OP = 0 der Signalwert "0"
anliegt, wird der Schritt S 9 ausgeführt.
Bei diesem in Fig. 8 durch den Weg (9) angegebenen Schritt
wird die Basisadresse des Hauptfähigkeitstabelleneintrags
in die Basisadressenhälfte des Fähigkeitsregisterstapels
an dem Speicherplatz eingeschrieben, der vom CRL-Feld des
Befehlsworts bestimmt wird.
Bei diesem Schritt, der in Fig. 8 durch den Weg (10) angegeben
ist, wird die Grenzadresse der Systemfähigkeitstabelleneintragung
in die Grenzadressenhälfte des zu
ladenden Fähigkeitsregisters (WCR 7) eingelesen. Gleichzeitig
wird das empfangene Grenzadressenwort der SCT-Eintragung
über die Gatter G 3 in das Operandenregister OPREG
gelesen.
Bei diesem Schritt wird der empfangene Summenprüfwert mit
einem intern erzeugten Summenprüfwert überprüft, der unter
Verwendung der tatsächlichen geladenen Basis- und Grenzwerte
gebildet wird. Wenn der empfangene Summenprüfwert
nicht mit dem intern erzeugten Summenprüfwert übereinstimmt,
wird ein Fehlerzustand gemeldet. Die dabei tatsächlich
bezeichneten Operationen sind in dieser Beschreibung
nicht angegeben, da sie nicht zur Erfindung gehören.
Es sei jedoch bemerkt, daß bei der Speicherung jedes
Teils der SCT-Eintragung im Fähigkeitsregister die Basis-
und Grenzadressenwerte vom Summenprüfwert abgezogen werden
können und daß das Ergebnis im Ergebnisregister RES REG
festgehalten werden kann. Die Gatter G 16 werden dabei dazu
verwendet, den berechneten internen Summenprüfwert an das
Rechenwerk MILL anzulegen und die empfangene Adressenwertparität
davon über G 3 und G 4 und das Operandenregister OPREG
zu führen. Offensichtlich ist ein Fehler aufgetreten, wenn
das Ergebnisregister am Ende dieses Schritts nicht den
Wert "0" enthält.
Bei diesem Schritt wird das Grenzadressenwort der SCT-Eintragung,
die sich derzeit im Operandenregister OPREG befindet,
über die Gatter G 4 an das Rechenwerk MILL angelegt,
und die Rechenwerkbedingungssignale AUCS werden daraufhin
überprüft, welches der höchstwertigen Bits dieses Worts
den Wert "1" hat. Im Falle einer positiven Antwort (ja)
wird das Ausschußbit gesetzt, und der Befehl wird beendet.
Wenn das Ausschußbit nicht den Wert "1" hat, dann muß es
unter Anwendung der Schritte S 11 und S 12 gesetzt werden,
damit dem Ausschußerfassungsprozeß angezeigt wird, daß
das Segment nicht in die Ausschußerfassung einbezogen
werden soll.
Bei diesem Schritt wird die Grenzadresseneintragung durch
Öffnen der Gatter G 14 und durch setzen der SIHCS-Leitungen
auf den Zustand "Lesen und Halten" erneut gelesen. Dies
stellt sicher, daß die Schritte S 11 und S 12 durchgeführt
werden, wenn der Speichermodul, in dem sich die Systemfähigkeitstabelle
SCT befindet, blockiert ist. Wenn der
Lesevorgang beendet ist, wird das empfangene Grenzadressenwort
über die Gatter G 2 und G 3 in das Operandenregister
OPREG eingegeben.
Das Mikroprogrammleitwerk m PROG versetzt dann die Gatter G 4
in einen solchen Zustand, daß der Inhalt des Operandenregisters
OPREG an das Rechenwerk angelegt wird, und die
Rechenwerksteuersignale AU μ S werden so eingestellt, daß
das höchstwertige Bit (d. h. das Ausschußbit) in dem an
das Rechenwerk MILL angelegten Wort auf den Wert "1" gesetzt
wird. Das geänderte Grenzadressenwort wird nun über
die Gatter G 11 dem Register SDIREG zugeführt, und es wird
dann über die Gatter G 14 mit einem Schreibbetriebsbefehl
zum Speicher übertragen, der die Lese- und Halteoperation
am Speicher beendet.
Wenn nun erneut auf Fig. 3 und auf den Ausschußerfassungsprozeß
Bezug genommen wird, ist zu erkennen, daß der
Schritt B 2 damit beendet wurde, daß wenigstens ein Fähigkeitsblock
(d. h. der Ausgangsknotenpunkt) ein auf den
Wert "1" gesetztes Ausschußbit aufweist. Andere Fähigkeitsladeoperationen
sind außerdem durch weitere ablaufende
Prozesse ausgeführt worden.
Der Ausschußerfassungsprozeß ist gemäß den obigen Angaben
zugeordnet, wenn ein als Aktivspeicher bezeichnetes Kennzeichen
und ein Folgeeintragungs-Zählersegment für den
Ablauf eingeteilt worden sind. Demnach umfaßt dieser
Schritt:
- (I) einen Datenspeicherbefehl, der bewirkt, daß das das Aktivspeicherkennzeichen enthaltende Speicherwort auf eine Fehleranzeige gesetzt wird (d. h. auf den Wert "0"), und
- (II) einen Datenladebefehl, der bewirkt, daß das Folgeeintragungssegment mit Dezimal 2 geladen wird. Dieser zuletzt genannte Vorgang hat zur Folge, daß der Wert im Folgeeintragungssegment das Grenzadressenwort der ersten SCT-Eintragungen definiert.
Bei diesem Schritt wird das Grenzadressenwort der nächsten
Eintragung in der Systemfähigkeitstabelle gelesen, und das
Ausschußbit (GB) und das Testbit (VB) dieses Worts werden
geprüft. Wenn das Ausschußbit (GB) der Eintragung den Wert
"1" hat, dann wird dadurch angezeigt, daß die Segmentangabe
für dieses Segment in ein Fähigkeitsregister geladen worden
ist, seit der Ausschußerfassungsprozeß zuletzt gelaufen ist
(d. h. die SCT-Eintragung bezieht sich auf ein Aktivspeichersegment).
Wenn das Ausschußbit nicht gesetzt ist, dann
kann das Segment ein Ausschußsegment sein, jedoch müssen
weitere Prüfungen durchgeführt werden, um festzustellen,
ob das Segment selbst ein Fähigkeitsblock ist. Demgemäß
wird das Testbit (VB) der Eintragung überprüft, und wenn
dieses Bit gesetzt ist, dann zeigt dies an, daß der derzeitige
Durchlauf des Ausschußerfassungsprozesses dieses
Segment zuvor aufgesucht, d. h. getestet hat. Falls das
Testbit (VB) den Wert "0" hat, dann zeigt dies an, daß
alle Segmente, auf die diese Eintragung (falls eine vorhanden
ist) hinweist, im Ausschußbit gesetzt werden müssen,
ehe in der Systemfähigkeitstabelle weiter nach unten fortgeschritten
wird. Diese Operationen werden im Schritt B 5
ausgeführt.
Bei diesem Schritt wird das Testbit VB auf den Wert "1"
gesetzt, und wenn der Block ein Fähigkeitshinweistabellenblock
ist, werden alle Ausschußbits der Segmente, auf die
die Eintragungen des Fähigkeitshinweisblocks hinweisen,
dadurch gesetzt, daß eine Folge von Fähigkeitsregisterladebefehlen
ausgeführt wird, die jeweils einen eigenen
Hinweis aus dem Fähigkeitshinweisblock enthalten. Es sei
bemerkt, daß diese Art von Block (d. h. eine Hinweistabelle,
Daten oder ein Festprogramm) durch eine Codierung im
schraffierten Abschnitt der SCT-Eintragung definiert ist.
Wenn der gesamte Inhalt des Fähigkeitshinweistabellenblocks
markiert worden ist, wird das Aktivspeicherkennzeichen in
den Zustand "wahr" gebracht.
Bei diesem Schritt des Ausschußerfassungsprozesses wird der
Inhalt des Folgeeintragungssegments um den Wert erhöht,
der im Segment für den konstanten Wert der SCT-Eintragungsgröße
enthalten ist (d. h. NE wird um den Dezimalwert 3 erhöht,
da drei Wörter in einer SCT-Eintragung vorhanden
sind), und der erhöhte Inhalt wird mit der Anzahl der Wörter
in der Systemfähigkeitstabelle verglichen. Wenn NE
größer als die SCT-Größe ist, ist die vollständige Systemfähigkeitstabelle
abgetastet worden; gilt dagegen NE < SCT,
dann wird die die Schritte B 4, B 5 und B 6 enthaltende
Schleife für jede SCT-Eintragung mit GB = 1 und VB = 0
durchlaufen.
Bei diesem Schritt wird der Zustand des Aktivspeicherkennzeichens
abgefragt, indem das dieses Kennzeichen enthaltende
Segment gelesen wird. Wenn das Aktivspeicherkennzeichen
den wahren Signalwert hat, dann wird erneut in den Schritt
B 3 eingetreten, der den Algorithmus veranlaßt, die Systemfähigkeitstabelle
wiederholt linear abzutasten und nach
Aktiveintragungen durchzusehen, die während des laufenden
Durchlaufs des Ausschußerfassungsprozesses nicht aufgesucht
worden sind. Wenn bei einer gesamten SCT-Abtastung
keine Aktiveintragungen gefunden werden oder alle Aktiveintragungen
aufgesucht worden sind, wird der Schritt B 7
auf der "Nein"-Leitung zum Schritt B 8 verlassen.
Bei diesem Schritt gibt der Ausschußerfassungsprozeß alle
Eintragungen frei, deren Ausschußbits sich im Zustand "0"
befinden, da die Angaben dieser Segmente nicht in Fähigkeitsregister
geladen worden waren, seit der Ausschußerfassungsprozeß
begonnen hat. Typischerweise wird der
Segmentbereich (die Basis- und Grenzadressen) in eine
Speicherbereich-Freigabedatei geschrieben, und der sich
auf die freizugebende SCT-Eintragung beziehende Hinweis
wird in eine SCT-Eintragungs-Freigabeliste geschrieben.
Die Verwendung des Testbits stellt jedoch sicher, daß der
Ausschußerfassungsprozeß keine SCT-Eintragung freigibt,
bis alle aktiven Hinweistabellen abgesucht worden sind.
Dies bedeutet, daß auch dann, wenn ein Segment gerade
nicht benutzt wird (d. h. die Segmentangabe nicht in ein
Fähigkeitsregister geladen ist), wenn auf dieses Segment
eine aktive Fähigkeitshinweistabelle hinweist, der Ausschußerfassungsprozeß
das Ausschußbit des "benutzten"
Segments (oder des Segments, auf das hingewiesen wird)
in den gesetzten Zustand zwingt.
Das Aktivspeicherkennzeichen wird zusammen mit dem Testbit
verwendet, und dieses Kennzeichen wird jedesmal dann
gesetzt (d. h. in den wahren Zustand versetzt), wenn ein
aktives Fähigkeitshinweissegment (GB = 1) gefunden worden
ist, das nicht getestet worden ist. Wenn eine Ausschußerfassungsabtastung
beendet ist und ein Aktivspeicher im
rückgesetzten Zustand (im nicht wahren Zustand) aufgefunden
worden ist, müssen somit alle aktiven Fähigkeitshinweissegmente
getestet worden sein (d. h. in allen Segmenten,
auf die aktive Fähigkeitshinweissegmente hinweisen, müssen
die Ausschußbits auf den Wert "1" gesetzt worden sein),
so daß alle Eintragungen mit GB = 0 echter Ausschuß sein
müssen.
Die obige Beschreibung ist lediglich ein Ausführungsbeispiel
der Erfindung. Für den Fachmann
sind ohne weiteres Abwandlungen erkennbar. Beispielsweise
ist der Algorithmus als ein kontinuierlicher Prozeß beschrieben
worden, obgleich er in der Praxis periodisch als
ein Hintergrund-Leitprozeß abläuft. Der beschriebene Prozessormodul
ist lediglich ein typisches Beispiel, und
offensichtlich können auch andere Prozessormodule mit
ähnlichen Eigenschaften verwendet werden. Das Aktivspeicherkennzeichen
ist zwar als ein Software-Segment beschrieben
worden, doch ist offensichtlich, daß auch eine diskrete
elektronische Kippschaltung zur Durchführung dieser Funktion
verwendet werden könnte. Außerdem ist die Systemfähigkeitstabelle
in dem speziellen Ausführungsbeispiel bereits vorhanden,
und eine freie Kapazität wird für die Ausschußanzeigebits
(GB) und die Testanzeigebits (VB) verwendet,
jedoch könnte auch eine spezielle Tabelle mit einer eigenen
Eintragung für jedes Speichersegment vorgesehen werden, in
der die oben angegebenen Anzeigebits enthalten sind.
Claims (3)
1. Speicherverwaltungssystem für eine Datenverarbeitungsanordnung
mit wenigstens einem Prozessormodul und
einem Speicher, der Informationen in Segmenten enthält,
die Daten, Programmcodegruppen und Segmentlisten speichern,
wobei jeder Prozessormodul Speicherschutz-
Fähigkeitsregister enthält, in denen Segmentangaben
gespeichert sind, welche die Basis- und Grenzadresseninformation
für ein bestimmtes Segment enthalten, wobei
ferner im Speicher eine Systemfähigkeitstabelle gebildet
ist, die einen Eintrag für jedes Segment in dem System
enthält, der jeweils die Basis- und Grenzadresseninformation
eines entsprechenden Segmentes sowie ein
erstes Anzeigebit enthält, und wobei das erste Anzeigebit
ansprechend auf den Zugriff zu dem entsprechenden Segmenteintrag der
Systemfähigkeitstabelle zur Ableitung der in das Speicherschutz-
Fähigkeitsregister einzuladenden Segmentangaben des entsprechenden
Segmenteintrags der Systemfähigkeitstabelle in einen
ersten Zustand gesetzt wird,
dadurch gekennzeichnet, daß
- a) einem Prozessormodul (Fig. 4a, 4b) die Ausführung einer sich wiederholenden Folge von Operationen zur Feststellung von freizugebenden Speichersegmenten zugewiesen ist;
- b) jeder Segmenteintrag (SCTE) ein zweites Anzeigebit (VB) enthält;
- c) der Prozessormodul (Fig. 4a, 4b) das erste und das zweite Anzeigebit (GB, VB) aller Segmenteinträge (SCTE) der Systemfähigkeitstabelle (SCT) zu Beginn der Folge von Operationen in einen zweiten Zustand setzt;
- d) in der Folge von Operationen der Prozessormodul (Fig. 4a, 4b) den Zustand des ersten Anzeigebits (GB) jedes Segmenteintrags (SCTE) der Systemfähigkeitstabelle (SCT) prüft und auch das zweite Anzeigebit (VB) prüft, wenn das geprüfte erste Anzeigebit (GB) sich im ersten Zustand befand, sowie ein Freigabesignal erzeugt, wenn sich das zweite Anzeigebit (VB) im zweiten Zustand befindet;
- e) jedes zweite Anzeigebit (VB), das als im zweiten Zustand befindlich aufgefunden wurde, ansprechend auf das Freigabesignal in den ersten Zustand gesetzt wird;
- f) beim Lesen eines Segmenteintrags (SCTE) der Systemfähigkeitstabelle (SCT), welcher sich auf ein eine Segmentliste speicherndes Segment (PCRCT) bezieht, der Prozessormodul (Fig. 4a, 4b) das erste Anzeigebit (GB) des Segmenteintrags (SCTE) jedes der in diesem Segment (PCRCT) aufgeführten Segmente in den ersten Zustand setzt; und
- g) der Prozessormodul (Fig. 4a, 4b) jedes Segment, bei dem das erste Anzeigebit (GB) des entsprechenden Segmenteintrags (SCTE) als im ersten Zustand befindlich gefunden wurde, zu Ende der Folge von Operationen freigibt.
2. Speicherverwaltungssystem nach Anspruch 1, dadurch
gekennzeichnet, daß ein weiteres Anzeigebit ("Aktivspeicher")
zur Anzeige des Zustands der Operationsfolge vorgesehen
ist, welches jedesmal dann in einen ersten Zustand gesetzt
wird, wenn beim Lesen der Segmenteinträge der Systemfähigkeitstabelle
(SCT) ein eine Liste von Segmenten (RCP)
speicherndes Segment angetroffen wird.
3. Speicherverwaltungssystem nach Anspruch 2, dadurch
gekennzeichnet, daß das weitere Anzeigebit zur Anzeige des Zustandes
der Operationsfolge ("Aktivspeicher") während des
Lesens jedes Segmenteintrages (SCTE) und des Prüfens des
ersten Anzeigebits (GB) in den zweiten Zustand gesetzt wird
und die Freigabe der Segmente erst erfolgt, wenn sich das
genannte Anzeigebit (GB) im zweiten Zustand befindet.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB41139/75A GB1548401A (en) | 1975-10-08 | 1975-10-08 | Data processing memory space allocation and deallocation arrangements |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2645537A1 DE2645537A1 (de) | 1977-04-21 |
DE2645537C2 true DE2645537C2 (de) | 1988-04-14 |
Family
ID=10418288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19762645537 Granted DE2645537A1 (de) | 1975-10-08 | 1976-10-08 | Datenverarbeitungsanordnung |
Country Status (9)
Country | Link |
---|---|
US (1) | US4121286A (de) |
JP (1) | JPS607299B2 (de) |
AU (1) | AU1846776A (de) |
DE (1) | DE2645537A1 (de) |
FR (1) | FR2327594A1 (de) |
GB (1) | GB1548401A (de) |
HK (1) | HK31483A (de) |
NL (1) | NL7611198A (de) |
ZA (1) | ZA765928B (de) |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4229789A (en) * | 1977-12-22 | 1980-10-21 | Ncr Corporation | System for transferring data between high speed and low speed memories |
JPS5569855A (en) * | 1978-11-20 | 1980-05-26 | Panafacom Ltd | Data processing system |
JPS55105763A (en) * | 1979-02-05 | 1980-08-13 | Fanuc Ltd | Address instruction system |
GB2059652B (en) * | 1979-09-29 | 1983-08-24 | Plessey Co Ltd | Memory protection system using capability registers |
GB2060225B (en) * | 1979-09-29 | 1983-05-25 | Plessey Co Ltd | Multi-programming data processing system process suspension |
US4374411A (en) * | 1980-02-14 | 1983-02-15 | Hayes Microcomputer Products, Inc. | Relocatable read only memory |
US4384324A (en) * | 1980-05-06 | 1983-05-17 | Burroughs Corporation | Microprogrammed digital data processing system employing tasking at a microinstruction level |
JPS5730045A (en) * | 1980-07-31 | 1982-02-18 | Fujitsu Ltd | List processor |
US4378590A (en) * | 1980-09-03 | 1983-03-29 | Burroughs Corporation | Register allocation apparatus |
US4361878A (en) * | 1980-10-27 | 1982-11-30 | Control Data Corporation | Degradable LRU circuit |
US4366538A (en) * | 1980-10-31 | 1982-12-28 | Honeywell Information Systems Inc. | Memory controller with queue control apparatus |
US4410943A (en) * | 1981-03-23 | 1983-10-18 | Honeywell Information Systems Inc. | Memory delay start apparatus for a queued memory controller |
US4528624A (en) * | 1981-03-25 | 1985-07-09 | International Business Machines Corporation | Method and apparatus for allocating memory space based upon free space in diverse memory devices |
JPS57162165A (en) * | 1981-03-30 | 1982-10-05 | Fanuc Ltd | Re-editing system for storage area |
US4821184A (en) * | 1981-05-22 | 1989-04-11 | Data General Corporation | Universal addressing system for a digital data processing system |
US4502118A (en) * | 1981-07-07 | 1985-02-26 | Burroughs Corporation | Concurrent network of reduction processors for executing programs stored as treelike graphs employing variable-free applicative language codes |
US4447875A (en) * | 1981-07-07 | 1984-05-08 | Burroughs Corporation | Reduction processor for executing programs stored as treelike graphs employing variable-free applicative language codes |
US4388688A (en) * | 1981-11-10 | 1983-06-14 | International Business Machines Corp. | Shared TOD clock modification bit |
US4400794A (en) * | 1981-11-17 | 1983-08-23 | Burroughs Corporation | Memory mapping unit |
US4425618A (en) * | 1981-11-23 | 1984-01-10 | Bell Telephone Laboratories, Incorporated | Method and apparatus for introducing program changes in program-controlled systems |
US4509119A (en) * | 1982-06-24 | 1985-04-02 | International Business Machines Corporation | Method for managing a buffer pool referenced by batch and interactive processes |
US4700294A (en) * | 1982-10-15 | 1987-10-13 | Becton Dickinson And Company | Data storage system having means for compressing input data from sets of correlated parameters |
US4575817A (en) * | 1983-06-27 | 1986-03-11 | International Business Machines Corporation | Switching of programming routine supporting storage stacks |
US4809156A (en) * | 1984-03-19 | 1989-02-28 | Trw Inc. | Address generator circuit |
AU575182B2 (en) * | 1984-06-28 | 1988-07-21 | Wang Laboratories, Inc. | Self extending memory file |
US4775932A (en) * | 1984-07-31 | 1988-10-04 | Texas Instruments Incorporated | Computer memory system with parallel garbage collection independent from an associated user processor |
US4758944A (en) * | 1984-08-24 | 1988-07-19 | Texas Instruments Incorporated | Method for managing virtual memory to separate active and stable memory blocks |
US4616315A (en) * | 1985-01-11 | 1986-10-07 | Burroughs Corporation | System memory for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes |
DE3584446D1 (de) * | 1985-06-18 | 1991-11-21 | Ibm | Mikroprozessor. |
US4868738A (en) * | 1985-08-15 | 1989-09-19 | Lanier Business Products, Inc. | Operating system independent virtual memory computer system |
US4853842A (en) * | 1985-09-11 | 1989-08-01 | Texas Instruments Incorporated | Computer memory system having persistent objects |
US4814971A (en) * | 1985-09-11 | 1989-03-21 | Texas Instruments Incorporated | Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state |
US4797853A (en) * | 1985-11-15 | 1989-01-10 | Unisys Corporation | Direct memory access controller for improved system security, memory to memory transfers, and interrupt processing |
GB8529890D0 (en) * | 1985-12-04 | 1986-01-15 | Watson P | Garbage collection in computer system |
GB8613069D0 (en) * | 1986-05-29 | 1986-07-02 | Univ Manchester | Parallel storage allocation |
US4833603A (en) * | 1986-05-30 | 1989-05-23 | Bull Hn Information Systems Inc. | Apparatus and method for implementation of a page frame replacement algorithm in a data processing system having virtual memory addressing |
US4912629A (en) * | 1986-06-26 | 1990-03-27 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Real-time garbage collection for list processing using restructured cells for increased reference counter size |
US4797810A (en) * | 1986-06-26 | 1989-01-10 | Texas Instruments Incorporated | Incremental, multi-area, generational, copying garbage collector for use in a virtual address space |
JPS6336348A (ja) * | 1986-07-30 | 1988-02-17 | Toshiba Corp | バツフアメモリ管理方法 |
US4908789A (en) * | 1987-04-01 | 1990-03-13 | International Business Machines Corporation | Method and system for automatically assigning memory modules of different predetermined capacities to contiguous segments of a linear address range |
AU1682188A (en) * | 1987-04-02 | 1988-11-02 | Stellar Computer Inc. | Dynamically assignable shared register sets |
US5136706A (en) * | 1987-04-30 | 1992-08-04 | Texas Instruments Incorporated | Adaptive memory management system for collection of garbage in a digital computer |
US4807120A (en) * | 1987-04-30 | 1989-02-21 | Texas Instruments Incorporated | Temporal garbage collector with indirection cells |
US5121495A (en) * | 1988-02-02 | 1992-06-09 | Bell Communications Research, Inc. | Methods and apparatus for information storage and retrieval utilizing hashing techniques |
US4996663A (en) * | 1988-02-02 | 1991-02-26 | Bell Communications Research, Inc. | Methods and apparatus for decontaminating hash tables |
GB2216306A (en) * | 1988-02-29 | 1989-10-04 | Ardent Computer Corp | Load and synchronize computer architecture and process |
US4907151A (en) * | 1988-09-30 | 1990-03-06 | Digital Equipment Corporation | System and method for garbage collection with ambiguous roots |
EP0367702B1 (de) * | 1988-10-31 | 1995-11-08 | International Business Machines Corporation | Mehrfachverarbeitungssystem und Verfahren für gemeinsame Speichernutzung |
GB8829919D0 (en) * | 1988-12-22 | 1989-02-15 | Int Computer Limited | File system |
US5018060A (en) * | 1989-01-26 | 1991-05-21 | Ibm Corporation | Allocating data storage space of peripheral data storage devices using implied allocation based on user parameters |
US5201043A (en) * | 1989-04-05 | 1993-04-06 | Intel Corporation | System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking |
EP0432359A3 (en) * | 1989-11-21 | 1993-03-17 | International Business Machines Corporation | Method and apparatus for performing memory protection operations in a parallel processor system |
US5321834A (en) * | 1989-11-28 | 1994-06-14 | Xerox Corporation | Method and system for reclaiming unreferenced computer memory space |
US5075848A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Object lifetime control in an object-oriented memory protection mechanism |
US5121483A (en) * | 1990-05-21 | 1992-06-09 | International Business Machines Corporation | Virtual drives in an automated storage library |
NL9001262A (nl) * | 1990-06-05 | 1992-01-02 | Oce Nederland Bv | Werkwijze voor het in een logisch georganiseerd systeem, van door digrafen te representeren groepen van met elkaar in relatie staande entiteiten, distribueren van status-informatie betreffende een digraaf en een inrichting voor het toepassen van een dergelijke werkwijze. |
US5485613A (en) * | 1991-08-27 | 1996-01-16 | At&T Corp. | Method for automatic memory reclamation for object-oriented systems with real-time constraints |
US5561785A (en) * | 1992-10-29 | 1996-10-01 | International Business Machines Corporation | System for allocating and returning storage and collecting garbage using subpool of available blocks |
US5933840A (en) * | 1997-05-19 | 1999-08-03 | International Business Machines Corporation | Garbage collection in log-structured information storage systems using age threshold selection of segments |
US6199075B1 (en) * | 1997-05-30 | 2001-03-06 | Sun Microsystems, Inc. | Method and apparatus for generational garbage collection of a heap memory shared by multiple processors |
US6226761B1 (en) | 1998-09-24 | 2001-05-01 | International Business Machines Corporation | Post dump garbage collection |
US7523290B2 (en) * | 2000-02-29 | 2009-04-21 | International Business Machines Corporation | Very high speed page operations in indirect accessed memory systems |
US6401181B1 (en) * | 2000-02-29 | 2002-06-04 | International Business Machines Corporation | Dynamic allocation of physical memory space |
US20040249833A1 (en) * | 2001-06-25 | 2004-12-09 | Kenneth Oksanen | Copying method and system for copying cells in a database |
EP1367481A3 (de) * | 2002-05-29 | 2008-04-09 | Hitachi, Ltd. | Zentralisiertes Speicherverwaltungsverfahren |
US7096339B2 (en) * | 2003-03-01 | 2006-08-22 | International Business Machines Corporation | System and method for detecting memory management programming errors |
KR100591371B1 (ko) * | 2005-03-23 | 2006-06-20 | 엠텍비젼 주식회사 | 공유 메모리의 분할 영역 크기 가변 방법 및 공유 메모리를가지는 휴대형 단말기 |
US9715505B1 (en) * | 2014-09-30 | 2017-07-25 | EMC IP Holding Company LLC | Method and system for maintaining persistent live segment records for garbage collection |
US10642752B2 (en) * | 2017-07-28 | 2020-05-05 | Intel Corporation | Auxiliary processor resources |
GB2586276B (en) * | 2019-08-16 | 2022-03-30 | Advanced Risc Mach Ltd | Capability write address tracking |
GB2592069B (en) * | 2020-02-17 | 2022-04-27 | Advanced Risc Mach Ltd | Address calculating instruction |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1329721A (en) * | 1970-05-26 | 1973-09-12 | Plessey Co Ltd | Data processing devices |
JPS5040738B1 (de) * | 1970-06-11 | 1975-12-26 | ||
GB1443777A (en) * | 1973-07-19 | 1976-07-28 | Int Computers Ltd | Data processing apparatus |
FR130806A (de) * | 1973-11-21 | |||
GB1499184A (en) * | 1974-04-13 | 1978-01-25 | Mathematik & Datenverarbeitung | Circuit arrangement for monitoring the state of memory segments |
-
1975
- 1975-10-08 GB GB41139/75A patent/GB1548401A/en not_active Expired
-
1976
- 1976-10-04 ZA ZA765928A patent/ZA765928B/xx unknown
- 1976-10-07 AU AU18467/76A patent/AU1846776A/en not_active Expired
- 1976-10-08 NL NL7611198A patent/NL7611198A/xx not_active Application Discontinuation
- 1976-10-08 JP JP51121152A patent/JPS607299B2/ja not_active Expired
- 1976-10-08 US US05/730,840 patent/US4121286A/en not_active Expired - Lifetime
- 1976-10-08 DE DE19762645537 patent/DE2645537A1/de active Granted
- 1976-10-08 FR FR7630214A patent/FR2327594A1/fr active Granted
-
1983
- 1983-08-25 HK HK314/83A patent/HK31483A/xx unknown
Also Published As
Publication number | Publication date |
---|---|
DE2645537A1 (de) | 1977-04-21 |
JPS607299B2 (ja) | 1985-02-23 |
GB1548401A (en) | 1979-07-11 |
NL7611198A (nl) | 1977-04-13 |
FR2327594A1 (fr) | 1977-05-06 |
FR2327594B1 (de) | 1982-11-19 |
JPS5252533A (en) | 1977-04-27 |
AU1846776A (en) | 1978-04-13 |
HK31483A (en) | 1983-09-02 |
US4121286A (en) | 1978-10-17 |
ZA765928B (en) | 1977-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2645537C2 (de) | ||
DE2303596C2 (de) | Datenverarbeitungsanordnung | |
EP0010198B1 (de) | Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher | |
DE2350884C2 (de) | Adreßumsetzungseinheit | |
DE2714805C2 (de) | ||
DE3833933C2 (de) | Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion | |
DE2629459C2 (de) | ||
DE3151745C2 (de) | ||
DE1424732C3 (de) | Einrichtung zum gegenseitigen Austausch von Angabenwörtern zwischen einem unmittelbar zugänglichen Hauptspeicher eineT Ziffernrechenmaschine und einem an diese angeschlossenen Sekundärspeicher vergleichsweise längerer Zugriffszeit | |
EP0635792B1 (de) | Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen | |
DE2414311C2 (de) | Speicherschutzeinrichtung | |
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
DE3508291A1 (de) | Realzeit-datenverarbeitungssystem | |
DE2657848A1 (de) | Steuereinheit fuer ein datenverarbeitungssystem | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE3500804A1 (de) | Unterbrechungssteuerkreis | |
DE1499182B2 (de) | Datenspeichersystem | |
DE2441754A1 (de) | Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE102006039747A1 (de) | Verfahren für Kontextzustandsmanagement | |
DE1549531A1 (de) | Digitale Rechenanlage | |
DE2556617C2 (de) | Schiebe- und Rotierschaltung | |
DE2144051A1 (de) | Programm Unterbrechungsanordnung für eine Datenverarbeitungsanlage | |
DE2912073A1 (de) | Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8127 | New person/name/address of the applicant |
Owner name: PLESSEY OVERSEAS LTD., ILFORD, ESSEX, GB |
|
8128 | New person/name/address of the agent |
Representative=s name: PRINZ, E., DIPL.-ING. HAUSER, G., DIPL.-CHEM. DR.R |
|
8110 | Request for examination paragraph 44 | ||
8128 | New person/name/address of the agent |
Representative=s name: PRINZ, E., DIPL.-ING. LEISER, G., DIPL.-ING., PAT. |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |