Storage system with a flash memory module
AssigneeKabushiki Kaisha Toshiba
InventorHiroshi Sukegawa
Life of this patent
Estimating the term…
Abstract
In a storage system using flash EEPROMs, a memory module is composed of a plurality of memory blocks arranged in units of in-unison erase blocks. Some of the memory blocks are used as management tables storing management information for managing address allocation of each memory block and the number of rewrites for each memory block. A memory controller reads the management information from the management table at the system start-up, and based on the management information, controls the read/write access to each memory block.
Claims18
A storage system having a flash memory module which has a plurality of memory block means, each memory block means comprising flash electrically erasable and programmable ROMs arranged in units of in-unison erase blocks, said storage system comprising:
- write count data memory means for storing write count data to be increased whenever data is rewritten for each of said memory block means;.
- memory management means comprising first memory block means and second memory block means, the first memory block means storing an address allocation table for mapping address allocations of each of said memory block means except the second memory block means and write frequency data which corresponds to the write count data stored in the write count data memory means, the first memory block means having a location that is changeable in said memory management means, and the second memory block means storing an address of the address allocation table of the first memory block means;
- memory controller means for converting a logical address accessed by a host system into a physical address for specifying one of said plurality of memory block means to be accessed based on said address allocation table, and for performing memory control in a manner that reads data at the physical address from said one memory block means of said flash memory module, or writes specified data in said one memory block means corresponding to the physical address;
- and
- swap control means for selecting a memory block means whose write frequency is a relatively low value and swapping said selected memory block means for the one memory block means corresponding to the physical address, if the write frequency data after increasing the write count data for the one memory block means is larger than a specified value, when the host system has required write access to the physical address.
A method of controlling a flash memory module comprising a plurality of memory block means, each memory block means being made of rewritable nonvolatile memory devices arranged in units of in-unison erase blocks, comprising the steps of:
- storing write count data that is updated for each of said memory block means when data is written;
- storing write frequency based on said write count data for each of said memory block means;
- writing specified data into one of said memory block means corresponding to an address specified by a host system;
- selecting a memory block means whose write frequency is relatively low, when said write frequency after an update of said write count data for said memory block means corresponding to the specified address is larger than a specified value when the host system has required write access to the specified address;
- and
- swapping a content at the selected memory block means for a content at said memory block means corresponding to said specified address.
A storage system having a flash memory module which has a plurality of memory block means, each memory block means comprising rewritable nonvolatile memory devices arranged in units of in-unison erase blocks, said storage system comprising:
- write count data memory means for storing write count data to be increased whenever data is rewritten for each of said memory block means, the write count data memory means comprising memory areas formed in each of said memory block means;
- memory management means for storing an address allocation table for mapping an address allocation of each of said memory block means, and for storing write frequency data which is a high-order part of the write count data stored in the write count data memory means for each of said memory block means;
- memory controller means for converting a logical address accessed by a host system into a physical address for specifying said memory block means to be accessed based on said address allocation table, and for performing memory control in a manner that reads data at the physical address from said memory block means of said flash memory module, or writes specified data in said memory block means corresponding to the physical address;
- and
- swap control means for selecting a memory block means whose write frequency is a relatively low value and swapping said selected memory block means for the memory block means corresponding to the physical address, if the write frequency data after increasing the write count data for the memory block means corresponding to the physical address is larger than a specified value, when the host system has required write access to the physical address.
A semiconductor memory device comprising:
- a flash EEPROM module for providing a data area including a plurality of first memory blocks and a management area including at least one second memory block, each of said plurality of first memory blocks having write count data, and said management area storing write frequency data which shows a write frequency for each of said plurality of first memory blocks;
- controller means for controlling access to said flash EEPROM module, such as a read/write operation, said controller means increasing the write count data stored in a first one of the first memory blocks when a write operation is requested to the first one of the first memory blocks, and updating the write frequency data corresponding to the first one of the first memory blocks only if the write count data is equal to a predetermined value when said controller means increases the write count data;
- and
- swap control means for selecting a second one of the first memory blocks whose write frequency is a relatively low value and swapping the selected second one of the first memory blocks for the first one of the first memory blocks, if the write frequency data after increasing the write count data for the first one of the first memory blocks is larger than a specified value.
A semiconductor memory device comprising:
- a flash memory module for storing user's data, said flash memory module comprising a first memory block to which data has been written n times and a second memory block to which data has been written m times (a value of m is not equal to a value of n), said first memory block and said second memory block being arranged in memory areas of equal size;
- means for determining a relationship between the value m and the value n;
- swapping means for swapping contents of said first memory block with contents of said second memory block and for swapping a logical address of said first memory block with a logical address of said second memory block, when the determining means determines that the value of m is larger than the value of n by a .predetermined amount.
A method of using a flash memory module in a semiconductor memory device effectively, said flash memory module comprising at least two memory blocks of equal size, which include a first memory block to which data has been written n times and a second memory block to which data has been written m times, said method comprising the steps of:
- receiving a request for writing data to the first memory block;
- comparing a value of n with a value of m;
- and
- swapping a content and logical address of the first memory block with a content and a logical address of the second memory block if a value of (n-m) is larger than a predetermined value.
Dependencies are inferred from the claim text.