DE102005032514B3 - Speicher und Verfahren zum Betrieb des Speichers - Google Patents

Speicher und Verfahren zum Betrieb des Speichers Download PDF

Info

Publication number
DE102005032514B3
DE102005032514B3 DE102005032514A DE102005032514A DE102005032514B3 DE 102005032514 B3 DE102005032514 B3 DE 102005032514B3 DE 102005032514 A DE102005032514 A DE 102005032514A DE 102005032514 A DE102005032514 A DE 102005032514A DE 102005032514 B3 DE102005032514 B3 DE 102005032514B3
Authority
DE
Germany
Prior art keywords
memory
microcontroller
software module
stored
program file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102005032514A
Other languages
English (en)
Inventor
Alessandro Dr. Fin
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.)
Polaris Innovations Ltd
Original Assignee
Qimonda Flash 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 Qimonda Flash GmbH filed Critical Qimonda Flash GmbH
Application granted granted Critical
Publication of DE102005032514B3 publication Critical patent/DE102005032514B3/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • G11C29/16Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

Verfahren zum Betrieb eines Speichers, umfassend die Schritte:
– Bereitstellen eines Speichers umfassend einen Mikrocontroller (4), einen fehlertoleranten Arbeitsspeicher (6), welcher eingerichtet ist ausführbare Programmdateien zu speichern und welcher dem Mikrocontroller (4) zugeordnet ist, sowie ein Speicherzellenfeld (8) zur Speicherung von extern bereitgestellten Nutzerdaten;
– Erzeugen eines Ereignisses;
– Laden einer ersten Programmdatei, die in dem Speicherzellenfeld (8) gespeichert ist, in einen ersten Teilbereich (62) des Arbeitsspeichers (6) in Abhängigkeit von dem Ereignis durch den Mikrocontroller (4);
– Ausführen der ersten Programmdatei durch den Mikrocontroller (4), um einen Befehl zum Betrieb des Speichers auszuführen.

Description

  • Die Erfindung betrifft einen Speicher sowie ein Verfahren zum Betrieb des Speichers. Ausführungsbeispiele der Erfindung betreffen des Weiteren nichtflüchtige Speicher, insbesondere Flash-Speicher, wobei diese einen Mikrocontroller, einen fehlertoleranten Arbeitsspeicher sowie ein Speicherzellenfeld aufweisen.
  • Flash-Speicherprodukte haben in den vergangenen Jahren zunehmend an Bedeutung als Speichermedien gewonnen. Allgemein wird ein Flash-Speicher in drei Hauptbestandteile unterschieden: nämlich einen Mikrocontroller, mit welchem der Flash-Speicher betrieben wird einen Arbeitsspeicher, welcher dem Mikrocontroller zugeordnet ist und als schneller, fehlertoleranter Speicherbereich für durch den Mikrocontroller ausführbare Programmdateien dient; sowie ein Speicherzellenfeld, welches zur Speicherung beliebiger von extern empfangener Nutzerdaten eingerichtet ist. Der Mikrocontroller ist allgemein als ein den Betrieb des Speicherzellenfeldes kontrollierender, deterministischer Automat ausgebildet.
  • Der fehlertolerante Arbeitsspeicher weist selbst einen Speicherbereich auf, der eine Größe von typischerweise 4 kb umfasst. Um die genannte Fehlertoleranz zu ermöglichen, ist darin aber nur ein Bereich von 1 kb für die Speicherung von ausführbaren Programmdateien reserviert, wobei sich dieser Speicherbereich zum Beispiel 4-fach innerhalb des Arbeitsspeichers wiederholt. Eine solche Redundanz stellt sicher, dass ein störungsfreies Lesen von Binärcode aus dem Arbeitsspeicher in dem Mikrocontroller erfolgen kann.
  • Der Arbeitsspeicher, das Speicherzellenfeld und der Mikrocontroller sind im Allgemeinen in einem Flash-Speicherchip integriert. Dabei ist der Arbeitsspeicher in direkter Zuordnung zum Mikrocontroller, das heißt in unmittelbarer Umgebung des Mikrocontrollers auf dem Chip, eingerichtet, um Signallaufzeiten zu verkürzen und Strom- bzw. Spannungsverluste zu vermeiden. Schranken bezüglich der Flächenausdehnung dieser Komponenten machen es erforderlich, auch den Arbeitsspeicher so klein wie möglich zu halten. Die Replikation jedes Bytes auf das 4-fache des ursprünglichen Umfangs bedeutet eine beträchtliche Flächenzunahme für jedes zusätzliche, im Arbeitsspeicher eingerichtete Byte.
  • Die in einem Flash-Speicher einzurichtende Kapazität für den Arbeitsspeicher des Mikrocontrollers ist daher nur begrenzt, was zu erheblichen Einschränkungen beim Design und der Entwicklung größerer Softwareprogramme führt, welche durch den Mikrocontroller auszuführen sind. Beispiele solcher Programme betreffen insbesondere auch Selbsttest-Algorithmen, die als so genannte BIST-Algorithmen (built-in self test) in das System integriert werden. In den vergangenen Jahren haben solche Algorithmen zunehmend an Bedeutung gewonnen und ersetzen dabei die früher vorherrschenden Ad-hoc ATE-Programme (Automated Test Equipment), welches vor allem durch das Ziel eines verminderten Kostenaufwandes für die Tests solcher Flash-Speicherchips bedingt ist.
  • In der Druckschrift DE 103 34 801 B3 ist ein Speicher beschrieben, der ein Speicherzellenfeld und ein BIST-Modul aufweist. Das BIST-Modul umfasst einen Controller, einen nurlesbaren Speicher, einen programmierbaren, nichtflüchtigen Speicher sowie einen flüchtigen Speicher. Anhand von Flags, die im nichtflüchtigen Speicher gesetzt sind, kann Programmcode aus den beiden anderen BIST-Speichern in den flüchtigen Speicher geladen werden, um ihn mittels des BIST-Controllers auszuführen.
  • Der Erfindung liegt die Aufgabe zu Grunde, einen Speicher, insbesondere einen Flash-Speicher, zur Verfügung zu stellen, der nicht durch die Kapazitätsbeschränkungen bezüglich des Arbeitsspeichers, in dem Binärcode gespeichert wird, leidet. Es soll insbesondere auch ein Speicher zur Verfügung gestellt werden, der zum Beispiel die Implementation größerer Selbsttest-Algorithmen erlaubt.
  • Es ist außerdem eine Aufgabe der Erfindung, die Kosten und den Aufwand zum Testen eines Speichers zu verringern.
  • Die Aufgabe wird gelöst durch ein Verfahren zum Betrieb eines Speichers, umfassend die Schritte:
    • – Bereitstellen des Speichers umfassend einen Mikrocontroller, einen fehlertoleranten Arbeitsspeicher, welcher zur Speicherung von Programmdateien eingerichtet ist und dem Mikrocontroller zugeordnet ist, und ein Speicherzellenfeld zum Speichern extern zugeführter Nutzerdaten, des Weiteren:
    • – Erzeugen eines Ereignisses,
    • – Laden einer ersten Programmdatei, die in dem Speicherzellenfeld gespeichert ist, in einen ersten Bereich des Arbeitsspeichers in Abhängigkeit von dem Ereignis, und
    • – Ausführen dieser Programmdatei durch den Mikrocontroller zum Zweck des Betriebs des Speichers. Die Aufgabe wird des Weiteren gelöst durch einen Speicher, umfassend:
    • – einen Mikrocontroller zum Steuern des Betriebs des Speichers,
    • – ein Speicherzellenfeld, das zum Speichern von Nutzerdaten mit dem Mikrocontroller verbunden ist, wobei die Nutzerdaten von extern zugeführt werden,
    • – einen fehlertoleranten Arbeitsspeicher, der mit dem Mikrocontroller zur Speicherung von Programmdateien, die der mit dem Mikrocontroller verbunden ist und zur Speicherung von Programmdateien eingerichtet ist, die vom Mikrocontroller zum Zwecke des Testens, der Initialisierung oder einer Anwendung des Speicherbausteins zu führen sind, wobei der Arbeitsspei cher einen ersten Teilbereich aufweist, in dem wenigstens eine erste Programmdatei geladen und auch wieder gelöscht, entladen oder überschrieben werden kann durch eine weitere Programmdatei anhand des Mikrocontrollers.
  • Herkömmliche Arbeitsspeicher, die einem Mikrocontroller zugeordnet sind, sind vom Typ ausschließlich lesbarer Speicher (ROM, Read-Only-Memory). Diese werden ersetzt durch einen Arbeitsspeicher, der wenigstens einen Teilbereich aufweist, in dem der Binärcode dynamisch geladen, gelöscht, überschrieben, oder entladen werden kann. Entsprechend können Programmdateien, deren Ausführung durch den Mikrocontroller kurz bevor steht, dynamisch durch den Mikrocontroller in den Arbeitsspeicher geladen werden. Obwohl die Größe des Arbeitsspeichers lediglich entsprechend dem Stand der Technik, das heißt 4 kb einschließlich der 4-fachen Redundanz, eingerichtet sein kann, ist es möglich, wesentlich mehr Kapazität für den Binärcode in Programmdateien für die Ausführung in dem Mikrocontroller im Arbeitsspeicher zur Verfügung zu stellen, weil nicht mehr benötigte Programmdateien entfernt werden können.
  • Entsprechend einem Ausführungsbeispiel der Erfindung wird der Lade- bzw. Entlademechanismus in oder aus dem Arbeitsspeicher durch einen Softwaremodul-Kernel gesteuert. Dieser Softwaremodul-Kernel ist zusätzlich zu den dynamisch geladenen Programmdateien in dem Arbeitsspeicher gespeichert. Die Speicherung des Softwaremodul-Kernels kann dauerhaft sein, jedoch soll die Erfindung nicht darauf beschränkt sein. Insbesondere können verschiedene Teilbereiche des Arbeitsspeichers logisch benachbarte Segmente umfassen, sodass der Arbeitsspeicher für eine Löschung eingerichtet ist, auch wenn nur ein Anteil eines Teilbereiches tatsächlich gelöscht oder durch weiteren Binärcode überschrieben wird.
  • Der Softwaremodul-Kernel ist in einem Teilbereich des Arbeitsspeichers abgelegt, der verschieden ist von demjenigen Teilbereich, der zur Speicherung der Programmdateien eingerichtet ist. Diese Unterscheidung garantiert, dass der Softwaremodul-Kernel nicht durch weitere Programmdateien überschrieben wird, die aktuell in den Arbeitsspeicher geladen werden.
  • Die Konfiguration des erfindungsgemäßen Speichers bietet grundlegende Funktionalitäten – ähnlich einem Betriebssystem-Kernel – für ein Speicherdesign an, wobei die Konfiguration insbesondere auch für Flash-Speicher geeignet ist. Solche Konfigurationen waren bisher nicht beschaffen, ein sogenanntes Embedded OS (OS: Operating System, Betriebssystem) zu unterstützen. Während der herkömmlich durch den Mikrocontroller ausgeführte Binärcode einer festen vorbestimmten Frequenz von Befehlen entsprach, richtet sich der Betrieb des Speichers entsprechend der vorliegenden Erfindung nach den dynamisch auftretenden Ereignissen und Erfordernissen, die von der Umgebung herangeführt werden. Insbesondere kann der Arbeitsspeicher basierend auf Ereignissen betrieben werden, die von externen Quellen erzeugt werden. Es kann sich bei diesen Ereignissen beispielsweise um Signale handeln, mit denen ein Selbsttest angestoßen wird. Auch können Ereignisse durch interne Quellen angestoßen werden, die vom expliziten Status einzelner Komponenten des Speichers abhängen.
  • Bei der Ausführung im Mikrocontroller werden diese Ereignisse durch den Softwaremodul-Kernel verarbeitet. Der Softwaremodulkernel ist derart eingerichtet, dass er vorausschauend spezielle Programmdateien auswählen und diese in den Arbeitsspeicher vor ihrer eigentlichen Ausführung durch den Mikro controller laden kann. Der Ladevorgang hängt von dem aktuellen Modus ab, in dem sich der Flash-Speicher befindet. So wird zum Beispiel während eines Testmodus genug Zeit bleiben, die entsprechenden Test-Programmdateien in den Arbeitsspeicher zu laden und diese anschließend durch den Mikrocontroller auszuführen. Wichtig ist, dass der Softwaremodul-Kernel dazu eingerichtet ist, eigenständig die Entscheidung darüber zu fassen, welche Programmdatei als nächstes in den Arbeitsspeicher zu laden ist.
  • Einem weiteren Aspekt der Erfindung zufolge wird das vorteilhafte Konzept einer wiederbeschreibbaren Programmdateisektion (erster Teilbereich) in Kombination mit einem den Softwaremodul-Kernel beispielsweise dauerhaft speichernden zweiten Teilbereich weiter unterstützt durch einen dritten Teilbereich in dem Arbeitsspeicher, der – zum Beispiel: dauerhaft – gespeicherte globale Variablen umfasst. Während der Softwaremodulkernel dadurch für eine Reihe verschiedener Anwendungen in Speichern standardisiert werden kann, dienen die globalen Variablen dazu, eine spezielle Ausführung des Softwaremodulkernels in konkreten Speicherbausteinen zu gewährleisten. Die globalen Variablen dienen dazu, eine aktuelle Programmdatei, die in dem dynamischen Teilbereich des Arbeitsspeichers geladen ist, zu identifizieren, eine nächste Programmdatei zum dynamischen Speichern auszuwählen, sowie Ereignisbedingungen zum Laden der jeweils nächsten Programmdateien festzulegen.
  • Es ist hervorzuheben, dass die Erfindung nicht auf eine Anwendung in Flash-Speichern begrenzt ist. Dem Fachmann ist klar, dass das Verfahren und die Konfiguration der Speicherkomponenten auch im Bereich anderer Speichertypen einsetzbar ist, insbesondere bei statischen oder nichtflüchtigen Spei chern, beispielsweise Magnetspeichern (MRAM), Nano-Kristallspeichern, etc.
  • Die Erfindung soll nun anhand von Ausführungsbeispielen mit Hilfe einer Zeichnung näher erläutert werden. Darin zeigen:
  • 1 einen Flash-Speicher gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 2 die Aufteilung eines Arbeitsspeichers gemäß dem Ausführungsbeispiel der vorliegenden Erfindung, wobei dieser in einem für Programmdateien vorgesehenen Teilbereich wiederbeschreibbar eingerichtet ist;
  • 3 ein Flussdiagramm entsprechend dem Ausführungsbeispiel der vorliegenden Erfindung.
  • 1 zeigt ein Ausführungsbeispiel der vorliegenden Erfindung. Ein Flash-Speicher 2 umfasst einen Arbeitsspeicher 6, welcher einem Mikrocontroller 4 zugeordnet ist. Der Mikrocontroller 4 weist ein Interface 5 auf, mit dem eine Verbindung zu einer externen Daten- oder Signalquelle herstellbar ist, um einen Datentransfer zwischen dem Flash-Speicher und der externen Quelle zu ermöglichen. Die Daten sollen entweder in dem Flash-Speicher gespeichert oder von dort ausgelesen werden, oder es soll ein Anschluss des Mikrocontrollers an ein externes Test-Equipment zum Zweck einer Datenkommunikation bewerkstelligt werden.
  • Der Mikrocontroller 4 steuert die Speicherung von Daten in dem Flash-Speicherzellenfeld 8, welche auf dem Prinzip so genannter Charge Trapping Devices, bei denen die Speicherung von Informationen durch Einfangen heißer Ladungsträger in ei ne Sequenz dünn aufgetragener Schichten (ONO) erfolgt. Es kann sich um einen NAND oder einen NOR-Flash-Speicher handeln. Die Größe des Speichers kann einen weiten Bereich von Werten umfassen, sollte aber an den speziellen Einsatz des Flash-Speichers angepasst sein, zum Beispiel 64 Mb in Bezug auf eine beliebige MMC-Karte (Multi-media Card).
  • Der Arbeitsspeicher 6 kann unter anderem vom Typ eines SRAM (Static RAM), DRAM (Dynamic Random Access Memory) oder ebenfalls vom Flash-Typ (NAND oder NOR) sein. Er hat in diesem Ausführungsbeispiel eine Größe von 4 kb mit einer 4-fach-Redundanz, um die Eigenschaft der Fehlertoleranz bereitzustellen. Das bedeutet, dass jedes Bit des Binärcodes, der im Arbeitsspeicher 6 gespeichert ist, in 4-facher Weise an unterschiedlichen Stellen im Arbeitsspeicher 6 wiederholt ist.
  • Das Speicherzellenfeld 8 umfasst hauptsächlich einen wiederbeschreibbaren Speicherbereich und zusätzlich auch einen sogenannten OTP-Bereich 10 (One Time Programming). Dieser wird üblicherweise nicht wiederbeschrieben. Der OTP-Bereich 10 repräsentiert einen Teilbereich des Speicherzellenfeldes 8.
  • Der OTP-Bereich 10 eines konventionellen Flash-Speichers besitzt im Allgemeinen Größen von rund 100 kb – eine Größe, die in früheren Anwendungen weithin ungenutzt blieb. In diesem OTP-Bereich 10 wird permanent gespeicherte Information über das Speicherzellenfeld zum Zweck des Testens und der Boot-Prozedur zur Verfügung gestellt. Zum Beispiel beinhaltet dieser Bereich Informationen über die Größe des Speicherzellenfeldes, den Hersteller etc. Durch diese Informationen werden allerdings nur 0.1 % des Speicherbereichs des OTP-Bereichs 10 verbraucht. Entsprechend dem vorliegenden Ausführungsbeispiel wird der OTP-Bereich 10 in Unterteilungen 102, 104, 106... 10 n unterteilt, die zur Aufnahme von Programmdateien vorgesehen sind. Das heißt, dass Binärcode in dem OTP-Bereich 10 des Speicherzellenfeldes 8 gespeichert wird, während Nutzerdaten in dem verbleibenden Anteil des Speicherzellenfeldes 8 außerhalb des OTP-Bereichs 10 abgelegt bzw. ausgelesen werden können.
  • Jede Unterteilung in dem OTP-Bereich 10 dient zur Speicherung einer Programmdatei, die in Abhängigkeit von einem bestimmten Ereignis während der Initialisierung oder des Betriebs des Flash-Speichers ausgeführt wird. Zum Beispiel kann die Unterteilung 102 eine Boot-Sequenz aufnehmen, die Unterteilung 104 dagegen einen Self-Check-Code für die Ausführung eines Selbsttests während des Normalbetriebs des Flash-Speichers enthalten. Unterteilung 106 kann weiter den so genannten BIST-Binärcode aufweisen, welcher während oder nach der Herstellung des Speichers ausgeführt wird. Weitere Unterteilungen zur Aufnahme weiterer zweckgebundener Programmdateien können vorgesehen sein.
  • 2 zeigt eine nähere Darstellung des Arbeitsspeichers 6. Dieser umfasst Teilbereiche 62, 64 und 66, die zur Speicherung temporärer, das heißt überschreibbarer, oder dauerhaft gespeicherter Informationen eingerichtet sind. Ein erster Teilbereich 62 nimmt Programmdateien auf, die vom Mikrocontroller 4 auszuführen sind und besitzt dazu die Eigenschaft, wiederbeschreibbar zu sein. Ein zweiter Teilbereich 66 dient zur Aufnahme des Softwaremodul-Kernels, der Aufgaben ähnlich einem Embedded OS (Betriebssystem) übernimmt. Dieser Teilbereich 66 ist dabei mit einem Schreibschutz versehen, das heißt, er ist nur-lesbar (read-only).
  • Wie in dem Flussdiagramm der 3 gezeigt ist, wird der Softwaremodul-Kernel aus dem Arbeitsspeicher 6 zuerst ausgelesen, genauer gesagt aus dem Teilbereich 66 in dem Arbeitsspeicher 6 geladen, um dann im Mikrocontroller 4 ausgeführt zu werden. Des Weiteren werden globale Variablen, die permanent im dritten Teilbereich 64 des Arbeitsspeichers 6 gespeichert sind, ausgelesen. Durch diese globalen Variablen wird der Programmfluss auf Grund des Softwaremodul-Kernels für die aktuelle Anwendung konfiguriert.
  • Der Softwaremodul-Kernel ist im zweiten Teilbereich 66 abgelegt. Dies hat den Vorteil, dass er für eine Reihe von Anwendungen in verschiedenen Flash-Speicherprodukten einsetzbar ist, wobei er für jede spezifische Anwendung auf Grundlage der jeweils gesetzten globalen Variablen im dritten Teilbereich 64 adaptiert ist.
  • Im vorliegenden Ausführungsbeispiel soll ein Selbsttest, das heißt, ein letzter Test auf Funktionsfähigkeit vor der Montage zu Chipbausteinen (Assembly) durchgeführt werden. Zu diesem Zweck wird ein Ereignis durch ein angeschlossenes Testequipment (ATE, Automated Test Equipment) erzeugt. Dieses Ereignis wird über das Interface 5 dem Mikrocontroller 4 zugeführt. Dieser detektiert das Ereignis und bewertet es anhand des Softwaremodul-Kernels, welcher den Betriebsablauf des Mikrocontrollers 4 steuert. In Abhängigkeit von diesem speziellen Ereignis beginnt der Mikrocontroller 4 ein oder mehrere Programmdateien aus der Unterteilung 106 des OTP-Bereichs 10 auszuwählen, in welchem die BIST-Algorithmen zur Durchführung des Selbsttests hinterlegt sind. Der Binärcode, welcher ehedem im Arbeitsspeicher 6 gespeichert war, wird daher durch diese Programmdateien überschrieben.
  • Auf Grund der neuerdings gespeicherten Programmdateien im Arbeitsspeichers 6 setzt der Mikrocontroller 4 seinen Selbsttest entsprechend dem in den Programmdateien enthaltenen Binärcode fort, das heißt, entsprechend dem BIST-Algorithmus. Der Softwarecode kann darüber hinaus eine Programmsequenz enthalten, die dem Mikrocontroller 4 veranlasst, die Testresultate zu sammeln und diese über das Interface 5 zu dem extern angeschlossenen ATE-Equipment zu übertragen.
  • Abhängig von dem Softwaremodul-Kernel kehrt dann der Mikrocontroller 4 aus dem Testmodus in einen Betriebsmodus zurück, wobei wiederum aktuell erzeugte Ereignissignale den Mikrocontroller 4 dazu bewegen, nochmals neue Programmdateien aus dem Speicherzellenfeld 8, oder genauer, aus dem OTP-Bereich 10 in den Teilbereich 62 enthaltenen Programmdateien in dem Arbeitsspeicher 6 zu laden. Dabei können auch die nun nicht mehr benötigten BIST-Programmdateien überschrieben werden.
  • Selbstverständlich können in diesem Ausführungsbeispiel vorgesehenen Teilbereiche 64, 66, die zur permanenten Speicherung der globalen Variablen bzw. des Softwaremodulkernels vorgesehen sind, in einen Zustand versetzt werden, bei dem der Binärcode in diesen Teilbereichen überschrieben werden kann. Dies kann zum Beispiel das gelegentliche Einspielen von Firmware-Updates betreffen. Das Gleiche gilt in Bezug auf die Unterteilung 10210n des OTP-Bereiches 10, um Updates der Programmdateien, die dort hinterlegt sind, zu erzielen.
  • Es ist anzumerken, dass es in das Belieben des Fachmanns gestellt ist, ausgehend von den beschriebenen Ausführungsbeispielen des Flash-Speichers sowie des Verfahrens zum Betrieb desselben Modifikationen und Abänderungen im Rahmen der hier beschriebenen Lehre der Erfindung vorzunehmen. Die Ausfüh rungsbeispiele sind daher so zu verstehen, dass entsprechende Änderungen, die an speziellen Ausführungsbeispielen der Erfindung vorgenommen werden, auch noch als von den beigefügten Ansprüchen umfasst anzusehen sind.
  • 2
    Speicher, Flash-Speicher
    4
    Mikrocontroller
    6
    Arbeitsspeicher
    8
    Speicherzellenfeld (Flash)
    10
    OTP-Bereich
    62
    erster Teilbereich für ausführbare Programmdateien (überschreibbar)
    64
    dritter Teilbereich für globale Variablen (permanent)
    66
    zweiter Teilbereich für Softwaremodulkernel (permanente Speicherung)
    102 bis 106, 10 n
    Unterteilungen des OTP-Bereiches zur dauerhaften Speicherung von Programmdateien

Claims (16)

  1. Verfahren zum Betrieb eines Speichers, umfassend die Schritte: – Bereitstellen eines Speichers umfassend einen Mikrocontroller (4), einen fehlertoleranten Arbeitsspeicher (6), welcher eingerichtet ist ausführbare Programmdateien zu speichern und welcher dem Mikrocontroller (4) zugeordnet ist, sowie ein Speicherzellenfeld (8) zur Speicherung von extern bereitgestellten Nutzerdaten; – Erzeugen eines Ereignisses; – Laden einer ersten Programmdatei, die in dem Speicherzellenfeld (8) gespeichert ist, in einen ersten Teilbereich (62) des Arbeitsspeichers (6) in Abhängigkeit von dem Ereignis durch den Mikrocontroller (4); – Ausführen der ersten Programmdatei durch den Mikrocontroller (4), um einen Befehl zum Betrieb des Speichers auszuführen.
  2. Verfahren nach Anspruch 1, bei dem vor und während dem Erzeugen des Ereignisses ein Softwaremodulkernel durch den Mikrocontroller (4) ausgeführt wird, wobei der Softwaremodulkernel in einem zweiten Teilbereich des fehlertoleranten Arbeitsspeichers (6) gespeichert ist.
  3. Verfahren nach Anspruch 2, bei dem die Ausführung des Softwaremodulkernels mit Hilfe von globalen Variablen gesteuert wird, die in einem dritten Teilbereich des fehlertoleranten Arbeitsspeichers (6) gespeichert sind und durch den Mikrocontroller ausgelesen werden.
  4. Verfahren nach Anspruch 1, bei dem die erste Programmdatei ein Build-In-Selftest-Programm (BIST) zur Ausführung eines funktionalen Tests des Speichers ist.
  5. Verfahren nach Anspruch 1, bei dem die erste Programmdatei ein Boot-Programm zur Durchführung einer Initialisierungssequenz beim Hochfahren des Speichers ist.
  6. Verfahren nach Anspruch 2, bei dem während der Ausführung des Softwaremodulkernels durch den Mikrocontroller (4) das erzeugte Ereignis bewertet wird, und die erste Programmdatei in Abhängigkeit von dem bewerteten Ereignis aus einer Anzahl von Programmdateien, die in dem Speicherzellenfeld (8) gespeichert sind, ausgewählt und in den ersten Teilbereich des Arbeitsspeichers (6) geladen wird.
  7. Verfahren nach Anspruch 2, bei dem ein zweites Ereignis erzeugt und bewertet wird durch den Mikrocontroller (4) während der Ausführung des Softwaremodulkernels, um eine zweite Programmdatei in den Arbeitsspeicher (6) in Abhängigkeit von dem zweiten Ereignis zu laden, wobei die erste Programmdatei innerhalb des fehlertoleranten Arbeitsspeichers (6) gelöscht, entladen oder überschrieben wird.
  8. Speicher, umfassend: – einen Mikrocontroller (4) zur Steuerung des Betriebs des Speichers; – ein Speicherzellenfeld (8), das mit dem Mikrocontroller (4) zum Speichern von Nutzerdaten verbunden ist, die dem Speicher von extern zugeführt werden; – einen fehlertoleranter Arbeitsspeicher (6), der mit dem Mikrocontroller zur Speicherung von ausführbaren Programmdateien verbunden ist, um einen Test, eine Initialisierung oder eine Anwendung in dem Speicher auszuführen; – wobei der Arbeitsspeicher (6) einen ersten Teilbereich (62) zur Aufnahme wenigstens einer ersten Programmdatei aufweist, die gelöscht, entladen oder mit wenigstens einer weiteren Programmdatei durch den Mikrocontroller (4) überschrieben werden kann.
  9. Speicher nach Anspruch 8, wobei der Speicher ein nichtflüchtiger Speicher ist.
  10. Speicher nach Anspruch 9, wobei der nichtflüchtige Speicher ein Flash-Speicher ist.
  11. Speicher nach Anspruch 8, bei dem das Speicherzellenfeld (8) einen OTP-Bereich (10) umfasst.
  12. Speicher nach Anspruch 11, bei dem der OTP-Bereich (10) dazu eingerichtet ist, Programmdateien dauerhaft zu speichern.
  13. Speicher nach Anspruch 12, bei dem der fehlertolerante Speicher (6) einen Teilbereich (64) zum Speichern eines Softwaremodulkernels umfasst, welcher beschaffen ist, die wenigstens eine Programmdatei aus dem OTP-Bereich (10) in den ersten Teilbereich (62) zu laden, zu löschen, zu entladen, oder zu überschreiben durch weitere Programmdateien, wenn der Softwaremodul-Kernel durch den Mikrocontroller (4) ausgeführt wird.
  14. Speicher nach Anspruch 13, bei dem der Teilbereich (64) zum Speichern des Softwaremodul-Kernels dazu eingerichtet ist, diesen dauerhaft innerhalb des fehlertoleranten Arbeitsspeichers (6) zu speichern.
  15. Speicher nach Anspruch 13, bei dem der fehlertolerante Arbeitsspeicher (6) einen dritten Teilbereich (66) zum Speichern globaler Variabeln umfasst, welche dazu bestimmt sind, die Ausführung des Softwaremodul-Kernels in dem Mikrocontroller (4) zu konfigurieren.
  16. Speicher nach Anspruch 15, bei dem der Teilbereich (66) zum Speichern globaler Variablen eingerichtet ist, sodass diese globalen Variablen dauerhaft in dem Arbeitsspeicher (6) gespeichert sind.
DE102005032514A 2005-06-08 2005-07-12 Speicher und Verfahren zum Betrieb des Speichers Expired - Fee Related DE102005032514B3 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/147,988 US20060282626A1 (en) 2005-06-08 2005-06-08 Memory device and method of controlling operation of the memory device
US11/147,988 2005-06-08

Publications (1)

Publication Number Publication Date
DE102005032514B3 true DE102005032514B3 (de) 2007-01-11

Family

ID=37509974

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005032514A Expired - Fee Related DE102005032514B3 (de) 2005-06-08 2005-07-12 Speicher und Verfahren zum Betrieb des Speichers

Country Status (3)

Country Link
US (1) US20060282626A1 (de)
CN (1) CN100456243C (de)
DE (1) DE102005032514B3 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101404721B1 (ko) * 2008-04-28 2014-06-10 시게이트 테크놀로지 엘엘씨 하드디스크 드라이브의 공정방법
IT1392071B1 (it) * 2008-11-27 2012-02-09 St Microelectronics Srl Metodo per eseguire un testing elettrico di dispositivi elettronici
US8112682B2 (en) * 2009-04-23 2012-02-07 Sandisk Il Ltd Method and device for bad-block testing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10334801B3 (de) * 2003-07-30 2005-01-27 Infineon Technologies Ag Halbleiterschaltung und Verfahren zum Testen, Überwachen und applikationsnahen Einstellen einer Halbleiterschaltung

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69832609D1 (de) * 1998-09-30 2006-01-05 St Microelectronics Srl Emulierte EEPROM Speicheranordnung und entsprechendes Verfahren
JP2000251035A (ja) * 1999-02-26 2000-09-14 Hitachi Ltd メモリカード
US7137037B2 (en) * 2003-03-27 2006-11-14 Silicon Motion, Inc. Data storage system and method for testing the same
JP3945652B2 (ja) * 2004-05-12 2007-07-18 株式会社ルネサステクノロジ 不揮発性記憶装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10334801B3 (de) * 2003-07-30 2005-01-27 Infineon Technologies Ag Halbleiterschaltung und Verfahren zum Testen, Überwachen und applikationsnahen Einstellen einer Halbleiterschaltung

Also Published As

Publication number Publication date
CN1877529A (zh) 2006-12-13
US20060282626A1 (en) 2006-12-14
CN100456243C (zh) 2009-01-28

Similar Documents

Publication Publication Date Title
DE102005033165B4 (de) Nichtflüchtiges Speicherbauelement, Programmier- und Schreibverfahren
DE102005013285B4 (de) Verfahren zum Konfigurieren eines Steuergeräts und Steuergerät
DE102009051862A1 (de) Speichervorrichtung und Speicherverfahren
DE112008002553T5 (de) Einsatz eines MLC-Flash als SLC durch Schreiben von Dummy-Daten
EP0195885B1 (de) Verfahren und Anordnung zum nichtflüchtigen Speichern des Zählerstandes einer elektronischen Zählschaltung
DE112008001151T5 (de) Mehrbitprogrammiervorrichtung und Verfahren zum Mehrbitprogrammieren
DE112020000182T5 (de) Blockqualitätsklassifizierung beim testen für nichtflüchtigen speicher und flags für mehrere fehlerhafte blöcke bezüglich produktdiversität
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE60222891T2 (de) Nichtflüchtige Speichervorrichtung und Selbstreparatur-Verfahren
DE69321245T2 (de) Integrierte Programmierschaltung für eine elektrisch programmierbare Halbleiterspeicheranordnung mit Redundanz
DE102005032514B3 (de) Speicher und Verfahren zum Betrieb des Speichers
EP1314135A1 (de) Verfahren zur virtuellen vergrösserung des stacks eines tragbaren datenträgers
DE112008001409T5 (de) Nichtflüchtiger Speicher mit hoher Zuverlässigkeit
EP2608037B1 (de) Verfahren zum Verwalten von Daten in einem Flash-Speicher, Fahrerassistenzeinrichtung und Kraftfahrzeug
DE19951048A1 (de) Verfahren zur Identifizierung einer integrierten Schaltung
DE102017104698A1 (de) Elektroniksteuervorrichtung und Informationsspeicherverfahren dafür
DE102004013493B4 (de) Zugriffs-Verfahren für einen NAND-Flash-Speicherbaustein und ein entsprechender NAND-Flash-Speicherbaustein
EP1559111B1 (de) Verfahren zum betreiben einer speicheranordnung
DE102021101752A1 (de) Nichtflüchtige statische Direktzugriffsspeichervorrichtung und entsprechendes Steuerungsverfahren
DE10321104B4 (de) Verfahren zur Ablage von veränderlichen Daten
DE69936567T2 (de) Ein-Chip-Mikrocomputer
DE102017205274A1 (de) Verfahren und Vorrichtung zum Aktualisieren eines Programmes
DE102005036267B4 (de) Speicheranordnung und Verfahren zum Adressieren einer Speicheranordnung
WO2009074499A1 (de) Verfahren zum betreiben eines steuergerätes und steuergerät
DE19708965C2 (de) Halbleiterdatenspeicher

Legal Events

Date Code Title Description
8100 Publication of patent without earlier publication of application
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: QIMONDA FLASH GMBH, 01099 DRESDEN, DE

8327 Change in the person/name/address of the patent owner

Owner name: QIMONDA AG, 81739 MUENCHEN, DE

R081 Change of applicant/patentee

Owner name: INFINEON TECHNOLOGIES AG, DE

Free format text: FORMER OWNER: QIMONDA AG, 81739 MUENCHEN, DE

Owner name: POLARIS INNOVATIONS LTD., IE

Free format text: FORMER OWNER: QIMONDA AG, 81739 MUENCHEN, DE

R081 Change of applicant/patentee

Owner name: POLARIS INNOVATIONS LTD., IE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee