WO2012062233A1 - Method for deallocating memory areas no longer needed on non-volatile memory media - Google Patents
Method for deallocating memory areas no longer needed on non-volatile memory media Download PDFInfo
- Publication number
- WO2012062233A1 WO2012062233A1 PCT/DE2010/075124 DE2010075124W WO2012062233A1 WO 2012062233 A1 WO2012062233 A1 WO 2012062233A1 DE 2010075124 W DE2010075124 W DE 2010075124W WO 2012062233 A1 WO2012062233 A1 WO 2012062233A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- trim
- memory
- blocks
- data
- cluster
- 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.)
- Ceased
Links
Classifications
-
- 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/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
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
- 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/7205—Cleaning, compaction, garbage collection, erase control
Definitions
- Nonvolatile Storage Media The invention describes a method for releasing no longer needed
- Non-volatile storage medium which is connected via a host bus to a host system in whose file system data for release are marked, and in the non-volatile storage medium, the data from a memory management program in a memory controller in physical
- Memory blocks are each managed with a description structure and an assignment of logical data blocks to physical memory blocks is carried out by a mapping table.
- Flash memories are semiconductor memories that do not require a voltage source to retain their information. Flash memories are used as memory cards for digital cameras,
- SSD solid state drives
- the SSD essentially consists of a memory controller and a number of flash memory elements depending on the memory size.
- the memory controller controls how the data is read from the cells of the flash memory devices and manages the flash memory cells.
- the flash memory cells are organized into blocks of memory, and these in turn are organized into pages, with pages of 4 KB size that can be read and written individually, and
- the TRIM command itself is not responsible for clearing the flash memory cells, but simply provides additional status about the use of the memory blocks. The management of the memory blocks is then via the
- TRIM TRIM.
- commands can be found in the documents "From write () down to the flash chips” by Louis Gerbarg (http://www.devwhy.com/blog/2009/8/4/from-write-down-to-the-flash chips.html) and "Windows 7 Enhancements for Solid-State Drives" by Frank Shu, Microsoft Corporation
- Operating periods include programming, deleting and reading modes of the
- the trim information is based on its own intelligence of the control logic of the internal memory controller and are not communicated to the memory element from the outside by a host system by means of a TRIM command. It is an object of the invention to disclose a method which allows the
- An embodiment of the invention provides a nonvolatile storage medium connected to a host system via a host bus.
- a storage medium is usually equipped with an S-ATA or ATA interface, so that it can be used as a flash drive mainly in mobile computer systems.
- This interface is an ATA-based software protocol for the
- the storage medium essentially comprises a memory controller and a plurality of flash memory elements that depend on the memory size of the memory controller
- Storage medium depends. It manages a memory management program in the Memory controller, the physical memory blocks of the flash memory elements each having a description structure in the memory block. In each of the memory blocks themselves, in turn, a plurality of pages are organized, which are read and written individually. The deletion, however, is technically conditional for a whole block of memory.
- the TRIM command takes over this task in advance of the write operations and informs the storage medium of unused or invalid data blocks that can be marked for the purpose of subsequent re-description. It sets the
- TRIM clusters are formed which represent a subset of a memory block.
- a TRIM cluster includes one or more pages, with a current memory block size of 64 or 128 pages, this is 2 or 4 pages per TRIM cluster. This divides a physical memory block into multiple TRIM clusters.
- An advantageous embodiment of the invention defines a TREVI mask with elements to the TRIM clusters of the memory block and stores the TRIM mask within the respective description structure of the memory block.
- the memory controller uses the assignment table to convert the deletion information of the TRIM command into the elements of the TREVI mask, whereby the TREVI mask contains one TREVI bit for each TRIM cluster.
- the position of the TRIM bit in the TRIM mask implicitly defines a pointer to the TRIM cluster. How many pages belong to a TRIM cluster depends on the number of pages per block of memory and the length in bits of the TREVI mask.
- a log file is written on the flash memory medium, which contains the data from the Trace information obtained and permanently provided for use after a possible unexpected shutdown.
- the TRIM masks are continually updated in all update operations and garbage collection operations of the memory blocks.
- the TRIM bit is set to 1 for all converted TRIM clusters.
- the corresponding TRIM bits are cleared at the TRIM cluster where the new data was written. This will make the contents of already updated pages permanent.
- the invention provides that in a garbage collection only the pages of an old memory block are copied into a new physical memory block whose TRIM bit is set to 0 in the TRIM mask.
- pages of a TRIM cluster whose corresponding TRIM bit is set to 1 are not included in the new one
- Transfer memory block After deleting the old memory block, for example via a garbage collection or wear-leveling algorithm, these pages are free for re-description. All unnecessary pages become advantageous
- Fig. 1 shows a block diagram of the system connected to a host system
- Fig. 2 shows a block diagram of the structure of the TRIM command
- 3 shows a block diagram of the implementation of the deletion information of the TRIM command
- Fig. 4 shows a block diagram of the organization of the physical memory blocks.
- Fig. 5 shows a block diagram of the structure of the TRIM mask
- FIG. 7 shows a flow chart for processing the data update 1 shows an overview of a nonvolatile storage medium SM connected to a host system HS, which are connected to one another via a host bus HB.
- the file system FS of the host system HS communicates with the memory controller MC in the storage medium SM, the storage medium SM being informed by means of the TRIM command TR which data is no longer needed.
- the memory controller MC can then reset based on the information obtained the vacant flash memory cells in the memory elements FM and thus speed up the writing process for new data.
- FIG. 2 shows the structure of the TREVI command TR as described in the currently current ATA8-ACS-2 specification. Currently, only the TREVI feature (bit 0) is specified in the Request Command.
- the TRIM request data area contains one or more logical data blocks as entry entries in a list, each comprising a logical block address LBA and an area length. The data blocks may overlap and they do not have to be sorted.
- Memory controller MC shown. Above the double arrows, the logical level LL of the file system is shown on the host system HS. Below the double arrows, physical level PL of the memory controller MC is shown on the storage medium SM.
- a file of the file system FS is organized in one or more logical blocks LB0..x, which are each addressed by a logical block address LBA0..X.
- the TRIM command TR contains a list of entry entries EN0..X of the logical data blocks LB0..X
- Memory blocks PB0..n implemented, which are each addressed by a physical block address PBA0..n.
- a physical memory block PB0..n comprises one or more pages PG0..y, which in turn are advantageously combined to form one or more TREVI clusters TCO.i with in each case 2 or 4 pages PG0..y.
- TRIM cluster TC0..i has an associated TRIM bit stored in the TRIM mask, whereby the pointers to the TRIM clusters TPO.i are identified by the position of the TRIM bit. 4 shows an overview of the organization of the physical memory blocks PB0..n within the storage medium SM.
- the storage medium SM contains one or more physical memory blocks PB0..n, which are addressed via a physical block address PBACLn.
- PBACLn physical block address
- each of the memory blocks PB0..n are in turn several pages PG0..y organized, which can be read and written individually.
- Each memory block PB0..n has a description structure DS in which the memory management of the memory controller MC stores its data for managing the pages PG0..y, such as the mapping table AT.
- the respective description structure DS of the physical memory blocks PB0..n also includes the inventive TRIM mask TM, which contains TRIM bits TBO.i and thus pointer to TRIM cluster TPO.i.
- the respective physical memory block PB0..n is subdivided into a plurality of TRIM clusters TCO.i, wherein a TRIM cluster TCO.i comprises one or more pages PG0..y, the data or data fragments of the file of the host system HS to be deleted contain.
- the description structure DS is advantageously arranged as part of the address assignment table AT.
- FIG. 5 shows an embodiment of the inventive TRIM mask TM.
- the TRIM mask TM contains a TRIM bit TBO.i for each TRIM cluster TCO.i.
- the TRIM clusters TCO.i are identified by the position of the TRIM bit TBO.i in the TRIM mask TM.
- the number of pages belonging to a TRIM cluster TCO.i depends on the number of pages per memory block PB0..n and the length in bits of the TRIM mask TM.
- the pointer defines the associated TRIM cluster TPO.i.
- a TRIM bit TBO.i set to 1 indicates that the pages PG0..y of the associated TRIM cluster TCO.i are not transmitted during the next memory cleaning process of the physical memory block PB0..n and are therefore deleted or released for deletion become.
- a TRIM bit TBO.i set to 0 causes copying of the pages PG0..y of the associated memory block PB0..n.
- FIG. 6 shows the sequence of the TRIM operation for processing the TRIM command TR in the memory controller MC of the storage medium SM. After this
- the information from the ATA command is read in. First, it is checked whether bit 0 is set to 1 in the feature element, whereby the use of this ATA command is defined as a TRIM command.
- a TRIM command is sent, all logical block addresses contained in the entry list of the TRIM command and the respective range lengths are converted into memory block based TRIM mask information. If it contains at least one complete TRIM cluster, this TRIM cluster is written into the TRIM mask of the physical memory block descriptor structure by setting the associated TREVI bit of the TRIM cluster in the TRIM mask.
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
Verfahren zur Freigabe nicht länger benötigter Speicherbereiche auf Method for releasing storage areas no longer required
nichtflüchtigen Speichermedien Die Erfindung beschreibt ein Verfahren zur Freigabe nicht länger benötigter Nonvolatile Storage Media The invention describes a method for releasing no longer needed
Speicherbereiche auf einem nichtflüchtigen Speichermedium, das über einen Hostbus an ein Hostsystem angeschlossen ist, in dessen Dateisystem Daten zur Freigabe gekennzeichnet sind, und im nichtflüchtigen Speichermedium die Daten von einem Speichermanagementprogramm in einem Speichercontroller in physikalischen Storage areas on a non-volatile storage medium, which is connected via a host bus to a host system in whose file system data for release are marked, and in the non-volatile storage medium, the data from a memory management program in a memory controller in physical
Speicherblöcken mit jeweils einer Beschreibungsstruktur verwaltet werden und eine Zuordnung von logischen Datenblöcken zu physikalischen Speicherblöcken durch eine Zuordnungstabelle erfolgt. Memory blocks are each managed with a description structure and an assignment of logical data blocks to physical memory blocks is carried out by a mapping table.
Die weit verbreiteten nichtflüchtigen Speichermedien (Flash- Speicher) sind Halbleiter- Speicher, die keine Spannungsquelle benötigen, um ihre Information zu behalten. Flash- Speicher finden ihre Anwendung als Speicherkarten für Digital-Kameras, Widely used nonvolatile storage media (flash memories) are semiconductor memories that do not require a voltage source to retain their information. Flash memories are used as memory cards for digital cameras,
Mobiltelefone, PDAs und Multi-Media Abspielgeräte. Darüber hinaus werden sie heute zunehmend in Computersystemen als Massenspeichermedien eingesetzt, insbesondere in Form sogenannter Solid State Drives (SSD), die sich gegenüber dem Mobile phones, PDAs and multi-media players. In addition, today they are increasingly used in computer systems as mass storage media, in particular in the form of so-called solid state drives (SSD), which are opposite to the
Computersystem wie die herkömmlichen magnetischen Festplatten verhalten und vom Betriebssystem des Computers angesprochen werden können. Im Inneren besteht das SSD im Wesentlichen aus einem Speichercontroller und einer von der Speichergröße abhängigen Anzahl aus Flash-Speicherelementen. Der Speichercontroller steuert, wie die Daten aus den Zellen der Flash- Speicherelemente gelesen bzw. geschrieben werden, und verwaltet die Flash- Speicherzellen. Dabei werden die Flash- Speicherzellen in Speicherblöcke und diese wiederum in Pages organisiert, wobei es Pages mit einer Größe von 4 KB gibt, die einzeln gelesen und geschrieben werden können, und Computer system as the conventional magnetic hard drives behave and can be addressed by the operating system of the computer. Internally, the SSD essentially consists of a memory controller and a number of flash memory elements depending on the memory size. The memory controller controls how the data is read from the cells of the flash memory devices and manages the flash memory cells. The flash memory cells are organized into blocks of memory, and these in turn are organized into pages, with pages of 4 KB size that can be read and written individually, and
Speicherblöcke mit einer Größe zwischen 128 KB und 512 KB, die gelöscht werden können. Die Flash-Speicher besitzen die technisch bedingte Eigenschaft, dass Memory blocks between 128 KB and 512 KB in size that can be deleted. The flash memory possess the technical property that
Informationen nur Page- weise in vorher gelöschte Pages geschrieben werden können. Das Löschen erfolgt jeweils für einen ganzen Speicherblock für alle Pages gemeinsam. Information can only be written page by page to previously deleted pages. The deletion is done for a whole block of memory for all pages together.
Betriebsysteme löschen nicht den Dateiinhalt einer gelöschten Datei selbst, sondern entfernen lediglich den Eintrag der Datei im Inhaltsverzeichnis des Dateisystems. Das beschleunigt den Löschvorgang, wodurch große Datenmengen sehr schnell gelöscht werden können, ermöglicht aber auch eine Wiederherstellung der gelöschten Datei. Bisher war es so, dass der Speichercontroller des SSD keine Information über derart gelöschte oder anderweitig freigewordene Speicherbereiche, die nicht mehr vom Dateisystem benutzt werden, erhalten hat. Dadurch müssen bei jeder Aktualisierung oder Speicherbereinigung der Speicherblöcke die von den Inhalten der eigentlich gelöschten Dateifragmente belegten Pages weiterhin mitgeschrieben werden, auch wenn die Daten nie wieder vom Computersystem verwendet werden. Um dieser Situation abzuhelfen, kann das Betriebssystem durch das neue TREVI-Kommando, das als Teil des ATA-Standards durch das Standardisierungsgremium T13 Technical Committee des INCITS im Rahmen der ATA8-ACS-2 Spezifikation standardisiert ist Operating systems do not delete the file contents of a deleted file itself, but only remove the entry of the file in the table of contents of the file system. The speeds up the deletion process, which can erase large amounts of data very quickly, but also allows recovery of the deleted file. Heretofore, the SSD's memory controller has received no information about such erased or otherwise freed memory areas that are no longer used by the file system. As a result, each time the memory blocks are updated or garbage cleaned, the pages occupied by the contents of the file fragments actually deleted must still be written, even if the data is never reused by the computer system. To remedy this situation, the operating system can be standardized by the new TREVI command, which is part of the ATA standard by the TITS Technical Committee standard body of the INCITS under the ATA8-ACS-2 specification
(http://tl3.org/Documents/MinutesDefault.aspx?keyword=TRIM), dem SSD beim Löschen von Dateien mitteilen, dass es die davon belegten Speicherbereiche als ungültig markieren kann, anstelle deren Daten weiter vorzuhalten. Die Inhalte werden mit mehr weiter mitgeschrieben, wodurch die Schreib Zugriffe auf das Laufwerk beschleunigt und zudem die Abnutzungseffekte der Flash-Speicher verringert werden. Die ungültig markierten Speicherblöcke werden dann beim nächsten Löschen ihres Speicherblocks frei. Beispielsweise unterstützen derzeit die Betriebssysteme Windows 7, Windows Server 2008 R2 und Linux ab Version 2.6.33 das TREVI-Kommando. (http://tl3.org/Documents/MinutesDefault.aspx?keyword=TRIM), informing the SSD when deleting files that it can mark the space occupied by them as invalid instead of keeping their data. The contents continue to be written along with more, which accelerates the write access to the drive and also reduces the wear effects of the flash memory. The memory blocks that have been invalidated are then freed the next time they erase their memory block. For example, the operating systems Windows 7, Windows Server 2008 R2 and Linux from version 2.6.33 currently support the TREVI command.
Das TRIM- Kommando selbst ist nicht für das Löschen der Flash-Speicherzellen verantwortlich, sondern übermittelt lediglich einen zusätzlichen Status über die Nutzung der Speicherblöcke. Die Verwaltung der Speicherblöcke erfolgt dann über den The TRIM command itself is not responsible for clearing the flash memory cells, but simply provides additional status about the use of the memory blocks. The management of the memory blocks is then via the
Speichercontroller über die entsprechenden Garbage-Collection- bzw. Wear-Leveling- Algorithmen direkt durch das Speichermedium. Die Funktionsweise des Memory controller via the appropriate garbage collection or wear-leveling algorithms directly through the storage medium. The functioning of the
TRIM. Kommandos ist beispielsweise in den Dokumenten„From write() down to the flash chips" von Louis Gerbarg (http://www.devwhy.com/blog/2009/8/4/from-write- down-to-the-flash-chips.html) und„Windows 7 Enhancements for Solid-State Drives" von Frank Shu, Microsoft Corporation TRIM. For example, commands can be found in the documents "From write () down to the flash chips" by Louis Gerbarg (http://www.devwhy.com/blog/2009/8/4/from-write-down-to-the-flash chips.html) and "Windows 7 Enhancements for Solid-State Drives" by Frank Shu, Microsoft Corporation
(http://download.microsoft.com/download/5/e/6/5e66b27b-988b-4f50-af3a- c2ffle62180f/cor-t558_wh08.pptx) beschrieben. (http://download.microsoft.com/download/5/e/6/5e66b27b-988b-4f50-af3a-c2ffle62180f/cor- t558_wh08.pptx).
In der Patentschrift US 2009/0010066 AI ist ein Flash-Speicherelement beschrieben, das ein Speicherzellenfeld„Trim Information Area" umfasst, in dem Daten- und Ordnungs-Informationen gespeichert sind, die für die Steuerung der Programmierung, das Löschen und die Lesemodi des Speicherelementes genutzt werden. Im Betrieb liest eine Steuerlogik beim Einschalten des Speicherelementes die Trim- Informationen aus dem Speicherzellenfeld ein, und optimiert mittels der dort hinterlegten In the patent US 2009/0010066 AI a flash memory device is described which comprises a memory cell array "Trim Information Area", in the data and Ordnungs information stored, which are used for the control of the programming, the deletion and the read modes of the memory element. In operation, when the memory element is turned on, a control logic reads in the trim information from the memory cell array, and optimizes it by means of the stored there
Betriebszeiträume die Programmierung, das Löschen und die Lese-Modi des Operating periods include programming, deleting and reading modes of the
Speicherelementes. Dabei basieren die Trim- Informationen auf eigener Intelligenz der Steuerlogik des internen Speichercontrollers und werden nicht mittels eines TRIM- Kommandos dem Speicherelement von außen durch ein Hostsystem mitgeteilt. Es ist Aufgabe der Erfindung, ein Verfahren zu offenbaren, das es erlaubt, die Memory element. The trim information is based on its own intelligence of the control logic of the internal memory controller and are not communicated to the memory element from the outside by a host system by means of a TRIM command. It is an object of the invention to disclose a method which allows the
Informationen des TRIM-Kommandos welche Daten nicht mehr benötigt werden, vererbbar durch eine Vielzahl von physikalischen Speicherblock Generationen zu machen und diese Informationen auch nach dem Schreiben von Daten in diesen Speicherblock verfügbar zu halten. Information of the TRIM command which data is no longer needed to make inheritable by a plurality of physical memory block generations and to keep this information available even after writing data into this memory block.
Diese Aufgabe wird durch die Merkmale des Anspruchs 1 gelöst. This object is solved by the features of claim 1.
Ausführungsformen der Erfindung sind in den Unteransprüchen beschrieben. Embodiments of the invention are described in the subclaims.
Eine Ausgestaltung der Erfindung sieht ein nichtflüchtiges Speichermedium vor, das über einen Hostbus mit einem Hostsystem verbunden ist. Ein solches Speichermedium ist in der Regel mit einem S-ATA- bzw. ATA-Interface ausgestattet, so dass es als Flash-Laufwerk vorwiegend in mobilen Computersystemen eingesetzt werden kann. Auf diesem Interface wird ein ATA-basierendes Software-Protokoll für den An embodiment of the invention provides a nonvolatile storage medium connected to a host system via a host bus. Such a storage medium is usually equipped with an S-ATA or ATA interface, so that it can be used as a flash drive mainly in mobile computer systems. This interface is an ATA-based software protocol for the
Datentransfer zwischen dem Speichermedium bzw. Laufwerk und dem Hostsystem bzw. Computer eingesetzt. Dadurch kann das Dateisystem des Hostsystems über den Hostbus mit dem Speichermedium wie mit einer herkömmlichen magnetischen Festplatten kommunizieren und mittels ATA-Kommandos ansprechen. Mit der aktuellen Erweiterung des ATA-Standards ist es nun möglich, dass das Hostsystem dem Speichermedium mittels des TRIM-Kommandos mitteilen kann, welche Dateien im Dateisystem vom Benutzer gelöscht wurden und damit nicht mehr benötigt werden. Data transfer between the storage medium or drive and the host system or computer used. This allows the file system of the host system via the host bus to communicate with the storage medium as with a conventional magnetic hard disks and respond using ATA commands. With the current extension of the ATA standard, it is now possible that the host system can tell the storage medium by means of the TRIM command which files in the file system were deleted by the user and are therefore no longer needed.
Das Speichermedium umfasst im Wesentlichen einen Speichercontroller und eine Vielzahl von Flash-Speicherelementen, die von der Speichergröße des The storage medium essentially comprises a memory controller and a plurality of flash memory elements that depend on the memory size of the memory controller
Speichermediums abhängt. Dabei verwaltet ein Speichermanagementprogramm in dem Speichercontroller die physikalischen Speicherblöcke der Flash- Speicherelemente mit jeweils einer Beschreibungs struktur im Speicherblock. In jedem der Speicherblöcke selbst ist wiederum eine Vielzahl von Pages organisiert, die einzeln gelesen und geschrieben werden. Das Löschen hingegen erfolgt technisch bedingt jeweils für einen ganzen Speicherblock. Nach der Initialisierung des Speichermediums kann der Storage medium depends. It manages a memory management program in the Memory controller, the physical memory blocks of the flash memory elements each having a description structure in the memory block. In each of the memory blocks themselves, in turn, a plurality of pages are organized, which are read and written individually. The deletion, however, is technically conditional for a whole block of memory. After the initialization of the storage medium, the
Speichercontroller mit vollem Tempo in freie Blöcke schreiben. Mit zunehmender Nutzungsdauer des Speichermediums schwinden jedoch die verfügbaren freien Blöcke. Der Speichercontroller muss dann immer öfter vor jedem Schreibvorgang Write memory controller at full speed into free blocks. However, as the storage medium becomes more useful, the available free blocks dwindle. The memory controller must then more often before each write
Speicherblöcke einlesen und prüfen, ob die Daten noch in Gebrauch sind, bevor er sie löschen kann, was zusätzliche Zeit kostet und die Anzahl freier Speicherblöcke reduziert. Read memory blocks and check if the data is still in use before it can be erased, which takes extra time and reduces the number of free memory blocks.
Das TRIM-Kommando übernimmt diese Aufgabe im Vorfeld der Schreibvorgänge und teilt dem Speichermedium ungenutzte oder ungültige Datenblöcke mit, die zum Zweck der späteren Wiederbeschreibung markiert werden können. Dabei setzt der The TRIM command takes over this task in advance of the write operations and informs the storage medium of unused or invalid data blocks that can be marked for the purpose of subsequent re-description. It sets the
Speichercontroller die im TRIM-Kommando mitgeteilten logischen Datenblöcke durch eine Zuordnungstabelle in die physikalischen Speicherblöcke des Speichermediums um. Besonders vorteilhaft werden dabei TRIM-Cluster gebildet, die eine Untermenge eines Speicherblockes darstellen. Ein TRIM-Cluster umfasst eine oder mehrere Pages, bei einer derzeit aktuellen Speicherblockgröße von 64 oder 128 Pages sind dies 2 oder 4 Pages pro TRIM-Cluster. Dadurch ist ein physikalischer Speicherblock in mehrere TRIM-Cluster unterteilt. Eine vorteilhafte Ausführung der Erfindung definiert eine TREVI-Maske mit Elementen zu den TRIM-Clustern des Speicherblocks und speichert die TRIM-Maske innerhalb der jeweiligen Beschreibungsstruktur des Speicherblocks. Durch den Speichercontroller werden die Löschinformationen des TRIM- Kommandos über die Zuordnungstabelle in die Elemente der TREVI-Maske umgesetzt, wobei die TREVI-Maske pro TRIM-Cluster ein TREVI-Bit enthält. Die Position des TRIM-Bits in der TRIM-Maske definiert implizit einen Zeiger auf den TRIM-Cluster. Wie viele Pages zu einem TRIM-Cluster gehören, hängt von der Anzahl Pages pro Speicherblock und der Länge in Bits der TREVI-Maske ab. Vorteilhaft wird dadurch die ganze Memory controller to the communicated in the TRIM command logical data blocks by an assignment table in the physical memory blocks of the storage medium. In this case, TRIM clusters are formed which represent a subset of a memory block. A TRIM cluster includes one or more pages, with a current memory block size of 64 or 128 pages, this is 2 or 4 pages per TRIM cluster. This divides a physical memory block into multiple TRIM clusters. An advantageous embodiment of the invention defines a TREVI mask with elements to the TRIM clusters of the memory block and stores the TRIM mask within the respective description structure of the memory block. The memory controller uses the assignment table to convert the deletion information of the TRIM command into the elements of the TREVI mask, whereby the TREVI mask contains one TREVI bit for each TRIM cluster. The position of the TRIM bit in the TRIM mask implicitly defines a pointer to the TRIM cluster. How many pages belong to a TRIM cluster depends on the number of pages per block of memory and the length in bits of the TREVI mask. Advantageously, the whole
Löschinformation des TREVI-Kommandos verdichtet, umgesetzt in Speicherblock basierende Informationen und für alle Löschelemente des TRIM- Kommandos sich vererbend in die Beschreibungsstruktur des Speicherblocks geschrieben. Zusätzlich wird eine Protokolldatei auf dem Flash- Speichermedium mitgeschrieben, die die vom TRIM-Kommando erhaltenen Informationen verfolgt und dauerhaft für den Einsatz nach einem möglichen unerwarteten Abschaltvorgang bereitstellt. Clearing information of the TREVI command compacted, converted into memory block based information and for all deletion elements of the TRIM command inheriting written in the description structure of the memory block. In addition, a log file is written on the flash memory medium, which contains the data from the Trace information obtained and permanently provided for use after a possible unexpected shutdown.
Die TRIM-Masken werden fortlaufend in allen Aktualisierungsoperationen und Speicherbereinigungsoperationen der Speicherblöcke aktualisiert. So wird nach dem Empfang des TRIM-Kommandos, das eine Liste mit logischen Datenblöcken enthält, für alle umgesetzten TRIM-Cluster das jeweilige TRIM-Bit auf 1 gesetzt. Bei einer Aktualisierung der Daten im Speicherblock werden die entsprechenden TRIM-Bits bei dem TRIM-Cluster gelöscht, in dem die neuen Daten geschrieben wurden. Dadurch wird der Inhalt bereits aktualisierter Pages permanent gemacht. Besonders vorteilhaft sieht die Erfindung vor, dass bei einer Speicherbereinigung nur die Pages eines alten Speicherblocks in einen neuen physikalischen Speicherblock kopiert werden, deren TRIM-Bit in der TRIM-Maske auf 0 gesetzt ist. Hingegen werden Pages eines TRIM- Clusters, deren entsprechendes TRIM-Bit auf 1 gesetzt ist, nicht in den neuen The TRIM masks are continually updated in all update operations and garbage collection operations of the memory blocks. Thus, after receiving the TRIM command, which contains a list of logical data blocks, the TRIM bit is set to 1 for all converted TRIM clusters. When updating the data in the memory block, the corresponding TRIM bits are cleared at the TRIM cluster where the new data was written. This will make the contents of already updated pages permanent. Particularly advantageous, the invention provides that in a garbage collection only the pages of an old memory block are copied into a new physical memory block whose TRIM bit is set to 0 in the TRIM mask. On the other hand, pages of a TRIM cluster whose corresponding TRIM bit is set to 1 are not included in the new one
Speicherblock übertragen. Nach dem Löschen des alten Speicherblockes, beispielsweise über einen Garbage-Collection- oder Wear-Leveling- Algorithmus, sind diese Pages für eine Wiederbeschreibung frei. Vorteilhaft werden dadurch alle unnötigen Page Transfer memory block. After deleting the old memory block, for example via a garbage collection or wear-leveling algorithm, these pages are free for re-description. All unnecessary pages become advantageous
Programmierungen vermieden, wodurch die Lebensdauer und Schreibgeschwindigkeit der Flash-Speicherelemente erhöht wird. Avoiding programming, which increases the life and writing speed of the flash memory devices.
Zum Produktionszeitpunkt werden bei der Initialisierung des Flash-Speichermediums alle TRIM-Bits in allen für Nutzerdaten vorgesehenen Speicherblöcken auf 1 gesetzt. At the time of production, all the TRIM bits in all memory blocks provided for user data are set to 1 during the initialization of the flash memory medium.
Die Ausgestaltung der Erfindung wird anhand der Figuren beispielhaft erläutert. The embodiment of the invention will be explained by way of example with reference to FIGS.
Fig. 1 zeigt ein Blockdiagramm des mit einem Hostsystem verbundenen Fig. 1 shows a block diagram of the system connected to a host system
Speichermediums storage medium
Fig. 2 zeigt ein Blockdiagramm der Struktur des TRIM-Kommandos Fig. 2 shows a block diagram of the structure of the TRIM command
Fig. 3 zeigt ein Blockdiagramm der Umsetzung der Löschinformation des TRIM- Kommandos 3 shows a block diagram of the implementation of the deletion information of the TRIM command
Fig. 4 zeigt ein Blockdiagramm der Organisation der physikalischen Speicherblöcke Fig. 5 zeigt ein Blockdiagramm der Struktur der TRIM-Maske Fig. 4 shows a block diagram of the organization of the physical memory blocks. Fig. 5 shows a block diagram of the structure of the TRIM mask
Fig. 6 zeigt ein Flussdiagramm zur Bearbeitung des TRIM-Kommandos 6 shows a flowchart for processing the TRIM command
Fig. 7 zeigt ein Flussdiagramm zur Bearbeitung der Daten- Aktualisierung Fig. 1 zeigt eine Übersicht eines mit einem Hostsystem HS verbunden nichtflüchtigen Speichermediums SM, die über einen Hostbus HB miteinander verbunden sind. Über den Hostbus HB kommuniziert das Dateisystem FS des Hostsystems HS mit dem Speichercontroller MC im Speichermedium SM, wobei mittels des TRIM- Kommandos TR dem Speichermedium SM mitgeteilt wird, welche Daten nicht mehr benötigt werden. Der Speichercontroller MC kann dann auf Basis der erhaltenen Informationen die freigewordenen Flash- Speicherzellen in den Speicherelementen FM zurücksetzen und damit den Schreibvorgang für neue Daten beschleunigen. In Fig. 2 ist die Struktur des TREVI-Kommandos TR gezeigt, wie er in der derzeit aktuellen ATA8-ACS-2 Spezifikation beschrieben ist. Derzeit ist lediglich das TREVI- Feature (Bit 0) im Request Command spezifiziert. Der TRIM Request Data Bereich enthält einen oder mehrere logische Datenblöcke als Entry Einträge in einer Liste, jeweils eine logische Blockadresse LBA und einen Bereichslänge umfassend. Die Datenblöcke können sich überlappen und sie müssen nicht sortiert sein. Fig. 7 shows a flow chart for processing the data update 1 shows an overview of a nonvolatile storage medium SM connected to a host system HS, which are connected to one another via a host bus HB. Via the host bus HB, the file system FS of the host system HS communicates with the memory controller MC in the storage medium SM, the storage medium SM being informed by means of the TRIM command TR which data is no longer needed. The memory controller MC can then reset based on the information obtained the vacant flash memory cells in the memory elements FM and thus speed up the writing process for new data. FIG. 2 shows the structure of the TREVI command TR as described in the currently current ATA8-ACS-2 specification. Currently, only the TREVI feature (bit 0) is specified in the Request Command. The TRIM request data area contains one or more logical data blocks as entry entries in a list, each comprising a logical block address LBA and an area length. The data blocks may overlap and they do not have to be sorted.
In Fig. 3 ist die Umsetzung der Löschinformationen des TRIM- Kommandos TR in die physikalischen Speicherblockstruktur des Speichermediums SM durch den In Fig. 3, the conversion of the deletion information of the TRIM command TR in the physical memory block structure of the storage medium SM by the
Speichercontroller MC dargestellt. Oberhalb der Doppelpfeile ist die logische Ebene LL des Dateisystems auf dem Hostsystem HS dargestellt. Unterhalb der Doppelpfeile ist physikalische Ebene PL des Speichercontrollers MC auf dem Speichermedium SM gezeigt. Memory controller MC shown. Above the double arrows, the logical level LL of the file system is shown on the host system HS. Below the double arrows, physical level PL of the memory controller MC is shown on the storage medium SM.
Eine Datei des Dateisystems FS ist dabei in einem oder mehreren logischen Blöcken LB0..x organisiert, die jeweils durch eine logische Blockadresse LBA0..X adressiert werden. Beim Löschen einer Datei durch das Dateisystem wird im TRIM-Kommando TR eine Liste mit Entry Einträgen EN0..X der logischen Datenblöcke LB0..X A file of the file system FS is organized in one or more logical blocks LB0..x, which are each addressed by a logical block address LBA0..X. When a file is deleted by the file system, the TRIM command TR contains a list of entry entries EN0..X of the logical data blocks LB0..X
übertragen, die die Daten der Datei beinhalten die nun nicht mehr benötigt werden. Über die Zuordnungstabelle AT werden vom Speichermanagementprogramm des Speichercontrollers MC die logischen Datenblöcke LB0..X in die physikalische transferred, which contain the data of the file that are no longer needed. About the allocation table AT are the memory management program of the memory controller MC, the logical data blocks LB0..X in the physical
Speicherblöcke PB0..n umgesetzt, die jeweils durch eine physikalische Blockadresse PBA0..n adressiert werden. Dabei umfasst ein physikalischer Speicherblock PB0..n eine oder mehrere Pages PG0..y, die wiederum vorteilhaft zu einem oder mehreren TREVI- Clustern TCO.i mit jeweils 2 oder 4 Pages PG0..y zusammengefasst werden. Für jeden TRIM-Cluster TC0..i ist ein assoziiertes TRIM-Bit in der TRIM-Maske hinterlegt, wobei über die Position des TRIM-Bits die Zeiger auf die TRIM-Cluster TPO.i identifiziert werden. Fig. 4 zeigt eine Übersicht der Organisation der physikalischen Speicherblöcke PB0..n innerhalb des Speichermediums SM. Dabei enthält das Speichermedium SM einen oder mehrere physikalische Speicherblöcke PB0..n, die über eine physikalische Blockadresse PBACLn adressiert werden. In jedem der Speicherblöcke PB0..n sind wiederum mehrere Pages PG0..y organisiert, die einzeln gelesen und geschrieben werden können. Memory blocks PB0..n implemented, which are each addressed by a physical block address PBA0..n. In this case, a physical memory block PB0..n comprises one or more pages PG0..y, which in turn are advantageously combined to form one or more TREVI clusters TCO.i with in each case 2 or 4 pages PG0..y. For each TRIM cluster TC0..i has an associated TRIM bit stored in the TRIM mask, whereby the pointers to the TRIM clusters TPO.i are identified by the position of the TRIM bit. 4 shows an overview of the organization of the physical memory blocks PB0..n within the storage medium SM. In this case, the storage medium SM contains one or more physical memory blocks PB0..n, which are addressed via a physical block address PBACLn. In each of the memory blocks PB0..n are in turn several pages PG0..y organized, which can be read and written individually.
Zu jedem Speicherblock PB0..n gehört eine Beschreibungsstruktur DS, in der das Speichermanagement des Speichercontrollers MC seine Daten zum Verwalten der Pages PG0..y speichert, wie beispielsweise die Zuordnungstabelle AT. Die jeweilige Beschreibungsstruktur DS der physikalischen Speicherblöcke PB0..n umfasst auch die erfinderische TRIM-Maske TM, die TRIM-Bits TBO.i und damit Zeiger auf TRIM- Cluster TPO.i enthält. Dabei ist der jeweilige physikalische Speicherblock PB0..n in mehrere TRIM-Cluster TCO.i unterteilt, wobei ein TRIM-Cluster TCO.i eine oder mehrere Pages PG0..y umfasst, die Daten bzw. Datenfragmente der zu löschenden Datei des Hostsystems HS enthalten. Die Beschreibungsstruktur DS ist vorteilhaft als Teil der Adresszuordnungstabelle AT angeordnet. Each memory block PB0..n has a description structure DS in which the memory management of the memory controller MC stores its data for managing the pages PG0..y, such as the mapping table AT. The respective description structure DS of the physical memory blocks PB0..n also includes the inventive TRIM mask TM, which contains TRIM bits TBO.i and thus pointer to TRIM cluster TPO.i. In this case, the respective physical memory block PB0..n is subdivided into a plurality of TRIM clusters TCO.i, wherein a TRIM cluster TCO.i comprises one or more pages PG0..y, the data or data fragments of the file of the host system HS to be deleted contain. The description structure DS is advantageously arranged as part of the address assignment table AT.
In Fig. 5 ist eine Ausführungsform der erfinderischen TRIM-Maske TM gezeigt. Die TRIM-Maske TM enthält pro TRIM-Cluster TCO.i ein TRIM-Bit TBO.i. Die TRIM- Cluster TCO.i werden über die Position des TRIM-Bits TBO.i in der TRIM-Maske TM identifiziert. Die Anzahl der zu einem TRIM-Cluster TCO.i gehörenden Pages hängt von der Anzahl Pages pro Speicherblock PB0..n und der Länge in Bits der TRIM- Maske TM ab. Hieraus folgend definiert sich der Zeiger auf den assoziierten TRIM- Cluster TPO.i. FIG. 5 shows an embodiment of the inventive TRIM mask TM. The TRIM mask TM contains a TRIM bit TBO.i for each TRIM cluster TCO.i. The TRIM clusters TCO.i are identified by the position of the TRIM bit TBO.i in the TRIM mask TM. The number of pages belonging to a TRIM cluster TCO.i depends on the number of pages per memory block PB0..n and the length in bits of the TRIM mask TM. As a result, the pointer defines the associated TRIM cluster TPO.i.
Ein auf 1 gesetztes TRIM-Bit TBO.i zeigt an, dass die Pages PG0..y des zugehörigen TRIM-Cluster TCO.i beim nächsten Speicherbereinigungsvorgang des physikalen Speicherblocks PB0..n nicht übertragen werden und folglich gelöscht werden bzw. zum Löschen freigegeben werden. Ein auf 0 gesetztes TRIM-Bit TBO.i hingegen veranlasst ein Kopieren der Pages PG0..y des zugehörigen Speicherblockes PB0..n. In Fig. 6 ist der Ablauf der TRIM- Operation zur Bearbeitung des TRIM-Kommandos TR im Speichercontroller MC des Speichermediums SM dargestellt. Nach dem A TRIM bit TBO.i set to 1 indicates that the pages PG0..y of the associated TRIM cluster TCO.i are not transmitted during the next memory cleaning process of the physical memory block PB0..n and are therefore deleted or released for deletion become. On the other hand, a TRIM bit TBO.i set to 0 causes copying of the pages PG0..y of the associated memory block PB0..n. FIG. 6 shows the sequence of the TRIM operation for processing the TRIM command TR in the memory controller MC of the storage medium SM. After this
Empfangen des ATA-Kommandos„TRIM" vom Hostsystem werden die Informationen des ATA-Kommandos eingelesen. Zuerst wird geprüft, ob im Feature Element das Bit 0 auf 1 gesetzt ist, wodurch die Verwendung dieses ATA-Kommandos als TRIM- Kommando festgelegt ist. Receiving the ATA command "TRIM" from the host system, the information from the ATA command is read in. First, it is checked whether bit 0 is set to 1 in the feature element, whereby the use of this ATA command is defined as a TRIM command.
Falls ein TRIM-Kommando gesendet ist, werden alle in der Entry-Liste des TRIM- Kommandos enthaltenen logischen Blockadressen und die jeweiligen Bereichslängen umgesetzt in Speicherblock basierende TRIM-Masken Informationen. Falls darin wenigstens ein kompletter TRIM-Cluster enthalten ist, wird dieser TRIM-Cluster in die TRIM-Maske der Beschreibungs struktur des physikalischen Speicherblocks geschrieben, indem das assoziierte TREVI-Bit des TRIM-Clusters in der TRIM-Maske gesetzt wird. If a TRIM command is sent, all logical block addresses contained in the entry list of the TRIM command and the respective range lengths are converted into memory block based TRIM mask information. If it contains at least one complete TRIM cluster, this TRIM cluster is written into the TRIM mask of the physical memory block descriptor structure by setting the associated TREVI bit of the TRIM cluster in the TRIM mask.
In Fig. 7 ist der Ablauf der Daten- Aktualisierung in den physikalischen In Fig. 7, the flow of data updating is in the physical
Speicherblöcken PB0..n gezeigt. Hierfür wird zuerst ein frisch gelöschter Pufferblock für die Verwendung reserviert. Danach wird die Beschreibungs struktur des zu aktualisierenden Speicherblocks eingelesen. Die neuen Daten der Daten- Aktualisierung werden in den Pufferblock geschrieben, wobei die entsprechenden TRIM-Bits bei dem TRIM-Cluster gelöscht werden, in dem neue Daten geschrieben wurden. Memory blocks PB0..n shown. For this purpose, a freshly deleted buffer block is reserved for use first. Thereafter, the description structure of the memory block to be updated is read. The new data update data is written to the buffer block, with the corresponding TRIM bits cleared at the TRIM cluster where new data was written.
Falls im späteren Verlauf der Daten- Aktualisierung der Pufferblock aufgelöst wird, werden alle Pages, bei denen kein entsprechendes TREVI-Bit in der TRIM-Maske gesetzt ist und die mit neuen Daten aktualisiert sind, in einen neuen physikalischen Speicherblock kopiert. Hingegen werden alle anderen Pages, bei denen ein If, later in the data update, the buffer block is resolved, all pages that do not have a corresponding TREVI bit set in the TRIM mask and that are updated with new data are copied to a new physical memory block. On the other hand, all other pages where one
entsprechendes TRIM-Bit gesetzt ist, nicht in den neuen Speicherblock übertragen. Anschließend erfolgt die Freigabe des alten Speicherblocks zum Löschen. Bezugszeichen corresponding TRIM bit is set, not transferred to the new memory block. Subsequently, the release of the old memory block takes place for deletion. reference numeral
AT Zuordnungstabelle AT assignment table
DS Beschreibungsstmktur des Speicherblocks DS descriptive structure of the memory block
EN Entry EN Entry
EN0..X Entry 0 bis x EN0..X Entry 0 to x
FM Flash- Speicherelemente FM flash memory elements
FS Dateisystem FS file system
HB Hostbus HB host bus
HS Hostsystem HS host system
LB Logischer Datenblock LB logical data block
LB0..X Logischer Datenblock 0 bis x LB0..X Logical data block 0 to x
LBA Logisch Blockadresse LBA logical block address
LBA0..X Logische Blockadresse 0 bis x LBA0..X logical block address 0 to x
LL Logische Ebene LL Logical level
MC Speichercontroller MC memory controller
PB Physikalischer Speicherblock PB Physical memory block
PB0..n Physikalischer Speicherblock 0 bis n PB0..n Physical memory block 0 to n
PBA Physikalische Blockadresse PBA Physical block address
PBA0..n Physikalische Blockadresse 0 bis n PBA0..n Physical block address 0 to n
PG Page PG Page
PGO..y Page 0 bis y PGO..y Page 0 to y
PL Physikalische Ebene PL Physical level
SM Speichermedium SM storage medium
TB TRIM-Bit für TRIM-Cluster TB TRIM bit for TRIM cluster
TBO..i TRIM-Bit für TRIM-Cluster 0 bis i TBO..i TRIM bit for TRIM cluster 0 to i
TC TRIM-Cluster TC TRIM cluster
TCO.i TRIM-Cluster 0 bis i TCO.i TRIM cluster 0 to i
TCS Satz von TREVI-Clustern TCS set of TREVI clusters
TM TREVI-Maske TM TREVI mask
TP Zeiger auf TRIM-Cluster TP Pointer to TRIM cluster
ΤΡΟ..Ϊ Zeiger auf TRIM-Cluster 0 bis i ΤΡΟ..Ϊ Pointer to TRIM cluster 0 to i
TR TREVI-Kommando TR TREVI command
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE112010005870.9T DE112010005870B4 (en) | 2010-11-08 | 2010-11-08 | Method for releasing storage areas that are no longer required on non-volatile storage media |
| PCT/DE2010/075124 WO2012062233A1 (en) | 2010-11-08 | 2010-11-08 | Method for deallocating memory areas no longer needed on non-volatile memory media |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/DE2010/075124 WO2012062233A1 (en) | 2010-11-08 | 2010-11-08 | Method for deallocating memory areas no longer needed on non-volatile memory media |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2012062233A1 true WO2012062233A1 (en) | 2012-05-18 |
Family
ID=44483744
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/DE2010/075124 Ceased WO2012062233A1 (en) | 2010-11-08 | 2010-11-08 | Method for deallocating memory areas no longer needed on non-volatile memory media |
Country Status (2)
| Country | Link |
|---|---|
| DE (1) | DE112010005870B4 (en) |
| WO (1) | WO2012062233A1 (en) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103123609A (en) * | 2013-03-13 | 2013-05-29 | 中国科学院上海微系统与信息技术研究所 | Blocking management method of storer |
| DE102012022728A1 (en) | 2012-11-21 | 2014-05-22 | Unify Gmbh & Co. Kg | A method of controlling a flash memory for mass storage comprised of a communication device connectable to a host, and computer program product for executing the method |
| US9606734B2 (en) | 2014-12-22 | 2017-03-28 | International Business Machines Corporation | Two-level hierarchical log structured array architecture using coordinated garbage collection for flash arrays |
| US9619158B2 (en) | 2014-12-17 | 2017-04-11 | International Business Machines Corporation | Two-level hierarchical log structured array architecture with minimized write amplification |
| US9671964B2 (en) | 2013-01-28 | 2017-06-06 | Fujitsu Technology Solutions Intellectual Property Gmbh | Method of securely erasing a non-volatile semiconductor mass memory, computer system, and computer program product |
| CN118689413A (en) * | 2024-08-29 | 2024-09-24 | 山东云海国创云计算装备产业创新中心有限公司 | Data deletion method and device, storage medium and electronic device |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113867925A (en) * | 2020-06-30 | 2021-12-31 | 龙芯中科技术股份有限公司 | Memory management method, apparatus, device and storage medium |
| CN115113799B (en) * | 2021-03-18 | 2025-05-30 | 慧荣科技股份有限公司 | Host command execution method and device |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008154216A1 (en) * | 2007-06-08 | 2008-12-18 | Sandisk Corporation | Method and system for storage address re-mapping for a memory device |
| US20090010066A1 (en) | 2007-07-02 | 2009-01-08 | Samsung Electronics Co., Ltd. | Flash memory device and method in which trim information is stored in memory cell array |
| US20100211737A1 (en) * | 2006-12-06 | 2010-08-19 | David Flynn | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
-
2010
- 2010-11-08 WO PCT/DE2010/075124 patent/WO2012062233A1/en not_active Ceased
- 2010-11-08 DE DE112010005870.9T patent/DE112010005870B4/en not_active Expired - Fee Related
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100211737A1 (en) * | 2006-12-06 | 2010-08-19 | David Flynn | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
| WO2008154216A1 (en) * | 2007-06-08 | 2008-12-18 | Sandisk Corporation | Method and system for storage address re-mapping for a memory device |
| US20090010066A1 (en) | 2007-07-02 | 2009-01-08 | Samsung Electronics Co., Ltd. | Flash memory device and method in which trim information is stored in memory cell array |
Non-Patent Citations (2)
| Title |
|---|
| FRANK SHU: "Windows 7 Enhancements for Solid-State Drives", MICROSOFT CORPORATION |
| LOUIS GERBARG, FROM WRITE() DOWN TO THE FLASH CHIPS, Retrieved from the Internet <URL:http://www.devwhy.com/blog/2009/8/4/from-write- down-to-the-flash-chips.html> |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102012022728A1 (en) | 2012-11-21 | 2014-05-22 | Unify Gmbh & Co. Kg | A method of controlling a flash memory for mass storage comprised of a communication device connectable to a host, and computer program product for executing the method |
| US9671964B2 (en) | 2013-01-28 | 2017-06-06 | Fujitsu Technology Solutions Intellectual Property Gmbh | Method of securely erasing a non-volatile semiconductor mass memory, computer system, and computer program product |
| DE102013100820B4 (en) * | 2013-01-28 | 2018-05-30 | Fujitsu Technology Solutions Intellectual Property Gmbh | A method for securely erasing a nonvolatile semiconductor mass storage, computer system and computer program product |
| CN103123609A (en) * | 2013-03-13 | 2013-05-29 | 中国科学院上海微系统与信息技术研究所 | Blocking management method of storer |
| CN103123609B (en) * | 2013-03-13 | 2015-07-15 | 中国科学院上海微系统与信息技术研究所 | Blocking management method of storer |
| US9619158B2 (en) | 2014-12-17 | 2017-04-11 | International Business Machines Corporation | Two-level hierarchical log structured array architecture with minimized write amplification |
| US9606734B2 (en) | 2014-12-22 | 2017-03-28 | International Business Machines Corporation | Two-level hierarchical log structured array architecture using coordinated garbage collection for flash arrays |
| CN118689413A (en) * | 2024-08-29 | 2024-09-24 | 山东云海国创云计算装备产业创新中心有限公司 | Data deletion method and device, storage medium and electronic device |
Also Published As
| Publication number | Publication date |
|---|---|
| DE112010005870A5 (en) | 2013-07-25 |
| DE112010005870B4 (en) | 2019-10-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE102018105854B4 (en) | Dynamic resizing of logical memory blocks | |
| DE112010005870B4 (en) | Method for releasing storage areas that are no longer required on non-volatile storage media | |
| DE19782041B4 (en) | A method of performing a continuous overwriting of a file in a non-volatile memory | |
| DE112020000139T5 (en) | NAME SPACES NOT SEQUENTIALLY DIVIDED INTO ZONES | |
| DE60316171T2 (en) | AUTOMATIC WEARING COMPENSATION IN A NON-VOLATILE STORAGE SYSTEM | |
| DE102017104150B4 (en) | Wear compensation in memory devices | |
| DE112020005787T5 (en) | IMPROVED FILE SYSTEM SUPPORT FOR ZONE NAMESPACE STORAGE | |
| DE102008057219B4 (en) | Method of operating a solid state storage system, solid state storage system and computer system | |
| DE69635962T2 (en) | Flash memory mass storage system and method therefor | |
| DE112014006118B4 (en) | Speculative prefetching of data stored in flash memory | |
| DE112020005060T5 (en) | RATE LIMIT FOR TRANSITION ZONES TO OPEN | |
| DE102022101607A1 (en) | HOST MEMORY BUFFER ALLOCATION MANAGEMENT | |
| DE102009034651A1 (en) | Process and method for mapping logical addresses to physical addresses in solid state disks | |
| DE102020112512A1 (en) | Data storage device and operating methods therefor | |
| DE102008036822A1 (en) | Method for storing data in a solid state memory, solid state memory system and computer system | |
| DE102021115374A1 (en) | MITIGATION OF ZONED NAMESPACE USING SUB-BLOCK MODE | |
| EP2923261B1 (en) | Method for controlling a flash memory for mass storage, which is comprised by a communications device that can be connected to a host, and computer program product for carrying out said method | |
| DE202010017613U1 (en) | Data storage device with host-controlled garbage collection | |
| DE102010018765A1 (en) | Storage device and storage method | |
| DE112019005511T5 (en) | KEEP WRITE COMMANDS IN ZONED NAME SPACES | |
| DE112015004873T5 (en) | Processing of removal commands to improve the performance and durability of a storage device | |
| DE112017005782T5 (en) | Queue for storage operations | |
| DE102015012621A1 (en) | Offline deduplication for semiconductor memory devices | |
| DE102009048179A1 (en) | Process and method for a deletion strategy in solid plates | |
| DE112017005955T5 (en) | STORAGE SYSTEM AND METHOD FOR LOWER MEMORY ASSIGNMENT |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10803368 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 112010005870 Country of ref document: DE Ref document number: 1120100058709 Country of ref document: DE |
|
| REG | Reference to national code |
Ref country code: DE Ref legal event code: R225 Ref document number: 112010005870 Country of ref document: DE Effective date: 20130725 |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 10803368 Country of ref document: EP Kind code of ref document: A1 |