KR20100055201A - Data programming device, and data programming method - Google Patents
Data programming device, and data programming method Download PDFInfo
- Publication number
- KR20100055201A KR20100055201A KR1020080114167A KR20080114167A KR20100055201A KR 20100055201 A KR20100055201 A KR 20100055201A KR 1020080114167 A KR1020080114167 A KR 1020080114167A KR 20080114167 A KR20080114167 A KR 20080114167A KR 20100055201 A KR20100055201 A KR 20100055201A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- programming
- host
- data
- control unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
The present invention relates to a flash memory device and a method for performing wear leveling using a programming number instead of an erase count, simplifying a structure of a control unit for controlling a memory cell, and reducing a process and time required for data programming. will be.
Description
The present invention relates to a flash memory device and a data writing method.
BACKGROUND With the development of semiconductor technology, flash memory devices using flash memory have tended to replace conventional mechanical hard disks.
The flash memory cannot perform an in-place update such as a hard disk and requires a process of erasing a block to be written beforehand before recording data.
In addition, each block of flash memory has a limit that can be erased. In the case of a MLC (MultiLevel Cell) chip, the flash memory has a recordable number of times of about 10,000 blocks, and a SLC (Single Level Cell) chip does not exceed 100,000. Therefore, the flash memory searches for blocks with fewer erase counts by referring to the erase count for each block, erases the blocks with fewer erase counts, and then programs (writes) data transmitted from the host, and after programming the data, Has a process of increasing the erase count for the programmed block.
The wear leveling method for equally erasing each block constituting the flash memory is divided into a dynamic wear leveling method and a static wear leveling method.
Dynamic Wear Leveling is a method in which a controller of a flash memory selects a block having the least erase cycle in the flash memory when a host data write request occurs.
Static wear leveling is a method in which the flash controller copies data from the least erased block in flash memory to the block with the highest erase count.
Here, the dynamic wear leveling method and the static wear leveling method,
-Before writing data to the flash memory, the controller of the flash memory should refer to the mapping table once to level out wear,
After writing data to flash memory, the mapping table must be updated to count +1 erases.
That is, every time data is written to flash memory, the mapping table must be referenced twice.
Such a writing process increases the process and time required to write data to the flash memory, and also complicates the controller structure of the flash memory.
Accordingly, an object of the present invention is to provide a flash memory device and a data writing method that not only reduce the time required for data writing but also simplify the structure of a control unit for controlling each block constituting a memory cell.
The above object is to form a mapping table having at least one memory cell composed of a plurality of blocks, the number of programming for each block, according to the present invention, and when programming for a block to be written, A control is performed by updating a programming number for a block and performing wear leveling on each block based on the programming number for each block.
According to the present invention, the object of the present invention is to select a minimum block having the least number of data programming, among a plurality of blocks constituting each of the at least one memory cell, and in response to a data write request from a host. After updating the number of programming, programming the data in the minimum block is achieved.
Therefore, the present invention simplifies the structure of the control unit for controlling the memory cell and reduces the time required for data programming.
Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
The flash memory device described herein may be a flash memory device using a NAND gate or a NOR gate. In addition, the flash memory device described in the present invention may be a flash memory device having a chip according to an SLC (Single Level Cell) method or a MLC (Multi Level Cell) method.
The present invention is not affected by the type of memory cell used. Therefore, the memory cell referred to in the present invention may use a flash memory chip of a NAND gate or a NOR gate method, and likewise, a memory chip according to the SLC method or a chip according to the MLC method may be applied. Do not.
In the following description, a controller for controlling a memory cell is referred to as a controller, and a "module" or a "unit" may be used as a suffix to components constituting the controller.
Components used in the present specification, and suffixes thereof are given only in consideration of ease of preparation of the present specification, and the "module" and "unit" may be used interchangeably.
The "flash memory device" described herein may be implemented as a solid state disk (SSD) or may serve as a nonvolatile storage medium in an embedded device. Accordingly, the flash memory device described herein may be a personal computer, a server, a notebook computer, a personal digital assistant (PDA), a personal media player (PMP), a video game machine, a mobile phone, and various devices for storing data. Can be applied to
1 is a conceptual diagram illustrating a connection relationship between a flash memory device and a host according to the present invention.
Referring to FIG. 1, the
First, when the
Logical Block Addressing (LBA) addressing refers to an addressing system that assigns a serial number to the first sector of a hard disk drive and then assigns the next serial number to the next sector to form an address. This specification will be described based on the currently widely used LBA address system.
When the
Meanwhile, the
The
The
In this case, the entire mapping table may change the address PBA of the physical block corresponding to the logical address LBA of the
Generally, before programming each
When programming the block corresponding to the LBA, the
2 is a block diagram of a flash memory device according to an embodiment of the present invention.
2, a flash memory device according to the present invention includes a
One or
Each
The physical address PBA corresponds 1: 1 with the logical address LBA on the
The
In addition, the
The
The
In addition, the
At this time, the
For example, when the
That is, the
Perform wear leveling around the highest wear memory cell (e.g., "140a"), or
Wear leveling can be performed for all
Throughout the present invention, wear leveling may be performed for individual memory cells (eg, reference numeral “140a”) or for all
Preferably, the
In this case, the minimum block is,
-The block with the least number of programming,
Unused blocks, and
Blocks with fewer programming times than the average value for the number of programming may correspond.
In this case, since the number of programming means which data has been written in which block, the
Therefore, the
In this case, the mapping table referenced by the
Each
The
3 shows a data recording method according to the present invention, and FIG. 4 shows a conventional data recording method for comparison with the present invention.
First, referring to FIG. 3, the data writing method according to the present invention refers to the number of programming for each block constituting a memory cell, unlike a general wear leveling method. The number of programming refers to the number of times data is written to the block, which corresponds to the important feature that distinguishes the present invention from the conventional data recording method which refers to the number of times of erasing the block (number of erases) before writing the data to the block. .
As the present invention uses the number of programming for wear leveling, the data recording method proposed by the present invention uses a mapping table that is different from the general wear leveling method.
The mapping table according to the present invention has a programming number for each block constituting a memory cell. Unlike the erase count, the programming count can be updated before programming the data into the block.
The data recording method according to the present invention finds the minimum block with the least programming with reference to the number of programming, and after processing +1 the programming number for the minimum block, updates the mapping table in which the programming number for the minimum block is recorded.
That is, in the data writing method according to the present invention, for the data write command of the host, the minimum block is selected with reference to the number of programming, the number of programming for the minimum block is updated, and the programming command is assigned to each
Next, referring to FIG. 4, the conventional data writing method performs wear leveling by referring to the erase count of each block constituting each of the
In the conventional data recording method, a block having a small erase count is selected as a recording target block with reference to the erase count, and a programming command is executed for the recording target block. However, the conventional wear leveling method transmits a programming command for a block to be written, and updates the erase count of the mapping table when programming of the block is completed. Therefore, in the conventional wear leveling method using the erase count, the process of writing a host's write command takes longer than that of the present invention, and the structure of the control unit that controls the memory cell is increased as the process increases.
5 shows a structure of a mapping table according to the present invention, and FIG. 6 shows a conventional mapping table structure compared with the present invention.
First, referring to FIG. 5, the mapping table according to the present invention includes programming of logical addresses LBA0 to LBAn of a
The logical address of the
The physical addresses PBA0 to PBAn represent addresses of respective blocks (for example,
When the MLC type flash memory having a large storage capacity per unit area and low cost constitutes each
Next, referring to FIG. 6, although the conventional mapping table also has a host address and a physical address, the physical address for each block has a structure stored in association with the erase count, and this structure is large compared with the present invention. Causes a difference.
When the wear level is equalized by using the erase count, the flash memory device processes programming for the block to be written, and updates the erase count by +1 in the mapping table. Therefore, in the conventional data recording method using the mapping table according to FIG. 5, a processing step is further added compared to the present invention which performs programming immediately after +1 programming times, and the mapping table is referred to twice.
When data is written using the erase count, the conventional flash memory device needs to refer to the mapping table once for leveling wear, and to refer again after programming the data. That is, the structure and processing steps of the
7 shows a flowchart according to an example of the present invention.
First, the
Next, when the command provided from the
-Selecting a block having the smallest number of data writes as the minimum block by comparing the number of data writes for each block; and
Obtaining a mean value for the number of data writes for each block, specifying a plurality of blocks having a write count less than the average value as the minimum block, and selecting one of the minimum blocks.
Meanwhile, the minimum block is determined based on the
That is, the
The
The
Unlike a conventional flash memory device, the
In addition, although the preferred embodiment of the present invention has been shown and described above, the present invention is not limited to the specific embodiments described above, but the technical field to which the invention belongs without departing from the spirit of the invention claimed in the claims. Of course, various modifications can be made by those skilled in the art, and these modifications should not be individually understood from the technical spirit or the prospect of the present invention.
1 is a conceptual diagram of a connection relationship between a flash memory device and a host according to the present invention;
2 is a block diagram of a flash memory device according to an embodiment of the present invention;
3 shows a data recording method according to the present invention, and FIG. 4 shows a conventional data recording method for comparison with the present invention;
5 shows the structure of a mapping table according to the present invention, FIG. 6 shows a conventional mapping table structure compared with the present invention, and
7 shows a flowchart according to an example of the present invention.
* Description of the symbols for the main parts of the drawings *
100: flash memory device 110: host interface unit
120: control unit 121: FTL processing unit
130: memory interface unit 140: memory cell
Claims (19)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080114167A KR20100055201A (en) | 2008-11-17 | 2008-11-17 | Data programming device, and data programming method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080114167A KR20100055201A (en) | 2008-11-17 | 2008-11-17 | Data programming device, and data programming method |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100055201A true KR20100055201A (en) | 2010-05-26 |
Family
ID=42279718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080114167A KR20100055201A (en) | 2008-11-17 | 2008-11-17 | Data programming device, and data programming method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20100055201A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140057082A (en) * | 2012-11-02 | 2014-05-12 | 삼성전자주식회사 | Non-volatile memory system and host communicating with the same |
US8996786B2 (en) | 2011-01-28 | 2015-03-31 | SK Hynix Inc. | Nonvolatile memory system and block management method |
CN113253925A (en) * | 2021-04-30 | 2021-08-13 | 新华三大数据技术有限公司 | Method and device for optimizing read-write performance |
-
2008
- 2008-11-17 KR KR1020080114167A patent/KR20100055201A/en not_active Application Discontinuation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996786B2 (en) | 2011-01-28 | 2015-03-31 | SK Hynix Inc. | Nonvolatile memory system and block management method |
KR20140057082A (en) * | 2012-11-02 | 2014-05-12 | 삼성전자주식회사 | Non-volatile memory system and host communicating with the same |
CN113253925A (en) * | 2021-04-30 | 2021-08-13 | 新华三大数据技术有限公司 | Method and device for optimizing read-write performance |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240071485A1 (en) | Lifetime mixed level non-volatile memory system | |
US9520992B2 (en) | Logical-to-physical address translation for a removable data storage device | |
US8250286B2 (en) | Block management method, and storage system and controller using the same | |
JP5728672B2 (en) | Hybrid memory management | |
US9753847B2 (en) | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping | |
US8001317B2 (en) | Data writing method for non-volatile memory and controller using the same | |
CN110955384B (en) | Data storage device and non-volatile memory control method | |
KR100974215B1 (en) | Solid State Storage System and Controlling Method thereof | |
KR101086876B1 (en) | Solid State Storage System For Controlling of Reserved Area Flexibly and Method of Controlling the Same | |
TW201842444A (en) | Garbage collection | |
US8296504B2 (en) | Data management method and flash memory storage system and controller using the same | |
US20100042775A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
US10884669B2 (en) | Controller, operation method of the controller and memory system | |
JP2012519899A (en) | Select memory block | |
KR20090077538A (en) | Semiconductor memory devices and wear leveling methods thereof | |
KR20100012938A (en) | Solid state storage system with wear leveling and controlling method thereof | |
US8892816B1 (en) | System and method for writing data to a memory | |
US8423707B2 (en) | Data access method for flash memory and storage system and controller using the same | |
KR20100055201A (en) | Data programming device, and data programming method | |
KR20160119607A (en) | Data storage device and operating method thereof | |
CN111309642B (en) | Memory, control method thereof and memory system | |
KR20100062191A (en) | Flash device and flash device control mehtod | |
KR20110096829A (en) | Semiconductor storage device and control method of the same | |
KR20100068905A (en) | Flash device and flash device control mehtod | |
KR20090113624A (en) | Operating a Solid State Drive |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |