DE3048365C2 - - Google Patents

Info

Publication number
DE3048365C2
DE3048365C2 DE3048365A DE3048365A DE3048365C2 DE 3048365 C2 DE3048365 C2 DE 3048365C2 DE 3048365 A DE3048365 A DE 3048365A DE 3048365 A DE3048365 A DE 3048365A DE 3048365 C2 DE3048365 C2 DE 3048365C2
Authority
DE
Germany
Prior art keywords
memory
write
data
address
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE3048365A
Other languages
English (en)
Other versions
DE3048365A1 (de
Inventor
Joseph B. New York N.Y. Us 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 Rochelle Park Nj Us
Original Assignee
Timeplex Inc Rochelle Park Nj Us
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 Rochelle Park Nj Us filed Critical Timeplex Inc Rochelle Park Nj Us
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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/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

Description

Die Erfindung betrifft ein Speicherschutzsystem gemäß dem Oberbegriff des Anspruchs 1, insbesondere für kritische Daten in einem solchen Datenverarbeitungssystem, mit dem das versehentliche Einschreiben von Daten in einen Bereich eines Lese/Schreib-Speichers, der kritische Daten enthält, vermieden werden soll.
Mit dem Begriff "Kritische Daten" sind beispielsweise temporär gespeicherte Daten gemeint, die gar nicht oder nur mit großem Aufwand regeneriert werden können; ein einfaches Beispiel für solche "kritische Daten" ist die Buchführung über die Rechenzeit in der letzten Woche, die beispielsweise für die Abrechnung wesentlich ist; diese Daten können nur regeneriert werden, wenn die gesamten Rechnungen nochmals durchgeführt werden, was wiederum davon abhängt, ob noch Unterlagen über diese Rechenzeit, beispielsweise im Speicher, vorhanden sind; wenn auch diese Daten über die verschiedenen durchgeführten Rechnungen aus Versehen gelöscht worden sind, besteht kein Zugriff mehr zu diesen Daten, d h., ihre Regenerierung ist auch mit großem Aufwand nicht mehr möglich.
Der Begriff "Datenverarbeitungssystem" soll hier jedes System umfassen, das wenigstens einen Lese/Schreib-Speicher, der im folgenden auch als "RAM" bezeichnet werden soll, zusammen mit einem Steuermechanismus für den Zgriff zu dem Speicher enthält. Im allgemeinen ist der Steuermechanismus eine Zentraleinheit (central processing unit=CPU) oder ein Mikroprozessor, wobei das Gesamtsystem Adressen- und Daten- Leitungen bzw. -Busse und eine Steuerleitung für die Auswahl von Lese- oder Schreib-Zyklen enthält. Bei einem solchen Datenverarbeitungssystem kann es sich also um einen Mikrocomputer oder um ein Mikrocomputer enthaltendes Produkt handeln, wie beispielsweise einen Mikrowellenofen, eine Einrichtung zur Überwachung von Patienten usw.
Es ist bekannt, daß alle Datenverarbeitungssysteme dieses Typs gelegentlich "zusammenbrechen". Ein solcher Zusammenbruch kann durch viele Faktoren verursacht werden, beispielsweise durch Spannungsstöße auf der Netzleitung, statische Entladungen des Bedienungspersonals, kleine Softwarefehler und weiche dynamische RAM-Fehler, die auf verstreute Alpha- Teilchen zurückzuführen sind. Selbst Systeme, die eine Batterieresereve enthalten und einen Kernspeicher benutzen, sind nicht immun gegen solche Zusammenbrüche. Sobald die Zentraleinheit "ihren Kopf verliert" und damit außer Kontrolle gerät, besteht die Gefahr, daß sie zu einem Abschnitt des Programms springt, der das Einschreiben in den Speicher steuert. Wenn dies passiert, sind die vorher gespeicherten Daten verloren, so daß dieses Datenverarbeitungssystem erneut gestartet werden muß.
Es gibt jedoch bestimmte Daten, die zu vielen verschiedenen Arten von Schwierigkeiten führen, wenn sie verloren gehen. Ein typischer Fall ist der eines komplizierten, statistischen Multiplexers. Ein statistischer Multiplexer ordnet dynamisch Subkanäle oder Zeitscheiben auf einer statistisch verteilten Basis zu, um den Datendurchsatz dadurch zu erhöhen, daß Zeitscheiben nur für die Kanäle vorgesehen sind, die aktiv Daten übertragen. Derartige Multiplexer wirken in Wirklichkeit nicht nur als Multiplexer, sondern zugleich als Datenkonzentratoren. Eine solche Einrichtung kann On-line- Informationen von vielen Quellen übertragen, wobei ihr Betrieb oft durch manuell eingegebene Daten gesteuert wird. Wenn ein solcher Multiplexer zusammenbricht und diese kritischen Daten verloren gehen, bleibt diese Einrichtung (die sehr oft ohne Bedienungspersonal arbeitet) außer Betrieb, bis eine gut ausgebildete Bedienungsperson zur Verfügung steht, um die Steuerdaten über Steuerpult-Schalter wieder manuell einzugeben. Ein solcher Multiplexer muß also gegen die zufällige Löschung bestimmter kritischer Daten in dem Lese/Schreib-Speicher geschützt werden.
Es gibt auch andere adressierbare (und sogar nicht adressierbare) Bauelemente, die ebenfalls geschützt werden müssen. Beispielsweise kann ein System einen selbsthaltenden Schalter (latch) enthalten, dessen Inhalt kritisch für den Betrieb des Systems ist. In ähnlicher Weise kann eine Eingabe/ Ausgabe-Einheit vorhanden sein, die ebenfalls zu einer Gefährdung des Betriebs des Systems führt, wenn eine andere Einheit zufällig Zugriff zu ihr erhält.
Üblicherweise wird ein Speicherbereich mit kritischen Daten mittels eines Schutzschalters gegen diese Störungen geschützt. Nur wenn der Schalter manuell verstellt wird, um den Schutz aufzuheben, können Daten in die RAM-Adressen eingeschrieben werden, die von dem Schalter gesteuert werden; wen sich der Schalter im "Schutzzustand" befindet, werden Schreibimpulse abgeblockt, so daß sie den Speicher nicht erreichen können. Diese herkömmliche Technik ist zweifelsfrei sehr sicher; sie ist jedoch mit dem Nachteil verbunden, daß sie auf einem Eingriff des Bedienungspersonals beruht, was wegen des nie ganz auszuschließenden "menschlichen Versagens" immer problematisch ist; außerdem ist immer in Eingriff durch eine Bedienungsperson erforderlich, was ebenfalls zu Schwierigkeiten führt.
Außerdem gibt es auch Software-Auswahlroutine, die im wesentlichen in Software/Hardware-Entwicklungssystemen gefunden werden. Bei einem solchen System muß der Benutzer Zugriff zu den Bereichen des RAM haben, die geschützt werden sollen. Eine Software-Auswahlroutine überprüft dann alle Anforderungen für den Zugriff zu dem RAM, um etwas in diesen Speicher einzuschreiben, und weist die Anforderungen zurück, die verboten sind. Diese Art des Speicherschutzes ist jedoch bei Zusammenbrüchen des Systems nicht wirksam, da die gesamte Technik auf dem richtigen Betrieb der Software-Auswahlroutine beruht, die wie alle anderen Routinen nach einem Zusammenbruch jedoch nicht mehr sicher und zuverlässig arbeitet. Weitere Schwierigkeiten treten bei einigen Mikroprozessoren auf, die nach dem Auftreten eines ungültigen Betriebscodes in dem Instruktionsregister (ein solcher Zustand kann auf einen Zusammenbruch zurückzuführen sein) vorgegebene Daten-Bytes in jede Speicherstelle einschreiben (bei dem Mikroprozessor 6800 von Motorola handelt es sich beispielsweise um ein hexadezimales FF). Jede Speichersicherung, die nur auf Software beruht, kann also nicht effektiv arbeiten.
Eine dritte Ausführungsform eines herkömmlichen Speicherschutzes wird in einigen Terminals mit Kathodenstrahlröhren, also Bildschirmen, sowie Computern eingesetzt, wobei in Abhängigkeit davon, ob ein bestimmtes Byte (oder Block) gechützt ist oder nicht, ein extra Bit (oder mehrere Bits) gesetzt oder zurückgesetzt werden. Sobald ein Schreibzyklus versucht wird, erhält man automatisch Zugriff zu dem entsprechenden Bit für das adressierte Byte, so daß dieses Bit gelesen werden kann; wenn das Bit für "Schreibschutz" gesetzt wird, blockiert es den Schreibimpuls und verursacht in einigen Systemen eine Unterbrechung, um den unzulässigen Schreibversuch zu kennzeichnen, also ein "Flag" zu setzen. Dieses System hat verschiedene Nachteile. Zunächst ist kein Bereich des Speichers immer bedingungslos geschützt; da der Schutzstatus unter Software-Steuerung erfolgt, ist er weniger zuverlässig. Zweitens gibt es keine automatische Erneuerung des Schutzes, nachdem während seines Schreibzyklus der Zugriff zu einer geschützten Adresse erfolgt ist. Wenn die geschützte Adresse nach dem erforderlichen Schreibzyklus "unversperrt", also ungeschützt, bleibt, können anschließend aus Versehen weitere Daten in den Speicherbereich eingeschrieben und damit die gespeicherten Daten gelöscht werden. Drittens ist zusätzliche Hardware erforderlich, da im allgemeinen ein zusätzliches Bit für jedes zu schützende Byte benötigt wird; es muß auch zusätzliche Software eingesetzt werden, um das Setzen und Rücksetzen aller Schutzbits zu steuern. Und viertens sind solche Systeme nicht "zusammenbruchsicher", weil sie keine speziellen "Schlüssel" benötigen, um die Aufhebung der Sicherung zu steuern.
Ein gattungsgemäßes Speicherschutzsystem ist aus der DE- OS 19 52 158 bekannt. Aus dieser Druckschrift ist ein Speicherschutzverfahren bekannt, welches es erlaubt, einen kritische Daten enthaltenden Bereich derart zu sperren, daß bei einem versuchten Zugriff der Zentralen Verarbeitungseinheit oder CPU auf diese Daten ein Fehlersignal erzeugt wird und der CPU der Zugriff verwehrt wird. Gemäß der aus der DE-OS 19 52 158 bekannten Schaltung ist es vorgesehen, die Grenzen des zu schützenden Speicherbereiches in Grenzwertregistern abzuspeichern und bei jedem Speicherzugriff mittels Komparatoren zu überprüfen, ob die von der CPU erzeugte Adresse in einen zu schützenden Speicherbereich fällt.
Das diesem Speicherschutzverfahren zugrundeliegende Speicherschutzsyystem weist jedoch den Nachteil auf, daß beim Start des Gesamtsystems zunächst die Grenzregister mit den Grenzwerten geladen werden müssen und daß während dieser Zeit kein Speicherschutz besteht. Vielmehr erfolgt die Erzeugung des Schutzbereiches unter Software-Steuerung und ist somit weniger zuverlässig.
Wenn nämlich die in den Grenzregistern befindlichen Daten fehlerhaft sind, sei es, daß sie beim Urstart fehlerhaft geladen wurden, sei es, daß sie während des Betriebes versehentlich geändert wurden, dann besteht der gewünschte Speicherschutz nicht mehr, ohne daß die CPU hiervon etwas "merkt".
Ein ähnliches Speicherschutzsystem ist aus der US-PS 37 42 458 bekannt. Dieses Speicherschutzsystem weist die gleichen Nachteile wie das aus der DE-OS 19 52 158 bekannte Speicherschutzsystem auf.
Demgegenüber ist es Aufgabe der vorliegenden Erfindung, ein Speicherschutzsystem gemäß dem Oberbegriff des Anspruchs 1 zu schaffen, bei welchem die Schutzmaßnahmen zuverlässig und dauerhaft bestehen, ohne daß ein Eingriff einer Bedienungsperson erforderlich wäre und ohne daß beim Kaltstart Initialisierungsroutinen durchlaufen werden müßten.
Diese Aufgabe wird durch die kennzeichnenden Merkmale des Anspruchs 1 gelöst. Vorteilhafte Weiterbildungen ergeben sich aus den Unteransprüchen.
Gemäß den Prinzipien der vorliegenden Erfindung ist Hardware vorgesehen, um das Auftreten vorbestimmter Speicherzugriffzyklen zu registrieren. Im allgemeinen ist die Hardware so ausgelegt, daß sie einen oder mehrere Schreibzyklen feststellt, die in Beziehung zu vorgegebenen Adressen und Daten stehen. Üblicherweise wird der Zugang der Schreibimpulse zu dem Speicherbereich mit den kritischen Daten gesperrt; nach dem Auftreten von vorgegebenen Schreibzyklen wird jedoch ein Schreibzyklus zu dem Speicherbereich mit den kritischen Daten zugelassen. Die Schreibzyklen, die auf diese Weise den Speicherbereich mit den kritischen Daten "aufsperren", können "fiktiv" in dem Sinne sein, daß sie gar nichts in irgendeine Speicheradresse einschreiben.
Der einzige Grund für diese vorgegebenen Speicherzugriffe liegt darin, folgendes zu gewährleisten: Wenn die Zentraleinheit dabei ist, einen Schreibzyklus in dem geschützten Speicherbereich zu steuern, dann "weiß sie, was sie macht". Nach der Feststellung der vorgegebenen Speicherzugriffzyklen ist nur eine vorgegebene Zahl von Schreibzyklen (bei der dargestellten Ausführungsform der Erfindung ein Schreibzyklus) zugelassen für den Zugriff zu dem geschützten Speicherbereich (Schreibzyklen in dem ungeschützten Speicherbereich und Lesezyklen in beiden Speicherbereichen können immer ohne vorherige Feststellung, daß die Speicherzugriffzyklen entsperrt worden sind, durchgeführt werden).
Es muß jedoch darauf hingewiesen werden, daß die Entsperrung noch programmgesteuert ist, es besteht also noch die Gefahr, daß ein Zusammenbruch, der sich auf die Durchführung der Entsperrungsroutine auswirkt, auch den geschützten Speicherbereich entsperrt. Die Hardware, die die vorgegebenen Speicherzugriffzyklen erkennt, "weiß nicht", ob die Softwareroutine, die sie steuert, zufällig oder bewußt eingegeben wurde. Trotzdem gibt es aus zwei Gründen einen Schutz für die kritischen Daten: Sobald die Schutzhardware feststellt, daß das Einschreiben in den geschützten Speicherbereich zulässig ist, ermöglicht sie nur eine begrenzte Zahl solcher Schreibvorgänge. Bei einer bevorzugten Ausführungsform der Erfindung ist nur ein einziger Schreibzyklus erlaubt, so daß maximal ein Element der kritischen Daten nach jedem Zusammenbruch gelöscht werden kann.
Wichtiger noch ist die zweite Tatsache, daß nur der Schreibzyklus, der der Entsperrung der Hardware unmittelbar folgt, Zugriff zu dem geschützten Speicherbereich haben kann. Der Adressenbereich des geschützten Bereiches ist üblicherweise viel kleiner als der des ungeschützten Bereiches. Wenn der folgende Schreibzyklus zufällig Zugriff zu einer Adresse in dem viel größeren, ungeschützten Speicherbereich hat, dann gehen keine kritischen Daten verloren; sobald dieser einzige Schreibzyklus erfolgt ist, werden folgende Schreibzyklen in den geschützten Speicherbereich gesperrt. Ein Zusammenbruch ermöglicht also im Extremfall einen einzigen kritischen Schreibvorgang; wenn die angegebene Adresse jedoch zufällig nicht in dem geschützten Speicherbereich liegt (wie es im allgemeinen der Fall sein dürfte), dann gehen keine kritischen Daten verloren.
Die Erfindung schafft also eine Hardware-Schaltung zum Schutz gegen das zufällige Einschreiben von Daten in einen Speicherbereich, der kritische Daten enthält. Um den Zugriff zu dem Speicherbereich mit den kritischen Daten während eines Schreibzyklus zu ermöglichen, müssen zunächst vorgegebene Speicherzugriffzyklen gesteuert werden, die beispielsweise das Einschreiben von vorgegebenen Daten in eine vorgegebene Adresse enthalten. Nach der Feststellung eines solchen "fiktiven" Schreibzyklus läßt die Hardware zu, daß der nächste Schreibzyklus Zugriff zu dem Speicherbereich mit den kritischen Daten hat.
Der Grundgedanke der vorliegenden Erfindung liegt also darin, daß Hardware vorgesehen ist, um den Speicherbereich zu "entsperren", der kritische Daten enthält. Die Hardware ist so ausgelegt, daß sie bestimmte, vorgegebene Speicherzugriffzyklen feststellt. Die vorgegebenen Zugriffzyklen könnten beispielsweise aus dem Einschreiben mehrerer vorgegebener Datenwerte in mehrere vorgegebene Adressen bestehen. Das tatsächliche Einschreiben der vorgegebenen Daten in die vorgegebenen Adressen ist nicht wesentlich; im allgemeinen würden die wenigen Adressen, die in dieses Verfahren verwickelt sind, nie durch irgendeinen anderen Teil der Software gelesen werden. Wesentlich ist nur, daß die vorgegebenen Zugriffzyklen tatsächlich erfolgen, so daß sie durch die neue Hardware festgestellt werden können. Wenn die vorgegebenen Schreibzyklen durchgeführt werden, "weiß" die Hardware, daß der nächste Schreibzyklus sich auf eine Adresse in dem Speicherbereich mit den kritischen Daten bezieht. Die Hardware läßt dann zu, daß der nächste Schreibzyklus in dem Speicherbereich mit den kritischen Daten durchgeführt werden kann.
Die Erfindung wird im folgenden anhand eines Ausführungsbeispiels unter Bezugnahme auf die schematische Zeichnung näher erläutert, deren einzige Figur eine Ausführungsform der Erfindung darstellt.
Bei der bei dieser Ausführungsform verwendeten zentralen Verarbeitungseinheit (CPU) 10 handelt es sich um den Mikroprozessor 6800, der von Motorola vertrieben wird. Neben vielen anderen Stiftanschlüssen (nicht dargestellt) ist dieser Mikroprozessor mit einem 16 Bit-Adreß-Bus 32, einem 8 Bit-Daten-Bus 34, einem Φ2-Taktimpuls, der während jedes Maschinenzyklus (einschließlich der Speicherzugriffzyklen) auf einen hohen Pegel geht, einer R/- Steuerleitung, die während eines Lesezyklus auf einem hohen Wert und während eines Schreibzyklus auf einem niedrigen Wert ist, mit einem VMA-Ausgang, der auf einen hohen Pegel geht, wenn auf dem Adressenbus eine gültige Adresse vorhanden ist, und mit einer Rücksetzleitung, die zeitweilig auf einen niedrigen Pegel geht, wenn dem System zum ersten Mal Strom zugeführt wird.
In der Zeichnung sind zwei Speichertypen dargestellt (Lesespeicher, die im folgenden als "ROM" bezeichnet werden sollen, und Schreib/Lese-Speicher, die im folgenden als "RAM" bezeichnet werden sollen, wobei der zuletzt erwähnte Speicher geschützte und ungeschützte Bereiche hat). Der RAM 14 ist der geschützte Speicherbereich, der bereits oben erläutert wurde. Wenn sein Steuereingang (EN) auf einen hohen Pegel geht, kann dieser Speicher arbeiten. Wenn gleichzeitig der R/-Eingang auf einem hohen Pegel ist, erfolgt ein Lesezyklus; wenn er sich auf einem niedrigen Pegel befindet, erfolgt ein Schreibzyklus. Die im folgenden zu beschreibende, als Hardware ausgebildete Schutzschaltung verhindert, daß der R/-Eingang auf einen niedrigen Pegel gehen kann, und zwar mit Ausnahme eines einzigen Schreibzyklus, der einer Feststellung von vorgegebenen "Speicher"-Zugriffzyklen folgt. Der Adressenbus 32 und der Datenbus 34 verlaufen zwischen der CPU 10 und dem geschützten RAM 14. Wenn die Adresse auf dem Datenbus eine Speicherstelle in dem geschützten RAM identifiziert, dann werden die Daten auf dem Datenbus während des zugelassenen Zugriffs in den RAM eingeschrieben. Der R/-Eingang ist normalerweise auf einem hohen Pegel, so daß Lesezyklen in dem geschützten RAM immer zugelassen sind; sie finden immer dann statt, wenn das RAM 14 angesteuert und eine Speicherstelle in dem RAM 14 adressiert wird.
Der ungeschützte RAM 16 arbeitet auf ähnliche Weise, jedoch mit dem Unterschied, daß die R/-Steuerleitung von der CPU 10 direkt zu diesem RAM 16 verlängert ist. Die Schreibzyklen für den RAM 16 sind also keinen Beschränkungen unterworfen.
Der Lesespeicher ROM 30 wird im allgemeinen für die Programmspeicherung verwendet, so daß keine Daten eingeschrieben werden können. Dieser ROM hat also einen Ansteuereingang, jedoch keinen R/-Steuereingang.
Der Adressenbus 32 ist auch zu dem Adressendecodierer 12 geführt; der Adressendecodierer wird immer dann in Betrieb gesetzt, wenn die VMA-Leitung 54 auf einen hohen Pegel geht. Einer der drei oberen Ausgänge des Adressendecodierers geht auf einen hohen Pegel, wenn die Adresse auf dem Bus 32 in einem der drei jeweiligen Adressenbereiche der drei Speicher liegt. Ein Adressendecodierer wird dazu verwendet, drei vorgegebene Adressen zu decodieren, zu denen der Zugriff durch die "entsperrende" Software-Routine möglich ist, wie im folgenden erläutert werden soll. Obwohl bei der beschriebenen Ausführungsform der Erfindung der Adressendecodierer auch dazu verwendet wird, die Ansteuersignale für die Speicher zu entwickeln, ist eine solche äußere Decodierung nicht notwendig, wenn der gesamte Speicheradressenbereich klein ist und die Speicher selbst diese Adressendecodierung durch Ausnutzung ihrer Chipauswahleingänge durchführen können. Soweit es die vorliegende Erfindung betrifft, stellt die spezielle Art der Adressendecodierung für die Speicher kein wesentliches Merkmal dar. Die vorliegende Erfindung befaßt sich nicht damit, wie der Zugriff zu den drei Speichern zugeführt wird, sondern bezieht sich nur darauf, wann Schreibzyklen in dem geschützten RAM 14 zugelassen werden. Hierfür ist wiederum das Verständnis der Steuerung des Ausgangs des Verknüpfungsgliedes 36 wesentlich.
Die vorgegebenen Speicherzugriffzyklen, die die Hardware- Entriegelung steuern, können in vielen verschiedenen Ausführungsformen eingesetzt werden. Dabei sollte mindestens eine vorgegebene Adresse auf der Adressenleitung erscheinen, um den geschützten RAM zu entsperren. Dieser vorgegebene Speicherzugriffzyklus kann ein Lesezyklus sein, wobei die entsprerrende Hardware nichts anderes macht, als zu überprüfen, daß die entsperrende Adresse auf dem Bus 32 erscheint. Es ist jedoch besser, daß dieser eine vorgegebene Speicherzugriffzyklus ein Schreibzyklus ist, der nicht nur eine vorgegebene Adresse, sondern auch vorgegebene Daten umfaßt. In diesem Fall kann die entsperrende Hardware eine zusätzliche Überprüfung durchführen. Dadurch wird eine größere Sicherheit gewährleistet, daß die entsperrende Software-Routine nicht nur dann, wenn eine spezielle entsperrende Adresse auf dem Adressenbus erscheint, sondern auch, wenn spezielle, entsperrende Daten auf dem Datenbus erscheinen, eingegeben wird.
In diesem Zusammenhang wird auf folgendes hingewiesen: Obwohl die zur Aufhebung der Sperre dienende Schaltungsanordnung die richtige Folge von Adressen auf dem Adressenbus feststellt, um den geschützen RAM "aufzusperren", ist der Zugriff zu den Speicherstellen tatsächlich möglich, da die Adressenbusse mit den Speichern verbunden sind und die Adressen, die für die aufsperrende Hardware benötigt werden, tatsächlich innerhalb der Adressenbereiche der Speicher liegen können. Dies hat jedoch keine Bedeutung. Wenn die aufsperrenden Adressencodes durch die Zentraleinheit während der Lesezyklen ausgegeben werden, werden die von den Speichern ausgelesenen Daten einfach ignoriert. Als Alternative hierzu ist auch folgende Ausführungsform möglich: Wenn Schreibzyklen in der entsperrenden Software-Routine verwendet werden, können Daten während des Aufsperrens in den ungeschützten RAM eingeschrieben werden. Auch dies hat keine Bedeutung, weil in einem solchen Fall die jeweiligen Speicherstellen für keinen anderen Zweck verwendet wüden. Es ist sogar möglich, daß einige der Adressen, die in der aufsperrenden Routine verwendet werden, die Adressen sind, die Zugriff zu dem geschützten RAM haben (obwohl dies bei der dargestellten Ausführungsform der Erfindung nicht der Fall ist). Da während des Aufsperrens selbst nichts in den geschützten RAM geschrieben werden kann (ein einziger Schreibvorgang in dem geschützten RAM ist nur am Ende des Aufsperrens zugelassen), hat das Auftreten einer Adresse, die in dem geschützten RAM liegt, auf dem Adressenbus sogar während eines Schreibzyklus keine Wirkung, da der R/-Eingang des geschützten RAM auf einem hohen Pegel bleibt.
Bei der dargestellten Ausführungsform der Erfindung ist das Aufsperren des geschützten RAM 14 mit drei Schreibzyklen verbunden, und zwar an drei vorgegebenen hexadezimalen Adressen - $ 8780, $ 8790 und $ 87A0 (das Symbol $ kennzeichnet die folgende Adresse als eine hexadezimale Adresse). Obwohl die Schreibvorgänge für die letzten beiden Adressen keine speziellen Daten erfordern, sperrt die Hardware nur dann auf, wenn von der Zentraleinheit während eines Schreibvorgangs zu der Adresse $ 8780 ein Datenbyte ausgegeben wird, das ein Bit mit dem Wert 1 an der Bitstelle 2 (D 1) des Datenbusses enthält. Während dieses Schreibzyklus haben die Datenwerte auf den Datenleitungen D 0 und D 2-D 7 keine Bedeutung. (Es muß jedoch darauf hingewiesen werden, daß auf folgende Weise eine zusätzliche Verifikation möglich ist: Während des Schreibvorgangs zu der Adresse $ 8780 und sogar zu den beiden anderen vorgegebenen Adressen muß ein bestimmtes vorgegebenes Byte auf dem Datenbus erscheinen.)
Wenn der Rücksetzeingang bei "Netz ein" der CPU 10 durch eine Rücksetzschaltung 50 (jede herkömmliche Schaltung kann verwendet werden) auf einen niedrigen Pegel gepulst wird, wird der Impuls auch an den vorher gesetzten Eingang eines JK-Flip-Flops 18 angelegt. Wenn also das System erstmals eingeschaltet wird, setzt das niedrige Eingangssignal an dem vorher gesetzten Eingang den Flip- Flop in den Zustand 1, wobei der Ausgang auf einen niedrigen Pegel geht. Dieser Ausgang ist mit dem Löscheingang eines JK-Flip-Flops 24 verbunden, dessen Ausgang Q dadurch auf einem niedrigen Pegel gehalten wird. Da dieser Ausgang an einen Eingang des Verknüpfungsgliedes 36 angeschlossen ist, bleibt der Ausgang des Verknüpfungsgliedes auf einem hohen Pegel, um das Einschreiben in den geschützten RAM 14 zu sperren.
Wenn die CPU die aufsperrende Software-Routine eingibt, steuert sie zunächst einen Schreibzyklus an der Adresse $ 8780 mit einem Datenbyte, das an der Bitstelle D 1 ein Bit mit dem Wert 1 enthält. Die Datenleitung D 1 ist mit dem Eingang D des D-Typ-Flip-Flops 22 verbunden. Wenn der Adressendecodierer 12 die Adresse $ 8780 decodiert, legt er ein positives Potential an einen Eingang eines Verknüpfungsgliedes 52 an. Der Φ2-Puls wird dem anderen Eingang zugeführt, so daß der Ausgang des Verknüpfungsgliedes auf einen niedrigen Pegel geht. Wenn der Φ2-Impuls endet (zu diesem Zeitpunkt sind die Datenleitungen stabil), geht das Ausgangssignal des Verknüpfungsgliedes auf einen hohen Pegel, und die positive Stufe taktet den Flip-Flop 22. Dadurch wird der Flip-Flop gesetzt, so daß sein Ausgang Q auf einen hohen Pegel geht. Dieser steuert einen Eingang eines Verknüpfungsgliedes 20, so daß dieser ebenfalls auf einen hohen Pegel geht. Ein weiterer Eingang des Verknüpfungsgliedes 20 ist an den Φ2-Taktausgang der Zentraleinheit angeschlossen, der während jedes Maschinenzyklus auf einen hohen und einen niedrigen Pegel geht. Ein dritter Eingang des Verknüpfungsgliedes, und zwar der Eingang, der mit dem Ausgang eines Inverters 42 verbunden ist, geht während aller Schreibzyklen auf einen hohen Pegel, wenn der R/-Ausgang der CPU auf einem niedrigen Pegel und damit der Ausgang des Inverters auf einem hohen Pegel ist. Der Ausgang des Verknüpfungsgliedes 20 bleibt jedoch auf einem niedrigen Pegel, weil sein vierter Eingang an einen Ausgang des Adressendecodierers angeschlossen ist, der auf einem niedrigen Pegel bleibt. Die Nettowirkung des ersten Schreibzyklus der Aufsperr-Routine liegt also einfach darin, daß der Ausgang Q des Flip-Flops 22 auf einen hohen Pegel geht; er bleibt auf diesem hohen Pegel, um einen Eingang des Verknüpfungsgliedes 20 sogar nach der Beendigung des Schreibzyklus anzusteuern. Der Ausgang des Flip-Flops muß auf einem hohen Pegel bleiben, bis der dritte vorgegebene Schreibzyklus der Aufsperr-Routine erfolgt, um den Zugriff zu dem geschützten RAM 14 zu ermöglichen; er bleibt auf dem hohen Pegel unter der Voraussetzung, daß in der Zwischenzeit kein weiterer Schreibvorgang zu der Adresse $ 8780 mit einem Datenbyte erfolgt, dessen D 1-Bit einen Wert von Null hat.
Die Signale Φ2 und die invertierten R/-Signale werden beide auf die beiden Eingänge des Verknüpfungsgliedes 38 gegeben. Dadurch geht während jedes Schreibzyklus der Ausgang des Verknüpfungsgliedes 38 auf einen hohen Pegel; an der hinteren Flanke des Impulses an dem Ausgangssignal des Verknüpfungsgliedes wird der Flip-Flop 18 getaktet. Ein Eingang des Verknüpfungsgliedes 40 ist mit einem Ausgang des Adressendecodierers verbunden, der nur während eines Speicherzyklus, der den Zugriff zu der Adresse $ 8790 betrifft, auf einen hohen Pegel geht. Damit ist also der Ausgang des Verknüpfungsgliedes 40 normalerweise auf einem niedrigen Pegel. Wenn die Eingänge J und K desFlip-Flops 18 beide auf einem niedrigen Pegel sind, führt das Takten des Flip-Flops 18 zu keiner Zustandsänderung; der Ausgang bleibt auf einem niedrigen Pegel, so daß der Ausgang Q des Flip-Flops 24 auf einem niedrigen Pegel bleibt. Wenn jedoch die Adresse $ 8790 dem Adressenbus während des zweiten Schreibzyklus der Aufsperr-Routine zugeführt wird, steuert der Adresendecodierer einen Eingang des Verknüpfungsgliedes 40 an. Da diese Adresse während eines Schreibzyklus ausgegeben wird, steuert der Inverter 42 den anderen Eingang an, und der Ausgang des Verknüpfungsgliedes 40 geht auf einen hohen Pegel. An dem Ende des Schreibzyklus bewirkt die Zentraleinheit, daß der Φ2-Impuls auf einen niedrigen Pegel geht, kurz bevor der R/-Ausgang zu seinem normalerweise hohen Zustand zurückkehrt. Damit fällt also das Ausgangssignal des Verknüpfungsgliedes 38 ab und taktet den Flip- Flop 18, obwohl der Ausgang des Verknüpfungsgliedes 40 noch auf einem hohen Pegel ist. Wenn sich ein niedriges Potential an dem Eingang J und ein hohes Potential an dem Eingang K befindet, wird der Flip-Flop in den Zustand 0 gebracht, und sein Ausgang geht auf einen hohen Pegel. Dies gibt den Löscheingang des Flip-Flops 24 frei, der nun seinen Zustand ändern kann. Die beiden ersten Schreibzyklen steuern also die Ansteuerung eines Eingangs des Verknüpfungsgliedes 20 und die Freigabe des Flip-Flops 24, so daß er gesetzt werden kann. Es spielt keine Rolle, welcher der beiden gerade beschriebenen Schreibzyklen zuerst auftritt, solange sie beide vor dem dritten vorgegebenen Speicherzugriffzyklus der Aufsperr- Routine erfolgen.
Der dritte vorgegebene Speicherzugriffzyklus ist ein Schreibvorgang zu der Adresse $ 87A0; wie bei dem Schreibvorgang zu der Adresse $ 8790 sind die Daten, die auf dem Datenbus ercheinen, nicht wesentlich. Während dieses dritten Schreibzyklus steuert der Adressendecodierer 12 den obersten Eingang des Verknüpfungsgliedes 20 an. Der zweite Eingang wird noch durch den Eingang Q des Flip-Flops 22 angesteuert; die beiden anderen Eingänge des Verknüpfungsgliedes werden durch den Taktimpuls Φ2 und den R/-Schreibimpuls angesteuert. Das Ausgangssignal des Verknüpfungsgliedes 20 geht also auf einen hohen Wert, und an der hinteren Flanke des Impulses wird der Flip-Flop 24 getaktet. Nun, da der Löscheingang des Flip- Flops nicht auf einem niedrigen Pegel gehalten wird, führen das hohe Potential an dem Eingang J und das niedrige Potential an dem Eingang K zum Setzen des Flip-Flops, so daß der Ausgang Q auf einen hohen Pegel geht.
Der Ausgang Q ist mit einem Eingang des Verknüpfungsgliedes 36 verbunden, wie oben beschrieben wurde. Das Verknüpfungsglied wird also angesteuert, so daß sein Ausgang beim nächsten Schreibzyklus auf einen niedrigen Pegel geht, wenn der Ausgang des Inverters 42 auf einen hohen Pegel geht. Wenn also dieser nächste Schreibzyklus den Zugriff zu einer Adresse in dem geschützten RAM 14 steuert, wird das Byte auf dem Datenbus in die adressierte Speicherstelle geschrieben. Wenn die adressierte Speicherstelle sich nicht in dem geschützten RAM 14 befindet, wird der RAM 14 nicht angesteuert, so daß nichts eingeschrieben wird, obwohl sein R/-Eingang niedrig gepulst wird. (Es wird darauf hingewiesen, daß der dritte Schreibzyklus der Aufsperr-Routine endet und der Ausgang des Inverters 42 auf einen niedrigen Pegel geht, bevor der Flip-Flop 24 in den Zustand 1 gesetzt wird. Dadurch wird das Verknüpfungsglied 36 nur dann angesteuert, wenn der Zyklus beendet ist, so daß nur während des nächsten Schreibzyklus etwas in den geschützten RAM eingeschrieben werden kann.)
Nach dieser Aufsperrung des geschützten Bereiches wird nur ein einziger Schreibzyklus zugelassen. Dabei ist also erforderlich, daß der Ausgang Q des Flip-Flops 24 nach dem einzigen zugelassenen Schreibzyklus auf einen niedrigen Pegel gebracht wird. Dies wird automatisch gesteuert, indem einfach der Ausgang Q des Flip-Flops 24 mit dem Eingang J des Flip-Flops 18 verbunden wird. Das Verknüpfungsglied 40 wird durch den Adressendecodierer nicht angesteuert, so daß sein Ausgang, der Eingang K des Flip-Flops 18, während des zugelassenen Scheibzyklus auf einem niedrigen Pegel bleibt (aus diesem Grund sollte sich die Adresse $ 8790 nicht im Adressenbereich des geschützten RAM befinden). Weil der Eingang J auf einem hohen Pegel ist, geht der Ausgang des Verknüpfungsgliedes 38 an der hinteren Flanke des Impulses Φ2 auf einen niedrigen Pegel, so daß der Flip-Flop getaktet wird. Der Ausgang geht nun auf einen niedrigen Pegel und löscht den Flip- Flop 24 wieder. Damit ist also die Hardware zu ihrem ursprünglichen gesperrten Zustand zurückgestellt, nachdem nur ein einziger Schreibzyklus zugelassen worden ist. Die beiden Flip-Flops 18 und 24 werden während des Schreibzyklus, der dem Aufsperren unmittelbar folgt, in ihren Ausgangszustand zurückgestellt, und zwar unabhängig davon, ob es der geschützte RAM war oder nicht, zu dem tatsächlich der Zugriff erfolgt ist. Damit werden sogar bei einem Zusammenbruch des Systems und bei der Druchführung der Aufsperr-Routine, die einen einzigen Schreibvorgang zu dem geschützten RAM ermöglicht, die Daten nur dann gelöscht, wenn während des zugelassenen Schreibzyklus gerade dieser RAM adressiert wird.
Obwohl die Flip-Flops 18 und 24 auf diese Weise zurückgesetzt werden, ist der Flip-Flop 22 noch gesetzt. Er wird am Ende der Aufsperr-Routine zurückgesetzt, indem ein Schreibvorgang zu der Adresse $ 8780 mit einem Datenbyte durchgeführt wird, dessen D 1-Bit den Wert 0 hat. Genauso, wie der Flip-Flop ursprünglich gesetzt wurde, wird er jetzt zurückgesetzt, so daß sein Ausgang Q auf einen niedrigen Pegel geht, um die Hardware vollständig auf ihren Anfangszustand zurückzubringen. (Wird dieser Schritt nicht durchgeführt, dann treten aufeinanderfolgende Aufsperrungen des geschützten RAM auf, wenn Einschreibvorgänge zu den Adressen $ 8790 und $ 87A0 gemacht werden, ohne daß ein Aufschreibvorgang zu der Adresse $ 8780 erforderlich ist.)
Anstelle der getrennten Verwendung von Flip-Flops und Verknüpfungsgliedern ist es bei einigen Systemen möglcih, die benötigte Hardware zu verringern. Dies kann beispielsweise bei Systemen geschehen, die einen universellen Synchron/ Asynchron-Empfänger/Sender (USART) als Multiplexer aufweisen. Ein derartiger USART ist beispielsweise der Typ 8251A der Firma Intel, wobei auf die bei der Firma Intel erhältliche Funktionsbeschreibung dieses Bausteines "Microsystem Components Handbook, volume 2" vollinhaltlich Bezug genommen wird. Es sei hier eine Schaltung angenommen, bei der der USART 8251A für andere Zwecke verwendet wird und sein Ausgang DTR noch zur Verfügung steht. In einem solchen Fall wäre das Flip-Flop 22 nicht erforderlich. Der erste vorgegebene Speicherzugriff könnte durch Setzen des DTR-Bits des USART (mit der Adresse $ 8780) in den Zustand 1 durchgeführt werden, wobei der Ausgang DTR mit dem Verknüpfungsglied 20 verbunden ist. Am Ende der aufsperrenden Software-Routine würde nochmals ein Zugriff zu dem USART erfolgen; diesmal würde sein Ausgang DTR abgeschaltet werden. In bezug auf dieses System darf auf folgendes hingewiesen werden: Nur die Adressen $ 8790 und $ 87A0 wären "fiktiv", während die Adresse $ 8780 den Zugriff zu dem USART nicht nur in Verbindung mit dem Aufsperren des geschützten RAM, sondern auch zur Steuerung des normalen Betriebs des Multiplexers hat.
Bei der dargestellten Ausführungsform der vorliegenden Erfindung steuert die folgende Subroutine (WRCMOS - schreibt zu CMOS geschütztem RAM) das Aufsperrverfahren:
Prior to Entry into Unlock Procedure, Data to be Written is in ACC. A and Write Address is in X Register
Diese Routine in Assembler-Sprache ist für die Benutzung in dem Mikroprozessor 6800 ausgelegt. Der Anfangskommentar erklärt, daß während des normalen Betriebes, bevor die Subroutine auch nur aufgerufen wird, die Adresse in dem geschützten RAM, zu der der Zugriff beabsichtigt ist, in das X-Register geladen wird, während die zu schreibenden Daten in den Akkumulator A geladen werden.
Die Subroutine lädt zunächst den Akkumulator B (im Sofortbetrieb) mit dem Byte $ 02; dabei handelt es sich um ein Datenbyte, das in der Bit-Stelle D 1 ein Bit mit dem Wert 1 hat, wie es benötigt wird, um den Flip-Flop 22 zu setzen. Die nächste Instruktion steuert die Speicherung des Bytes in dem Akkumulator B an der Adresse $ 8780, d. h., der Flip- Flop 22 wird gesetzt, wie es oben beschrieben wurde.
Die beiden nächsten Schreibvorgänge steuern die Speicherung der Daten in dem Akkumulator B an den Adressen $ 8790 und $ 87A0. Wie oben beschrieben wurde, sind während dieser Schreibzyklen bei der dargestellten Ausführungsform der vorliegenden Erfindung die tatsächlich auf dem Datenbus ausgegebenen Daten nicht wesentlich, und das gleiche Datenbyte wird während aller drei "Schreibschlüssel"-Vorgänge ausgegeben.
Nachdem die ersten vier Instruktionen durchgeführt worden sind, wird der geschützte RAM für einen einzigen Schreibzyklus aufgesperrt (bei der dargestellten Ausführungsform der vorliegenden Erfindung werden zwischenzeitlich auftretende Lesevorgänge nicht berücksichtigt, obwohl dies nicht immer der Fall sein muß. Ein System könnte jedoch so ausgelegt werden, daß sogar ein Schreibzyklus, der dem Abholen der nächsten Instruktion folgt, dazu führt, daß der geschützte RAM wieder gesperrt wird). Die fünfte Instruktion führt dazu, daß die Daten, die vorher in dem Akkumulator A geladen worden sind, auf der Adresse gespeichert werden, die sich in dem Register X befindet.
Nach dem Einschreiben muß der Flip-Flop 22 zurückgesetzt werden. Dies wird auf folgende Weise gesteuert: Zunächst wird das Byte $ 00 in dem Akkumulator B geladen; dann werden die Inhalte des Akkumulators B auf der Adresse $ 8780 gespeichert. Anschließend geht das Programm von der Subroutine zu den Programmschritten rück, die gerade abgearbeitet wurden.
Die hier beschriebene Technik läßt sich in gleicher Weise auch als Zugriffschutz für andere Elemente, also nicht nur für die Speicher, anwenden, beispielsweise für Zwischenspeicher (latches), Eingabe/Ausgabe-Geräte sowie allgemein für periphere Geräte. In einem solchen Fall würde der Zugriff zu dem zu schützenden Element nur dann zugelassen, wenn ein Verknüpfungsglied, das dem Verknüpfungsglied 36 vergleichbar ist, betätigt wird.
Obwohl die Aufsperr-Routine bei der dargestellten Ausführungsform der vorliegenden Erfindung mit vorgegebenen Speicherzugriffzyklen verbunden ist, beruht dies nur darauf, daß alle Zugriffe, sogar zu Eingabe/Ausgabe-Geräten, "Speicherzugriffe" bei Mikroprozessoren sind, die speicherdefinierte Eingabe/Ausgabe-Einheiten haben, wie beispielsweise der Mikroprozessor 6800. Andere Mikroprozessoren, wie beispielsweise die Typen 8080 von Intel und Z80 von Zilog unterscheiden zwischen Speicheradressen und Eingabe/Ausgabe-Adressen, wobei der Eingabe/Ausgabe-Adressenbereich viel kleiner als der Speicheradressenbereich ist; dabei ist eine Steuerleitung vorgesehen, um zwischen den beiden Typen von Zugriffzyklen zu unterscheiden. Wenn ein solcher Mikroprozessor verwendet wird, kann irgendein vorgegebener Zugriffzyklus, sogar Zugriffzyklen für die Eingabe/Ausgabe-Geräte, als Aufsperr-"Schlüssel" für die zu schützenden Elemente benutzt werden.

Claims (7)

1. Speicherschutzsystem für einen Lese/Schreib-Speicher mit einem kritische, zu schützende Daten enthaltenden Speicherbereich, wobei der Lese/Schreib-Speicher Teil eines Datenverarbeitungssystems ist, das Adreß- und Datenbusse und eine Steuerung für den Zugriff auf den Lese/Schreib-Speicher enthält, mit einer Einrichtung, die auf das Auftreten wenigstens eines Zugriffs-Zyklus auf den kritische Daten enthaltenden Speicherbereich anspricht und dieses Auftreten registriert, dadurch gekennzeichnet, daß der kritische Daten enthaltende Speicherbereich im Normalzustand mit einer Zugriffssperre belegt ist und daß eine Entsperr-Einrichtung (36) vorgesehen ist, die einen Zugriff auf den kritische Daten enthaltenden Speicherbereich nur nach Registrierung des Auftretens wenigstens eines insbesondere fiktiven Zugriffs-Zyklus auf dem kritischen Daten enthaltenden Speicherbereich mit einer vorgegebenen Anzahl von Schreibzyklen nach diesem Zugriffs-Zyklus zuläßt.
2. Speicherschutzsystem nach Anspruch 1, dadurch gekennzeichnet, daß der Schreibvorgang nur nach wenigstens zwei Zugriffs- Zyklen zugelassen wird, wobei jeder Zugriffs-Zyklus eine vorgegebene Adresse hat und wenigstens ein Zugriffs-Zyklus ein Schreib-Zyklus mit vorgegebenen Daten ist.
3. Speicherschutzsystem nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, daß eine Einrichtung (38) nur eine vorgegebene Zahl von Schreibvorgängen in den kritische Daten enthaltenden Speicherbereich nach jeder Registrierung wenigstens eines Zugriffs-Zyklus auf den kritische Daten enthaltenden Speicherbereich zuläßt.
4. Speicherschutzsystem nach Anspruch 3, dadurch gekennzeichnet, daß die vorgegebene Zahl von Schreibvorgängen Eins ist.
5. Speicherschutzsystem nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß der Lese/Schreib-Speicher (14) auch einen ungeschützten Speicherbereich enthält und daß eine Einrichtung vorgesehen ist, die Schreibvorgänge in den ungeschützten Speicherbereich unabhängig vom Betrieb der Entsperreinrichtung (36) ermöglicht.
6. Speicherschutzsystem nach Anspruch 5, dadurch gekennzeichnet, daß sich die vorgegebenen Adressen in dem ungeschützten Speicherbereich befinden.
7. Speicherschutzsystem nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Entsperreinrichtung (36) nur einen einzigen Schreibvorgang in den kritische Daten enthaltenden Speicherbereich nach jeder weiteren Registrierung des Auftretens eines Zugriffs-Zyklus auf den kritische Daten enthaltenden Speicherbereich zuläßt.
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 DE3048365A1 (de) 1981-09-10
DE3048365C2 true DE3048365C2 (de) 1987-10-15

Family

ID=22408270

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19803048365 Granted DE3048365A1 (de) 1980-02-21 1980-12-20 Speicherschutzsystem und datenverarbeitungssystem mit einem solchen speicherschutzsystem

Country Status (5)

Country Link
US (1) US4388695A (de)
JP (1) JPS56134400A (de)
CA (1) CA1153474A (de)
DE (1) DE3048365A1 (de)
GB (1) GB2070821B (de)

Families Citing this family (42)

* 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
US7958376B2 (en) * 2000-11-02 2011-06-07 Ati Technologies Ulc Write once system and method for facilitating digital encrypted transmissions
US7178035B1 (en) * 2000-11-02 2007-02-13 Ati International, Srl Write once system and method for facilitating digital encrypted transmissions
JP2003015958A (ja) * 2001-06-29 2003-01-17 Nec Microsystems Ltd ライトプロテクト方法
US6901354B2 (en) * 2001-09-27 2005-05-31 Intel Corporation Method and apparatus for command perception by data value sequencing, allowing finite amount of unrelated interim data
US6918037B2 (en) * 2001-09-27 2005-07-12 Intel Corporation Method and apparatus for command perception by data value sequencing, allowing a bounded total amount of spurious data
US7251752B2 (en) 2001-10-01 2007-07-31 Adams Phillip M Computerized product improvement apparatus and method
KR100614639B1 (ko) * 2003-07-24 2006-08-22 삼성전자주식회사 쓰기 방지 가능한 버퍼 메모리를 갖는 메모리 장치 및그것을 포함하는 정보 처리 시스템
US7213168B2 (en) * 2003-09-16 2007-05-01 Rockwell Automation Technologies, Inc. Safety controller providing for execution of standard and safety control programs
WO2005121960A1 (en) * 2004-06-07 2005-12-22 Nokia Corporation Operating a storage component
US8112597B2 (en) * 2006-12-08 2012-02-07 Microsoft Corporation Critical memory
US7949841B2 (en) * 2006-12-08 2011-05-24 Microsoft Corporation Protection of critical memory using replication
US8082585B1 (en) * 2010-09-13 2011-12-20 Raymond R. Givonetti Protecting computers from malware using a hardware solution that is not alterable by any software
CN105346256B (zh) * 2015-11-09 2017-03-22 杭州旗捷科技有限公司 一种打印机芯片、墨盒、和打印机芯片存储分配方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3573855A (en) * 1968-12-31 1971-04-06 Texas Instruments Inc Computer memory protection
JPS4930578B1 (de) * 1970-09-30 1974-08-14
JPS5224838B2 (de) * 1971-10-04 1977-07-04
US3827029A (en) * 1972-09-25 1974-07-30 Westinghouse Electric Corp Memory and program protection system for a digital computer system
US4093986A (en) * 1976-12-27 1978-06-06 International Business Machines Corporation Address translation with storage protection
JPS542026A (en) * 1977-06-07 1979-01-09 Hitachi Ltd Memory unit

Also Published As

Publication number Publication date
US4388695A (en) 1983-06-14
GB2070821A (en) 1981-09-09
GB2070821B (en) 1984-05-23
JPS56134400A (en) 1981-10-21
CA1153474A (en) 1983-09-06
DE3048365A1 (de) 1981-09-10

Similar Documents

Publication Publication Date Title
DE3048365C2 (de)
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
DE2629459C2 (de)
DE69533312T2 (de) Geschütztes speichersystem und verfahren dafür
EP0512542B1 (de) Datenschützende Mikroprozessorschaltung für tragbare Datenträger, beispielsweise Kreditkarten
EP0951673B1 (de) Verfahren zur überwachung der vorgeschriebenen ausführung von softwareprogrammen
DE4123126C1 (de)
DE2758152A1 (de) Speicherschutzanordnung
DE2225841C3 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE1499687B2 (de) Speicherschutz-einrichtung
DE3318101A1 (de) Schaltungsanordung mit einem speicher und einer zugriffskontrolleinheit
DE2801518A1 (de) Datenverarbeitungssystem mit speicher-schutzeinrichtung
DE69724732T2 (de) Atomare Operation in Fernspeicher und Vorrichtung zur Durchführung der Operation
DE3911721C2 (de)
EP0224639A1 (de) Verfahren zum Kontrollieren eines Speicherzugriffs auf einer Chipkarte und Anordnung zur Durchführung des Verfahrens
DE102006035610B4 (de) Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung
EP0935214B1 (de) Chipkarte mit integrierter Schaltung
DE102004003102A1 (de) System und Verfahren zum Bestimmen einer Transaktionszeitüberschreitung
EP0127809A1 (de) Schaltungsanordnung mit einem Speicher und einer Zugriffskontrolleinheit
EP0008355B1 (de) Einrichtung zum Sichern von in Datenverarbeitungslagen gespeicherten Daten gegen unberechtigten Zugriff
DE112019007853T5 (de) Steuereinrichtung
WO2019081308A1 (de) Verfahren und halbleiterschaltkreis zum schützen eines betriebssystems eines sicherheitssystems eines fahrzeugs
DE4042161A1 (de) Rom mit sicherheitsschaltung
DE1966991A1 (de) Ausfallgesicherte datenverarbeitungsanlage
DE10340236B4 (de) Anordnung mit einer Datenverarbeitungseinrichtung und einem Speicher

Legal Events

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

Ipc: G06F 12/14

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee