US9465730B2 - Flash memory device - Google Patents

Flash memory device Download PDF

Info

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
Application number
US13/461,171
Other languages
English (en)
Other versions
US20120290770A1 (en
Inventor
Kazunori Arakawa
Tetsuya Egawa
Hidekazu Adachi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tokai Rika Co Ltd
Original Assignee
Tokai Rika Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tokai Rika Co Ltd filed Critical Tokai Rika Co Ltd
Assigned to KABUSHIKI KAISHA TOKAI RIKA DENKI SEISAKUSHO reassignment KABUSHIKI KAISHA TOKAI RIKA DENKI SEISAKUSHO ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ADACHI, HIDEKAZU, ARAKAWA, KAZUNORI, EGAWA, TETSUYA
Publication of US20120290770A1 publication Critical patent/US20120290770A1/en
Application granted granted Critical
Publication of US9465730B2 publication Critical patent/US9465730B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity 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)
US13/461,171 2011-05-13 2012-05-01 Flash memory device Active 2033-08-07 US9465730B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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