DE102018213147A1 - Auffrischen von mittels Memristoren gespeicherten Daten - Google Patents

Auffrischen von mittels Memristoren gespeicherten Daten Download PDF

Info

Publication number
DE102018213147A1
DE102018213147A1 DE102018213147.3A DE102018213147A DE102018213147A1 DE 102018213147 A1 DE102018213147 A1 DE 102018213147A1 DE 102018213147 A DE102018213147 A DE 102018213147A DE 102018213147 A1 DE102018213147 A1 DE 102018213147A1
Authority
DE
Germany
Prior art keywords
resistance value
memristor
control unit
designed
value
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.)
Pending
Application number
DE102018213147.3A
Other languages
English (en)
Inventor
Tobias Kirchner
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102018213147.3A priority Critical patent/DE102018213147A1/de
Priority to US16/532,828 priority patent/US11436476B2/en
Priority to CN201910725354.5A priority patent/CN110827894A/zh
Publication of DE102018213147A1 publication Critical patent/DE102018213147A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor

Abstract

Ansteuereinheit (1) für einen Speicher (2), der mindestens eine Speicherzelle (21) umfasst, wobei in dieser Speicherzelle (21) einer von mehreren diskreten speicherbaren Werten (23a-23e) im elektrischen Widerstandswert (22a) eines Memristors (22) kodiert ist, umfassend:• ein Messgerät (11), welches zur Messung (110) des Widerstandswerts (22a) des Memristors (22) ausgebildet ist;• einen Diskretisierer (12), der dazu ausgebildet ist, dem gemessenen Widerstandswert (22a) einen der mehreren diskreten speicherbaren Werte (23a-23e) als gelesenen Wert (23) zuzuordnen (120);• eine Vergleichseinheit (13), die dazu ausgebildet ist, die Differenz (24) zwischen dem nominellen Widerstandswert (24a-24e) des Memristors (22), der zu dem gelesenen Wert (23) korrespondiert, und dem gemessenen Widerstandswert (22a) des Memristors (22) zu ermitteln (130); sowie• einen Treiber (14), der dazu ausgebildet ist, auf der Basis der ermittelten Differenz (24) den Memristor (22) mit einem Strom-Zeit-Profil (25) zu beaufschlagen (140), welches den tatsächlichen Widerstandswert (22a) des Memristors (22) in Richtung des nominellen Widerstandswerts (24a-24e) treibt, der zu dem gelesenen Wert (23) korrespondiert, so dass die Speicherzelle (21) aufgefrischt wird.Hardwareplattform (5) für neuronales Netzwerk (4), analoges Rechenmodul (6) und Computerprogramm.

Description

  • Die vorliegende Erfindung betrifft eine Ansteuereinheit für einen Memristor-Speicher mit zusätzlicher Funktionalität für das Auffrischen der gespeicherten Daten.
  • Stand der Technik
  • Ein Memristor ist ein nichtflüchtiges Speicherelement, das bei Beaufschlagung mit einem bestimmten Strom-Zeit-Profil seinen elektrischen Widerstand dauerhaft verändert. Auf diese Weise kann Information in dem Speicherelement abgelegt werden. Die Information kann später wieder aus dem Speicherelement ausgelesen werden, indem der elektrische Widerstand des Speicherelements gemessen wird.
  • Ein geringerer elektrischer Widerstand wird physikalisch häufig eingestellt, indem durch den zum Schreiben verwendeten Strom ein lokaler besser leitender Pfad erzeugt wird, der durch ein weniger gut leitendes Grundmaterial führt und dieses Grundmaterial gleichsam überbrückt. Durch Umpolen des Stroms kann dieser besser leitende Pfad wieder zurückgebildet werden.
  • Abhängig von der Temperatur unterliegen die Atome oder Formeleinheiten, die den besser leitenden Pfad bilden, einer mehr oder weniger starken Tendenz, mit der Zeit in das umliegende Grundmaterial zu diffundieren. Somit ist die Langzeitstabilität der gespeicherten Information begrenzt. In der DE 10 2014 208 609 A1 und in der DE 10 2014 211 111 A1 wird daher vorgeschlagen, auch nominell nichtflüchtige Speicher, wie etwa Memristoren, regelmäßig aufzufrischen, d.h. die gespeicherte Information aufs Neue aktiv in dem Speicher zu hinterlegen.
  • Offenbarung der Erfindung
  • Im Rahmen der Erfindung wurde eine Ansteuereinheit für einen Speicher, der mindestens eine Speicherzelle umfasst, entwickelt. In der Speicherzelle ist einer von mehreren diskreten speicherbaren Werten im elektrischen Widerstandswert eines Memristors kodiert.
  • Die Ansteuereinheit umfasst ein Messgerät, welches zur Messung des Widerstandswerts des Memristors ausgebildet ist. Dabei wird unter der Messung des Widerstandswerts jede Messung von Größen verstanden, die einen Rückschluss auf den Widerstandswert zulässt. Wird beispielsweise ein vorgegebener Strom durch den Memristor getrieben, ist in dem Spannungsabfall über dem Memristor der Widerstandswert des Memristors verkörpert. Wird beispielsweise eine vorgegebene Spannung an den Memristor angelegt, ist in dem durch den Memristor fließenden Strom ebenfalls der Widerstandswert des Memristors verkörpert. Auch eine Messung der Leitfähigkeit, die reziprok zum Widerstandswert ist, ist als Messung des Widerstandswerts anzusehen.
  • Die Ansteuereinheit umfasst weiterhin einen Diskretisierer, der dazu ausgebildet ist, dem gemessenen Widerstandswert einen der mehreren diskreten speicherbaren Werte als gelesenen Wert zuzuordnen. Durch den Diskretisierer wird also jeder gemessene Widerstandswert auf genau einen gelesenen Wert abgebildet. Je mehr mögliche gelesene Werte es gibt, desto mehr Information kann in der Speicherzelle hinterlegt werden. Im einfachsten Fall gibt es zwei mögliche gelesene Werte, mit denen genau ein Bit an Information gespeichert werden kann.
  • Die Ansteuereinheit umfasst weiterhin eine Vergleichseinheit, die dazu ausgebildet ist, die Differenz zwischen dem nominellen Widerstandswert des Memristors, der zu dem gelesenen Wert korrespondiert, und dem gemessenen Widerstandswert des Memristors zu ermitteln. Diese Differenz ist ein Maß dafür, inwieweit die in der Speicherzelle gespeicherte Information bereits degradiert ist.
  • Beispielsweise kann eine Messgröße, die ein Maß für die Leitfähigkeit (d.h., für den reziproken Widerstand) ist, in willkürlichen Einheiten zwischen 0 und 4 variieren, und der Diskretisierer kann dazu ausgebildet sein, die gemessene Leitfähigkeit auf den nächsten ganzzahligen Wert als gelesenen Wert zu runden. Es sind also die fünf Werte 0, 1, 2, 3 und 4 in der Speicherzelle speicherbar. Wird nun beispielsweise eine Leitfähigkeit von 2,6 gemessen, so wird ihr der Wert 3 als gelesener Wert zugeordnet. Die Differenz von 0,4 ist dann ein Hinweis, dass der in der Speicherzelle gespeicherte Wert 3 kurz vor dem Ende seiner Langzeitstabilität steht: Wenn die Leitfähigkeit weiter absinkt, bis auf unter 2,5, dann wird ihr nicht mehr der korrekte Wert 3, sondern der falsche Wert 2 als gelesener Wert zugeordnet.
  • Die Ansteuereinheit umfasst weiterhin einen Treiber, der dazu ausgebildet ist, auf der Basis der ermittelten Differenz den Memristor mit einem Strom-Zeit-Profil zu beaufschlagen, welches den tatsächlichen Widerstandswert des Memristors in Richtung des nominellen Widerstandswerts treibt, der zu dem gelesenen Wert korrespondiert. Auf diese Weise wird die Speicherzelle aufgefrischt. Das Strom-Zeit-Profil kann insbesondere ein Spannungspuls, oder eine Abfolge aus Spannungspulsen, sein.
  • In dem genannten Beispiel kann dies beispielsweise bedeuten, dass der Memristor in der Speicherzelle mit einem derartigen Strom-Zeit-Profil beaufschlagt wird, dass die Leitfähigkeit wieder nahe an den Wert 3 gebracht wird. Der in der Speicherzelle gespeicherte Wert 3 hat dann fürs Erste Spielraum gegen eine Degradation in beide Richtungen, d.h. sowohl gegen eine Degradation, die die Leitfähigkeit erhöht (ab einer Leitfähigkeit von 3,5 würde der falsche Wert 4 als gelesener Wert erkannt), als auch gegen eine Degradation, die die Leitfähigkeit erniedrigt (unterhalb einer Leitfähigkeit von 2,5 würde, wie beschrieben, der falsche Wert 2 als gelesener Wert erkannt).
  • Je nach Material des Memristors kann der physikalische Mechanismus der Degradation so beschaffen sein, dass er nur in eine Richtung wirkt. Beispielsweise hat eine Diffusion im Material des Memristors immer nur den Abbau leitfähiger Pfade zur Folge, nicht jedoch deren geordnete Neubildung.
  • Daher kann die Diffusion als Degradationsmechanismus die Leitfähigkeit immer nur vermindern. Es kann dann beispielsweise vorteilhaft sein, beim Treiben des tatsächlichen Widerstandswerts des Memristors in Richtung des nominellen Widerstandswerts nicht bei diesem nominellen Widerstandswert haltzumachen. Vielmehr kann der Widerstand, bzw. die Leitfähigkeit, bis zu einem vorgegebenen Sicherheitsabstand zu dem Wertebereich weitergetrieben werden, dem der nächste speicherbare Wert als diskreter Wert zugeordnet wird. In dem genannten Beispiel könnte also etwa die Leitfähigkeit bis auf 3,4 erhöht werden, was noch weit genug weg ist von der Leitfähigkeit 3,5, der bereits der Wert 4 als gelesener Wert zugeordnet würde. Wenn die Leitfähigkeit nach dem Auffrischen bei 3,4 statt bei 3 startet, dauert es erheblich länger, bis die Degradation sie wieder auf 2,6 abgesenkt hat und das nächste Auffrischen erforderlich wird.
  • Es wurde erkannt, dass die beschriebene Ansteuereinheit die Langzeitstabilität der in dem Speicher hinterlegten Information insbesondere in Anwendungen verbessert, in denen einer von drei oder mehr verschiedenen speicherbaren Werten in der Speicherzelle hinterlegt wird. Je mehr verschiedene Werte in der Speicherzelle speicherbar sind, desto enger rücken die zugehörigen nominellen Widerstandswerte zusammen und desto schneller führt eine Degradation im Memristor dazu, dass ein anderer als der ursprünglich hinterlegte Wert aus der Speicherzelle ausgelesen wird.
  • Dies betrifft insbesondere Anwendungen im Bereich der neuronalen Netzwerke. In derartigen Anwendungen manifestiert sich das Ergebnis des Lernens in Gewichten von Verbindungen zwischen Neuronen. Diese Gewichte sind meistens nicht binär, sondern können mehr als zwei diskrete Werte annehmen. Wenn diese Gewichte in Form von elektrischen Widerstandswerten von Memristoren gespeichert werden, so kann eine Degradation im Memristor dazu führen, dass das Verhalten des neuronalen Netzwerks nicht dauerhaft deterministisch ist, sondern sich beim „Umkippen“ eines Gewichts zum nächsten diskreten Wert in nicht vorhersehbarer Weise ändert.
  • Ein solches „Umkippen“ ließe sich alternativ auch auffangen, indem das neuronale Netzwerk in eine Form überführt wird, in der es permanent lernt. Ein Beispiel hierfür sind Netzwerke auf der Basis der „Spike timing dependent plasticity“ (STDP), in denen die Gewichte von an einem Neuron eingehenden Verbindungen abhängig davon, ob die entsprechenden Eingaben zeitlich kausal für die Ausgabe des Neurons gewesen sein können. In diesem ständigen Lernprozess kann der Effekt des „Umkippens“ einzelner Gewichte zumindest teilweise dynamisch ausgeglichen werden.
  • Es wurde jedoch erkannt, dass es vorteilhafter ist, durch die beschriebene Ansteuereinheit die Langzeitstabilität der im Speicher hinterlegten Information zu gewährleisten. Auf diese Weise kann die Lernphase des neuronalen Netzwerks klar von der anschließenden Inferenzphase abgegrenzt werden, die den normalen Betrieb des Netzwerks darstellt. In dieser Inferenzphase bleibt das Verhalten des Netzwerks dann deterministisch. Ein auch im normalen Betrieb permanent lernendes neuronales Netzwerk kann hingegen allein durch den Strom der im normalen Betrieb anfallenden Eingaben umtrainiert werden, wobei der Effekt nicht immer vorhersehbar und auch nicht immer erwünscht ist.
  • So wird beispielsweise ein für die Erkennung von Verkehrszeichen verwendetes neuronales Netzwerk im normalen Betrieb am häufigsten mit denjenigen Verkehrszeichen beaufschlagt, denen das entsprechend ausgerüstete Fahrzeug am häufigsten begegnet. Dabei kommt ein jedes Verkehrszeichen nicht nur in seiner nominellen „Reinform“ vor, sondern auch in einer Vielzahl leichter Abwandlungen, wie sie beispielsweise durch Verschmutzung, leichte Beschädigungen, Graffiti oder das Anbringen von Aufklebern entstehen können. Diese Abwandlungen können die „Aufmerksamkeit“ eines ständig lernenden neuronalen Netzwerks auf sich ziehen, was dann auf Kosten der Erkennung selten vorkommender Verkehrszeichen gehen kann. So kann beispielsweise eine Vielzahl von Abwandlungen des sehr häufig vorkommenden Verkehrszeichens „Vorfahrt achten“ die Erkennung des Verkehrszeichens 205 „Vorfahrt achten“ die Erkennung des Verkehrszeichens 129, das vor einem ungesicherten Ufer warnt, gewissermaßen verdrängen, so dass ein ganz oder teilweise automatisiert fahrendes Fahrzeug dann möglicherweise ins Wasser rollt.
  • Sind hingegen Lernphase und Inferenzphase des neuronalen Netzwerks klar voneinander abgegrenzt und wird die Langzeitstabilität des Lernergebnisses auf anderem Wege gewährleistet, nämlich durch die beschriebene, zum Auffrischen ausgebildete Ansteuereinheit, dann tritt ein solches unerwünschtes „Umlernen“ nicht auf. Dies ist insbesondere in Bezug auf die behördliche Zertifizierung von neuronalen Netzwerken für das zumindest teilweise automatisierte Fahren von Vorteil.
  • In einer besonders vorteilhaften Ausgestaltung ist der Diskretisierer dazu ausgebildet, dem gemessen Widerstandswert einen von mindestens drei verschiedenen speicherbaren Werten als gelesenen Wert zuzuordnen. Bevorzugt sind zwischen drei und zehn und besonders bevorzugt zwischen drei und fünf speicherbare Werte vorgesehen. Wie zuvor erläutert, ermöglicht dies insbesondere die langzeitstabile Speicherung von Gewichten für Verbindungen in neuronalen Netzwerken.
  • Dabei ist eine Motivation, überhaupt Memristoren für die Speicherung der Gewichte einzusetzen, dass damit neuronale Netzwerke in Form von schneller Analogelektronik implementiert werden können.
  • Somit liegen in einer besonders vorteilhaften Ausgestaltung sowohl der nominelle Widerstandswert des Memristors als auch der gemessene Widerstandswert des Memristors in analoger Form vor, und die Vergleichseinheit ist dazu ausgebildet, die Differenz in analoger Form auszugeben. Insbesondere kann der Treiber eine analoge Schaltung zur Wandlung der Differenz in das Strom-Zeit-Profil aufweisen. Das Auffrischen kann dann vollständig auf analogem Wege geschehen.
  • Die Differenz und das daraus folgende Strom-Zeit-Profil können aber auch auf digitalem Wege ermittelt werden. Hierzu kann beispielsweise eine Kombination aus Messgerät, Diskretisierer und Vergleichseinheit mit einem Analog-DigitalWandler realisiert sein, der feiner auflöst als es für die Unterscheidung zwischen den in der Speicherzelle speicherbaren diskreten Werte nötig ist. Der Analog-Digital-Wandler liefert dann jeden Messwert für den Widerstand des Memristors als digitales Datenwort. Es können dann beispielsweise die höherwertigen Bits dieses Datenworts der Unterscheidung zwischen den speicherbaren diskreten Werten dienen, während die niederwertigen Bits direkt die Differenz repräsentieren.
  • Wenn ein Datenwort beispielsweise 8 Bit umfasst, dann kann mit den höchstwertigen drei Bits der Widerstand des Memristors in Vielfachen von 32 dargestellt werden. Indem nur die höchstwertigen drei Bits berücksichtigt und die restlichen fünf Bits verworfen werden, kann der Widerstand unmittelbar auf die acht Widerstandswerte 0, 32, 64, 96, 128, 160, 192 und 224 diskretisiert werden. Der Memristor wird dann vorteilhaft so angesteuert, dass diese acht Widerstandswerte die nominellen Widerstandswerte sind, die den acht in der Speicherzelle speicherbaren Werten 0 bis 7 zugeordnet sind.
  • Bei einem idealen langzeitstabilen Memristor sollten dann bei jeder Messung des Widerstandswerts die fünf niederwertigen Bits alle 0 sein, so wie dies bei den nominellen Widerstandswerten der Fall ist. Wenn eine Degradation den Widerstand erhöht, wird dies nicht mehr der Fall sein. Die fünf niederwertigen Bits geben also ein Maß für den durch die Degradation verursachten Fehler, d.h. die Differenz, unmittelbar in digitaler Form an. Zugleich geht aus den höchstwertigen drei Bits unmittelbar hervor, welcher der acht möglichen Werte der aus der Speicherzelle gelesene Wert ist.
  • Es lassen sich also gelesener Wert einerseits und Differenz andererseits ohne jegliche Rechenoperationen, nur durch Aufteilen der Bits des Datenworts, ermitteln. Somit wird der Geschwindigkeitsnachteil gegenüber einer rein analogen Verarbeitung minimiert. Die digitale Verarbeitung ist wiederum vorteilhaft für die digitale Steuerung des Strom-Zeit-Profils für die Beaufschlagung des Memristors.
  • In einer weiteren vorteilhaften Ausgestaltung ist der Treiber dazu ausgebildet, den Widerstandswert des Memristors auf einen Sollwert zu regeln. Hierunter ist beispielsweise zu verstehen, dass der Treiber im Wechsel den Memristor mit Strom-Zeit-Profilen beaufschlagt und eine erneute Messung des Widerstandswerts des Memristors veranlasst, wobei dies wiederholt wird, bis die Übereinstimmung dieses Widerstandswerts mit dem Sollwert einer Abbruchbedingung genügt. Wie zuvor beschrieben, kann der Sollwert der nominelle Widerstandswert sein, der zu dem gelesenen Wert korrespondiert. Der Sollwert kann aber auch innerhalb des Bandes der Widerstandswerte, die noch dem gelesenen Wert zugeordnet sein, über den nominellen Widerstandswert hinaus verschoben sein (im oben genannten Beispiel zu höherer Leitfähigkeit), um bezüglich einer nur in eine Richtung wirkenden Degradation einen größeren Spielraum zu erzielen.
  • Die aktive Regelung nimmt tendenziell mehr Zeit in Anspruch, hat jedoch den Vorteil, dass sie sich physikalischen Veränderungen des Materials des Memristors anpasst. Derartige Materialien können zum einen Alterungsprozessen unterliegen. Zum anderen kann auch das Ansprechverhalten des Materials auf ein und dasselbe Strom-Zeit-Profil von der Vorgeschichte der Strom-Zeit-Profile abhängen, mit denen das Material in der Vergangenheit bereits beaufschlagt wurde. Die aktive Regelung ermöglicht es, die verwendeten Strom-Zeit-Profile dieser längerfristigen Entwicklung anzupassen.
  • In einer weiteren besonders vorteilhaften Ausgestaltung ist die Ansteuereinheit weiterhin dazu ausgebildet, in Antwort darauf, dass mindestens eine Speicherzelle für eine vorgegebene Zeitdauer nicht aufgefrischt wurde, diese Speicherzelle aufzufrischen. Auf diese Weise kann insbesondere gewährleistet werden, dass auch die Inhalte von Speicherzellen, auf die sehr selten zugegriffen wird, langzeitstabil bleiben. Die vorgegebene Zeitdauer hängt vom Material des Memristors und von dem physikalischen Mechanismus ab, mit dem der elektrische Widerstand dieses Memristors geändert wird. Sie ist um Größenordnungen länger als der Refresh-Zyklus bei DRAM-Speichern und kann beispielsweise im Bereich von Tagen oder Wochen liegen.
  • Dabei kann die Ansteuereinheit vorteilhaft mit einem Temperatursensor für eine Temperatur des Speichers verbindbar und dazu ausgebildet sein, die vorgegebene Zeitdauer in Abhängigkeit dieser Temperatur, bzw. eines zeitlichen Verlaufs dieser Temperatur, anzupassen. Insbesondere Diffusionsprozesse als Degradationsprozesse sind stark temperaturabhängig.
  • Nach dem zuvor Beschriebenen bezieht sich die Erfindung auch auf eine Hardwareplattform für ein künstliches neuronales und/oder neuromorphes Netzwerk, dessen interne Verarbeitungskette eine Vielzahl untereinander verbundener Neuronen umfasst. Dabei ist unter einem neuromorphen Netzwerk insbesondere ein Netzwerk zu verstehen, in dem ein Neuron in Antwort darauf, dass die eingangsseitig vorgelegte Stimulation einen vorgegebenen Schwellwert überschreitet, ein Ereignis ausgibt. Derartige Netzwerke werden auch „spikende neuronale Netzwerke“ genannt und sind beispielsweise mit ereignisbasierten Bildsensoren vergleichbar. Solche Bildsensoren sind in Pixel unterteilt, die immer dann, wenn sich die auf ein Pixel einfallende Lichtintensität prozentual um einen bestimmten Betrag ändert, ein diesem Pixel zugeordnetes Ereignis ausgeben.
  • Die Hardwareplattform umfasst mindestens einen Speicher, in dem als diskrete Werte vorliegende Gewichte von Verbindungen zwischen Neuronen in Form von elektrischen Widerstandswerten von Memristoren kodiert sind. Weiterhin ist die beschriebene Ansteuereinheit vorgesehen, die in der zuvor erläuterten Weise für eine Langzeitstabilität der gespeicherten Gewichte sorgt.
  • Das Einsatzgebiet von Speichern mit der beschriebenen Ansteuereinheit ist aber nicht auf neuronale Netzwerke beschränkt, sondern umfasst insbesondere ganz allgemein analoge Rechenmodule, deren Verhalten durch in einem Speicher abgelegte Parameter bestimmt wird.
  • Daher bezieht sich die Erfindung auch auf ein analoges Rechenmodul, welches einem oder mehreren analogen Eingangssignalen nach Maßgabe mindestens einer Rechenoperation ein oder mehrere Ausgangssignale zuordnet. Die mindestens eine Rechenoperation, und/oder mindestens ein diese Rechenoperation festlegender diskreter Parameter, ist in einem Speicher in Form mindestens eines elektrischen Widerstandswerts eines Memristors kodiert. Der Speicher ist mit der beschriebenen Ansteuereinheit gekoppelt.
  • Beispielsweise kann das analoge Rechenmodul zur Berechnung eines Kreuzprodukts zweier Vektoren oder Matrizen ausgebildet sein. In der digitalen Domäne erfordert diese Berechnung eine Vielzahl nacheinander auszuführender Operationen. In der analogen Domäne können alle Komponenten der Operanden gleichzeitig, beispielsweise in Form von Strömen, vorgelegt werden, und alle Komponenten des Ergebnisses können ebenfalls gleichzeitig gebildet werden.
  • Für alle Einsatzgebiete gilt, dass der Begriff der „Ansteuereinheit“ nicht dahingehend einschränkend zu verstehen ist, dass diese Einheit an einer bestimmten Stelle sitzen muss oder dass alle ihre Teile auf einem Hardwarebaustein vereint sein müssen. Vielmehr genügt es, ein Messgerät, einen Diskretisierer, eine Vergleichseinheit und einen Treiber logisch so zu verschalten, dass eine Ansteuereinheit mit der beschriebenen Funktion gebildet wird. Sofern etwa ein Messgerät, ein Diskretisierer, eine Vergleichseinheit oder ein Treiber schon vorhanden sind, etwa für den normalen Betrieb des Speichers, kann diesen Komponenten für die Verwendung in der Ansteuereinheit eine Zweitfunktion zugewiesen werden. Auch kann beispielsweise die Ansteuereinheit in ein neuronales Netzwerk, das Gewichte von Verbindungen zwischen Neuronen in dem Speicher ablegt, integriert sein.
  • Somit kann die Realisierung der Ansteuereinheit insbesondere ganz oder teilweise in Software erfolgen, die vorhandene Hardware anders ansteuert. Diese Software kann beispielsweise als Add-On, Update oder Upgrade zu bestehender Hardware vertrieben werden und ist insofern ein eigenständig verkaufbares Produkt. Daher bezieht sich die Erfindung auch auf ein Computerprogramm mit maschinenlesbaren Anweisungen, die, wenn sie auf einem Computer, und/oder auf einem Steuergerät, und/oder auf einem Embedded-System ausgeführt werden, den Computer, das Embedded-System, bzw. das Steuergerät, zu der beschriebenen Ansteuereinheit aufwerten. Ebenso bezieht sich die Erfindung auch auf einen maschinenlesbaren Datenträger oder ein Downloadprodukt mit dem Computerprogramm.
  • Weitere, die Erfindung verbessernde Maßnahmen werden nachstehend gemeinsam mit der Beschreibung der bevorzugten Ausführungsbeispiele der Erfindung anhand von Figuren näher dargestellt.
  • Figurenliste
  • Es zeigt:
    • 1 Ausführungsbeispiel der Ansteuereinheit 1 im Zusammenspiel mit einem Speicher 2;
    • 2 Ausführungsbeispiel einer Hardwareplattform 5 für ein neuronales Netzwerk 4;
    • 3 Ausführungsbeispiel eines analogen Rechenmoduls 6;
    • 4 Beispielhafte Integration der Ansteuereinheit 1 mit einem Speicher 2, der mehrere Speicherzellen 21 umfasst;
    • 5 Beispielhafte Verarbeitung eines Widerstandswerts 22a in der Ansteuereinheit 1.
  • Nach 1 umfasst der beispielhafte, von der Ansteuereinheit 21 angesteuerte, Speicher 2 eine einzige Speicherzelle 21, deren zentrales Element ein Memristor 22 ist. Die in der Speicherzelle 21 hinterlegte Information ist im Widerstandswert 22a des Memristors 22 kodiert.
  • In dem in 1 gezeigten Beispiel sind fünf unterschiedliche Werte 23a-23e in der Speicherzelle 21 speicherbar. In der Ansteuereinheit 1 wird ein jeder der Werte 23a-23e genau dann als gelesener Wert 23 erkannt, wenn der gemessene Widerstand 22a des Memristors 22 im dem jeweiligen Wert 23a-23e zugehörigen Bereich auf der Skala des Widerstands 22a liegt. Zusätzlich ist jedem Wert 23a-23e auch noch ein nomineller Widerstandswert 24a-24e zugeordnet, der beim Schreiben des Werts 23a-23e in die Speicherzelle 21 eingestellt wird.
  • Ein idealer, unendlich langzeitstabiler Memristor 22 würde, nachdem sein Widerstand 22a auf einen der nominellen Widerstandswerte 24a-24e eingestellt wurde, diesen Widerstandswert 24a-24e halten, bis die in der Speicherzelle 21 hinterlegte Information bewusst geändert wird. In der Realität driftet der Widerstand 22a jedoch mit der Zeit vom jeweiligen Nominalwert 24a-24e weg. Es ist Aufgabe der Ansteuereinheit 1, derartige Abweichungen zu erkennen und aktiv zu beheben, bevor sie eine Größe erreichen, die zu einer falschen Erkennung der in der Speicherzelle 21 hinterlegten Information führt.
  • Zu diesem Zweck wird der Widerstand 22a des Memristors 22 zunächst in Schritt 110 mit dem Messgerät 11 gemessen. Der Diskretisierer 12 ermittelt in Schritt 120 den aus der Speicherzelle 21 gelesenen Wert 23, wie oben beschrieben. Die Vergleichseinheit 13 ermittelt in Schritt 130 die Differenz 24 zwischen dem zu dem gelesenen Wert 23 korrespondierenden nominellen Widerstandswert 24a-24e einerseits und dem tatsächlichen Widerstandswert 22a andererseits. Aus der Differenz 24 ermittelt der Treiber 24 in Schritt 140 das Strom-Zeit-Profil 25, mit dem der Memristor 22 zu beaufschlagen ist, um dessen Widerstandswert 22a in Richtung des zum gelesenen Wert 23 korrespondierenden nominellen Widerstandswerts 24a-24e zu treiben. Diese Ermittlung kann gemäß dem optionalen Schritt 150 auch auf rein analogem Wege erfolgen.
  • Gemäß dem optionalen Schritt 145 kann der Widerstandswert 22a aktiv auf einen neuen Sollwert geregelt werden, d.h., die Ermittlung und Anwendung von Strom-Zeit-Profilen 25 wird wiederholt, bis dieser Sollwert mit einer hinreichenden Genauigkeit erreicht ist.
  • Zur Bestimmung, wann die Speicherzelle 21 das nächste Mal in dieser Weise aufzufrischen ist, ist die Ansteuereinheit 1 mit einem Temperatursensor 3 verbunden. Der Temperatursensor 3 ist thermisch an den Speicher 2 gekoppelt und liefert die Temperatur 3a des Speichers 2 an die Ansteuereinheit 1.
  • 2 zeigt eine beispielhafte Hardwareplattform 5 für ein neuronales Netzwerk 4. Die interne Verarbeitungskette 41 des neuronalen Netzwerks 4 umfasst eine Vielzahl von Neuronen 42, von denen nur einige wenige einschließlich ihrer Verbindungen 44a-44c untereinander in 2 dargestellt sind. Die Verbindungen 44a-44c sind mit zugehörigen Gewichten 43a-43c belegt, die wiederum im Speicher 2 abgelegt sind. Der Speicher 2 umfasst drei Speicherzellen 21 mit jeweils einem Memristor 22. Die Gewichte 43a-43c sind also in Widerstandswerten 22a von Memristoren 22 in Speicherzellen 21 kodiert, wobei der gelesene Wert 23 auf einen der möglichen Werte 23a-23e diskretisiert ist. Der Speicher 2 ist mit der Ansteuereinheit 1 gekoppelt.
  • 3 zeigt ein beispielhaftes analoges Rechenmodul 6. Zwei beispielhafte Operanden 61 und 62 werden durch eine mit einem Parameter 63a parametrisierte Rechenoperation 63 zu einem Ergebnis 64 verarbeitet. Die Rechenoperation 63 und der zugehörige Parameter 63a sind in dem Speicher 2 hinterlegt, der mit der Ansteuereinheit 1 gekoppelt ist.
  • 4 zeigt eine beispielhafte Integration der Ansteuereinheit 1 mit einem Speicher 2, der mehrere Speicherzellen 21 umfasst. Jede Speicherzelle 21 ist mit genau einer der Wortleitungen W0 und W1 sowie mit genau einer der Bitleitungen B0, B1, B2 verbunden. Durch gleichzeitige Ansteuerung einer Wortleitung W0, W1 und einer Bitleitung B0, B1, B2 wird eine Speicherzelle 21 ausgewählt. Zu diesem Zweck umfasst jede Speicherzelle 21 neben dem Memristor 22 noch einen Ansteuertransistor 26.
  • Die zur Ansteuereinheit 1 gehörenden Komponenten 11, 12, 13 und 14 sind je Bitleitung B0, B1, B2 einmal vorhanden.
  • 5 zeigt beispielhaft die Ermittlung einer Differenz 24 für das Auffrischen. Auf der Skala des Widerstandswerts 22a des Memristors 22 sind, analog zu 1, die fünf nominellen, zu den speicherbaren Werten 0, 1, 2, 3 und 4 korrespondierenden Widerstandswerte 24a-24e aufgetragen. Ein gemessener Widerstandswert 22a wird nun durch die Kombination aus Messgerät 11 und Diskretisierer 12 digitalisiert und in einen gelesenen Wert 23(D) umgewandelt. Da der gemessene Widerstand 22a dem Niveau 24d am nächsten liegt, ist der aus der Speicherzelle 21 gelesene Wert der Wert 3, zu dem das Niveau 24d korrespondiert. Dieser Widerstandswert 24d wird mit einem D/A-Wandler in einen Analogwert 23(A) umgewandelt, der in der Vergleichseinheit 13 mit dem ursprünglichen gemessenen Widerstandswert 22a verglichen wird. Die analoge Differenz 24(A) wird dem Treiber 14 zugeführt, damit die Speicherzelle 21 entsprechend aufgefrischt werden kann.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • DE 102014208609 A1 [0004]
    • DE 102014211111 A1 [0004]

Claims (11)

  1. Ansteuereinheit (1) für einen Speicher (2), der mindestens eine Speicherzelle (21) umfasst, wobei in dieser Speicherzelle (21) einer von mehreren diskreten speicherbaren Werten (23a-23e) im elektrischen Widerstandswert (22a) eines Memristors (22) kodiert ist, umfassend: • ein Messgerät (11), welches zur Messung (110) des Widerstandswerts (22a) des Memristors (22) ausgebildet ist; • einen Diskretisierer (12), der dazu ausgebildet ist, dem gemessenen Widerstandswert (22a) einen der mehreren diskreten speicherbaren Werte (23a-23e) als gelesenen Wert (23) zuzuordnen (120); • eine Vergleichseinheit (13), die dazu ausgebildet ist, die Differenz (24) zwischen dem nominellen Widerstandswert (24a-24e) des Memristors (22), der zu dem gelesenen Wert (23) korrespondiert, und dem gemessenen Widerstandswert (22a) des Memristors (22) zu ermitteln (130); sowie • einen Treiber (14), der dazu ausgebildet ist, auf der Basis der ermittelten Differenz (24) den Memristor (22) mit einem Strom-Zeit-Profil (25) zu beaufschlagen (140), welches den tatsächlichen Widerstandswert (22a) des Memristors (22) in Richtung des nominellen Widerstandswerts (24a-24e) treibt, der zu dem gelesenen Wert (23) korrespondiert, so dass die Speicherzelle (21) aufgefrischt wird.
  2. Ansteuereinheit (1) nach Anspruch 1, wobei der Diskretisierer (12) dazu ausgebildet ist, dem gemessenen Widerstandswert (22a) einen von mindestens drei verschiedenen speicherbaren Werten (23a-23e) als gelesenen Wert (23) zuzuordnen.
  3. Ansteuereinheit (1) nach einem der Ansprüche 1 bis 2, wobei sowohl der nominelle Widerstandswert (24a-24e) des Memristors (22) als auch der gemessene Widerstandswert (22a) des Memristors (22) in analoger Form vorliegen und die Vergleichseinheit (13) dazu ausgebildet ist, die Differenz (24) in analoger Form auszugeben (150).
  4. Ansteuereinheit (1) nach Anspruch 3, wobei der Treiber (14) eine analoge Schaltung zur Wandlung der Differenz (24) in das Strom-Zeit-Profil (25) aufweist.
  5. Ansteuereinheit (1) nach einem der Ansprüche 1 bis 4, wobei der Treiber (14) dazu ausgebildet ist, den Widerstandswert (22a) des Memristors (22) auf einen Sollwert zu regeln (145).
  6. Ansteuereinheit (1) nach einem der Ansprüche 1 bis 5, weiterhin dazu ausgebildet, in Antwort darauf, dass mindestens eine Speicherzelle (21) für eine vorgegebene Zeitdauer nicht aufgefrischt wurde, diese Speicherzelle (21) aufzufrischen (140).
  7. Ansteuereinheit (1) nach Anspruch 6, verbindbar mit einem Temperatursensor (3) für eine Temperatur (3a) des Speichers (2) und dazu ausgebildet, die vorgegebene Zeitdauer in Abhängigkeit dieser Temperatur (3a), bzw. eines zeitlichen Verlaufs dieser Temperatur (3a), anzupassen.
  8. Hardwareplattform (5) für ein künstliches neuronales und/oder neuromorphes Netzwerk (4), dessen interne Verarbeitungskette (41) eine Vielzahl untereinander verbundener Neuronen (42) umfasst, umfassend mindestens einen Speicher (2), in dem als diskrete Werte vorliegende Gewichte (43a-43c) von Verbindungen (44a-44c) zwischen Neuronen (42) in Form von elektrischen Widerstandswerten (22a) von Memristoren (22) kodiert sind, und weiterhin umfassend eine Ansteuereinheit (1) nach einem der Ansprüche 1 bis 7.
  9. Analoges Rechenmodul (6), welches einem oder mehreren analogen Eingangssignalen (61, 62) nach Maßgabe mindestens einer Rechenoperation (63) ein oder mehrere Ausgangssignale (64) zuordnet, wobei die mindestens eine Rechenoperation (63), und/oder mindestens ein diese Rechenoperation (63) festlegender diskreter Parameter (63a), in einem Speicher (2) in Form mindestens eines elektrischen Widerstandswerts (22a) eines Memristors (22) kodiert ist, und wobei der Speicher (2) mit einer Ansteuereinheit (1) nach einem der Ansprüche 1 bis 7 gekoppelt ist.
  10. Analoges Rechenmodul (6) nach Anspruch 9, ausgebildet zur Berechnung eines Kreuzprodukts zweier Vektoren oder Matrixprodukts zweier Matrizen.
  11. Computerprogramm, enthaltend maschinenlesbare Anweisungen, die, wenn sie auf einem Computer, und/oder auf einem Steuergerät, und/oder auf einem Embedded-System ausgeführt werden, den Computer, das Embedded-System, bzw. das Steuergerät, zu einer Ansteuereinheit (1) nach einem der Ansprüche 1 bis 7 aufwerten.
DE102018213147.3A 2018-08-07 2018-08-07 Auffrischen von mittels Memristoren gespeicherten Daten Pending DE102018213147A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102018213147.3A DE102018213147A1 (de) 2018-08-07 2018-08-07 Auffrischen von mittels Memristoren gespeicherten Daten
US16/532,828 US11436476B2 (en) 2018-08-07 2019-08-06 Refreshing of data stored by memristors
CN201910725354.5A CN110827894A (zh) 2018-08-07 2019-08-07 借助忆阻器刷新存储的数据

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018213147.3A DE102018213147A1 (de) 2018-08-07 2018-08-07 Auffrischen von mittels Memristoren gespeicherten Daten

Publications (1)

Publication Number Publication Date
DE102018213147A1 true DE102018213147A1 (de) 2020-02-13

Family

ID=69186337

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018213147.3A Pending DE102018213147A1 (de) 2018-08-07 2018-08-07 Auffrischen von mittels Memristoren gespeicherten Daten

Country Status (3)

Country Link
US (1) US11436476B2 (de)
CN (1) CN110827894A (de)
DE (1) DE102018213147A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11462267B2 (en) * 2020-12-07 2022-10-04 Rockwell Collins, Inc. System and device including memristor material

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7894254B2 (en) * 2009-07-15 2011-02-22 Macronix International Co., Ltd. Refresh circuitry for phase change memory
US9753959B2 (en) * 2013-10-16 2017-09-05 University Of Tennessee Research Foundation Method and apparatus for constructing a neuroscience-inspired artificial neural network with visualization of neural pathways
DE102014208609A1 (de) 2014-05-08 2015-11-26 Robert Bosch Gmbh Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit
DE102014211111A1 (de) 2014-06-11 2015-12-17 Robert Bosch Gmbh Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit
US10423878B2 (en) * 2016-09-07 2019-09-24 International Business Machines Corporation Artificial neuron apparatus
US10445640B1 (en) * 2018-07-13 2019-10-15 International Business Machines Corporation Scalable refresh for asymmetric non-volatile memory-based neuromorphic circuits

Also Published As

Publication number Publication date
US11436476B2 (en) 2022-09-06
CN110827894A (zh) 2020-02-21
US20200050925A1 (en) 2020-02-13

Similar Documents

Publication Publication Date Title
DE112018004223T5 (de) Trainieren künstlicher neuronaler Netze
DE102017004374B4 (de) Abriebgrössen-Schätzvorrichtung und Abriebgrössen-Schätzverfahren für das Rückschlagventil einer Spritzgiessmaschine
DE112012005548B4 (de) Ausgangswertkorrekturverfahren für eine Sensorvorrichtung für eine physikalische Grösse, Ausgangskorrekturverfahren für einen Sensor für eine physikalische Grösse, Sensorvorrichtung für eine physikalische Grösse und Ausgangswertkorrekturvorrichtung für einen Sensor für eine physikalische Grösse
DE2913900C2 (de) Verfahren und Vorrichtung zur Überwachung eines Betriebsparameters einer Sekundärbatterie in einem Fahrzeug
DE1196410C2 (de) Lernfaehige Unterscheidungsmatrix fuer Gruppen von analogen Signalen
DE60314531T2 (de) Verfahren zum betrieb eines ferroelektrischen oder elektret- speicherbausteins und baustein dieser art
DE102017201417A1 (de) Verfahren zum bestimmen einer selbstentladungsstromcharakteristik einer speicherzelle
DE102012009502A1 (de) Verfahren zum Trainieren eines künstlichen neuronalen Netzes
DE102015116905B4 (de) Hochlinearer Analog-Digital-Wandler und Verfahren für nichtflüchtigen Speicher
DE112018004992B4 (de) Übertragung synaptischer gewichte zwischen leitfähigkeitspaaren mitpolaritätsumkehr zum verringern fester einheitenasymmetrien
DE112018002950T5 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
DE112012003422T5 (de) Vorrichtungen, Geräte und Verfahren zum Erkennen eines Snapback-Ereignisses in einer Schaltung
DE112017004156T5 (de) Speicherzellenstruktur
DE102018124093A1 (de) Speichervorrichtung und betriebsverfahren derselben
DE102016216945A1 (de) Verfahren und Vorrichtung zum Ausführen einer Funktion basierend auf einem Modellwert eines datenbasierten Funktionsmodells basierend auf einer Modellgültigkeitsangabe
DE102014220913B4 (de) Verfahren und Vorrichtung zur Bestimmung einer Widerstandsänderung einer Energiespeichereinrichtung und Fahrzeug
DE102004035503B4 (de) Nichtlinearitätskorrekturverfahren und -vorrichtung für Ausgangsdaten einer A/D-Wandlung
DE102018132503A1 (de) Detektion von Codewörtern
DE102018213147A1 (de) Auffrischen von mittels Memristoren gespeicherten Daten
DE2539628A1 (de) Schaltungsanordnung
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
DE102013206291A1 (de) Verfahren und Vorrichtung zum Erstellen eines nicht parametrischen, datenbasierten Funktionsmodells
DE102016125044A1 (de) Sensorsteuerung, Sensorsignalempfänger und Sensorsystem
DE112012000372T5 (de) Programmieren von Phasenwechselspeicherzellen
DE102017219269A1 (de) Klassifizierung mit automatischer Auswahl aussichtsreicher Lerndaten