DE3048365A1 - Speicherschutzsystem und datenverarbeitungssystem mit einem solchen speicherschutzsystem - Google Patents
Speicherschutzsystem und datenverarbeitungssystem mit einem solchen speicherschutzsystemInfo
- Publication number
- DE3048365A1 DE3048365A1 DE19803048365 DE3048365A DE3048365A1 DE 3048365 A1 DE3048365 A1 DE 3048365A1 DE 19803048365 DE19803048365 DE 19803048365 DE 3048365 A DE3048365 A DE 3048365A DE 3048365 A1 DE3048365 A1 DE 3048365A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- access
- write
- memory
- processing system
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Description
Die Erfindung betrifft allgemein ein Datenverarbeitungssystem und insbesondere eine Speicherschutzeinrichtung für
kritische Daten in einem solchen Datenverarbeitungssystem, mit der 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 Zugriff 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.
- 10 -
130037/0794
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 Batteriereserve 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. 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/
- 11 -
130037/0794
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 arhält.
Üblicherweise wird ein Speicherbareich 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; wenn sich der Schalter im "Schutzzustand" befindet, werden
Schreibimpulse abgeblockt, so daß sie den Speicher nicht erreichen können. Diese herkömmliche Technik ist zweifeisfrei
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 Versagers" immer problematisch ist; außerdem ist immer ein Eingriff durch
eine Bedienungsperson erforderlich, was ebenfalls zu Schwierigkeiten führt.
Außerdem gibt es auch Software-Auswahlroutinen, die im wesentlichen
in Software/Hardware-Entwicklungssysteraen gefunden werden.
Bei einem selchen System muß der Benutzer Zugriff zu den Bereichen des RAM haben, die geschützt werden sollen.
Eine Software-Auswahlroutine (screening software routine)ü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-Äuswahlroutine 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 einschrei-
- 12 -
130037/0794
ben (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) geschü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 Schreibzyklusses 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.
- 13 -
130037/0794
Es ist deshalb ein Ziel der vorliegenden Erfindung, einen Speicher oder eine andere Einrichtung in einem Datenverarbeitungssystem
zu schützen, wobei kein Eingriff der Bedienungsperson erforderlich sein soll; außerdem sollen diese
Schutzmaßnahmen nicht die Nachteile haben, bei denen die Sicherung nur auf der Software beruht.
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,
- 14 -
130037/0794
daß ein Zusammenbruch, der sich auf die Durchführung der Entsperrungsroutine auswirkt, auch den geschützten Speicherbereich
entsperrt. Die Hardware, die die vorgegebenen Speicherzugriff zyklen 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 Spei chorbore ich mit den kritischen Daten während eines Schroibzyklus
zu ermöglichen, müssen zunächst vorgegebene Speicherzugriff zyklen gesteuert werden, die beispielsweise das Einschreiben
von vorgegebenen Daten in eine vorgegebene Adresse
13003 7/0794
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 tätsä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 beiliegende schematische
Zeichnung näher erläutert, deren einzige Figur eine Ausführungsform
der Erfindung darstellt.
Bei der bei dieser Ausführungsform verwendeten Zentraleinheit
bzw. CPU 10 handelt es sich um den Mikroprozessor 6800, der von Motorola vertrieben wird. Neben vielen anderen Stiftanschlüßsen
(nicht dargestellt) ist dieser Mikroprozessor mit einem 16 Bit-Adress-Bus, einem 8 Bit-Daten-Bus, einem 02 Taktimpuls,
der während jedes Maschinenzyklus (einschließlich der Speicherzugriffzyklen) auf einen hohen Pegel geht, einer R/W—
130037/0794
- 16 -
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 Eingangsleitung "Strom ein Rücksetzen" versehen,
die zeitweilig auf einen niedrigen Pegel geht, wenn dem System zum ersten Mal Energie, d.h. 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/W-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/W-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 Zentraleinheit CPU IO und dem geschützten RAM. 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/W-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 angesteuert und eine Speicherstelle in
dem RAM adressiert wird.
Der ungeschützte RAM 16 arbeitet auf ähnliche Weise, jedoch mit dem Unterschied, daß die R/W-Steuerleitung von der Zentraleinheit
10 direkt zu diesem RAM 16 verlängert ist. Die Schreibzyklen für den RAM 16 sind also keinen Beschränkungen unterworfen.
130037/0794
Der Lesespeicher 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/W-Steuereingang.
Der Adressenbus 32 ist zu dem Adressendecodierer 12 verwendet; 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 durchgeführt wird, sondern bezieht sich nur darauf, wann Schreibzyklen in dem
geschützten RAM 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
entsperrende Hardware nichts anderes macht, als zu überprüfen, daß die entsperrende Adresse auf dem Bus 32 erscheint (da
faktisch nichts gelesen wird). Es ist jedoch besser, daß dieser I
eine vorgegebene Speicherzugriffzyklus ein Schreibzyklus ist, ϊ
der nicht nur eine vorgegebene Adresse, sondern auch vorge- {
gebene Daten umfaßt. In diesem Fall kann die entsperrende j Hardware eine zusätzliche überprüfung durchführen. Dadurch I
wird eine größere Sicherheit gewährleistet, daß die entsperrende Software-Routine nicht nur dann, wenn eine spezielle I.
entsperrende Adresse auf dem Adressenbus erscheint, sondern ;
auch , wenn spezielle, entsperrende Daten auf dem Datenbus
erscheinen, eingegeben wird.
erscheinen, eingegeben wird.
v> In diesem Zusammenhang wird auf folgendes hingewiesen: Obwohl !
die zur Aufhebung der Sperre dienende Schaltungsanordnung die J richtige Folge von Adressen auf dem Adressenbus feststellt/
um den geschützten RAM "aufzusperren", ist der Zugriff zu !
den Speicherstellen tatsächlich möglich, da die Adressen- ■
busse mit den Speichern verbunden sind und die Adressen, die
>
für die aufsperrende Hardware benötigt werden, tatsächlich I
innerhalb der Adressenbereiche der Speicher liegen können. \
Dies hat jedoch keine Bedeutung. Wenn die aufsperrenden Adressen- '
codes durch die Zentraleinheit während der Lesezyklen ausge- \
geben werden, werden die von den Speichern ausgelesenen Daten
einfach ignoriert. Als Alternative hierzu ist au*folgende
einfach ignoriert. Als Alternative hierzu ist au*folgende
.*?*, Ausführungsform möglich: Wenn Schreibzyklen in der ent-
tß j
sperrenden Software-Routine verwendet werden, können Daten ί
während des Aufsperrens in den ungeschützten RAM eingeschrie- !
ben werden. Auch dies hat keine Bedeutung, weil in einem ( solchen Fall die jeweiligen Speicherstellen für keinen ande- . ;
ren Zweck verwendet würden. Es ist sogar möglich, daß einige
der Adressen, die in der aufsperrenden Routine verwendet ί
v/erden, die Adressen sind, die Zugriff zu dem geschützten !
RAM haben (obwohl dies bei der dargestellten Ausführungs- [
form de··- Erfindung nicht der Fall ist) . Da während dos ·
Aufsperr^ns selbst nichts in den geschützten RAM geschrie- I
ben worden kann (ein einziger Schreibvorgang in dem geschützten j.
RAM ist nur am Ende des Aufsperrens zugelassen), hat das Auf- '
- 19 -
130037/0794
treten einer Adresse, die in dem geschützten RAM liegt, auf dem Adressenbus sogar während eines Schreibzyklus keine
Wirkung, da der R/W-Eingang des geschützten RAM auf einem hohen Pegel bleibt.
Bei der dargestellten Ausführungsform der Erfindung ist das Aufsperren des geschützten RAM mit drei Schreibzyklen verbunden,
und zwar an drei vorgegebnen hexadezimalen Adressen — $ 8780, $ 8790 und $ 87AO (das Symbol $ stellt eine hexadezimale
Adresse dar). 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 (Dl) des Datenbusses enthält. Während
dieses Schreibzyklus haben die Datenwerte auf den Datenleitungen DO und D2-D7 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 Eingang "Netz ein Rücksetzen" der Zentraleinheit 10 durch eine "Netz ein Rücksetzschaltung" 50 (jede herkömmliche
Schaltung kann verwendet werden) auf einen niedrigen Pegel gepulst wird, wird der Impuls auch an den vorhergesetzten
Eingang eines JK-Flip-Plops 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 Q auf einen niedrigen Pegel geht. Dieser Ausgang ist mit dem Löscheingang eines
JK-Flip-Flops 24 verbunden, dessen Ausgang Q dadurch auf
einen 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 zu sperren.
13003f?0~794
Wenn die Zentraleinheit die aufsperrende Software-Routine eingibt, steuert sie zunächst einen Schreibzyklus an der
Adresse $ 8780 mit einem Datenbyte, das an der Bitstelle Dl ein Bit mit dem Wert 1 enthält. Die Datenleitung Dl ist mit
dem Eingang D des D-Typ-Flip-Flops 22 verbunden. Wenn der Adressendecodierer 12 die Adresse $ 8780 dekodiert, legt
er ein positives Potential an einen Eingang eines Verknüpfungsgliedes 52 an. Der 02 Puls wird dem anderen Eingang zugeführt,
so daß der Ausgang des Verknüpfungsgliedes auf einen niedrigen Pegel geht. Wenn der 02 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 02 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/W-Ausgang der Zentraleinheit 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 zu ermöglichen; er bleibt auf dem hohen Pegel unter der
- 21 -
130037/0794
Voraussetzung, daß in der Zwischenzeit kein weiterer Schreibvorgang
zu der Adresse $ 8780 mit einem Datenbyte erfolgt, dessen Dl-Bit einen Wert von Null hat.
Die Signale 02 und die invertierten R/W-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 des Flip-Flops 18 beide auf einem niedrigen Pegel sind, führt das Takten des Flip-Flops 18 zu keiner Zustandsänderung;
der Ausgang Q 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 Adressendecodierer 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 02-Impuls auf einen niedrigen
Pegel geht, kurz bevor der R/W-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 Q 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 An-
^- Oo
130037/0794
steuerung 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, so lange sie beide
vor dem dritten vorgegebenen Speicherzugriffzyklus der Aufsperr-Routine erfolgen.
Es spielt keine Rolle, welcher der beiden gerade beschriebenen Schreibzyklen zuerst auftritt, so lange sie beide
vor dem dritten vorgegebenen Speicherzugriffzyklus der Aufsperr-Routine erfolgen.
Der dritte vorgegebene Speicherzugriffzyklus ist ein Schreibvorgang
zu der Adresse $ 87AO; wie bei dem Schreibvorgang zu der Adresse £ 8790 sind die Daten, die auf dem Datenbus erscheinen/nicht
wesentlich. Während dieses dritten Schreibzyklus steuert der Adressendeeodierer 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 02 und den R/W-schreibimpuls angesteuert. Das Ausgangssignal des Verknüpfungsgliedes 20 geht also auf einen
hohen Wert, und an der hinteren Flanks 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.
Taktimpuls 02 und den R/W-schreibimpuls angesteuert. Das Ausgangssignal des Verknüpfungsgliedes 20 geht also auf einen
hohen Wert, und an der hinteren Flanks 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 steuert, wird das Byte auf dem Datenbus in die adressierte Speicherstelle geschrieben. Wenn die adressierte Speicherstelle sich nicht in dem geschützten RAM befindet, wird der RAM nicht angesteuert, so daß nichts eingeschrieben wird, obwohl sein R/W-Eingang niedrig gepulst wirdi (Es wird darauf hingewiesen, daß der dritte Schreibzyklus der Aufsperr-Routine endet und der Ausgang des Inverters 42 auf
in dem geschützten RAM steuert, wird das Byte auf dem Datenbus in die adressierte Speicherstelle geschrieben. Wenn die adressierte Speicherstelle sich nicht in dem geschützten RAM befindet, wird der RAM nicht angesteuert, so daß nichts eingeschrieben wird, obwohl sein R/W-Eingang niedrig gepulst wirdi (Es wird darauf hingewiesen, daß der dritte Schreibzyklus der Aufsperr-Routine endet und der Ausgang des Inverters 42 auf
1300^/0794
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 Schreibzyklus 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 derAusgang des Verknüpfungsgliedes 38 an der hinteren Flanke des Impulses 02 auf einen
niedrigen Pegel, so daß der Flip-Flop getaktet wird. Der Ausgang Q 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 Durchfü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
1 3 0 03¥/ 0 7 9 4
Aufsperr-Routine zurückgesetzt, indem ein Schreibvorgang
zu der Adresse $ 878O mit einem Datenbyte durchgeführt wird,
dessen Dl-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 ^ 87AO gemacht werden, ohne daß ein Aufschreibvorgang zu der Adresse $ 8780 erforderlich
ist.)
Statt getrennte Flip-Flops und Verknüpfungsglieder auf die beschriebene Weise zu verwenden, ist es bei einigen Systemen
möglich, die benötigte Hardware zu verringern. Es soll beispielsweise bei einem Multiplexer angenommen werden, daß ein
USART für andere Zwecke verwendet wird und sein Ausgang DTR für irgendeinen benötigten Zweck zur Verfügung steht. In
einem solchen Fall wäre der 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 $ 87AO 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
y.u CJAOV, geschütztem RAM) das Auf sperrverfahren:
- 25 -
130037/0794
; PKIMH TO MNTItY INTO UNLOCK PROCEDUIM· , DATA TO BF
; WRLTTEN IS IN ACC. Λ AND WRITE ADDRESS IS IN X REGISTER
WNCMOS LIM β #$02 :hQAD Λ(χ_ B w/ χ IN QS _ Q1
STA B *8780 ;SCT F/F 22 (WRITE KEY 1)
STA B $8790 ,-SET F/F 18 (WRITE KEY 2)
STA B *87A0 ;SI3T F/F 24 (WRITE KEY 3)
STA Λ 0, "X ,-WRITE DATA
LDA B #*00 «'LOAD ACC. B W/ 0 IN BIT POS. Dl
STA B $878 0 ,-RESET F/F 22
F<TS ; RETURN
Diese Routine in Assembler-Sprache ist für die Benutzung in den Mikroprozessor 6800 ausgelegt. Der Anfangskommentar
erklärt, daß während des normalen Betriebs, 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.
nie 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 Dl 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
ij! 87ΛΟ. Wie oben beschrieben wurde, sind während dieser
Schreibzyklen bei der dargestellten Ausführungsform der vorliegenden Erfindung die tatsächlich auf dem Datenbus
ausqegobennn Daten nicht wesentlich, und das gleiche Daten-
1 3 0 0 3 7 /0794
— 26 —
BAD ORIGINAL
byte 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 $ OO 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 zurück, die gerade abgearbeitet wurden.
Obwohl die vorliegende Erfindung unter Bezugnahme auf eine bestimmte Ausführungsform erläutert worden ist, soll diese
Ausführungsform nur das Verständnis der Erfindung erleichtern,
jedoch die Erfindung nicht auf diese Ausführungsform beschränken.
Die hier beschriebene Technik läßt sich in gleicher Weise auch als Zugriffschutz für andere Elemente, also
nicht nur für Speicher , anwenden, beispielsweise für selbsthaltende Schalter, 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.
- 27 -
130037/0794
Obwohl die Aufsperr-Routine bei der dargestellten Ausführungsform
der vorliegenden Erfindung mit vorgegebenen Speicherzugriff zyklen 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 w.i.rd,
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.
130037/0794
ORIGINAL INSPECTED
■it-
Leerseite
Claims (38)
- PatentansprücheSpeicherschutzsystem für einen Lese/Schreib-Speicher mit einem kritische, zu schützende Daten enthaltenden Bereich, wobei der Speicher an ein Gesamtsystem angeschlossen und Teil desselben ist, das Adress- und Daten-Busse und eine Steuerung für den Zugriff zu dem Speicher enthält, gekennzeichnet durch eine Einrichtung (12, 18, 20, 22, 24, 38, 40, 52), die auf das Auftreten wenigstens eines vorgegebenen Zugriff-Zyklus anspricht und dieses Auftreten registriert, und durch eine Einrichtung (36), die einen Einschreibvorgang für den Speicherbereich mit den kritischen Daten nur nach der Registrierung des Auftretens wenigstens eines vorgegebenen Zugriff-Zyklus zuläßt.130037/0794ORfGfNAL !MSPECTED
- 2. Speicherschutzsystem nach Anspruch 1, dadurch gekennzeichnet, daß der Schreibvorgang nur nach wenigstens zwei Zugriff-Zyklen zugelassen wird, wobei jeder Zugriff-Zyklus eine vorgegebene Adresse hat und wenigstens ein Zugriff-Zyklus ein Schreib-Zyklus mit vorgegebenen Daten ist.
- 3. Speicherschutzsystem nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, daß die Einreichtung (38) nur eine vorgegebene Zahl von Schreibvorgängen in dem Speicherbereich mit den kritischen Daten nach jeder Registrierung wenigstens eines vorgegebenen Zugriff-Zyklus zuläßt.
- 4. Speicherschutzsystem nach Anspruch 3, dadurch gekennzeichnet, daß die vorgegebene Zahl Eins ist.
- 5. Speicherschutzsystem nach einem der Ansprüche 1 bis Ί, dadurch gekennzeichnet, daß der Lese/Kchreib-Spoichor (1 ·!) einen ungeschützten Bereich enthält, und daß eine Einrichtung vorgesehen ist, die Schreibvorgänge in dem ungeschützten Bereich unabhängig vom Betrieb der Registrier- und Zulassungseinrichtung ermöglicht.
- 6. Speicherschutzsystem nach Anspruch 5, dadurch gekennzeichnet, daß sich die vorgegebenen Adressen in dem ungeschützten Bereich befinden.
- 7.Speicherschutzsystem nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Einrichtung (36) nur einen einzigen Schreibvorgang in dem Speicherbereich mit den kritischen Daten nach jeder weiteren Registrierung eines vorgegebenen Zugriff-Zyklusses.
- 8. Speicherschutzsystem nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß der Schreib/Lese-Speicher (14) einen ungeschützten Bereich enthält, und daß eine Einrichtung vorgesehen ist, die Schreibvorgänge in dem ungeschützten Rereich unabhängig vom Betrieb der Registrier- und Zulassungseinrichtung ermöglicht.130037/079430A8365
- 9. Speicherschutz-System nach Anspruch 8, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus eine Adresse in dem ungeschützten Pereich hat.
- 10. Speicherschutzsystem nach Anspruch 9, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus ein Schreib-Zyklus ist.
- 11. Speicherschutzsystem nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus das Einschreiben von vorgegebenen Daten an einer vorgegebenen Adresse ist.
- 12. Speicherschutzsystem nach Anspruch 11, dadurch gekennzeichnet, daß die Einrichtung (36) nur einen einzigen Schreibvorgang in dem Speicherbereich mit den kritischen Daten nach jeder Registrierung wenigstens eines vorgegebenen Zugriff-Zyklus ermöglicht.
- 13. Datenverarbeitungssystem mit einem Lese/Schreib-Speicher mit einem Bereich, der kritische, zu schützende Daten enthält, weiterhin mit einer Steuerung für den Zugriff zu dem Speicher, gekennzeichnet durch eine Einrichtung (12, 18, 20, 22, 24, 38, 40, 52), die auf das Auftreten wenigstens eines vorgegebenen Zugriff-Zyklus anspricht und dieses Auftreten registriert, und durch eine Einrichtung (36) , die einen Schreibvorgang in dem Speicherbereich mit den kritischen Daten nur nach der Registrierung des Auftretens wenigstens eines vorgegebenen Zugriff-Zyklus zuläßt.
- 14. Datenverarbeitungssystem nach Anspruch 13, dadurch gekennzeichnet, daß die programmgesteuerte Steuerung den Zugriff zu dem Speicherbereich mit den kritischen Daten bei der Durchführung einer bestimmten Programmroutine ermöglicht, daß die bestimmte Programmroutine wenigstens einen vorgegebe-130037/079 4nen Zugriff-Zyklus steuert und dann in den Speicherbereich mit den kritischen Daten an einer bestimmten Adresse bestimmte Daten einschreibt, wobei sowohl die Adresse als auch die Daten vor der Durchführung der bestimmten Programmroutine festgelegt werden.
- 15. Datenverarbeitungssystem nach Anspruch 14, dadurch gekennzeichnet, daß wenigstens zwei vorgegebene Zugriff-Zyklen registriert werden, von denen jeder eine zugeordnete, vorgegebene Adresse hat und von denen einer ein Schreibzyklus mit vorgegebenen Daten ist.
- 16. Datenverarbeitungssystem nach einem der Ansprüche 13 bis 15, dadurch gekennzeichnet, daß die Einrichtung (36) nur eine vorgegebene Zahl von aufeinanderfolgenden Schreibvorgängen in dem Speicherbereich mit den kritischen Daten nach jeder Registrierung wenigstens eines vorgegebenen Zugriff-Zyklus zuläßt.
- 17. Datenverarbeitungssystem nach Anspruch 16, dadurch gekennzeichnet, daß die vorgegebene Zahl Eins ist.
- 18. Datenverarbeitungssystem nach einem der Ansprüche 13bis 17, dadurch gekennzeichnet, daß der Lese/Schreib-Speicher (14) einen ungeschützten Bereich enthält, und daß eine Einrichtung vorgesehen ist, die Schreibvorgänge in dem ungeschützten Bereich unabhängig vom Betrieb der Registrier- und Zulassungseinrichtung ermöglicht.
- 19. Datenverarbeitungssystem nach Anspruch 18, dadurch gekennzeichnet, daß sich die vorgegebene Adresse in dem ungeschützten Bereich befindet.
- 20. Datenverarbeitungssystem nach einem der Ansprüche 13 bis 19, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus ein Schreib-Zyklus ist.130037/079 4
- 21. Datenverarbeitungssystem nach einem der Ansprüche 13 bis 20, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus das Einschreiben von vorgegebenen Daten an einer vorgegebenen Adresse ist.
- 22. Datenverarbeitungssystem nach einem der Ansprüche 13 bis 21, dadurch gekennzeichnet, daß die Einrichtung (36) nur einen einzigen , aufeinanderfolgenden Schreibvorgang in dem Speicherbereich mit den kritischen Daten nach jeder Registrierung wenigstens eines vorgegebenen Zugriff-Zyklus ermöglicht.
- 23. Datenverarbeitungssystem nach einem der Ansprüche 13 bis 22, dadurch gekennzeichnet, daß der Lese / Schreib-Speicher einen ungeschützten Bereich (16) enthält, und daß eine Einrichtung vorgesehen ist, die Schreibvorgänge in den ungeschützten Bereich (16) unabhängig vom Betrieb der Registrier- und Zulassungseinrichtung (12, 18, 20, 22, 24, 38, 40, 52; 36) ermöglicht.
- 24. Datenverarbeitungssystem nach Anspruch 23, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus eine Adresse in dem ungeschützten Bereich (16) hat.
- 25. Datenverarbeitungssystem nach einem der Ansprüche 13 bis 24,dadurch gekennzeichnet, daß die Einrichtung (36) nur eine vorgegebene Zahl von aufeinanderfolgenden Schreibvorgängen in dem Speicherbereich (14) mit kritischen Daten nach jeder Registrierung des vorgegebenen Zugriff-Zyklus zuläßt.
- 26. Datenverarbeitungssystem nach einem der Ansprüche 13 bis 25, dadurch gekennzeichnet, daß wenigstens zwei Zugriff-Zyklen vorgesehen werden, von denen jeder eine vorgegebene Adresse hat und von denen wenigstens einer ein Schreibzyklus mit vorgegebenen Daten ist.130037/0794
- 27. Datenverarbeitungssystem mit mehreren Elementen, zu denen der Zugriff durch jeweilige Adressensignale möglich ist, wobei wenigstens eines der. Elemente gegen irrtümlichen Zugriff geschützt werden muß, und mit einer Steuerung für den Zugriff zu den Elementen, gekennzeichnet durch eine Einrichtung (12, 18, 20, 22, 24, 38, 40, 52), die auf das Auftreten wenigstens eines vorgegebenen Zugriff-Zyklus anspricht und dieses Auftreten registriert, und durch eine Einrichtung (36), die den Zugriff zu diesem wenigstens einen Element nur nach der Registrierung des Auftretens wenigstens eines vorgegebenen Zugriff-Zyklus zuläßt.
- 28. Datenverarbeitungssystem nach Anspruch 27, dadurch gekennzeichnet, daß die programmgesteuerte Steuerung den Zugriff zu diesem Element nur bei Durchführung einer bestimmten Programmroutine ermöglicht, daß die bestimmte Programmroutine wenigstens einen vorgegebenen Zugriff-Zyklus steuert und dann den Zugriff zu diesem Element an einer Adresse ermöglicht, die vor der Durchführung der bestimmten Programmroutine eingestellt worden ist.
- 29. Datenverarbeitungssystem nach einem der Ansprüche 27 oder 28, dadurch gekennzeichnet, daß wenigstens zwei Zugriffzyklen registriert werden, von denen jeder eine vorgegebene Adresse hat, und von denen wenigstens einer ein Schreib-Zyklus mit vorgegebenen Daten ist.
- 30. Datenverarbeitungssystem nach einem der Ansprüche 27 bis 29, dadurch gekennzeichnet, daß die Einrichtung (36) nur eine vorgegebene Zeit von aufeinanderfolgenden Zugriffen zu wenigstens einem Element (14) nach jeder Registrierung wenigstens eines vorgegebenen Zugriff-Zyklus zuläßt.
- 31. Datenverarbeitungssystem nach Anspruch 30, dadurch gekennzeichnet, daß die vorgegebene Zahl Eins ist.130037/079 4— V
- 32. Datenverarbeitungssystem nach einem der Ansprüche 27 bis 31, gekennzeichnet durch eine Einrichtung, die den Zugriff zu den Elementen, die nicht geschützt werden sollen, unabhängig vom Betrieb der Registrier- und Zulassungseinrichtung (12,18 , 20, 22, 24, 38, 40, 52; 36) ermöglicht.
- 33. Datenverarbeitungssystem nach einem der Ansprüche 27 bis 32, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus ein Schreibzyklus ist.
- 34. Datenverarbeitungssystem nach einem.der Ansprüche 27 bis 33, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus das Einschreiben von vorgegebenen Daten an einer vorgegebenen Adresse ist.
- 35. Datenverarbeitungssystem nach einem der Ansprüche 27 bis 34, dadurch gekennzeichnet, daß die Einrichtung (36) nur einen aufeinanderfolgenden Zugriff zu wenigstens einem Element nach jeder Registrierung des vorgebenen Zugriff-Zyklus zuläßt.
- 36. Datenverarbeitungssystem nach einem der Ansprüche27 bis 35, gekennzeichnet durch eine Einrichtung, die den Zugriff zu den Elementen (16), die nicht geschützt werden sollen, unabhängig von dem Betrieb der Registrier- und Zulassungseinrichtung (12, 18, 20, 22, 24, 38, 40, 52; 36) zuläßt.
- 37. Datenverarbeitungssystem nach einem der Ansprüche27 bis 36, dadurch gekennzeichnet, daß die Einrichtung (36) nur eine vorgegebene Zahl von aufeinanderfolgenden Zugriffen zu wenigstens einem Element (14) nach jeder Registrierung des vorgegebenen Zugriff-Zyklus zuläßt.
- 38. Datenverarbeitungssystem nach einem der Ansprüche 27 bis 37, dadurch gekennzeichnet, daß wenigstens zwei1 3 0 0 37 f CT7 9Zugriff-Zyklen registriert werden, von denen jeder eine vorgegebene Adresse hat und von denen wenigstens einer ein Schreibzyklus mit vorgegebenen Daten ist.130037/079 4
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 true DE3048365A1 (de) | 1981-09-10 |
| DE3048365C2 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 |
| US7178035B1 (en) * | 2000-11-02 | 2007-02-13 | Ati International, Srl | Write once system and method for facilitating digital encrypted transmissions |
| US7958376B2 (en) * | 2000-11-02 | 2011-06-07 | Ati Technologies Ulc | Write once system and method for facilitating digital encrypted transmissions |
| JP2003015958A (ja) * | 2001-06-29 | 2003-01-17 | Nec Microsystems Ltd | ライトプロテクト方法 |
| 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 |
| 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 |
| 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 |
| US7949841B2 (en) * | 2006-12-08 | 2011-05-24 | Microsoft Corporation | Protection of critical memory using replication |
| US8112597B2 (en) * | 2006-12-08 | 2012-02-07 | Microsoft Corporation | Critical memory |
| 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 | 杭州旗捷科技有限公司 | 一种打印机芯片、墨盒、和打印机芯片存储分配方法 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE1952158A1 (de) * | 1968-12-31 | 1970-07-09 | Texas Instruments Inc | Speicherschutzverfahren und Einrichtung zur Durchfuehrung dieses Verfahrens |
| US3742458A (en) * | 1970-09-30 | 1973-06-26 | Yokogawa Electric Works Ltd | Memory protection system providing fixed, conditional and free memory portions corresponding to ranges of memory address numbers |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE1952158A1 (de) * | 1968-12-31 | 1970-07-09 | Texas Instruments Inc | Speicherschutzverfahren und Einrichtung zur Durchfuehrung dieses Verfahrens |
| US3742458A (en) * | 1970-09-30 | 1973-06-26 | Yokogawa Electric Works Ltd | Memory protection system providing fixed, conditional and free memory portions corresponding to ranges of memory address numbers |
Also Published As
| Publication number | Publication date |
|---|---|
| US4388695A (en) | 1983-06-14 |
| DE3048365C2 (de) | 1987-10-15 |
| JPS56134400A (en) | 1981-10-21 |
| CA1153474A (en) | 1983-09-06 |
| GB2070821A (en) | 1981-09-09 |
| GB2070821B (en) | 1984-05-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3048365A1 (de) | Speicherschutzsystem und datenverarbeitungssystem mit einem solchen speicherschutzsystem | |
| EP0951673B1 (de) | Verfahren zur überwachung der vorgeschriebenen ausführung von softwareprogrammen | |
| EP0011685B1 (de) | Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung | |
| DE10159901B4 (de) | Mikrocomputer mit eingebautem programmierbarem, nichtflüchtigem Speicher | |
| DE2758152A1 (de) | Speicherschutzanordnung | |
| DE2719253B2 (de) | Schnittstellenschaltung für Datenverarbeitungsanlagen | |
| DE2225841C3 (de) | Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers | |
| DE2629459A1 (de) | Datenverarbeitungssystem | |
| DE69724732T2 (de) | Atomare Operation in Fernspeicher und Vorrichtung zur Durchführung der Operation | |
| EP0224639B1 (de) | Verfahren zum Kontrollieren eines Speicherzugriffs auf einer Chipkarte und Anordnung zur Durchführung des Verfahrens | |
| DE2801518A1 (de) | Datenverarbeitungssystem mit speicher-schutzeinrichtung | |
| DE1909090C3 (de) | Schutzeinrichtung für den Arbeitsspeicher einer Rechenanlage | |
| DE2810421C2 (de) | Speicherschutzeinrichtung | |
| EP0935214B1 (de) | Chipkarte mit integrierter Schaltung | |
| DE68925452T2 (de) | Multiprozessorsystem mit Verwendung von einem Kommunikationsregister mit den Prozessoren zugeordneten Speicherstellen | |
| DE3415027C2 (de) | ||
| DE69316944T2 (de) | Datenschutzschaltung | |
| DE68919139T2 (de) | Zähler mit einer Vielzahl von vorwählbaren Werten. | |
| DE4303406C2 (de) | Verfahren zur Inhaltsänderung eines Registers eines Mikrocomputers | |
| DE1966991A1 (de) | Ausfallgesicherte datenverarbeitungsanlage | |
| EP0214390A1 (de) | Freigabeverfahren für einen zugriffskontrollierten Anwenderspeicher und Anordnung zur Durchführung des Verfahrens | |
| DE10039183B4 (de) | Mikrocomputer mit Programmrevisionsfähigkeit | |
| DE3235264A1 (de) | Datenverarbeitungsvorrichtung und -verfahren | |
| DE1574994B2 (de) | Digitalrechner mit ueberprueftem unterprogrammaufruf | |
| DE1940296C3 (de) | Einrichtung in elektronischen Datenverarbeitungsmaschinen zum Schutz des Steuerprogramms |
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 |