DE102020206596A1 - Method for operating a storage medium and computing unit with storage medium - Google Patents

Method for operating a storage medium and computing unit with storage medium Download PDF

Info

Publication number
DE102020206596A1
DE102020206596A1 DE102020206596.9A DE102020206596A DE102020206596A1 DE 102020206596 A1 DE102020206596 A1 DE 102020206596A1 DE 102020206596 A DE102020206596 A DE 102020206596A DE 102020206596 A1 DE102020206596 A1 DE 102020206596A1
Authority
DE
Germany
Prior art keywords
physical
sub
area
data
storage medium
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
DE102020206596.9A
Other languages
German (de)
Inventor
Stefan Krieck
Adrian Funk
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 DE102020206596.9A priority Critical patent/DE102020206596A1/en
Priority to CN202110577493.5A priority patent/CN113741804A/en
Publication of DE102020206596A1 publication Critical patent/DE102020206596A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben eines Speichermediums (120), das einen nichtflüchtigen Speicher bereitstellt, der ohne vorheriges Löschen beschreibbar ist, und auf dem Daten (115) gemäß einem physikalischen Adressraum (121) ablegbar sind, wobei Daten (115) in den Speicher geschrieben und/oder von dem Speicher gelesen werden, indem ein virtueller Adressraum (141) angesprochen wird, der gemäß einer veränderbaren Zuordnung (130) in den physikalischen Adressraum (121) abgebildet wird, wobei auf dem Speichermedium (120) physikalische Teilbereiche (122) vorgesehen werden, denen gemäß der veränderbaren Zuordnung (130) virtuelle Teilbereiche (142), die über den virtuellen Adressraum (141) angesprochen werden, zugeordnet werden, und wobei die Zuordnung (130) wiederholt geändert wird und dabei die Daten, unter Beibehaltung ihrer Position in den virtuellen Teilbereichen (142), in andere physikalische Teilbereiche (122) übertragen werden, sowie eine Recheneinheit (100) mit einem solchen Speichermedium (120).The invention relates to a method for operating a storage medium (120) which provides a non-volatile memory that can be written to without prior erasure and on which data (115) can be stored in accordance with a physical address space (121), with data (115) in the Memory is written and / or read from the memory by addressing a virtual address space (141) which is mapped into the physical address space (121) according to a changeable assignment (130), with physical sub-areas (122 ) are provided, to which virtual sub-areas (142), which are addressed via the virtual address space (141), are assigned according to the changeable assignment (130), and the assignment (130) is repeatedly changed and the data is retained while maintaining it Position in the virtual sub-areas (142), are transferred to other physical sub-areas (122), as well as a computing unit (100) with a such storage medium (120).

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben eines Speichermediums, das einen nichtflüchtigen Speicher bereitstellt, sowie eine Recheneinheit mit einem solchen Speichermedium und ein Computerprogramm zu dessen Durchführung.The present invention relates to a method for operating a storage medium which provides a non-volatile memory, as well as a computing unit with such a storage medium and a computer program for its implementation.

Stand der TechnikState of the art

Recheneinheiten wie z.B. Steuergeräte in Fahrzeugen (also im Automobilbereich) müssen in aller Regel nicht nur einen Programmcode, sondern auch - zur Laufzeit der darauf ausgeführten Software - Daten nichtflüchtig abspeichern. Als Hardware werden für diesen Zweck traditionell EEPROMs oder Flashspeicher eingesetzt. Die Funktionalität der zugehörigen Software ist durch das sog. AUTOSAR-Konsortium standardisiert. Diese Standards legen aber lediglich den Funktionsumfang der Software fest, nicht jedoch die Art und Weise, in der die Daten auf dem Speichermedium organisiert werden.Computing units such as control units in vehicles (i.e. in the automotive sector) generally not only have to store a program code, but also - during the runtime of the software running on them - data in a non-volatile manner. EEPROMs or flash memories are traditionally used as hardware for this purpose. The functionality of the associated software is standardized by the so-called AUTOSAR consortium. However, these standards only define the functionality of the software, but not the way in which the data is organized on the storage medium.

Offenbarung der ErfindungDisclosure of the invention

Erfindungsgemäß werden ein Verfahren zum Betreiben eines Speichermediums sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.According to the invention, a method for operating a storage medium as well as a computing unit and a computer program for its implementation are proposed with the features of the independent patent claims. Advantageous refinements are the subject matter of the subclaims and the description below.

Die Erfindung beschäftigt sich mit einem Verfahren zum Betreiben eines Speichermediums, das einen nichtflüchtigen Speicher bereitstellt, auf dem Daten gemäß einem physikalischen Adressraum ablegbar sind. Ein solches Verfahren kann insbesondere auf einer Recheneinheit wie z.B. einem Steuergerät in einem Fahrzeug - dann mit entsprechender Software - ausgeführt werden. Die Erfindung betrifft insofern auch eine entsprechende Recheneinheit mit einem solchen Speichermedium.The invention is concerned with a method for operating a storage medium which provides a non-volatile memory on which data can be stored in accordance with a physical address space. Such a method can in particular be carried out on a computing unit such as a control unit in a vehicle - then with the appropriate software. In this respect, the invention also relates to a corresponding computing unit with such a storage medium.

Beim Beschreiben eines solchen Speichermediums müssen in der Regel mehrere Punkte beachtet werden. Jeder Lösch- bzw. Programmiervorgang stellt eine physikalische Belastung für die Speicherzelle(n) dar. Die Anzahl der erlaubten Lösch- bzw. Programmiervorgänge je Speicherzelle der eingesetzten Speichertechnologien ist daher begrenzt. Jenseits der Belastungsgrenze kann ein robuster Betrieb aufgrund von Verschleiß nicht mehr garantiert werden.When writing to such a storage medium, several points must usually be taken into account. Every erasure or programming process places a physical load on the memory cell (s). The number of permitted erasing or programming processes per memory cell of the memory technologies used is therefore limited. Beyond the load limit, robust operation can no longer be guaranteed due to wear and tear.

Die nichtflüchtigen Daten unterscheiden sich nicht nur hinsichtlich des Inhalts, sondern insbesondere auch durch die Häufigkeit, mit der sie gespeichert werden. Oft übersteigt die Speicherhäufigkeit einzelner Daten die Anzahl der erlaubten Lösch- bzw. Programmiervorgänge. Um die resultierende Belastung auf das Speichermedium zu verringern, müssen die Lösch- bzw. Programmiervorgänge über das Medium verteilt werden (sog. „Wear-Leveling“).The non-volatile data differ not only in terms of their content, but also in particular in terms of the frequency with which they are stored. The storage frequency of individual data often exceeds the number of permitted deletion or programming processes. In order to reduce the resulting load on the storage medium, the deletion and programming processes must be distributed over the medium (so-called "wear leveling").

Einzelne Speicherzellen oder auch größere, zusammenhängende Speicherbereiche können durch Hardwaredefekte ausfallen. In solchen Speicherzellen bzw. Speicherbereichen dürfen keine Daten gespeichert werden. Flashspeicher (und auch andere Speichermedien mit nichtflüchtigem Speicher) sind nicht beliebig überschreibbar und müssen vor dem Programmieren in größeren Bereichen (in sog. Flash-Bänken) gelöscht werden.Individual memory cells or larger, contiguous memory areas can fail due to hardware defects. No data may be stored in such memory cells or memory areas. Flash memory (and also other storage media with non-volatile memory) cannot be overwritten at will and must be deleted in larger areas (in so-called flash banks) before programming.

Bisherige Möglichkeiten, damit umzugehen, sind bei solchen Speichermedien, insbesondere bei Flashspeichern, teils mit Nachteilen verbunden, wie nachfolgend kurz erläutert werden soll.Previous options for dealing with such storage media, especially flash memories, are sometimes associated with disadvantages, as will be briefly explained below.

Zusammengehörende Daten werden in Form von Blöcken zusammengefasst und verwaltet. Wenn sich ein Datenblock geändert hat und für diesen ein Schreibauftrag vorliegt, kann der Block am Ende des belegten Bereiches, d.h. an der nächsten freien physikalischen Adresse, angehängt werden. Durch viele Schreibaufträge wird sich das Speichermedium mit der Zeit füllen. Dadurch verlängern sich die Zeiten, um Blöcke zu finden. Bevor dieser Zustand erreicht wird, sollte die Flash-Bank mit den ältesten Daten gelöscht werden, um Platz für neue Schreibaufträge zu schaffen. Gegebenenfalls müssen noch Daten aus dieser Bank an das Ende des belegten Bereiches umgezogen werden, um nicht verloren zu gehen. Sowohl das Löschen einer Bank als auch das Suchen sowie Umziehen von Daten ist zeitaufwändig und verlangsamt bzw. blockiert die Abarbeitung von Schreib-oder Leseaufträgen.Associated data are summarized and managed in the form of blocks. If a data block has changed and there is a write job for it, the block can be appended to the end of the occupied area, i.e. to the next free physical address. The storage medium will fill up over time due to a large number of write jobs. This increases the times it takes to find blocks. Before this state is reached, the flash bank with the oldest data should be deleted to make space for new write jobs. It may be necessary to move data from this bank to the end of the occupied area in order not to get lost. Both the deletion of a bank and the search for and relocation of data is time-consuming and slows down or blocks the processing of write or read jobs.

Ist eine Speicherzelle bzw. ein Speicherbereich aufgrund eines Hardware-Defektes nicht mehr lösch- und/oder programmierbar, so können die Daten hinter den defekten Bereich gelegt werden, d.h. an die nächste fehlerfreie physikalische Adresse. Insbesondere bei größeren defekten Bereichen (z.B. einer defekten Wordline) werden die erfolglosen Programmierversuche viel Zeit in Anspruch nehmen.If a memory cell or a memory area can no longer be erased and / or programmed due to a hardware defect, the data can be placed behind the defective area, i.e. at the next error-free physical address. The unsuccessful programming attempts will take a long time, especially in the case of larger defective areas (e.g. a defective wordline).

Vor diesem Hintergrund wird nun vorgeschlagen, dass Daten in den Speicher geschrieben und/oder von dem Speicher gelesen werden, indem ein virtueller Adressraum angesprochen wird, der gemäß einer veränderbaren Zuordnung (einem „Mapping“) in den physikalischen Adressraum abgebildet wird.Against this background, it is now proposed that data be written to the memory and / or read from the memory by addressing a virtual address space that is mapped into the physical address space according to a changeable assignment (a “mapping”).

Das Speichermedium in einer Recheneinheit wie z.B. einem Steuergerät wird vom Mikrocontroller bzw. Prozessor (als Teil der Recheneinheit) normalerweise über den physikalischen Adressraum angesprochen. Im Rahmen der vorliegenden Erfindung wird dieser physikalische Speicher bzw. Adressraum in einen virtuellen (oder logischen) Speicher bzw. Adressraum abstrahiert. Wenn Daten in den physikalischen Speicher (bzw. dessen Adressraum) geschrieben oder wieder aus diesem gelesen werden, erfolgt dies nunmehr unter Zwischenschaltung eines virtuellen bzw. logischen Adressraums. Zwischen physikalischem und logischem Adressraum gibt es ein zur Laufzeit der Software veränderbares, also dynamisches Mapping (Zuordnung), wodurch physikalischen Teilbereichen des Speichermediums virtuelle Teilbereiche, die über den virtuellen Adressraum angesprochen werden, zugeordnet werden. Diese Zuordnung wird insbesondere, z.B. auch redundant, in den physikalischen Teilbereichen hinterlegt, es wird also auch die virtuelle Adresse oder ein charakteristischer Wert hierfür, wie z.B. eine ID, an der zugeordneten physikalischen Adresse gespeichert. Im Zuge der Erfindung werden nun die Daten, unter Beibehaltung ihrer Position in den virtuellen Teilbereichen, wiederholt in andere (freie) physikalische Teilbereiche übertragen und das Mapping entsprechend angepasst. Mit anderen Worten werden die Daten dabei umkopiert, während die anzusprechende, virtuelle Adresse erhalten bleibt.The storage medium in a computing unit such as a control unit is normally used by the microcontroller or processor (as part of the computing unit) via the physical address space addressed. In the context of the present invention, this physical memory or address space is abstracted into a virtual (or logical) memory or address space. If data is written to the physical memory (or its address space) or read from it again, this is now done with the interposition of a virtual or logical address space. Between the physical and logical address space there is a dynamic mapping (assignment) that can be changed during the runtime of the software, whereby physical sub-areas of the storage medium are assigned virtual sub-areas that are addressed via the virtual address space. This assignment is stored in particular, for example also redundantly, in the physical subareas, so the virtual address or a characteristic value for it, such as an ID, is also stored at the assigned physical address. In the course of the invention, while maintaining their position in the virtual sub-areas, the data are then repeatedly transferred to other (free) physical sub-areas and the mapping is adapted accordingly. In other words, the data is copied over while the virtual address to be addressed is retained.

Dies bringt verschiedene Vorteile mit sich. Defekte Bereiche im physikalischen Speicher können auf diese Weise sehr einfach auf einen anderen Bereich gemappt bzw. einem anderen Bereich zugeordnet werden, d.h. der eigentlich defekte Bereich wird nicht weiter einem virtuellen Bereich zugeordnet; vielmehr wird ein solcher virtueller Bereich dann einem (zuvor insbesondere frei bzw. als Reserve gehaltenen) physikalischen Bereich zugeordnet. Eine zeitaufwändige Suche nach einem Ende des defekten Bereichs entfällt.This has various advantages. In this way, defective areas in the physical memory can be mapped very easily to another area or assigned to another area, i.e. the actual defective area is no longer assigned to a virtual area; Rather, such a virtual area is then assigned to a physical area (previously in particular free or kept as a reserve). A time-consuming search for the end of the defective area is no longer necessary.

Da die Daten fest an den gleichen virtuellen Adressen verbleiben und das Mapping zu den physikalischen Adressen bekannt ist, entfällt eine aufwändige Suche im Speichermedium. Ebenso entfällt die Notwendigkeit, Daten(-Blöcke) immer an das Ende des belegten Bereiches anzuhängen oder auf eine andere Bank umzuziehen.Since the data remain permanently at the same virtual addresses and the mapping to the physical addresses is known, there is no need for a time-consuming search in the storage medium. There is also no need to always append data (blocks) to the end of the occupied area or to move to another bank.

Das wiederholte, insbesondere regelmäßige, Umkopieren der Daten (mit Änderung der Zuordnung) verhindert außerdem das Wegdriften von selten programmierten Zellen (physikalischen Teilbereichen) und verhindert somit Datenverlust. Alle Daten werden durch den Mechanismus des Umkopierens bzw. Übertragens regelmäßig neu physikalisch programmiert. Dadurch wird Ladungsverlusten entgegengewirkt, die naturgemäß nach Jahren zu Verlust von Daten führen würden. The repeated, especially regular, copying of the data (with a change in the assignment) also prevents rarely programmed cells (physical subareas) from drifting away and thus prevents data loss. All data are regularly reprogrammed physically using the copying or transferring mechanism. This counteracts charge losses that would naturally lead to loss of data after years.

Auch wenn die Erfindung bevorzugt mit EEPROM, PCM (Phase-change Random Access Memory) oder MRAM (Magnetoresistive Random Access Memory) verwendet werden kann, funktioniert sie grundsätzlich auch mit anderen nichtflüchtigen Speichern. Die Erfindung entfaltet besondere Vorteile bei Speichern, die ohne vorheriges Löschen beschreibbar sind, da dann die physikalischen Teilbereiche gezielt übertragen werden können. Bei Speichern mit Bereichen, die nur nach vorherigem Löschen überschreibbar sind, wie z.B. herkömmlichen Flashspeichern, muss erst der ganze Bereich (z.B. eine sog. Flashbank bzw. Sektor) gelöscht werden, bevor eine einzelne Zelle programmiert werden kann. Damit wird im Allgemeinen ein viel größerer Bereich gelöscht, als danach programmiert wird, was für die vorliegend im Wesentlichen relevanten Anwendungsfälle, wie z.B. Fahrzeugsteuergeräte, zu großen Verschleiß bedeutet.Even if the invention can preferably be used with EEPROM, PCM (Phase-Change Random Access Memory) or MRAM (Magnetoresistive Random Access Memory), it basically also works with other non-volatile memories. The invention has particular advantages in memories that can be written to without prior erasure, since the physical sub-areas can then be transferred in a targeted manner. When saving with areas that can only be overwritten after previous deletion, such as conventional flash memories, the entire area (e.g. a so-called flash bank or sector) must first be deleted before a single cell can be programmed. This generally erases a much larger area than is then programmed, which means too much wear and tear for the essentially relevant applications here, such as vehicle control units.

Die genannten Vorteile lassen sich besonders dann erzielen, wenn das Mapping bzw. die Zuordnung immer dann verändert wird, wenn wenigstens ein Kriterium erfüllt ist, z.B. bei jedem Aufstarten der Recheneinheit und/oder nach einer vorgegebenen Menge an in den Speicher und/oder den Teilbereich geschriebenen Daten und/oder einer vorgegebenen Anzahl an Schreibvorgängen des Speichers und/oder des Teilbereichs.The advantages mentioned can be achieved in particular if the mapping or the assignment is always changed when at least one criterion is met, for example each time the computing unit is started and / or after a predetermined amount of data into the memory and / or the sub-area written data and / or a predetermined number of write operations of the memory and / or the sub-area.

Zusätzlich zum Mapping wird bevorzugt ein Sequenz-Zähler (als Verwaltungsinformation) in den physikalischen Teilbereichen mit abgelegt. Mit diesem lässt sich das Alter eines Teilbereichs identifizieren. Bei jedem Schreiben von Daten in einen bisher ungenutzten Teilbereich wird dieser neu angelegt und entsprechend zugeordnet (gemappt). Jeder neue Teilbereich kann z.B. einen inkrementierten Sequenzzähler als weiteren Teil der Verwaltungsinformation erhalten, d.h. je größer der Wert, desto neuer ist der Teilbereich.In addition to the mapping, a sequence counter (as administrative information) is preferably also stored in the physical sub-areas. This can be used to identify the age of a sub-area. Each time data is written to a previously unused sub-area, it is newly created and assigned (mapped) accordingly. Each new sub-area can, for example, receive an incremented sequence counter as a further part of the management information, i.e. the larger the value, the newer the sub-area.

Vorzugsweise ist bzw. wird einem virtuellen Teilbereich jedoch nur dann ein physikalischer Teilbereich zugeordnet, wenn in dem virtuellen Teilbereich auch Daten gespeichert sind bzw. werden. Noch nicht benutzten virtuellen Teilbereichen sind dann keine physikalischen Teilbereiche zugeordnet. Dadurch kann eine Reserve an physikalischen Teilbereichen bereitgestellt werden, um zum einen den ältesten physikalischen Teilbereich an eine andere Stelle rotieren zu können und zum anderen defekte physikalische Teilbereiche ummappen (d.h. neu zuordnen) zu können. Je größer die Reserve ist, desto größer ist der Handlungsspielraum bei Defekten. Die physikalischen Teilbereiche werden insbesondere zusammenhängend (im Allgemeinen nach dem Sequenzzähler sortiert) abgelegt, da damit die Suche nach dem ältesten und neuesten physikalischen Teilbereich deutlich vereinfacht und somit beschleunigt wird. Dies gewährleistet außerdem, dass Schreib- und Lesezugriffe nicht beliebig über den Speicher verteilt werden müssen, sondern zusammenhängende Speicherbereiche betreffen.Preferably, however, a physical sub-area is or is only assigned to a virtual sub-area if data is or will also be stored in the virtual sub-area. Virtual sub-areas that have not yet been used are then not assigned any physical sub-areas. As a result, a reserve of physical sub-areas can be made available, on the one hand to be able to rotate the oldest physical sub-area to a different location and on the other hand to be able to remap (ie reassign) defective physical sub-areas. The greater the reserve, the greater the scope for action in the event of defects. In particular, the physical subareas are stored in a contiguous manner (generally sorted according to the sequence counter), as this significantly simplifies and accelerates the search for the oldest and newest physical subarea. This also ensures that read and write access is not arbitrary via the memory must be distributed, but relate to contiguous memory areas.

Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Fahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.A computing unit according to the invention, e.g. a control unit of a vehicle, is set up, in particular in terms of programming, to carry out a method according to the invention.

Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie insbesondere PCM oder MRAM, aber auch z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.The implementation of a method according to the invention in the form of a computer program or computer program product with program code for performing all method steps is advantageous, since this causes particularly low costs, especially if an executing control device is used for other tasks and is therefore available anyway. Suitable data carriers for providing the computer program are in particular magnetic, optical and electrical memories, such as in particular PCM or MRAM, but also, for example, hard drives, flash memories, EEPROMs, DVDs, etc. A program can also be downloaded via computer networks (Internet, intranet, etc.) .

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and embodiments of the invention emerge from the description and the accompanying drawing.

Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.The invention is shown schematically in the drawing using an exemplary embodiment and is described below with reference to the drawing.

FigurenlisteFigure list

  • 1 zeigt schematisch eine erfindungsgemäße Recheneinheit in einer bevorzugten Ausführungsform. 1 shows schematically a computing unit according to the invention in a preferred embodiment.
  • 2 und 3 zeigen verschiedene Teilabläufe eines erfindungsgemäßen Verfahrens in einer bevorzugten Ausführungsform. 2 and 3 show various partial sequences of a method according to the invention in a preferred embodiment.

Ausführungsform(en) der ErfindungEmbodiment (s) of the invention

In 1 ist schematisch eine erfindungsgemäße Recheneinheit 100 in einer bevorzugten Ausführungsform, z.B. ein Steuergerät eines Fahrzeugs, mit einem Speichermedium 120 mit nichtflüchtigem Speicher, z.B. PCM-Speicher, und einem Mikrocontroller 110, dargestellt. Nachfolgend soll die Funktionsweise dieser Recheneinheit und damit auch des erfindungsgemäßen Verfahrens, bei dem Daten 115 vom Speicher gelesen bzw. darauf geschrieben werden, erläutert werden.In 1 is a schematic of a computing unit according to the invention 100 in a preferred embodiment, for example a control unit of a vehicle, with a storage medium 120 with non-volatile memory, e.g. PCM memory, and a microcontroller 110 , shown. The following is the mode of operation of this arithmetic unit and thus also of the method according to the invention for the data 115 read from or written to memory.

Der physikalische Adressraum 121 des Speichermediums 120 wird z.B. gleichmäßig in physikalische Teilbereiche 122 unterteilt, die im Folgenden auch als physikalische Reihen bzw. Zeilen („Rows“) bezeichnet werden. Die Daten 115 (oder Datenblöcke), die vom Steuergerät verwaltet (d.h. gelesen und geschrieben) werden müssen, werden in einen virtuellen Speicher 140 mit einem virtuellen Adressraum 141 gelegt, der ebenfalls gleichmäßig in virtuelle bzw. logische Reihen 142 unterteilt ist. Die Zuordnung 130 (auch als „Mapping“ bezeichnet) zwischen virtuellen Reihen 142 und physikalischen Reihen 122 wird als Verwaltungsinformation in den physikalischen Reihen 122, und dort insbesondere in den Kopfbereichen 123 („Header“) und/oder Fußbereichen 124 („Footer“) oder hier redundant in beiden, hinterlegt. Zudem kann diese Zuordnung auch in der ausführenden Software vorhanden sein. Als Kopfbereich einer Reihe können deren erste Bytes, als Fußbereich deren letzte Bytes bezeichnet werden. Eine Reihe besteht dann aus einem Nutzdatenbereich und einem Kopfbereich und/oder einem Fußbereich. Die Daten in Kopfbereich und Fußbereich können, wie erwähnt, identisch sein.The physical address space 121 of the storage medium 120 becomes, for example, evenly in physical sub-areas 122 which are also referred to as physical rows or rows in the following. The data 115 (or data blocks) that have to be managed (ie read and written) by the control unit are stored in a virtual memory 140 with a virtual address space 141 placed, which is also evenly in virtual or logical rows 142 is divided. The assignment 130 (also known as "mapping") between virtual rows 142 and physical series 122 is used as management information in the physical ranks 122 , and there especially in the head areas 123 ("Header") and / or footer areas 124 ("Footer") or here redundantly in both, stored. In addition, this assignment can also be present in the executing software. The first bytes of a row can be designated as the header area and the last bytes as the footer area. A row then consists of a user data area and a header area and / or a footer area. As mentioned, the data in the header area and footer area can be identical.

Eine physikalische Reihe 122 mit Zellen, die sich aufgrund eines Hardwaredefektes nicht mehr beschreiben lassen, wird in der Verwaltungsinformation als defekt markiert und somit vom Mapping ausgeschlossen, wie im gezeigten Beispiel die letzte (von oben gesehen, also die unterste) Reihe 122.A physical series 122 cells that can no longer be written to due to a hardware defect are marked as defective in the management information and are therefore excluded from mapping, as in the example shown, the last row (seen from above, i.e. the bottom) 122 .

Im Allgemeinen ist das Speichermedium 120 nicht komplett gefüllt. Freie Teilbereiche, d.h. ungenutzte physikalische Reihen 122, werden in der Verwaltungsinformation als Reserve markiert und können somit für Änderungen (z.B. Rotation der Reihen) oder Erweiterungen im Mapping (Speichern neuer Daten) freigegeben werden, wie im gezeigten Beispiel die fünfte und sechste (von oben gesehen) Reihe 122 (diese sind keinen virtuellen Reihen zugeordnet).In general, the storage medium is 120 not completely filled. Free sub-areas, ie unused physical rows 122 , are marked as reserve in the management information and can thus be released for changes (e.g. rotation of the rows) or extensions in the mapping (saving new data), as in the example shown, the fifth and sixth rows (seen from above) 122 (these are not assigned to any virtual series).

Nachfolgend soll ein Beispiel einer solchen Zuordnung bzw. eines solchen Mappings erläutert werden, und zwar mit folgenden Annahmen:

  • Physikalischer Adressraum: 0x1C80000 - 0x1C87FFFF Größe des physikalischen Speichers: 512kB
  • Gewählte Größe einer physikalischen Reihe: 1024B (Vielfaches der Bits auf einer Wordline)
  • Größe der Verwaltungsinformation (Header, Footer) je Reihe: 2 * 16B = 32B
An example of such an assignment or such a mapping is explained below, with the following assumptions:
  • Physical address space: 0x1C80000 - 0x1C87FFFF Size of the physical memory: 512kB
  • Selected size of a physical row: 1024B (multiple of the bits on a wordline)
  • Size of the management information (header, footer) per row: 2 * 16B = 32B

Hierzu ist anzumerken, dass bei der Größe der physikalischen Reihe das Vielfache der Bits auf einer Wordline insofern wichtig ist, als damit Fehler auf einzelnen Wordlines adäquat behandelt werden können.It should be noted here that, given the size of the physical row, the multiple of the bits on a wordline is important insofar as it allows errors on individual wordlines to be adequately dealt with.

Damit ergibt sich:

  • Anzahl an Reihen: 512kB / 1kB = 512
  • Größe (Nutzdaten) einer logischen (virtuellen) Reihe: 1024B - 32B = 992B Verwaltungsinformationen insgesamt: 512 * 32B = 16kB
  • Größe des virtuellen Speichers insgesamt: 512kB - 16kB = 496kB = 992B * 512 Adressraum des virtuellen Speichers: 0x00000 - 0x7BFFF
This results in:
  • Number of rows: 512kB / 1kB = 512
  • Size (user data) of a logical (virtual) row: 1024B - 32B = 992B Total administrative information: 512 * 32B = 16kB
  • Total size of the virtual memory: 512kB - 16kB = 496kB = 992B * 512 Address space of the virtual memory: 0x00000 - 0x7BFFF

In das leere Speichermedium, wie in 2 veranschaulicht, werden nun je 128B Daten in der genannten Reihenfolge an die folgenden Adressen geschrieben:

  1. 1. Virtuelle Adresse 0x00000: 0x00000 / 992 = 0, Rest 0 Daten 210 werden in die logische Reihe ID 000 mit Offset 0 gelegt.
  2. 2. Virtuelle Adresse 0x3DF80: 0x3DF80 / 992 = 255, Rest 864 Daten 210 werden in die logische Reihe ID 255 mit Offset 864 gelegt.
  3. 3. Virtuelle Adresse 0x3E000: 0x3E000 / 992 = 256, Rest 0 Daten 210 werden in die logische Reihe ID 256 mit Offset 0 gelegt.
  4. 4. Virtuelle Adresse 0x7BF80: 0x7BF80 / 992 = 511, Rest 864 Daten 210 werden in die logische Reihe ID 511 mit Offset 0 gelegt.
In the empty storage medium, as in 2 illustrated, 128B data is now written to the following addresses in the order given:
  1. 1. Virtual address 0x00000: 0x00000 / 992 = 0, remainder 0 data 210 are placed in the logical row ID 000 with offset 0.
  2. 2. Virtual address 0x3DF80: 0x3DF80 / 992 = 255, remainder 864 data 210 are in the logical series ID 255 with offset 864 placed.
  3. 3. Virtual address 0x3E000: 0x3E000 / 992 = 256, remainder 0 data 210 are in the logical series ID 256 placed with offset 0.
  4. 4. Virtual address 0x7BF80: 0x7BF80 / 992 = 511, remainder 864 data 210 are in the logical series ID 511 placed with offset 0.

Da zu Beginn noch keine Reihen im Speichermedium gespeichert waren, werden die neuen Reihen physikalisch an die jeweils nächste freie Adresse gelegt. Dementsprechend besteht keine feste Zuordnung zwischen physikalischer und logischer Adresse, sondern diese Zuordnung ergibt sich aus der 10. Die ID stellt hier einen Teil der Verwaltungsinformation dar.Since no rows were stored in the storage medium at the beginning, the new rows are physically placed at the next free address. Accordingly, there is no fixed assignment between physical and logical address, but this assignment results from 10. The ID here represents part of the administrative information.

Daraus ergibt sich das in 2 dargestellte Speicherabbild 200. Im Beispiel stehen danach noch 508 ungenutzte Reihen (mit #FREE bezeichnet) als Reserve zur Verfügung. Umgekehrt kann man über die ID der logischen Reihe und dem Offset der Daten innerhalb der Reihe immer eindeutig identifizieren, zu welcher virtuellen Adresse die Daten gehören.This results in the in 2 memory image shown 200 . In the example there are still 508 unused rows (labeled #FREE) available as a reserve. Conversely, the ID of the logical row and the offset of the data within the row can always be used to clearly identify the virtual address to which the data belongs.

Zusätzlich zum Mapping wird gemäß einer Ausführungsform ein Sequenz-Zähler (hier mit cnt bezeichnet) als Verwaltungsinformation mit abgelegt. Mit diesem lässt sich das Alter einer Reihe identifizieren. Bei jedem Schreiben von Daten in eine bisher ungenutzte Reihe wird diese neu angelegt und entsprechend zugeordnet (gemappt), d.h. mit der zur virtuellen Adresse passenden, eindeutigen ID als ein Teil der Verwaltungsinformation versehen. Jede neue Reihe erhält einen inkrementierten Sequenzzähler als weiteren Teil der Verwaltungsinformation, d.h. je größer der Wert, desto neuer ist die Reihe.In addition to the mapping, according to one embodiment, a sequence counter (referred to here as cnt) is also stored as administrative information. This can be used to identify the age of a series. Each time data is written to a previously unused row, it is newly created and assigned (mapped) accordingly, i.e. provided with the unique ID that matches the virtual address as part of the administrative information. Each new row receives an incremented sequence counter as a further part of the management information, i.e. the larger the value, the newer the row.

Bei jedem Schreiben von Daten in eine bereits genutzte Reihe wird der entsprechende Bereich überschrieben, ID und Sequenzzähler bleiben erhalten. Häufiges Schreiben in die gleichen (physikalischen) Reihen würde diese stark beanspruchen. Auch um dies zu vermeiden, werden die Reihen wiederholt auf dem Speichermedium rotiert, insbesondere immer dann, wenn ein oder mehrere Kriterien erfüllt sind. Solche Kriterien sind z.B.: Für jeden Programmierauftrag wird die Menge der programmierten Daten (volatil im RAM) gezählt. Bei Überschreiten eines konfigurierten Grenzwertes wird eine Rotation angestoßen und der Zähler wieder auf Null zurückgesetzt. Der Grenzwert kann z.B. beim 30-fachen einer physikalischen Reihe liegen, d.h. bei 30 kB für eine physikalische Reihenlänge von 1 kB. Insbesondere in Systemen, in denen nur sehr wenige Daten programmiert werden, kann alternativ oder zusätzlich bei jedem ersten Programmierauftrag und/oder nach jedem ersten Aufstarten der Recheneinheit eine Rotation erzwungen werden - unabhängig vom Zähler. Das Erzwingen der Rotation beim ersten Schreiben stellt sicher, dass auch bei geringer Schreiblast rotiert wird. Würde immer erst ab einer Mindestzahl an geschriebenen Bytes rotiert, könnte es passieren, dass in jedem einzelnen Power-On-Zyklus die Mindestzahl nicht erreicht wird und damit niemals rotiert wird. Durch Erzwingen einer Rotation bei erstmaligem Schreiben, wird sicher rotiert und damit eine gleichmäßige Belastung erzwungen.Each time data is written to a row that is already in use, the corresponding area is overwritten, the ID and sequence counter are retained. Frequent writing in the same (physical) rows would put a lot of strain on them. To avoid this, too, the rows are rotated repeatedly on the storage medium, in particular whenever one or more criteria are met. Such criteria are, for example: The amount of programmed data (volatile in RAM) is counted for each programming job. If a configured limit value is exceeded, a rotation is triggered and the counter is reset to zero. The limit value can be, for example, 30 times a physical row, i.e. 30 kB for a physical row length of 1 kB. In systems in which only very little data is programmed, a rotation can alternatively or additionally be forced with every first programming job and / or after every first start-up of the computing unit - regardless of the counter. Forcing the rotation when writing for the first time ensures that it is rotated even when the write load is low. If only a minimum number of written bytes were to be rotated, it could happen that the minimum number is not reached in each individual power-on cycle and is therefore never rotated. By forcing a rotation when writing for the first time, it is rotated safely and thus an even load is enforced.

In den in 3 gezeigten zwei Beispielen (oben und unten) wird eine Rotation z.B. wie folgt vorgenommen: Fünf von acht vorhandenen logischen Reihen sind belegt, mit Sequenzzähler cnt=0 (älteste) bis cnt=4 (neueste). Je zwei Reihen werden rotiert. Dabei ist jeweils links der Ausgangszustand vor der Rotation, rechts hingegen der Zustand nach der Rotation dargestellt. Die jeweils älteste und neueste Reihe sind bei einer Rotation relevant und mit Pfeilen markiert. Die älteste Reihe wird hinter die neueste umgezogen. Die gestrichelten Pfeile stehen für die älteste (oben) bzw. neueste (unten) Reihe nach der ersten Rotation; sie stellen somit einen Zwischenzustand zwischen der linken (Ausgangszustand) und rechten Abbildung (Zustand nach zwei Rotationen) dar. In beiden Fällen werden jeweils die beiden ältesten Reihen, d.h. die mit dem kleinsten Zählerwert, rotiert. Da beim Neubeschreiben von Reihen immer die nächste freie Reihe verwendet wird, verbleibt im Allgemeinen (solange keine defekte Reihe dazwischen aussortiert wurde) ein zusammenhängender freier Bereich).In the in 3 The two examples shown (above and below), a rotation is carried out, for example, as follows: Five of the eight existing logical rows are occupied, with sequence counters cnt = 0 (oldest) to cnt = 4 (newest). Every two rows are rotated. The initial state before the rotation is shown on the left, while the state after the rotation is shown on the right. The oldest and newest rows are relevant for a rotation and are marked with arrows. The oldest row is moved behind the newest. The dashed arrows stand for the oldest (top) or newest (bottom) row after the first rotation; they thus represent an intermediate state between the left (initial state) and right image (state after two rotations). In both cases, the two oldest rows, ie those with the smallest counter value, are rotated. Since the next free row is always used when rows are rewritten, a continuous free area generally remains (as long as no defective row has been sorted out in between).

Das „Wear-Leveling“ lässt sich noch weiter verbessern, indem z.B. nicht nur die logischen Reihen physikalisch rotiert werden, sondern zusätzlich noch die Daten innerhalb einer Reihe. Man kann z.B. eine logische Reihe als einen Ringspeicher betrachten und die enthaltenen Daten in bestimmten (zeitlichen) Abständen oder regelmäßig (ein Kriterium wäre hier z.B. die in eine Reihe einprogrammierte Datenmenge) um einen festen Offset verschieben, der dann als Teil der Verwaltungsinformationen abgelegt wird. Der Offset bezeichnet dann die physikalische Adresse 0x0 in dieser Reihe.The "wear leveling" can be improved even further, e.g. by not only rotating the logical rows physically, but also the data within a row. For example, a logical row can be viewed as a ring buffer and the data it contains can be shifted by a fixed offset at certain (time) intervals or regularly (a criterion here would be, for example, the amount of data programmed into a row), which is then stored as part of the management information. The offset then designates the physical address 0x0 in this row.

Claims (12)

Verfahren zum Betreiben eines Speichermediums (120), das einen nichtflüchtigen Speicher bereitstellt, auf dem Daten (115) gemäß einem physikalischen Adressraum (121) ablegbar sind, wobei Daten (115) in den Speicher geschrieben und/oder von dem Speicher gelesen werden, indem ein virtueller Adressraum (141) angesprochen wird, der gemäß einer veränderbaren Zuordnung (130) in den physikalischen Adressraum (121) abgebildet wird, wobei auf dem Speichermedium (120) physikalische Teilbereiche (122) vorgesehen werden, denen gemäß der veränderbaren Zuordnung (130) virtuelle Teilbereiche (142), die über den virtuellen Adressraum (141) angesprochen werden, zugeordnet werden, und wobei die Zuordnung (130) wiederholt geändert wird und dabei die Daten, unter Beibehaltung ihrer Position in den virtuellen Teilbereichen (142), in andere physikalische Teilereiche (122) übertragen werden.A method for operating a storage medium (120) which provides a non-volatile memory on which data (115) can be stored in accordance with a physical address space (121), wherein data (115) are written into the memory and / or read from the memory by addressing a virtual address space (141) which is mapped into the physical address space (121) according to a changeable assignment (130), physical partial areas (122) being provided on the storage medium (120) to which virtual partial areas (142), which are addressed via the virtual address space (141), are assigned according to the changeable assignment (130), and the assignment (130) being repeatedly changed and the data being transferred to other physical subareas (122) while maintaining their position in the virtual subareas (142). Verfahren nach Anspruch 1, wobei die Zuordnung (130) in den physikalischen Teilbereichen (122) hinterlegt wird.Procedure according to Claim 1 , the assignment (130) being stored in the physical sub-areas (122). Verfahren nach Anspruch 1 oder 2, wobei, wenn in einem physikalischen Teilbereich ein Defekt vorliegt, die Zuordnung verändert und dabei der physikalische Teilbereich (122) mit dem Defekt gemäß der Zuordnung (130) keinem virtuellen Teilbereich zugeordnet wird.Procedure according to Claim 1 or 2 wherein, if there is a defect in a physical sub-area, the assignment is changed and the physical sub-area (122) with the defect according to the assignment (130) is not assigned to a virtual sub-area. Verfahren nach einem der vorstehenden Ansprüche, wobei einem virtuellen Teilbereich (142) nur dann ein physikalischer Teilbereich (122) zugeordnet wird, wenn in dem virtuellen Teilbereich (142) Daten (115) gespeichert werden.Method according to one of the preceding claims, wherein a physical sub-area (122) is only assigned to a virtual sub-area (142) if data (115) are stored in the virtual sub-area (142). Verfahren nach einem der vorstehenden Ansprüche, wobei einer oder mehrere physikalische Teilbereiche (122) gemäß der Zuordnung (130), zumindest initial, nicht einem jeweiligen virtuellen Teilbereich zugeordnet und als Reserve freigehalten werden.Method according to one of the preceding claims, wherein one or more physical sub-areas (122) according to the assignment (130), at least initially, are not assigned to a respective virtual sub-area and are kept free as a reserve. Verfahren nach einem der vorstehenden Ansprüche, wobei die Zuordnung (130) verändert wird, wenn wenigstens ein Kriterium erfüllt ist.Method according to one of the preceding claims, wherein the assignment (130) is changed if at least one criterion is met. Verfahren nach Anspruch 6, wobei das wenigstens eine Kriterium ein Aufstarten einer Recheneinheit (100), die das Speichermedium (120) umfasst, und/oder eine vorgegebene Menge an in den Speicher und/oder den Teilbereich geschriebenen Daten und/oder eine vorgegebene Anzahl an Schreibvorgängen des Speichers und/oder des Teilbereichs umfasst.Procedure according to Claim 6 , wherein the at least one criterion is starting a computing unit (100) comprising the storage medium (120) and / or a predetermined amount of data written into the memory and / or the sub-area and / or a predetermined number of write operations to the memory and / or of the sub-area. Verfahren nach einem der vorstehenden Ansprüche, wobei als Speichermedium (120) ein EEPROM, ein Phase-Change-Memory oder ein Magnetoresistive Random-Access-Memory verwendet wird.Method according to one of the preceding claims, wherein an EEPROM, a phase change memory or a magnetoresistive random access memory is used as the storage medium (120). Recheneinheit (100) mit einem Speichermedium (120), die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.Computing unit (100) with a storage medium (120), which is set up to carry out all method steps of a method according to one of the preceding claims. Recheneinheit (100) nach Anspruch 9, die als Steuergerät, insbesondere als Steuergerät eines Fahrzeugs, ausgebildet ist.Arithmetic unit (100) Claim 9 which is designed as a control device, in particular as a control device of a vehicle. Computerprogramm, das eine Recheneinheit (100) dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 8 durchzuführen, wenn es auf der Recheneinheit (100) ausgeführt wird.Computer program that causes a processing unit (100) to perform all method steps of a method according to one of the Claims 1 until 8th to be carried out when it is executed on the computing unit (100). Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 11.Machine-readable storage medium with a computer program stored thereon Claim 11 .
DE102020206596.9A 2020-05-27 2020-05-27 Method for operating a storage medium and computing unit with storage medium Pending DE102020206596A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102020206596.9A DE102020206596A1 (en) 2020-05-27 2020-05-27 Method for operating a storage medium and computing unit with storage medium
CN202110577493.5A CN113741804A (en) 2020-05-27 2021-05-26 Method for operating a storage medium and computing unit having a storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020206596.9A DE102020206596A1 (en) 2020-05-27 2020-05-27 Method for operating a storage medium and computing unit with storage medium

Publications (1)

Publication Number Publication Date
DE102020206596A1 true DE102020206596A1 (en) 2021-12-02

Family

ID=78509085

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020206596.9A Pending DE102020206596A1 (en) 2020-05-27 2020-05-27 Method for operating a storage medium and computing unit with storage medium

Country Status (2)

Country Link
CN (1) CN113741804A (en)
DE (1) DE102020206596A1 (en)

Also Published As

Publication number Publication date
CN113741804A (en) 2021-12-03

Similar Documents

Publication Publication Date Title
DE69431795T2 (en) MASS MEMORY ARCHITECTURE WITH FLASH MEMORY
DE69226847T2 (en) Data management system for semiconductor memory with limited programming and I.C. memory card with such a data management system
DE69502169T2 (en) Method for writing data into a memory and corresponding electrically programmable memory
DE69421925T2 (en) Storage device with error detection and correction and method for writing and erasing the storage device
DE69024169T2 (en) Device and method for error handling in a semiconductor memory
DE69034191T2 (en) EEPROM system with multi-chip block erasure
DE60030876T2 (en) Scope management of a high-capacity non-volatile memory
DE102007006307A1 (en) Non volatile memory unit i.e. flash memory unit, operating method, involves determining log-block as reusable log block, without deleting updated version of data, and fulfilling pre-determined condition depending on determination
DE112008000180T5 (en) Method and system for implementing a fast wakeup of a flash memory system
DE102020202379A1 (en) STORAGE SYSTEM, STORAGE CONTROLLER AND THEIR OPERATING PROCEDURES
DE602005003778T2 (en) A method and apparatus for rewriting a sector with bootloader software in a sector-erasable non-volatile semiconductor memory
DE102012022728A1 (en) A method of controlling a flash memory for mass storage comprised of a communication device connectable to a host, and computer program product for executing the method
DE102010037064A1 (en) A nonvolatile memory device and system and method of programming a nonvolatile memory device
DE69426818T2 (en) Fault-tolerant storage device, in particular of the "flash EEPROM" type
DE10227255B4 (en) Method for recovering management records of a block-erasable memory
DE102020206596A1 (en) Method for operating a storage medium and computing unit with storage medium
DE69226605T2 (en) Method for updating data in memory locations of a flash EPROM memory
EP1625592B1 (en) Device and method for treating a state of a memory
DE10321104B4 (en) Method for filing variable data
DE10252059B3 (en) Data memory operating method e.g. for portable data carrier or mobile data processor, using back-up memory for retaining memory cell contents upon current interruption during programming
DE10227256C1 (en) Addressing blockwise erasable memories involves checking flag memory per address conversion in connection with sector write command leading to written sector to determine if block address present
DE10260103A1 (en) Method and device for changing software in a control unit and corresponding control unit
DE112007003388T5 (en) Method for managing sectors of a non-volatile memory
EP1564754B1 (en) Method and device for managing data in a non-volatile memory
DE102008061091A1 (en) Method for execution of sequential data access on memory, particularly on flash memory by machine-readable program, involves realizing sequential access on memory by interface