DE2516050A1 - Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem - Google Patents

Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem

Info

Publication number
DE2516050A1
DE2516050A1 DE19752516050 DE2516050A DE2516050A1 DE 2516050 A1 DE2516050 A1 DE 2516050A1 DE 19752516050 DE19752516050 DE 19752516050 DE 2516050 A DE2516050 A DE 2516050A DE 2516050 A1 DE2516050 A1 DE 2516050A1
Authority
DE
Germany
Prior art keywords
memory
segment
program
storage
descriptor
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.)
Ceased
Application number
DE19752516050
Other languages
English (en)
Inventor
John F Couleur
Robert F Montee
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.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
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 Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2516050A1 publication Critical patent/DE2516050A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Description

52-02405 Ge 11. April 1975
2b1605U
HONEYWELL INFORMATION SYSTEMS INC.
200 Smith Street Waltham, Mass., USA
Verfahren und Einrichtung zur Informationsspeicherung in einem Datenverarbeitungssystem
Die Erfindung befaßt sich mit der Speicherung von Informationen und deren Rückgewinnung in einem Datenverarbeitungssystem. Moderne DV-Systerne enthalten meistens mehrere Processoren und gestatten Mehrfach-Durchführung von Programmen durch örtliche und über Fernleitungen angeschlossene Benutzer. Bei einer solchen Datenverarbeitung müssen für die Benutzerprogramme und Daten, die Betriebssystem-Software und die mehrfach ausgenutzten Anwendungsprogramme umfangreiche Datenspeicher vorgesehen werden. Außerdem sind hochentwickelte Software und Hardware erforderlich, um bei der Durchführung der einzelnen Vorgänge in den Systemprocessoren die Programme und Daten zu verarbeiten. Um den Anforderungen der Benutzer ohne einen unerschwinglich hohen Preis für den Kernspeicher Rechnung tragen zu können, verwenden DV-Systeme erweiterte Speicher, in denen der Primär- oder Kernspeicher des Systems durch Sekundär- oder Massenspeicher in Form von Magnetplatten oder dergleichen ergänzt ist. Während irgendein Benutzer tatsächlich während der Durchführung eines Programms nur einen kleinen Teil des Hauptspeichers belegt, steht ihm scheinbar ein wesentlich größerer
HR/Kö. 50984 5/0893
virtueller Speicher zur Verfügung, der durch die Erweiterung des Hauptspeichers durch die Sekundärspeieher gegeben ist. Die Informationsspeicherung im Haupt- bzw. im erweiterten Speicher kann in Form von Segmenten und Seiten erfolgen, wobei die Benutzerprogramme in Segmente unterschiedlicher Länge unterteilt sind, und die Segmente eine Vielzahl von Datenseiten gleicher Länge aufweisen können. Die Unterteilung in Seiten führt zu einer flexiblen Informationsspeicherung in dem zur Verfügung stehenden Speicherraum, wobei eine Seitentabelle dem Benutzer das Auffinden der gespeicherten Seiten ermöglicht.
Die US-PS 3 412 382 beschreibt ein solches Mehrfachprogramm-DV-System mit Mehrfachzugriff, wie es im Honeywell Serie 6100 System verwirklicht ist. Die Speicherzellen des wirklichen Speichers sind mit absoluten Adressen versehen, und die Benutzer erhalten Zugriff zu den Zellen und den zugehörigen absoluten Adressen durch die Verwendung von relativen Adressen. Wird beispielsweise bei der Ausführung des in Seiten unterteilten Programmsegments eines Benutzers eine relative Zellenadresse vom Datenprocessor zur Verfügung gestellt, so sorgt die Zwischen- oder relative Segmentadresse für die^Qsichnung eines speziellen Datenwortes oder einer Hinweisadresse der adressierten Seite,und die Kombination des speziellen Datenwortes mit der relativen Adresse liefert die absolute Adresse der benötigten Speicherzelle. Im einzelnen werden Basis-Hinweisadressen im wirklichen Speicher für die Auffindung der darin gespeicherten Daten verwendet und bilden Teil der Deskriptorworte der gemeinsam zugängigen Daten. Da die Daten im wirklichen Speicher ständig verschoben werden, ändern sich fortlaufend die absoluten Adressen der gespeicherten ' Daten, und Deskriptorworte werden dazu verwendet, um Seitentabellen und Segmente sowie gewünschte Seiten aufzufinden. Ein Segmentdeskriptorwort enthält die Basisadresse eines entsprechenden Segments, sofern das Segment nicht in Seiten unterteilt ist, oder die Basisadresse einer entsprechenden Segmentseiten-
509845/0893
tabelle, falls das Segment in Seiten unterteilt ist. Ein Tabellenseitenwort liefert die Basisadresse einer Seite des entsprechenden Segments.
Der Processor führt zyklisch die in dem Segment definierten Teile der Benutzerprogramme aus. Ein für die Durchführung bereitgestelltes Programmsegment wird jeweils dort gespeichert, wo Speicherplatz in den Zellen adressierten Speicher vorhanden ist, wobei die relative Adresse des Segments dadurch in die absolute Adresse des wirklichen Speichers umgewandelt wird, daß man die Wortnummer der relativen Adresse und die Basisadresse in der entsprechenden Seitentabelle für das gespeicherte Segment kombiniert. Für die Auffindung der absoluten Adresse wird ein Prozedurbasisregister für das laufende Prozedursegment benutzt, während eine Vielzahl von Adreßbasisregistern für Zellen außerhalb des gerade ablaufenden Prozedursegmentes eingesetzt werden. Hinweisadressen, die entweder als Bezeichnung eines Deskriptorwortes oder der relativen Adresse eines Deskriptorworts dienen, werden während der laufenden Adressenumwandlung in einem Übergangs-Basisregister TBR gespeichert. Bei nicht in Seiten unterteilten Segmenten wird das Segmentdeskriptorwort und bei in Seiten unterteilten Segmenten wird das Tabellenseitenwort im Hauptspeicher oder in dem erweiterten Aufrufadressenspeicher durch einen Suchvorgang zum Auffinden einer übereinstimmenden Hinweisadresse ermittelt. Sobald das Segmentdeskriptorwort oder das Tabellenseitenwort aufgefunden ist,wird durch Kombination der Hinweisadresse hiermit die absolute Segmentadresse des gewünschten Speicherplatzes ermittelt.
Bei Durchführung eines Benutzerprogramms kombiniert das Betriebssystem die benötigten Teile des Betriebssystems mit den Benutzerprogrammsegmenten derart, daß die von Benutzer gewünschte Aufgabe gelöst wird. Da die Betriebsprozeduren als Teil des Benutzerprozesses ablaufen und hiervon nicht unterscheidbar sind, werden besondere Maßnahmen zum Schutz gegen unberechtigten Zugriff und
509845/0893
unberechtigte Abänderung benötigt. Üblicherweise bestehen Segmente des Betriebssystems und des Benutzerprozesses und laufen in einer Anzahl sich gegenseitig ausschließender Untergruppen oder Ringe ab, welche unterschiedlichen Sicherheitsgrad haben. Beim Ablauf eines Prozesses erfolgen Aufrufe zu anderen Segmenten des Benutzercodes und zu Segmenten des Betriebssystems. Solange die äußeren Bezugnahmen auf Segmente gerichtet sind, welche innerhalb des gleichen Sicherheitszustandes oder Ringes liegen wie diejenigen des gerade in Verarbeitung befindlichen Segments, wird den angerufenen Segmenten keine Ringschutzüberprüfung auferlegt. Somit sind Segmente innerhalb jedes Schutzringes gegen unberechtigten Zugriff aus einem Programmsegment niedrigeren Schutzbereiches gesichert. Jedoch besteht kein Schutz gegen unberechtigten Zugriff aus Segmenten der gleichen oder höheren Sicherheitsstufe bzw. aus der gleichen oder einer höheren Ringzone.
Aufgabe der Erfindung ist es, den Schutz von Daten gegen unberechtigten Zugriff zu verbessern und zugleich das Einspeichern und Abfragen von Informationen zu vereinfachen. Dabei soll für
stsllfin diejenigen Benutzer,die keinen erhöhten Sicherheitsanforderungen der Programmablauf möglichst wenig beeinträchtigt werden. Es wird also für eine aufgerufene Prozedur ein begrenzter und abgesicherter Zugriff zu gespeicherten Informationen angestrebt.
Gelöst wird diese Aufgabe durch die im Anspruch 1 gekennzeichnete Erfindung. Vorteilhafte Weiterbildungen ergeben sich aus den Unteransprüchen. Durch eine neuartige Technik der Unterteilung des Speichers in Speicherabteile, Segmente und Seiten wird eine direkte Adressierung ermöglicht. Außerdem erreicht man durch die Verwendung von Speicherabteilen im virtuellen Speicher, von denen einige für jedermann zugängig sind und andere exklusiv zugeordnet sind, eine erhöhte Sicherung des Benutzerprogramms und der zugehörigen Daten. Die Gewährleistung begrenzten Zugriffs
509845/0893
zum Schutz von Bereichen oder Domänen für ein aufgerufenes Programm wird durch Deskriptoren erreicht, die die Segmente im Speicher bezeichnen. Außerdem kann durch Schrumpfen von Deskriptoren der einem aufgerufenen Programm zugängig gemachte Speicherbereich auf diejenigen speziellen Daten innerhalb eines Segments beschränkt werden, die für das aufgerufene Programm wichtig sind, während die übrigen Teile des Segments gegen Zugriff gesperrt bleiben.
Benutzer, die im Zeitmultiplex- oder Stapelbetrieb arbeiten lassenJsind vielfach mehr an Wirkungsgrad als an Sicherheit interessiert. Diese Benutzer können bei Anwendung der Erfindung ihre Programme in herkömmlicher nicht segmentierter Weise durchführen .
Zur Erläuterung der Erfindung wird im folgenden auf die beiliegenden Zeichnungen Bezug genommen. Dabei zeigt
Figur 1 das Blockschaltbild eines Mehrfachzugriff-Mehrfachprogramm-DV-Sy stems ;
Figur 2 schematisch die Darstellung der Unterteilung eines Speichers in Speicherabteile;
Figur 3 das Blockdiagramm der dem Benutzer eines solchen DV-Systems zugängigen Speicherabteile und Register; Figur 4 den Wortaufbau einer Seitenadresse; die Figuren 5 und 6 drei Verfahren für die Ableitung des Speicherplatzes aus der Seitenadresse; Figur 7 den Aufbau eines Wortpaares für einen Segment deskriptor;
Figur 8 schematisch die Darstellung einer Programmsegmentierung und einer Speicherunterteilung in Seiten; Figur 9 das Auffinden eines Deskriptorplatzes eines Prcgrammsegments;
Figur 10 das Befehlsformat und das Deskriptorschrumpfen und Figur 11 das Flußdiagramm des Durchlaufs von Deskriptorparametern zwischen den Systembenutzern und den Speichersu-
509845/0893
griff über einen Segmentdeskriptor.
In der in Figur 1 dargestellten Datenverarbeitungsanlage führt der Datenprozessor 10 die von allen Programmen angeforderten Datenverarbeitungsfunktionen aus. Er spricht abwechselnd auf eine Vielzahl unterschiedlicher Befehle aus verschiedenen Benutzerprogrammen an und führt entsprechende Datenverarbeitungsvorgänge· mit den von ihm empfangenen Informationen aus. Die Befehle jedes Programms werden dem Processor in derjenigen Reihenfolge zugeführt, welche zur Durchführung der einzelnen Operationen erforderlich ist. Folglich erledigt der Processor eine vorgegebene Anzahl von Befehlen eines Benutzerprogramms, ehe er zum nächsten Programm übergeht. Während jeden Betriebsintervalls kann der Prozessor entweder alle Befehle eines ganzen Benutzerprogramms oder nur eines Teils hiervon verarbeiten. In Figur 1 ist zwar ein einzelner Processor dargestellt, die Erfindung ist aber gleichermaßen bei DV-Systemen mit mehreren Processoren und Vielfachzugriff anwendbar. Mehrere Speicher 12, 13, 14 und 15 speichern die Datenworte, welche die zu verarbeitende Information darstellen, ferner Datenworte, welche das Ergebnis von Datenyerarbeitungsvorgängen sind, und Datenworte, die Programmbefehle darstellen, welche vom Processor ausgeführt werden sollen. Jedes Datenwort wird in einem getrennten Speicherplatz oder einer Zelle abgelegt. Für das Einspeichern eines Datenwortes oder der Zurückgewinnung aus einer bestimmten Zelle muß der Speicher mit einer Spezifizierung oder Adresse der Zelle versorgt werden. Jeder von einer Mehrzahl von Speichersteuereinheiten 16 bis 19 steht mit je einem der Speicher 12 bis 15 in Verbindung und steuert den Zugriff zu diesem Speicher. Die Speichersteuereinheit liefert die Adresse an den Speicher, Datenworte als Befehle in die Adreßzelle und empfängt Datenworte aus der adressierten Zelle. Der Processor IO steht mit einem oder mehreren der Speicher 12 bis 15 über entsprechende Speichersteuereinheiten in Verbindung und empfängt von diesen Befehle und Datenworte zur Verarbeitung. Die Speichersteuereinhei-
509845/0893
ten dienen ferner der Übertragung von zu speichernden Datenworten, welche sich als Ergebnis aus einem DatenverarbeitungsVorgang ergeben .
Die Ein/Ausgabesteuereinheit 20 führt eine begrenzte Anzahl von Befehlen durch und wirkt als automatisches Informationsübertragungsglied/ welches die Verbindung zwischen den Speichersteuereinheiten 16 bis 19 und einer Mehrzahl externer geräte herstellt. Diese externen Geräte liefern Informationen für die Verarbeitung, Programme zum Verarbeiten der Informationen und erhalten die ermittelten Resultate. Eine Art externer Geräte ist hier als Peripheriegeräte 21, 22 und 23 bezeichnet, welche beispielsweise Magnetplatte!!-, Magnettrommel-und Magnetbandgeräte, Lochkarten-" und Lochstreifenleser sowie Dokumentenleser umfassen können. Diese Art peripherer Geräte speichert Informationen und Programme in mechanischer Form und wandelt im Zuge der Rückgewinnung der gespeicherten Information diese mechanischen Werte in entsprechende elektrische Signale um und leitet sie an die Peripheriegeräte-Steuereinheit 24 weiter. Diese Steuereinheit sorgt für die Übertragung der elektrischen Signale an die Ein/Ausgabesteuereinheit 20. Andere der Peripheriegeräte 21, 22 und 23 können zur automatischen Aufnahme im Zuge der Datenverarbeitung erzeugter Informationen dienen und diese in eine durch das Benutzersystem vorgegebene Form umwandeln. Hierzu gehören beispielsweise Magnetbandgeräte und Kartenlocher, welche die erzeugte Information empfangen und für die nachfolgende Benutzung in einem Datenverarbeitungssystem speichern, sowie Schnelldrucker, welche die erzeugte Information für den unmittelbaren Gebrauch sichtbar aufzeichnen. Die letztgenannte Form peripherer Geräte erhält elektrische Signale von der Steuereinheit 24 und wandelt diese in entsprechende mechanische Darstellungen um. Die elektrischen Signale erhält die Peripheriesteuereinheit 24 von der Ein/Ausgabesteuereinheit 20.
Eine weitere Gruppe externer Geräte, die als Benutzerverbindungsgeräte 26, 27, 28 und 29 bezeichnet:'und jeweils unter dem direkten
509845/0893
Steuereinfluß eines Benutzers stehen, liefern Programme zur Durchführung mit Hilfe des Processors IO sowie Steuerinformation für die Ingangsetzung und Ausführung in den Peripheriegeräten 21/ 22 und 23 gespeicherter Programme. Die Verbindungsgeräte 26 bis 29 stellen ferner Informationen zur Verarbeitung zur Verfügung und geben verarbeitende Informationen wieder. Eine Benutzergerät-Steuereinheit 30 sorgt für die übertragung elektrischer Signale, welche Programme/ Verarbeitungsinformationen oder Steuerinformationen von den Verbindungsgeraten 26 bis 29 darstellen, an die ein Ausgabesteuereinheit 20. Außerdem überträgt die Steuereinheit 30 Signale entsprechend der verarbeiteten Informationnund der gesteuerten Informationen vom Ein/Ausgabesteuergerät 20 an die Benutzerverbindungsgeräte 26 bis 29. Die Ein/Ausgabesteuereinheit 20 steuert ferner die Übertragung von Signalen, welche von den Steuereinheiten 24 und 30 kommen, an einen oder mehrere der Speicher 12 bis 15/ und zwar über die entsprechende Speichereinheiten 16 bis 19. Die Ein/Ausgabesteuerung steuert ferner die übertragung der Signale/ welche von einem oder mehreren der Steuereinheiten 12 bis 15 kommen zu einer der Steuereinheiten 24 und 30.
Das DV-System gemäß Figur 1 stellt somit für eine Vielzahl von Benutzern unmittelbar und gleichzeitig Datenverarbeitungsdienste zur Verfügung. Jeder Benutzer steht mit dem DV-System über ein Anschlußgerät in Verbindung, um auf diese Weise die Ausführung des Programms einzuleiten und zu steuern, Daten für die Verarbeitung zur Verfügung zu stellen und die ermittelten Daten abzurufen. Das DV-System führt abwechselnd die Programme aller Benutzer durch, welche zu jeder Zeit unmittelbar mit dem DV-System in Verbindung treten können. Die maximale Verzögerung der Verarbeitung der einzelnen Programme ist auf einen solchen Wert begrenzt, der der Reaktionszeit des Benutzers angemessen ist. Auf diese Weise vermag das DV-System jeweils eine genügene Zeitspanne fortlaufender Datenverarbeitung für jeden einzelnen Benutzer zur Verfügung
509845/0893
zu stellen, um der Ein/Ausgabegeschwindigkeit seiner Anschlußgeräte gerecht zu werden. Folglich merkt der Benutzer gar nicht, daß der Processor nicht ständig für ihn arbeitet, vielmehr haben mehrere Benutzer gleichzeitig die Möglichkeit einer quasi-simultanen Benutzung und Steuerung des DV-Systems.
Der virtuelle Speicher aus der Sicht des Benutzers ist gemäß der Erfindung in eine Mehrzahl großer Speicherabteile unterteilt, in denen die gesamte Information untergebracht ist. Im Ausführungsbeispiel gemäß Figur 2 ist der virtuelle Speicher 32 in 256
34 Speicherabteile 34 mit jeweils einer Speicherkapazität von 2 Worten (2 Bytes) unterteilt. Diese Größe der einzelnen Speicherabteile ermöglichst die Zuordnung eines Speicherabteils für Stapelverarbeitung, um auf diese Weise einen wirkungsvollen Programmablauf zu erreichen, ohne daß hierbei besondere Sicherheitsmerkmale verfügbar sind, wie dies später noch beschrieben v/ird. Üblicherweise sind virtuelle Speicher in Einheiten unterteilt worden, die groß genug sind, um Programmsegmente aufzunehmen, typischerweise in einer Größenordnung von 2 Bytes. Die Speicherabteile bei der erfindungsgemäßen Unterteilung des virtuellen Speichers sind also etwa 75.000 mal so groß wie herkömmliche Virtualspeichersegmente. Einige der Speicherabteile können allen Benutzern zur Verfügung stehen, während andere Speicherabteile einem bestimmten Benutzer zugeordnet sind. Beispielsweise ist in einem Speicherabteil , das allen Benutzern zugänglich ist, das Betriebssystem abgelegt. Die Programme eines Benutzers und seine Daten können in einem anderen Speicherabteil untergebrachS^welches nur für den betreffenden Benutzer und jeden Prozeß oder jede Routine zugängig ist, welche durch das zugeordnete Programm entsprechend autorisiert ist. In Figur 3 beispielsweise hat ein ablaufendes Programm Zugriff zu acht der in Figur 2 gezeigten 256 Speicherabteile 36, wobei Kennzeichnungsregister IDO bis ID7 dem Benutzerprogramm die Speicherabteilkennzeichnung angeben. Somit ist eine Trennung von Benutzerdaten und Programmen erzielt und infolge des großen Umfangs der Speicherabteile eine direkte
509845/0893
Adressierung des Speichers bewirkt. Darüberhinaus ist die Sicherheit dadurch vergrößert, daß der Zugriff des Benutzers auf diejenigen wenigen Speicherabteile begrenzt ist, welche für die Ausführung seines Programms notwendig sind.
Die Speicherung der Information in den verschiedenen Speicherabteilen erfolgt mit der bekannten Seitenunterteilungstechnik. Die Daten werden in Gruppen^ genannt Seitenf gleicher Größe, beispielsweise von 1024 Worten oder 4096 Bytes jeweils dort im Speicher abgelegt, wo Speicherraum verfügbar ist. Die Seitentechnik ermöglichst eine Speicherumschichtung, wodurch das Erfordernis für ein periodisches Speicherverdichten entfällt und der Bedarf des Benutzers für Hauptspeicherplatz während der Programmausfüh-
ist
rung verringert. Da die Information in gegebenen Speicherabteilen abgelegt ist, kann jedes aktive Element im System iflrCh Verketten eines Speicherabteilkennzeichens mit einer Seitenadresse herausfinden. In einer bevorzugten Ausführungsform enthält die Seitenadresse eine Wort- und Bytesteile innerhalb der Seite. Verwendet man beispielsweise die 256 Speicherabteile mit je 2 Bytes-Kapazität, so enthält eine 296 Byte-Seite eine 36-Bit Adresse (24 Bit als Seitenadresse und 12 Bit als Worc-Bytesteile innerhalb der Seite), die mit einem 8 Bitspeicherabteilkennzeichen verbunden ist (vgl. Figur 4). Somit können bis zu 224 Seiten Arbeitsspeicherraum angewählt werden mit 1024 Worten pro Seite und 4 Bytes pro Wort.
Wie aus Figur 5 ersichtlich ist, übersetzt die Systemhardware die Seitenadresse in einen tatsächlichen Speicherplatz dadurch, daß die sich ergebende 22 Bit Seitenadresse in einen Assoziativspeicher eingegeben wird. Befindet sich die Seitenadresse im Assoziativspeicher,so entsteht eine 14 Bit Seitenstelle, die mit einer 12 Bit Bytestelle innerhalb der Seite verbunden wird. Die sich hieraus ergebende 26 Bit Speicherstelle entspricht dem tatsächlichen Speicherplatz des Bytes oder Wortes innerhalb des Speichers. Gleichzeitig wird eine Seitenspeicherstelle erzeugt.
509845/0893
Ferner entstehen Zugriffsteuerbits, welche feststellen, ob das Programm Zugriff zu der Seite hat, ob es die Seite ändern darf oder ob die Seite fehlt.
Befindet sich die angewählte Seite nicht im Assoziativspeicher, so können zwei verschiedene Verfahren angewandt werden, um die betreffende Seite aufzufinden. Bei beiden in Figur 6 wiedergegebenen Verfahren wird die Speicherabteilnummer dazu benutzt, um in eine Tabelle des Speichers zu gelangen, die den Speicherplatz einer Speicherabteil-Seitentabelle angibt. Bei der ersten Seitenlokalisierungsmethode geht man in eine lineare Seitentabelle ein, welche die Seitenadresse als Index benutzt und erhält sowohl die tatsächliche Speicherstelle der Seite als auch Zugriff-Steuerkennzeichen. Die Speicherstelle und die Kennzeichen werden dann in den Assoziativspeicher übertragen. Die lineare Tabelle erfordert bei jeder Bezugnahme auf einen virtuellen Speicherplatz je einen Zugriff pro Seite und hat den Nachteil groß zu sein, wenn große Datenbasen angewählt werden. Bei der zweiten Seitenlokalisierungsmethode geht man mit der Seitenadresse in eine pseudoassoziative Seitentabelle im Speicher und gewinnt hieraus die Seitenspeicherstelle und die Zugriffskennzeichen. Die pseudeoassoziative Seitentabelle benötigt etwa vier Worte in der Tabelle pro Seite tatsächlich besetzten Speieherraums und braucht somit sehr wenig Seitentabellen, um große Datenmengen anzuwählen. Dieses Verfahren ist jedoch dann nachteilig, wenn die Anzahl der Seiten im Kernspeicher einen beträchtlichen Prozentsatz des tatsächlichen virtuellen Speicherraums darstellt, weil dann entweder durch die Tabellen Speicherplatz verschwendet wird oder eine beträchtliche Zeit nötig ist, um die Tabellen zu verarbeiten.
Nach einem weiteren Merkmal der Erfindung sind die Programme in logische Elemente, genannt Segmente, unterteilt, die in einem Benutzer zugeordnetem Speicherraum abgelegt sind. Diese Segmente werden mit Hilfe von Deskriptoren angewählt, um Daten für die Programmverarbeitung zu erhalten oder abzulegen. Die Deskriptoren bestimmen ein Speicherabteil, eine Startstelle oder Basis inner-
509845/0893
halb des Speicherabteils, die Größe oder Grenzen des Segments
und das Zugriffsrecht eines Benutzers zu diesem Segment. Diese
Zugriffsrechte können Lesen, Schreiben, Verarbeiten und dergleichen umfassen. Figur 7 zeigt als Ausführungsbeispiel' die Kombination zweier 36 Bit Worte für die Bestimmung eines Segments.
Das Wort O kennzeichnet das Speicherabteilregister, die Zugriffskennzeichen und die Grenzen oder den Umfang des Segments. Das
Wort 1 kennzeichnet die Segmentbasis innerhalb des Speicherabteils. Die Gesamtmenge der von einem Programm anwählbaren Segmente bilden die Domäne des Programms. Eine Programmdomäne enthält nicht nur die ständig mit dem Programm verbundenen Segmente, sondern
auch diejenigen, welche dem Programm von anderen Programmen her
zugeleitet werden,sowie Eingangsstellen in andere Domänen für Aufrufe und Rücksprünge. Vorteilhafterweise können die einer Prozedur zugängigen Parameter oder Deskriptoren gleich zur Zeit ihrer Erzeugung festgestellt und im zugeordneten Speicherbereich abgelegt werden. Damit entfällt die Notwendigkeit ihre Zugängigkeit
während der Programmdurchführung zu überprüfen. Es ist ferner
wichtig, daß ein Programm nui^^enjenigen außerhalb seiner Domäne liegenden SegmentenZugang haben kann, die ihm im Zuge eines Aufrufs oder eines Rücksprungs zugeordnet worden sind.
Um eine willkürliche Änderung eines Deskriptors während des Programmablauf s zu verhindern sind die Deskriptoren in besonderen
Segmenten des Speichers gesichert abgelegt, wobei diese als drei zusätzliche Deskriptorsegmente bezeichnet werden. Es handelt
sich um das Verbindungssegment, das Parametersegment und das Argumentsegment. Das Verbindungssegment enthält die durch eine Verbindung vor der Programmausführung oder durch das Betriebssystem während der Programmausführung erzeugten Deskriptoren. Das Parametersegment enthält die während des Programmablaufs durch einen Aufruf erzeugten Deskriptoren, während das Argumentsegment diejenigen Deskriptoren aufnimmt, welche vom ablaufenden Prozeß erzeugt
509845/0893
und zur Aufrufprozedur zurückgeleitet werden. Bei Durchführung eines Aufrufbefehls werden die Inhalte aller Deskriptorregister gesichert für den Rücksprung abgelegt, in das Verbindungssegment Deskriptorregister wird der Deskriptor für das neue Verbindungssegment geladen, und die Inhalte der Argumentsegment-Deskriptorregister werden für die spätere übertragung an die aufgerufene Prozedur in das Parametersegment-Deskriptorregister eingegeben. Die Ausführung eines Rücksprungbefehls kehrt diese Schritte um, wobei die aufgerufene Prozedur nach ihrem Ablauf die Segmentdeskriptoren in ihr Parametersegment-Deskriptorregister eingibt, welches dann bei einem Rücksprung das Argument-üDeskriptorregister für die aufrufende Prozedur wird. Nach einem weiteren Merkmal der Erfindung kann eine Prozedur Deskriptoren insgesamt oder durch eine Schrumpfroutine reduziert in das Argumentsegment übertragen. Bei einem geschrumpften Deskriptor ist der Zugriff zu einem Segment auf bestimmte Worte oder Daten innerhalb des Segments beschränkt.
Figur 8 veranschaulicht die Umschichtung von Speicherabteilen entsprechend der Erfindung. Jedes Speicherabteil 50 ist in einer Seitentabelle 52 enthalten, welche die Adressen im virtuellen Speicher den entsprechenden Speicherplätzen im tatsächlichen Speicher 54 zuordnet. Das Speicherabteil 50 enthält mehrere Segmente A bis I derart, daß das Segment A die Basis 0 und eine Länge oder Grenze von 1000 hat. Das Segment D hat eine Basis von 7000 und eine Länge von 10.000, das Segment H eine Basis von 25.000 und eine Länge von 2000. Der tatsächliche Speicher 54 stellt den gesamten vorhandenen Speicherraum dar. Eine der Einheiten 56 im Speicher ist die Seitentabelle 52 für den dargestellten virtuellen Speicher. Es sei angenommen, daß der Programmablauf im Speicherabteil 50 erfolgt und daß der nächste Befehl sich im Speicherplatz 5200 im Segment D befindet. Die Basis für das Segment D ist 7000, so daß die virtuelle Adresse 12.200 ist. Die Seitentabelle 52 zeigt, daß die tatsächliche Speicheradresse für die mit 12.000 beginnende Seite die Nummer 274.000 ist. Die
509845/0893
Bezugnahmen auf diese Seite sind mit Pl bezeichnet, wobei der erste Befehl für Pl als LDQ y(Wort 2.600 im Segwent G) bezeichnet ist. Die Basis für das Segment G ist 22.000 (aus «terrt Speicherabteil 50)und 22.000 + 2.600 = 24.00O=. Die wirkliche Seite für diese virtuelle Seite liegt bei .136,000 (aus der Seitentabelle 52), und folglich wird der Befehl LDQ äug dem wirklichen Speicherplatz im Speicher 54: genommen. Alle Bezugnahmen auf diese Operation sind in Figur 8 mit 57 gekennzeichnet. *(Lade das Q-Register)
Der nächste Befehl heißt STQ*(Wort 3.600 im Segment B). Die Basis für das Segment B ist 1.000 (gemäß Speicherabteil 50) und 1.000 + 3.600 =» 4.600. Die wirkliche Seite für die virtuelle Seite liegt bei 472.000 (gemäß Seitentabelle 52). Somit wird der Befehl STQ im Speicherplatz 472.600 gespeichert. Alle Bezugnahmen auf diese Operation sind in Figur 8 mit 58 bezeichnet. (Speichere Inhalt des Q-Registers)
Der nächste Befehl heißt TRAfl(Wort 6.000 im Segment D). Die Basis für das Segment D ist 7.000 (gemäß Speicherabteil 50) und 7.000 + 6.000 = 13.000. Die tatsächliche Seite für jene virtuelle Seite fehlt/ wodurch die Hardware ein Fehlersignal abgibt und damit eine Softwareprozedur anläuft, um die fehlende Seite im erweiterten oder HilfsSpeicher zu suchen und festzustellen.°(übertrage an gegebene Adresse)
Wie oben erwähnt, kann ein Prozeß maximal 8 Speicherabteile anwählen und jeder Prozessor enthält hierfür 8 Speicherabteilregister. Weiterhin enthält ein Segmentdeskriptor ein ,Feld für das Speicherabteilregister, welches einen Wert zwischen 0 und 7 angibt und damit das Register anzeigt, welches die zugeordnete
509845/0893
Nummer (O bis 255) des Speicherabteils anzeigt, zu dem das Segment gehört.
Figur 9 stellt das Umschichten der Speicherplätze zweier Worte in verschiedenen Segmenten dar, die in unterschiedlichen Speicherabteilen liegen. Das Segment A kann eine Programmroutine im gemeinsam zugängigen Programmpaket sein, während das Segment B eine der eigenen Routinen des Benutzers darstellt . Das Speicherabteilregister 3 wird für das Segment A und das Register 7 für das Segment B benutzt. Die Speicherabteilregister zeigen an, daß das Segment A zum Speicherabteil 17 und das Segment B zum Speicherabteil 241 gehört. Der einzige Zweck der Speicherabteilnummer besteht in einem Hinweis auf eine Speicherabteilseitentabelle, welche den tatsächlichen Speicherplatz der Seitentabelle mit dem beteffenden Speicherabteil festlegt. Die Speicherabteil-Seitentabelle definiert ferner die Segmentseitentabelle für die Segmente · A und B. Im Beispiel gemäß Fußnote in Figur 9 findet man den Speicherplatz 200 des Segments B durch Hinzufügen von 200 zur Basis von 7.630 (7.630 + 200 = 10.030 im Octalcode), findet den Speicherplatz der Seite beginnend mit 10.000 jenes Segments (Speicherabteilregister 7, Speicherabteil 241, Seitentabellensteile, fünfter Eingang in Seitentabelle = P5) und addiert hierzu 30 (den Offset gegenüber dem Seitenanfang). Somit findet man den Speicherplatz 200 des Segments B auf Seite P5 mit einem Offset 30.
Aus den Figuren 8 und 9 ergibt sich, daß zwei Ebenen von Speicherplatzzuordnung gegeben sind. Speicherabteile im virtuellen Speicher werden Programmsegmenten zugeordnet und Seiten im tatsächlichen Speicher werden den Speicherabteilen zugeordnet. Somit können die relativen Segmentadressen in dem ihnen zugeordneten Speicherabteil unverändert bleiben, wodurch eine direkte Adressierung ermöglicht ist, während dabei jedoch die tatsächlichen Speicherplätze sich ändern und mit Hilfe der unterstützenden Seiten-
509845/089 3
tabelle aufgefunden werden müssen.
Nunmehr sei der Zugriff zum Wort 200 in Segment B gemäß Figur 9 betrachtet. Figur 10 zeigt mehrere Registerkombinationen und Befehle, welche für diesen Zugriff benutzt werden können. Figur 10 gibt 7 verschiedene Befehle wieder für das Laden des Wortes 200 im Segment B des Operandendeskriptorregisters 0DR2 unter Verwendung der Adressenregisternummer AR2 und einer Indexregisternummer XR4. Der Befehl in der Spalte ganz rechts kann die Adressen oder Indexregister enthalten oder nicht. Es sei angenommen, daß der Befehl eines ablaufenden Programms den Segmentdeskriptor für das Segment B in seinem vierten Eingang enthält. Der Befehl lautet dann: Lade das Operandendeskriptorregister 2 aus dem vierten Eingang. Dieser Befehl ermöglicht es dem System, den Befehl in Zeile 1 zu verwenden, wobei der Offset 200 beträgt, das Indexregister nicht benutzt wird und das Adreßregister auf 0 gesetzt ist. Er würde ferner die Befehle in den Zeilen 2 bis 4 ermöglichen unter der Voraussetzung, daß das Adressenregister und das Indexregister ebenfalls ordnungsgemäß geladen sind. Die Zeilen 5 bis in Figur 10 veranschaulichen die Möglichkeit Deskriptoren zu schrumpfen. Bei der Ableitung des Deskriptors für das Segment B hätte das Operandendeskriptorregister 0DR2 die Basis 7.630 und eine Länge von 2.400 (gemäß Figur 9). In den Zeilen 5 und 6 würde jedoch ein Schrumpfbefehl der Basis einen Betrag von 100 hinzuaddßrt und die Länge durch Zufügen zum Basisregister um wenigstens 100 und Einspeichern in das Index- oder Adressenregister verkürzt haben. Der Schrumpfbefehl kann entweder einem Betrag zur Basis hinzufügen, oder von der Länge abziehen oder beides. In Zeile 7 wurde zumindest die Basis um 200 geändert. Der Schrumpf vor gangbezieht sich nur auf den Inhalt eines Deskriptorregisters, welches für eine aufgerufene Routine zugängig ist und ändert die Speicherversion des Deskriptorwortpaares nicht.
509845/0893
Wie erwähnt, liegt der Hauptgrund für ein Schrumpen des Deskriptors in dem erstrebten Schutz von Informationen. Nimmt man an, daß ein großes Datensegment viel vertrauliche Informationen enthält und daß eine aufgerufene Routine nur einen geringen Teil dieser Daten erreichen darf, so kann durch Schrumpfen des Deskriptors das der genannten Routine zugängig gemachte Fenstersegment so klein gemacht werden, wie ein Wort- In den Zeilen 2 und 7 von Figur 10 könnte eine Routine das Wort 200 im Segment B in beiden Fällen mit demselben Befehl erreichen. Jedoch ist in Zeile 7 keine Möglichkeit für die Routine gegeben, die ersten 200 Worte des Segments B zu erreichen, weil der Deskriptor mit B + 200 beginnt. Das Format gemäß Zeile 2 ermöglicht hingegen den Zugriff zu diesem Wort, weil das Operandendeskriptorregister den Beginn des Segments B festlegt^ und die aufgerufene Routine hat einfach den Adreßregxsterwert AR2 zu ändern oder negativ anzuzeigen. Somit ist der Ablauf gemäß Zeile 7 eine gesicherte Version, während derjenige gemäß Zeile 2 dies nicht ist.
Wie bereits erwähnt, enthält die Domäne einer Prozedur diejenigen Segmente, welche ständig mit der Prozedur verbunden sind entweder exklusiv oder gemeinsam/sowie jene Segmente, welche der Prozedur als Parameter zugeleitet werden. Die Segmente werden durch Deskriptoren hinsichtlich des Speicherabteils, der Basis und der Länge festgelegt und die Deskriptoren werden in besonderen Speichersegmenten abgelegt, genannt Verbindungs-, Parameter- und Argumentsegmente. Das Verbindungssegment enthält die Deskriptoren, welche vor der Ausführung eines Programms erzeugt wurden oder vom Betriebssystem während der Ausführung. Das Parametersegment enthält jene Deskriptoren, die°einer Aufrufprozedur herrühren, während das Argumentsegment Deskriptoren enthält, die von der ablaufenden Prozedur erzeugt wurden und an eine aufgerufene Prozedur weiterzuleiten sind.
509845/0893
Figur 11 zeigt ein funktionelles und schematisches Blockdiagramm der gespeicherten Prozedursegmentdeskriptoren im Verbindungssegment 70, Parametersegment 72 und Argumentsegment 74. Um zu diesen Segmenten zu gelangen, müssen das Verbindungsdeskriptorregister 71, das Parameterdeskriptorregister 73 und das Argumentendeskriptorregister 75 mit das entsprechende Segment im Speicher identifizierenden Deskriptoren geladen werden. Beim Ablauf einer Programmroutine werden die Deskriptoren aus den Segmenten 70, 72 oder 74 in das Operandendeskriptorregister 78 umgeladen. Die Deskriptoren beziehen sich auf Segmente im virtuellen Speicher 80. Die tatsächlichen Speicherplätze für die Segmente sind durch die Seitentabellen 82 im wirklichen Speicher festgelegt, die die Speicherplätze im wirklichen Speicher 84 festlegen, wie dies zuvor anhand der Figuren 5 und 6 erläutert wurde.
Vor einem Aufruf kann eine Prozedur Deskriptoren entweder unverändert oder durch eine Schrumpfoperation reduziert in das Argumentsegment überführen. Bei Ausführung des Aufrufbefehis werden alle Deskriptorregister, wie durch gestrichelte Linien angedeutet, gesichert im Segment 86 abgelegt, der Inhalt des Verbindungssegment Deskriptorregisters 71 wird aus dem Verbindungs-oder Parametersegment zusammen mit dem Deskriptor für das neue Verbindungssegment eingeladen und die Deskriptoren des zu übertragenden Argumentssegments 74 werden in das Parametersegment 72 gebracht. In ähnlicher Weise führt die Ausführung eines Rücksprungbefehls zu einer Umkehr dieser Schritte. Die Ausführung eines Aufruf oder Rücksprungbefehls verursacht folglich eine vollständige Änderung der Domänen, wobei zwei Domänen nur jene Segmente jemeinsara haben, welche als Parameter des Aufrufs zugeleitet worden sind.
Durch das Verbindungsprovjraitirn werden vor der Ausführung eines Programms Deskriptoren erzeugt und virtueller Speicherraum zugeordnet, wobei symbolische Namen der Segmente verwendet werden, sofern
509845/0893
2S16Q5Ü
sie bekannt sind. Ist der Name des Segments vor der Programmausführung nicht bekannt, so wird ein großer Raum im virtuellen Speicher zugeordnet und ein Deskriptor mit einem nicht programmierten Sprung zum Betriebssystem in das Verbindungssegment eingefügt. Da das Programm vor seiner Ausübung geladen wird/ wird eine Zugriff-Erlaubnisliste/ welche jedem vom Programm angewählten Dateisegment zugeordnet ist, durch das Betriebssystem überprüft, um sicherzugehen, daß der Benutzer berechtigt ist, dieses Segment anzuwählen. Zugriffanforderungen, welche während der Ausführung eines Programms auftreten, werden in ähnlicher Weise auf Zulässigkeit überprüft. Zusätzlich zur Überprüfung der Zugrifferlaubnis zu den Dateisegmenten prüft das Betriebssystem die durch das Verbindungsprogramm erzeugten Deskriptoren, um sicherzustellen, daß sie nicht die Bezugnahme auf Bereiche außerhalb des virtuellen Speicherraums erlauben, der für die Prozedur zugängig ist. Wenn auf ein Dateisegment Bezug genommen werden soll, bereitet die Programmroutine Deskriptoren nur für .jene Felder eines Datensatzes vor, zu denen der Aufrufende eine Zugrifferlaubnis hat, und leitet die Deskriptoren der aufrufenden Prozedur mit der Auflage zur Rückgabe zu. Obwohl eine Subroutine Zugang zu einem gesamten Feld hat, sind für eine aufrufende Prozedur nur jeae Felder des Datensatzes zugängig, für die Deskriptoren erzeugt und zurückgegeben worden sind.
Nimmt man in Figur 11 an, daß ein Aufruf erfolgt, so lädt die aufrufende Prozedur die weiterzuleitenden Deskriptoren in das Argumentsegment 74, welches durch das Argumentdeskriptorregister 75 bezeichnet wird, während alle anderen Registerinhalte der aufrufenden Prozedur gesichert im Segment 86 gespeichert werden, das durch das Sicherheitsspeicherdeskriptorregister 88 bezeichnet wird. Sodann wird die aufrufende Prozedur in der Schwebe gehalten und die aufgerufene Prozedur geladen. Nach dem Laden der aufgerufenen Routine gelangt der Prozessor in eine völlig neue Domäne
509845/0893
mit Ausnahme derjenigen Parameter, welche übertragen wurden und mit Ausnahme der gemeinsam benutzten Deskriptoren. Die Deskriptoren im Parametersegment 72 werden in den Speicher in ähnlicher Weise übertragen, wie oben in Bezug auf die Verbindungsdeskriptorsegmente beschrieben wurde. Bei einem Rücksprung wird die Information von der aufgerufenen Prozedur gespeichert und die zugehörigen Deskriptoren werden im Argumentdeskriptorregister 75 abgelegt. Die Steuerung kehrt zu der ursprünglich aufrufenden Prozedur zurück.
Gemäß der Erfindung ermöglicht die Unterteilung des virtuellen Speichers in Speicherabteile sowie die Verwendung der Seitenunterteilung für die tatsächliche Informationsspeicherung eine erhöhte Flexibilität für die Handhabung und Speicherung von Daten, wobei unmittelbarer Zugriff gegeben ist. Gleichzeitig werden Programme in logische Elemente in Form von Segmenten unterteilt, und die Verwendung von Deskriptoren verbessert die Vertraulichkeit der Benutzerinformationen. Die Domänen der Benutzer werden genau festgelegt, wobei vertrauliche Teile mit Sicherheitgeheimgehalten werden, während die Weitergabe von Deskriptorparametern die erforderliche Flexibilität für die Festlegung der Domänen ermöglicht. Die Bildung von Speicherabteilen, Seiten und Segmenten in Verbindung mit einem virtuellen Speicher führt zu einer besser gesicherten und wirksameren Speicherung und Übertragung von Informationen. Der virtuelle Speicher ist iin eine Mehrzahl von Speicherabteilen unterteilt, wobei die tatsächliche Speicherung durch Seitenunterteilung der Speicherabteile erreicht wird. Die Benutzerprogramme werden in logische Einheiten (Segmente) unterteilt und in zugeordneten Speicherabteilen abgelegt, wodurch Benutzerprogramme und Daten isoliert werden. Nicht segmentierte Programme können in einem Speicherabteil mit direkter Adressierung durchgeführt werden. Segmentdeskriptoren, welche das Speicherabteil, seine Basis und seine Länge definieren, werden für den Zugriff zum Speicherinhalt verwendet. Benutzerdomänen können
509845/0 8 93
dadurch vorübergehend erweitert werden, daß Deskriptorparameter von einer Routine in eine andere überführt werden, wobei Zugriffskennzeichen den Zugriff hierzu begrenzen. Durch Schrumpfen überführter Deskriptoren kann die empfangende Routine auf einen Teil der durch den Deskriptor definierten Informationen beschränkt werden.
509845/0893

Claims (10)

  1. 25160 5 Ö
    Patentansprüche
    Datenverarbeitungssystein unter Anwendung virtueller Speicher zur Programm- und Datenspeicherung, d a d u r c h g e kennze.ichne.t , daß der virtuelle Speicher in mehrere Benutzerbereiche (Speicherabteile) unterteilt wird/ von denen eine begrenzte Anzahl je einem Benutzer ausschließlich zugeordnet ist, während eine weitere begrenzte Anzahl von Benutzerbereichen allen Benutzern zugängig ist, daß die Programme in logische Elemente unterteilt und die so gewonnenen Programmsegmente in den Speicherabteilen abgelegt werden,
    und daß die Pfogrammsegmente durch Deskriptoren bezeichnet werden, welche die .relative Adresse in den genannten Speicherabteilen angeben.
  2. 2. DV-System nach Anspruch,1, dadurch gekennzeichnet , daß ein vorübergehender' und begrenzter Speicherzugriff zu Programmprozeduren außerhalb des zugeordneten Programmbereiches ermöglicht ist, indem diesem Deskriptor Parameter zugeführt werden, welche die Benutzerbereichsbasis und die Grenzen dieses Bereichs bezeichnen und das Zugriffsrecht bestimmen.
  3. 3. DV-System nach Anspruch 1 oder 2, dadurch gekennzeichnet , daß der Zugriff zu einem durch einen Deskriptor bezeichneten Speicherraum ferner durch eine Anpassung der Basis und der Grenzwerte vor der Weitergabe der Deskriptorparameter begrenzt ist.
    509845/0893
  4. 4. DV-System nach einem der Ansprüche 1 bis 3 für Mehrfachprogrammverarbeitung, dadurch gekennzeichnet, daß der wirkliche Speicher aus mehreren Speicherabteilen des virtuellen Speichers besteht, von denen jedes in mehrere adressierbare Seiten gleicher Länge unterteilt und durch eine Basisspeicherstelle innerhalb des Speicherabteils bestimmt ist,
    und daß jedem Speicherabteil eine Seitenbezugstabelle zugeordnet ist, welche die Zuordnung von Seitenplatz und Speicherplatz • im wirklichen Speicher angibt.
  5. 5. DV-System nach Anspruch 4, dadurch gekennzeichnet , daß alle Seiten eine vorgegebene Wortkapazität haben und daß zur Unterteilung der Speicherabteile Seitenadressen zugeordnet werden, welche die Seitennummer innerhalb des Speicherabteils und die Wortnummer innerhalb der Seite angeben.
  6. 6. DV-System nach einem der Ansprüche 2 bis 5, dadurch gekennzeichnet , daß die Bestimmung des Zugriffsrechts die aufgerufene Prozedur beim Auslesen, Einschreiben, Ändern und Ausführen eines Programmsegments begrenzt.
  7. 7. DV-System nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet , daß ein Speichersegment-Deskriptorregister vorhanden ist, in das bei Aufruf einer Prozedur die Speichersegmentdeskriptoren geladen werden.
  8. 8. DV-System nach Anspruch 7, dadurch gekennzeichnet , daß ein Sicherspeicherungssegment vorhanden ist, in das bei vorübergehender Unterbrechung des Programmablaufs die Inhalte der Speicherdeskriptorregister eingegeben werden.
    509845/0893
    ΌΟΡΥ
  9. 9. DV-System nach einem der Ansprüche 1 bis 8jin dem Benutzerprogrammsegmente in virtuellen Speicherabteilen gespeichert und durch Deskriptoren bezeichnet sind, welche Basis und Grenznummer innerhalb des Speicherabteils angeben, dadurch gekennzeichnet , daß zur Ermittlung des Speicherplatzes eines gespeicherten Deskriptors einer Prozedur eine erste Prozedur bei ihrer Durchführung mit durch ausschließliche Deskriptoren definiertem Speicherraum einen beschränkten Zugriff zu einem Speicherbereich gesichert auf eine zweite von ihr aufgerufene Prozedur übertragen kann,wobei ein erstes Register zur Bezeichnung des Speicherplatzes des Deskriptors der ersten Prozedur, ein zweites Register zur Bezeichnung der Speicherplätze der Deskriptoren, zu denen der Zugriff übertragen wird, und ein drittes Register zur Bezeichnung des sicher abgespeicherten Inhalts des ersten Registers während des Ablaufs der zweiten Prozedur vorgesehen sind.
  10. 10. DV-System nach Anspruch 9, dadurch gekennzeichnet , daß Einrichtungen zur Einstellung der Basis- und der Grenznummern der durch das zweite Register definierten Deskriptoren vorgesehen sind.
    509845/0893
    Leerseite
DE19752516050 1974-04-18 1975-04-12 Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem Ceased DE2516050A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US46214474A 1974-04-18 1974-04-18

Publications (1)

Publication Number Publication Date
DE2516050A1 true DE2516050A1 (de) 1975-11-06

Family

ID=23835317

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19752516050 Ceased DE2516050A1 (de) 1974-04-18 1975-04-12 Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem

Country Status (6)

Country Link
JP (1) JPS5818708B2 (de)
AU (1) AU505596B2 (de)
DE (1) DE2516050A1 (de)
FR (1) FR2268302B3 (de)
GB (1) GB1498116A (de)
HK (1) HK36880A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2737353A1 (de) * 1976-08-20 1978-02-23 Honeywell Inf Systems Verfahren zum testen der adressbildung in einem dv-system und vorrichtung zur durchfuehrung des verfahrens

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU506710B2 (en) * 1974-10-21 1980-01-24 Honeywell Information Systems Incorp. Method of accessing priviledged memory in a multiprogrammed data processing system
GB2127994B (en) * 1982-09-29 1987-01-21 Apple Computer Memory management unit for digital computer
US4926316A (en) * 1982-09-29 1990-05-15 Apple Computer, Inc. Memory management unit with overlapping control for accessing main memory of a digital computer
US4545016A (en) * 1983-01-07 1985-10-01 Tandy Corporation Memory management system
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
US5075845A (en) * 1989-12-22 1991-12-24 Intel Corporation Type management and control in an object oriented memory protection mechanism
US7707385B2 (en) * 2004-12-14 2010-04-27 Sony Computer Entertainment Inc. Methods and apparatus for address translation from an external device to a memory of a processor
CN115083463B (zh) * 2022-08-23 2022-11-08 旋智电子科技(上海)有限公司 用于控制存储器访问权限的方法、电子系统和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2737353A1 (de) * 1976-08-20 1978-02-23 Honeywell Inf Systems Verfahren zum testen der adressbildung in einem dv-system und vorrichtung zur durchfuehrung des verfahrens

Also Published As

Publication number Publication date
GB1498116A (en) 1978-01-18
AU505596B2 (en) 1979-11-29
HK36880A (en) 1980-07-18
JPS5818708B2 (ja) 1983-04-14
FR2268302B3 (de) 1978-10-06
AU7994975A (en) 1976-10-14
JPS50146229A (de) 1975-11-22
FR2268302A1 (de) 1975-11-14

Similar Documents

Publication Publication Date Title
DE2725718C2 (de) Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
DE3805107C2 (de)
EP0010195B1 (de) Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage
DE2423194C2 (de) Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage
DE2606210C3 (de) Schaltung für die dynamische Zuteilung von Prioritäten
DE2456602C2 (de) Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher
DE2350884C2 (de) Adreßumsetzungseinheit
DE2459006A1 (de) Verfahren und einrichtung zur entwicklung absoluter adressen bei segmentadressierung
DE3807997A1 (de) Ic-karte mit interner fehlerpruefung
DE2712575C2 (de) Assoziatives Speichersystem in hochintegrierter Halbleitertechnik
DE2054835C2 (de) Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage
DE2612083A1 (de) Verfahren und vorrichtung zur ein/ausgang-datenverarbeitung
DE2227882A1 (de) Virtuelle Speicheranordnung
DE2750721A1 (de) Ein/ausgabe-system
DE3131204A1 (de) Adressumrechnungs- und generatoranordnung
DE2612139A1 (de) Ein/ausgang-steuerungssystem
CH657218A5 (de) Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher.
DE1499182B2 (de) Datenspeichersystem
DE1499687B2 (de) Speicherschutz-einrichtung
DE2647574C2 (de) Vorrichtung zum Verarbeiten von durch ein Anfangs- und Endzeichen begrenzten Datenfeldsegementen variabler Länge bei einem Umlaufspeicher
DE4207158A1 (de) Speicher-zugriffssteuerung
DE1189294B (de) Datenverarbeitungsanlage
DE2801518A1 (de) Datenverarbeitungssystem mit speicher-schutzeinrichtung
DE2516050A1 (de) Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 13/00

Q176 The application caused the suspense of an application

Ref document number: 2546354

Country of ref document: DE

8131 Rejection