[go: up one dir, main page]

DE3048365A1 - Speicherschutzsystem und datenverarbeitungssystem mit einem solchen speicherschutzsystem - Google Patents

Speicherschutzsystem und datenverarbeitungssystem mit einem solchen speicherschutzsystem

Info

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
Application number
DE19803048365
Other languages
English (en)
Other versions
DE3048365C2 (de
Inventor
Joseph B. 10033 New York Heinemann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Timeplex Inc
Original Assignee
Timeplex Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Timeplex Inc filed Critical Timeplex Inc
Publication of DE3048365A1 publication Critical patent/DE3048365A1/de
Application granted granted Critical
Publication of DE3048365C2 publication Critical patent/DE3048365C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/1425Protection 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

Beschreibung
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.
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
.*?*, Ausführungsform möglich: Wenn Schreibzyklen in der ent-
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.
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.
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
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)

  1. Patentansprüche
    Speicherschutzsystem 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/0794
    ORfGfNAL !MSPECTED
  2. 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. 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. 4. Speicherschutzsystem nach Anspruch 3, dadurch gekennzeichnet, daß die vorgegebene Zahl Eins ist.
  5. 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. 6. Speicherschutzsystem nach Anspruch 5, dadurch gekennzeichnet, daß sich die vorgegebenen Adressen in dem ungeschützten Bereich befinden.
  7. 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. 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/0794
    30A8365
  9. 9. Speicherschutz-System nach Anspruch 8, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus eine Adresse in dem ungeschützten Pereich hat.
  10. 10. Speicherschutzsystem nach Anspruch 9, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus ein Schreib-Zyklus ist.
  11. 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. 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. 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. 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 4
    nen 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. 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. 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. 17. Datenverarbeitungssystem nach Anspruch 16, dadurch gekennzeichnet, daß die vorgegebene Zahl Eins ist.
  18. 18. Datenverarbeitungssystem nach einem der Ansprüche 13
    bis 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. 19. Datenverarbeitungssystem nach Anspruch 18, dadurch gekennzeichnet, daß sich die vorgegebene Adresse in dem ungeschützten Bereich befindet.
  20. 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. 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. 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. 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. 24. Datenverarbeitungssystem nach Anspruch 23, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus eine Adresse in dem ungeschützten Bereich (16) hat.
  25. 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. 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. 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. 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. 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. 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. 31. Datenverarbeitungssystem nach Anspruch 30, dadurch gekennzeichnet, daß die vorgegebene Zahl Eins ist.
    130037/079 4
    — V
  32. 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. 33. Datenverarbeitungssystem nach einem der Ansprüche 27 bis 32, dadurch gekennzeichnet, daß der vorgegebene Zugriff-Zyklus ein Schreibzyklus ist.
  34. 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. 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. 36. Datenverarbeitungssystem nach einem der Ansprüche
    27 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. 37. Datenverarbeitungssystem nach einem der Ansprüche
    27 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. 38. Datenverarbeitungssystem nach einem der Ansprüche 27 bis 37, dadurch gekennzeichnet, daß wenigstens zwei
    1 3 0 0 37 f CT7 9
    Zugriff-Zyklen registriert werden, von denen jeder eine vorgegebene Adresse hat und von denen wenigstens einer ein Schreibzyklus mit vorgegebenen Daten ist.
    130037/079 4
DE19803048365 1980-02-21 1980-12-20 Speicherschutzsystem und datenverarbeitungssystem mit einem solchen speicherschutzsystem Granted DE3048365A1 (de)

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)

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

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

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

Patent Citations (2)

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