-
HINTERGRUND
-
Es sind elektronische Speichergeräte verschiedenerlei Arten bekannt. Typischerweise werden Datenwerte mit elektrischen Signalen darin gespeichert und daraus abgelesen. Speicherelemente oder ”Zellen” innerhalb derartiger Speichergeräte können individuell adressieren, damit diese jeweiligen Schreib- und Ablesevorgänge ausgeüfhrt werden können.
-
Einige in jüngerer Zeit entwickelten Arten von Speicherelementen sind jedoch derart, dass den darin gespeicherten Datenwerten unerwünschte Änderungen zugeführt werden können, oder dass sie sonst Angriffen mit bekannten Signalisierungsmethoden unterliegen. Die vorliegende Lehre betrifft die obigen sowie auch andere Fragen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die vorliegenden Ausführungsformen der Erfindung werden nun beispielhaft und unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, die zeigen:
-
1 ist ein Blockdiagramm einer Datenspeichervorrichtung gemäß einem Ausführungsbeispiel;
-
2 ist ein Blockdiagramm einer Datenspeichervorrichtung gemäß einem weiteren Ausführungsbeispiel;
-
3A ist ein Flussdiagramm eines Teils eines Verfahrens gemäß einem Ausführungsbeispiel;
-
3B ist ein Flussdiagramm eines anderen Teils des Verfahrens der 3A;
-
4 ist ein Flussdiagramm eines Verfahrens gemäß einem weiteren Ausführungsbeispiel;
-
AUSFÜHRLICHE BESCHREIBUNG
-
EINLEITUNG
-
Es werden Verfahren und Vorrichtungen zum Einsatz mit Datenspeicherelementen bereitgestellt. Ein Ringoszillator wird mit einem ausgewählten Speicherelement innerhalb eines Arrays derart gekoppelt, dass eine Rückkopplungsschleife gebildet wird. Eine Schwingungszeit des Ringoszillators wird gemessen und mit eniem Referenzwert verglichen. Nach dem Vergleich bestimmt sich ein innerhalb des ausgewählten Elements gespeicherter Datenwert. Die gespeicherten Datenwerte bleiben im Wesentlichen gleich, wenn auf sie über den Ringoszillator zugegriffen wird. Speicherarrays, die Memristor- oder sonstige Speicherelemente aufweisen, können erfindungsgemäß eingesetzt werden.
-
In einer Ausführungsform umfasst ein Apparat eine Mehrzahl über jeweilige Zeilen- und Spaltenadressenleitungen Speicherelemente adressierbarer Speicherelemente. Der Apparat umfasst auch einen zur selektiven Kopplung mit den Speicherelementen über die Zeilen- und Spaltenadressenleitungen zur Bildung eines Rückkopplungsweges konfigurierten Ringoszillator. Der Ringoszillator ist durch eine einem innerhalb eines der damit gekoppelten Speicherelemente entsprechende Schwingungszeit charakterisiert.
-
In einer weiteren Ausführungsform umfasst ein System zur Speicherung von Datenwerten einen Array mehrfacher Speicherelemente. Das System umfasst auch einen durch einen Eingangs- und Ausgangsknoten charakterisierten Ringoszillator. Der Ringoszillator funktioniert mit einer charakteristischen Periode gemäß einem innerhalb eines ausgewählten Speicherelements, das mit dem Ringoszillator über die Ein- und Ausgangsknoten gespeicherten Datenwert. Das System umfasst ferner eine zum Vergleichen der charakteristischen Periode mit einem vorbestimmten Referenzwert konfigurierte Regelschaltung für den Array von Speicherelementen. Die Regelschaltung ist ferner zur Übertragung eines digitalen Signals, das auf den dem Vergleich entsprechenden Datenwert hinweist, konfiguriert.
-
In noch einer weiteren Ausführungsform umfasst ein Verfahren das Programmieren aller Speicherelemente eines Speicherarrays auf einen ersten Wert. Ferner umfasst das Verfahren das Programmieren eines ausgewählten Speicherelements des Speicherarrays auf einen zweiten Wert, der ein anderer als der erste ist. Das Verfahren umfasst ferner das Messen einer ersten Schwingungszeit ”P1” eines mit dem ausgewählten Speicherelement gekoppelten Ringoszillators. Ausserdem umfasst das Verfahren das Programmieren aller Speicherelemente auf den zweiten Wert sowie das Programmieren des ausgewählten Speicherelements auf den ersten Wert. Das Verfahren umfasst ferner das Messen einer zweiten Schwingungszeit ”P2” des mit dem ausgewählten Speicherelement gekoppelten Ringoszillators. Ausserdem umfasst das Verfahren das Ermitteln eines Referenzwerts ”V” für den Array anhand der ersten Schwingungszeit P1 und der zweiten Schwingungszeit P2.
-
In einer weiteren Ausführungsform umfasst ein Verfahren zum Zugreifen auf einen Datenspeicherarray das Koppeln eines Ringoszillators mit einem ausgewählten Speicherelement des Datenspeicherarrays über einen Eingangs- und einen Ausgangsknoten des Ringoszillators, so dass eine Rückkopplungsschleife gebildet wird. Das Verfahren umfasst ferner das Messen einer Schwingungszeit des Ringoszillators. Das Verfahren umfasst ferner das Vergleichen der gemessenen Schwingungszeit mit einem vorbestimmten Referenzwert des Datenspeicherarrays. Darüber hinaus umfasst das Verfahren das Bestimmen eines innerhalb des ausgewählten Elements gespeicherten Datenwertes anhand des Vergleichs.
-
ERSTES AUSFÜHRUNGSBEISPIEL DES APPARATES
-
Hierbei wird auf die 1 Bezug genommen, die ein Blockdiagramm eines Apparates 100 ist. Der Apparat 100 dient lediglich der Veranschaulichung und schränkt die vorliegende Erfindung auf keinerlei Weise ein. So können auch andere Apparate, Vorrichtungen oder Systeme erfindungsgemäß konfiguriert und/oder betrieben werden.
-
Der Apparat 100 umfasst einen Speicherarray (Array) 102 aus Datenspeicherelementen 104. Jedes der Datenspeicherelemente 104 (vorliegend auch ”Speicherelemente 104”) ist derart konfiguriert, dass es mindestens zwei unterschiedliche Datenwerte anhand entsprechender Werte mindestens eines elektrischen Merkmals speichert. Zu derartigen elektrischen Merkmalen gehören insbesondere der Widerstand, die Kapazität, die Induktanz oder eine Kombination aus zwei oder mehr davon. In einem Beispiel kann jedes Speicherelement 104 ein Bit aus binären (d. h. Zweiersystem) Daten – einen Wert von Null oder Eins – im Wege einer nicht flüchtigen Einstellung des elektrischen Widerstandes speichern. In einem Beispiel sind einige oder alle der Speicherelemente 104 durch einen Speicherwiderstand oder ”Memristor” 106 abgegrenzt. Es können auch Speicherelemente anderer Arten und/oder andere Datenspeicherschemen (Dreier, Oktal-, Hexadezimalsystem usw.) verwendet werden.
-
Der Array 102 wird klarheitshalber als 4 × 3-Anordnung abgebildet, umfassend insgesamt zwölf Speicherelemente 104. Es versteht sich jedoch, dass Arrays einer beliebigen praktischen Größe und Konfiguration von der vorliegenden Erfindung inbegriffen sind, und zwar bis zu Eintausend-mal-Eintausend (1 K × 1 K) oder sogar darüber. Jedes der Speicherelemente 104 ist über die entsprechenden Zeilen- 108 und Spaltenadressenleitungen 110 individuell adressierbar. Auf ein beliebiges konkretes Speicherelement 104 kann über eine bestimmte Zeilen- 108 und Spaltenadressenleitung 110 zugegriffen und darauf Datenwerte geschrieben oder daraus abgelesen werden.
-
Der Apparat 100 umfasst ebenfalls ein zum Koppeln verschiedener Aspekte des Apparates 100 oder sonstiger Einheiten mit ausgewählten Speicherelementen 104 über die Zeilenadressenleitungen 108 konfiguriertes Zeilenschalternetzwerk 112. Das Zeilenschalternetzwerk 112 kann z. B. insbesondere Feldeffekttransistoren (FETs), Paß-FETs, Pass-Gates, Dioden, bipolare Transistoren, elektromechanische Schalter oder sonstige Vorrichtungen oder Einheiten umfassen. Dem Fachmann der elektrischen und angrenzenden Bereiche ist klar, dass verschiedene geeignete Schalter und Elemente zur Abgrenzung des Zeilenschalternetzwerks 112 einsetzbar sind; daher ist zum Verständnis der vorliegenden Erfindung keine ausführliche Erläuterung erforderlich.
-
Der Apparat 100 umfasst ebenfalls ein zum Koppeln von Aspekten des Apparates 100 oder sonstiger Einheiten mit ausgewählten Speicherelementen 104 über die Spaltenadressenleitungen 110 konfiguriertes Spaltenschalternetzwerk 114. Das Spaltenschalternetzwerk 114 kann z. B. Feldeffekttransistoren (FETs), Paß-FETs, Pass-Gates, Dioden, bipolare Transistoren, elektromechanische Schalter usw. umfassen. Dem Fachmann der elektrischen und angrenzenden Bereiche ist klar, dass das Spaltenschalternetzwerk 114 auf verschiedenerlei Weisen abgrenzbar ist; daher ist zum Verständnis der vorliegenden Erfindung keine ausführliche Erläuterung erforderlich.
-
Der Apparat 100 umfasst ferner einen Ringoszillator 116. Der Ringoszillator 116 kann eine ungerade Anzahl reihengeschalteter logischer Inverter-Gates umfassen oder dadurch abgegrenzt sein. Ferner ist der Ringoszillator 116 durch einen Eingangs- 118 und einen Ausgangsknoten 120 abgegrenzt. Der Ringoszillator 116 ist derart konfiguriert, dass es mit ausgewählten Speicherelementen 104 über das Zeilen- 112 und das Spaltenschalternetzwerk 114 gekoppelt werden kann. Ein ausgewähltes Speicherelement 104 definiert einen Teil eines Rückkopplungspfades oder einer Rückkopplungschleife, wenn dieses über den Eingangsknoten 118, den Ausgangsknoten 120, das Zeilenschalternetzwerk 112 und das Spaltenschalternetzwerk 114 gekoppelt ist.
-
Insbesondere steht ein ausgewähltes Speicherelement 104 in einer Rückkopplungsschleife mit dem Ringoszillator 116 in Reihenschaltung. Die Rückkopplungsschleife kommt erst zustande, wenn ein ausgewähltes Speicherelement 104 über das Zeilen- 112 und das Spaltenschalternetzwerk 114 mit dem Ringoszillator 116 gekoppelt ist. Die elektrischen Merkmale eines derartigen Rückkopplungspfade beeinflussen die Betriebsfrequenz und die entsprechende Periode des Ringoszillators 116, wie weiter unten beschrieben.
-
Der Apparat 100 umfasst ferner einen Speicherarray-Controller (Controller) 122. Der Controller 122 kann verschiedentlich definiert werden, und kann einen Mikrocontroller, einen Mikroprozessor, einen Zustandsautomaten, eine anwendungsspezifische integrierte Schaltung (ASIC) oder einen sonstigen geeigneten Bestandteil umfassen. Der Controller 122 ist zur Steuerung verschiedener normaler Operationen des Apparates 100 konfiguriert.
-
Beispiele der Operationen des Controllers 122 sind insbesondere: Speichern von Datenwerten innerhalb des Arrays 102, Ablesen von Datenwerten aus dem Array 102, Überwachung oder Ermöglichen der Überwachung des Ringoszillators 116, Operationen zur Steuerung des Zeilen- 112 und des Spaltenschalternetzwerks 114, Empfangen von Datenwerten von und Senden von Datenwerten an sonstige Ressourcen 124 des Apparates 100, usw. Durch den Controller 122 können auch andere normale Operationen gesteuert werden.
-
Insbesondere ist der Controller 122 derart konfiguriert, dass er Datenwerte in den Speicherelementen 104 über eine entsprechende elektrische Signalisierung speichert (Ablesen oder Programmieren). In einem Beispiel sind derartige Datenschreibsignale durch zum Erhöhen oder Senken des nicht flüchtigen elektrischen Widerstandes des ausgewählten Speicherelements 104 formattierte Gleichstromimpulse (DC) definiert. Der Controller 122 ist auch zum Ablesen in den Speicherelementen 104 gespeicherten Datenwerte über den Ringoszillator 116 konfiguriert. Die Operationen des Arrays 102 unter Zuhilfenahme des Ringoszillators 116 werden weiter unten näher erläutert.
-
ERSTES AUSFÜHRUNGSBEISPIEL DES SYSTEMS
-
Hierbei wird auf die 2 Bezug genommen, die ein Blockdiagramm eines Datenspeichersystems 200 ist. Das System 200 dient lediglich der Veranschaulichung und schränkt die vorliegende Erfindung auf keinerlei Weise ein. So können auch andere Apparate, Vorrichtungen oder Systeme erfindungsgemäß konfiguriert und/oder betrieben werden.
-
Das System 200 umfasst eine Mehrzahl Speicher-Unterarrays 202. Jeder Unterarray 202 kann z. B. durch den Apparat 100 abgegrenzt werden. Die Unterarrays können auch andere Architekturen aufweisen. Im Einzelnen umfasst jeder Unterarray 202 mehrere Speicherelemente (z. B. 104), die über einen Ringoszillator (z. B. 116) ablesbar sind. Jeder Unterarray 202 ist somit zum Speichern und Ablesen von Datenwerten konfiguriert.
-
Das System 200 umfasst ferner einen Steuerschalter 204. Der Steuerschalter 204 ist zur Steuerung der Speicherung und Ablesung von Daten unter Zuhilfenahme der Unterarrays 202 konfiguriert. Der Steuerschalter 204 ist zum selektiven Adressieren bestimmter Speicher-Unterarrays 202 sowie zur bidirektionalen Kommunikation von Datenwerten zwischen den Unterarrays 202 und sonstigen Ressourcen 206 konfiguriert. Beispiele sonstiger Ressourcen 206 sind insbesondere systemexterne Einheiten 200, ein Mikroprozessor, mit einem Internet-Netzwerk gekoppelte Kommunikationsschaltungen, andere Datenspeichersysteme, usw.
-
Das Datenspeichersystem 200 umfasst klarheitshalber insgesamt zehn Speicher-Unterarrays 202. Erfindungsgemäß sind jedoch verschiedene Datenspeichersysteme mit Unterarrays in einer beliebigen praktisch möglichen Anzahl denkbar, die jeweils über einen Ringoszillator ablesbare, einzeln adressierbare Speicherelemente umfassen.
-
ERSTES AUSFÜHRUNGSBEISPIEL DES VERFAHRENS
-
Hierbei wird auf die 3A Bezug genommen, in der ein Flussdiagramm eines Teils eines Verfahrens nach einem erfindungsgemäßen Ausführungsbeispiel abgebildet wird. Das Verfahren der 3A umfasst bestimmte Operationen und eine bestimmte Schrittfolge. Auch sonstige Verfahren, umfassend sonstige Operationen, bei denen eine oder mehrere der abgebildeten Operationen ausgelassen, oder die in einer anderen Schrittfolge erfolgen, sind erfindungsgemäß auch einsetzbar. Das Verfahren der 3A dient also lediglich der Veranschaulichung und schränkt die Erfindung keineswegs ein. Zum besseren Verständnis des Verfahrens nach 3A wird auch auf die 1 verwiesen.
-
Bei 300 sind alle Elemente eines Speicherarrays auf einen Wert von Null programmiert. Zur Veranschaulichung sind alle Speicherelemente 104 des Arrays 102 derart programmiert, dass sie einen ersten Datenwert Null speichern. Diese Programmierung erfolgt über elektrische Signale, die vom Speicherarraycontroller 122 versendet werden. In einem Beispiel wird jedes Speicherelement 104 sequenziell adressiert, bis alle Speicherelemente 104 programmiert worden sind. In einem weiteren Beispiel werden zwei oder mehr, oder sogar alle Speicherelemente 104 gleichzeitig programmiert.
-
Bei 302 wird ein Element ”E” des Speicherarrays ausgewählt und auf einen Wert von Eins programmiert. In diesem Beispiel wird ein ebenfalls mit ”E” gekennzeichnetes Speicherelement 104 über die entsprechende Zeilen- 108 und Spaltenadressenleitung 110 einzeln adressiert. Der Controller 122 sendet dann entsprechende elektrische Signale, um das Schreiben eines zweiten Datenwertes von Eins auf das bestimmte Speicherelement E zu veranlassen. Das Speicherelement E ist willkürlich ausgewählt und dient nur der Veranschaulichung. Es können zahlreiche Auswahlschemen verwendet werden, die vorliegend nicht beschrieben werden.
-
Bei 304 wird das Element E mit einem Ausgangsknoten des Ringoszillators des Speicherarrays gekoppelt. Vorliegend empfängt das Zeilenschalternetzwerk 112 vom Controller 122 ein Signal, so dass das Speicherelement E mit dem Ausgangsknoten 120 des Ringoszillators 116 gekoppelt wird.
-
Bei 306 wird das Element E mit einem Eingangsknoten des Ringoszillators des Speicherarrays gekoppelt. Vorliegend empfängt das Spaltenschalternetzwerk 114 vom Controller 122 ein Signal, so dass das Speicherelement E mit dem Eingangsknoten 118 des Ringoszillators 116 gekoppelt wird. Das Speicherelement E ist jetzt Teil einer mit dem Ringoszillator 116 gekoppelten Rückkopplungsschleife.
-
Bei 308 wird für den Ringoszillator eine Schwingungszeit P1 gemessen. Vorliegend wird vom Controller 122 eine Schwingungszeit (d. h. Kehrwert der Frequenz) P1 des Ringoszillators 116 erkannt und gemessen. Der Controller 122 speichert dann den Wert P1 intern als Registerwert in der Cache oder einem sonstigen Speicher. Die genaue Form des Speichers im Controller 122 ist vorliegend nicht relevant. Der Ringoszillator 116 wird dann vom Speicherelement E entkoppelt, sobald der Wert P1 gemessen und gespeichert worden ist.
-
Bei 310 sind alle Elemente eines Speicherarrays auf einen Wert von Eins programmiert. Zur Veranschaulichung sind alle Speicherelemente 104 des Arrays 102 derart programmiert, dass sie einen zweiten Datenwert Eins speichern. Diese Programmierung erfolgt über elektrische Signale, die vom Speicherarraycontroller 122 versendet werden. In einem Beispiel wird jedes Speicherelement 104 sequenziell adressiert, bis alle Speicherelemente 104 programmiert worden sind. In einem weiteren Beispiel werden zwei oder mehr, oder sogar alle Speicherelemente 104 gleichzeitig programmiert.
-
Bei 312 wird das Element ”E” des Speicherarrays ausgewählt und auf einen Wert von Null programmiert. Vorliegend wird das Speicherelement E einzeln adressiert, und der Controller 122 schreibt dann den ersten Datenwert Null auf das Speicherelement E. Nun wird auf 3B verwiesen, die ein Flussdiagramm eines anderen Teils des Verfahrens der 3A zeigt.
-
Bei 314 wird das Element E mit einem Ausgangsknoten des Ringoszillators des Speicherarrays gekoppelt. Vorliegend empfängt das Zeilenschalternetzwerk 112 vom Controller 122 ein Signal, so dass das Speicherelement E mit dem Ausgangsknoten 120 des Ringoszillators 116 gekoppelt wird.
-
Bei 316 wird das Element E mit einem Eingangsknoten des Ringoszillators des Speicherarrays gekoppelt. Vorliegend empfängt das Spaltenschalternetzwerk 114 vom Controller 122 ein Signal, so dass das Speicherelement E mit dem Eingangsknoten 118 des Ringoszillators 116 gekoppelt wird.
-
Bei 318 wird für den Ringoszillator eine Schwingungszeit P0 gemessen. Vorliegend wird vom Controller 122 eine Schwingungszeit P0 des Ringoszillators 116 erkannt und gemessen. Der Controller 122 speichert dann den Wert P0 intern als Registerwert in der Cache o. ä.. Der Ringoszillator 116 wird dann vom Speicherelement E entkoppelt, sobald der Wert P0 gemessen und gespeichert worden ist.
-
Bei 320 wird ein Referenzwert V für den Speicherarray anhand der Schwingungszeitwerte P1 und P0 ermittelt. Vorliegend ermittelt der Controller 122 den Referenzwert V nach der nachfolgenden Formel: V = (P1 + P0)/2. Damit wird der Durschnitt der jeweiligen Schwingungszeiten P1 und P0 ermittelt. Der resultierende Wert V wird dann im Controller 122 zur weiteren Verwendung gemäß der nachfolgenden Beschreibung gespeichert.
-
ZWEITES AUSFÜHRUNGSBEISPIEL DES VERFAHRENS
-
Hierbei wird auf die 4 Bezug genommen, in der ein Flussdiagramm eines Teils eines Verfahrens nach einem weiteren erfindungsgemäßen Ausführungsbeispiel abgebildet wird. Das Verfahren der 4 umfasst bestimmte Operationen und eine bestimmte Schrittfolge. Auch sonstige Verfahren, umfassend sonstige Operationen, bei denen eine oder mehrere der abgebildeten Operationen ausgelassen, oder die in einer anderen Schrittfolge erfolgen, sind erfindungsgemäß auch einsetzbar. Das Verfahren der 4 dient also lediglich der Veranschaulichung und schränkt die Erfindung keineswegs ein. Zum besseren Verständnis des Verfahrens nach 4 wird auch auf die 1 verwiesen.
-
Bei 400 empfängt ein Controller eines Speicherarrays eine Adresse eines abzulesenden Speicherelements. Zur Veranschaulichung empfängt der Speicherarraycontroller 122 eine Anforderung von sonstigen Ressourcen 124, einen in einem mit G gekennzeichneten Speicherelement 104 gespeicherten Datenwert abzulesen. Die empfangene Anforderung enthält eine Adresse oder sonstige geeignete Kennzeichnung des konkreten Speicherelements G. Zur weiteren Veranschaulichung ist der Array 102 zur Speicherung binärer (d. h. Zweiersystem) Datenwerte konfiguriert. Erfindungsgemäß sind jedoch auch Speicherarrays denkbar, die zur Speicherung sonstiger Datenwertsysteme (z. B. Dreiersystem, Oktalsystem, usw.) konfiguriert sind.
-
Bei 402 bestimmt der Controller anhand der empfangenen Adresse eine Zeile und eine Spalte des Speicherelements G. Vorliegend verwendet der Controller 122 die bei 400 empfangene Adresse (oder sonstige Kennzeichnung) zur Bestimmung einer ”Kreuzung” einer Zeilen und Spalte des Speicherelements G.
-
Bei 404 wird die Zeile des Speicherelements G mit dem Ausgangsknoten eines Ringoszillators des Arrays gekoppelt. Vorliegend empfängt das Zeilenschalternetzwerk 112 vom Controller 122 ein Signal zur Kopplung des Speicherelements G mit dem Ausgangsknoten 120 des Ringoszillators 116.
-
Bei 406 wird die Spalte des Speicherelements G mit dem Eingangsknoten eines Ringoszillators des Arrays gekoppelt. Vorliegend empfängt das Spaltenschalternetzwerk 114 vom Controller 122 ein Signal zur Kopplung des Speicherelements G mit dem Eingangsknoten 118 des Ringoszillators 116.
-
Bei 408 wird für den Ringoszillator eine Schwingungszeit PM gemessen. Vorliegend wird vom Controller 122 eine Schwingungszeit (d. h. Kehrwert der Frequenz) PM des Ringoszillators 116 gemessen. Der Wert PM wird dann vom Controller 122 intern speichert. Der Ringoszillator 116 wird dann vom Speicherelement G entkoppelt, sobald der Wert PM gemessen und gespeichert worden ist.
-
Bei 410 wird der Messwert PM mit einem vorher gemessenen Referenzwert V des Arrays verglichen. Vorliegend liest der Controller 122 einen vorbestimmten Referenzwert V des Arrays 102 vom internen Speicher ab. Der soeben gemessene Wert PM wird dann vom Controller 122 mit dem Wert V verglichen. Ist der Wert PM größer oder gleich dem Wert V, so fährt das Verfahren mit dem Schritt 412 unten fort. Ist der Wert PM kleiner oder gleich dem Wert V, so fährt das Verfahren mit dem Schritt 414 unten fort.
-
Bei 412 gibt der Controller einen Wert Null zurück. Vorliegend gibt der Controller 122 den sonstigen Ressourcen 124 einen Wert Null oder einen sonstigen ersten Wert zurück. Damit ist das eine Operaton des Verfahrens der Fig. abgeschlossen.
-
Bei 414 gibt der Controller einen Wert Eins zurück. Vorliegend gibt der Controller 122 den sonstigen Ressourcen 124 einen Wert Eins oder einen sonstigen zweiten Wert zurück. Damit ist das eine Operaton des Verfahrens der 4 abgeschlossen.
-
Die vorstehenden Verfahren und der vorstehende Appart dienen der Veranschaulichung zahlreicher erfindungsgemäß denkbarer Ausführungsformen. Generell und ohne Einschränkung der Erfindung sind Datenspeicherarrays, Apparate und Systeme denkbar. Ein derartiger Array umfasst eine Mehrzahl einzeln adressierbarer Speicherelemente, die jeweils zum Speichern eines Datenwerts (binär, trinär, oktal, usw.) anhand eines programmierbaren, nicht flüchtigen elektrischen Merkmals konfiguriert sind. Zu derartigen elektrischen Merkmalen gehören insbesondere der Widerstand, die Kapazität, die Induktanz oder eine Kombination aus zwei oder mehr davon. In einem oder mehreren Beispielen werden die Speicherelemente durch Memristoren definiert. Auch andere Speicherelemente können eingesetzt werden.
-
Ein Ringoszillator wird mit Speicherelementen des Arrays derart gekoppelt, dass eine Rückkopplungsschleife gebildet wird, und der Ringoszillator entsprechend schwingt.. Die Schwingungszeit entspricht den erfindungsgemäßen elektrischen Merkmalen des ausgewählten Speicherelements und damit dem darin gespeicherten Datenwert. Die Schwingungszeit wird dann von einem Controller oder einer sonstigen geeigneten Ressource gemessen und mit einem Referenzwert des Arrays verglichen. Nach dem Vergleich bestimmt sich ein im jeweiligen Speicherelement gespeicherter konkreter Datenwert innerhalb einer Toleranz. Dieser Datenwert wird dann anderen Ressourcen mitgeteilt, in internen Berechnungen oder Operationen verwendet, usw.
-
Die resistiv-kapazitive (RC) Zeitkonstante des ausgewählten Speicherelements liegt deutlich unter der parasitären Zeitkonstante des übrigen Datenspeicherarrays. Die Schwingungszweit unterliegt wiederum der umfangreichsten Beeinflussung durch den aktuellen Zustand des ausgewählten Speicherelements, während parasitäre Merkmale eine vernachlässigbare Wirkung entfalten. Erfindungsgemäß werden also zuverlässige Datenableseoperationen durchgeführt.
-
Die vorliegende Erfindung unterscheidet sich auch von bekannten Methoden, bei denen rein ohm'sche (d. h. Spannung gegenüber Strom) Messungen verwendet werden. Im Einzelnen lässt sich der elektrische Widerstand eines ausgewählten Speicherelements aus dem Gesamtwiderstand eines Arrays derartiger Elemente nach bekannten Verfahren schwer bestimmen. Dieses Problem wird mit den erfindungsgemäßen Ringoszillator-Operationen im Wesentlichen vermieden.
-
Gespeicherte Datenwerte, die mittels eines Ringoszillators abgelesen werden, bleiben aufgrund des Charakters eines schwingenden elektrischen Signals im Wesentlichen unverändert. Besonders nützlich ist dies in einer Ausführungsform, in der Memristoren über Gleichstromsignale programmiert werden, der nicht flüchtige Widerstand aber angesichts eines schwachen Wechselstromsignals im Wesentlichen unverändert bleibt.
-
Generell soll die vorstehende Beschreibung der Veranschaulichung dienen und keineswegs den Erfindungsumfang einschränken. Für den Fachmann sind zahlreiche andere Ausführungsformen und Anwendungen als die vorstehenden Beispiele aus der vorliegenden Beschreibung erkennbar. Der Erfindungsumfang ist also nicht unter Verweis auf die vorstehende Beschreibung, sondern nach den beigefügten Patentansprüchen sowie allen möglichen gleichwertigen Auslegungen der Patentansprüche zu bestimmen. Es ist zu erwarten und auch wünschenswert, dass sich das vorliegende Fachgebiet auch in Zukunft weiterentwickelt und die erfindungsgemäßen Systeme und Verfahren in derartige zukünftige Ausführungsformen integriert werden. Insgesamt ist anzumerken, dass die Erfindung Veränderungen und Variationen zugänglich ist und ihre Schranken ausschließlich in den nachfolgenden Patentansprüchen findet.