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
Application number
DE2645537A
Other languages
English (en)
Other versions
DE2645537A1 (de
Inventor
Peter Charles Wimborne Dorset Gb Venton
Michael Maidenhead Berkshire Gb Blench
Anthony Keith Twyford Reading Berkshire Gb Sutherland
Kenneth James Hamer Wimborne Dorset Gb Hodges
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Plessey Overseas Ltd
Original Assignee
Plessey Overseas Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Plessey Overseas Ltd filed Critical Plessey Overseas Ltd
Publication of DE2645537A1 publication Critical patent/DE2645537A1/de
Application granted granted Critical
Publication of DE2645537C2 publication Critical patent/DE2645537C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage 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.
Akkumulatorregisterstapel (ACC STK)
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.
Basisregisterstapel (BASE STK)
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).
Zugriffsart/Grenzadressenstapel (TC/LMT STK)
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.
Ergebnisregister (RES REG)
Dieses Register wird über die Hauptübertragungsleitung MHW des Prozessormoduls gespeist; es kann zur vorübergehenden Speicherung der Ergebnisse einer arithmetischen Operation verwendet werden.
Operandenregister (OPREG)
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.
Befehlsregister (IR)
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.
Mikroprogrammleitwerk (μ PROG)
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.
Rechenwerk (MILL)
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.
Komparator (COMP)
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.
Speicherdateneingaberegister (SDIREG)
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.
Primäranzeigeregister (PIR)
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.
Sekundäranzeigeregister (SIR)
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.
Fehleranzeigeregister (FIR)
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.
Schritt B 1: Alle GB und VB auf Null setzen
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.
B 2: CR mit Ausgangsknotenpunkt laden
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.
Schritt S 1: Lesen des Befehlsworts IW aus dem Programmblock CRCB
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.
Schritt S 2: Eingabe des Befehlsworts in das Befehlsregister
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.
Schritt S 3: PRCPT auswählen
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.
Schritt S 4: RCP adressieren
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.
Schritt S 5: CRX auswählen
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.
Schritt S 6: RCP lesen
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.
Schritt S 7: RCP abspeichern
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.
Schritt SV: AC = "Kein Speicher?"
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.
Schritt SW: CRX auf Null setzen
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.
Schritt SB: SCT S-CX-Eintragung lesen
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.
Schritt SZ: S-C = 0?
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.
Schritt S 9: In MCT die BX-Eintragung lesen
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.
Schritt S 10: In MCT die LX-Eintragung lesen
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.
Schritt SY: S-C in Ordnung?
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.
Schritt SZ: GB = 0?
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.
Schritt S 11: LX-Eintragung lesen
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.
Schritt S 12: GB auf "1" setzen; in den Speicher schreiben
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.
B 3: Aktivspeicher = falsch; nächste Eintragung = 2
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.
B 4: NE lesen; GB = 0? VB = 1?
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.
B 5: VB = 1 usw.
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.
B 6: NE um die SCT-Eintragungsgröße erhöhen; NE < SCT-Größe?
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.
B 7: Aktivspeicher?
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.
B 8: SCT erneut abtasten; alle Eintragungen mit GB = 0 freigeben
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.
DE19762645537 1975-10-08 1976-10-08 Datenverarbeitungsanordnung Granted DE2645537A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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