Monitoring entropic conditions of a flash memory device as an indicator for invoking erasure operations
Microsoft Corp.This patent has been asserted by Microsoft against Motorola.
Last updated: about 1 year ago
Description
PROBLEM TO BE SOLVED: To prevent the rewrite of the entire block from being frequently generated and to prevent the decline of a data write speed.
SOLUTION: Plural blocks which are data erasure units are divided into a primary block group, a secondary block group and a spare block n. At the time of a data write request to a primary block a1, in the case that all sectors s1∼sj are dirty (already written), a free secondary block in the secondary block group is used as an extension block a2. In the case that even all the sectors s1∼sj of the secondary block a2 become dirty, only the valid sector data of the primary and secondary clocks rearranged and rewritten to a new primary block n (a3) using the spare block n and an unused sector area is secured. Then, the already rearranged primary block a1 is turned to the spare block n by erasing contents, the already rearranged secondary block a2 is also returned to the secondary block group by erasing the contents and a block rewrite generation frequency is lowered.
Last updated: about 1 year ago
Description
A semiconductor mass storage system can be substituted for a rotating hard disk. The system avoids an erase cycle each time information stored in the mass storage is changed by programming any changed data file into an empty mass storage block rather than over itself. Periodically the mass storage will need to be cleaned up. Even use of all blocks is provided by using several flags (622-628), a map to correlate a logical address of a block to a physical address (630) and a count register (620) for each block. Flags indicate defective blocks (624), used blocks (626), old versions of a block (628), and erase inhibit (622). A counter (620) is used to determine the amount a block has been erased and written. Reading is performed by providing a logical address and sequentially comparing it with the mapped logical addresses.
Last updated: about 1 year ago
Description
A flash memory system segregates overhead data from user data so that overhead data may be addressed, programmed and erased independently from user data. The non-volatile memory medium of a flash memory system is mapped into a plurality of separate and separately addressable memory blocks that are independently programmable and independently erasable, including Dedicated Overhead Blocks and Dedicated Data Blocks. The Dedicated Overhead Blocks are mapped according to a plurality of distinguishably addressable segments. User Data defined by a VLBA is stored in a Dedicated Data Block within the flash memory. Successively generated sets of Overhead Data are stored in respective segments in the Dedicated Overhead Blocks. When a Dedicated Overhead Block is designated for erasure, any current overhead segments are consolidated and moved to a new Dedicated Overhead Block., and the full or obsolete block is erased.
Last updated: about 1 year ago
Description
A flash memory system segregates overhead data from user data so that overhead data may be addressed, programmed and erased independently from user data. The non-volatile memory medium of a flash memory system is mapped into a plurality of separately addressable memory blocks that are independently programmable and independently erasable, including a plurality of Dedicated Overhead Blocks and Dedicated Data Blocks. The Dedicated Overhead Blocks are mapped according to a plurality of distinguishably addressable segments, and include a first Dedicated Overhead Block and a second Dedicated Overhead Block. User Data defined by a VLBA is stored in a Dedicated Data Block within the flash memory.
#263Method and system for file system management using a flash-erasable, programmable, read-only memory
Applies to Claims 1
Last updated: about 1 year ago
Description
A method and system for memory management of a block-erasable flash-EProm. The system comprises a FEProm manager and a file system. The FEProm manager manages memory allocation and deallocation of the FEProm. The file system is a hierarchical directory system and uses the FEProm manager to allocate and deallocate memory. In a preferred embodiment, the FEProm manager of the present invention provides for allocation of free space, deallocation of allocated space, and reclamation of deallocated space in a block-erasable FEProm. Each block of the FEProm contains a block allocation structure, data regions, and free space. The block allocation structure contains an allocation array which describes the allocation of the data region.
Last updated: about 1 year ago
Description
A solid state memory disk that stores data on a sector basis is described. The solid state disk includes an array of FLASH memory devices, which store the sectors of data. Each block of memory within the FLASH array includes data space for storing many sectors of data and a block sector translation table. The block sector translation table identifies each sector of data stored in the block's data space by a sector number. The solid state disk also includes a controller. Among its many responsibilities, the controller manages the writing of sector data into the array and the reading of sectors of data from the array. The controller responds to a write request by seeking an earlier version of the sector which has a logical sector number equal to the sector's sector number and marking that sector dirty. Afterward, the controller allocates free memory space for the sector of data. The sector of data is then written into the allocated memory space. The controller reads sectors of data by seeking a sector header translation table to convert sector numbers into physical addresses.
#261Method and apparatus for cleaning up a solid state memory disk storing floating sector data
Applies to Claims 1
Last updated: about 1 year ago
Description
A method of cleaning-up a solid state memory disk is described. Clean-up begins with the selection of a focus block for clean-up. Next, on a sector-by-sector basis, memory is allocated within a destination block to store valid sectors of user data. User data is then copied into the destination block on a sector-by-sector basis. Afterward, the focus block is erased, converting dirty sectors into free memory without loss of valid sectors of data.
#260Disk emulation for a non-volatile semiconductor memory utilizing a mapping table
Applies to Claims 1
Last updated: about 1 year ago
Description
A non-volatile semiconductor memory that is erased in blocks is described. The non-volatile semiconductor memory includes an active block for storing first data and a reserve block for storing second data. The second data is a copy of the first data. The copy is made during a clean-up operation prior to erasure of the active block. The non-volatile semiconductor memory also includes a mapping table for mapping a logical address of an allocation unit to a physical address of a sector within the non-volatile semiconductor memory.
#259Method of performing clean-up of a solid state disk while executing a read command
Applies to Claims 1
Last updated: about 1 year ago
Description
A method of executing states of a clean-up state machine while executing a command from a host CPU to read a sector of data stored within a memory array. First, a number of sectors of data are copied from the memory array into a sector buffer. Then, while the host CPU is reading sectors from the sector buffer, a number of states of a clean-up state machine are executed to aid in the conversion of invalid user data into free memory. Also described is a solid state memory disk that converts invalid sectors of data to free memory while executing a read command from a host CPU.
Last updated: about 1 year ago
Description
A method of allocating free physical memory in a solid state memory disk for a sector of data of a given size is described. Allocation begins by determining whether sufficient free memory remains in the block to which the previous sector of data was written. If there is not sufficient free memory remaining, then selection of another block to allocate the sector of data begins. The selection is based on the sum of the amount of free memory in a selected block and one of the following: 1) the amount of invalid data in the block; 2) the cycle count for the block; 3) the amount of invalid data as compared to a maximum amount of invalid data for all non-volatile memory devices associated with the block; and 4) the number of blocks already allocated to all non-volatile memory devices associated with the block. Afterward, the block with the greatest amount of available memory is selected to store the sector of data.
Last updated: about 1 year ago
Description
A system of Flash EEprom memory chips with controlling circuits serves as non-volatile memory such as that provided by magnetic disk drives. Improvements include selective multiple sector erase, in which any combinations of Flash sectors may be erased together. Selective sectors among the selected combination may also be de-selected during the erase operation. Another improvement is the ability to remap and replace defective cells with substitute cells. The remapping is performed automatically as soon as a defective cell is detected. When the number of defects in a Flash sector becomes large, the whole sector is remapped. Yet another improvement is the use of a write cache to reduce the number of writes to the Flash EEprom memory, thereby minimizing the stress to the device from undergoing too many write/erase cycling.
#256Method of controlling clean-up of a solid state memory disk storing floating sector data
Applies to Claims 1
Last updated: about 1 year ago
Description
A method of initiating and controlling background clean-up of a solid state memory disk is described. Background clean-up begins by enabling a clean-up state machine after completion of a write command. Next, a next state pointer is set to an initial state for evaluating whether clean-up is necessary. Actual execution of background clean-up begins when the processing unit allocates execution time for clean-up. As each state is executed, the next state pointer is reset so that it points to the next clean-up state to be executed. States pointed to by the next state pointer are executed until a block of the solid state memory disk is cleaned-up. Also described is a method of automatically performing foreground clean-up of a solid state memory disk. A method of forcing clean-up is also described.
#255Method and system for performing clean-up of a solid state disk during host command execution
Applies to Claims 1
Last updated: about 1 year ago
Description
A system and method for converting invalid user data within a solid state disk into free memory during time allotted to execute a host command from a standard interface. Clean-up states are part of a clean-up state machine which controls the conversion of the invalid user data into free memory. Whenever a command interrupt is received from the standard interface, a watchdog timer is set to the maximum time allotted to execute the command. The command is executed first, and then a number of clean-up states to be executed in the remaining time is calculated. A counter is set equal to that number. Thereafter, a clean-up state is executed and the counter is decremented. Execution of clean-up states and decrementing of the counter continues until either the counter indicates all states have been executed or the timer indicates that all allotted time has expired. In one embodiment, the solid state disk is included in a computer system having a central processing unit, and the solid state disk includes a flash memory array and a memory array controller.
Last updated: about 1 year ago
Description
A semiconductor mass storage system and architecture can be substituted for a rotating hard disk. The system and architecture avoid an erase cycle each time information stored in the mass storage is changed. (The erase cycle is understood to include, fully programming the block to be erased, and then erasing the block.) Erase cycles are avoided by programming an altered data file into an empty mass storage block rather than over itself as hard disk would. Periodically, the mass storage will need to be cleaned up. Secondly, all blocks in the mass storage are used evenly. These advantages are achieved through the use of several flags, a map to correlate a logical address of a block to a physical address of that block and a count register for each block. In particular, flags are provided for defective blocks, used blocks, old version of a block, a count to determine the number of times a block has been erased and written and erase inhibit flag.
#253 August 9, 1994 Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
Applies to Claims 1
Last updated: about 1 year ago
Description
A process for releasing sectors of a flash EEPROM memory array in which data furnished by a host computer is stored in compressed form so that memory space used for the sectors may be used to store new data. The flash EEPROM memory array includes a plurality of individually erasable blocks and stores sectors of data in such blocks with a header providing a logical sector number, an indication of validity of data stored. The process stores a list of files and sectors which have been deleted by a host computer in a first table in host memory, stores a value indicating an amount of free space remaining in the flash EEPROM memory array, provides a first signal to the host computer when the value indicating the amount of free space falls below a first predetermined value to indicate that sectors listed in the first table should be released, and provides a second signal when the value indicating the amount of free space falls below a second predetermined value to terminate writes to and erasures of the array.
#252Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array
Applies to Claims 1
Last updated: about 1 year ago
Description
A method for reliably storing management data in a flash EEPROM memory array, which array is divided into a plurality of individually-erasable blocks of memory cells and in which each of the blocks of memory cells has stored thereon data regarding management of the array during a cleanup process in which valid data stored in a first block is written to another block of the array, and then the first block is erased. The process includes the steps of storing data regarding management of the array from the first block in random access memory and, in an enhanced process, on another block before erasure of the first block. The data may then be rewritten to the first block after the erase. With the enhanced process, a special identification is provided to the data regarding the management of the array stored on another block which is outside the normal identification range for the host computer so that the specially identified data is not lost during a power loss during an erase process and may be detected after power is restored to the system.
Last updated: about 1 year ago
Description
A method and apparatus for partitioning a flash memory device (20) is provided. The flash memory device includes a plurality of partitions, (210, 215, 220, 225, 230), each partition able to be read, written, or erased simultaneously with the other partitions.
#178METHOD AND APPARATUS FOR PERFORMING ERASE OPERATIONS TRANSPARENT TO A SOLID STATE STORAGE SYSTEM
Applies to Claims 1
Last updated: about 1 year ago
Description
In a digital system (200) having a host (202), a controller device (204) and at least one nonvolatile memory integrated circuit (206), such as a flash memory chip, a method and apparatus is disclosed for storing host provided information in the nonvolatile memory under the direction of the controller.
Last updated: about 1 year ago
Description
Disclosed is a circuit and method for utilizing FLASH devices as nonvolatile storage elements. Information is modified by adding a new block of data at another location in the memory rather than writing over the outdated information. An address pointer locates the latest information for each data file.


