[go: up one dir, main page]

DE10227256C1 - 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 - Google Patents

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

Info

Publication number
DE10227256C1
DE10227256C1 DE2002127256 DE10227256A DE10227256C1 DE 10227256 C1 DE10227256 C1 DE 10227256C1 DE 2002127256 DE2002127256 DE 2002127256 DE 10227256 A DE10227256 A DE 10227256A DE 10227256 C1 DE10227256 C1 DE 10227256C1
Authority
DE
Germany
Prior art keywords
memory
block
address
sector
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE2002127256
Other languages
German (de)
Inventor
Reinhard Kuehne
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.)
HYPERSTONE GMBH, 78467 KONSTANZ, DE
Original Assignee
Hyperstone AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hyperstone AG filed Critical Hyperstone AG
Priority to DE2002127256 priority Critical patent/DE10227256C1/en
Priority to DE2002156509 priority patent/DE10256509B4/en
Priority to PCT/EP2003/006354 priority patent/WO2004001604A1/en
Priority to AU2003278231A priority patent/AU2003278231A1/en
Application granted granted Critical
Publication of DE10227256C1 publication Critical patent/DE10227256C1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/064Management of blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The method involves checking a flag memory for each address conversion in connection with a sector write command leading to a written sector to determine if the given block address is present. If not the contents of the sectors of the relevant blocks are written to unwritten sectors of blocks assigned according to the flag memory contents. The method involves, following each address conversion in an alternative memory block address, storing it with the associated sector address assigned to the logical block address in a flag memory (MS). The flag memory is checked for each address conversion in connection with a sector write command leading to a written sector to determine if the same block address is present. If not the contents of the sectors of the relevant blocks are written to unwritten sectors of blocks assigned according to the flag memory contents

Description

Die Erfindung betrifft ein Verfahren zum Adressieren von einzelnen löschbaren realen mit Speicherblockadressen adressierbaren Speicherblöcken, die in mit relativen Sektor­ adressen adressierbare einzeln beschreibbare Speichersektoren gegliedert sind, deren gelöscht- und beschriebenen Zustände gespeichert jeweils abfragbar bereitgestellt werden, vermittels einer Adressumsetzung von logischen Blockadressen jeweils in eine der realen Speicherblockadressen, wobei jeweils, wenn ein Sektorschreibbefehl auszuführen wäre, der einen bereits beschriebenen Sektor betrifft, durch eine geänderte Adressumsetzung in eine alternative Speicherblockadresse eines Speicherblocks, dessen entsprechender Sektor gelöscht oder unbeschrieben ist, in diesen geschrieben wird und falls jedoch auch dieser alternativ adressierte Sektor bereits beschrieben war, die Adressumsetzung eine weitere Speicherblockadresse eines gelöschten Speicherblockes als eine neue alternative Speicherblockadresse bereitstellt und dessen entsprechender Sektor beschrieben wird, und im bisherigen alternativ adressierten Speicherblock die noch unbeschriebenen Sektoren mit den Inhalten der entsprechenden Sektoren des ursprünglich zugeordnet adressierten Speicherblocks beschrieben werden, wonach dieser zu einer Löschung ansteht und nach einer Löschung zu einer anderen Adressumsetzung bereitsteht.The invention relates to a method for addressing individual erasable real ones with memory block addresses addressable blocks of memory that are in with relative sector addresses addressable, individually writable memory sectors are structured, their deleted and described states stored can be made available for querying, by means of an address conversion of logical block addresses each in one of the real memory block addresses, where each time a sector write command was to be executed, the concerns a sector already described, by a changed address translation into an alternative Memory block address of a memory block whose relevant sector is deleted or blank, in this is written, and if it is, too alternatively addressed sector was already described that Address conversion another memory block address deleted memory block as a new alternative Provides memory block address and its corresponding Sector is described, and in the previous alternative addressed the still unrecorded sectors with the content of the corresponding sectors of the original allocated memory blocks are assigned, after which it is due for deletion and after a Deletion to another address conversion is available.

Ein derartiges Verfahren ist aus der US 6 145 051 A bekannt. Hierbei wird in einer Adresstransformationstabelle zu jeder logischen Blockadresse eine erste physikalische, reale Speicheradresse eines Speicherblocks gehalten und dann eine weitere reale Speicherblockadresse eingestellt, wenn ein Sektor des ersten Speicherblocks mit neuer Information beschrieben werden sollte, der bereits beschrieben war, weswegen die neu zu schreibende Information in den Ausweichblock mit der weiteren Speicherblockadresse eingeschrieben wird, weil ein sofortiger Löschvorgang relativ sehr zeitaufwendig wäre und eine vermeidbare Abnutzung des Speicherblocks verursachen würde, da die zulässige Löschhäufigkeit beschränkt ist. Außerdem sind in der Adress- Transformationstabelle Statusinformationen über die belegten/freien Sektoren und die Sektoren mit veraltetem Inhalt, die zu löschen sind, enthalten. Ein derartiges Tabellenwerk ist sehr platzaufwendig und muss wegen des häufigen und schnellen Zugriffs und wegen der ständigen Nachträge der Ausweichblockadressen und der notwendigen Umstrukturierung der Adressenzuordnung, wenn Blöcke umkopiert oder gelöscht worden sind, im Hilfsspeicher des Steuerprozessors gehalten werden, dessen Inhalt bei Stromausfall oder Abschaltung in den nichtflüchtigen Speicher gerettet werden muss.Such a method is known from US Pat. No. 6,145,051 A. Here, in an address transformation table for each logical block address a first physical, real Memory address of a block of memory held and then one further real memory block address set if a Sector of the first block of memory with new information should be described, which was already described,  which is why the information to be rewritten in the Alternative block with the further memory block address is enrolled because an immediate deletion is relative would be very time consuming and avoidable wear and tear on the Blocks of memory would cause the allowable Deletion frequency is limited. In addition, in the address Transformation table status information about the occupied / free sectors and the sectors with obsolete Contain content to be deleted. Such a thing Tables are very space-consuming and must because of the frequent and quick access and because of the constant Additions to the alternate block addresses and the necessary ones Restructuring of the address assignment when copying blocks or deleted, in the auxiliary memory of the Control processor are kept, its content at Power failure or shutdown in the non-volatile memory must be saved.

Auch ist aus der US 5,930,193 ein Verfahren bekannt, die Speicherblöcke in Gruppen zu klassifizieren, die die bereits erfolgten Löschungen der zugeordneten Speicher in groben Bereichen angeben. Das Management dieser Gruppen erfordert weitere große Tabellen, die Platz im Merkspeicher verlangen und die beim Abschalten des Systems gesichert werden müssen.A method is also known from US Pat. No. 5,930,193 Classify blocks of memory in groups that already have the allocated memories were deleted in rough Specify ranges. The management of these groups requires other large tables that require space in the memory and which must be secured when the system is switched off.

Weiterhin ist aus der WO 00/14641 ein Verfahren zur Adressierung eines derartigen Speichers bekannt, bei dem die Zuordnung neu zu beschreibender Speicherblöcke so vorgenommen wird, dass defekte Blöcke nicht mehr benutzt werden und die einzelnen Blöcke gleichmäßig einer durch die Löschhäufigkeit verursachte Abnutzung unterliegen.Furthermore, WO 00/14641 describes a method for Addressing of such a memory is known, in which the Assignment of new memory blocks to be written in this way is that defective blocks are no longer used and the individual blocks evenly one by the deletion frequency are subject to wear and tear.

Ein Einschreiben neuer Informationen in einen bereits beschriebenen Sektor erfordert eine Verlagerung der restlichen, weiter gültigen Informationen aus den übrigen Sektoren in die eines unbeschriebenen, vorgelöschten Blocks, dessen Adresse in den Zuordner übernommen wird. Nur wenn viele vorgelöschte Blöcke konsekutiv beschrieben werden, arbeitet dieses Verfahren zeitlich effektiv; Randomveränderungen von Speicherinhalten sind jedoch relativ aufwendig.Enrolling new information into one already sector described requires a relocation of the remaining, still valid information from the rest  Sectors into a blank, pre-erased block, whose address is transferred to the assignor. Only if many pre-deleted blocks are described consecutively this procedure is effective in terms of time; Random changes of However, memory contents are relatively complex.

Es ist Aufgabe der Erfindung, ein Verfahren zu offenbaren, bei dem sowohl die Vorteile einer gleichmäßigen durch Löschvorgänge verursachten Speicherabnutzung und effektive Veränderungen von insbesondere randomadressierten Speicherinhalten durch eine Ausweichblocknutzung bei minimalem Bedarf an Zuordnungsspeicher­ platz erbracht werden.It is an object of the invention to disclose a method in which both have the benefits of uniform through deletions  caused memory wear and effective changes from especially randomly addressed memory contents by a Dodge block usage with minimal allocation memory usage space.

Die Lösung besteht darin, dass nach jeder, insbesondere abnutzungsoptimierenden Adressumsetzung in eine alternative Speicherblockadresse diese zusammen mit der jeweils zugehörigen Sektoradresse zugeordnet zu der logischen Blockadresse in einem Merkspeicher gespeichert wird und bei jeder Adressumsetzung in Verbindung mit einem Sektorschreibbefehl, die auf einen beschriebenen Sektor führt, der Merkspeicherinhalt daraufhin geprüft wird, ob die gleiche Blockadresse dort vorliegt und dann, wenn dies nicht der Fall ist, die Inhalte der Sektoren des betreffenden Speicherblocks in die noch unbeschriebenen Sektoren des gemäß dem Merkspeicherinhalt zugeordneten Speicherblocks geschrieben werden und dann die Speicherblockadresse des kopierten Speicherblocks in eine Adressliste von zu löschenden Speicherblöcken eingetragen wird und/oder der Block als zu löschend gekennzeichnet wird und danach dem noch anstehenden Sektorschreibbefehl eine Speicherblockadresse eines gelöschten, unbeschriebenen Speicherblocks zugeordnet und in den Merkspeicher eingetragen wird und mit dieser Speicherblockadresse der Schreibbefehl im entsprechenden Sektor ausgeführt wird.The solution is that after everyone, in particular wear-optimizing address conversion into an alternative Memory block address this together with the corresponding one Sector address assigned to the logical block address in one Memorized memory is saved and with each address conversion in Link to a sector write command that is on a leads sector described, the memory contents thereupon it is checked whether the same block address is present there and if not, the content of the sectors of the relevant blocks of memory in the as yet unwritten sectors of the memory block allocated in accordance with the memory content be written and then the memory block address of the copied memory blocks into an address list of to be deleted Memory blocks is entered and / or the block as too is deleted and then the pending Sector write command a memory block address of a deleted, allocated blank memory blocks and in the Memories are entered and with this Memory block address of the write command in the corresponding sector is performed.

Vorteilhafte Ausgestaltungen sind in den Unteransprüchen angegeben.Advantageous configurations are in the subclaims specified.

Die Adressumsetzung einer logischen in eine reale Adresse findet vorzugsweise in vorbekannter Weise so statt, dass eine gleichmäßige Löschhäufigkeit für alle Blöcke erreicht wird. Überlagert ist dem die Bereitstellung eines Ausweichblocks, wenn ein Schreibbefehl für einen bereits beschriebenen Sektor in einem originär zugeordneten Speicherblock auftritt, und in diesen Ausweichblock werden die anliegende zu schreibende Information und weitere neu zu schreibende Sektorinhalte des gleichen Blockes eingeschrieben, wozu nur die Ausweichblock­ adresse und ein Sektorstatus des Ausweichblockes zur logischen Blockadresse in einem kleinen Merkspeicher gehalten werden.The address conversion from a logical to a real address takes place preferably in a previously known manner so that a uniform erase frequency for all blocks is achieved. The provision of an alternative block is superimposed, if a write command for a sector already described in occurs in an originally allocated memory block, and in  this alternative block will be the one to be written Information and other sector contents to be rewritten of the same block, including the alternative block address and a sector status of the alternative block for logical Block address are kept in a small memory.

Sobald in einem anderen als dem originär einer logischen Adresse zugeordneten Speicherblock ein bereits beschriebener Sektor neu beschrieben werden soll, wird der Ausweichspeicherblock aus dem originären Speicherblock inhaltlich komplettiert und seine Speicheradresse einer künftig originären Adressumsetzung zugeführt, und es wird der bisherige Speicherblock mit dem veralteten Inhalt zur Löschung freigegeben. Die Bildung einer neuen Ausweichblockadresse wird hierzu mit dem die Abnutzung egalisierenden Algorithmus vorgenommen, und die Löschung des ursprünglich benutzten und frei gewordenen Speicherblocks wird als dessen Abnutzungsvorgang ausgewertet.As soon as in another than the original of a logical address allocated memory block a sector already described new to be described, the alternative memory block from the the content of the original memory block and its Storage address of a future original address translation fed, and it is the previous memory block with the outdated content released for deletion. The formation of a new alternate block address is used with the wear equalizing algorithm, and the deletion of the originally used and free memory blocks evaluated as its wear process.

Da häufig mehrere Sektoren in einem logischen Block inhaltlich zu ändern sind, z. B. wenn eine Video- oder Audiodatei bearbeitet wird, wird durch das Anlegen des Ausweichblocks und der Komplettierung desselben und Freigeben des originären Speicherblocks erst bei Schreibbefehlen in einen anderen Speicherblock die Zahl der Löschvorgänge erheblich reduziert und die Reaktionszeit beim Schreiben verkürzt. Die Verringerung der Löschvorgänge ergänzt die Wirkung der Adressumsetzung, die eine gleichmäßige Löschhäufigkeit der Speicherblöcke erbringt, so dass die Gesamtlebensdauer des Speichers erheblich vergrößert ist.As there are often several sectors in a logical block are to be changed, e.g. B. if a video or audio file is processed by creating the alternative block and completing the same and releasing the original Memory blocks only when there are write commands to another Block of memory significantly reduced the number of erases and the response time when writing is reduced. The reduction in Deletions complete the effect of address translation, one provides uniform erase frequency of the memory blocks, so that significantly increases the overall life of the memory is.

Eine vorteilhafte Weiterentwicklung besteht darin, dass dann, wenn in mehreren Dateien quasi parallel gearbeitet wird, also auf eine entsprechende Anzahl Speicherblöcke wechselweise zugegriffen wird, eine solche Anzahl von Ausweichblöcken maximal bereitgestellt wird, die vom ansteuernden Prozessor zeitlich nebeneinander bearbeitet werden kann. Demgemäß ist die Anzahl wie in üblichen Betriebssystemen eingerichtet, z. B. maximal vier. Der Merkspeicher enthält eine entsprechende Anzahl Adressenzuordnungen und Sektorzustands-Merkbits in einer Sektormaske. Zu Beginn jeder Adressermittlung werden die wenigen Adressen im Merkspeicher auf Identität geprüft und nur, wenn keine festgestellt wird, erfolgt die vorbeschriebene Adressumsetzung. Damit wird im Merkspeicher freier Platz für eine neue Adresszuordnung geschaffen und der freigegebene Speicherblock wird zum Löschen gekennzeichnet. Der Speicher- und Zeitbedarf für die Vorprüfung der Adresse mit dem Merkspeicherinhalt ist gering, und die Verringerung der Lösch­ häufigkeit sowie der Zeitgewinn dadurch sind ganz erheblich.An advantageous further development is that if you work in parallel in several files, so alternately to a corresponding number of memory blocks is accessed, such a maximum number of alternate blocks is provided by the controlling processor in time  can be edited side by side. Accordingly, the number as set up in common operating systems, e.g. B. maximum four. The memo memory contains a corresponding number Address assignments and sector status flags in one Sector mask. At the beginning of each address determination, the few Addresses in the memory are checked for identity and only if if none is determined, the one described above takes place Address Translation. This leaves free space for created a new address assignment and the released one Memory block is marked for deletion. The storage and Time required for pre-checking the address with the Memory content is low, and the reduction in deletion frequency and the time saved as a result are very considerable.

In einer vorteilhaften Ausführung wird bei der vorbeschriebenen Suche nach einem im Merkspeicher verzeichneten Speicherblock derjenige Speicherblock zum Löschen ausgewählt, der die nächst­ liegende logische Blockadresse zum neu zu schreibenden Block besitzt, da die Wahrscheinlichkeit hoch ist, dass dieser Block weiter mit neuen Sektoren beschrieben wird.In an advantageous embodiment, the previously described Search for a block of memory recorded in the memory the memory block selected for deletion, the next Logical block address to the new block to be written because there is a high probability that this block is further described with new sectors.

In einer alternativen Ausführung wird bei der vorbeschriebenen Suche nach einem im Merkspeicher verzeichneten Speicherblock derjenige Speicherblock zum Löschen ausgewählt, der am längsten nicht mehr beschrieben wurde. Zu diesem Zweck wird im Merk­ speicher für jeden Ausweichblock ein Zähler geführt, der beim Schreiben in diesen Block auf einen Anfangswert initialisiert und beim Schreiben in die anderen Ausweichblöcke heruntergezählt wird. Der Block mit dem niedrigsten Zählerstand wurde damit am längsten nicht mehr beschrieben. Mit dieser Methode wird eine gleichmäßige Verteilung der Löschoperationen auf die Blöcke erreicht, was die Lebensdauer des gesamten Speichersystems erhöht. In an alternative embodiment, the one described above Search for a block of memory recorded in the memory the longest selected memory block for deletion was no longer described. For this purpose, in Merk store a counter for each alternate block, which at Write to this block initialized to an initial value and counted down when writing to the other alternate blocks becomes. The block with the lowest count was thus on no longer described. With this method one even distribution of the delete operations on the blocks achieves what the lifespan of the entire storage system elevated.  

Zweckmäßigerweise werden die Löschvorgänge in einem Hintergrund­ programm ausgeführt. Die durch die komplettierten Adressumsetz­ ungen gekennzeichneten Blöcke werden von dem Hintergrundprogramm in eine Tabelle der zu löschenden Speicherblöcke übernommen und die Löschung durchgeführt. Nach der Löschung werden die Blöcke als frei gekennzeichnet bzw. in der Liste gelöschter Blöcke geführt, die zur weiteren Adressumsetzung genutzt werden können.The deletions are expedient in a background program executed. The completed by the address translation Blocks that are not marked are identified by the background program transferred to a table of the memory blocks to be deleted and the deletion was carried out. After deletion, the blocks marked as free or in the list of deleted blocks managed, which can be used for further address conversion.

Der Zeitgewinn wird noch dadurch gesteigert, dass das Hintergrundprogramm zum Löschen und Freigeben der Speicherblöcke zu den Zeiten ausgeführt wird, wenn kein Schreib- oder Lesebefehl ansteht.The time saved is increased by the fact that Background program for deleting and releasing the memory blocks is executed at times when no writing or Read command pending.

Die Zuordnung der logischen Blockadressen zu den realen Speicherblöcken erfolgt vorteilhafterweise über eine Tabelle der realen Speicherblöcke, die über die logische Blockadresse indiziert wird. Der Sektoranteil der Adressen wird bei der Indizierung nicht berücksichtigt, da die Sektoren in den logischen Blöcken genauso nummeriert sind wie in den realen Speicherblöcken. Mit diesem Tabellenaufbau wird eine kompakte Form erreicht und der Speicherplatz für die Verwaltung minimiert.The assignment of the logical block addresses to the real ones Memory blocks are advantageously carried out via a table in the real memory blocks over the logical block address is indexed. The sector share of the addresses is at Indexing not taken into account as the sectors in the logical blocks are numbered the same as in the real ones Memory blocks. With this table structure becomes a compact Form reached and storage space for management minimized.

Eine kompakte Verwaltung der Speicherblöcke wird auch dadurch erreicht, dass im Merkspeicher eine Sektormaske mit der bitweisen Kennzeichnung der beschriebenen bzw. freien/gelöschten Sektoren der direkt beschreibbaren Speicherblöcke geführt wird. Ebenso wird in dem Merkspeicher eine Sektormaske mit der bitweisen Kennzeichnung des Zustands der Sektoren in dem Ausweichblock aktuell geführt. Über diese Bitlisten werden dann die Speicheroperationen gesteuert.This also makes compact management of the memory blocks achieved that a sector mask with the bit-by-bit identification of the described or free / deleted Sectors of directly writable memory blocks is performed. Similarly, a sector mask with the bitwise identification of the state of the sectors in the Dodge block currently managed. Then these bit lists controlled the memory operations.

Eine weitere Vereinfachung der Verwaltung der Speicherblöcke ergibt sich, wenn in der Zuordnertabelle der logischen zu den realen Speicheradressen zu jedem Speicherblock ein Bit mitge­ führt wird, dass den Gelöscht-Zustand des gesamten Speicher­ blocks angibt. In so gekennzeichnete Blöcke kann ein Sektor direkt geschrieben werden, ohne das Verfahren mit einem Aus­ weichblock zu benutzen. Nach dem Schreiben des ersten Sektors in einen solchen Block wird dieses Bit zurückgesetzt.A further simplification of the management of the memory blocks results if the logical to the in the assignment table real memory addresses one bit for each memory block  will result in the erased state of all memory blocks indicates. In blocks marked like this, a sector can can be written directly without the procedure with an off soft block to use. After writing the first sector in such a block is reset this bit.

Zur schnellen Abarbeitung von Speicheroperationen ist es vorteilhaft zunächst zu prüfen, ob die betreffende Speicher­ blockadresse schon in den Merkspeicher aufgenommen wurde. Falls dies der Fall ist, wird anhand der Bitliste in der Sektormaske ermittelt, ob sich der aktuelle Inhalt des betreffenden Sektors im originären Speicherblock oder im Ausweichblock befindet. Bei einer Leseoperation wird direkt auf den ermittelten Sektorinhalt zugegriffen. Falls der Sektor neu geschrieben werden soll, wird, wenn sich der Sektor im Ausweichblock befindet, dieser Ausweich­ block mit den Sektoren des originalen Blocks aufgefüllt und die Zuordnertabelle so aktualisiert, dass der Ausweichblock an die Stelle des originären Speicherblocks tritt. Der bisherige Speicherblock wird zum Löschen freigegeben. Aus dem Vorrat an gelöschten Speicherblöcken wird ein neuer Ausweichblock bereitgestellt und der Inhalt des Merkspeichers entsprechend aktualisiert. Nun wird der Sektorinhalt in den neuen Ausweich­ block geschrieben und die Sektormaske aktualisiert. Wurde der Speicherblock bisher nicht im Merkspeicher geführt, wird geprüft, ob der Sektor noch gelöscht ist. Falls dies der Fall ist, wird direkt in den originären Speicherblock geschrie­ ben und das Gelöscht-Bit in der Zuordnertabelle zurückgesetzt. Anderenfalls wird ein Datensatz im Merkspeicher gesucht, wie oben beschrieben aufgelöst und ein neuer Ausweichblock im Merkspeicher verwaltet, in den dann geschrieben wird.It is for fast processing of memory operations advantageous to first check whether the memory in question block address has already been recorded in the memory. If this is the case, is based on the bit list in the sector mask determines whether the current content of the sector concerned located in the original memory block or in the alternative block. at a read operation is carried out directly on the determined sector content accessed. If the sector is to be rewritten, if the sector is in the alternate block, this alternate pad filled with the sectors of the original block and the Assignment table updated so that the alternate block to the The place of the original memory block occurs. The previous Memory block is released for deletion. From the stock on deleted memory blocks becomes a new backup block provided and the content of the memory accordingly updated. Now the sector content is in the new alternative block written and the sector mask updated. If the memory block was not previously stored in the memory, it is checked whether the sector is still deleted. If so If this is the case, the original memory block is scanned directly ben and reset the clear bit in the map table. Otherwise, a data record is searched in the memory, such as dissolved above and a new alternative block in Memories memory managed, in which is then written.

In einer vorteilhaften Ausgestaltung des Verfahrens wird bei einer Schreiboperation für einen Sektor anhand der Sektormaske im Merkspeicher überprüft, ob in dem Speicherblock bisher dieser Sektor und nur eine kleine Anzahl weiterer Sektoren, z. B. maximal bis zu einem Viertel der Sektoren eines Blockes, in den Ausweichblock geschrieben wurden. In diesem Fall wird ein neuer Ausweichblock eingerichtet, in den der veränderte Sektor ge­ schrieben und die bisher beschriebenen Sektoren aus dem alten Ausweichblock kopiert werden. Der alte Ausweichblock wird zum Löschen freigegeben. Das Kopieren der nicht veränderten Sektoren entfällt. Damit wird eine Geschwindigkeitssteigerung der Schreiboperation erreicht.In an advantageous embodiment of the method, at a write operation for a sector based on the sector mask Checks in the memory whether it has been in the memory block so far Sector and only a small number of other sectors, e.g. B.  up to a quarter of the sectors of a block in which Alternative block were written. In this case, a new one Dodge block set up in which the changed sector ge wrote and the previously described sectors from the old Alternative block can be copied. The old alternate block becomes Delete released. Copying the unchanged sectors eliminated. This will increase the speed of the Write operation reached.

Vorteilhafterweise wird in einem nichtflüchtigen Speicherblock eine Rekonstruktionstabelle geführt, aus der sich der Zustand des Merkspeichers nach einem Stromausfall rekonstruieren lässt. Dazu werden für alle Schreib- und Löschoperationen in den Spei­ cherblöcken entsprechende Einträge nacheinander in die Tabelle geschrieben. Durch Nachvollziehen der Tabelleneinträge im Merk­ speicher beim Systemanlauf wird der Merkspeicher auf den aktuellen Stand der Schreib- und Löschoperationen gebracht. Insbesondere wird hierbei festgestellt, welche Speicherblöcke als Ausweichblöcke in Benutzung sind und wo sich aktuelle Sektoren in den Ausweichblöcken befinden.Advantageously, in a non-volatile memory block a reconstruction table is made out of which the condition the memory can be reconstructed after a power failure. For this purpose, all write and delete operations in the memory corresponding blocks in the table one after the other written. By tracing the table entries in Merk memory when the system starts up, the memory is stored on the brought current status of the write and delete operations. In particular, this determines which memory blocks are in use as alternative blocks and where are current Sectors are located in the alternate blocks.

Zweckmäßigerweise wird für die Rekonstruktionstabelle ein Speicherblock genutzt und besitzt eine definierte Anzahl, z. B. 127, von Einträgen. Sobald die Tabelle so lang wird, dass diese Grenze erreicht wird, werden alle Speicherzuordnungen im Merkspeicher nach dem vorbeschriebenen Verfahren aufgelöst und die Datensätze damit freigemacht und der Grundzustand hergestellt. Danach wird die Rekonstruktionstabelle gelöscht und zum neuen Schreiben eingerichtet. Während der Zeit des Auflösens und des Löschens der Tabelle werden keine neuen Aufträge für Speicheroperationen des übergeordneten Betriebssystems angenommen.Appropriately, a for the reconstruction table Memory block used and has a defined number, z. B. 127, from entries. As soon as the table becomes so long that this Limit is reached, all memory allocations in the Memories are resolved according to the procedure described above and cleared the records and the basic state manufactured. Then the reconstruction table is deleted and set up for new writing. During the time of dissolving and deleting the table will not create new orders for Storage operations of the parent operating system accepted.

Die Grenze für die Größe der gesamten Speicheranordnung, die mit einem Controller verwaltet werden kann, ergibt sich aus der Größe der Adresszeiger für die Speicherblöcke von 16 Bit und der Anzahl der Speicherbausteinauswahlsignale, die vom Controller bereit gestellt werden. Vorteilhaft ist es nun, mehrere Speicherbaustein-Gruppen vorzusehen, die mit jeweils gleichgearteten Sektoren und 16 Bit-Adresszeigern für die Speicherblöcke adressiert werden. Die Anzahl der Speicherbaustein-Gruppen entspricht einer Binärzahl, zum Beispiel 4. Entsprechend dieser Anzahl wird die Größe der mit einem Controller verwaltbaren Speicheranordnung vervielfacht. Die niedrigsten binären Stellen der logischen Sektoradresse werden decodiert und zur Auswahl der Speicherbaustein-Gruppe genutzt. Dieser Teil der Sektoradresse wird auch als Index für das Array der Verwaltungsstrukturen verwendet. Damit können die Verwaltungsstrukturen mit Adresszeigern, Ausweichspeicherblöcken etc., wie bisher beschrieben, weiter genutzt werden. Der Speicher stellt sich organisatorisch als eine große Speicher­ anordnung mit einem Mehrfachen an Sektoren dar. Durch diese Abbildung aufeinander folgender logischer Adressen auf parallele Speicherblöcke können die Speicheroperationen quasi parallel ablaufen, und damit wird ein erheblicher Geschwindigkeitsvorteil erreicht.The limit on the size of the entire memory array using a controller can be managed results from the  Size of the address pointers for the 16-bit and the memory blocks Number of memory chip select signals from the controller to be provided. It is now advantageous to have several Provide memory chip groups, each with like sectors and 16 bit address pointers for the Memory blocks can be addressed. The number of Memory chip groups correspond to a binary number, for Example 4. According to this number, the size of the with multiplied by a controller manageable memory arrangement. The lowest binary digits of the logical sector address are decoded and used to select the memory chip group used. This part of the sector address is also used as an index for the array of administrative structures used. With that, the Administrative structures with address pointers, alternate memory blocks etc., as previously described, continue to be used. The Organizationally, memory turns out to be a large memory arrangement with a multiple of sectors. By this Mapping successive logical addresses to parallel ones Memory blocks can make the memory operations quasi parallel expire, and with that becomes a significant speed advantage reached.

Falls mehrere Speicherbaustein-Gruppen eingerichtet sind, ist es vorteilhaft, das Löschen der Blöcke in den Speicherbausteinen so zu staffeln, dass parallel in die verschiedenen Speicherbau­ steine Löschbefehle geladen werden und dann eine bausteintypi­ sche Löschzeit insgesamt abgewartet wird, bevor die Bausteine wieder abgefragt werden, ob sie bereit für weitere Speicher­ operationen sind. Die Speicherbausteine zeigen das Ende der Abarbeitung eines Befehls auch durch ein Speicherende-Signal an. Falls der Controller nur einen Eingang zum Auswerten der Endezeiten besitzt, werden die Signale der Bausteine am Controller zu einem Ende-Signal zusammengeführt und ein direktes Auswerten der einzelnen Zeiten ist nicht möglich. Wenn alle Bausteine wieder bereit sind für neue Speicheroperationen, wird das Signal am Controller entsprechend gesetzt. Durch das Warten wird ein dauerndes Abfragen der Bausteine oder des Speicherende- Signals vermieden, was zu einem erhöhten Stromverbrauch führen würde.If there are several memory chip groups, it is advantageous to erase the blocks in the memory chips to stagger that parallel to the different storage building stone delete commands are loaded and then a block type total deletion time is waited for before the blocks be asked again if they are ready for more storage operations are. The memory modules show the end of the Processing of a command also by an end of memory signal. If the controller only has one input for evaluating the Has end times, the signals of the blocks on Controller merged into an end signal and a direct one It is not possible to evaluate the individual times. If all Blocks are ready for new storage operations  the signal on the controller is set accordingly. By waiting there is a constant interrogation of the blocks or the memory end Avoided signals, which lead to increased power consumption would.

Ebenso wie beim Löschen ist es auch beim Schreiben vorteilhaft, dass parallel in die verschiedenen Speicherbausteine Schreib­ befehle geladen werden und dann eine bausteintypische Zeit abgewartet wird, bevor die Bausteine wieder, genauso wie beim Löschen, abgefragt werden, ob sie für weitere Speicher­ operationen bereit sind. Neben der Stromersparnis wird auch eine höhere Geschwindigkeit des Speichersystems erreicht, da eine entsprechende Anzahl Sektoren parallel geschrieben wird.Just like when deleting, it is also advantageous when writing, that write in parallel to the various memory modules commands are loaded and then a block-typical time one waits before the blocks again, just like with Delete, will be asked if they are for more memory operations are ready. In addition to saving electricity, there will also be a achieved higher speed of the storage system because of a corresponding number of sectors is written in parallel.

Vorteilhaft ist es auch, wenn der Controller zum Warten auf das Ende der Schreib- oder Löschoperation in den Stromspar-Modus versetzt wird und das Schreibendesignal als Interrupt zum Verlassen dieses Modus genutzt wird. Dadurch wird ein weiterer Stromspareffekt bewirkt.It is also advantageous if the controller waits for that End of the write or delete operation in the power saving mode is offset and the write end signal as an interrupt to Exiting this mode is used. This will make another one Energy saving effect.

Falls der Controller entsprechend viele Eingänge für die Ende- Signale der Speichergruppen besitzt, kann der Controller in den Stromsparmodus versetzt und bei dem Schreibendesignal jeder Speichergruppe wieder aktiv werden. Dies verkürzt insgesamt die Reaktionszeit und spart beim Stromverbrauch, da das Abfragen der Bausteine ganz entfällt.If the controller has enough inputs for the end The controller has signals from the storage groups in the Power saving mode offset and at the write end signal everyone Storage group become active again. Overall, this shortens the Response time and saves on power consumption because querying the Building blocks are completely eliminated.

Die Ausgestaltung der Erfindung ist in den Figuren beispielhaft beschrieben. Es zeigt:The embodiment of the invention is exemplary in the figures described. It shows:

Fig. 1 Adresszuordnung Struktur des Merkspeichers Fig. 1 address assignment structure of the memory

Fig. 2 Nutzung der Ausweichdatenblöcke Fig. 2 use of the alternate data blocks

Fig. 3 Nutzung eines zusätzlichen Ausweichdatenblockes Fig. 3 use of an additional alternate data block

Fig. 4 Ablauf der Schreiboperation Fig. 4 sequence of the write operation

Fig. 5 Abbildung auf parallele Speichergruppen Fig. 5 mapping to parallel storage groups

Fig. 1 zeigt die Umsetzung der vom übergeordneten Betriebssystem gelieferten logischen Adresse LA in die reale Speicheradresse RA. Die logische Adresse LA wird in eine logische Blockadresse LBA und eine logische Sektoradresse LSA unterteilt. Für die Umsetzung wird eine Zuordnertabelle ZT gehalten, die angibt welche reale Speicherblockadresse SBA welcher logischen Blockadresse LBA zugeordnet ist. Für jede Speicherblockadresse SBA ist ein Datensatz in der Tabelle vorhanden. Die logische Blockadresse LBA dient als Index in die Zuordnertabelle ZT. Die logische Sektoradresse LSA entspricht der realen Sektoradresse RSA und braucht daher nicht in der Tabelle gespeichert werden. Zu jeder realen Adresse RA wird gegebenenfalls ein Block- Gelöscht-Bit BLB mitgeführt, welches den Löschzustand des kompletten Speicherblocks angibt. Bei Benutzung dieses Bits kann der Speicherblock schneller und einfacher verwaltet werden. FIG. 1 shows the implementation of the provided by the hypervisor logical address LA in the real memory address RA. The logical address LA is divided into a logical block address LBA and a logical sector address LSA. An assignment table ZT is kept for the implementation, which specifies which real memory block address SBA is assigned to which logical block address LBA. There is one data record in the table for each memory block address SBA. The logical block address LBA serves as an index in the assignment table ZT. The logical sector address LSA corresponds to the real sector address RSA and therefore does not need to be stored in the table. For each real address RA, a block erase bit BLB is optionally carried, which indicates the erase state of the complete memory block. Using this bit, the memory block can be managed more quickly and easily.

Weiterhin ist die Struktur des Merkspeichers MS gezeigt. Für jede parallel mögliche Speicheradresszuordnung steht ein Datensatz mit den Feldern Speicherblockadresse SBA, Ausweich­ blockadresse ABA, Sektormaske SM und dem Nutzungszeitzähler LRU zur Verfügung. Für die hier aufgeführte Speicherblockadressen SBA wird damit angezeigt, dass für Schreiboperationen ein Ausweichblock AB eingerichtet wurde, dessen Blockadresse ABA angegeben wird. Die Sektormaske SM gibt für jeden Sektor des durch die Adresse SBA adressierten Speicherblocks SB an, ob ein veränderter Inhalt in den Ausweichblock AB geschrieben wurde. Der Nutzungszähler LRU wird bei einer Schreiboperation bei dem betroffenen Datensatz auf einen Vorgabewert initialisiert und bei allen anderen Datensätzen heruntergezählt. Der Datensatz mit dem niedrigsten LRU-Wert wurde am längsten nicht für eine Schreiboperation genutzt.The structure of the memory MS is also shown. For every possible memory address assignment occurs Data record with the fields memory block address SBA, alternative block address ABA, sector mask SM and the usage time counter LRU to disposal. For the memory block addresses listed here SBA is showing that for write operations Dodge block AB was set up, whose block address ABA is specified. The sector mask SM gives for each sector of memory blocks SB addressed by the address SBA indicate whether a changed content was written in the alternative block AB. The usage counter LRU is used for a write operation at the  initialized affected data record to a default value and counted down for all other records. The record with the lowest LRU was not the longest for one Write operation used.

In Fig. 2 wird die Verwendung des Ausweichblocks AB gezeigt, der mit der Sektormaske SM verwaltet wird. Für jeden der von 0 bis 31 nummerierten Sektoren des Speicherblock SB und des Ausweich­ block AB wird in der 32 Bit langen Sektormaske SM an der ent­ sprechenden Bitposition durch den Wert 1 gekennzeichnet, dass der jeweilige Sektor sich noch unverändert im Speicherblock SB befindet. Ein Wert 0 kennzeichnet, dass der entsprechende Sektor neu in den Ausweichblock AB geschrieben wurde. Dies ist in der Figur mit N gekennzeichnet. Der Sektor im Speicherblock SB ist damit nicht mehr gültig, gekennzeichnet durch ein X. Beim Anfordern eines neuen Ausweichblock wird das Paar aufgelöst indem die gültigen Sektoren des Speicherblock SB in den Aus­ weichblock AB kopiert werden, gekennzeichnet durch den Pfeil AL. Anschließend enthält der Ausweichblock AB nur gültige und aktuelle Sektoren und der Speicherblock SB kann gelöscht werden. Der zugehörige Datensatz im Merkspeicher MS ist wieder frei und kann für neue Schreiboperationen genutzt werden.In Fig. 2 the use of the alternate block AB is shown, which is managed with the sector mask SM. For each of the numbered sectors from 0 to 31 of the memory block SB and the alternative block AB, the value 1 in the 32-bit sector mask SM indicates that the respective sector is still unchanged in the memory block SB at the corresponding bit position. A value of 0 indicates that the corresponding sector has been rewritten in the alternative block AB. This is marked with N in the figure. The sector in the memory block SB is therefore no longer valid, identified by an X. When a new alternative block is requested, the pair is dissolved by copying the valid sectors of the memory block SB into the alternative block AB, identified by the arrow AL. The alternative block AB then contains only valid and current sectors and the memory block SB can be deleted. The associated data record in the memory MS is free again and can be used for new write operations.

Fig. 3 zeigt die Nutzung eines weiteren Ausweichblockes NB. Wenn nur wenige Sektoren, in diesem Beispiel zwei, in den Ausweich­ block AB geschrieben wurden und einer dieser Sektoren, in diesem Beispiel der Sektor 30, soll ein weiteres Mal verändert werden, wird der Sektor mit dem Sektorschreibbefehl SS in den neuen Ausweichblock NB geschrieben. Anschließend werden die weiteren mit einer 0 in der Sektormaske SM gekennzeichneten Sektoren, hier der Sektor 29, mit dem Kopierbefehl K in den neunen Aus­ weichblock NB kopiert. Damit hat der neue Ausweichblock NB die Funktion des alten Ausweichblocks AB übernommen und der Block AB kann freigegeben und gelöscht werden. Beim Auflösen dieser Kombination werden die mit 1 in der Sektormaske SM gekenn­ zeichneten Sektoren in den Block NB kopiert, hier dargestellt über den Pfeil AL. Fig. 3 shows the use of an additional alternate block NB. If only a few sectors, in this example two, have been written into the alternative block AB and one of these sectors, in this example sector 30 , is to be changed again, the sector is written into the new alternative block NB with the sector write command SS. Then the other sectors marked with a 0 in the sector mask SM, here the sector 29 , are copied with the copy command K into the new soft block NB. The new alternative block NB has thus taken over the function of the old alternative block AB and the block AB can be released and deleted. When this combination is dissolved, the sectors marked with 1 in the sector mask SM are copied into the block NB, represented here by the arrow AL.

In Fig. 4 ist der Ablauf einer Schreiboperation für einen Sektor dargestellt. Zunächst wird geprüft, ob für den adressierten Speicherblock ein Datensatz im Merkspeicher angelegt ist. Ist dies nicht der Fall, wird durch Lesen des Speicherblocks geprüft, ob der zu schreibende Sektor noch gelöscht ist. Wenn dies der Fall ist, wird direkt in den Speicherblock geschrieben und eventuell das Blockgelöscht-Bit zurückgesetzt.In FIG. 4, the flow of a write operation is shown for a sector. First, it is checked whether a data record has been created in the memory for the addressed memory block. If this is not the case, reading the memory block checks whether the sector to be written is still deleted. If this is the case, the block is written directly to and the block clear bit may be reset.

Wenn für den adressierten Speicherblock ein Datensatz im Merk­ speicher angelegt ist, wird anhand der Sektormaske geprüft, ob schon ein veränderter Sektorinhalt in den Ausweichblock geschrieben wurde. Wenn dies nicht der Fall ist, wird direkt in den Ausweichblock geschrieben und die Sektormaske wird aktuali­ siert.If a data record in the mem is created, the sector mask is used to check whether already a changed sector content in the alternative block was written. If not, it will go straight in the alternative block is written and the sector mask is updated Siert.

Falls der Sektor im Ausweichblock schon geschrieben wurde, wird anhand der Sektormaske überprüft, ob bisher wenige Sektoren, z. B. maximal ein Viertel der Anzahl der Sektoren eines Speicher­ blocks, im Ausweichblock geschrieben sind. Falls dies nicht der Fall ist, werden die geschriebenen Sektoren aus dem originären Speicherblock in den Ausweichblock kopiert und die Zuordner­ tabelle so aktualisiert, dass der bisherige Ausweichblock nun an die Stelle des originären Speicherblocks tritt. Der originäre Speicherblock wird jetzt zum Löschen freigegeben. Aus dem Vorrat gelöschter Speicherblöcke wird ein neuer Ausweichblock bereit­ gestellt. Falls kein gelöschter Speicherblock zur Verfügung steht, wird zunächst ein freigegebener Speicherblock gelöscht. Mit diesem neuen Ausweichblock wird der Datensatz im Merkspei­ cher aktualisiert. Nun wird der adressierte Sektor in den neuen Ausweichblock geschrieben und die Sektormaske im Merkspeicher aktualisiert.If the sector has already been written in the alternative block, is using the sector mask to check whether there are a few sectors z. B. a maximum of a quarter of the number of sectors of a memory blocks, are written in the alternate block. If not Case is, the written sectors are from the original Memory block copied into the alternative block and the allocators table updated so that the previous alternative block is now on the place of the original memory block occurs. The original Memory block is now released for deletion. From the stock deleted memory blocks, a new alternate block is ready posed. If no deleted memory block is available a released memory block is deleted. With this new alternative block, the data record is saved in the memory updated. Now the addressed sector is in the new one Dodge block written and the sector mask in the memory updated.

Falls der neu zu schreibende Sektor nur einer von wenigen ge­ schriebenen Sektoren im Ausweichblock war, wird ein weiterer Ausweichblock bereitgestellt. Die bisher geschriebenen Sektoren aus dem alten Ausweichblock werden in den neuen Ausweichblock kopiert, der alte Ausweichblock wird freigegeben und der Merkspeicher entsprechend aktualisiert. Der neue Sektor wird nun in den Ausweichblock geschrieben und die zugehörige Sektormaske aktualisiert.If the sector to be rewritten is only one of a few sectors was in the alternate block, will be another  Dodge block provided. The sectors written so far from the old alternate block to the new alternate block copied, the old alternative block is released and the Memories updated accordingly. The new sector is now written in the alternative block and the associated sector mask updated.

Falls dem Speicherblock bisher kein Datensatz im Merkspeicher zugeordnet war, aber der adressierte Sektor nicht gelöscht ist, wird ein Datensatz im Merkspeicher gesucht, dessen Speicher­ blockadresse dem adressierten Speicherblock am nächsten liegt oder am längsten nicht beschrieben wurde. Dieser Merkspeicher- Datensatz wird aufgelöst, indem die Sektoren des originären Speicherblocks in den zugehörigen Ausweichblock kopiert werden, die Zuordnertabelle aktualisiert wird und der originäre Speicherblock freigegeben wird. Über einen neuen Ausweichblock und die Aktualisierung des Datensatzes im Merkspeicher kann nun der Sektor in den neuen Ausweichblock geschrieben werden. Anschließend wird die Sektormaske aktualisiert.If there is no data record in the memory block in the memory block so far was assigned but the addressed sector is not deleted, a data record is searched for in the memory, its memory block address is closest to the addressed memory block or has not been described for a long time. This memory Record is resolved by the sectors of the original Memory blocks are copied into the corresponding alternative block, the mapping table is updated and the original Memory block is released. Via a new alternate block and the update of the data record in the memory can now the sector will be written in the new alternate block. The sector mask is then updated.

Fig. 5 zeigt die Umsetzung der logischen Adresse, bestehend aus der logischen Blockadresse LBA und der logischen Sektoradresse LSA in die reale Speicheradresse, bestehend aus der Speicher­ blockadresse SBA, der realen Sektoradresse RSA und den Bits für die Gruppennummer GNx. Der Buchstabe x wird hier als laufender Index benutzt. Hier sind beispielhaft 2 Bits, GN0 und GN1, gezeigt, die mittels der Decodierung DEC zur Auswahl der 4 Speichergruppen SG0-SG3 genutzt werden. Die reale Sektor­ adresse RSA entspricht in der Stellenanzahl der Anzahl der Sektoren in den Speicherblöcken SGn-x. Mit der realen Sektoradresse RSA werden die Sektoren innerhalb eines Speicherblocks SBn-x adressiert. Die höchstwertigen Bits der realen Speicheradresse bilden die Speicherblockadresse SBA, die zur Adressierung der Speicherblöcke in allen Speichergruppen gleichzeitig dient. Somit stellt sich ein Speicherblock mit einem Mehrfachen an Sektoren dar. Durch diese Abbildung aufeinander folgender logischen Adressen auf die Sektoren mehrerer Speicherblöcke SBn-x werden Speicheroperationen, die aufeinander folgende logische Sektoren betreffen, auf parallele Speichergruppen abgebildet und die Speicheroperationen können in den Speichergruppen SGx quasi parallel ablaufen. Fig. 5 shows the conversion of the logical address, consisting of the logical block address LBA and the logical sector address LSA into the real memory address, consisting of the memory block address SBA, the real sector address RSA and the bits for the group number GNx. The letter x is used here as a running index. Here are shown as an example 2 bits, GN0 and GN1, which are used by means of the decoding DEC to select the 4 memory groups SG0-SG3. The number of digits of the real sector address RSA corresponds to the number of sectors in the memory blocks SGn-x. The sectors within a memory block SBn-x are addressed with the real sector address RSA. The most significant bits of the real memory address form the memory block address SBA, which is used to address the memory blocks in all memory groups simultaneously. A memory block with a multiple of sectors is thus represented. This mapping of successive logical addresses to the sectors of a plurality of memory blocks SBn-x means that memory operations which relate to successive logical sectors are mapped to parallel memory groups and the memory operations can quasi in the memory groups SGx run in parallel.

Bei der Initialisierung des Speichersystems wird festgelegt, wie viele parallele Speichergruppen gebildet werden. Die maximale Zahl ist die Anzahl der eingesetzten Speicherbausteine. Der Decoder DEC wird durch den Speicher-Controller entsprechend eingestellt.When the storage system is initialized, it is determined how many parallel storage groups are formed. The maximal Number is the number of memory chips used. The Decoder DEC is used accordingly by the memory controller set.

Die Speicherbausteine generieren Schreibendesignale SESx, die das Ende einer Schreib- oder Löschoperation angeben. Diese Signale werden in einer Ausführung in einer ODER-Funktion zusammengefasst und als Interrupt-Signal INT dem Speichercontroller zugeführt. Auf diese Weise kann der Controller aus dem Stromspar-Zustand aktiviert werden oder im Programm des Controllers durch Abfragen festgestellt werden, wann die Speicheroperationen abgelaufen sind.The memory modules generate write end signals SESx that indicate the end of a write or delete operation. This In an execution, signals are in an OR function summarized and as the interrupt signal INT the Storage controller fed. In this way, the Controllers can be activated from the power-saving state or in Program of the controller can be determined by queries when the storage operations expired.

In einer anderen Ausführung werden die Speicherendesignale SESx direkt auf den Speichercontroller geführt und können dort abgefragt oder für einen spezialisierten Interrupt genutzt werden. In another embodiment, the memory end signals SESx led directly to the storage controller and can be there queried or used for a specialized interrupt become.  

BezugszeichenlisteLIST OF REFERENCE NUMBERS

AB Ausweichblock (Zwilling)
ABA Ausweichblockadresse
AL Auflösung
BLB Blockgelöscht-Bit
DEC Decoder für Speichergruppen
GNx Gruppennummer x
INT Interrupt für Schreibende
K Kopieren
LA Logische Adresse
LBA Logische Blockadresse
LRU Zähler für Alter des Sektors
LSA Logische Sektoradresse
MS Merkspeicher
N Neuer Sektorinhalt
NB Neuer Ausweichblock (Drilling)
RA Reale Adresse
RSA Reale Sektoradresse
RT Rekonstruktionstabelle (Logbuch)
SB Speicherblock
SBA Speicherblockadresse
SBn-x Speicherblock n-x
SESx Schreibendesignal x
SGx Speichergruppe x
SM Sektormaske
SS Sektor schreiben
WR Schreibauftrag für einen Sektor
x veralteter Sektorinhalt
ZT Zuordnertabelle
AB alternative block (twin)
ABA alternate block address
AL resolution
BLB block clear bit
DEC decoder for storage groups
GNx group number x
INT interrupt for writers
K Copy
LA Logical address
LBA Logical block address
LRU counter for age of the sector
LSA Logical sector address
MS memory
N New sector content
NB New alternative block (triplet)
RA Real address
RSA Real sector address
RT reconstruction table (logbook)
SB memory block
SBA memory block address
SBn-x memory block nx
SESx write end signal x
SGx storage group x
SM sector mask
SS sector write
WR write job for a sector
x outdated sector content
ZT allocation table

Claims (18)

1. Verfahren zum Adressieren von einzelnen löschbaren realen mit Speicherblockadressen (SBA) adressierbaren Speicher­ blöcken (SB), die in mit relativen Sektoradressen (RSA) adressierbare einzeln beschreibbare Speichersektoren gegliedert sind, deren gelöscht- und beschriebenen Zustände gespeichert jeweils abfragbar bereitgestellt werden, vermittels einer Adressumsetzung von logischen Block­ adressen (LBA) jeweils in eine der Speicherblockadressen (SBA), wobei jeweils, wenn ein Sektorschreibbefehl auszuführen wäre, der einen bereits beschriebenen Sektor betrifft, durch eine geänderte Adressumsetzung in eine alternative Speicherblockadresse (ABA) eines Speicherblocks (AB), dessen entsprechender Sektor gelöscht oder unbe­ schrieben ist, in diesen geschrieben wird und falls jedoch auch dieser alternativ adressierte Sektor bereits beschrie­ ben war, die Adressumsetzung eine weitere Speicherblock­ adresse (SBA) eines gelöschten Speicherblockes (SB) als eine neue alternative Speicherblockadresse (ABA) bereit­ stellt und dessen entsprechender Sektor beschrieben wird und im bisherigen alternativ adressierten Speicherblock (AB) die noch unbeschriebenen Sektoren mit den Inhalten der entsprechenden Sektoren des ursprünglich zugeordnet adressierten Speicherblocks (SB) beschrieben werden, wonach dieser zu einer Löschung ansteht und nach einer Löschung zu einer anderen Adressumsetzung bereitsteht, dadurch gekennzeichnet, dass nach jeder, insbesondere abnutzungsoptimierenden Adressumsetzung in eine alternative Speicherblockadresse (ABA) diese zusammen mit der jeweils zugehörigen Sektoradresse zugeordnet zu der logischen Blockadresse (LBA) in einem Merkspeicher (MS) gespeichert wird und bei jeder Adressumsetzung in Verbindung mit einem Sektorschreibbefehl, die auf einen beschriebenen Sektor führt, der Merkspeicherinhalt daraufhin geprüft wird, ob die gleiche Blockadresse dort vorliegt und dann, wenn dies nicht der Fall ist, die Inhalte der Sektoren des betreffen­ den Speicherblocks (SB) in die noch unbeschriebenen Sektoren des gemäß dem Merkspeicherinhalt zugeordneten Speicherblocks (ABA) geschrieben werden und dann die Speicherblockadresse (SBA) des kopierten Speicherblocks in eine Adressliste von zu löschenden Speicherblöcken eingetragen wird und/oder der Block als zu löschend gekennzeichnet wird und danach dem noch anstehenden Sektorschreibbefehl eine Speicherblockadresse (ABA) eines gelöschten, unbeschriebenen Speicherblocks zugeordnet und in den Merkspeicher eingetragen wird und mit dieser Speicherblockadresse (ABA) der Schreibbefehl im entspre­ chenden Sektor ausgeführt wird.1. Method for addressing individual erasable real memory blocks (SB) which are addressable with memory block addresses (SBA) and which are divided into individually writable memory sectors addressable with relative sector addresses (RSA), the erased and described states of which are stored and can be queried in each case, provided by means of a Address conversion of logical block addresses (LBA) in each case into one of the memory block addresses (SBA). whose corresponding sector is erased or unwritten, is written into it and if, however, this alternatively addressed sector has already been described, the address implementation addresses another memory block address (SBA) of a deleted memory block (SB) as a new alternative memory block provides address (ABA) and its corresponding sector is described and in the previous alternatively addressed memory block (AB) the as yet unwritten sectors are written with the contents of the corresponding sectors of the originally assigned addressed memory block (SB), after which this is due for deletion and after a deletion to another address conversion is available, characterized in that after each, in particular wear-optimizing, address conversion into an alternative memory block address (ABA), this is stored together with the associated sector address in a memory (MS) and associated with the logical block address (LBA) each address conversion in connection with a sector write command which leads to a written sector, the memory content is checked to determine whether the same block address is present there and, if this is not the case, the contents of the sectors of the memory concerned erblocks (SB) are written into the sectors of the memory block (ABA) allocated according to the memory content, and then the memory block address (SBA) of the copied memory block is entered in an address list of memory blocks to be deleted and / or the block is marked as to be deleted and thereafter, a memory block address (ABA) of a deleted, blank memory block is assigned to the still pending sector write command and is entered in the memory and the write command is executed in this sector with this memory block address (ABA). 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Merkspeicher (MS) nur so viele Speicheradresszuordnungen enthält, wie Speicherdaten parallel zu bearbeiten sind, und immer dann, wenn mit einem Sektorschreibbefehl eine Adressumsetzung auf einen beschriebenen Sektor führt, sämtliche Zuordnungen im Merkspeicher auf eine Identität der Blockadressen (SBA) überprüft werden und, wenn keine identische Blockadresse (SBA) vorliegt, die Sektoren eines Blocks (SB) in die noch unbeschriebenen Sektoren des zugeordneten Speicherblocks (AB) übertragen werden und dann die Speicherblockadresse (SBA) des kopierten Blocks (SB) in eine Adressliste von zu löschenden Speicherblöcken eingetragen wird und/oder der Block als zu löschend gekennzeichnet wird und danach dem noch anstehenden Sektorschreibbefehl eine Speicherblockadresse (ABA) eines gelöschten, unbeschriebenen Speicherblocks (AB) zugeordnet und in den Merkspeicher (MS) eingetragen wird und mit dieser Blockadresse (ABA) der Schreibbefehl im entsprechenden Sektor ausgeführt wird. 2. The method according to claim 1, characterized in that the Memories (MS) only have as many memory address assignments contains how to store data in parallel, and whenever there is a sector write command Address conversion leads to a described sector, all assignments in the memory to an identity the block addresses (SBA) are checked and if none identical block address (SBA) is present, the sectors one Blocks (SB) in the sectors of the allocated memory blocks (AB) are transferred and then the memory block address (SBA) of the copied block (SB) in an address list of memory blocks to be deleted is entered and / or the block is to be deleted is marked and then the pending Sector write command a memory block address (ABA) deleted, blank memory blocks (AB) assigned and is entered in the memory (MS) and with this block address (ABA) the write command in corresponding sector is running.   3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass für eine neue Adressumsetzung der im Merkspeicher (MS) ver­ zeichnete Block (SB) freigemacht wird, der die nächstlie­ gende logische Blockadresse (LBA) besitzt.3. The method according to claim 2, characterized in that for a new address translation in the memory (MS) ver signed block (SB) is cleared, the next has the logical block address (LBA). 4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass für eine neue Adressumsetzung der im Merkspeicher (MS) ver­ zeichnete Block (SB) freigemacht wird, bei dem ein Schreib­ zähler (LRU) angibt, dass er am längsten nicht beschrieben wurde.4. The method according to claim 2, characterized in that for a new address translation in the memory (MS) ver signed block (SB) is cleared, in which a write counter (LRU) indicates that it has not been written to for a long time has been. 5. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass in einem Hintergrundprogramm die Adressliste der zu löschenden Speicherblöcke abgearbeitet und die Löschungen durchgeführt werden und die Adressen der gelöschten Speicherblöcke in eine Liste gelöschter Speicherblöcke eingetragen werden und/oder diese Blöcke als gelöschte Blöcke gekennzeichnet werden.5. The method according to any one of the preceding claims, characterized characterized that in a background program the Address list of the memory blocks to be deleted processed and the deletions are made and the addresses of the deleted blocks of memory in a list of deleted Memory blocks are entered and / or these blocks as deleted blocks are marked. 6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass das Hintergrundprogramm die Löschungen jeweils dann durchführt, wenn kein Schreib- oder Lesebefehl ansteht.6. The method according to claim 5, characterized in that the Background program then the deletions carries out if there is no write or read command. 7. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Speicheradresszuordnung über eine mit der logischen Blockadresse zu adressierenden Zuordnertabelle (ZT) erfolgt.7. The method according to any one of the preceding claims, characterized characterized in that the memory address assignment via a to be addressed with the logical block address Assignment table (ZT) is done. 8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass in dem Merkspeicher (MS) zu jeder Blockadresse in einer den einzelnen Sektoren bitweise zugeordneten Sektormaske (SM) die jeweils beschriebenen Sektoren aktuell geführt werden.8. The method according to claim 7, characterized in that in the memory (MS) for each block address in one sector mask (SM) assigned to individual sectors the sectors described are currently managed. 9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass in der Zuordnertabelle (ZT) zu jeder Blockadresse ein Bit (BLB) mitgeführt wird, dass den "Gelöscht-Zustand" des Speicherblocks angibt.9. The method according to claim 8, characterized in that in the assignor table (ZT) one bit for each block address  (BLB) that the "deleted state" of the Indicates memory blocks. 10. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zu Beginn jeder Schreiboperation der Merkspeicherinhalt daraufhin überprüft wird, ob die logische Block- und Sektoradresse darin enthalten sind und in welchem der Speicherblöcke (SB) ein jeweils aktueller Sektorinhalt vorliegt, der durch eine zu schreibende Information in den freien Sektor eines jeweils zugeordneten oder noch zuzuordnenden Speicherblockes (AB) ersetzt wird.10. The method according to any one of the preceding claims, characterized characterized in that at the beginning of each write operation the Memo memory content is then checked whether the logical block and sector address are contained therein and in which of the memory blocks (SB) a current one Sector content exists, which is to be written by a Information in the free sector of each assigned or memory block still to be allocated (AB) is replaced. 11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass, falls in einem Speicherblock (AB) bisher wenige Sektoren verändert wurden und einer dieser Sektoren anschließend nochmals verändert werden soll, dieser Sektor in einen neu zugeordneten Speicherblock (NB) geschrieben wird und die anderen veränderten Sektoren in diesen neuen Speicherblock (NB) aus dem bisherigen Speicherblock (AB)kopiert werden, und dieser neue Speicherblock (NB) an die Stelle des bisher zugeordneten Speicherblocks (AB) tritt.11. The method according to claim 10, characterized in that, if so far only a few sectors in a memory block (AB) were changed and one of these sectors subsequently to be changed again, this sector into a new one allocated memory block (NB) is written and the other changed sectors in this new block of memory (NB) are copied from the previous memory block (AB), and this new memory block (NB) in place of the previous one allocated memory block (AB) occurs. 12. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass in einem Speicherblock eine Rekon­ struktionstabelle (RT) für jede Schreib- oder Löschope­ ration geführt wird, aus der sich der Zustand des Merkspeichers (MS) nach einem Stromausfall beim Wiederanlauf des Systems rekonstruieren lässt.12. The method according to any one of the preceding claims, characterized characterized in that a Recon structure table (RT) for each write or erase scope ration is led, from which the state of the Memory (MS) after a power failure at Reconstruction of the system can be reconstructed. 13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass bei Erreichen eines vordefinierten Füllstandes der Rekonstruktionstabelle (RT) ein definierter Grundzustand des Merkspeichers (MS) und der Rekonstruktionstabelle (RT) herbeigeführt wird. 13. The method according to claim 12, characterized in that when a predefined fill level is reached Reconstruction table (RT) a defined basic state the memory (MS) and the reconstruction table (RT) is brought about.   14. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass in einer Speicheranordnung mehrerer unabhängig voneinander anwählbarer und löschbarer Speicherbaustein-Gruppen (SGx) die logischen Speicheradressen (LA) den Speicherblockadressen (SBA) und den Sektoradressen (LSA) der Speicherbaustein-Gruppen (SGx) derart zugeordnet werden, dass die Anzahl der Speicherbaustein-Gruppen einer Binärzahl entspricht und dass die niedrigsten binären Stellen der logischen Sektoradresse (LSA) jeweils decodiert der Speicherbaustein- Gruppenanwahl dienen und die nächst höherwertigen binären Stellen der logischen Sektoradresse (LSA) und der höher­ wertig anschließenden logischen Blockadresse (LBA) als die reale Sektoradresse (RSA) aller Speicherbausteine in den Speicherbaustein-Gruppen (SGx) parallel dienen und die höchstwertigen Stellen der logischen Blockadressen (LBA) in dem Adressumsetzer der realen Speicherblockadresse (SBA) jeweils parallel allen Speicherbaustein-Gruppen (SGx) zugeordnet werden, wodurch die zugehörigen Speicherblöcke (SBn-x) organisatorisch jeweils als ein einziger Speicher­ block mit einem entsprechenden Mehrfachen an Sektoren behandelt werden.14. The method according to any one of the preceding claims, characterized characterized in that in a memory array several can be selected and deleted independently of one another Memory block groups (SGx) the logical Memory addresses (LA), memory block addresses (SBA) and the sector addresses (LSA) of the memory chip groups (SGx) be assigned such that the number of Memory chip groups correspond to a binary number and that the lowest binary digits of the logical Sector address (LSA) is decoded by the memory Serve group selection and the next higher-order binary Set the logical sector address (LSA) and higher subsequent logical block address (LBA) as the Real sector address (RSA) of all memory modules in the Memory block groups (SGx) serve in parallel and the most significant digits of the logical block addresses (LBA) in the address converter of the real memory block address (SBA) each parallel to all memory chip groups (SGx) allocated, creating the associated memory blocks (SBn-x) organizationally as a single memory block with a corresponding multiple of sectors be treated. 15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass das Löschen der Blöcke der einzelnen Speicherbausteine mit einer zeitlich so gestaffelten Blockadressierung und Speicherbausteinanwahl erfolgt, dass die jeweiligen Blockadressen (SBA) und ein Löschkommando fortlaufend in die einzelnen Bausteine übernommen werden und anschließend eine jeweils bausteintypische Löschzeit programmgemäß insgesamt abgewartet wird bis eine weitere Speicherope­ ration ausgeführt wird.15. The method according to claim 14, characterized in that deleting the blocks of the individual memory modules with a block addressing staggered in time and Memory module selection takes place that the respective Block addresses (SBA) and a delete command continuously in the individual blocks are adopted and then a block-specific deletion time according to the program waiting in total until another storage op ration is executed. 16. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass das Schreiben der Blöcke der einzelnen Speicherbausteine mit einer so zeitlich gestaffelten Block- und Sektoradressierung sowie Speicherbausteinanwahl erfolgt, dass jeweils eine Übernahme zu schreibender Information, der Adressen der Speicherbausteinanwahl und eines Schreib­ kommandos fortlaufend in die einzelnen Bausteine erfolgt und anschließend eine bausteintypische Schreibzeit abgewartet wird, bis weitere Speicheroperationen erfolgen.16. The method according to claim 14, characterized in that the writing of the blocks of the individual memory modules  with such a staggered block and Sector addressing and memory module selection are carried out, that in each case a transfer of information to be written, the addresses of the memory module selection and a write commands are carried out continuously in the individual blocks and then a typical block writing time is waited until further storage operations take place. 17. Verfahren nach Anspruch 14 oder 16, dadurch gekennzeichnet, dass nach einer Schreib- oder Löschoperation der Controller in den "Powerdown-Modus" versetzt wird und dieser Modus durch einen Interrupt (INT) nach dem Ende der Operation in allen Speicherbausteingruppen (SGx) wieder verlassen wird.17. The method according to claim 14 or 16, characterized in that that after a write or delete operation the controller is put into "powerdown mode" and this mode by an interrupt (INT) after the end of the operation in all memory block groups (SGx) is left again. 18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, dass für jede Speicherbausteingruppe (SGx) ein eigenes Interrupt-Signal (SESx) zur Verfügung steht.18. The method according to claim 17, characterized in that a separate one for each memory module group (SGx) Interrupt signal (SESx) is available.
DE2002127256 2002-06-19 2002-06-19 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 Expired - Fee Related DE10227256C1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE2002127256 DE10227256C1 (en) 2002-06-19 2002-06-19 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
DE2002156509 DE10256509B4 (en) 2002-06-19 2002-12-04 Method for addressing block-by-block erasable memories
PCT/EP2003/006354 WO2004001604A1 (en) 2002-06-19 2003-06-17 Method for addressing memories that can be deleted in blocks
AU2003278231A AU2003278231A1 (en) 2002-06-19 2003-06-17 Method for addressing memories that can be deleted in blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2002127256 DE10227256C1 (en) 2002-06-19 2002-06-19 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

Publications (1)

Publication Number Publication Date
DE10227256C1 true DE10227256C1 (en) 2003-12-18

Family

ID=32477391

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2002127256 Expired - Fee Related DE10227256C1 (en) 2002-06-19 2002-06-19 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

Country Status (1)

Country Link
DE (1) DE10227256C1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005041046A3 (en) * 2003-10-24 2005-07-14 Hyperstone Ag Method for writing memory sectors in a memory deletable by blocks
DE102005001038B3 (en) * 2005-01-07 2006-05-04 Hyperstone Ag Non volatile memory`s e.g. flash memory, block management method for e.g. computer system, involves assigning physical memory block number of real memory block number on table, and addressing real memory blocks with physical block number
WO2009068074A1 (en) 2007-11-26 2009-06-04 Hyperstone Gmbh Method for even utilization of a plurality of flash memory chips
DE102008061091A1 (en) * 2008-12-08 2010-06-10 Robert Bosch Gmbh 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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930193A (en) * 1994-06-29 1999-07-27 Hitachi, Ltd. Memory system using a flash memory and method of controlling the memory system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930193A (en) * 1994-06-29 1999-07-27 Hitachi, Ltd. Memory system using a flash memory and method of controlling the memory system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005041046A3 (en) * 2003-10-24 2005-07-14 Hyperstone Ag Method for writing memory sectors in a memory deletable by blocks
DE102005001038B3 (en) * 2005-01-07 2006-05-04 Hyperstone Ag Non volatile memory`s e.g. flash memory, block management method for e.g. computer system, involves assigning physical memory block number of real memory block number on table, and addressing real memory blocks with physical block number
WO2009068074A1 (en) 2007-11-26 2009-06-04 Hyperstone Gmbh Method for even utilization of a plurality of flash memory chips
DE102008061091A1 (en) * 2008-12-08 2010-06-10 Robert Bosch Gmbh 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

Similar Documents

Publication Publication Date Title
DE60319563T2 (en) MANAGEMENT OF THE NUMBER OF DELETIONS IN A NON-FLUID MEMORY
DE60316171T2 (en) AUTOMATIC WEARING COMPENSATION IN A NON-VOLATILE STORAGE SYSTEM
DE69612752T2 (en) MEMORY ARRANGEMENT
DE69227499T2 (en) Storage device using flash memory
DE69414556T2 (en) QUICKLY DELETABLE FILE
DE69431795T2 (en) MASS MEMORY ARCHITECTURE WITH FLASH MEMORY
DE60019903T2 (en) STORAGE SYSTEM
DE2226382C3 (en) Data processing system with several processors and buffer memories assigned to them
DE102006003261A1 (en) Storage system and method for data fusion
DE112011102487B4 (en) Mapping logical to physical addresses in storage systems having semiconductor storage devices
DE69630624T2 (en) EEPROM matrix with a core similar to "flash" memory
DE60211653T2 (en) TEPASS PROGRAMMING AND READING OPERATIONS IN A NON-VOLATILE MEMORY
DE69034227T2 (en) EEprom system with block deletion
DE102009034651A1 (en) Process and method for mapping logical addresses to physical addresses in solid state disks
DE102005031525A1 (en) Method and system for controlling a flash memory and storage system
DE19961499A1 (en) Caching objects in disk-based databases
DE102006005877A1 (en) Address mapping table and method for generating an address mapping table
DE102006005876A1 (en) A flash memory controller, a flash memory controller, a flash memory system, and a flash memory map data managing method
EP2215636B1 (en) Method for even utilization of a plurality of flash memory chips
DE112019000627T5 (en) Storage structure-based coherency directory cache
DE112017007323T5 (en) CACHE MEMORY AND METHOD FOR CONTROLLING THEREOF
EP1665053A1 (en) Management of erased blocks in flash memories
EP1352318B1 (en) Microprocessor circuit for portable data carriers
EP1676203B1 (en) Method for writing memory sectors in a memory deletable by blocks
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

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
8304 Grant after examination procedure
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HYPERSTONE GMBH, 78467 KONSTANZ, DE

R082 Change of representative

Representative=s name: WALLINGER RICKER SCHLOTTER TOSTMANN PATENT- UN, DE

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