DE3048365C2 - - Google Patents
Info
- Publication number
- DE3048365C2 DE3048365C2 DE3048365A DE3048365A DE3048365C2 DE 3048365 C2 DE3048365 C2 DE 3048365C2 DE 3048365 A DE3048365 A DE 3048365A DE 3048365 A DE3048365 A DE 3048365A DE 3048365 C2 DE3048365 C2 DE 3048365C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- write
- data
- address
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
Description
Die Erfindung betrifft ein Speicherschutzsystem gemäß dem
Oberbegriff des Anspruchs 1, insbesondere für
kritische Daten in einem solchen Datenverarbeitungssystem,
mit dem das versehentliche Einschreiben von Daten in einen
Bereich eines Lese/Schreib-Speichers, der kritische Daten
enthält, vermieden werden soll.
Mit dem Begriff "Kritische Daten" sind beispielsweise temporär
gespeicherte Daten gemeint, die gar nicht oder nur mit
großem Aufwand regeneriert werden können; ein einfaches Beispiel
für solche "kritische Daten" ist die Buchführung über
die Rechenzeit in der letzten Woche, die beispielsweise für
die Abrechnung wesentlich ist; diese Daten können nur regeneriert
werden, wenn die gesamten Rechnungen nochmals durchgeführt
werden, was wiederum davon abhängt, ob noch Unterlagen
über diese Rechenzeit, beispielsweise im Speicher,
vorhanden sind; wenn auch diese Daten über die verschiedenen
durchgeführten Rechnungen aus Versehen gelöscht worden sind,
besteht kein Zugriff mehr zu diesen Daten, d h., ihre Regenerierung
ist auch mit großem Aufwand nicht mehr möglich.
Der Begriff "Datenverarbeitungssystem" soll hier jedes System
umfassen, das wenigstens einen Lese/Schreib-Speicher, der im
folgenden auch als "RAM" bezeichnet werden soll, zusammen
mit einem Steuermechanismus für den Zgriff zu dem Speicher
enthält. Im allgemeinen ist der Steuermechanismus eine Zentraleinheit
(central processing unit=CPU) oder ein Mikroprozessor,
wobei das Gesamtsystem Adressen- und Daten-
Leitungen bzw. -Busse und eine Steuerleitung für die Auswahl
von Lese- oder Schreib-Zyklen enthält. Bei einem solchen
Datenverarbeitungssystem kann es sich also um einen
Mikrocomputer oder um ein Mikrocomputer enthaltendes Produkt
handeln, wie beispielsweise einen Mikrowellenofen,
eine Einrichtung zur Überwachung von Patienten usw.
Es ist bekannt, daß alle Datenverarbeitungssysteme dieses
Typs gelegentlich "zusammenbrechen". Ein solcher Zusammenbruch
kann durch viele Faktoren verursacht werden, beispielsweise
durch Spannungsstöße auf der Netzleitung, statische
Entladungen des Bedienungspersonals, kleine Softwarefehler
und weiche dynamische RAM-Fehler, die auf verstreute Alpha-
Teilchen zurückzuführen sind. Selbst Systeme, die eine
Batterieresereve enthalten und einen Kernspeicher benutzen,
sind nicht immun gegen solche Zusammenbrüche. Sobald die
Zentraleinheit "ihren Kopf verliert" und damit außer
Kontrolle gerät, besteht die Gefahr, daß sie zu einem Abschnitt
des Programms springt, der das Einschreiben in den
Speicher steuert. Wenn dies passiert, sind die vorher gespeicherten
Daten verloren, so daß dieses Datenverarbeitungssystem
erneut gestartet werden muß.
Es gibt jedoch bestimmte Daten, die zu vielen verschiedenen
Arten von Schwierigkeiten führen, wenn sie verloren gehen.
Ein typischer Fall ist der eines komplizierten, statistischen
Multiplexers. Ein statistischer Multiplexer ordnet dynamisch
Subkanäle oder Zeitscheiben auf einer statistisch verteilten
Basis zu, um den Datendurchsatz dadurch zu erhöhen, daß
Zeitscheiben nur für die Kanäle vorgesehen sind, die aktiv
Daten übertragen. Derartige Multiplexer wirken in
Wirklichkeit nicht nur als Multiplexer, sondern zugleich als
Datenkonzentratoren. Eine solche Einrichtung kann On-line-
Informationen von vielen Quellen übertragen, wobei ihr
Betrieb oft durch manuell eingegebene Daten gesteuert wird.
Wenn ein solcher Multiplexer zusammenbricht und diese
kritischen Daten verloren gehen, bleibt diese Einrichtung
(die sehr oft ohne Bedienungspersonal arbeitet) außer
Betrieb, bis eine gut ausgebildete Bedienungsperson zur
Verfügung steht, um die Steuerdaten über Steuerpult-Schalter
wieder manuell einzugeben. Ein solcher Multiplexer muß also
gegen die zufällige Löschung bestimmter kritischer Daten in
dem Lese/Schreib-Speicher geschützt werden.
Es gibt auch andere adressierbare (und sogar nicht adressierbare)
Bauelemente, die ebenfalls geschützt werden müssen.
Beispielsweise kann ein System einen selbsthaltenden Schalter
(latch) enthalten, dessen Inhalt kritisch für den Betrieb des Systems
ist. In ähnlicher Weise kann eine Eingabe/
Ausgabe-Einheit vorhanden sein, die ebenfalls zu einer Gefährdung
des Betriebs des Systems führt, wenn eine andere
Einheit zufällig Zugriff zu ihr erhält.
Üblicherweise wird ein Speicherbereich mit kritischen Daten
mittels eines Schutzschalters gegen diese Störungen geschützt.
Nur wenn der Schalter manuell verstellt wird, um
den Schutz aufzuheben, können Daten in die RAM-Adressen eingeschrieben
werden, die von dem Schalter gesteuert werden;
wen sich der Schalter im "Schutzzustand" befindet, werden
Schreibimpulse abgeblockt, so daß sie den Speicher nicht erreichen
können. Diese herkömmliche Technik ist zweifelsfrei
sehr sicher; sie ist jedoch mit dem Nachteil verbunden, daß
sie auf einem Eingriff des Bedienungspersonals beruht, was
wegen des nie ganz auszuschließenden "menschlichen Versagens"
immer problematisch ist; außerdem ist immer in Eingriff durch
eine Bedienungsperson erforderlich, was ebenfalls zu Schwierigkeiten
führt.
Außerdem gibt es auch Software-Auswahlroutine, die im wesentlichen
in Software/Hardware-Entwicklungssystemen gefunden werden.
Bei einem solchen System muß der Benutzer Zugriff zu
den Bereichen des RAM haben, die geschützt werden sollen.
Eine Software-Auswahlroutine überprüft
dann alle Anforderungen für den Zugriff zu dem RAM,
um etwas in diesen Speicher einzuschreiben, und weist die
Anforderungen zurück, die verboten sind. Diese Art des Speicherschutzes
ist jedoch bei Zusammenbrüchen des Systems nicht
wirksam, da die gesamte Technik auf dem richtigen Betrieb
der Software-Auswahlroutine beruht, die wie alle anderen
Routinen nach einem Zusammenbruch jedoch nicht mehr sicher
und zuverlässig arbeitet. Weitere Schwierigkeiten treten bei
einigen Mikroprozessoren auf, die nach dem Auftreten eines
ungültigen Betriebscodes in dem Instruktionsregister (ein
solcher Zustand kann auf einen Zusammenbruch zurückzuführen
sein) vorgegebene Daten-Bytes in jede Speicherstelle einschreiben
(bei dem Mikroprozessor 6800 von Motorola handelt es sich
beispielsweise um ein hexadezimales FF). Jede Speichersicherung,
die nur auf Software beruht, kann also nicht effektiv arbeiten.
Eine dritte Ausführungsform eines herkömmlichen Speicherschutzes
wird in einigen Terminals mit Kathodenstrahlröhren, also Bildschirmen,
sowie Computern eingesetzt, wobei in Abhängigkeit
davon, ob ein bestimmtes Byte (oder Block) gechützt ist oder
nicht, ein extra Bit (oder mehrere Bits) gesetzt oder zurückgesetzt
werden. Sobald ein Schreibzyklus versucht wird, erhält
man automatisch Zugriff zu dem entsprechenden Bit für
das adressierte Byte, so daß dieses Bit gelesen werden kann;
wenn das Bit für "Schreibschutz" gesetzt wird, blockiert es
den Schreibimpuls und verursacht in einigen Systemen eine
Unterbrechung, um den unzulässigen Schreibversuch zu kennzeichnen,
also ein "Flag" zu setzen. Dieses System hat verschiedene
Nachteile. Zunächst ist kein Bereich des Speichers
immer bedingungslos geschützt; da der Schutzstatus unter
Software-Steuerung erfolgt, ist er weniger zuverlässig.
Zweitens gibt es keine automatische Erneuerung des Schutzes,
nachdem während seines Schreibzyklus der Zugriff zu einer
geschützten Adresse erfolgt ist. Wenn die geschützte Adresse
nach dem erforderlichen Schreibzyklus "unversperrt", also
ungeschützt, bleibt, können anschließend aus Versehen weitere
Daten in den Speicherbereich eingeschrieben und damit
die gespeicherten Daten gelöscht werden. Drittens ist zusätzliche
Hardware erforderlich, da im allgemeinen ein zusätzliches
Bit für jedes zu schützende Byte benötigt wird; es
muß auch zusätzliche Software eingesetzt werden, um das
Setzen und Rücksetzen aller Schutzbits zu steuern. Und
viertens sind solche Systeme nicht "zusammenbruchsicher",
weil sie keine speziellen "Schlüssel" benötigen, um die
Aufhebung der Sicherung zu steuern.
Ein gattungsgemäßes Speicherschutzsystem ist aus der DE-
OS 19 52 158 bekannt. Aus dieser Druckschrift ist ein
Speicherschutzverfahren bekannt, welches es erlaubt, einen
kritische Daten enthaltenden Bereich derart zu sperren, daß bei
einem versuchten Zugriff der Zentralen Verarbeitungseinheit oder
CPU auf diese Daten ein Fehlersignal erzeugt wird und der CPU
der Zugriff verwehrt wird. Gemäß der aus der DE-OS 19 52 158
bekannten Schaltung ist es vorgesehen, die Grenzen des zu
schützenden Speicherbereiches in Grenzwertregistern
abzuspeichern und bei jedem Speicherzugriff mittels Komparatoren
zu überprüfen, ob die von der CPU erzeugte Adresse in einen zu
schützenden Speicherbereich fällt.
Das diesem Speicherschutzverfahren zugrundeliegende Speicherschutzsyystem
weist jedoch den Nachteil auf, daß beim Start des
Gesamtsystems zunächst die Grenzregister mit den Grenzwerten
geladen werden müssen und daß während dieser Zeit kein
Speicherschutz besteht. Vielmehr erfolgt die Erzeugung des
Schutzbereiches unter Software-Steuerung und ist somit weniger
zuverlässig.
Wenn nämlich die in den Grenzregistern befindlichen Daten
fehlerhaft sind, sei es, daß sie beim Urstart fehlerhaft geladen
wurden, sei es, daß sie während des Betriebes versehentlich
geändert wurden, dann besteht der gewünschte Speicherschutz
nicht mehr, ohne daß die CPU hiervon etwas "merkt".
Ein ähnliches Speicherschutzsystem ist aus der US-PS 37 42 458
bekannt. Dieses Speicherschutzsystem weist die gleichen
Nachteile wie das aus der DE-OS 19 52 158 bekannte Speicherschutzsystem
auf.
Demgegenüber ist es Aufgabe der vorliegenden Erfindung, ein
Speicherschutzsystem gemäß dem Oberbegriff des Anspruchs 1 zu
schaffen, bei welchem die Schutzmaßnahmen zuverlässig und
dauerhaft bestehen, ohne daß ein Eingriff einer Bedienungsperson
erforderlich wäre und ohne daß beim Kaltstart Initialisierungsroutinen
durchlaufen werden müßten.
Diese Aufgabe wird durch die kennzeichnenden Merkmale des Anspruchs
1 gelöst. Vorteilhafte Weiterbildungen ergeben sich aus den
Unteransprüchen.
Gemäß den Prinzipien der vorliegenden Erfindung ist Hardware
vorgesehen, um das Auftreten vorbestimmter Speicherzugriffzyklen
zu registrieren. Im allgemeinen ist die Hardware
so ausgelegt, daß sie einen oder mehrere Schreibzyklen feststellt,
die in Beziehung zu vorgegebenen Adressen und Daten
stehen. Üblicherweise wird der Zugang der Schreibimpulse
zu dem Speicherbereich mit den kritischen Daten gesperrt;
nach dem Auftreten von vorgegebenen Schreibzyklen wird jedoch
ein Schreibzyklus zu dem Speicherbereich mit den kritischen
Daten zugelassen. Die Schreibzyklen, die auf diese
Weise den Speicherbereich mit den kritischen Daten "aufsperren", können "fiktiv" in dem Sinne sein, daß sie gar
nichts in irgendeine Speicheradresse einschreiben.
Der einzige Grund für diese vorgegebenen Speicherzugriffe
liegt darin, folgendes zu gewährleisten: Wenn die Zentraleinheit
dabei ist, einen Schreibzyklus in dem geschützten
Speicherbereich zu steuern, dann "weiß sie, was sie macht".
Nach der Feststellung der vorgegebenen Speicherzugriffzyklen
ist nur eine vorgegebene Zahl von Schreibzyklen
(bei der dargestellten Ausführungsform der Erfindung ein
Schreibzyklus) zugelassen für den Zugriff zu dem geschützten
Speicherbereich (Schreibzyklen in dem ungeschützten Speicherbereich
und Lesezyklen in beiden Speicherbereichen können
immer ohne vorherige Feststellung, daß die Speicherzugriffzyklen
entsperrt worden sind, durchgeführt werden).
Es muß jedoch darauf hingewiesen werden, daß die Entsperrung
noch programmgesteuert ist, es besteht also noch die Gefahr,
daß ein Zusammenbruch, der sich auf die Durchführung der
Entsperrungsroutine auswirkt, auch den geschützten Speicherbereich
entsperrt. Die Hardware, die die vorgegebenen Speicherzugriffzyklen
erkennt, "weiß nicht", ob die Softwareroutine,
die sie steuert, zufällig oder bewußt eingegeben
wurde. Trotzdem gibt es aus zwei Gründen einen Schutz für
die kritischen Daten: Sobald die Schutzhardware feststellt,
daß das Einschreiben in den geschützten Speicherbereich zulässig
ist, ermöglicht sie nur eine begrenzte Zahl solcher
Schreibvorgänge. Bei einer bevorzugten Ausführungsform der
Erfindung ist nur ein einziger Schreibzyklus erlaubt, so daß
maximal ein Element der kritischen Daten nach jedem Zusammenbruch
gelöscht werden kann.
Wichtiger noch ist die zweite Tatsache, daß nur der Schreibzyklus,
der der Entsperrung der Hardware unmittelbar folgt,
Zugriff zu dem geschützten Speicherbereich haben kann. Der
Adressenbereich des geschützten Bereiches ist üblicherweise
viel kleiner als der des ungeschützten Bereiches. Wenn der
folgende Schreibzyklus zufällig Zugriff zu einer Adresse in
dem viel größeren, ungeschützten Speicherbereich hat, dann
gehen keine kritischen Daten verloren; sobald dieser einzige
Schreibzyklus erfolgt ist, werden folgende Schreibzyklen in
den geschützten Speicherbereich gesperrt. Ein Zusammenbruch
ermöglicht also im Extremfall einen einzigen kritischen Schreibvorgang;
wenn die angegebene Adresse jedoch zufällig nicht in
dem geschützten Speicherbereich liegt (wie es im allgemeinen
der Fall sein dürfte), dann gehen keine kritischen Daten verloren.
Die Erfindung schafft also eine Hardware-Schaltung zum Schutz
gegen das zufällige Einschreiben von Daten in einen Speicherbereich,
der kritische Daten enthält. Um den Zugriff zu dem
Speicherbereich mit den kritischen Daten während eines Schreibzyklus
zu ermöglichen, müssen zunächst vorgegebene Speicherzugriffzyklen
gesteuert werden, die beispielsweise das Einschreiben
von vorgegebenen Daten in eine vorgegebene Adresse
enthalten. Nach der Feststellung eines solchen "fiktiven"
Schreibzyklus läßt die Hardware zu, daß der nächste Schreibzyklus
Zugriff zu dem Speicherbereich mit den kritischen
Daten hat.
Der Grundgedanke der vorliegenden Erfindung liegt also darin,
daß Hardware vorgesehen ist, um den Speicherbereich zu "entsperren",
der kritische Daten enthält. Die Hardware ist so
ausgelegt, daß sie bestimmte, vorgegebene Speicherzugriffzyklen
feststellt. Die vorgegebenen Zugriffzyklen könnten
beispielsweise aus dem Einschreiben mehrerer vorgegebener
Datenwerte in mehrere vorgegebene Adressen bestehen. Das
tatsächliche Einschreiben der vorgegebenen Daten in die
vorgegebenen Adressen ist nicht wesentlich; im allgemeinen
würden die wenigen Adressen, die in dieses Verfahren verwickelt
sind, nie durch irgendeinen anderen Teil der Software
gelesen werden. Wesentlich ist nur, daß die vorgegebenen Zugriffzyklen
tatsächlich erfolgen, so daß sie durch die neue
Hardware festgestellt werden können. Wenn die vorgegebenen
Schreibzyklen durchgeführt werden, "weiß" die Hardware, daß
der nächste Schreibzyklus sich auf eine Adresse in dem Speicherbereich
mit den kritischen Daten bezieht. Die Hardware
läßt dann zu, daß der nächste Schreibzyklus in dem Speicherbereich
mit den kritischen Daten durchgeführt werden kann.
Die Erfindung wird im folgenden anhand eines Ausführungsbeispiels
unter Bezugnahme auf die schematische
Zeichnung näher erläutert, deren einzige Figur eine Ausführungsform
der Erfindung darstellt.
Bei der bei dieser Ausführungsform verwendeten zentralen Verarbeitungseinheit (CPU)
10 handelt es sich um den Mikroprozessor 6800, der
von Motorola vertrieben wird. Neben vielen anderen Stiftanschlüssen
(nicht dargestellt) ist dieser Mikroprozessor mit
einem 16 Bit-Adreß-Bus 32, einem 8 Bit-Daten-Bus 34, einem Φ2-Taktimpuls,
der während jedes Maschinenzyklus (einschließlich der
Speicherzugriffzyklen) auf einen hohen Pegel geht, einer R/-
Steuerleitung, die während eines Lesezyklus auf einem hohen
Wert und während eines Schreibzyklus auf einem niedrigen Wert
ist, mit einem VMA-Ausgang, der auf einen hohen Pegel geht,
wenn auf dem Adressenbus eine gültige Adresse vorhanden ist,
und mit einer Rücksetzleitung,
die zeitweilig auf einen niedrigen Pegel geht, wenn
dem System zum ersten Mal Strom zugeführt
wird.
In der Zeichnung sind zwei Speichertypen dargestellt (Lesespeicher,
die im folgenden als "ROM" bezeichnet werden sollen,
und Schreib/Lese-Speicher, die im folgenden als "RAM" bezeichnet
werden sollen, wobei der zuletzt erwähnte Speicher
geschützte und ungeschützte Bereiche hat). Der RAM 14 ist
der geschützte Speicherbereich, der bereits oben erläutert
wurde. Wenn sein Steuereingang (EN) auf einen hohen Pegel geht,
kann dieser Speicher arbeiten. Wenn gleichzeitig der R/-Eingang
auf einem hohen Pegel ist, erfolgt ein Lesezyklus; wenn er sich
auf einem niedrigen Pegel befindet, erfolgt ein Schreibzyklus.
Die im folgenden zu beschreibende, als Hardware ausgebildete
Schutzschaltung verhindert, daß der R/-Eingang auf einen
niedrigen Pegel gehen kann, und zwar mit Ausnahme eines einzigen
Schreibzyklus, der einer Feststellung von vorgegebenen
"Speicher"-Zugriffzyklen folgt. Der Adressenbus 32 und der
Datenbus 34 verlaufen zwischen der CPU 10 und
dem geschützten RAM 14. Wenn die Adresse auf dem Datenbus eine
Speicherstelle in dem geschützten RAM identifiziert, dann werden
die Daten auf dem Datenbus während des zugelassenen Zugriffs
in den RAM eingeschrieben. Der R/-Eingang ist normalerweise
auf einem hohen Pegel, so daß Lesezyklen in dem geschützten
RAM immer zugelassen sind; sie finden immer dann
statt, wenn das RAM 14 angesteuert und eine Speicherstelle in
dem RAM 14 adressiert wird.
Der ungeschützte RAM 16 arbeitet auf ähnliche Weise, jedoch
mit dem Unterschied, daß die R/-Steuerleitung von der CPU
10 direkt zu diesem RAM 16 verlängert ist. Die Schreibzyklen
für den RAM 16 sind also keinen Beschränkungen unterworfen.
Der Lesespeicher ROM 30 wird im allgemeinen für die Programmspeicherung
verwendet, so daß keine Daten eingeschrieben
werden können. Dieser ROM hat also einen Ansteuereingang,
jedoch keinen R/-Steuereingang.
Der Adressenbus 32 ist auch zu dem Adressendecodierer 12 geführt;
der Adressendecodierer wird immer dann in Betrieb gesetzt,
wenn die VMA-Leitung 54 auf einen hohen Pegel geht. Einer
der drei oberen Ausgänge des Adressendecodierers geht auf
einen hohen Pegel, wenn die Adresse auf dem Bus 32 in einem
der drei jeweiligen Adressenbereiche der drei Speicher liegt.
Ein Adressendecodierer wird dazu verwendet, drei vorgegebene
Adressen zu decodieren, zu denen der Zugriff durch die "entsperrende"
Software-Routine möglich ist, wie im folgenden erläutert
werden soll. Obwohl bei der beschriebenen Ausführungsform
der Erfindung der Adressendecodierer auch dazu verwendet
wird, die Ansteuersignale für die Speicher zu entwickeln, ist
eine solche äußere Decodierung nicht notwendig, wenn der
gesamte Speicheradressenbereich klein ist und die Speicher
selbst diese Adressendecodierung durch Ausnutzung ihrer
Chipauswahleingänge durchführen können. Soweit es die vorliegende
Erfindung betrifft, stellt die spezielle Art der
Adressendecodierung für die Speicher kein wesentliches Merkmal
dar. Die vorliegende Erfindung befaßt sich nicht damit,
wie der Zugriff zu den drei Speichern zugeführt wird,
sondern bezieht sich nur darauf, wann Schreibzyklen in dem
geschützten RAM 14 zugelassen werden. Hierfür ist wiederum das
Verständnis der Steuerung des Ausgangs des Verknüpfungsgliedes
36 wesentlich.
Die vorgegebenen Speicherzugriffzyklen, die die Hardware-
Entriegelung steuern, können in vielen verschiedenen Ausführungsformen
eingesetzt werden. Dabei sollte mindestens
eine vorgegebene Adresse auf der Adressenleitung erscheinen,
um den geschützten RAM zu entsperren. Dieser vorgegebene
Speicherzugriffzyklus kann ein Lesezyklus sein, wobei die
entsprerrende Hardware nichts anderes macht, als zu überprüfen,
daß die entsperrende Adresse auf dem Bus 32 erscheint.
Es ist jedoch besser, daß dieser
eine vorgegebene Speicherzugriffzyklus ein Schreibzyklus ist,
der nicht nur eine vorgegebene Adresse, sondern auch vorgegebene
Daten umfaßt. In diesem Fall kann die entsperrende
Hardware eine zusätzliche Überprüfung durchführen. Dadurch
wird eine größere Sicherheit gewährleistet, daß die entsperrende
Software-Routine nicht nur dann, wenn eine spezielle
entsperrende Adresse auf dem Adressenbus erscheint, sondern
auch, wenn spezielle, entsperrende Daten auf dem Datenbus
erscheinen, eingegeben wird.
In diesem Zusammenhang wird auf folgendes hingewiesen: Obwohl
die zur Aufhebung der Sperre dienende Schaltungsanordnung die
richtige Folge von Adressen auf dem Adressenbus feststellt,
um den geschützen RAM "aufzusperren", ist der Zugriff zu
den Speicherstellen tatsächlich möglich, da die Adressenbusse
mit den Speichern verbunden sind und die Adressen, die
für die aufsperrende Hardware benötigt werden, tatsächlich
innerhalb der Adressenbereiche der Speicher liegen können.
Dies hat jedoch keine Bedeutung. Wenn die aufsperrenden Adressencodes
durch die Zentraleinheit während der Lesezyklen ausgegeben
werden, werden die von den Speichern ausgelesenen Daten
einfach ignoriert. Als Alternative hierzu ist auch folgende
Ausführungsform möglich: Wenn Schreibzyklen in der entsperrenden
Software-Routine verwendet werden, können Daten
während des Aufsperrens in den ungeschützten RAM eingeschrieben
werden. Auch dies hat keine Bedeutung, weil in einem
solchen Fall die jeweiligen Speicherstellen für keinen anderen
Zweck verwendet wüden. Es ist sogar möglich, daß einige
der Adressen, die in der aufsperrenden Routine verwendet
werden, die Adressen sind, die Zugriff zu dem geschützten
RAM haben (obwohl dies bei der dargestellten Ausführungsform
der Erfindung nicht der Fall ist). Da während des
Aufsperrens selbst nichts in den geschützten RAM geschrieben
werden kann (ein einziger Schreibvorgang in dem geschützten
RAM ist nur am Ende des Aufsperrens zugelassen), hat das Auftreten
einer Adresse, die in dem geschützten RAM liegt, auf
dem Adressenbus sogar während eines Schreibzyklus keine
Wirkung, da der R/-Eingang des geschützten RAM auf einem
hohen Pegel bleibt.
Bei der dargestellten Ausführungsform der Erfindung ist das
Aufsperren des geschützten RAM 14 mit drei Schreibzyklen verbunden,
und zwar an drei vorgegebenen hexadezimalen Adressen -
$ 8780, $ 8790 und $ 87A0 (das Symbol $ kennzeichnet die folgende Adresse als eine hexadezimale
Adresse). Obwohl die Schreibvorgänge für die
letzten beiden Adressen keine speziellen Daten erfordern,
sperrt die Hardware nur dann auf, wenn von der Zentraleinheit
während eines Schreibvorgangs zu der Adresse $ 8780
ein Datenbyte ausgegeben wird, das ein Bit mit dem Wert
1 an der Bitstelle 2 (D 1) des Datenbusses enthält. Während
dieses Schreibzyklus haben die Datenwerte auf den Datenleitungen
D 0 und D 2-D 7 keine Bedeutung. (Es muß jedoch darauf
hingewiesen werden, daß auf folgende Weise eine zusätzliche
Verifikation möglich ist: Während des Schreibvorgangs zu
der Adresse $ 8780 und sogar zu den beiden anderen vorgegebenen
Adressen muß ein bestimmtes vorgegebenes Byte auf
dem Datenbus erscheinen.)
Wenn der Rücksetzeingang bei "Netz ein" der CPU
10 durch eine Rücksetzschaltung 50 (jede herkömmliche
Schaltung kann verwendet werden) auf einen niedrigen
Pegel gepulst wird, wird der Impuls auch an den vorher gesetzten
Eingang eines JK-Flip-Flops 18 angelegt. Wenn also
das System erstmals eingeschaltet wird, setzt das niedrige
Eingangssignal an dem vorher gesetzten Eingang den Flip-
Flop in den Zustand 1, wobei der Ausgang auf einen niedrigen
Pegel geht. Dieser Ausgang ist mit dem Löscheingang eines
JK-Flip-Flops 24 verbunden, dessen Ausgang Q dadurch auf
einem niedrigen Pegel gehalten wird. Da dieser Ausgang an
einen Eingang des Verknüpfungsgliedes 36 angeschlossen ist,
bleibt der Ausgang des Verknüpfungsgliedes auf einem hohen
Pegel, um das Einschreiben in den geschützten RAM 14 zu sperren.
Wenn die CPU die aufsperrende Software-Routine
eingibt, steuert sie zunächst einen Schreibzyklus an der
Adresse $ 8780 mit einem Datenbyte, das an der Bitstelle D 1
ein Bit mit dem Wert 1 enthält. Die Datenleitung D 1 ist mit
dem Eingang D des D-Typ-Flip-Flops 22 verbunden. Wenn der
Adressendecodierer 12 die Adresse $ 8780 decodiert, legt
er ein positives Potential an einen Eingang eines Verknüpfungsgliedes
52 an. Der Φ2-Puls wird dem anderen Eingang zugeführt,
so daß der Ausgang des Verknüpfungsgliedes auf einen niedrigen
Pegel geht. Wenn der Φ2-Impuls endet (zu diesem Zeitpunkt sind
die Datenleitungen stabil), geht das Ausgangssignal des Verknüpfungsgliedes
auf einen hohen Pegel, und die positive
Stufe taktet den Flip-Flop 22. Dadurch wird der Flip-Flop
gesetzt, so daß sein Ausgang Q auf einen hohen Pegel geht.
Dieser steuert einen Eingang eines Verknüpfungsgliedes 20,
so daß dieser ebenfalls auf einen hohen Pegel geht. Ein weiterer
Eingang des Verknüpfungsgliedes 20 ist an den Φ2-Taktausgang
der Zentraleinheit angeschlossen, der während jedes
Maschinenzyklus auf einen hohen und einen niedrigen Pegel
geht. Ein dritter Eingang des Verknüpfungsgliedes, und zwar
der Eingang, der mit dem Ausgang eines Inverters 42 verbunden
ist, geht während aller Schreibzyklen auf einen hohen Pegel,
wenn der R/-Ausgang der CPU auf einem niedrigen
Pegel und damit der Ausgang des Inverters auf einem hohen
Pegel ist. Der Ausgang des Verknüpfungsgliedes 20 bleibt jedoch
auf einem niedrigen Pegel, weil sein vierter Eingang an
einen Ausgang des Adressendecodierers angeschlossen ist, der
auf einem niedrigen Pegel bleibt. Die Nettowirkung des ersten
Schreibzyklus der Aufsperr-Routine liegt also einfach darin,
daß der Ausgang Q des Flip-Flops 22 auf einen hohen Pegel
geht; er bleibt auf diesem hohen Pegel, um einen Eingang des
Verknüpfungsgliedes 20 sogar nach der Beendigung des Schreibzyklus
anzusteuern. Der Ausgang des Flip-Flops muß auf einem
hohen Pegel bleiben, bis der dritte vorgegebene Schreibzyklus
der Aufsperr-Routine erfolgt, um den Zugriff zu dem geschützten
RAM 14 zu ermöglichen; er bleibt auf dem hohen Pegel unter der
Voraussetzung, daß in der Zwischenzeit kein weiterer Schreibvorgang
zu der Adresse $ 8780 mit einem Datenbyte erfolgt, dessen
D 1-Bit einen Wert von Null hat.
Die Signale Φ2 und die invertierten R/-Signale werden beide
auf die beiden Eingänge des Verknüpfungsgliedes 38 gegeben.
Dadurch geht während jedes Schreibzyklus der Ausgang des
Verknüpfungsgliedes 38 auf einen hohen Pegel; an der hinteren
Flanke des Impulses an dem Ausgangssignal des Verknüpfungsgliedes
wird der Flip-Flop 18 getaktet. Ein Eingang des Verknüpfungsgliedes
40 ist mit einem Ausgang des Adressendecodierers
verbunden, der nur während eines Speicherzyklus,
der den Zugriff zu der Adresse $ 8790 betrifft, auf einen
hohen Pegel geht. Damit ist also der Ausgang des Verknüpfungsgliedes
40 normalerweise auf einem niedrigen Pegel. Wenn die
Eingänge J und K desFlip-Flops 18 beide auf einem niedrigen
Pegel sind, führt das Takten des Flip-Flops 18 zu keiner Zustandsänderung;
der Ausgang bleibt auf einem niedrigen Pegel,
so daß der Ausgang Q des Flip-Flops 24 auf einem niedrigen
Pegel bleibt. Wenn jedoch die Adresse $ 8790 dem Adressenbus
während des zweiten Schreibzyklus der Aufsperr-Routine zugeführt
wird, steuert der Adresendecodierer einen Eingang des
Verknüpfungsgliedes 40 an. Da diese Adresse während eines
Schreibzyklus ausgegeben wird, steuert der Inverter 42 den
anderen Eingang an, und der Ausgang des Verknüpfungsgliedes
40 geht auf einen hohen Pegel. An dem Ende des Schreibzyklus
bewirkt die Zentraleinheit, daß der Φ2-Impuls auf einen niedrigen
Pegel geht, kurz bevor der R/-Ausgang zu seinem normalerweise
hohen Zustand zurückkehrt. Damit fällt also das Ausgangssignal
des Verknüpfungsgliedes 38 ab und taktet den Flip-
Flop 18, obwohl der Ausgang des Verknüpfungsgliedes 40 noch
auf einem hohen Pegel ist. Wenn sich ein niedriges Potential
an dem Eingang J und ein hohes Potential an dem Eingang K befindet,
wird der Flip-Flop in den Zustand 0 gebracht, und sein
Ausgang geht auf einen hohen Pegel. Dies gibt den Löscheingang
des Flip-Flops 24 frei, der nun seinen Zustand ändern
kann. Die beiden ersten Schreibzyklen steuern also die Ansteuerung
eines Eingangs des Verknüpfungsgliedes 20 und die
Freigabe des Flip-Flops 24, so daß er gesetzt werden kann.
Es spielt keine Rolle, welcher der beiden gerade beschriebenen
Schreibzyklen zuerst auftritt, solange sie beide
vor dem dritten vorgegebenen Speicherzugriffzyklus der Aufsperr-
Routine erfolgen.
Der dritte vorgegebene Speicherzugriffzyklus ist ein Schreibvorgang
zu der Adresse $ 87A0; wie bei dem Schreibvorgang zu
der Adresse $ 8790 sind die Daten, die auf dem Datenbus ercheinen,
nicht wesentlich. Während dieses dritten Schreibzyklus
steuert der Adressendecodierer 12 den obersten Eingang
des Verknüpfungsgliedes 20 an. Der zweite Eingang wird noch
durch den Eingang Q des Flip-Flops 22 angesteuert; die beiden
anderen Eingänge des Verknüpfungsgliedes werden durch den
Taktimpuls Φ2 und den R/-Schreibimpuls angesteuert. Das Ausgangssignal
des Verknüpfungsgliedes 20 geht also auf einen
hohen Wert, und an der hinteren Flanke des Impulses wird der
Flip-Flop 24 getaktet. Nun, da der Löscheingang des Flip-
Flops nicht auf einem niedrigen Pegel gehalten wird, führen
das hohe Potential an dem Eingang J und das niedrige Potential
an dem Eingang K zum Setzen des Flip-Flops, so daß der Ausgang
Q auf einen hohen Pegel geht.
Der Ausgang Q ist mit einem Eingang des Verknüpfungsgliedes
36 verbunden, wie oben beschrieben wurde. Das Verknüpfungsglied
wird also angesteuert, so daß sein Ausgang beim nächsten
Schreibzyklus auf einen niedrigen Pegel geht, wenn der Ausgang
des Inverters 42 auf einen hohen Pegel geht. Wenn also
dieser nächste Schreibzyklus den Zugriff zu einer Adresse
in dem geschützten RAM 14 steuert, wird das Byte auf dem Datenbus
in die adressierte Speicherstelle geschrieben. Wenn die
adressierte Speicherstelle sich nicht in dem geschützten RAM 14
befindet, wird der RAM 14 nicht angesteuert, so daß nichts eingeschrieben
wird, obwohl sein R/-Eingang niedrig gepulst wird.
(Es wird darauf hingewiesen, daß der dritte Schreibzyklus der
Aufsperr-Routine endet und der Ausgang des Inverters 42 auf
einen niedrigen Pegel geht, bevor der Flip-Flop 24 in den
Zustand 1 gesetzt wird. Dadurch wird das Verknüpfungsglied
36 nur dann angesteuert, wenn der Zyklus beendet ist, so
daß nur während des nächsten Schreibzyklus etwas in den
geschützten RAM eingeschrieben werden kann.)
Nach dieser Aufsperrung des geschützten Bereiches wird nur
ein einziger Schreibzyklus zugelassen. Dabei ist also erforderlich,
daß der Ausgang Q des Flip-Flops 24 nach dem
einzigen zugelassenen Schreibzyklus auf einen niedrigen
Pegel gebracht wird. Dies wird automatisch gesteuert, indem
einfach der Ausgang Q des Flip-Flops 24 mit dem Eingang J
des Flip-Flops 18 verbunden wird. Das Verknüpfungsglied 40
wird durch den Adressendecodierer nicht angesteuert, so daß
sein Ausgang, der Eingang K des Flip-Flops 18, während des
zugelassenen Scheibzyklus auf einem niedrigen Pegel bleibt
(aus diesem Grund sollte sich die Adresse $ 8790 nicht im
Adressenbereich des geschützten RAM befinden). Weil der Eingang
J auf einem hohen Pegel ist, geht der Ausgang des Verknüpfungsgliedes
38 an der hinteren Flanke des Impulses Φ2 auf einen
niedrigen Pegel, so daß der Flip-Flop getaktet wird. Der Ausgang
geht nun auf einen niedrigen Pegel und löscht den Flip-
Flop 24 wieder. Damit ist also die Hardware zu ihrem ursprünglichen
gesperrten Zustand zurückgestellt, nachdem nur ein
einziger Schreibzyklus zugelassen worden ist. Die beiden
Flip-Flops 18 und 24 werden während des Schreibzyklus, der
dem Aufsperren unmittelbar folgt, in ihren Ausgangszustand
zurückgestellt, und zwar unabhängig davon, ob es der geschützte
RAM war oder nicht, zu dem tatsächlich der Zugriff erfolgt
ist. Damit werden sogar bei einem Zusammenbruch des Systems
und bei der Druchführung der Aufsperr-Routine, die einen
einzigen Schreibvorgang zu dem geschützten RAM ermöglicht,
die Daten nur dann gelöscht, wenn während des zugelassenen
Schreibzyklus gerade dieser RAM adressiert wird.
Obwohl die Flip-Flops 18 und 24 auf diese Weise zurückgesetzt
werden, ist der Flip-Flop 22 noch gesetzt. Er wird am Ende der
Aufsperr-Routine zurückgesetzt, indem ein Schreibvorgang
zu der Adresse $ 8780 mit einem Datenbyte durchgeführt wird,
dessen D 1-Bit den Wert 0 hat. Genauso, wie der Flip-Flop
ursprünglich gesetzt wurde, wird er jetzt zurückgesetzt, so
daß sein Ausgang Q auf einen niedrigen Pegel geht, um die
Hardware vollständig auf ihren Anfangszustand zurückzubringen.
(Wird dieser Schritt nicht durchgeführt, dann treten aufeinanderfolgende
Aufsperrungen des geschützten RAM auf, wenn Einschreibvorgänge
zu den Adressen $ 8790 und $ 87A0 gemacht werden,
ohne daß ein Aufschreibvorgang zu der Adresse $ 8780 erforderlich
ist.)
Anstelle der getrennten Verwendung von Flip-Flops und
Verknüpfungsgliedern ist es bei einigen Systemen möglcih, die
benötigte Hardware zu verringern. Dies kann beispielsweise
bei Systemen geschehen, die einen universellen Synchron/
Asynchron-Empfänger/Sender (USART) als Multiplexer
aufweisen. Ein derartiger USART ist beispielsweise der Typ
8251A der Firma Intel, wobei auf die bei der Firma Intel
erhältliche Funktionsbeschreibung dieses Bausteines
"Microsystem Components Handbook, volume 2" vollinhaltlich
Bezug genommen wird. Es sei hier eine Schaltung angenommen,
bei der der USART 8251A für andere Zwecke verwendet wird und
sein Ausgang DTR noch zur Verfügung steht. In einem solchen
Fall wäre das Flip-Flop 22 nicht erforderlich. Der erste
vorgegebene Speicherzugriff könnte durch Setzen des DTR-Bits
des USART (mit der Adresse $ 8780) in den Zustand 1
durchgeführt werden, wobei der Ausgang DTR mit dem
Verknüpfungsglied 20 verbunden ist. Am Ende der aufsperrenden
Software-Routine würde nochmals ein Zugriff zu dem USART
erfolgen; diesmal würde sein Ausgang DTR abgeschaltet werden.
In bezug auf dieses System darf auf folgendes hingewiesen
werden: Nur die Adressen $ 8790 und $ 87A0 wären "fiktiv",
während die Adresse $ 8780 den Zugriff zu dem USART nicht nur
in Verbindung mit dem Aufsperren des geschützten RAM, sondern
auch zur Steuerung des normalen Betriebs des Multiplexers
hat.
Bei der dargestellten Ausführungsform der vorliegenden
Erfindung steuert die folgende Subroutine (WRCMOS - schreibt
zu CMOS geschütztem RAM) das Aufsperrverfahren:
Diese Routine in Assembler-Sprache ist für die Benutzung
in dem Mikroprozessor 6800 ausgelegt. Der Anfangskommentar
erklärt, daß während des normalen Betriebes, bevor die Subroutine
auch nur aufgerufen wird, die Adresse in dem geschützten
RAM, zu der der Zugriff beabsichtigt ist, in
das X-Register geladen wird, während die zu schreibenden
Daten in den Akkumulator A geladen werden.
Die Subroutine lädt zunächst den Akkumulator B (im Sofortbetrieb)
mit dem Byte $ 02; dabei handelt es sich um ein Datenbyte,
das in der Bit-Stelle D 1 ein Bit mit dem Wert 1 hat,
wie es benötigt wird, um den Flip-Flop 22 zu setzen. Die
nächste Instruktion steuert die Speicherung des Bytes in
dem Akkumulator B an der Adresse $ 8780, d. h., der Flip-
Flop 22 wird gesetzt, wie es oben beschrieben wurde.
Die beiden nächsten Schreibvorgänge steuern die Speicherung
der Daten in dem Akkumulator B an den Adressen $ 8790 und
$ 87A0. Wie oben beschrieben wurde, sind während dieser
Schreibzyklen bei der dargestellten Ausführungsform der
vorliegenden Erfindung die tatsächlich auf dem Datenbus
ausgegebenen Daten nicht wesentlich, und das gleiche Datenbyte
wird während aller drei "Schreibschlüssel"-Vorgänge
ausgegeben.
Nachdem die ersten vier Instruktionen durchgeführt worden
sind, wird der geschützte RAM für einen einzigen Schreibzyklus
aufgesperrt (bei der dargestellten Ausführungsform
der vorliegenden Erfindung werden zwischenzeitlich auftretende
Lesevorgänge nicht berücksichtigt, obwohl dies
nicht immer der Fall sein muß. Ein System könnte jedoch
so ausgelegt werden, daß sogar ein Schreibzyklus, der dem
Abholen der nächsten Instruktion folgt, dazu führt, daß
der geschützte RAM wieder gesperrt wird). Die fünfte Instruktion
führt dazu, daß die Daten, die vorher in dem Akkumulator
A geladen worden sind, auf der Adresse gespeichert werden,
die sich in dem Register X befindet.
Nach dem Einschreiben muß der Flip-Flop 22 zurückgesetzt werden.
Dies wird auf folgende Weise gesteuert: Zunächst wird das
Byte $ 00 in dem Akkumulator B geladen; dann werden die
Inhalte des Akkumulators B auf der Adresse $ 8780 gespeichert.
Anschließend geht das Programm von der Subroutine zu den Programmschritten
rück, die gerade abgearbeitet wurden.
Die hier beschriebene Technik läßt sich in gleicher
Weise auch als Zugriffschutz für andere Elemente, also
nicht nur für die Speicher, anwenden, beispielsweise für
Zwischenspeicher (latches), Eingabe/Ausgabe-Geräte sowie
allgemein für periphere Geräte. In einem solchen Fall würde
der Zugriff zu dem zu schützenden Element nur dann
zugelassen, wenn ein Verknüpfungsglied, das dem
Verknüpfungsglied 36 vergleichbar ist, betätigt wird.
Obwohl die Aufsperr-Routine bei der dargestellten Ausführungsform
der vorliegenden Erfindung mit vorgegebenen Speicherzugriffzyklen
verbunden ist, beruht dies nur darauf,
daß alle Zugriffe, sogar zu Eingabe/Ausgabe-Geräten, "Speicherzugriffe"
bei Mikroprozessoren sind, die speicherdefinierte
Eingabe/Ausgabe-Einheiten haben, wie beispielsweise der Mikroprozessor
6800. Andere Mikroprozessoren, wie beispielsweise
die Typen 8080 von Intel und Z80 von Zilog unterscheiden zwischen
Speicheradressen und Eingabe/Ausgabe-Adressen, wobei
der Eingabe/Ausgabe-Adressenbereich viel kleiner als der
Speicheradressenbereich ist; dabei ist eine Steuerleitung vorgesehen,
um zwischen den beiden Typen von Zugriffzyklen zu
unterscheiden. Wenn ein solcher Mikroprozessor verwendet wird,
kann irgendein vorgegebener Zugriffzyklus, sogar Zugriffzyklen
für die Eingabe/Ausgabe-Geräte, als Aufsperr-"Schlüssel"
für die zu schützenden Elemente benutzt werden.
Claims (7)
1. Speicherschutzsystem für einen Lese/Schreib-Speicher mit
einem kritische, zu schützende Daten enthaltenden Speicherbereich,
wobei der Lese/Schreib-Speicher Teil eines Datenverarbeitungssystems
ist, das Adreß- und Datenbusse und
eine Steuerung für den Zugriff auf den Lese/Schreib-Speicher
enthält, mit einer Einrichtung, die auf das Auftreten
wenigstens eines Zugriffs-Zyklus auf den kritische Daten
enthaltenden Speicherbereich anspricht und dieses Auftreten
registriert, dadurch gekennzeichnet, daß der kritische Daten
enthaltende Speicherbereich im Normalzustand mit einer
Zugriffssperre belegt ist und daß eine Entsperr-Einrichtung
(36) vorgesehen ist, die einen Zugriff auf den kritische
Daten enthaltenden Speicherbereich nur nach Registrierung
des Auftretens wenigstens eines insbesondere fiktiven
Zugriffs-Zyklus auf dem kritischen Daten enthaltenden
Speicherbereich mit einer vorgegebenen Anzahl von Schreibzyklen
nach diesem Zugriffs-Zyklus zuläßt.
2. Speicherschutzsystem nach Anspruch 1, dadurch gekennzeichnet,
daß der Schreibvorgang nur nach wenigstens zwei Zugriffs-
Zyklen zugelassen wird, wobei jeder Zugriffs-Zyklus eine
vorgegebene Adresse hat und wenigstens ein Zugriffs-Zyklus
ein Schreib-Zyklus mit vorgegebenen Daten ist.
3. Speicherschutzsystem nach einem der Ansprüche 1 oder 2,
dadurch gekennzeichnet, daß eine Einrichtung (38) nur eine
vorgegebene Zahl von Schreibvorgängen in den kritische Daten
enthaltenden Speicherbereich nach jeder Registrierung
wenigstens eines Zugriffs-Zyklus auf den kritische Daten
enthaltenden Speicherbereich zuläßt.
4. Speicherschutzsystem nach Anspruch 3, dadurch gekennzeichnet,
daß die vorgegebene Zahl von Schreibvorgängen Eins ist.
5. Speicherschutzsystem nach einem der Ansprüche 1 bis 4,
dadurch gekennzeichnet, daß der Lese/Schreib-Speicher (14)
auch einen ungeschützten Speicherbereich enthält und daß
eine Einrichtung vorgesehen ist, die Schreibvorgänge in den
ungeschützten Speicherbereich unabhängig vom Betrieb der
Entsperreinrichtung (36) ermöglicht.
6. Speicherschutzsystem nach Anspruch 5, dadurch gekennzeichnet,
daß sich die vorgegebenen Adressen in dem ungeschützten
Speicherbereich befinden.
7. Speicherschutzsystem nach einem der Ansprüche 1 bis 6,
dadurch gekennzeichnet, daß die Entsperreinrichtung (36) nur
einen einzigen Schreibvorgang in den kritische Daten enthaltenden
Speicherbereich nach jeder weiteren Registrierung
des Auftretens eines Zugriffs-Zyklus auf den kritische
Daten enthaltenden Speicherbereich zuläßt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/123,368 US4388695A (en) | 1980-02-21 | 1980-02-21 | Hardware memory write lock circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3048365A1 DE3048365A1 (de) | 1981-09-10 |
DE3048365C2 true DE3048365C2 (de) | 1987-10-15 |
Family
ID=22408270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19803048365 Granted DE3048365A1 (de) | 1980-02-21 | 1980-12-20 | Speicherschutzsystem und datenverarbeitungssystem mit einem solchen speicherschutzsystem |
Country Status (5)
Country | Link |
---|---|
US (1) | US4388695A (de) |
JP (1) | JPS56134400A (de) |
CA (1) | CA1153474A (de) |
DE (1) | DE3048365A1 (de) |
GB (1) | GB2070821B (de) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58184668A (ja) * | 1982-04-22 | 1983-10-28 | Fanuc Ltd | メモリの書込み制御方式 |
US4651323A (en) * | 1983-11-14 | 1987-03-17 | Tandem Computers Incorporated | Fault protection flip flop |
JPS6133556A (ja) * | 1984-07-25 | 1986-02-17 | Fujitsu Ltd | メモリの書込み保護方式 |
JPS6155753A (ja) * | 1984-08-27 | 1986-03-20 | Hitachi Ltd | マイコン暴走時の記憶デ−タ保護回路 |
JPS61275948A (ja) * | 1985-05-31 | 1986-12-06 | Casio Comput Co Ltd | デ−タ記憶装置 |
JPS6286407A (ja) * | 1985-10-11 | 1987-04-20 | Omron Tateisi Electronics Co | プログラマブル・コントロ−ラ |
JPS6329859A (ja) * | 1986-07-23 | 1988-02-08 | Sony Tektronix Corp | 記憶保護装置 |
JPS63200254A (ja) * | 1987-02-16 | 1988-08-18 | Nec Corp | メモリ書込制御回路 |
US5361341A (en) * | 1987-10-02 | 1994-11-01 | Sgs-Thomson Microelectronics, S.A. | Device for enabling the use of the contents of memory areas of an electronic microprocessor system |
JPH01108653A (ja) * | 1987-10-20 | 1989-04-25 | Nec Corp | メモリ内容保護回路 |
US5163141A (en) * | 1988-08-01 | 1992-11-10 | Stenograph Corporation | RAM lock device and method for a text entry system |
US5249285A (en) * | 1988-08-01 | 1993-09-28 | Stenograph Corporation | RAM lock device and method for a text entry system |
US5483646A (en) * | 1989-09-29 | 1996-01-09 | Kabushiki Kaisha Toshiba | Memory access control method and system for realizing the same |
JP3110027B2 (ja) * | 1989-09-29 | 2000-11-20 | 株式会社東芝 | コンピュータシステム |
KR0146067B1 (ko) * | 1990-03-09 | 1998-09-15 | 문정환 | 롬 데이타 보호방법 및 장치 |
JPH04205043A (ja) * | 1990-11-29 | 1992-07-27 | Mitsubishi Electric Corp | 半導体記憶装置 |
JP3478545B2 (ja) * | 1991-08-09 | 2003-12-15 | キヤノン株式会社 | 複写装置管理システム |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5550997A (en) * | 1992-11-18 | 1996-08-27 | Canon Kabushiki Kaisha | In an interactive network board, a method and apparatus for preventing inadvertent loading of a programmable read only memory |
US5559992A (en) * | 1993-01-11 | 1996-09-24 | Ascom Autelca Ag | Apparatus and method for protecting data in a memory address range |
JPH07225727A (ja) * | 1994-02-14 | 1995-08-22 | Fujitsu Ltd | 計算機システム |
JP3202497B2 (ja) * | 1994-09-09 | 2001-08-27 | 日本電気株式会社 | 情報処理装置 |
US5542044A (en) * | 1994-12-12 | 1996-07-30 | Pope; Shawn P. | Security device for a computer, and methods of constructing and utilizing same |
US5668973A (en) * | 1995-04-14 | 1997-09-16 | Ascom Hasler Mailing Systems Ag | Protection system for critical memory information |
US6330648B1 (en) * | 1996-05-28 | 2001-12-11 | Mark L. Wambach | Computer memory with anti-virus and anti-overwrite protection apparatus |
US5953502A (en) * | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
US6697954B1 (en) * | 1999-01-08 | 2004-02-24 | Compaq Computer Corporation | Method/apparatus for preserving state of an event during powerup reset sequence based on state of an event signal immediately prior to the reset |
FR2788353B1 (fr) | 1999-01-11 | 2001-02-23 | St Microelectronics Sa | Microprocesseur avec circuits de protection pour securiser l'acces a ses registres |
US6643751B2 (en) * | 2000-03-20 | 2003-11-04 | Texas Instruments Incorporated | System and method for limited access to system memory |
US7958376B2 (en) * | 2000-11-02 | 2011-06-07 | Ati Technologies Ulc | Write once system and method for facilitating digital encrypted transmissions |
US7178035B1 (en) * | 2000-11-02 | 2007-02-13 | Ati International, Srl | Write once system and method for facilitating digital encrypted transmissions |
JP2003015958A (ja) * | 2001-06-29 | 2003-01-17 | Nec Microsystems Ltd | ライトプロテクト方法 |
US6901354B2 (en) * | 2001-09-27 | 2005-05-31 | Intel Corporation | Method and apparatus for command perception by data value sequencing, allowing finite amount of unrelated interim data |
US6918037B2 (en) * | 2001-09-27 | 2005-07-12 | Intel Corporation | Method and apparatus for command perception by data value sequencing, allowing a bounded total amount of spurious data |
US7251752B2 (en) | 2001-10-01 | 2007-07-31 | Adams Phillip M | Computerized product improvement apparatus and method |
KR100614639B1 (ko) * | 2003-07-24 | 2006-08-22 | 삼성전자주식회사 | 쓰기 방지 가능한 버퍼 메모리를 갖는 메모리 장치 및그것을 포함하는 정보 처리 시스템 |
US7213168B2 (en) * | 2003-09-16 | 2007-05-01 | Rockwell Automation Technologies, Inc. | Safety controller providing for execution of standard and safety control programs |
WO2005121960A1 (en) * | 2004-06-07 | 2005-12-22 | Nokia Corporation | Operating a storage component |
US8112597B2 (en) * | 2006-12-08 | 2012-02-07 | Microsoft Corporation | Critical memory |
US7949841B2 (en) * | 2006-12-08 | 2011-05-24 | Microsoft Corporation | Protection of critical memory using replication |
US8082585B1 (en) * | 2010-09-13 | 2011-12-20 | Raymond R. Givonetti | Protecting computers from malware using a hardware solution that is not alterable by any software |
CN105346256B (zh) * | 2015-11-09 | 2017-03-22 | 杭州旗捷科技有限公司 | 一种打印机芯片、墨盒、和打印机芯片存储分配方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3573855A (en) * | 1968-12-31 | 1971-04-06 | Texas Instruments Inc | Computer memory protection |
JPS4930578B1 (de) * | 1970-09-30 | 1974-08-14 | ||
JPS5224838B2 (de) * | 1971-10-04 | 1977-07-04 | ||
US3827029A (en) * | 1972-09-25 | 1974-07-30 | Westinghouse Electric Corp | Memory and program protection system for a digital computer system |
US4093986A (en) * | 1976-12-27 | 1978-06-06 | International Business Machines Corporation | Address translation with storage protection |
JPS542026A (en) * | 1977-06-07 | 1979-01-09 | Hitachi Ltd | Memory unit |
-
1980
- 1980-02-21 US US06/123,368 patent/US4388695A/en not_active Expired - Lifetime
- 1980-10-10 GB GB8032813A patent/GB2070821B/en not_active Expired
- 1980-12-05 CA CA000366282A patent/CA1153474A/en not_active Expired
- 1980-12-20 DE DE19803048365 patent/DE3048365A1/de active Granted
-
1981
- 1981-02-19 JP JP2231381A patent/JPS56134400A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US4388695A (en) | 1983-06-14 |
GB2070821A (en) | 1981-09-09 |
GB2070821B (en) | 1984-05-23 |
JPS56134400A (en) | 1981-10-21 |
CA1153474A (en) | 1983-09-06 |
DE3048365A1 (de) | 1981-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3048365C2 (de) | ||
EP0011685B1 (de) | Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung | |
DE2629459C2 (de) | ||
DE69533312T2 (de) | Geschütztes speichersystem und verfahren dafür | |
EP0512542B1 (de) | Datenschützende Mikroprozessorschaltung für tragbare Datenträger, beispielsweise Kreditkarten | |
EP0951673B1 (de) | Verfahren zur überwachung der vorgeschriebenen ausführung von softwareprogrammen | |
DE4123126C1 (de) | ||
DE2758152A1 (de) | Speicherschutzanordnung | |
DE2225841C3 (de) | Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers | |
DE1499687B2 (de) | Speicherschutz-einrichtung | |
DE3318101A1 (de) | Schaltungsanordung mit einem speicher und einer zugriffskontrolleinheit | |
DE2801518A1 (de) | Datenverarbeitungssystem mit speicher-schutzeinrichtung | |
DE69724732T2 (de) | Atomare Operation in Fernspeicher und Vorrichtung zur Durchführung der Operation | |
DE3911721C2 (de) | ||
EP0224639A1 (de) | Verfahren zum Kontrollieren eines Speicherzugriffs auf einer Chipkarte und Anordnung zur Durchführung des Verfahrens | |
DE102006035610B4 (de) | Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung | |
EP0935214B1 (de) | Chipkarte mit integrierter Schaltung | |
DE102004003102A1 (de) | System und Verfahren zum Bestimmen einer Transaktionszeitüberschreitung | |
EP0127809A1 (de) | Schaltungsanordnung mit einem Speicher und einer Zugriffskontrolleinheit | |
EP0008355B1 (de) | Einrichtung zum Sichern von in Datenverarbeitungslagen gespeicherten Daten gegen unberechtigten Zugriff | |
DE112019007853T5 (de) | Steuereinrichtung | |
WO2019081308A1 (de) | Verfahren und halbleiterschaltkreis zum schützen eines betriebssystems eines sicherheitssystems eines fahrzeugs | |
DE4042161A1 (de) | Rom mit sicherheitsschaltung | |
DE1966991A1 (de) | Ausfallgesicherte datenverarbeitungsanlage | |
DE10340236B4 (de) | Anordnung mit einer Datenverarbeitungseinrichtung und einem Speicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 12/14 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |