DE2414311A1 - Speicherschutzeinrichtung - Google Patents

Speicherschutzeinrichtung

Info

Publication number
DE2414311A1
DE2414311A1 DE2414311A DE2414311A DE2414311A1 DE 2414311 A1 DE2414311 A1 DE 2414311A1 DE 2414311 A DE2414311 A DE 2414311A DE 2414311 A DE2414311 A DE 2414311A DE 2414311 A1 DE2414311 A1 DE 2414311A1
Authority
DE
Germany
Prior art keywords
memory
keyword
program
register
protection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE2414311A
Other languages
English (en)
Other versions
DE2414311C2 (de
Inventor
Wendell Wells Brown
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2414311A1 publication Critical patent/DE2414311A1/de
Application granted granted Critical
Publication of DE2414311C2 publication Critical patent/DE2414311C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/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/1466Key-lock mechanism

Description

Böblingen, den 19. März 1974 Iv/-fe
Anmelderin: International Business Machines
Corporation, Armonk, ti.Y. 10504
Ämtliches Aktenzeichen: · Neuanmeldung Aktenzeichen der Annielderin: BC 973 001
Speicherschutzeinrichtung
Die Erfindung betrifft eine Speicherschutzeinrichtung mit einem eigenen Schlüsselwortspeicher.
Insbesondere bei der gleichzeitigen Verarbeitung von mehren Anwender-Programmen ist es notwendig, die verschiedenen Datenblöcke gegen unerlaubten Zugriff durch nicht autorisierte Benutzer zu schützen. Auch in bezug auf besonders wichtige Programme ist esnotwendig, eine Zerstörung der gespeicherten Programmdaten durch fehlerhafte Zugriffe zu verhindern. Ein solches wichtiges Programm mit kritischen Daten ist meist in bestimmten, vorher definierten Speicherblöcken im adressierbaren Hauptspeicher gespeichert und ein Schreibzugriff zu einem solchen Datenblock während der Ausführung irgendeines Anwender-Programmes, das sich auf Daten in irgendeinem anderen Speicherblock-bezieht, könnte schwerwiegende Folgen haben.
Es ist bekannt, jedem Speicherblock ein Schutzbit zuzuordnen. Abhängig vom Wert dieses Bits kann ein Zugriff zu diesem Block erfolgen oder nicht.
Es sind auch Einrichtungen bekannt geworden, die zu jedem Speicherblock ein Speicherschutz-Schlüsselwort in einem eigenen Schlüsselwortspeicher abspeichern. In der Praxis wird meist je-
A098A5/071S
dem der verwendeten Programme ein Schlüsselwort zugeordnet. Bei der Ausführung des Programmes werden die Schlüsselworte ausgelesen und mit den Schlüsselworten verglichen, welche den gerade verwendeten Speicherblocks zugeordnet sind. Nach der US-Patentschrift 3 377 624 erfolgt der Zugriff zu den Schlüsselworten aufgrund einer Programmidentifikation vom Programmspeicher. Die ausgelesenen Schlüsselworte werden geprüft, wobei jedes Bit einer bestimmten geschützten Funktion entspricht. Der aufgrund der Programmidentifikation ausgelesene Schlüssel kann eventuell nur aus einem einzigen Bit bestehen, das die Schreiberlaubnis für das betreffende Programm in dem betreffenden Speicherblock angibt.
Eine andere Speicherschutzeinrichtung ist in dem IBM TECHNICAL DISCLOSURE BULLETIN, Juni 19 71, Seite 109 - 110 beschrieben. Dieser Artikel bezieht sich auf ein Multiprozessor-System, in dem der Schlüsselwortspeicher benutzt wird, um anzugeben, ob ein gerade ausgeführtes Programm sich im lokalen Pufferspeicher befindet. Beim Laden des betreffenden lokalen Pufferspeichers wird also ein Schlüsselwort, welches auf eine bestimmte Adresse hinweist, in einer Tabelle gespeichert. Während der Ausführung des Programmes, d.h. also während aufeinanderfolgender Instruktionen, wird das mit der Instruktion verbundene Schlüsselwort mit dem Schlüsselwort im Schlüsselwortspeicher verglichen. Wird kein positiver Vergleich festgestellt, müssen in dem lokalen Pufferspeicher die betreffenden Daten geladen werden.
Wenn in einer virtuellen Prozessoranordnung, die mit Prioritätssteuerung arbeitet, ein Programmwechsel durch das Steuerprogramm oder durch das Auftreten eines Unterbrechungssignales stattfindet, setzt der Prozessor seine Tätigkeit automatisch mit dem neuen Programm fort. Es muß deshalb das Speicherschutz-Schlüsselwort ausgewechselt werden. In einer bekannten Einrichtung ist hierzu ein Register in einem Pufferspeicher für jedes mögliche Unterniveau aller Unterbrechungsniveaus vorgesehen. Diese Einrichtung erfordert eine hohe Zahl von Registern und umfangreiche Datenübertragungen.
BC 973 ooi A09845/071 5
24H311
Der Erfindung liegt daher die Aufgabe zugrunde, separate Speicherschutz-Schlüsselworttabellen zu jedem Programmidentifizierer zu vermeiden und eine einfache Speicherschutzeinrichtung für Programmunterbrechungen mit mehreren Prioritätsnivaus in einer virtuellen Prozessoranordnung anzugeben.
Diese Aufgabe wird durch die im Kennzeichen des Hauptanspruches beschriebene Einrichtung gelöst.
Die Erfindung hat den Vorteil, die Notwendigkeit der Bereitstellung von separaten Speicherschutz-Schlüsselworttabellen mit zugeordneten Programmidentifizierungen zu vermeiden. Es ist auch nicht notwendig, innerhalb eines jeden Instruktionsformates der . Programme separate Speicherschutz-Schlüsselworte zuzuordnen. Dadurch werden die "VerwaltungsZugriffe" zum Hauptspeicher drastisch vermindert. Wach der Erfindung wird der Speicherschutz dadurch erreicht, daß Schlüsselworte zu bestimmten Speicherblöcken zugeordnet werden. Das Schlüsselwort, das dem Speicherblock zugeordnet ist, der die erste auszuführende Instruktion eines Programmes enthält, wird in ein separates Register gestellt. Bei jeder Ausführung einer möglicherweise geschützten Instruktion dieses Programmes wird das in diesem separaten Register gespeicherte Schlüsselwort mit dem Schlüsselwort verglichen, das dem betreffenden Speicherblock zugeordnet ist, der durch das Programm adressiert wird. Wird kein positiver Vergleich festgestellt, wird der Zugriff zum Speicher unterdrückt und ein Ausnahmesignal erzeugt. Es kann also jedem Programm ein unterschiedliches Speicherschutz-Schlüsselwort zugeordnet werden oder es kann dasselbe Schlüsselwort auf mehrere Programme verteilt v/erden. In jedem Fall muß aber das Schlüsselwort übereinstimmen mit dem Schlüsselwort, das dem Speicherblock dieses Programmes zugeordnet ist.
Hierdurch wird es dem Überwachungsprogramm ermöglicht, das zu verwendende Speicherschutz-Schlüsselwort nach Wunsch zu verändern. Auf diese Art können auch spezielle Speicherschutz-Schlüsselworte erkannt werden, welche jeden Schreibzugriff zu dem zugeordne-
BC 973 ooi 409845/071 5
24U311
ten Speicherblock gestatten. Solche speziellen Schlüsselworte können z.B. nur für das überwachungsprogranm vorgesehen werden. Ein zusätzliches Schlüsselwort kann dazu verwendet v/erden, jedem Programm die geschützte Zugriffsoperation in seinem Speicherblock zu gestatten. Hierdurch wird ein hochflexibler Speicherschutz erzielt. Die Anzahl der zu verwendenden Register zur Speicherung der Schlüsselworte ist dabei minimal. Die Vorteile der Erfindung kommen besonders stark zur Geltung in einer virtuellen Prozessoranordnung mit Programmunterbrechungen auf mehreren Prioritätsniveaus .
Ein Ausführungsbeispiel der Erfindung soll nun anhand von Figuren beschrieben werden. Es zeigen:
Fig. 1 ein Blockschema einer Speicherschutzeinrichtung, Fig. 2 eine virtuelle Prozessoranordnung mit Programm
unterbrechungen auf verschiedenen Prioritätsniveaus,
Fig. 3 eine Speicherschutzeinrichtung mit Programmunter-
brechungen auf verschiedenen Prioritätsniveaus und
Fig. 4 eine Anordnung von Speicherstellen.
Der in Fig. 1 gezeigte Hauptspeicher IO wird durch Adressen adressiert, welche von einer zentralen Verarbeitungseinheit erzeugt werden und im Speicheradressenregister 11 gespeichert werden. Die hochwertigen Bits dieser Adresse gelangen auf die Leitungen 14, während die niederwertigen Bits des Adressenregisters auf die Leitungen 15 gelangen. Die Signale auf den Leitungen 14 und 15 stellen zusammen also eine Adresse einer Speicherstelie im Hauptspeicher 10 dar. Die Adressenbits auf den Leitungen 14 werden vom Decoder 16 decodiert und adressieren eines von vielen Speicherschutz-Schlüsselwortregistern 18.
BC y73 üoi 409845/071 5
24U311
Die Register 18 werden zu Beginn der Verarbeitung vom überwachungsprogramm geladen, das zu diesem Zwecke eine Schreibinstruktion SKR erzeugt, die an die Torschaltung 19 angelegt wird.
Die niederwertigen Bits des Adreßregisters 11 werden sodann in das ausgewählte Register 18 eingelesen.
Vor dem Laden des Registers 18 wird die Kippschaltung 20 durch ein Signal am Eingang 21 zurückgestellt, wodurch die Erzeugung eines Ausnahme- bzw. Fehlersignales am Ausgang des UND-Gliedes 22 vermieden wird.
In der in Fig. 1 gezeigten Einrichtung werden drei Datenbits in das Register 18 eingelesen und geben somit das Speicherschutz-Schluss elwort an. Wach der Beendigung des Ladevorgangs des Registers 18 wird ein Signal am Eingang 2 3 erzeugt, welches die Schutzkippschaltung 20 zurückstellt und damit das UND-Glied 22 zur Erzeugung eines Fehlersignales vorbereitet, im Falle ein nicht autorisierter Zugriff zum Speicherblock durchgeführt wird.
Vor der Ausführung eines Anwendungsprogrammes wird ein Instruktions-Abruf zyklus durchgeführt, in dem eine Adresse über die Leitungen 14 und 15 dem Speicher 10 angeboten wird. Die Verarbeitungseinheit CPU erkennt diesen Instruktions-Abrufzyklus und erzeugt am Eingang 24 ein Steuersignal, welches das UND-Glied 25 vorbereitet. Hierdurch wird das bestimmte Schlüsselwort, welches dem Hauptspeicherblock zugeordnet ist, der gerade adressiert wird, über die UND-Schaltung 25 in das Schutzschlüsselregister gebracht.
Nach Beendigung dieses Abrufzyklus wird das Signal am Eingang 24 entfernt, so daß der Inhalt des Registers 26 unter normalen Umständen während der Ausführung des betreffenden Anwendungsprogrammes nicht geändert wird. Bei jeder Decodierung der Blockadresse durch den Decoder 16 wird der Inhalt des betreffenden Speicherschlüsselregisters 18 als ein Eingang an den Vergleicher
BC 973 ooi 409845/0715
24U311
angelegt. Der Vergleicher 30 vergleicht das Speicherschutz-Schlüsselwort vom Register 18 mit dem Inhalt des Registers 26 und erzeugt auf der Leitung 31 ein Signal, wenn die beiden Eingänge nicht übereinstimmen. Dieses Signal liefert einen zweiten Eingang zum UND-Glied 22. Während der Ausführung eines Anwendungsprogrammes, in dem Operationen durchgeführt v/erden, die geschützt sind, wird ein Signal am Eingang 32 erzeugt und somit das letzte Vorbereitungssignal des UND-Gliedes 22 geliefert. Wenn alle drei Eingangssignale am UND-Glied 22 anliegen, wird ein Ausgangssignal am Ausgang 35 erzeugt, welches anzeigt, daß die beabsichtigte Operation nicht bewilligt ist. Im anderen Falle, wenn nicht alle Eingangssignale am UND-Glied 22 anliegen, wird ein Signal am Ausgang 36 erzeugt, welches anzeigt, daß die beabsichtige Operation durchgeführt werden kann.
Es kann z.B. gewünscht sein, das Anwendungsprogramm am Schreiben in einem bestimmten Block des Speichers zu verhindern. In diesem Falle würde vom Register 18, das durch die Adressierung dieses Blocks über den Dekoder 16 ausgewählt wird, ein Ausgangssignal erzeugt werden, das keinen positiven Vergleich mit dem ursprünglich in das Register 26 geladene Schlüsselwort liefern würde. Das Signal auf der Leitung 32 erzeugt daher ein Ausgangssignal am Ausgang 35 und zeigt an, daß die beabsichtigte Operation verboten ist. Hierauf kann der Prozessor durch eine Programmunterbrechung unterbrochen werden oder es kann eine andere korrigierende Operation ausgelöst werden.
Es kann vorkommen, daß es notwendig wird, den Inhalt des Schutzschlüsselregisters 26 zu verändern. Z.B. kann die Ausführung eines Anwendungsprogrammes durch ein steuerndes Uberwachungsprogramm unterbrochen werden. Wenn dies auftritt, kann es notwendig werden, in das Register 26 ein anderes Schlüsselwort zu setzen. Hierzu ist eine Instruktion APK zur Veränderung des Schlüsselwortes vorgesehen, die Eingangssignale an das UND-Glied 27 liefert. In das Adreßregister 11 werden geeignete niederwertige Bits gestellt, wodurch der Inhalt des Registers 26 über die Torschaltungen 19 an-
BC 973 ooi 409845/0715
gesteuert werden kann. Diese Ansteuerung erfordert auch eine Schreibinstruktion SKR und die genannte VeränderengsInstruktion APK, welche das UND-Glied 27 durchschalten. Auf die Leitungen 14 ΐ/erden lauter Nullen gestellt, so daß die Register 18 nicht verändert werden. Falls gewünscht, kann der Inhalt des Registers 26 ausgelesen und abgespeichert werden, um diesen Inhalt in bekannter Weise beim Auftreten einer Programmunterbrechung sicherzustellen. Das erneute Laden des Registers 26, sobald die Steuerung der Verarbeitungseinheit wieder vorn Anwendungsprogramm übernommen wird, kann auf die oben beschriebene Weise geschehen.
Wie aus Fig. 3 ersichtlich, kann der Vergleicher 30 ein Ausgangs- · signal auch bei anderen Operationen als dem Vergleich des direkten Speicherschlüssels mit dem Schutzschlüssel erzeugen. Es kann ein spezieller Schutzschlüssel benutzt v/erden, welcher Schreiben oder Lesen bezüglich jeder Speicherstelle gestattet und die Schaltung 30 kann diesen speziellen Schlüssel erkennen, und kein Ausgangssignal 31 erzeugen, obwohl dieser Schutzschlüssel im Register 26 nicht mit dem Ausgang des Registers 18 übereinstinant. Umgekehrt kann auch eine Speicherstelle angesteuert werden zur Speicherung von Daten unabhängig von dem spezifischen Schutzschlüssel, der mit dem betreffenden Programm verbunden ist. Ein Schlüsselwort mit besonderem Gewicht in einem der Register 18 könnte auch das Ausgangssignal 31 unterdrücken, sobald es vom Vergleicher 3O decodiert wird, und obwohl ein fehlender Vergleich mit den Ausgangssignalen des Registers 26 vorliegt.
An dieser Stelle soll betont werden, daß der beschriebene Speicherschutz sich nicht allein auf nicht autorisiertes Lesen, Schreiben oder andere Funktionen bezüglich von Daten oder Programmen in einem bestimmten Speicherblock bezieht, sondern daß eine Vielzahl von Operationen bezüglich eines bestimmten Speicherblockes in Speicher 10 geschützt. Hier soll auch erwähnt v/erden, daß das Eingangssignal zur Torschaltung 19 nicht nur von den niedert/e.rtigen Bits des Adressenregisters 11 kommen kann, sondern aucli von anderen Quellen, wie z.B. der CPU-Sammelleitung.
dc 973 ooi Λ09845/071Β
24U311
Die oben gezeigte Einrichtimg funktioniert also so, daß bei jedem Speicherzugriff der Inhalt des Speicherschutz-Schlüsselwortregisters, das dem Speicherblock mit der adressierten Speicherstelle zugeordnet ist, mit dem Inhalt des Schutzschlüssel-Registers, das dem momentan ausgeführten Programm zugeordnet ist, verglichen wird. Wenn eine geschützte Schreiboperation durchgeführt wird und der Inhalt dieser beiden Register verschieden ist, wird ein Schutz-Ausnahmesignal erzeugt. Die Schreiboperation wird verhindert und eine Fehlerroutine läuft an.
Es soll nun eine Prozessoranordnung mit mehreren Unterbrechungsniveaus kurz beschrieben werden. In einem solchen System kann ein Sprung zu einem höheren Unterbrechungsniveau ohne Programmunterstützung auf eine Anforderung einer externen Anforderungsquelle (Unterbrechungsanforderung) durchgeführt werden. Zusätzlich wird eines von einer Vielzahl von verschiedenen möglichen Programmen oder ein Programmeingangspunkt zur Ausführung auf dem ausgewählten Niveau ohne Programmunterstützung ausgewählt. Früher wurde jedem dieser Programme ein verschiedener Speicherschlüssel zugeordnet. Deshalb waren viele Schutzschlüsselregister für jedes Niveau notwendig, um der Anlage die Fähigkeit zu erhalten, Niveaus zu verändern und Programme (Unternivaus) auszuwählen und einen Speicherschutz ohne Programmunterstützung zu gewährleisten.
Mit der nachfolgend beschriebenen Einrichtung wird dem Rechner* die Fähigkeit erhalten, Unterbrechungsniveaus zu verändern und Programme auszuwählen, wobei ein Speicherschutz mit nur einem Schutzschlüssel pro Niveau und nicht ein Schlüssel pro Programm (Unterniveau) verwendet wird. Die Einrichtung tritt in Tätigkeit, wenn ein Wechsel des Unterbrechungsniveaus stattgefunden hat. Während des Abrufzyklus der ersten Instruktion, die nach dem Niveauswechsel durchgeführt werden soll, ersetzt der Inhalt des Speicherschutz-Schlüsselwortregisters, das dem adressierten Speicherblock zugeordnet ist, den Inhalt des Schutzschlüssel-Registers auf dem gegenwärtig aktiven Niveau. Der Inhalt des Schutzschlüsselwort-Registers wird nun mit dem Inhalt des Speicher-
BC 973 ooi 409845/071 5
24H311
Schlüsselwortregisters bei allen ηachfolgendem Speicherzugriffen verglichen, so daß ein Speicherschutz ohne Softwareunterstütsung ersielt wird» Der Inhalt des Schutzschlüsselwört-Registers einsis unterbrochenen Programmes, wird bis sur Wieder aufη ahme dss Programmes an anderer Stelle zwischengespeichert»
Xn. .Fig«, 2 ist eine SpeicherschutzeinrichtOTig für eine gentrale Verarbeitungseinheit mit mehreren FrioritäfcSBiveams von Programriiunterbrechungen gezeigte Der Hauptspeicher 4O besteht aus einer Serie von verschiedenen Blocks l-Nr denen jeweils ein Speicherschlüsselwortregister 41 bis 46 zugeordnet ist. Die Register 41 bis 46 sind mit den Speicherschuts-Sciilüsselwortregistern 18 in Fig„ 1 zu vergleichen und werden su Beginn der Verarbeitung mit -Schlüsselwortdaten geladen, wie es im Zusammenhang mit Fig. "2 oben beschrieben wurde. Die Schlüsselworte werden dabei vor der Ausführung eines Änwendungsprograffimes geladen. Sobald ein Unterbrechungsniveauwechsel festgestellt x-yird^ wird ein Signal am Eingang 47 erzeugt und damit das UND-Glied 48 vorbereitet. Der niveauorientierte Prozessor enthält Prioritätsniveau-Auswahlschaltungen 49, mit deren Hilfe eines der Speicherschutz-Schlüsselwortregister 50 bis 5 3, die jeweils einem Prioritätsnivau des Prozesses zugeordnet sind, ausgewählt wird.
Das Register 50 mit dem Niveau 0 ist einer unterbrechung mit dem höchsten Niveau zugeordnet,-während das Register 53 des Niveau 3 dem niedrigsten Prioritätsniveau anspricht. Der Unterbrechungswechsel und das Niveau dieser Unterbrechung wird vom Prozessor erkannt und das entsprechende Register 50 bis 53 wird mit dem Inhalt eines entsprechenden Speicherschutz-Schlüsselwortregisters 41 bis 46 geladen, und zwar als Funktion des betreffenden Speicherblocks im Hauptspeicher 40, der durch den ersten Instruktionsabrufzyklus zur Durchführung der Unterroutine zur Bearbeitung der Programmunterbrechung adressiert wird. Nach dem Laden der Register bis 53 ist eines dieser Register, und zwar das mit der höchsten Priorität, dauernd über die Äuswahllogik 49 aktiv und liefert ein Eingangssignal zur Vergleichsschaltung 54.
BC 973 ooi 409845/071 5
• . 24U311
Bei der Adressierung eines Speicherblocks während der Ausführung des Anwendungsprogrammes wird sein Speicherschutz-Schlüssel mit dem Inhalt des Schutzschlüsselwortregisters, das dem gegenwärtig verarbeiteten Unterbrechungsniveau zugeordnet is.t, verglichen. Bei fehlendem Vergleich werden die beschriebenen Alarmoperationen ausgelöst.
In Fig. 3 ist ein Blockschema und insbesondere die logische Einrichtung einer solchen Prozessoranordnung näher gezeigt. Das Speicheradreßregister 55 wird zur Adressierung des Hauptspeichers 56 über die Adreßsammelleitung 57 verwendet. Die hochwertigen Bits dieser Adresse werden in den Blockadreßdecoder 58 gebracht, welcher eines der Speicherschutz-Schlüsselwortregister 59 auswählt. In der gezeigten Einrichtung sind 12 8 Register zu jeweils 3 Bits vorgesehen, über den Eingang 60 werden die 3 Bits entweder in die Speicherschutz-Schlüsselwortregister 59', oder in die Vielfachniveau-Schutzschlüsselwortregister 61, oder in beide geladen. Der Eingang 60 kann von den niederwertigen Bits des AdreSregisters 55 oder von einer anderen geeigneten Quellen, wie z.B. der Datensammelleitung der zentralen Verarbeitungseinheit, erhalten werden.
Das Laden der Register 49 wird von einer entsprechenden Ladeinstruktion IPL gesteuert, die auch die Kippschaltung 62 zurückstellt. Dadurch wird eine Fehleranzeige während des ininitialen Laden vermieden. Eine Instruktion zur Veränderung der Schlüsselworte ASK und ein Taktpuls C schalten das UND-Glied 64 durch und ermöglichen dadurch den Registern 59 die 3 Bit Bytes am Eingang 60 zu empfangen. Während der Beginnoperation des Ladens des Programmes stellt die Instruktion IPL die Kippschaltung 62 zurück, die in diesem Zustand gehalten wird, bis eines der Register geladen ist. Hierdurch wird ein Setzen der Kippschaltung 62 verhindert, solange die Speicherschutzeinrichtung noch nicht wirksam ist. Zur Adressierung der 128 Register sind 7 Bits der hochwertigen Adressenbits notwendig, welche über die Leitungen 57 zum Decoder 58 gelangen. Am Ausgang 65 wählt der Decoder eines der
BC 973 ooi 409845/07 15
128 Register auso Ss ist zn beach ten.? eiaß jedes .des: Es'gistsE- 5 S einen Vergleich mit eineia zugeordnetem. Register- 41 bis <fl<S in FI 2 liefern würde„ Entsprechend wird der Haiiptspaialisr 40 iia Fig„ in 128 Blocks unterteilte die jede beliebig® Groß© hab®a !sö
Nachdem die Register 59 die betreffendes Sehliiss©iw©rfc© £S jeweils angeordneten Hauptspeieherblöske empfangen inabsas der Prozessor mit der Ausführung der aufeinanderfolgend-ss Isa= struktionen beginnen» Das ünterbrecIiBagssipial ISJT setgfe. über einen Eingang die Kippschaltung 6β B wobei dieses üatss signal von der sentralen ¥erarbeituags©iiali(sit CPU srgs Der Selbstaiasgang der Kippschaltung S6 bereitet, das TOB-Sli@d 67 ■und die UND-Glieder β 8 vor« Die Äuisführiffiag ©iaes lnstsiilsti©ias·= abruf zyklias erzeugt ein Signal am Eingang I11 welches ebeiafalls das UND-Glied δ7 vorbereitete -Die Adresse ia der geholtssa lsi= struiction liegt auf 57 anf wobei die hoAwertigen Bits sisiss fi®r Register 59 ais^X'Jähleno Bar Inhalt des ausgewählten Esfistesrs 59 gelangt somit zn den betreffenden Eingängen d©r UHD-Glie&r 1SS und liefert somit den Eingang sran SpeichersAuts-Schlu register 61 iäber die ODER-Glieder 69 „ Das durch die u&ub. brechung aktiv gewordene Prioritätsni¥eaia wird durch eia gasig= netes Ämswah !signal von der zentralem ¥erarb©it«ngssialii@it aa Äuswahleingang L¥L SEL au den Registern Sl angegebene Eiaes der vier 3 Bitregister- 61* das dem neuen Unterbrechisigsni^eaiQ siaigs= ordnet ist, wird also mit dem Schlüsselwort vom ausgewählten Ss= gister 59 geladen» Diese Auswahl erfolgt durch ein Taktsignal während des Xnstrüktionsabrufzyklus T0 was durch dem Eingang Ca zum UND-Glied 6 7 illustriert wird. Hierdurch wird ein abtastim= puls zum ausgewählten Register 61 über das ODER-Glied'70 erhalten. Ein darauf folgender Zyklus CB während des InstsruktiGnszyklus I setzt die Kippschaltung 66 zurück«
In der Folge verursacht jede Instruktion,? von der die zentrale Verarbeittmgseinheit annimmt, daß sie eine geschützte Operation versucht, einen Vergleich des gegenwärtigen Schutzschlüssels s wie er vom aus gewühlten Ausgang des Registers 59 erhalten wird,
973 ooi 409845/071 5
2AU311
mit dem Inhalt des entsprechenden Registers 61, das dem aktiven Unterbrechungsniveau zugeordnet ist. Der Vergleich wird in den exklusiv ODER-Gliedern 71 durchgeführt. Wenn an einem dieser Glieder Eingänge anliegen, welche verschieden sind, erzeugt es ein Signal zum ODER-Glied 72, welches dadurch ein Eingangssignal zum UND-Invert-Glied 73 erzeugt. Wenn auch alle anderen Eingänge vorhanden sind, wird ein Ausgangssignal 74 erzeugt, das anzeigt, daß eine Prüfoperation eingeleitet werden sollte. Wenn andererseits Eingänge zum logischen Glied 73 negativ sind, und dadurch einen positiven Vergleich anzeigen, erzeugt das UND-Glied 75 ein Ausgangssignal beim Erscheinen eines Taktpulses C und das Signal am Ausgang 76 zeigt somit an, daß die beabsichtigte Operation im Prozessor durchgeführt werden kann.
Wie in Fig. 3 gezeigt, ist die beschriebene Speicherschutzeinrichtung als Schreib-Schutz gedacht. Ein Anwendungsprogramm, das von einem bestimmten Speicherblock ausgelesen wird, wird also daran gehindert, den Inhalt von Speicherstellen in einem anderen Block zu zerstören. Dies ist daraus ersichtlich, daß am Eingang des UND-Gliedes 75 und des UND-Invert-Gliedes 73 ein Speicher-Schreibsignal anliegt, welches den Versuch der Instruktion anzeigt, eine Speicher-Schreib-Operation durchzuführen. Wenn diese Schreiboperation bewilligt wird, wird ein Ausgangssignal 76 erzeugt und kann die Operation durchgeführt werden. Ein weiterer Vorbereitungseingang zum UND-Invert-Glied 73 wird durch das Ausgangssignal des UND-Gliedes 77 erzeugt. Das UND-Glied 77 wird dann vorbereitet, wenn die Schutz-Verriegelungsschaltung 62 gesetzt wurde und damit anzeigt, daß der Prozessor im Schutzmodus arbeitet, und auch wenn kein Schutz-Ausschaltsignal geliefert wurde. Die Schutzausschaltung kann im Zusammenhang mit verschiedenen Funktionen, wie z.B. Überwachungsprogrammfunktionen, manueller Datenspeicherung in den Speicher von der Konsole, Zyklusentnahmeoperationen, Datenübertragung von einem anderen Prozessor oder dergleichen verwendet werden. Es kann beabsichtigt sein, die geschützte Operation für jede Anwendungsprogrammausführung in ausgewählten Speicherblocks des Speichers 56 zu gestatten. In
BC 9 73 ooi 409845/071 5
der Schaltimg nach Fig. 3 ist zur Ausführung dieser Operation das ' invertierende UND-Glied 78 vorgesehen. Jeder Block, der auf diese Vie is e nicht geschützt werden soll, wird mit einem aus lauter Einsen bestehenden Schlüsselwort geladen. Wenn dieser Block adressiert wirdj. erzeugen die Eingänge zum UND-Invert-Glied -78, die vom ausgewählten Register 59 lauter Einsen erhalten, am Ausgang des Gliedes 78 ein negatives Signal und nehmen damit die Vorbereitung des UND-Invert-Gliedes 73 weg. Dementsprechend bereitet das ÖND-Invert-Glied 73 das UND-Glied 75 vor, so daß ein autorisierendes Ausgangssignal 76 erzeugt wird, wenn zugleich der Taktpuls C und ein Signal auf der Leitung 79 anliegt, das den Versuch der Ausführung der geschützten Operation im Prozessor anzeigt.' Das Ausgangssignal 76 wird also unabhängig davon erzeugt, ob ein positiver Vergleich durch die Exklusiv-QDER-Glieder 71 stattgefunden hat. Gleichermaßen können Fälle auftreten, in denen die eventuell geschützte Operation für die Ausführung eines Programmes unabhängig vom Zustand des mit dem betreffenden Block verbundenen Schlüsselwortes gestattet wird. Zu diesem Zwecke werden in eines der .Register 61 lauter Nullen geladen. Das ODER-Glied 80 erzeugt sodann ein negatives Ausgangssignal und das UND-Invert-Glied 73 wird unter diesen Umständen nicht vorbereitet. Das bedeutet, daß ein Vorbereitungssignal zum UND-Glied 75 unabhängig von einem Vergleichssignal von den Exklusiv-ODER-Gliedern 71 geliefert wird, so daß das Bewilligungssignal 76 erzeugt wird und nicht ein Signal zur Anzeige einer SchutzVerletzung 74.
Falls nur ein Schreibschutz vorgesehen ist, hat das Setzen der Speicherschutzkippschaltung 62 während des Ladens der Speicher-Schlüsselregister 59 keinen Einfluß, da das Auslesen dieser Schlüsselinformation vom Hauptspeicher und das Laden dieser Bytes in die Register 59 keine Speicher-Schreiboperation mit sich bringt. Wenn jedoch ein Schreib- und ein Leseschutz vorgesehen ist, muß ein Signal zur Ausschaltung des Speicherschutzes als Eingangssignal zum UND-Glied 77 vorgesehen werden. Dadurch kann das UND-Glied 73 nicht durchschalten und kann kein Schutzverletzungssignal erzeugt werden.
BC 973 ooi 409845/0715
2AU311
In der nachfolgenden Tabelle 1st ein Teil des Hauptspeichers gezeigt, der im Zusammenhang mit Programmunterbrechungen auf verschiedenen Niveaus und Unterniveaus Verwendung findet. Falls eine Programmunterbrechung auf einem höheren Niveau als dem gegenwärtig verwendeten stattfindet, macht der Prozessor einen Zugriff zu den in den Speicherstellen OA-OD gespeicherten Niveauworten. In diesen Niveauworten ist ein Zeiger gespeichert, der die Adresse der Startinstruktion SIA und damit des Speicherbereiches angibt, in dem die verschiedenen Unterniveauadressen gespeichert sind.
Wie aus Fig. 3 ersichtlich ist, wird die Vektorniveauadresse auf auf die Sammelleitung 55 gebracht. Eine weitere Aktion findet jedoch zunächst nicht statt, da noch kein Instruktionsabrufzyklus eingeleitet ist. Das Niveauwort wird kombiniert mit der Unterniveau-Adressenverschiebungsangabe DISP und ergibt somit die Adresse XX der Speichers te He, in der die Startadresse der Unterroutine enthalten ist, die die betreffende Programmunterbrechung abwickelt. Es wurde somit die Startadresse der ersten Instruktion gewonnen und diese wird auf die Sammelleitung 5 5 während des Instruktionsabrufzyklus gegeben. Hierauf führt die in Fig. 3 beschriebene Einrichtung bei jeder Instruktionsausführung die oben beschriebene Schutzprüfung durch.
EC 973 ooi 409845/071 5
24U311
TABELLE
X X
NIVEAU 1 DISP F
HI¥EÄU 1
SIA
LISTE
SIA
LISTE
X X NIVEAU 1 DISP 1
X X NIVEAU 1 DISP O
X X NIVEAU O DISP O
X X NIVEAU O DISP 1
X X NIVEAU O DISP O
OD NIVEAU 3 •SIÄ ZEIGER
OC NIVEAU 2 SIA ZEIGER
MIWAU- OB NIVEAU 1 SIA ZEIGER
WOETE OA NIVEAU O SIA ZEIGER
Das überwachtängsprograram kann jedes oder alle Schutzscklüsselregister 61 auslesen, deren Inhalt zur Identifikation des Benutzers verwendet wird und die betreffenden Schlüsselworte später wieder in die Register zurückschreiben.
Das überwachungsprogramm kann den Inhalt jedes oder aller Schutzschlüsselregister 61 auslesen und damit einen bestimmten Benutzer identifizieren, sowie diese Schlüsselworte später wieder in die Register zurückladen.
Zusammenfassend kann die Arbeitsweise des Ausführungsbeispieles wie f.olgt dargestellt werden:
BC 973.ooi' 409845/0715
24H311
Jedem Speicherblock im Hauptspeicher wird ein Schlüsselwort zugeordnet und in einem Schlüsselwortspeicher gespeichert. Während des Abrufzyklus der ersten Instruktion eines Anwendungsprogrammes wird das Schlüsselwort, das zu dem Speicherblock gehört, der diese erste Instruktion enthält, in ein Schutzschlüsselregister übertragen. Während der Ausführung der folgenden Instruktionen, die möglicherweise geschützte Operationen enthalten, wird der Inhalt dieses Schutzschlüsselregisters mit dem Inhalt des zu dem adressierten Speicherblock gehörenden Speicherschlüsselregisters verglichen. Wird kein positiver Vergleich festgestellt, ist der Speicherschutz verletzt und darf die betreffende Operation nicht ausgeführt werden. Jedem Programm kann also ein verschiedener Schutzschlüssel zugeordnet werden oder derselbe Schutzschlüssel kann für verschiedene Programme verwendet werden. Jedenfalls muß das Schlüsselwort übereinstimmen mit dem Speicherschlüssel, der dem betreffenden gerade adressierten Speicherblock zugeordnet ist.
In einer Prozessoranordnung mit verschiedenen Unterbrechungsniveaus wird jedem Unterbrechungsniveau nur ein einziges Schutzschlüsselwort zugeordnet. Das Schutzschlüsselregister wird dabei während des Abrufzyklus der ersten Instruktion automatisch gesetzt. Der Wert entspricht dem Speicher-Schlüsselwort, das dem adressierten Speicherblock zugeordnet ist. Der einem bestimmten Programm zugeordnete Schutzschlüssel wird also zunächst in den Schlüsselwortspeicher gesetzt, in dem jedem Speicherblock ein Schlüsselwort zugeordnet ist. Dabei werden einem bestimmten Anwendungsprogramm bestimmte Speicherblöcke zugeordnet. Der erste Abrufzyklus eines Anwendungsprogrammes bestimmt also den Speicherschutzschlüssel, der während der Ausführung dieses Programmes gültig ist. Wenn also das Anwendungsprogramm während seiner Ausführung versucht, eine geschützte Operation in einem Speicherblock auszuführen, dessen Speicherschlüssel verschieden ist von dem der im ersten Abrufzyklus der ersten Instruktion des Anwendungsprogrammes erhalten wurde, wird vom Vergleicher kein positiver Vergleich festgestellt und die beabsichtigte Operation verhindert.
BC 9 73 ooi 40984 5/0715

Claims (1)

  1. 24H31
    PATENTANSPRÜCHE
    Speicherschutzeinrichtimg aiifc einem Schlüsselwortspeichesr, in dem zu jedem Datenblock Im Hauptspeicher ein Schlüsselwort gespeichert ist rad mit einem Schlüsselwor-tvergleicher zum Vergleich dieses Schlüsselwortes mit einem vqhi jeweiligen Programm abgeleitete» Schlüsselwort, gekennzeichnet durch ein Schutzschlüsselregistex (26, 61) zur Speicherung des Schlüsselwortes des Spelclierfoloeks, in dem die erste Instruktion des Programmes gespeichert ist, wobei bei jeder nachfolgenden Instruktion der Vergleicher (30) dieses Schlüsselwort mit dem Schlüsselwort des jeweils adressierten Speicherblocks vergleicht«
    Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Schlüsselwortspeicher (18, 59) mit den hochwertigen Adressenbits der Hauptspeicheradresse adressiert.wird und daß die niederwertigen Bits dieser Adresse in des jeweils adressierte Register des Schlüsselwortspeichers (18, 59) geladen werden, wobei während des Abrufzyklus der ersten Instruktion eines Programmes diese niederwertigen Bits auch in das Schutzschlüsselregister (26,. 61) geladen werden.
    Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß im Schlüsselwortspeicher. (18, 59) ein spezielles Schlüsselwort gespeichert wird, derart, daß der Vergleicher (30) in jedem Fall ein Erlaubnissignal für die jeweilige Operation liefert.
    Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß im Schutzschlüsselregister (26, 61) ein spezielles Schlüsselwort gespeichert wird, derart, daß der Vergleicher (30) in jedem Falle ein Erlaubnissignal liefert.
    Einrichtung nach Anspruch 1 In einer Prosessoranordnraag zur. Mehrfachprogrammverarbeitiang mit '
    /S0S84S/Q71S
    2AU311
    gen auf verschiedenen Prioritätsniveaus, dadurch gekennzeichnet, daß für jedes Unterbrechungsniveau ein Schutzschlüsselregister (50 bis 53) vorgesehen ist, wobei von einer Prioritätsauswahllogik (49) jeweils das Schutzschlüsselregister mit der höchsten aktiven Priorität bei der Ausführung jeder Instruktion des laufenden Programmes zum Vergleicher (30) ausgelesen wird.
    BC 973 ooi 409845/071 5
DE2414311A 1973-04-30 1974-03-25 Speicherschutzeinrichtung Expired DE2414311C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US00356015A US3825903A (en) 1973-04-30 1973-04-30 Automatic switching of storage protect keys

Publications (2)

Publication Number Publication Date
DE2414311A1 true DE2414311A1 (de) 1974-11-07
DE2414311C2 DE2414311C2 (de) 1984-10-04

Family

ID=23399751

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2414311A Expired DE2414311C2 (de) 1973-04-30 1974-03-25 Speicherschutzeinrichtung

Country Status (7)

Country Link
US (1) US3825903A (de)
JP (1) JPS5524200B2 (de)
CA (1) CA1014672A (de)
DE (1) DE2414311C2 (de)
FR (1) FR2227579B1 (de)
GB (1) GB1437050A (de)
IT (1) IT1010742B (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4000487A (en) * 1975-03-26 1976-12-28 Honeywell Information Systems, Inc. Steering code generating apparatus for use in an input/output processing system
US4162529A (en) * 1975-12-04 1979-07-24 Tokyo Shibaura Electric Co., Ltd. Interruption control system in a multiprocessing system
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
DE2721599C2 (de) * 1976-05-17 1983-05-05 Sperry Corp., 10019 New York, N.Y. Schaltungsanordnung zur Verhinderung der Ausgabe von Datenworten aus einer EDV-Anlage ohne Sicherheitsverifizierung
US4244049A (en) * 1979-02-02 1981-01-06 Burroughs Corporation Method and apparatus for enhancing I/O transfers in a named data processing system
US4251885A (en) * 1979-03-09 1981-02-17 International Business Machines Corporation Checking programmed controller operation
US4293910A (en) * 1979-07-02 1981-10-06 International Business Machines Corporation Reconfigurable key-in-storage means for protecting interleaved main storage
US4439830A (en) * 1981-11-09 1984-03-27 Control Data Corporation Computer system key and lock protection mechanism
US4506329A (en) * 1982-03-08 1985-03-19 Pitney Bowes Inc. Non-volatile memory serial number lock for electronic postage meter
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
US4525786A (en) * 1982-07-12 1985-06-25 Pitney Bowes Inc. Electronic postage meter having a one time actuable operating program to enable setting of critical accounting registers to predetermined values
JPS5958700A (ja) * 1982-09-29 1984-04-04 Fujitsu Ltd 記憶保護判定方式
FR2553541B1 (fr) * 1983-10-17 1992-02-28 Inst Nat Rech Inf Automat Dispositif et procede pour le stockage rapide et stable d'informations
JPS60159940A (ja) * 1984-01-30 1985-08-21 Fanuc Ltd プログラムの保護範囲変更方法
JPS6376034A (ja) * 1986-09-19 1988-04-06 Hitachi Ltd 多重アドレス空間制御方式
US5163096A (en) * 1991-06-06 1992-11-10 International Business Machines Corporation Storage protection utilizing public storage key control
US5467396A (en) * 1993-10-27 1995-11-14 The Titan Corporation Tamper-proof data storage
US5488702A (en) * 1994-04-26 1996-01-30 Unisys Corporation Data block check sequence generation and validation in a file cache system
US5852736A (en) * 1996-03-28 1998-12-22 Intel Corporation Method and apparatus for protecting data using lock values in a computer system
US5724551A (en) * 1996-05-23 1998-03-03 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers
US5809546A (en) * 1996-05-23 1998-09-15 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
EP0825530A3 (de) * 1996-06-20 2004-06-02 Sharp Kabushiki Kaisha Rechnergerät mit elektrischem wiederschreibbarem nichtflüchtigem Speicher und nichtflüchtiger Halbleiterspeicher
US6807602B1 (en) * 2000-10-30 2004-10-19 Hewlett-Packard Development Company, L.P. System and method for mapping bus addresses to memory locations utilizing access keys and checksums
US9647838B2 (en) * 2013-01-25 2017-05-09 Ralph John Hilla Restructuring the computer and its association with the internet
US20150261693A1 (en) * 2014-03-14 2015-09-17 International Business Machines Corporation Dynamic storage key assignment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3377624A (en) * 1966-01-07 1968-04-09 Ibm Memory protection system
DE2010640A1 (de) * 1969-05-19 1970-11-26 VEB Kombinat Robotron, χ 8l42 Radeberg Patentwesen, Ost-Berlin WPI3989O Schaltungsanordnung zur Durchführung des Speicherschutzes in Verbindung mit Kanalsteuereinheiten

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US27251A (en) * 1860-02-21 Improvement in compositions formed of caoutchouc
US3328768A (en) * 1964-04-06 1967-06-27 Ibm Storage protection systems
US3576544A (en) * 1968-10-18 1971-04-27 Ibm Storage protection system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3377624A (en) * 1966-01-07 1968-04-09 Ibm Memory protection system
DE2010640A1 (de) * 1969-05-19 1970-11-26 VEB Kombinat Robotron, χ 8l42 Radeberg Patentwesen, Ost-Berlin WPI3989O Schaltungsanordnung zur Durchführung des Speicherschutzes in Verbindung mit Kanalsteuereinheiten

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IBM Technical Disclosure Bulletin, Juni 1971, S.109-110 *
In Betracht gezogene ältere Anmeldung: DE-OS 22 51 876 *

Also Published As

Publication number Publication date
IT1010742B (it) 1977-01-20
FR2227579A1 (de) 1974-11-22
US3825903A (en) 1974-07-23
FR2227579B1 (de) 1976-06-25
DE2414311C2 (de) 1984-10-04
GB1437050A (en) 1976-05-26
JPS5011139A (de) 1975-02-05
JPS5524200B2 (de) 1980-06-27
CA1014672A (en) 1977-07-26

Similar Documents

Publication Publication Date Title
DE2414311A1 (de) Speicherschutzeinrichtung
DE69533312T2 (de) Geschütztes speichersystem und verfahren dafür
DE2458065C2 (de) Datenverarbeitungsanlage
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE2645537C2 (de)
DE2629459C2 (de)
DE3128740C2 (de)
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
CH619309A5 (de)
DE2902465A1 (de) Datenverarbeitungsanordnung
DE2722099A1 (de) Abfangeinrichtung fuer ein dv-system
DE102007006190A1 (de) Techniken zur Verwendung von Speicher-Attributen
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE2928488A1 (de) Speicher-subsystem
DE3228405A1 (de) Emulator zur erzeugung einer folge von steuersignalen
DE2747633A1 (de) Dv-system mit einer unterbrechungseinrichtung
DE102006039747A1 (de) Verfahren für Kontextzustandsmanagement
DE1549531A1 (de) Digitale Rechenanlage
DE2626703A1 (de) Intern programmierbares datenverarbeitungssystem
DE1474063A1 (de) Datenverarbeitungsanlage
DE2611975A1 (de) Dv-system mit einer einrichtung zur zuordnung von prozessen zu einem prozessor auf einer prioritaetsbasis
DE2364323C2 (de) Verfahren zur Behandlung von Unterbrechungsbedingungen in einer Datenverarbeitungsanlage
DE10297686B4 (de) System und Verfahren zum Steuern der Zugriffe zwischen einzelnen Geräten innerhalb eines Computersystems
DE4406094C2 (de) Vorrichtung zum Betrieb einer Steuerungsanwendung
DE2906685C2 (de)

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee