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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking 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 und3 zeigen verschiedene Teilabläufe eines erfindungsgemäßen Verfahrens in einer bevorzugten Ausführungsform.2 and3 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
Der physikalische Adressraum
Eine physikalische Reihe
Im Allgemeinen ist das Speichermedium
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
- 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
- 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
- 1. Virtuelle Adresse 0x00000: 0x00000 / 992 = 0,
Rest 0Daten 210 werden in dielogische Reihe ID 000 mit Offset 0 gelegt. - 2. Virtuelle Adresse 0x3DF80: 0x3DF80 / 992 = 255, Rest
864 Daten 210 werden in dielogische Reihe ID 255 mit Offset864 gelegt. - 3. Virtuelle Adresse 0x3E000: 0x3E000 / 992 = 256,
Rest 0Daten 210 werden in dielogische Reihe ID 256 mit Offset 0 gelegt. - 4. Virtuelle Adresse 0x7BF80: 0x7BF80 / 992 = 511, Rest
864 Daten 210 werden in dielogische Reihe ID 511 mit Offset 0 gelegt.
- 1. Virtual address 0x00000: 0x00000 / 992 = 0,
remainder 0data 210 are placed in thelogical row ID 000 with offset 0. - 2. Virtual address 0x3DF80: 0x3DF80 / 992 = 255, remainder
864 data 210 are in thelogical series ID 255 with offset864 placed. - 3. Virtual address 0x3E000: 0x3E000 / 992 = 256,
remainder 0data 210 are in thelogical series ID 256 placed with offset 0. - 4. Virtual address 0x7BF80: 0x7BF80 / 992 = 511, remainder
864 data 210 are in thelogical 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
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
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)
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) |
-
2020
- 2020-05-27 DE DE102020206596.9A patent/DE102020206596A1/en active Pending
-
2021
- 2021-05-26 CN CN202110577493.5A patent/CN113741804A/en active Pending
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 |