US9465730B2 - Flash memory device - Google Patents
Flash memory device Download PDFInfo
- Publication number
- US9465730B2 US9465730B2 US13/461,171 US201213461171A US9465730B2 US 9465730 B2 US9465730 B2 US 9465730B2 US 201213461171 A US201213461171 A US 201213461171A US 9465730 B2 US9465730 B2 US 9465730B2
- Authority
- US
- United States
- Prior art keywords
- block
- value
- updated
- updated value
- values
- 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.)
- Active, expires
Links
- 230000008901 benefit Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Definitions
- the present invention relates to a flash memory device.
- a flash memory device manages a memory region in blocks to shorten the time for reading data (refer to, for example, Japanese Laid-Open Patent Publication No. 9-134312).
- a block management value is added to each block.
- the block management value is information indicating whether the corresponding block is in a used state (active state) or unused state.
- a block management value is formed by a four-digit number of the hexadecimal system. More specifically, “$1111” is allocated as the block management value in an active state, and “$FFFF” is allocated as the block management value in a non-used state. In the description hereafter, a number following “$” is a hexadecimal number.
- FIG. 4 shows a first block in an active state and a second block in an unused state.
- the two blocks each include first to nth data areas A 1 to An, which store data.
- the data areas A 1 to An in the unused second block are all empty and do not include data.
- updated values are sequentially written to the first to nth data areas A 1 to An of the first block. This reduces the empty data areas. Then, as shown in the lower part of FIG.
- the block management value of the second block is rewritten from “$FFFF”, which indicates an unused state, to “$1111”, which indicates an active state, and the updated value is copied to the first data area A 1 of the second block. Subsequently, the data stored in the first block is completely erased, and the block management value is rewritten from “$1111”, which indicates the active state to “$FFFF”, which indicates the unused state.
- the updated value may be renewed.
- the renewed updated value is written to the first data area A 1 of the second block.
- the flash memory device may be reset when its power supply is temporarily deactivated. In this case, the first block is not switched to an unused state. Thus, when the power supply is activated again during the resetting, two blocks would be in an activate state, and the updated value becomes unknown.
- the true updated value is that of the second block.
- the flash memory unit includes a data region that stores data.
- the memory control unit forms a plurality of blocks, including a first block and a second block, in the data region of the flash memory unit.
- the memory control unit writes to the first block an updated value of the data and a first block management value indicating whether the first block is in a used state.
- the memory control unit writes the updated value of the data and the first block management value to the first block.
- the memory control unit copies the updated value of the first block to the second block and writes a second block management value to the second block.
- the memory control unit sets and writes a plurality of different block management values, including the first and second block management values, respectively, to the plurality of blocks based on a predetermined rule.
- the memory control unit reads a true updated value from one of the plurality of blocks based on the plurality of block management values.
- FIG. 1 is a diagram showing the configuration of a flash memory device
- FIG. 2 is a memory map showing blocks and their block management values
- FIG. 3( a ) is a memory map showing first and second blocks when an updated value is renewed
- FIG. 3( b ) is a memory map showing the first and second blocks when the flash memory device is reset during the task of FIG. 3( a ) ;
- FIG. 4 is a memory map showing blocks in the prior art.
- FIGS. 1 to 3 One embodiment of a flash memory device according to the present invention will now be described with reference to FIGS. 1 to 3 .
- the flash memory device includes a memory control unit 11 and a flash memory unit 15 , which is a non-volatile memory.
- the memory control unit 11 uses a data region of the flash memory unit 15 to manage updated values.
- the memory control unit 11 recognizes an updated value in accordance with information from an external device (not shown).
- the data region of the flash memory unit 15 is divided into a plurality of blocks B 1 to Bn.
- the blocks B 1 to Bn respectively, include first to nth block management areas and first to nth data areas A 1 to An.
- a block management value is formed by a four-digit number of the hexadecimal system. More specifically, “$1111” to “$111F” are allocated as the block management value in an active state, and “$FFFF” is allocated as the block management value in a non-used state. In this example, “F” represents an initial state in which no information is added. In the same manner as the block management value, an updated value is formed by a number having a plurality of digits in the hexadecimal system.
- the data areas A 1 to An have the same data capacity.
- the memory control unit 11 writes “$FFFF” as the block management value in each block management area to indicate an unused state.
- the memory control unit 11 when recognizing an updated value, the memory control unit 11 writes the updated value to the first data area A 1 of the first block B 1 and rewrites the block management value stored in the first block management area from “$FFFF”, which indicates an unused state, to “$1111”, which indicates an active state. In the same manner, the memory control unit sequentially writes updated values to the second to nth data values A 2 to An. Old updated values are not erased. Further, the first block management value stored in the first block management area is held as “$1111”.
- the memory control unit 11 when an updated value is written to the nth data area An of the first block B 1 , the memory control unit 11 rewrites the block management value stored in the second block management area of the second block B 2 from “$FFFF”, which indicates an unused state, to “$1112”, which indicates an active state.
- the second block management value of “$1112”, which is stored in the second block management area of the second block B 2 and indicative of an active state, is greater by “1” than the first block management value of “$1111”, which is stored in the first block management area of the first block B 1 and indicative of an active state.
- the memory control unit 11 copies the updated value of the first block B 1 to the first data area A 1 of the second block B 2 . Then, the memory control unit 11 erases the data stored in the first block B 1 and rewrites the first block management value stored in the first block management area from “$1111”, which indicates an active state, to “$FFFF”, which indicates an unused state.
- the memory control unit 11 rewrites the block management value stored in the third block management area of the third block B 2 from “$FFFF”, which indicates an unused state, to “$1113”, which indicates an active state. Further, the memory control unit 11 copies the updated value of the second block B 2 to the first data area A 1 of the third block B 3 . Then, the memory control unit 11 erases the data of the second block B 2 and rewrites the second block management value stored in the second block management area from “$1112”, which indicates an active state, to “$FFFF”, which indicates an unused state.
- the memory control unit writes updated values up to an n ⁇ 1th data area An-1 of the first block B 1 .
- this updated value is written to the second block B 2 .
- the first and second data areas A 1 and A 2 of the second block B 2 are used.
- the memory control unit 11 erases the data stored in the first block B 1 and rewrites the block management value stored in the first block management area from “$1111”, which indicates an active state, to “$FFFF”, which indicates an unused state.
- the block management value of “$FFFF”, which indicates an unused state is written to the block management value of the certain block.
- the flash memory device may be reset when its power supply is temporarily deactivated. For example, in the case shown in the lower part of FIG. 2 , the rewriting of the block management value has been completed for the second block B 2 but not for the first block B 1 . Thus, two blocks are in active states.
- the block management values of the first to nth blocks B 1 to Bn are set with sequential numbers as described above.
- the memory control unit 11 reads the updated value based on the greatest one of the block management values. For example, when the first block management value of “$1111” is written to the first block management area of the first block B 1 and the second block management value of “$1112” is written to the second block management area of the second block, the second block management value of “$1112” is greater than the first block management value of “$1111”.
- the memory control unit 11 reads the updated value of the second block B 2 , which corresponds to the second block management value of “$1112”.
- the memory control unit 11 determines that the first block management value of “$1111” is greater than the nth block management value of “$111F”.
- the updated value of the first block B 1 when the updated value of the first block B 1 is being copied to the second block B 2 , the updated value may be renewed.
- the renewed updated value is referred to as a true updated value.
- the memory control unit 11 writes the true updated value to the second block B 2 .
- the true updated value of “$5391” is written to the second block B 2 .
- the memory control unit 11 when reading the updated value after the power supply is activated again, the memory control unit 11 first reads the updated value of “53FF” from the second block B 2 based on the greater one of the first and second block management values of the first and second block management areas.
- the memory control unit 11 determines that the flash memory device has been reset when copying the updated value and complements the digits of “F” with the updated value of the first block B 1 .
- the memory control unit 11 reads the updated value in a correct order even when two blocks are indicated as being in an active state.
- a non-renewed updated value that differs from the true updated value is prevented from being erroneously read from the first block B 1 . This ensures that the true updated value is read.
- the present embodiment has the advantages described below.
- the first to nth block management values stored in the first to nth block management areas are set as different values that gradually increase. More specifically, the first block management area of the first block B 1 stores the first block management value of “$1111”, and the first block management area of the second block B 2 stores the second block management value of “$1112”. Thus, even when there is more than one block in an active state, the updated value of the block having a greater block management value, namely, the second block B 2 in the above example, is read. This allows for the true updated value to be read.
- the renewed true updated value is written to the second block B 2 .
- the updated value of the second block B 2 is read.
- the updated value of the first block B 1 is read to complement regions to which the updated value has not been copied.
- the first and second digits of the updated value in the second block B 2 are the regions in which copying has not been completed, and the updated value of the first block B 1 is used for these regions.
- the true updated value can be read even when the flash memory device is reset after copying the renewed region (third digit in FIG. 3( b ) ).
- the first block management value indicative of an active state and stored in the first block management area of the first block B 1 is rewritten to a block management value indicating an unused state, and the data of the first block B 1 is erased. Accordingly, only one block is normally in an active state. This reduces the number of processes that compare the block management values.
- the relationship of the first and second block management values stored in the first and second block management areas is determined with the first digit. Instead, other digits may be sequentially increased in sequential numbers for the blocks.
- the first to nth block management values do not have to be sequential numbers as long as they increase in order.
- the first to nth block management values may be increased by two, such as “$1111”, “$1113”, “$1115”, and so on.
- the first to nth block management values may be set to sequentially decrease. For example, when the block management value of “$111F” is set to the first block management area, the block management value of “$111E” is set to the second block management area. In this manner, when sequentially decreasing the block management value, the block management values do not have to be sequential numbers as previously mentioned. In this case, when the flash memory device is reset and then there is more than one block in an active state, the memory control unit 11 reads the updated value from the second block B 2 having the smaller block management value. This allows for the true updated value to be read in the same manner as the above embodiment.
- the block management values may be sequentially increased or decreased.
- the first block management value of the first block management area may be set to “$1111”
- the second block management value of the second block management area may be set to “$1115”
- the third block management value of the third block management area may be set to “$1113”.
- the block management values can be compared to read the true updated value.
- the first to nth block management values “$1111” to “$111F” are allocated in an active state, and the block management value “$FFFF” is allocated in an unused state.
- the allocation is not limited in such a manner. For example, a block management value of “$0000” may be allocated in an unused state, and first to nth block management values of “$0001” to “000F” may be allocated in an active state.
- the memory control unit 11 copies the updated value of the first block B 1 to the first data area A 1 of the second block B 2 . Then, the memory control unit 11 erases the data stored in the first block B 1 and rewrites the block management value indicative of an active state and stored in the block management area to a block management value indicating an unused state. However, the erasing of data and the rewriting of the block management value to an unused state may be omitted. In this case, more than one block is in an active state. However, in the same manner as in the above embodiment, the true updated value can be read based on the relationship of the block management values. This configuration is effective when storing more past updated values.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-108380 | 2011-05-13 | ||
JP2011108380A JP5520880B2 (ja) | 2011-05-13 | 2011-05-13 | フラッシュメモリ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120290770A1 US20120290770A1 (en) | 2012-11-15 |
US9465730B2 true US9465730B2 (en) | 2016-10-11 |
Family
ID=47142670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/461,171 Active 2033-08-07 US9465730B2 (en) | 2011-05-13 | 2012-05-01 | Flash memory device |
Country Status (3)
Country | Link |
---|---|
US (1) | US9465730B2 (ja) |
JP (1) | JP5520880B2 (ja) |
CN (1) | CN102880561B (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5451682B2 (ja) * | 2011-05-20 | 2014-03-26 | 株式会社東海理化電機製作所 | フラッシュメモリ装置 |
CN110895444B (zh) * | 2018-09-12 | 2022-12-09 | 厦门歌乐电子企业有限公司 | 一种电子设备以及数据读写方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09134312A (ja) | 1995-11-08 | 1997-05-20 | Olympus Optical Co Ltd | フラッシュメモリ装置 |
JP2003216511A (ja) | 2002-01-23 | 2003-07-31 | Matsushita Electric Ind Co Ltd | 不揮発性メモリ装置、データ更新方法、データ更新プログラム及びそのプログラムが記録されたコンピュータ読み取り可能な記録媒体 |
JP2006323499A (ja) | 2005-05-17 | 2006-11-30 | Renesas Technology Corp | 半導体装置 |
US20080120488A1 (en) * | 2006-11-20 | 2008-05-22 | Samsung Electronics Co., Ltd. | Apparatus and method of managing nonvolatile memory |
US7634626B2 (en) * | 2004-07-28 | 2009-12-15 | Hitachi, Ltd. | Remote copy system |
US20100325523A1 (en) * | 2009-06-19 | 2010-12-23 | Marko Slyz | Fault-tolerant method and apparatus for updating compressed read-only file systems |
-
2011
- 2011-05-13 JP JP2011108380A patent/JP5520880B2/ja active Active
-
2012
- 2012-05-01 US US13/461,171 patent/US9465730B2/en active Active
- 2012-05-11 CN CN201210158304.1A patent/CN102880561B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09134312A (ja) | 1995-11-08 | 1997-05-20 | Olympus Optical Co Ltd | フラッシュメモリ装置 |
JP2003216511A (ja) | 2002-01-23 | 2003-07-31 | Matsushita Electric Ind Co Ltd | 不揮発性メモリ装置、データ更新方法、データ更新プログラム及びそのプログラムが記録されたコンピュータ読み取り可能な記録媒体 |
US7634626B2 (en) * | 2004-07-28 | 2009-12-15 | Hitachi, Ltd. | Remote copy system |
JP2006323499A (ja) | 2005-05-17 | 2006-11-30 | Renesas Technology Corp | 半導体装置 |
US20080120488A1 (en) * | 2006-11-20 | 2008-05-22 | Samsung Electronics Co., Ltd. | Apparatus and method of managing nonvolatile memory |
US20100325523A1 (en) * | 2009-06-19 | 2010-12-23 | Marko Slyz | Fault-tolerant method and apparatus for updating compressed read-only file systems |
Non-Patent Citations (1)
Title |
---|
Japan Office action, mail date is Jan. 28, 2014. |
Also Published As
Publication number | Publication date |
---|---|
CN102880561B (zh) | 2015-07-15 |
CN102880561A (zh) | 2013-01-16 |
JP5520880B2 (ja) | 2014-06-11 |
US20120290770A1 (en) | 2012-11-15 |
JP2012238277A (ja) | 2012-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8176236B2 (en) | Memory controller, memory system with memory controller, and method of controlling flash memory | |
US20100125696A1 (en) | Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor | |
US20100199020A1 (en) | Non-volatile memory subsystem and a memory controller therefor | |
JP4666081B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US9971682B2 (en) | Wear-leveling system and method for reducing stress on memory device using erase counters | |
JP4952740B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4488048B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US9465730B2 (en) | Flash memory device | |
JP4821845B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP5858081B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
JP4366420B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
KR100837273B1 (ko) | 플래시 메모리 장치 | |
US9021184B2 (en) | Flash memory device | |
US20180052635A1 (en) | Electronic control apparatus and information storage method for the same | |
JP4235646B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
JP4153535B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP6040895B2 (ja) | マイクロコンピュータ及び不揮発性メモリのブロック管理方法 | |
JP4952742B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4821844B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2008097339A (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP2019074797A (ja) | 不揮発性メモリのデータ書換方法及び半導体装置 | |
JP4213166B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
JP2016071447A (ja) | 不揮発性記憶装置及び不揮発性記憶装置の制御方法 | |
JP2008293615A (ja) | 不揮発性記憶装置並びにその管理方法、書き込み方法及び読み出し方法 | |
JP2018160018A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: KABUSHIKI KAISHA TOKAI RIKA DENKI SEISAKUSHO, JAPA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ARAKAWA, KAZUNORI;EGAWA, TETSUYA;ADACHI, HIDEKAZU;REEL/FRAME:028137/0004 Effective date: 20120417 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |