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 presentInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear 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
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.
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)
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)
| 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)
| 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 |
-
2002
- 2002-06-19 DE DE2002127256 patent/DE10227256C1/en not_active Expired - Fee Related
Patent Citations (1)
| 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)
| 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 |