-
Die Erfindung betrifft eine Speicheranordnung und ein Verfahren zum Betrieb einer Speicheranordnung.
-
Speicheranordnungen werden in einer Vielzahl von Geräten verwendet, um die zu verarbeitenden oder im Betrieb generierten Daten zu speichern. So genannter Hauptspeicher ist ausgebildet große Datenmengen, wie beispielsweise Programmdaten, bereitzustellen. Der Hauptspeicher ist in der Regel nicht flüchtig. Neben dem Hauptspeicher sind häufig noch, meist flüchtige, Zwischenspeicher vorgesehen, auf die ein schnellerer Zugriff möglich ist. Daneben gibt es noch Wechselspeichermedien, die zum Betrieb an ein geeignetes Gerät angeschlossen werden.
-
In Speicheranordnungen, wie den oben genannten, ist eine geeignete Vorrichtung zur Verwaltung des Speichers vorzusehen.
-
Speicheranordnungen umfassen typischerweise eine Vielzahl von Speicherplätzen. In jedem Speicherplatz ist ein Datenwort, das mehrere Bits oder Bytes umfassen kann, speicherbar. Der Zugriff zu den Speicherplätzen erfolgt über einen Adressdekoder mit Adresseingängen sowie Dateneingängen und -ausgängen. Jedem Speicherplatz ist eine externe Adresse zugeordnet. Bei Anlegen dieser externen Adresse an den Adresseingang identifiziert der Adressdekoder den dazugehörigen Speicherplatz und ermöglicht den Zugriff auf diesen. Zugriff beinhaltet entweder das Schreiben eines Datenwortes in diesen Speicherplatz oder das Lesen des an diesem Speicherplatz gespeicherten Datenwortes. Die externen Adressen erstrecken sich üblicherweise auf einen linearen Adressbereich, in dem die externen Adressen aufeinander folgen.
-
In der oben beschriebenen Anordnung ist keine Kontrollmöglichkeit vorgesehen, um zu überprüfen, ob der Dateninhalt der Speicherplätze sich während des Speicherns verändert hat. Die Veränderungen können zufälliger Art sein, beispielsweise durch natürliche Strahlung bedingt, sie können aber durch gezielte Manipulationen, beispielsweise Angriffe wie „Forcing” oder gezielte Strahlung, verursacht werden.
-
Um Veränderungen von gespeicherten Datenworten zu detektieren, ist in manchen Speicheranordnungen ein Teil der Speicherplätze für redundante Information reserviert. Die redundante Information lässt Rückschlüsse zu, ob die gespeicherten Daten verändert worden sind. Redundante Information wird beispielsweise in Form eines Kontrollwortes entweder für jedes Datenwort separat oder für einen Satz von mehreren Datenworten generiert und an einer anderen Stelle oder einem anderen Speicherplatz abgespeichert. Die abgespeicherten Kontrollworte stehen mit dem ihm beigeordneten Datenwort oder dem beigeordneten Satz von Datenworten in einem gegebenen Zusammenhang. Bei einer späteren Überprüfung des Kontrollwortes mit dem beigeordneten Datenwort oder dem beigeordneten Satz von Datenworten wird überprüft, ob der gegebene Zusammenhang vorhanden ist. Wenn dieses nicht der Fall ist, lässt dieses auf eine Manipulation oder eine Veränderung der gespeicherten Datenworte schließen.
-
Eine besonders einfache Form redundanter Daten ist das so genannte Paritätsbit, das an ein Datenwort angehängt wird und angibt, ob eine gerade oder ungerade Anzahl eines logischen Wertes, z. B. Logisch-Eins, im Datenwort vorhanden ist. Durch das Paritätsbit lässt sich nur eine ungerade Zahl von Bitfehlern detektieren. Komplexere Kontrollwörter basieren auf so genannten Fehler erkennenden oder Fehler korrigierenden Kodes, die geeignet sind, mehrere Bitfehler zu detektieren beziehungsweise sogar in einem gewissen Umfang Fehler zu korrigieren. Üblicherweise werden Fehler erkennende oder Fehler korrigierende Kodes angewendet, um einen Satz von mehreren Datenworten durch ein beigeordnetes Kontrollwort zu schützen.
-
Bei derartig geschützten Speicheranordnungen ist ein Teil der Speicherplätze für die Kontrollworte reserviert. Auf diese reservierten Speicherplätze ist von außen nicht zugreifbar, und sie haben folglich keine externe, auch physikalisch genannte, Adresse. Der Adressdekoder ist dennoch in der Lage, das Kontrollwort zu den entsprechenden Datenworten zu identifizieren, da die Beiordnung der reservierten Speicherplätze zu den entsprechenden Sätzen vorgegeben ist.
-
Nachteilig bei dieser Anordnung ist, dass ein relativ großer Anteil des Speicherbereichs für diese Kontrollworte reserviert ist und nicht zur eigentlichen Datenspeicherung zur Verfügung steht. Wenn vier Datenworten ein Kontrollwort beigeordnet ist, sind 20% der Speicherplätze reserviert und stehen nicht zur eigentlichen Datenspeicherung zur Verfügung. Dieses gilt auch, wenn die zu speichernden Daten von der Anwendung oder dem Nutzer als nicht sensibel betrachtet werden, die keiner zusätzlichen Kontrolle bedürfen. Unabhängig davon, ob die gespeicherten Daten als schätzenswert eingestuft sind, ist somit stets auf einen Teil der Speicherplätze nicht zugreifbar.
-
Aus der
DE 695 23 481 T2 ist bekannt, einen Adressdekoder derart zu konfigurieren, dass der Zugriff nicht mehr auf einen fehlerhaften Speicherbereich erfolgt sondern auf einen redundanten Speicherbereich.
-
Es stellt sich somit die Aufgabe, eine Speicheranordnung mit einem schätzbaren Speicherbereich, dessen Umfang flexibel ist, und ein Verfahren zu deren Betrieb vorzusehen.
-
Die Aufgabe wird durch die Merkmale der nebengeordneten Patentansprüche gelöst.
-
Die Erfindung betrifft eine Speicheranordnung mit einem Speicherbereich mit einer Vielzahl von Speicherplätzen, die externen Adressen zuordenbar sind, und einem Adressdekoder, der mit dem Speicherbereich mit einer Vielzahl von Speicherplätzen gekoppelt ist und der einen Adresseingang zum Anlegen einer externen Adresse umfasst. Der Adressdekoder ist zwischen einem ersten und einem zweiten Betriebsmodus dahin gehend umschaltbar, dass jedem Speicherplatz des Speicherbereichs eine der externen Adressen eines Adressbereichs zugeordnet ist, beziehungsweise dass nur innerhalb eines Teilspeicherbereichs des Speicherbereichs jedem Speicherplatz eine der externen Adressen eines Teiladressbereichs des Adressbereichs zugeordnet sind. Zumindest ein nicht adressierter Speicherplatz des Speicherbereichs ist einem Satz mit mehreren Speicherplätzen, denen externe Adressen zugeordnet sind, beigeordnet. Dabei ist der Adressdekoder ausgebildet, auf den der angelegten externen Adresse zugeordneten Speicherplatz zuzugreifen.
-
Das Verfahren zum Betrieb solch einer Speicheranordnung mit einem Adressdekoder, umfassend einen Adresseingang, und einem Speicherbereich, umfassend eine Vielzahl von Speicherplätzen in einem Speicherbereich, auf die über eine zuordenbare, am Adresseingang anlegbare externe Adresse zugreifbar ist, umfasst:
- – einen ersten Betriebsmodus, in dem jedem Speicherplatz des Speicherbereichs jeweils eine externe Adresse eines Adressbereichs zugeordnet wird, sowie
- – einen zweiten Betriebsmodus, in dem nur innerhalb eines Teilspeicherbereichs des Speicherbereichs jedem Speicherplatz eine externe Adresse eines Teilbereichs des Adressbereichs zugeordnet wird und ein nicht adressierter Speicherplatz einem Satz mit mehreren Speicherplätzen, denen externe Adressen zugeordnet werden, beigeordnet wird.
-
Vorzugsweise ist zumindest einem nicht adressierten Speicherplatz, das heißt dem keine externe Adresse zugeordnet ist, einem Satz mit mehreren Speicherplätzen beigeordnet, um die redundante Information zur Sicherung des Satzes zu speichern. Dabei sind üblicherweise alle Speicherplätze, denen eine externe Adresse zugeordnet ist, in Sätzen organisiert. Alle nicht adressierten Speicherplätze sind einem der Sätze zugeordnet. Der Adressdekoder ist ausgebildet, den einem Satz beigeordneten Speicherplatz zu identifizieren, sodass eine Kontrolle der Daten des Satzes durch die gespeicherte redundante Information möglich ist.
-
Der Adressdekoder ist ausgebildet, jeden Speicherplatz des Speicherbereichs anhand einer internen Adresse zu identifizieren. Somit sind auch die nicht adressierten Speicherplätze eindeutig identifizierbar, obwohl von außen nicht auf sie zugegriffen werden kann. Die internen Adressen stehen mit den externen Adressen, die aus dem Adressbereich zugeordnet werden, in einem gegebenen Zusammenhang. Somit ist jedem der Speicherplätze eindeutig eine interne Adresse zugewiesen. Im einfachsten Fall sind die interne und externe Adresse identisch.
-
Vorteilhafterweise umfassen die Sätze Speicherplätze mit aufeinanderfolgenden externen Adressen, was die Architektur des Adressdekoders und des Speichers vereinfacht, da zum Identifizieren des Satz lediglich die Adresse eines, meist des ersten, Speicherplatzes des Satzes benötigt wird.
-
Da die Adressverwaltung als auch die Speicherung von Daten üblicherweise in binärer Form erfolgt, gehen weitere Vereinfachungen damit einher, dass die Anzahl der Speicherplätze eine Potenz von 2 ist.
-
In einer vorteilhaften Ausgestaltung ist nicht jedem Speicherplatz dieselbe externe Adresse sowohl aus dem Teiladressbereich als auch aus dem Adressbereich zuordenbar. Wenn nur die Adressen aus dem Teiladressbereich zugeordnet werden, erfolgt eine interne Umadressierung des Speichers. Die internen Adresse des beigeordneten Speicherplatzes ist vor oder nach den internen Adressen der Speicherplätze des Satzes. Auf diese Weise kann der Adressdekoder die beigeordneten nicht adressierten Speicherplätze auf einfache Weise identifizieren, da ihre internen Adressen einen festen Abstand zu denen der Speicherplätze des Satzes haben.
-
Zur Identifizierung des Speicherplatzes wird der zugeordneten externen Adresse ein Abstandswert zu einer gegebenen Startadresse zugeordnet. Diese interne Startadresse gibt üblicherweise den ersten Speicherplatz des Speicherbereichs an, der meist auch eine externe Adresse hat. Der Abstandswert gibt den Abstand der externen Adresse zu diesem ersten Speicherplatz an. Anhand des Abstandswertes lässt sich die interne Adresse des Speicherplatzes direkt identifizieren, wenn jedem Speicherplatz eine externe Adresse zugeordnet ist.
-
Wenn lediglich einem Teilspeicherbereich externe Adressen zugeordnet sind, ist der Abstandswert, der auf dem Abstand der externen Adressen basiert, zu manipulieren, um den zugeordneten Speicherplatz zu identifizieren. Wenn die interne Adresse des nicht adressierten Speicherplatzes sich direkt an die Adressen der Speicherplätze des beigeordneten Satzes anschließt, ist der den externen Adressen zugeordnete Abstandswert zu modifizieren, um die Speicherplätze zu identifizieren. Denn der Adressbereich der externen Adressen ist linear, der Adressbereich der entsprechenden internen Adressen ist es dagegen nicht. Der Abstandswert ist, in bildhafter Beschreibung, zu strecken, um nach jedem Satz, einen nicht adressierten Speicherplatz vorzusehen.
-
In diesen Fällen ist das beigeordnete Kontrollwort in unmittelbarer Nähe des beigeordneten Satzes abgespeichert. Die Modifizierung erfolgt vorzugsweise dergestalt, dass zum Abstandswert der einer ganzzahligen Division unterzogene Abstandswert addiert wird, sodass der Abstandswert je mehr gestreckt wird, dessen größer der Abstand von der Startadresse ist.
-
Es sei bemerkt, dass unter ganzzahliger Division der ganzzahlige Anteil des Quotienten einer Division verstanden wird.
-
Eine einfache hardwaretechnische Realisierung, um den Abstandswert zu manipulieren, erfolgt bei binärer Darstellung des Abstandswertes, indem zum momentanen Abstandswert der nach rechts verschobene Abstandswert addiert wird. Das Verschieben, auch als „Shiften” bezeichnet, hängt von der Anzahl der Speicherplätze ab, die ein Satz umfasst. Das Verschieben nach rechts ist äquivalent zu einer ganzzahligen Division. Der Divisor ist abhängig von der Anzahl der Stellen um die verschoben wird. Die Anzahl der Stellen, um die verschoben wird, als Exponent zur Basis 2 ist der Divisor. Umgekehrt ist ein Verschieben nach links eine Multiplikation um die Anzahl der verschobenen Stellen als Exponent zur Basis 2.
-
In einer weiteren vorteilhaften Ausgestaltung ist jedem Speicherplatz dieselbe externe Adresse sowohl aus dem Teiladressbereich als auch aus dem Adressbereich zugeordnet. Somit steht zumindest immer derselbe Teilspeicherbereich zum Zugriff zur Verfügung. Der reservierbare Teil kann bei Bedarf zum Zugriff frei gegeben werden oder wird als redundanter Speicherplatz verwendet. Die internen Adressen der nicht adressierten Speicherplätze folgen aufeinander, was mit einer übersichtlichen Speicherbelegung und -verwaltung einhergeht.
-
Wenn die internen Adressen der nicht adressierten Speicherplätze derart gewählt werden, dass sie zum großen Teil mit den Adressen der Speicherplätze des beigeordneten Satzes übereinstimmen, lässt sich hardwaremäßig in einfacher Weise zu jedem Satz der entsprechende nicht adressierte Speicherplatz identifizieren. Dieses gilt besonders bei binärer Adressdarstellung.
-
Vorteilhafterweise umfasst die Speicheranordnung auch Mittel, den in den Speicherplätzen des Satzes gespeicherten Datenworten ein Kontrollwort beizuordnen und im beigeordneten nicht adressierten Speicherplatz zu speichern. Somit sind durch Prüfung eines gegebenen Zusammenhangs zwischen den Datenworten, die in den Speicherplätzen des Satzes gespeichert sind, und dem beigeordneten Kontrollwort Rückschlüsse auf eine eventuelle Datenänderung oder -manipulation möglich.
-
Auch beim entsprechenden Verfahren zum vorteilhaften Betrieb einer solchen Speicheranordnung wird im zweiten Betriebsmodus einem Satz mit mehreren Speicherplätzen ein nicht adressierter Speicherplatz beigeordnet, in dem das zum Satz gehörende Kontrollwort gespeichert wird.
-
Zur Identifizierung eines jeden Speicherplatzes ist eine interne Adresse vorgesehen, um den gewünschten Dateninhalt an eindeutiger Stelle abzulegen oder auszulesen. Vorteilhafterweise steht diese interne Adresse mit der im ersten Betriebsmodus zugeordneten externen Adresse in gegebenen Zusammenhand, bestenfalls sind sie identisch, sodass in diesem Fall keine komplizierte Adressüberführung der externen in die internen Adresse erforderlich ist. Zur einfachen Identifizierung der Speicherplätze eines Satzes haben diese aufeinander folgende externe Adressen.
-
Vorteilhafterweise erfolgt die Identifizierung der Speicherplätze anhand eines Abstandswertes, der den Abstand der externen Adresse von einer gegebenen Startadresse angibt. Im ersten Betriebsmodus ist dadurch die interne Adresse ohne weiteres zu identifizieren, da keine nicht adressierten Speicherplätze vorgesehen sind und ein lineare Adressbereich mit externen Adressen auf einen linearen Bereich interner Adressen abgebildet wird. Im zweiten Betriebsmodus wird der Speicherplatz durch eine Modifikation des Abstandswertes identifiziert. Somit ist dieselbe externe Adresse im ersten und im zweiten Betriebsmodus nicht unbedingt demselben Speicherplatz zugeordnet.
-
Alternativ kann auch jedem Speicherplatz dieselbe externe Adresse sowohl aus dem Teiladressbereich als auch aus dem Adressbereich zugeordnet werden. In diesem Fall stimmt vorteilhafterweise ein großer Teil der internen Adressen der Speicherplätze des Satzes mit der internen Adresse des beigeordneten, nicht adressierten Speicherplatzes überein, sodass die Identifizierung erleichtert wird. Dieses gilt insbesondere bei Darstellung der Adressen in binärer Form.
-
Die bei der Zuordnung der Speicherplätze zur externen Adresse verwendeten Operation lassen sich bei binäre Darstellung der Operanden durch ein Verschieben realisieren, was mit einer einfachen hardwaretechnischen Realisierung durch ein Schieberegister einhergeht.
-
Weitere vorteilhafte Ausgestaltungen der Erfindung sind in den untergeordneten Patentansprüchen angegeben.
-
Nachfolgend wird die Erfindung unter Bezugnahme auf die Zeichnung anhand von Ausführungsbeispielen erklärt.
-
Es zeigen:
-
1 eine Speicheranordnung nach dem Stand der Technik,
-
2 eine Zuordnung externer Adressen zu den Speicherplätzen eines Speicherbereichs,
-
3 eine erste Zuordnung externer Adresse zu den Speicherplätzen eines Teilspeicherbereichs,
-
4 eine zweite Zuordnung externer Adressen zu den Speicherplätzen des Teilspeicherbereichs.
-
1 zeigt eine Speicheranordnung nach dem Stand der Technik mit einem Speicherfeld 5, das mehrere Speicherbereiche 1 jeweils mit einer Vielzahl von Speicherplätzen 100 umfasst. Es ist auch denkbar, dass das Speicherfeld 5 nur einen Speicherbereich 1 umfasst. Des Weiteren umfasst die Speicheranordnung einen Adressdekoder 2, der mit dem Speicherfeld 5 gekoppelt ist. Der Adressdekoder 2 umfasst einen Adresseingang 3 und einen Dateneingang/-ausgang 4. Es ist auch denkbar, dass statt eines Dateneingang/-ausganges 4 ein separater Dateneingang und ein separater Datenausgang vorgesehen sind. An den Adresseingang 3 wird eine externe Adresse EA angelegt, anhand derer der Adressdekoder 2 den Speicherplatz 100 identifiziert, an den ein am Dateneingang/-ausgang 4 anliegendes Datenwort DA gespeichert werden soll beziehungsweise von welcher Stelle das am Dateneingang/ausgang 4 auszugebende Datenwort DA ausgelesen werden soll. Der Adressdekoder 2 ermöglicht somit für die am Adresseingang 3 angelegte externe Adresse EA die Identifizierung des zugehörigen Speicherplatzes 100 und den Zugriff darauf. Zugriff umfasst das Laden oder Speichern des Datenworts am entsprechenden Speicherplatz 100.
-
Ein Speicherplatz ist ausgebildet, ein Datenwort oder ein Kontrollwort zu speichern, die jeweils meist mehrere Bits oder Bytes umfassen.
-
2 zeigt den Speicherbereich 1 aus 1 mit der Vielzahl von Speicherplätzen 100. Die den jeweiligen Speicherplätzen 100 zugeordneten externen Adressen EA sind ebenfalls dargestellt. Die Gesamtheit dieser beispielhaften Adressen A1 bis A20 ist ein Adressbereich, der die externen Adressen EA umfasst, über die auf alle Speicherplätze 100 des Speicherbereichs 1 zugegriffen werden kann. Auf jedem Speicherplatz 100 des Speicherbereichs 1 ist damit bei Anlegen seiner externe Adresse EA an den Adresseingang 3 zugreifbar. In dieser Zuordnung sind keine redundanten Speicherplätze zur Sicherung der gespeicherten Datenworte vorgesehen.
-
Bei der oben beschriebenen Zuordnung ist jedem Speicherplatz 100 eine externe Adresse EA zugeordnet. In diesem Fall arbeitet der Adressdekoder in einem ersten Betriebsmodus, in dem kein Schutz durch redundante Speicherplätze 101 vorgesehen ist. In 2 sind der Anschaulichkeit halber auch interne Adressen IA dargestellt, die jedem Speicherplatz 100 zugeordnet sind. Diese stehen mit den externen Adressen EA in gegebenem Zusammenhang und sind im einfachsten Fall, wie dargestellt, identisch. Anhand dieser internen Adressen IA kann der Adressdekoder 2 jeden Speicherplatz 100 identifizieren. Dieses ist auch anhand der externen Adressen EA möglich.
-
Der Adressdekoder 2 ist zwischen dem oben genannten ersten Betriebsmodus und einem zweiten Betriebsmodus umschaltbar. Im zweiten Betriebsmodus steht nur ein Teilspeicherbereich 25 des gesamten Speicherbereichs 1 zur Verfügung. Den nicht zum Zugriff von außen verfügbaren Speicherplätzen ist keine externe Adresse zugeordnet. Diese nicht adressierten Speicherplätze 101 sind für redundante Informationen, so genante Kontrollworte, vorgesehen. Da nur der Teilspeicherbereich 25 zum Zugriff zur Verfügung steht, ist somit auch der Umfang der externen Adressen EA eingeschränkt. Sie umfassen nur noch einen Teiladressbereich. Abgesehen davon, dass der Teiladressbereich kleiner ist und weniger externe Adressen als der gesamte Adressbereich umfasst, sind die externen Adressen EA des Teiladressbereichs auch im Adressbereich vorhanden. Somit ist kein Unterschied beim Betrieb des Speichers, bis auf die geringere Speicherkapazität, von außen erkennbar. Die interne Zuordnung des Teiladressbereichs 25 und die Verwaltung der redundanten Speicherplätze 101 erfolgt intern durch den Adressdekoder 2.
-
Üblicherweise werden zum Schutz der Daten mehrere Datenworte durch ein Kontrollwort geschützt. In der Speicheranordnung ist dafür ein Satz 10 mit mehreren Speicherplätzen 100, auf die jeweils durch deren zugeordnete externe Adresse EA zugegriffen werden kann, vorgesehen. Dem Satz 10 ist ein nicht adressierter Speicherplatz 101 beigeordnet. Diesem nicht adressierten Speicherplatz 101 ist keine externe Adresse EA zugeordnet. Die Zuordnung des Kontrollwortes zu den Datenworten, die in den Speicherplätzen 100 des Satzes 10 gespeichert sind, kann über einen beliebigen Fehler erkennenden oder Fehler korrigierenden Kode erfolgen. Auch andere hierfür geeignete Zuordnungen zu Generierung redundanter Kontrollworte sind denkbar. Der Schutz muss sich auch nicht auf jedes Datenwort aus dem Satz 10 erstrecken, auch der Schutz nur eines Teils der Datenworte durch das Kontrollwort ist denkbar.
-
3 zeigt ein erstes Ausführungsbeispiel, um die nicht adressierten Speicherplätze 101 innerhalb des Speicherbereichs 1 vorzusehen.
-
Im gezeigten Ausführungsbeispiel ist die Zuordnung der externen Adressen EA im zweiten Betriebsmodus dargestellt. Der Speicherbereich 1 ist wie in 2 gewählt. Jeder Satz 10 umfasst beispielhaft vier Speicherplätze 100. Der Teiladressbereich umfasst beispielhaft die externen Adressen A1 bis A16. Jedem Satz 10 mit vier Speicherplätzen 100 ist ein nicht adressierter Speicherplatz 101 beigeordnet, dem selbst keine externe Adresse EA zugeordnet ist. Selbstverständlich ist auch denkbar, jedem Satz 10 mehr als einen nicht adressierten Speicherplatz 101 beizuordnen.
-
Jeder Speicherplatz 100, auch die nicht adressierten Speicherplätze 101, ist über einen Abstandswert D identifizierbar. Der Abstandswert D gibt den Abstand des Speicherplatzes von einer gegebenen Startadresse S an. In der 3 ist beispielsweise angezeigt, dass die Startadresse S der erste Speicherplatz 100 des Speicherbereichs 1 mit der externen Adresse A1 ist. Prinzipiell lässt sich der Abstandswert D bei gegebener externer Startadresse unabhängig von der internen Startadresse bestimmen. Da der externen Startadresse natürliche auch einer interne Startadresse entspricht, kann der Abstandswert D auch relativ zu dieser bestimmt werden. Über den Abstandswert D lassen sich sowohl die Speicherplätze 100 mit externer Adresse EA als auch die nicht adressierten Speicherplätze 101 eindeutig identifizieren, indem der Abstandswert D zur internen Startadresse S addiert wird.
-
Im Ausführungsbeispiel der 3 ist nach jedem Satz 10 der beigeordnete nicht adressierte Speicherplatz 101 vorgesehen, sodass dessen interne Adresse IA, direkt auf die internen Adressen IA der Speicherplätze 100 des Satzes 10 folgt. Das bedeutet, dass der Abstandswert D für jeden weiteren Satz 10 nach der Startadresse S um den Wert 1 erhöht werden muss, damit er den Abstand zu den entsprechenden Speicherplätzen 100 angibt. Mit anderen Worten bedeutet dies zur Bestimmung des ersten Speicherplatz eines Satzes muss dessen Abstandswert D durch vier, d. h. die Anzahl der Speicherplätze 100 eines Satzes 10, geteilt werden und mit fünf, d. h. diese Anzahl zuzüglich des beigeordneten, nicht adressierten Speicherplatzes 101, multipliziert werden.
-
In 3 sind neben den externen Adressen EA auch noch interne Adressen IA dargestellt, die den externen Adressen EA im ersten Betriebsmodus entsprechen. Anhand der Gegenüberstellung der externen mit den internen Adressen EA, IA wird die Umadressierung besonders deutlich.
-
Mit jedem Block vergrößert sich der Wert, der zum Abstandswert D dazu addiert werden muss. Für die Speicherplätze 100 des ersten Satzes 10 mit den externen Adressen A1 bis A4 ändert sich der Abstandswert D nicht. Zwischen dem ersten Satz 10 und dem zweiten Satz 10, mit den externen Adressen A5 bis A8 ist ein nicht adressierter Speicherplatz mit der internen Adresse A5 vorgesehen. Dadurch vergrößert sich der Abstandswert D für zur Identifizierung jedes Speicherplatzes 100 des zweiten Satzes um 1. Der Abstandswert D vergrößert sich für jeden der Speicherplätze 100 des dritten Satzes 10 mit den externen Adressen A9 bis Al2 um 2. Dieser Zusammenhang lässt sich für den Abstandswert D, der jeder externen Adresse EA zugeordnet ist, dahin gehend beschreiben, dass auf den Abstandswert D eine ganzzahlige Division durchgeführt wird. Der Divisor ist die Anzahl der Speicherplätze 100, die ein Satz 10 umfasst. Das Ergebnis wird zu dem bisherigen Abstandswert D dazu addiert.
-
Diese ganzzahlige Division lässt sich besonders einfach durchführen, und auch in Hardware realisieren, wenn die Adressen in binärer Form vorliegen und verwaltet werden. In diesem Fall ist eine ganzzahlige-Division durch 2 ein Verschieben um 1 Bit nach rechts. Eine ganzzahlige Division durch 4 oder 8 ist ein Verschieben um 2 bzw. 3 Bits nach rechts. Deshalb muss, wenn der Satz 4 Bits umfasst, lediglich der Abstandswert um 2 Bits nach rechts verschoben werden und das Ergebnis zum bisherigen Abstandswert dazu addiert werden. Der nicht adressierte Speicherplatz 101 des Kontrollwortes ist identifizierbar, indem zum neuen Abstandswert D des ersten Speicherplatzes 100 des Satzes 10 die Anzahl der Speicherplätze des Satzes, in diesem Fall 4, addiert wird.
-
Bei der oben beschriebenen Identifizierung der Speicherplätze 100, 101 sind die internen Adressen IA von untergeordneter Bedeutung, da die eigentliche Identifizierung durch den Abstandswert D erfolgt.
-
Selbstverständlich lässt sich dieses Verfahren auch dahin gehend modifizieren, dass der beigeordnete, nicht adressierte Speicherplatz 101 am Anfang eines Satzes 10 angeordnet wird oder mehr als ein nicht adressierter Speicherplatz 101 einem Satz 10 beigeordnet ist.
-
4 zeigt eine weitere Ausgestaltung der Zuordnung der externen Adressen EA zu den Speicherplätzen 100 im zweiten Betriebsmodus. In diesem Fall ist ein fester Teil des Speicherbereichs 1 für die redundanten Daten vorsehbar. Abhängig davon, ob die Speicheranordnung im ersten oder zweiten Betriebsmodus betrieben wird, werden den Speicherplätzen in diesem Teil des Speicherbereichs 1 externen Adressen EA zugeordnet oder nicht. Somit entfällt die im ersten Ausführungsbeispiel beschriebene Veränderung der Zuordnung der externen Adressen EA. Die externen Adressen EA und die internen Adressen IA, sofern sie zugeordnet worden sind, stimmen in diesem Ausführungsbeispiel überein.
-
Auch in diesem Fall umfasst ein Satz 10 vier Speicherplätze 100, beispielsweise mit den externen Adressen A1 bis A4 oder A5 bis A8. Jedem dieser Datensätze 10 ist ein nicht adressierter Speicherplatz 101 im zweiten Betriebsmodus fest beigeordnet. Im Fall des Satzes 10 mit den externen und internen Adressen A1 bis A4 wäre dies beispielsweise der Speicherplatz 101 mit der internen Adresse A17. Somit stehen die Adressen der Speicherplätze 100 eines Satzes 10 und die Adresse des beigeordneten nicht adressierten Speicherplatzes 101 in einem gegebenen Zusammenhang.
-
Bei binärer Darstellung vereinfacht sich auch in diesem Ausführungsbeispiel die Identifizierung der Speicherplätze, wie im Folgenden dargestellt wird. Wenn der Speicherbereich 2x Speicherplätze umfasst, sei die Adresse des ersten Speicherplatzes eines Satzes mit vier Speicherplätzen 0, ax-1, ax-2, a0. Diesem Satz wird ein nicht adressierter Speicherplatz mit der korrespondierenden internen Adresse 1, 0, 0, ax-1, ax-2, ..., a2 beigeordnet. Aus den internen Adressen der Speicherplätze 100 eines Satzes 10 lässt sich die interne Adresse des beigeordneten nicht adressierten Speicherplatzes somit in einfacher Weise generieren, indem erstere verschoben wird und an eine gegebene Bitfolge angehängt wird. Auch in diesem Fall richtet sich die Verschiebung nach der Anzahl der Speicherplätze in einem Satz. Im genannten Beispiel umfasst der Satz vier Speicherplätze, die Adresse wird um den Logarithmus Dualis, also um zwei Bit, verschoben und an ein zwei Bit langes Muster angehängt. Da das erste Bit der internen Adresse der Speicherplätze 100 des Satzes einen festen Wert „1” hat, ist auch das erste Bit der Adresse des nicht adressierten Speicherplatzes vorgegeben. Diese Adressmanipulation lässt sich sehr einfach hardwaremäßig realisieren.
-
Während des Betriebs der Speicheranordnung lässt sich für jeden Speicherbereich 1 des Speicherfeldes 5 festlegen, ob dieser im ersten oder zweiten Betriebsmodus betrieben wird. Es ist natürlich auch denkbar, dass die Speicheranordnung nur einen Speicherbereich 1 umfasst, sodass die gesamte Speicheranordnung entweder im ersten oder zweiten Betriebsmodus betrieben wird. Durch die Umschaltbarkeit der Speicheranordnung für jeden Speicherbereich 1 lässt sich der Speicher optimal ausnutzen, da er in seinem Umfang an die Sicherheitsbedürfnisse flexibel anpassbar ist. Abgesehen vom eingeschränkt zur Verfügung stehenden Speicherplatz im zweiten Betriebsmodus und der damit verbundenen Verringerung des Adressbereichs wirkt sich die interne Speicherverwaltung nicht auf den Betrieb nach außen aus, da die Umsortierung und Identifizierung der beigeordneten nicht adressierten Speicherplätze intern erfolgt.
-
Bezugszeichenliste
-
- 1
- Speicherbereich
- 2
- Adressdekoder
- 3
- Adresseingang
- 4
- Dateneingang/-ausgang
- 5
- Speicherfeld
- 10
- Satz
- 25
- Teilspeicherbereich
- 100
- Speicherplatz
- 101
- nicht adressierter Speicherplatz
- A1 ... A20
- Adressen
- D
- Abstandswert
- DA
- Daten
- EA
- externe Adresse
- IA
- interne Adresse
- S
- Startadresse