DE102015102774A1 - Verfahren und vorrichtung zur verarbeitung eines löschzählers - Google Patents

Verfahren und vorrichtung zur verarbeitung eines löschzählers Download PDF

Info

Publication number
DE102015102774A1
DE102015102774A1 DE102015102774.7A DE102015102774A DE102015102774A1 DE 102015102774 A1 DE102015102774 A1 DE 102015102774A1 DE 102015102774 A DE102015102774 A DE 102015102774A DE 102015102774 A1 DE102015102774 A1 DE 102015102774A1
Authority
DE
Germany
Prior art keywords
counter
memory
erase
address information
selection code
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
DE102015102774.7A
Other languages
English (en)
Inventor
Rex Kho
Mathew Neal
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102015102774A1 publication Critical patent/DE102015102774A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0054Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell
    • G11C14/009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically

Abstract

Eine Ausführungsform betrifft ein Verfahren zur Verarbeitung eines Löschzählers, der Löschzählerfelder umfasst, wobei das Verfahren die Schritte (i) des Bestimmens eines ungenutzten Löschzählerfelds und (ii) des Schreibens eines Auswahlcodes und einer Adressinformation in das ungenutzte Löschzählerfeld umfasst, wobei der Auswahlcode und die Adressinformation kombiniert werden, um mindestens eine physische Adresse eines Speichers zu bestimmen.

Description

  • Ausführungsformen der vorliegenden Erfindung beziehen sich auf das Verarbeiten eines Löschzählers, der das Überwachen von Datenmanipulation ermöglicht.
  • Die Aufgabe besteht insbesondere darin, einen effizienten Löschzähler bereitzustellen. Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.
  • Die hier vorgeschlagenen Beispiele können insbesondere auf wenigstens einer der folgenden Lösungen beruhen. Insbesondere könnten Kombinationen der folgenden Merkmale benutzt werden, um ein gewünschtes Ergebnis zu erreichen. Die Merkmale des Verfahrens könnten mit (einem) beliebigen Merkmal(en) der gegenständlichen Ansprüche, z.B. der Vorrichtung, des Geräts, des Computerprogrammprodukts, des Speichermediums oder des Systems kombiniert werden, oder umgekehrt.
  • Es wird ein Verfahren zur Verarbeitung eines Löschzählers, der Löschzählerfelder umfasst, vorgeschlagen, wobei das Verfahren die folgenden Schritte umfasst:
    • – Bestimmen eines ungenutzten Löschzählerfelds;
    • – Schreiben eines Auswahlcodes und einer Adressinformation in das ungenutzte Löschzählerfeld;
    • – wobei der Auswahlcode und die Adressinformation kombiniert werden, um mindestens eine physische Adresse eines Speichers zu bestimmen.
  • Das ungenutzte Löschzählerfeld kann mittels eines Sucharbeitsvorgangs bestimmt werden.
  • Vorteilhafterweise kann ein einziger Auswahlcode dazu verwendet werden, eine oder mehrere physische Adressen des Speichers zu bestimmen. Somit kann ein Löscharbeitsvorgang auf mehrere Abschnitte, z.B. Sektoren, eines Speichers ausgerichtet werden, der durch eine einzige Aktualisierung des Löschzählers reflektiert werden kann.
  • Eine beispielhafte Implementierung des Löschzählers verwendet einen Thermometercode (oder unären Code). Jedes Löschzählerfeld kann beispielsweise dazu verwendet werden, einen einzigen Teil oder eine einzige Erhöhung des Löschzählers anzuzeigen und in dieser Hinsicht einem einzigen Bit des Thermometercodes entsprechen.
  • Unäre Codierung, auch als Thermometercode bezeichnet, ist eine Entropiecodierung, die eine natürliche Zahl, k, darstellt, wobei auf k Einsen eine Null folgt (wenn die natürliche Zahl als nichtnegative ganze Zahl verstanden wird) oder auf k – 1 Einsen eine Null folgt (wenn die natürliche Zahl als strikt positive ganze Zahl verstanden wird). Die Zahl 5 wird beispielsweise als 111110 oder 11110 dargestellt. Einige Darstellungen verwenden k oder k – 1 Nullen, auf die eine Eins folgt. Die Einsen und Nullen sind ohne Beschränkung der Allgemeinheit austauschbar. Die unäre Codierung ist sowohl ein präfixfreier Code als auch ein selbstsynchronisierender Code (siehe z.B. http://en.wikipedia.org/wiki/Thermometer_code).
  • Es wird angemerkt, dass der Löschzähler in einem Löschzählerbereich eines Speichers gespeichert werden kann.
  • Es wird auch angemerkt, dass die Zählerfelder in einer aufsteigenden Reihenfolge angeordnet werden können, so dass die Zählerfelder nacheinander eingestellt werden können, um einen zunehmenden Zählwert des Löschzählers darzustellen. Die Zählerfelder können folglich dazu verwendet werden, den Löschzähler nacheinander aufzufüllen, wobei das Einstellen eines einzigen Zählerfelds eine Erhöhung eines derartigen Löschzählers sein kann. Vorzugsweise kann der Löschzähler nur eingestellt, nicht neu eingestellt werden. Dies ermöglicht das Bestimmen der Anzahl von Löschzyklen oder Löscharbeitsvorgängen, die auf einen Abschnitt eines Speichers, z.B. einen Sektor oder eine Seite des Speichers, angewendet werden.
  • Es wird weiterhin angemerkt, dass das Erhöhen des Löschzählers eine Erhöhung um eins oder eine Erhöhung um einen Wert, der größer als eins ist, umfassen kann.
  • Vorteilhafterweise ermöglicht die Lösung das Bestimmen, wie viele Löschzyklen an dem Abschnitt des Speichers, d.h. an einem einzigen Sektor oder einer Gruppe von Sektoren des Speichers durchgeführt wurden. Diese Information kann verwendet werden, um zu bestimmen, ob der Speicher verfälscht wurde, insbesondere ob der Speicher nicht autorisierten Änderungen unterzogen wurde.
  • Es wird weiterhin angemerkt, dass Löschzyklen an einem Festplattenlaufwerk oder einem Abschnitt des Festplattenlaufwerks (z.B. einem Sektor) mittels des Löschzählers gezählt werden können, wie hierin beschrieben.
  • Es ist eine Weiterbildung, dass die physische Adresse des Speichers auf einen Sektor oder auf eine Seite des Speichers ausgerichtet ist.
  • Es ist eine Weiterbildung, dass mindestens ein Sektor oder mindestens eine Seite des Speichers einem Löscharbeitsvorgang unterzogen wird.
  • Es ist eine Weiterbildung, dass der Löscharbeitsvorgang vor der Verarbeitung des Löschzählers oder nach der Verarbeitung des Löschzählers ausgelöst oder durchgeführt wird.
  • Es ist eine Weiterbildung, dass der Auswahlcode und die Adressinformation kombiniert werden, um mehrere physische Adressen des Speichers zu bestimmen.
  • Es ist eine Weiterbildung, dass der Auswahlcode eine oder mehrere physische Adressen in der Adressinformation bestimmt.
  • Der Auswahlcode kann insbesondere eine Maske bereitstellen, die mit der Adressinformation kombiniert werden kann, um innerhalb eines von der Adressinformation bereitgestellten Umfangs mehrere physische Adressen des Speichers mittels eines einzigen Auswahlcodes zu bestimmen.
  • Es ist eine Weiterbildung, dass das Verfahren weiterhin die folgenden Schritte umfasst:
    • – Ausrichten des Auswahlcodes an dem niedrigstwertigen Bit mit der Adressinformation,
    • – Bestimmen mindestens einer physischen Adresse, die einem Löscharbeitsvorgang unterzogen wird, durch Kombinieren des Auswahlcodes und der Adressinformation, wobei
    • – ein erster Wert des Auswahlcodes anzeigt, dass ein entsprechendes Bit der Adressinformation unverändert bleibt, oder
    • – ein zweiter Wert des Auswahlcodes anzeigt, dass ein entsprechendes Bit der Adressinformation entweder „0“ oder „1“ sein kann.
  • Es ist eine Weiterbildung, dass der erste Wert „0“ ist und der zweite Wert „1“ ist. Es ist eine Weiterbildung, dass das Bestimmen eines ungenutzten Löschzählerfelds das Durchführen eines Sucharbeitsvorgangs für das ungenutzte gelöschte Zählerfeld in einem Löschzählerspeicher, der für den Löschzähler bereitgestellt wird, umfasst.
  • Es ist eine Weiterbildung, dass der Löschzähler erhöht wird, indem der Auswahlcode und die Adressinformation in das ungenutzte Löschzählerfeld geschrieben werden.
  • Der Löschzähler kann eine vorherbestimmte Anzahl von Löschzählerfeldern haben, die zunächst alle leer sein können. Der Löschzähler kann eingestellt werden, indem Daten in das erste freie Löschzählerfeld geschrieben werden. Der Löschzähler wird erhöht, indem Daten in das nächste freie Löschzählerfeld geschrieben werden. Die Löschzählerfelder können anschließend dazu verwendet werden, den Zählwert des Löschzählers zu erhöhen. Als eine Alternative können die Löschzählerfelder gemäß einem vorherbestimmten Schema verwendet werden, um den Löschzähler aufzufüllen. Vorteilhafterweise kann der Löschzähler nicht durch eine Anwendungssoftware zurückgesetzt werden.
  • Es ist eine Weiterbildung, dass der Löschzähler mit einem Abschnitt eines Speichers, insbesondere eines nichtflüchtigen Speichers, assoziiert wird und wobei ein Löscharbeitsvorgang, der auf den Abschnitt des Speichers angewendet wird, das Erhöhen des Löschzählers auslöst.
  • Es ist eine Weiterbildung, dass der Löschzähler Teil eines nichtflüchtigen Speichers ist, wobei der Speicher des Löschzählers für eine Anwendungssoftware nicht zugänglich oder schreibgeschützt ist.
  • In einer Ausführungsform ist der Löschzähler ein nichtflüchtiger Löschzähler.
  • Es ist eine Weiterbildung, dass jedes logische Bit des Löschzählerfelds mehrere physische Bits umfasst, wobei eine Majoritätsentscheidung auf der Basis der mehreren physischen Bits für das entsprechende logische Bit getroffen wird.
  • Die Majoritätsentscheidung ist ein Beispiel, wie die Redundanz der mehreren physischen Bits, die dazu verwendet werden, ein einziges logisches Bit darzustellen, einzusetzen ist. Andere Arbeitsvorgänge können jedoch dementsprechend angewendet werden. Es ist auch möglich, einen Code mit Redundanz oder einen Fehlererkennungscode und/oder einen Fehlerkorrekturcode zu verwenden.
  • Insbesondere können mindestens einige (oder alle) Bits des Auswahlcodes und/oder der Adressinformation zu Redundanzzwecken jeweils auf mindestens zwei physische Bits abgebildet werden.
  • Es ist eine Weiterbildung, dass das Verfahren weiterhin die folgenden Schritte umfasst:
    • – Lesen des Löschzählers und Speichern desselben in einem Register;
    • – Suchen nach dem ungenutzten Löschzählerfeld;
    • – Schreiben des Auswahlcodes und der Adressinformation in das ungenutzte Löschzählerfeld und
    • – Zurückschreiben des Registers in den Löschzähler.
  • Es ist eine Weiterbildung, dass das Verfahren den folgenden Schritt umfasst:
    • – Anzeigen einer Warnung oder eines Fehlers in dem Fall, in dem das Zurückschreiben des Registers in den Löschzähler nicht erfolgreich war.
  • In einer Ausführungsform umfasst das Verfahren den folgenden Schritt:
    • – Ausgeben einer Überlaufanzeige in dem Fall, in dem kein ungenutztes Löschzählerfeld gefunden wurde.
  • In einer Ausführungsform wird die Überlaufanzeige dazu verwendet, den Löschzähler auszuweiten.
  • Auch wird eine Vorrichtung vorgeschlagen, umfassend:
    • – einen Löschzähler, der mehrere Löschzählerfelder umfasst;
    • – eine Verarbeitungseinheit, die zum Verarbeiten des Löschzählers durch Folgendes eingerichtet ist:
    • – Bestimmen eines ungenutzten Löschzählerfelds;
    • – Schreiben eines Auswahlcodes und einer Adressinformation in das ungenutzte Löschzählerfeld;
    • – wobei der Auswahlcode und die Adressinformation kombiniert werden, um mindestens eine physische Adresse eines Speichers zu bestimmen.
  • Die Verarbeitungseinheit kann eine beliebige Verarbeitungsvorrichtung sein, die zusammen mit dem Speicher auf demselben Chip oder Mikroplättchen oder extern zu dem Speicher bereitgestellt werden kann. Die Verarbeitungseinheit kann Hardware-, Software- und/oder Firmwareabschnitte umfassen. Die Verarbeitungseinheit kann auf verteilte Weise unter mehreren Komponenten eingerichtet sein oder sie kann ein einziges Hardwareteil sein.
  • Es wird angemerkt, dass die in Bezug auf das Verfahren beschriebenen Merkmale genauso auf die eine oder die mehreren hierin erwähnten Vorrichtungen anwendbar sein können. Dies gilt insbesondere für die Verarbeitungseinheit, die die in Hinblick auf das Verfahren beschriebenen Schritte durchführen kann.
  • Es ist eine Weiterbildung, dass die Vorrichtung weiterhin einen Speicherabschnitt umfasst, wobei die Verarbeitungseinheit zum Verarbeiten des Löschzählers auf der Basis eines an dem Speicherteil durchzuführenden Löschvorgangs eingerichtet ist.
  • Der Speicherabschnitt kann ein Sektor oder eine Seite eines (nichtflüchtigen) Speichers sein. Der Speicherabschnitt kann in einem einzigen Löschschritt gelöscht werden. Der Löschzähler kann ein physischer Teil des Speichers sein, der auch den Speicherabschnitt enthält. Als eine Alternative kann der Löschzähler sich auf einer separaten Speichervorrichtung befinden. Der Löschzähler kann ein Zähler sein, der gemäß einem unären Code, z.B. einem Thermometercode, codiert ist.
  • Es ist eine Weiterbildung, dass die Verarbeitungseinheit zu Folgendem eingerichtet ist:
    • – Lesen des Löschzählers und Speichern desselben in einem Register;
    • – Suchen nach dem ungenutzten Löschzählerfeld;
    • – Schreiben des Auswahlcodes und der Adressinformation in das ungenutzte Löschzählerfeld;
    • – Zurückschreiben des Registers in den Löschzähler.
  • Es ist eine Weiterbildung, dass die Vorrichtung auf einem einzigen Chip, Die oder Mikroplättchen implementiert ist.
  • Die Vorrichtung kann insbesondere ein (einziger) Chip oder eine Anordnung, die mehrere Chips umfasst, sein. Ein Chip kann eine integrierte Schaltung, ein Mikroplättchen und/oder ein Halbleiterbauelement umfassen.
  • Es ist eine Weiterbildung, dass der Speicherabschnitt Teil eines nichtflüchtigen Speichers ist.
  • Es ist eine Weiterbildung, dass der Speicherabschnitt mindestens eines der folgenden umfasst:
    • – Floating-Gate-Zellen;
    • – PCRAM,
    • – RRAM,
    • – MRAM,
    • – MONOS-Vorrichtungen,
    • – Nanokristallzellen,
    • – FeRAM,
    • – Festplattenlaufwerk,
    • – nichtflüchtigen Speicher.
  • In einer Ausführungsform ist der Löschzähler derart eingerichtet, dass er für eine Anwendungssoftware nicht zugänglich ist oder dass er für die Anwendungssoftware schreibgeschützt ist.
  • Weiterhin wird eine Vorrichtung zur Verarbeitung eines Löschzählers, der Löschzählerfelder umfasst, angegeben, wobei die Vorrichtung Folgendes umfasst:
    • – Mittel zum Bestimmen eines ungenutzten Löschzählerfelds;
    • – Mittel zum Schreiben eines Auswahlcodes und einer Adressinformation in das ungenutzte Löschzählerfeld;
    • – Mittel zum Kombinieren des Auswahlcodes und der Adressinformation, um mindestens eine physische Adresse eines Speichers zu bestimmen.
  • Ferner wird ein Computerprogrammprodukt vorgeschlagen, das direkt in einen Speicher einer Digitalverarbeitungsvorrichtung ladbar ist und Softwarecodeabschnitte zum Durchführen der Schritte des hierin beschriebenen Verfahrens umfasst.
  • Ausführungsformen werden unter Bezugnahme auf die Zeichnungen gezeigt und veranschaulicht. Die Zeichnungen dienen zum Veranschaulichen des grundlegenden Prinzips, so dass nur zum Verständnis des grundlegenden Prinzips erforderliche Gesichtspunkte veranschaulicht sind. Die Zeichnungen sind nicht maßstabgetreu. In den Zeichnungen kennzeichnen dieselben Bezugszeichen ähnliche Merkmale.
  • 1 zeigt ein beispielhaftes Diagramm eines Löschzählerspeichers, der mehrere Löschzählerfelder umfasst;
  • 2 zeigt eine beispielhafte Struktur eines Löschzählerfelds und wie das Löschzählerfeld in einer physischen Speicherstruktur, z.B. einem Flash-Speicher, dargestellt werden kann;
  • 3 zeigt eine beispielhafte Tabelle, die 32 physische Sektoren (mit 0 bis 31 nummeriert) umfasst, die jeweils eine physische Sektoradresse haben, wobei eine logische Adresse bereitgestellt wird, die das Kombinieren mehrerer Sektoren z.B. für einen kombinierten (z.B. parallelen) Löscharbeitsvorgang ermöglicht;
  • 4 zeigt ein beispielhaftes Ablaufdiagramm, das eine Routine anzeigt, die einmal pro Löscharbeitsvorgang durchgeführt werden kann, selbst in dem Fall, in dem mehrere Abschnitte (z.B. Sektoren oder Seite) eines Speichers gelöscht werden.
  • Nichtflüchtige Speicher (non-volatile memories, NVM) können durch verschiedene Softwareanwendungen programmiert und gelöscht werden. Der Speicher kann derart organisiert werden, dass eine Gruppe von Bits zusammen gelöscht oder programmiert wird. Beispielsweise kann ein Sektor des Speichers gelöscht werden oder eine Seite des Speichers kann programmiert werden. Beispielsweise kann die Seite mehrere Bits umfassen und der Sektor kann mehrere Seiten umfassen.
  • Die hierin dargestellten Beispiele ermöglichen das Bestimmen, wie viele Löschzyklen an einem einzigen Sektor oder einer Gruppe von Sektoren durchgeführt wurden. Diese Information kann zum Bestimmen, ob der Speicher verfälscht wurde, insbesondere ob der Speicher nicht autorisierten Änderungen unterzogen wurde, von Nutzen sein.
  • Es wird angemerkt, dass der hierin erwähnte Sektor ein Beispiel eines Abschnitts eines Speichers ist, der gelöscht werden kann, wobei der Sektor mindestens ein Bit, insbesondere mehrere Bits oder mehrere Seiten umfasst. Der erwähnte Speicher kann insbesondere eine Speichervorrichtung sein.
  • Ein Löschzählerkonzept kann in einer beliebigen Vorrichtung verwendet werden, die einen permanenten und umprogrammierbaren Speicher hat, z.B. NAND/NOR-Flash, RRAM, MRAM, FeRAM. Es kann auch auf Festplattenlaufwerke anwendbar sein, die bestimmte Sektoren als Löschzähler vorgesehen haben, um zu überwachen, ob andere Abschnitte gelöscht und/oder umgeschrieben wurden.
  • Gebrauchsfälle können Szenarios mit umprogrammierbarer Firmware betreffen. Beispielhafte Szenarios sind: Mobiltelefone, Waschmaschinen, Motorsteuermodule (z.B. im Automobilbereich), Fertigungsroboter in einer Produktionsstraße, DVD-Player, Spielkonsolen, FPGA-Vorrichtungen usw.
  • Die hierin beschriebenen Beispiele stellen somit insbesondere einen nichtflüchtigen Löschzähler bereit, um eine Datenmanipulation zu überwachen.
  • Der Speicherbereich ist insbesondere nichtflüchtig. Der Speicherbereich kann derart eingerichtet sein, dass er für Anwendungssoftware schreibgeschützt ist (d.h. Anwendungen, die auf einer Vorrichtung laufen, können diesen Speicherbereich nicht wie gewünscht modifizieren).
  • Somit kann der Löschzähler dazu verwendet werden, eine Manipulation einer Software zu erkennen und zu beweisen. Beispielsweise: Eine neunte Version einer offiziellen Softwareausgabe kann mit acht Löscharbeitsvorgängen assoziiert werden, was von dem Löschzähler angegeben werden sollte. Eine von dem Löschzähler angegebene höhere Anzahl von Löschzyklen kann ein Zeichen einer nicht autorisierten Softwaremanipulation sein.
  • Somit kann die dargestellte Lösung für Sicherheitsanwendungen verwendet werden oder um einen Beweis einer Verfälschung zu erbringen.
  • Der Löschzähler kann beispielsweise erhöht werden, wenn ein Sektor kurz davor steht, gelöscht zu werden. Die Modifizierung des Löschzählers kann vorzugsweise ohne jegliche Möglichkeit einer Manipulation durch die Anwendungssoftware erzielt werden. Die Modifizierung des Löschzählers kann vorzugsweise von einer externen Programmierschnittstelle eingekapselt werden, so dass nicht verhindert werden kann, dass ein etwaiger Löscharbeitsvorgang den Löschzähler erhöht.
  • Vorteilhafterweise kann der Löschzähler derart implementiert werden, dass er von einem Kunden nicht gelöscht werden kann; insbesondere kann der Löschzähler derart eingerichtet werden, dass er nur gelöscht werden kann, bevor das Produkt, insbesondere die Speichervorrichtung, an den Kunden versandt wird.
  • Ein Verfälschen des Inhalts des Speichers (der Speichervorrichtung) kann erkannt werden, indem der Wert des Löschzählers gespeichert wird (ein derartiger Wert kann in der Speichervorrichtung und/oder extern zu der Speichervorrichtung gespeichert werden) und dieser Wert mit dem tatsächlichen Wert des Löschzählers verglichen wird. Der Wert des Löschzählers kann nach dem Versand der Speichervorrichtung und/oder nach einer autorisierten Änderung (z.B. einer offiziellen Aktualisierung) der Software gespeichert werden.
  • Der Löschzähler kann unlöschbar sein. Der Löschzähler kann beispielsweise in einem Speicherbereich gespeichert sein, der nicht gelöscht werden kann oder der derart konfiguriert werden kann, dass ein einfaches Löschen dieses Speicherbereichs nicht durchführbar ist. Es kann einen Löschzähler pro logischem Abschnitt, z.B. pro mindestens einem logischen Sektor des Speichers geben. Um den Löschzähler zu aktualisieren, kann der Löschzähler gelesen, erhöht und in seinen Speicherbereich geschrieben werden. Eine derartige Aktualisierung kann pro Sektor durchgeführt werden.
  • Ein Schreibarbeitsvorgang kann wesentlich mehr Zeit als ein Lesearbeitsvorgang verbrauchen. Das Löschen mehrerer Sektoren ist folglich aufgrund der eingebundenen langatmigen Schreibarbeitsvorgänge zeitaufwändig. Löschvorgänge müssen unter Umständen mittels eines speziellen Befehls abgebrochen werden, der eine Unterbrechung ermöglicht, um andere Arbeitsvorgänge durchzuführen. Derartige andere Arbeitsvorgänge können erfordern, dass der Löscharbeitsvorgang eine kurze Abbruchzeit hat, die aufgrund seiner langatmigen Schreibarbeitsvorgänge schwer einzuhalten ist.
  • Gemäß einem Beispiel kann ein Auswahlcode dazu verwendet werden, mindestens einen Speicherabschnitt, z.B. einen Sektor oder eine Seite, auszuwählen. Der von dem Auswahlcode ausgewählte mindestens eine Abschnitt kann gelöscht werden. Der mindestens eine Speicherabschnitt kann insbesondere mehrere Speicherabschnitte umfassen. Das Löschen kann für einige der mehreren Speicherabschnitte parallel durchgeführt werden.
  • Ein Löschzähler kann bereitgestellt werden, der mittels einer Suchschleife mit einem anschließenden Schreibarbeitsvorgang aktualisiert wird.
  • Der Löschzähler kann in einem Löschzählerspeicher gespeichert werden, der mehrere Löschzählerfelder umfasst. Jedes der Löschzählerfelder umfasst
    • – eine Adressinformation und
    • – den Auswahlcode.
  • Der Auswahlcode kann in das Löschzählerfeld geschrieben werden.
  • 1 zeigt ein beispielhaftes Diagramm eines Löschzählerspeichers 101, der mehrere Löschzählerfelder 102 bis 105 umfasst. Der Löschzählerspeicher 101 kann Teil eines Direktzugriffsspeichers (z.B. Flash-RAM oder NVM) sein. Der Löschzählerspeicher 101 wird dazu verwendet, das erste Zählerfeld 102 zuzuordnen; mit einem anschließenden Löschzyklus wird das nächste Zählerfeld 103 usw. verwendet. Als ein Vorteil kann ein einziges Zählerfeld 102 bis 105 mit einem Löscharbeitsvorgang assoziiert werden, der auf mehrere Speicherabschnitte, z.B. Sektoren, angewendet wird.
  • 2 zeigt eine beispielhafte Struktur eines der Löschzählerfelder 102 bis 105 und wie die Löschzählerfelder 102 bis 105 in dem Speicher, z.B. einem Flash-Speicher, gespeichert werden können.
  • Ein Löschzählerfeld 203 umfasst einen Auswahlcode 201 und eine Adressinformation 202. Gemäß dem in 2 gezeigten Beispiel hat das Löschzählerfeld 203 den folgenden Wert:
    • – den Auswahlcode 201, der einen Bereich von Bits 4 bis 0 umfasst, hat den Wert „00011“ und
    • – die Adressinformation 202, die einen Bereich von Bits 7 bis 0 umfasst, hat den Wert „00010100“.
  • Eine Zeile 204 von Bits zeigt ein Beispiel, wie das Löschzählerfeld in einem physischen Flash-Speicher zu speichern ist. In diesem Beispiel wird jedes einzelne Bit durch drei physische Bits codiert, um Redundanz hinzuzufügen (d.h. ein Bit „0“ des Löschzählerfelds 203 wird als „000“ codiert und ein Bit „1“ des Löschzählerfelds 203 wird als „111“ codiert). In dem Fall, dass eines der Bits nicht den korrekten Wert zeigt (z.B. aufgrund eines physischen Defekts), kann eine Majoritätsentscheidung auf der Basis aller drei Bits getroffen werden, um dennoch zu dem korrekten Bit „0“ oder „1“ zu gelangen. Dies kann in dem Fall, dass kein weiterer Fehlerkorrekturcode verfügbar ist und/oder dieser weitere Fehlerkorrekturcode optional und deaktiviert ist, von Nutzen sein. Es wird angemerkt, dass eine Anzahl von Bits, bei der es sich nicht um drei handelt, zum Codieren eines einzigen Bits des Löschzählerfelds 203 verwendet werden kann.
  • 3 zeigt eine beispielhafte Tabelle, die 32 physische Sektoren (mit 0 bis 31 nummeriert) umfasst, die jeweils eine physische Sektoradresse 301 haben. Darüber hinaus wird ein logischer Sektor 302 bereitgestellt, der das Kombinieren mehrerer Sektoren z.B. für einen kombinierten (z.B. parallelen) Löscharbeitsvorgang ermöglicht.
  • Ein derartiges Kombinieren kann mittels des Auswahlcodes und der Adressinformation erzielt werden (wie auch oben angegeben). In dem aktuellen Beispiel setzt sich die Sektoradresse aus acht Bits zusammen, die von der Adressinformation bereitgestellt werden, und die mehreren Sektoradressen werden mittels fünf Bits des Auswahlcodes identifiziert.
  • Der Auswahlcode kann an dem niedrigstwertigen Bit (least significant bit, LSB) mit der Adressinformation ausgerichtet werden und er kann dazu verwendet werden, die zu löschenden Sektoren zu bestimmen. Wenn beispielsweise das Bit des Auswahlcodes, das der Position der Adressinformation entspricht, „0“ ist, bleibt das Bit der Adressinformation unverändert; wenn das Bit des Auswahlcodes, das der Position der Adressinformation entspricht, „1“ ist, kann das Bit der Adressinformation entweder „0“ oder „1“ sein. Somit kann der Auswahlcode zum Auswählen entweder einer einzigen physischen Adresse oder einer Vielzahl physischer Adressen auf der Basis der Adressinformation verwendet werden.
  • Beispiel 1: Löschen des logischen Sektors 5
  • Die Adressinformation und der Auswahlcode werden wie folgt bestimmt:
    Adressinformation: 00000101
    Auswahlcode: 00000
  • Ein bitweiser OR-Arbeitsvorgang führt dazu, dass die folgende Sektoradresse gelöscht wird:
    Gelöschte Sektoren: 00000101
  • Beispiel 2: Löschen des logischen Sektors 16
  • Die Adressinformation und der Auswahlcode werden wie folgt bestimmt:
    Adressinformation: 00011000
    Auswahlcode: 00011
  • Ein bitweiser OR-Arbeitsvorgang führt dazu, dass die folgenden Sektoradressen gelöscht werden:
    Gelöschte Sektoren: 00011000
    00011001
    00011010
    00011011
  • Somit können die Adressinformation und der Auswahlcode mit einem Löscharbeitsvorgang der physischen Sektoren 24 bis 27 assoziiert werden.
  • Beispiel 3: Löschen der logischen Sektoren 14 und 15
  • Die Adressinformation und der Auswahlcode werden wie folgt bestimmt:
    Adressinformation: 00010100
    Auswahlcode: 00011
  • Ein bitweiser OR-Arbeitsvorgang führt dazu, dass die folgenden Sektoradressen gelöscht werden:
    Gelöschte Sektoren: 00010100
    00010101
    00010110
    00010111
  • Somit können die Adressinformation und der Auswahlcode mit einem Löscharbeitsvorgang der physischen Sektoren 20 bis 23 assoziiert werden.
  • Beispiel 3 ist auch die beispielhafte Zuordnung des Löschzählerfelds 203 in 2, wobei die Sektoradresse 301 der Adressinformation 202 entspricht.
  • Es ist ein Vorteil der dargestellten Lösung, dass nur ein einziger Schreibarbeitsvorgang in dem Löschzählerspeicher erforderlich ist, selbst in dem Fall, in dem mehrere Speicherabschnitte (z.B. Sektoren oder Seiten eines Speichers) gelöscht werden. Diese Lösung ist sehr flexibel und ermöglicht eine Vielzahl von Kombinationen, um eine physische Speicherstruktur logisch zu adressieren.
  • 4 zeigt ein beispielhaftes Ablaufdiagramm, das eine Routine anzeigt, die einmal pro Löscharbeitsvorgang durchgeführt werden kann, selbst in dem Fall, in dem mehrere Abschnitte (z.B. Sektoren oder Seite) eines Speichers gelöscht werden.
  • In einem Schritt 401 wird ein Zähler x initialisiert (z.B. auf 0 eingestellt). In einem Schritt 402 wird das x-te Löschzählerfeld (auch als „Löschzählerfeld Nummer x“ oder „Löschzählerfeld Nr. x“ bezeichnet) in dem Löschzählerspeicher gelesen. In einem Schritt 403 wird geprüft, ob dieses Löschzählerfeld Nummer x bereits verwendet wurde, was in dem Fall, dass es Werte zeigt, bei denen es sich nicht um „0“ handelt, bestimmt werden kann. Wenn dies der Fall ist, wird mit einem Schritt 404 fortgefahren, wobei der Zähler x erhöht wird. In einem Schritt 405 wird geprüft, ob das Ende des Löschzählerspeichers erreicht ist. Wenn dies der Fall ist, endet der Vorgang in einem Schritt 405. Gegebenenfalls kann ein Fehler oder eine Information ausgegeben werden, der bzw. die einen Überlauf des Löschzählerspeichers anzeigt. Wenn das Ende des Löschzählerspeichers nicht erreicht ist, wird er zum Schritt 402 abgezweigt und das Löschzählerfeld x wird gelesen.
  • Wenn Schritt 403 offenbart, dass das Löschzählerfeld Nummer x nicht bereits verwendet wurde, wird er mit einem Schritt 407 fortgesetzt, der anzeigt, dass ein verfügbares Löschzählerfeld in dem Löschzählerspeicher gefunden wurde. In einem anschließenden Schritt 408 wird das gefundene Löschzählerfeld mit dem Auswahlcode und der Adressinformation beschrieben. Als Nächstes endet der Vorgang in dem Schritt 406.
  • Gegebenenfalls kann der tatsächliche Löscharbeitsvorgang auf der Basis des Auswahlcodes und der Adressinformation nach oder vor Schritt 408 durchgeführt werden.
  • Die Schritte 401 bis 405 können als eine Suchroutine 409 betrachtet werden. Die Suchroutine 409 kann z.B. mittels eines binären Suchalgorithmus beschleunigt werden.
  • Die in 4 gezeigte Lösung hat den Vorteil, dass die Aktualisierung des Löschzählerspeichers in eine schnelle Suchroutine 409 (einschließlich Lesearbeitsvorgängen, die auf die Löschzählerfelder ausgerichtet sind) und einen einzigen Schreibarbeitsvorgang 408 in den Löschzählerspeicher unterteilt ist. Dies ermöglicht eine schnelle Aktualisierungsroutine für den Löschzählerspeicher.
  • Außerdem ermöglichen die dargestellten Beispiele ein hohes Ausmaß an Flexibilität, da einzelne oder mehrere Abschnitte des Speichers (z.B. Sektoren oder Seite) mittels eines Auswahlcodes adressiert werden können. Somit kann dieser Auswahlcode dazu verwendet werden, mehrere dieser Abschnitte zu löschen. Der Auswahlcode und die Adressinformation werden vorzugsweise in dem Löschzählerspeicher gespeichert, nachdem der Löscharbeitsvorgang ausgelöst wurde, insbesondere nachdem der Löscharbeitsvorgang durchgeführt wurde.
  • In einem oder mehreren Beispielen können die hierin beschriebenen Funktionen zumindest zum Teil in Hardware, wie spezifischen Hardwarekomponenten oder einem Prozessor, implementiert werden. Allgemeiner können die Techniken in Hardware, Prozessoren, Software, Firmware oder einer beliebigen Kombination davon implementiert werden. Wenn sie in Software implementiert werden, können die Funktionen auf einem computerlesbaren Medium gespeichert oder als eine oder mehrere Anweisungen oder als Code auf ein computerlesbares Medium übertragen und von einer hardwarebasierten Verarbeitungseinheit ausgeführt werden. Zu computerlesbaren Medien können computerlesbare Speichermedien, was einem greifbaren Medium, wie Datenspeichermedien, entspricht, oder Kommunikationsmedien zählen, einschließlich eines beliebigen Mediums, das einen Transfer eines Computerprogramms von einem Ort zu einem anderen, z.B. gemäß einem Kommunikationsprotokoll, erleichtert. Auf diese Weise können computerlesbare Medien im Allgemeinen (1) greifbaren computerlesbaren Speichermedien, die nicht vergänglich sind, oder (2) Kommunikationsmedien, wie einem Signal oder einer Trägerwelle, entsprechen. Datenspeichermedien können beliebige verfügbare Medien sein, auf die durch einen oder mehrere Computer oder einen oder mehrere Prozessoren zugegriffen werden kann, um Anweisungen, Code und/oder Datenstrukturen zur Implementierung der in dieser Offenbarung beschriebenen Techniken abzurufen. Ein Computerprogrammprodukt kann ein computerlesbares Medium beinhalten.
  • Beispielhaft und nicht einschränkend können derartige computerlesbare Speichermedien einen RAM, einen ROM, einen EEPROM, eine CD-ROM oder einen anderen optischen Plattenspeicher, einen Magnetplattenspeicher oder andere Magnetspeichervorrichtungen, einen Flash-Speicher oder ein beliebiges anderes Medium umfassen, das dazu verwendet werden kann, einen gewünschten Programmcode in der Form von Anweisungen oder Datenstrukturen zu speichern, und auf das von einem Computer zugegriffen werden kann. Außerdem wird eine beliebige Verbindung korrekt als ein computerlesbares Medium, d.h. ein computerlesbares Übertragungsmedium bezeichnet. Wenn Anweisungen beispielsweise von einer Website, einem Server oder einer anderen entfernten Quelle unter Verwendung eines Koaxialkabels, eines Glasfaserkabels, einer verdrillten Leitung, einer digitalen Teilnehmerleitung (digital subscriber line, DSL) oder drahtloser Technologien, wie Infrarot, Funk und Mikrowelle, übertragen werden, werden das Koaxialkabel, das Glasfaserkabel, die verdrillte Leitung, die DSL oder die drahtlosen Technologien, wie Infrarot, Funk und Mikrowelle, in die Definition von Medium eingebunden. Es versteht sich jedoch, dass computerlesbare Speichermedien und Datenspeichermedien keine Verbindungen, Trägerwellen, Signale oder andere vergängliche Medien beinhalten, sondern auf nicht vergängliche, greifbare Speichermedien ausgerichtet sind. Platte und Disc, wie hierin verwendet, beinhaltet Compact-Disc (CD), Laser-Disc, optische Platte, DVD (digital versatile disc), Diskette und Blu-ray-Disc, wobei Platten gewöhnlich Daten magnetisch wiedergeben, während Discs Daten optisch mit Lasern wiedergeben. Kombinationen der obigen sollten ebenfalls in den Umfang computerlesbarer Medien eingebunden werden.
  • Anweisungen können von einem oder mehreren Prozessoren, wie einem oder mehreren Zentralprozessoren (central processing units, CPU), Digitalsignalprozessoren (DSP), Universalmikroprozessoren, anwendungsspezifischen integrierten Schaltungen (application specific integrated circuits, ASIC), programmierbaren Logikanordnungen (field programmable logic arrays, FPGA) oder anderen gleichwertigen integrierten oder separaten logischen Schaltkreisen, ausgeführt werden. Dementsprechend kann der Begriff „Prozessor“, wie hierin verwendet, sich auf eine beliebige der vorstehenden Strukturen oder eine beliebige andere Struktur, die zur Implementierung der hierin beschriebenen Techniken geeignet ist, beziehen. Darüber hinaus kann die hierin beschriebene Funktionalität in einigen Gesichtspunkten in dedizierten Hardware- und/oder Softwaremodulen, die zum Codieren und Decodieren konfiguriert sind, bereitgestellt oder in einen kombinierten Codec eingebunden werden. Die Techniken könnten zudem in einer oder mehreren Schaltungen oder Logikelementen vollständig implementiert werden.
  • Die Techniken dieser Offenbarung können in einer großen Vielfalt von Vorrichtungen oder Geräten implementiert werden, einschließlich eines drahtlosen Handapparats, einer integrierten Schaltung (integrated circuit, IC) oder einem Satz von IC (z.B. einem Chipsatz). Verschiedene Komponenten, Module oder Einheiten werden in dieser Offenbarung beschrieben, um Funktionsaspekte von Vorrichtungen hervorzuheben, die dazu konfiguriert sind, die offenbarten Techniken durchzuführen, erfordern jedoch nicht unbedingt eine Umsetzung durch unterschiedliche Hardwareeinheiten. Stattdessen können verschiedene Einheiten, wie oben beschrieben, zu einer einzigen Hardwareeinheit kombiniert oder durch eine Sammlung interoperativer Hardwareeinheiten, einschließlich eines oder mehrerer wie oben beschriebener Prozessoren, in Verbindung mit geeigneter Software und/oder Firmware bereitgestellt werden.
  • Obwohl verschiedene beispielhafte Ausführungsformen der Erfindung offenbart wurden, wird Fachleuten offensichtlich sein, dass verschiedene Änderungen und Modifizierungen vorgenommen werden können, die einige der Vorteile der Erfindung erzielen werden, ohne vom Sinn und Schutzumfang der Erfindung abzuweichen. Es wird Durchschnittsfachleuten offensichtlich sein, dass andere Komponenten, die dieselben Funktionen durchführen, auf geeignete Weise substituiert werden können. Es sollte erwähnt werden, dass in Bezug auf eine spezifische Figur erläuterte Merkmale mit Merkmalen anderer Figuren kombiniert werden können, selbst in jenen Fällen, in denen dies nicht ausdrücklich erwähnt wurde. Des Weiteren können die Verfahren der Erfindung in entweder allen Software-Implementierungen unter Verwendung der adäquaten Prozessoranweisungen oder in Hybrid-Implementierungen, die eine Kombination von Hardwarelogik und Softwarelogik zum Erzielen der gleichen Ergebnisse nutzen, erzielt werden. Derartige Modifizierungen des erfinderischen Konzepts sollen von den angefügten Ansprüchen umfasst werden.
  • 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 Nicht-Patentliteratur
    • http://en.wikipedia.org/wiki/Thermometer_code [0008]

Claims (22)

  1. Verfahren zur Verarbeitung eines Löschzählers, der Löschzählerfelder umfasst, wobei das Verfahren die folgenden Schritte umfasst: – Bestimmen eines ungenutzten Löschzählerfelds; – Schreiben eines Auswahlcodes und einer Adressinformation in das ungenutzte Löschzählerfeld; – wobei der Auswahlcode und die Adressinformation kombiniert werden, um mindestens eine physische Adresse eines Speichers zu bestimmen.
  2. Verfahren nach Anspruch 1, bei dem die physische Adresse des Speichers auf einen Sektor oder auf eine Seite des Speichers ausgerichtet ist.
  3. Verfahren nach Anspruch 2, bei dem mindestens ein Sektor oder mindestens eine Seite des Speichers einem Löscharbeitsvorgang unterzogen wird.
  4. Verfahren nach Anspruch 3, bei dem der Löscharbeitsvorgang vor der Verarbeitung des Löschzählers oder nach der Verarbeitung des Löschzählers ausgelöst oder durchgeführt wird.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Auswahlcode und die Adressinformation kombiniert werden, um mehrere physische Adressen des Speichers zu bestimmen.
  6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Auswahlcode eine oder mehrere physische Adressen in der Adressinformation bestimmt.
  7. Verfahren nach einem der vorhergehenden Ansprüche, das weiterhin die folgenden Schritte umfasst: – Ausrichten des Auswahlcodes an dem niedrigstwertigen Bit mit der Adressinformation, – Bestimmen mindestens einer physischen Adresse, die einem Löscharbeitsvorgang unterzogen wird, durch Kombinieren des Auswahlcodes und der Adressinformation, wobei – ein erster Wert des Auswahlcodes anzeigt, dass ein entsprechendes Bit der Adressinformation unverändert bleibt, oder – ein zweiter Wert des Auswahlcodes anzeigt, dass ein entsprechendes Bit der Adressinformation entweder „0“ oder „1“ sein kann.
  8. Verfahren nach Anspruch 7, wobei der erste Wert „0“ ist und der zweite Wert „1“ ist.
  9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Bestimmen eines ungenutzten Löschzählerfelds das Durchführen eines Sucharbeitsvorgangs für das ungenutzte gelöschte Zählerfeld in einem Löschzählerspeicher, der für den Löschzähler bereitgestellt wird, umfasst.
  10. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Löschzähler erhöht wird, indem der Auswahlcode und die Adressinformation in das ungenutzte Löschzählerfeld geschrieben werden.
  11. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Löschzähler mit einem Abschnitt eines Speichers, insbesondere eines nichtflüchtigen Speichers, assoziiert wird und wobei ein Löscharbeitsvorgang, der auf den Abschnitt des Speichers angewendet wird, das Erhöhen des Löschzählers auslöst.
  12. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Löschzähler Teil eines nichtflüchtigen Speichers ist, wobei der Speicher des Löschzählers für eine Anwendungssoftware nicht zugänglich oder schreibgeschützt ist.
  13. Verfahren nach einem der vorhergehenden Ansprüche, bei dem jedes logische Bit des Löschzählerfelds mehrere physische Bits umfasst, wobei eine Majoritätsentscheidung auf der Basis der mehreren physischen Bits für das entsprechende logische Bit getroffen wird.
  14. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verfahren weiterhin die folgenden Schritte umfasst: – Lesen des Löschzählers und Speichern desselben in einem Register; – Suchen nach dem ungenutzten Löschzählerfeld; – Schreiben des Auswahlcodes und der Adressinformation in das ungenutzte Löschzählerfeld und – Zurückschreiben des Registers in den Löschzähler.
  15. Verfahren nach Anspruch 14, das den folgenden Schritt umfasst: – Anzeigen einer Warnung oder eines Fehlers in dem Fall, in dem das Zurückschreiben des Registers in den Löschzähler nicht erfolgreich war.
  16. Vorrichtung, umfassend: – einen Löschzähler, der mehrere Löschzählerfelder umfasst; – eine Verarbeitungseinheit, die zum Verarbeiten des Löschzählers durch Folgendes eingerichtet ist: – Bestimmen eines ungenutzten Löschzählerfelds; – Schreiben eines Auswahlcodes und einer Adressinformation in das ungenutzte Löschzählerfeld; – wobei der Auswahlcode und die Adressinformation kombiniert werden, um mindestens eine physische Adresse eines Speichers zu bestimmen.
  17. Vorrichtung nach Anspruch 16, die weiterhin einen Speicherabschnitt umfasst, wobei die Verarbeitungseinheit zum Verarbeiten des Löschzählers auf der Basis eines an dem Speicherteil durchzuführenden Löschvorgangs eingerichtet ist.
  18. Vorrichtung nach einem der Ansprüche 16 oder 17, bei der die Verarbeitungseinheit zu Folgendem eingerichtet ist: – Lesen des Löschzählers und Speichern desselben in einem Register; – Suchen nach dem ungenutzten Löschzählerfeld; – Schreiben des Auswahlcodes und der Adressinformation in das ungenutzte Löschzählerfeld; – Zurückschreiben des Registers in den Löschzähler.
  19. Vorrichtung nach einem der Ansprüche 16 bis 18, bei der die Vorrichtung auf einem einzigen Chip, Die oder Mikroplättchen implementiert ist.
  20. Vorrichtung nach einem der Ansprüche 16 bis 19, bei der der Speicherabschnitt Teil eines nichtflüchtigen Speichers ist.
  21. Vorrichtung nach einem der Ansprüche 16 bis 20, bei der der Speicherabschnitt mindestens eines der folgenden umfasst: – Floating-Gate-Zellen; – PCRAM, – RRAM, – MRAM, – MONOS-Vorrichtungen, – Nanokristallzellen, – FeRAM, – Festplattenlaufwerk, – nichtflüchtigen Speicher.
  22. Computerprogrammprodukt, das direkt in einen Speicher einer Digitalverarbeitungsvorrichtung ladbar ist und Softwarecodeabschnitte zum Durchführen der Schritte des Verfahrens nach einem der Ansprüche 1 bis 15 umfasst.
DE102015102774.7A 2014-02-26 2015-02-26 Verfahren und vorrichtung zur verarbeitung eines löschzählers Pending DE102015102774A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/190,265 US9466377B2 (en) 2014-02-26 2014-02-26 Method and device for processing an erase counter
US14/190,265 2014-02-26

Publications (1)

Publication Number Publication Date
DE102015102774A1 true DE102015102774A1 (de) 2015-08-27

Family

ID=53782645

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015102774.7A Pending DE102015102774A1 (de) 2014-02-26 2015-02-26 Verfahren und vorrichtung zur verarbeitung eines löschzählers

Country Status (3)

Country Link
US (1) US9466377B2 (de)
JP (1) JP5937244B2 (de)
DE (1) DE102015102774A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150169438A1 (en) * 2013-12-18 2015-06-18 Infineon Technologies Ag Method and device for incrementing an erase counter
US10908824B2 (en) 2018-11-08 2021-02-02 Winbond Electronics Corp. Flash memory storage device and method thereof
US11310033B2 (en) * 2019-06-05 2022-04-19 Blackberry Limited System and method for operating pseudorandom generators
US20230297283A1 (en) * 2022-03-21 2023-09-21 Everspin Technologies, Inc. Persistent xspi stt-mram with optional erase operation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388267A (en) * 1991-05-29 1995-02-07 Dell Usa, L.P. Method and apparatus for updating and restoring system BIOS functions while maintaining BIOS integrity
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5612911A (en) * 1995-05-18 1997-03-18 Intel Corporation Circuit and method for correction of a linear address during 16-bit addressing
US5933847A (en) 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US8166355B2 (en) * 2005-02-10 2012-04-24 Siano Mobile Silicon Ltd. System and method for mitigating memory requirements
KR20110060493A (ko) * 2009-11-30 2011-06-08 삼성전자주식회사 메모리 장치의 소거 카운트 관리 방법 및 장치
US9021421B1 (en) * 2012-05-07 2015-04-28 Google Inc. Read and write barriers for flexible and efficient garbage collection
KR101990972B1 (ko) * 2012-10-04 2019-06-19 삼성전자 주식회사 메모리 시스템에서의 순환 중복 검사 동작 수행 방법 및 이를 이용한 메모리 컨트롤러
US9153331B2 (en) * 2013-03-13 2015-10-06 Sandisk Technologies Inc. Tracking cell erase counts of non-volatile memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
http://en.wikipedia.org/wiki/Thermometer_code

Also Published As

Publication number Publication date
US9466377B2 (en) 2016-10-11
JP5937244B2 (ja) 2016-06-22
JP2015165393A (ja) 2015-09-17
US20150243359A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
DE112011102160B4 (de) Wear-levelling bei Zellen/Seiten/Teilseiten/Blöcken eines Speichers
DE112014004778B4 (de) Vorrichtung und Verfahren zum Verwalten von Chipgruppen
DE112014004761B4 (de) Beeinflussung des Wear-Leveling in Speichersystemen
DE102019116520A1 (de) Datenspeichersysteme und -verfahren für eine verbesserte datenumlagerung basierend auf lesepegelspannungen, die mit einer fehlerwiederherstellung verbunden sind
DE112010004656B4 (de) Blockinterner Ausgleich für nachlassende Funktionsfähigkeit von Speichern
DE102011055714A1 (de) Verfahren zum Programmieren einer nicht-flüchtigen Speichervorrichtung
DE102011085989A1 (de) Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen
DE112020006139T5 (de) Vor-lese-und lese-schwellenspannungsoptimierung
DE112011100371T5 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Decodieren eines Codeworts
DE102015102774A1 (de) Verfahren und vorrichtung zur verarbeitung eines löschzählers
DE112020006215T5 (de) Blockfamilien-basierte Fehlervermeidung für Speichervorrichtungen
DE102018123926A1 (de) Dynamische mehrstufige Decodierung
DE112020001937T5 (de) Vorausschauender datenvorabruf in einer datenspeicher-vorrichtung
DE112016002305B4 (de) Reduktion der Schreibverstärkung in einem Objektspeicher
DE112014000311T5 (de) Absichern der Inhalte einer Speichereinheit
DE112021002268T5 (de) Neuronales Regressionsnetzwerk zum Identifizieren von Schwellenspannungen, die beim Lesen von Flash-Speichervorrichtungen zu verwenden sind
DE112020004922T5 (de) Speicherungsvorrichtung mit erhöhter beständigkeit
DE102015209502A1 (de) Markierungsprogrammierung in nichtflüchtigen Speichern
DE102015113414A1 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102013013047A1 (de) Bestimmung einer Kennung
DE102016107718A1 (de) Auslesen von Fehlervektoren aus einer Speichereinheit
DE102018123961A1 (de) Gruppen-leseaktualisierung
DE112017004916T5 (de) Verwendung von Kompression zur Kapazitätserhöhung eines speicherseitigen Caches mit grosser Blockgrösse
DE112020005502T5 (de) Dynamische überprovisionierungszuweisung für zweckbestimmte blöcke
DE102018124836A1 (de) Neuartiger speicherbaustein

Legal Events

Date Code Title Description
R012 Request for examination validly filed