[go: up one dir, main page]

WO2007119267A1 - フラッシュメモリ用のメモリコントローラ - Google Patents

フラッシュメモリ用のメモリコントローラ Download PDF

Info

Publication number
WO2007119267A1
WO2007119267A1 PCT/JP2006/318597 JP2006318597W WO2007119267A1 WO 2007119267 A1 WO2007119267 A1 WO 2007119267A1 JP 2006318597 W JP2006318597 W JP 2006318597W WO 2007119267 A1 WO2007119267 A1 WO 2007119267A1
Authority
WO
WIPO (PCT)
Prior art keywords
page
data
segment
area
binary search
Prior art date
Application number
PCT/JP2006/318597
Other languages
English (en)
French (fr)
Inventor
Seiji Nakamura
Hirokazu Sou
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to DE602006014734T priority Critical patent/DE602006014734D1/de
Priority to JP2007509790A priority patent/JP4524309B2/ja
Priority to US11/667,477 priority patent/US8006030B2/en
Priority to EP06798153A priority patent/EP2003569B1/en
Publication of WO2007119267A1 publication Critical patent/WO2007119267A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Definitions

  • the present invention relates to a nonvolatile semiconductor memory access control technique, and more particularly to a memory controller for controlling access to a flash memory having sequential write restrictions.
  • Non-volatile semiconductor memories are expanding the market scale.
  • a flash memory is a semiconductor memory that uses a floating gate transistor to realize data non-volatility.
  • a flash memory In a flash memory according to a conventional technology, erasing is performed in units of physical blocks each having a plurality of pages, and data reading (reading) and writing (writing) are performed in units of pages. In addition, even if a random page write request is received, control is performed so that data is written in the order of the first page power among all the erased pages of the physical block.
  • Such sequential write constrained access to flash memory is controlled according to the mapping from logical (virtual) pages to physical pages.
  • Each page has a data area for storing data and a redundant area for storing data management information. In the redundant area of each page, a logical page number (address) corresponding to the data written in the data area of the page is stored as data management information (see Patent Document 1).
  • Patent Document 1 International Publication No. 2003Z030180 Pamphlet
  • Patent Document 2 Pamphlet of International Publication No. 2004Z021191
  • An object of the present invention is to provide a memory controller for controlling access to a flash memory having a sequential write constraint, at a high speed for specifying the last valid page and determining whether there is an error page due to power interruption. It is to be able to carry out correctly.
  • a final effective page is provisionally specified by performing a binary search for a redundant area of each page, and then the provisionally specified final effective page and By examining the contents of the entire area (data area and redundant area) with the adjacent page, it is possible to identify the last valid page and determine whether there is an error page due to power interruption.
  • the present invention relates to a flash memory having a physical block having a plurality of page forces and each page having a data area for storing data and a redundant area for storing data management information.
  • physical Data management information includes information for error correction of the data and status information indicating that the data has been written in the data area in the order of the first page of all the erased pages in the block.
  • the page write execution unit that writes to the redundant area the binary search execution unit that temporarily identifies the last valid page by reading the status information in the redundant area of each page while performing binary search, and the binary search execution unit
  • the data in each data area and the data management information in each redundant area are read from the identified last valid page and the page adjacent to the provisionally identified last valid page, and an uncorrectable error in each page.
  • the last valid page is specified and the page is written according to the result of checking whether or not there is a write to the data area. Is obtained by adopting a configuration in which a final valid data specific execution unit that performs the existence determination error page resulting from the operation during the power-off line portion.
  • all erased physical units Page write that writes data to the data area in order from the first segment of the segment, and writes information for error correction of the data and status information indicating that the data has been written to the redundant area as data management information
  • An execution unit a binary search execution unit that provisionally specifies the last valid segment by reading the status information in the redundant area of the first page of each segment while performing a binary search, and a final temporarily specified by the binary search execution unit Adjacent to all pages belonging to the valid segment and the final valid segment temporarily specified
  • Data in each data area and data management information in each redundant area are read from all pages belonging to the segment, and depending on the result of checking whether there is an uncorrectable error in each segment and whether data has been written to the data area
  • a final valid data specifying execution unit for determining whether there is an error segment due to power-off during the operation of
  • the final valid page is specified and the presence / absence of an error page due to power interruption is determined.
  • both the identification of the last valid segment and the determination of the presence or absence of error segments due to power interruption can be performed quickly and accurately.
  • FIG. 1 is a block diagram showing a configuration example of a system including a memory card equipped with a memory controller and a flash memory according to the present invention.
  • FIG. 2 is a conceptual diagram showing an example of an internal configuration of the flash memory in FIG.
  • FIG. 3 is a flowchart showing the operation of the binary search execution unit in FIG. 1 when the configuration of FIG. 2 is adopted.
  • FIG. 4 is a flowchart showing the operation of the final valid data specifying execution unit in FIG. 1 when the configuration of FIG. 2 is adopted.
  • FIG. 5 is a flowchart according to a modification of FIG.
  • FIG. 6 is a conceptual diagram showing another example of the internal configuration of the flash memory in FIG.
  • FIG. 7 is a flowchart showing the operation of the binary search execution unit in FIG. 1 when the configuration of FIG. 6 is adopted.
  • FIG. 8 is a flowchart showing the operation of the final valid data specifying execution unit in FIG. 1 when the configuration of FIG. 6 is adopted.
  • FIG. 1 shows a configuration example of a system including a memory card equipped with a memory controller and a flash memory according to the present invention.
  • the system shown in FIG. 1 is a nonvolatile storage system including a memory card 101 that is one of nonvolatile storage devices and a host 102 that requests access to the memory card 101.
  • the host 102 is a mobile phone, a digital still camera, a personal computer, a mobile digital music player, or the like. As long as it is used as a storage medium of the host 102, it is not limited to a card-type nonvolatile storage device such as the memory card 101.
  • the host 102 is a mobile phone having a memory card 101 insertion slot.
  • the memory card 101 communicates with the host 102 by being inserted into a slot provided in the host 102.
  • the communication between the memory card 101 and the host 102 is a master-slave type communication in which the host 102 is a master and the memory card 101 is a slave.
  • the memory card 101 includes a memory controller 103 and a flash memory 104 whose access is controlled by the memory controller 103.
  • the flash memory 104 is, for example, a NAND type flash memory having the above-described sequential write constraint, and even if a single memory cell is a binary flash memory having one of two values of 0 and 1, It may be a multi-value flash memory having one of four values of four memory cell forces 00, 01, 10, and 11.
  • Each of the memory controller 103 and the flash memory 104 is a separate LSI chip. It may be configured as a single integrated LSI chip.
  • the memory controller 103 includes an input / output unit 105, a RAM (random access memory) control unit 106, a transfer RAM 107, a table RAM 108, a CPU (central processing unit) 109, a flash control unit 110, and an ECC. (error correcting code) circuit 11 1.
  • the input / output unit 105 receives a command signal and a data signal sent from the host 102, and transmits a response signal and a data signal to the host 102.
  • a data signal is received from the host 102, the data signal is transferred to the transfer RAM 107 for temporary storage, and an interrupt signal is output to the CPU 109.
  • the data in the transfer RAM 107 is output to the host 102.
  • the RAM control unit 106 switches the accessible RAM setting between the transfer RAM 107 and the table RAM 108 in accordance with the setting of the CPU 109.
  • the CPU 109 and the flash control unit 110 can access both the transfer RAM 107 and the table RAM 108.
  • the input / output unit 105 can access the transfer RAM 107.
  • the transfer RAM 107 temporarily stores data transferred from the host 102 and data read from the flash memory 104 by the flash control unit 110.
  • the table RAM 108 stores write information of the flash memory 104. Write information refers to the usage status of physical blocks (blocks with or without writing, address conversion table indicating the correspondence between logical addresses and physical addresses, the address of the last valid page of the physical block being written, etc.
  • the information in the table RAM 108 is created by the flash control unit 110 accessing the flash memory 104 during the initialization period before reading and writing data after the memory card 101 is turned on.
  • the CPU 109 reads and writes the data in the transfer RAM 107 and the table RAM 108 via the RAM control unit 106.
  • Command signal and data signal from host 102 for a certain period blocks other than the interrupt control unit in the CPU 109 stop operating, and support a power saving function that resumes operation by an interrupt signal from the input / output unit 105.
  • a predetermined operation command is sent to the flash control unit 110 to realize the access.
  • Operation commands include physical block erase commands, write commands to pages in physical blocks, read commands that do not search the redundant area in half, read the entire page area, identify the last valid page, and check for occurrence of power interruption There are instructions for executing the determination.
  • the flash control unit 110 includes a block erase execution unit 112, a page write execution unit 113, a binary search execution unit 114, and a final valid data specification execution unit 115.
  • the flash memory 104 is accessed such as read Z write Z erase.
  • the block erase execution unit 112 erases the data of the designated physical block in the flash memory 104.
  • the page write execution unit 113 reads the data in the transfer RAM 107, adds a syndrome for error correction, and writes it in a predetermined page of the physical block. At this time, the syndrome for error correction is written in the redundant area of the write page, and the written mark “Low” is put in the bit corresponding to the write status information in the redundant area.
  • the final valid data specifying execution unit 115 reads the contents of all areas of a predetermined page of the physical block, passes the data through the ECC circuit 111, and transfers the data. Then, the final effective page is identified and the occurrence of power interruption is determined based on whether an uncorrectable error has occurred (details will be described later). ).
  • the ECC circuit 111 generates a syndrome for error correction for the write data to the flash memory 104. On the other hand, an error is detected and corrected for the read data from the flash memory 104, and an uncorrectable error signal is returned when an uncorrectable error is detected. If an ECC circuit 111 detects an uncorrectable error when reading a page of data, the page is an error page with a power outage. Becomes clear.
  • FIG. 2 shows an internal configuration example of the flash memory 104 in FIG.
  • the flash memory 104 in FIG. 1 is composed of a plurality of physical blocks, but only one physical block 201 is shown in FIG. 2 for explanation.
  • the physical block 201 shown in FIG. 2 includes 32 physical pages up to page 31 and page 0.
  • Each page includes, for example, a 512-byte data area (DA) 202 and a 16-byte redundant area (RA) 203.
  • the data area 202 is mainly used for storing data transferred from the host 102.
  • the redundant area 203 is used to store data management information such as ECC syndrome, page offset, and status information indicating completion of writing.
  • the physical block 201 in FIG. 2 is always required to write data in order from the first page.
  • the hatching in Figure 2 indicates that data has already been written from page 0 to page 20. It is assumed that writing to each page is not performed twice (for example, a writing method in which data is written to the redundant area 203 at another timing after being written to the data area 202).
  • FIG. 3 shows an operation of the binary search execution unit 114 in FIG. 1 when the configuration of FIG. 2 is adopted.
  • the physical block 201 that searches for the last valid page always has at least page 0 written.
  • step 301 the value of variable n representing the number of reads is set to 1, and in step 302, the value of variable M representing the read page address is set to “(total number of pages in physical block 201). ) Determine with Z2.
  • step 303 the redundant area 203 of page M is read. Based on the write status information in the data management information stored in the redundant area 203 of page M read out in this way, it can be determined whether there is a write or no Z. If the write status information is a “Low” bit, writing is present, and if it is “High”, no writing is performed.
  • step 304 the variable n is incremented by 1, and in step 305, it is determined whether “(the total number of pages in the physical block 201) ⁇ 2 n ”.
  • This step 305 is a loop operation end condition from step 303 to step 307 or step 308 described later.
  • step 306 If “Yes” in step 305, the process proceeds to step 306. In step 306 If the status information read in step 303 indicates that there is writing, the process proceeds to step 307. In step 307, the variable M is increased by “(total number of pages of physical block 201) Z2 n ”. On the other hand, if the status information read in step 303 indicates no writing in step 306, the process proceeds to step 308. In step 308, the variable M is decreased by “(total number of pages of the physical block 201) / 2n ”. After step 307 or step 308, the processing returns to step 303 and is executed again.
  • step 309 if the status information read in step 303 indicates writing, the process proceeds to step 310.
  • step 310 page M is provisionally specified as the last valid page.
  • step 311 page (M-1) is provisionally identified as the last valid page.
  • FIG. 4 shows the operation of the last valid data identification execution unit 115 in FIG. 1 when the configuration of FIG. 2 is adopted. It is assumed that the provisional specification of the last valid page by the binary search execution unit 114 has already been completed.
  • step 401 the last valid page provisionally specified by the binary search execution unit 114 is set as page N.
  • step 402 the contents of all areas of page N (data area 202 and redundant area 203) are read out and temporarily stored in transfer RAM 107 after passing through ECC circuit 111.
  • step 403 it is determined whether there is an uncorrectable error on page N. If there is no uncorrectable error on page N, go to step 404.
  • step 404 the entire area of page (N + 1) is read. This is done to determine if the page (N + 1) is an error page.
  • step 405 it is determined whether or not the data area 202 of the page (N + 1) has been erased (no writing).
  • step 406 This case is a case where the physical block 201 has no error page due to the occurrence of power interruption.
  • page N Identifies the page as the last valid page and determines that no power interruption occurred in the physical block 201
  • step 405 If it is determined in step 405 that the page (N + 1) has been written to the data area 202, the process proceeds to step 407.
  • Page (N + 1) can be determined to be in an abnormal state due to a power interruption because redundant area 203 has been erased and data area 202 has been written.
  • step 407 page N is identified as the last valid page, and it is determined that a power interruption has occurred while page (N + 1) is being written.
  • step 403 if there is an uncorrectable error on page N, the process proceeds to step 408.
  • Page N can be determined as an abnormal state due to a power interruption because the redundant area 203 has been erased and data is written to the data area 202. However, it is necessary to determine whether or not there is an uncorrectable error on page (N-1). Therefore, in step 408, the entire area of page (N-1) is read.
  • step 409 if there is no uncorrectable error of page (N-1), the process proceeds to step 410.
  • step 410 page (N—1) is identified as the last valid page, and it is determined that a power interruption has occurred while page N is being written.
  • step 409 If there is an uncorrectable error on page (N-1) in step 409, the process proceeds to step 411. This is a case where an uncorrectable error has occurred on both page N and page (N-1). Since this case is an abnormal state that does not occur only once, the processing is terminated assuming that there is no valid page in the physical block 201.
  • the physical block 201 shown in FIG. 2 has no error page due to the occurrence of power interruption. If it is assumed that page 20 is the last valid page, (i) page 20, (ii) All areas (data area 202 and redundant area 203) are read in the order of page 21, page 20 is identified as the last valid page, and no power failure has occurred in physical block 201. Determined.
  • the CPU 109 updates the information in the table RAM 108.
  • the CPU 109 updates the information in the table RAM 108.
  • data is written after the page where power interruption occurred, there is a possibility of data corruption and data write management cannot be performed correctly. Therefore, if an uncorrectable error due to a power interruption is detected, valid physical data is deleted from another physical block that has been erased. After copying to the table, the information in the table RAM 108 is updated.
  • FIG. 5 shows an operation of the binary search execution unit 114 according to the modification of FIG. According to FIG. 5, first, in step 501, the redundant area 203 of the first page (page 0) of the physical block 201 is read. Next, in step 502, based on the status information read in step 501, it is determined whether page 0 is erased (no writing) power. If it is determined in step 502 that the page has been erased, the process proceeds to step 503 to temporarily specify that page 0 is the last valid page, and the process ends. Thus, after provisionally specifying that page 0 is the last valid page at an early stage, final valid data specifying execution unit 115 operates in accordance with the flowchart shown in FIG. If it is determined in step 502 that there is writing, the binary search execution unit 114 performs the operations in and after step 301 in FIG.
  • FIG. 6 shows another internal configuration example of the flash memory 104 in FIG.
  • four physical blocks A, B, C, and D constitute one physical unit 601.
  • the writing is executed in units of 8 pages of each of the four physical blocks A, B, C, and D.
  • Each of the four physical blocks A, B, C, D consists of 128 pages. That is, the physical unit 601 in FIG. 6 is composed of 16 segments from segment 0 to segment 15.
  • Each page is composed of a data area (DA) and a redundant area (RA) as in the case of FIG.
  • DA data area
  • RA redundant area
  • the physical unit 601 in FIG. 6 is required to write data in order from the first segment.
  • the hatching in Fig. 6 indicates that data has been written in segment 0 to segment 9.
  • the page write execution unit 113 in FIG. 1 operates as follows. In other words, writing to the physical queue 601 is always performed in units of 8 pages, regardless of the number of bytes transferred from the host 102.
  • the write status information of each segment is stored in the redundant area of at least the first page in the segment. Specifically, when data is transferred from the host 102, data is first written to page 0 of the physical block A. After that, data is written in the order of page 0 of physical block B, page 0 of physical block C, and page 0 of physical block D. After page 0 of each physical block has been written, write to page 1 of physical block A, and then write to page 1 of physical block B, page 1 of physical block C, and page 1 of physical block D. Write data sequentially. If the transfer data from the host 102 stops after writing data to page 1 of physical block B, copy all the data with "1" and the original data to the remaining pages.
  • the last valid segment refers to the segment written last in the physical unit 601 and having no writing and no uncorrectable error.
  • FIG. 7 shows the operation of the binary search execution unit 114 in FIG. 1 when the configuration of FIG. 6 is adopted.
  • the physical unit 601 that searches for the last valid segment always has at least a write to segment 0.
  • step 701 the value of variable n representing the number of reads is set to 1, and in step 702, the value of variable L representing the read segment address is set to “(total number of segments of physical unit 601)”. Decide with “Z2”.
  • step 703 the redundant area of the first page of segment L is read. Based on the write status information in the data management information stored in the redundant area of the first page of segment L read in this way, it can be determined whether there is a write or no Z. If the write status information is a "Low” bit, writing is present, and if it is "High", writing is not performed.
  • step 704 the variable n is incremented by 1, and in step 705, it is determined whether or not “(total number of segments of the physical unit 60 1) ⁇ 2 n ”.
  • This step 705 is a loop operation end condition from step 703 to step 707 or step 708 described later.
  • step 705 If “Yes” in step 705, the process proceeds to step 706. If the status information read in step 703 in step 706 indicates that there is writing, the process proceeds to step 707. In step 707, the variable L is increased by “(total number of segments of physical unit 601) Z2 n ”. Caro. On the other hand, if the status information read in step 703 indicates no writing in step 706, the process proceeds to step 708. In step 708, the variable L is decreased by “(total number of segments of physical unit 601) Z2 n ”. After step 707 or step 708, the process returns to step 703 to execute the process again.
  • step 709 if the status information read in step 703 indicates that there is writing, the process proceeds to step 710.
  • step 710 segment L is provisionally identified as the last valid segment.
  • step 711 the segment (L 1) is provisionally specified as the last valid segment.
  • the redundant areas of the first page of each segment are in the order of (1) segment 8, (2) segment 12, (3) segment 10, and (4) segment 9. Read and provisionally identify segment 9 as the last valid segment.
  • FIG. 8 shows the operation of final valid data identification execution section 115 in FIG. 1 when the configuration in FIG. 6 is adopted. It is assumed that provisional identification of the last valid segment by the binary search execution unit 114 has already been completed.
  • step 801 the last valid segment provisionally specified by the binary search execution unit 114 is defined as a segment N.
  • step 802 the contents of all areas (data area and redundant area) of all pages of segment N are read in order, and temporarily stored in the transfer RAM 107 after passing through the ECC circuit 111.
  • step 803 it is determined whether there is an uncorrectable error in segment N. If there is no uncorrectable error on all pages of segment N, the process proceeds to step 804.
  • step 804 all areas of all pages of segment (N + 1) are read. This is done to determine if the segment (N + 1) is an error segment or not.
  • step 805 it is determined whether or not the data area of all pages of the segment (N + 1) has been erased (no writing). If segment (N + 1) has been erased, go to step 806. This case is a case where the physical unit 601 has no error segment due to the occurrence of power interruption.
  • segment N is identified as the last valid segment, and it is determined that the physical unit 601 has no power interruption. If it is determined in step 805 that the segment (N + 1) has been written to the data area, the process proceeds to step 807. In segment (N + 1), the redundant area has been erased, but the data area has been written to, so it can be determined that there is an abnormal state due to a power interruption. Step 8 In segment 07, segment N is identified as the last valid segment, and it is determined that a power failure has occurred while writing segment (N + 1).
  • step 803 If there is an uncorrectable error in segment N in step 803, the process proceeds to step 808.
  • step 808 all areas of all pages of segment (N-1) are read.
  • step 809 if there is no uncorrectable error in segment (N-1), the process proceeds to step 810.
  • segment (N-1) is identified as the last valid segment, and it is determined that a power interruption has occurred while segment N is being written.
  • step 809 If it is determined in step 809 that an uncorrectable error has occurred in the segment (N-1), the process proceeds to step 811. This is a case where an uncorrectable error occurred in both segment N and segment (N-1). Since this case does not occur with a single power interruption, it is an abnormal condition, so the processing is terminated assuming that the physical unit 601 has no valid segment.
  • segment 9 Assuming that the physical unit 601 shown in FIG. 6 has no error segment due to the occurrence of power interruption, after the segment 9 is provisionally identified as the last valid segment, (i) segment 9, ( ii) All areas of each page (data area and redundant area) are read in the order of segment 10, segment 9 is identified as the last valid segment, and there is no electrical interruption in physical unit 601 It is determined.
  • the CPU 109 updates the information in the table RAM 108.
  • the CPU 109 updates the information in the table RAM 108.
  • data is written after the segment where the power interruption occurred, there is a possibility of data corruption and data write management cannot be performed correctly. Therefore, if an uncorrectable error due to a power interruption is detected, valid physical data has been erased from other physical units. After copying to the knit, the information in the table RAM 108 is updated.
  • the memory controller according to the present invention can quickly and accurately perform the identification of the last valid page or the last valid segment and the presence / absence judgment of the error page or error segment due to the power interruption. This is useful as a technology for controlling access to flash memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

 物理ブロック(201)の先頭ページから順に、データ領域(202)にデータを書き込み、かつ当該データのエラー訂正のための情報と、当該データが書き込み済みであることを示すステータス情報とを冗長領域(203)に書き込む。この物理ブロック(201)の書き込み情報を作成する際に、各ページの冗長領域(203)を二分探索することで最終有効ページを仮特定したうえ、当該仮特定された最終有効ページとその隣接ページとの全領域(データ領域及び冗長領域)の内容を調べることで、最終有効ページの特定と電断に起因したエラーページの有無判定とを実施する。

Description

明 細 書
フラッシュメモリ用のメモリコントローラ
技術分野
[0001] 本発明は、不揮発性半導体メモリのアクセス制御技術に関し、特に順次書き込み 制約を持つフラッシュメモリへのアクセスを制御するためのメモリコントローラに関する ものである。
背景技術
[0002] 不揮発性半導体メモリが市場規模を拡大して 、る。フラッシュメモリは、フローテイン グゲートトランジスタを利用してデータの不揮発性を実現した半導体メモリである。
[0003] ある従来技術に係るフラッシュメモリでは、複数ページ力 なる物理ブロック単位で 消去が行われ、かつデータの読み出し (リード)及び書き込み (ライト)がページ単位 で行われる。しかも、ランダムなページ書き込み要求を受信しても、物理ブロックの消 去済みの全ページのうち先頭ページ力 順にデータが書き込まれるように制御される 。このようなフラッシュメモリへの順次書き込み制約付きアクセスは、論理 (仮想)ぺー ジから物理ページへのマッピングに従って制御される。各ページは、データを格納す るデータ領域と、データ管理情報を格納する冗長領域とを有する。各ページの冗長 領域には、そのページのデータ領域に書き込まれたデータに対応する論理ページ 番号 (アドレス)がデータ管理情報として格納される (特許文献 1参照)。
[0004] 他の従来技術によれば、順次書き込み制約を持つフラッシュメモリの 1つの物理ブ ロック内のページの書き換え又は追記が要求されたとき、新たなページデータを消去 済みの新物理ブロックの先頭ページ力 順に書き込んだ後、元の物理ブロックの非 更新ページのデータを新物理ブロックの残りのページへ転送する。論理ページ番号 と物理ページ番号との差であるページオフセットは、フラッシュメモリの冗長領域に格 納される。各ページの冗長領域中のデータ管理情報は、その所属する物理ページに 対応する論理アドレスと、そのページが空きページか否かを示すフラグと、そのぺー ジに書き込まれたデータの有効 Z無効を示すフラグと、そのデータのエラー検出の ための情報とを含む。論理ブロックアドレスと物理ブロックアドレスとの対応関係は、ァ ドレス変換テーブルにより管理される(特許文献 2参照)。
特許文献 1:国際公開第 2003Z030180号パンフレット
特許文献 2 :国際公開第 2004Z021191号パンフレット
発明の開示
発明が解決しょうとする課題
[0005] フラッシュメモリにデータを書き込んで 、る(プログラムして 、る)最中に電源オフ(電 断)が発生した場合、書き込み途中のページのデータが破壊される。順次書き込み 制約を持つフラッシュメモリのアクセス管理には、電断に起因したエラーページの有 無に関する情報とともに、物理ブロックの最終有効ページのアドレスが必要である。 最終有効ページとは、当該物理ブロック内で最後に書かれた、書き込み有りかつ訂 正不能エラー無しのページを 、う。
[0006] 物理ブロックの最終有効ページのアドレスを取得し、かつ訂正不能エラーの有無を 判定するには、当該物理ブロック内を探索する必要がある。この場合に先頭ページ 力 順に 1ページ毎にデータ領域と冗長領域とを読み出して調べることとすると、探 索に長い時間を要してしまう。 1つの物理ブロックを構成するページの数が増えつつ ある昨今では、探索の長時間ィ匕が顕著になってきて ヽる。
[0007] 本発明の目的は、順次書き込み制約を持つフラッシュメモリへのアクセスを制御す るためのメモリコントローラにおいて、最終有効ページの特定と電断に起因したエラ 一ページの有無判定とを高速かつ正確に実施できるようにすることにある。
課題を解決するための手段
[0008] 上記目的を達成するため、本発明では、各ページの冗長領域を二分探索 (binary s earch)することで最終有効ページを仮特定したうえ、当該仮特定された最終有効べ ージとその隣接ページとの全領域 (データ領域及び冗長領域)の内容を調べることで 、最終有効ページの特定と電断に起因したエラーページの有無判定とを実現するこ ととした。
[0009] 具体的に説明すると、本発明は、複数のページ力 なる物理ブロックを有しかつ各 ページがデータを格納するデータ領域とデータ管理情報を格納する冗長領域とを有 するフラッシュメモリへのアクセスを制御するためのメモリコントローラにおいて、物理 ブロックの消去済みの全ページのうち先頭ページ力 順にデータ領域にデータを書 き込み、かつ当該データのエラー訂正のための情報と当該データが書き込み済みで あることを示すステータス情報とをデータ管理情報として冗長領域に書き込むページ 書き込み実行部と、各ページの冗長領域中のステータス情報を二分探索しながら読 み出して最終有効ページを仮特定する二分探索実行部と、この二分探索実行部に より仮特定された最終有効ページと当該仮特定された最終有効ページに隣接するべ ージとから各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出 し、それぞれのページにおける訂正不能エラーの有無とデータ領域への書き込みの 有無とに関するチェックの結果に応じて最終有効ページの特定とページ書き込み実 行部の動作途中の電源オフに起因したエラーページの有無判定とを行う最終有効 データ特定実行部とを備えた構成を採用したものである。
[0010] 複数の物理ブロックからなる物理ユニットを有しかつこれら複数の物理ブロックの各 々の所定数のページ力 なるセグメントを書き込み単位とするフラッシュメモリの場合 には、物理ユニットの消去済みの全セグメントのうち先頭セグメントから順にデータ領 域にデータを書き込み、かつ当該データのエラー訂正のための情報と当該データが 書き込み済みであることを示すステータス情報とをデータ管理情報として冗長領域に 書き込むページ書き込み実行部と、各セグメントの先頭ページの冗長領域中のステ 一タス情報を二分探索しながら読み出して最終有効セグメントを仮特定する二分探 索実行部と、この二分探索実行部により仮特定された最終有効セグメントに属する全 ページと当該仮特定された最終有効セグメントに隣接するセグメントに属する全ぺー ジとから各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出し、 それぞれのセグメントにおける訂正不能エラーの有無とデータ領域への書き込みの 有無とに関するチェックの結果に応じて最終有効セグメントの特定とページ書き込み 実行部の動作途中の電源オフに起因したエラーセグメントの有無判定とを行う最終 有効データ特定実行部とを備えることとする。
発明の効果
[0011] 本発明によれば、ページ単位の書き込みを採用するフラッシュメモリの場合には最 終有効ページの特定と電断に起因したエラーページの有無判定とを、またセグメント 単位の書き込みを採用するフラッシュメモリの場合には最終有効セグメントの特定と 電断に起因したエラーセグメントの有無判定とをいずれも高速かつ正確に実施できる
図面の簡単な説明
[0012] [図 1]図 1は、本発明に係るメモリコントローラとフラッシュメモリとを搭載したメモリカー ドを含むシステムの構成例を示すブロック図である。
[図 2]図 2は、図 1中のフラッシュメモリの内部構成例を示す概念図である。
[図 3]図 3は、図 2の構成を採用した場合の図 1中の二分探索実行部の動作を示すフ ローチャート図である。
[図 4]図 4は、図 2の構成を採用した場合の図 1中の最終有効データ特定実行部の動 作を示すフローチャート図である。
[図 5]図 5は、図 3の変形例に係るフローチャート図である。
[図 6]図 6は、図 1中のフラッシュメモリの他の内部構成例を示す概念図である。
[図 7]図 7は、図 6の構成を採用した場合の図 1中の二分探索実行部の動作を示すフ ローチャート図である。
[図 8]図 8は、図 6の構成を採用した場合の図 1中の最終有効データ特定実行部の動 作を示すフローチャート図である。
符号の説明
[0013] 101 メモリカード
102 ホス卜
103 メモリコントローラ
104 フラッシュメモリ
105 入出力部
106 RAM制御部
107 転送 RAM
108 テーブル RAM
109 CPU
110 フラッシュ制御部 111 ECC回路
112 ブロック消去実行部
113 ページ書き込み実行部
114 二分探索実行部
115 最終有効データ特定実行部
201 物理ブロック
202 データ領域
203 冗長領域
601 物理ユニット
発明を実施するための最良の形態
[0014] 以下、本発明の実施の形態について、添付図面を参照して説明する。
[0015] 図 1は、本発明に係るメモリコントローラとフラッシュメモリとを搭載したメモリカードを 含むシステムの構成例を示している。図 1のシステムは、不揮発性記憶装置の 1つで あるメモリカード 101と、このメモリカード 101へのアクセスを要求するホスト 102とを備 えた不揮発性記憶システムである。ホスト 102は、携帯電話機、デジタルスチルカメラ 、パーソナルコンピュータ、携帯デジタル音楽プレーヤ等である。ホスト 102の記憶メ ディアとして使われるものであれば、メモリカード 101のようなカード形態の不揮発性 記憶装置に限らない。
[0016] ここでは、ホスト 102がメモリカード 101の挿入スロットを持つ携帯電話機であるもの とする。メモリカード 101はホスト 102に設けられたスロットに装着されることにより、ホ スト 102と通信を行う。メモリカード 101とホスト 102との通信は、ホスト 102をマスタとし 、メモリカード 101をスレーブとするマスタスレーブ方式の通信である。
[0017] メモリカード 101は、メモリコントローラ 103と、このメモリコントローラ 103によりァクセ スが制御されるフラッシュメモリ 104とを有する。フラッシュメモリ 104は、例えば前述 の順次書き込み制約を持つ NAND型のフラッシュメモリであって、 1つのメモリセル が 0、 1の 2つの値のいずれかを持つ 2値フラッシュメモリであっても、また 1つのメモリ セル力 00、 01、 10、 11の 4つの値のいずれかを持つ多値フラッシュメモリであっても よい。メモリコントローラ 103とフラッシュメモリ 104とは、各々別個の LSIチップとして 構成されても、また 1個に統合された LSIチップとして構成されてもよい。
[0018] メモリコントローラ 103は、入出力部 105と、 RAM (random access memory)制御部 106と、転送 RAM107と、テーブル RAM108と、 CPU (central processing unit) 10 9と、フラッシュ制御部 110と、 ECC (error correcting code :エラー訂正符号)回路 11 1とを有する。
[0019] 入出力部 105は、ホスト 102から送られてきたコマンド信号やデータ信号を受信し、 またホスト 102に対してレスポンス信号やデータ信号を送信する。ホスト 102からデー タ信号を受信した場合には、このデータ信号を一時記憶させるベく転送 RAM107に 転送し、かつ CPU109に割り込み信号を出力する。ホスト 102へデータを送信する 場合には、転送 RAM107のデータをホスト 102へ出力する。
[0020] RAM制御部 106は、 CPU109の設定に従い、アクセス可能な RAMの設定を転 送 RAM107とテーブル RAM108とで切り換える。 RAM制御部 106の設定に応じて 、 CPU109及びフラッシュ制御部 110は、転送 RAM107及びテーブル RAM108の いずれにもアクセスすることができる。また入出力部 105は、転送 RAM107にァクセ スすることができる。
[0021] 転送 RAM107は、ホスト 102から転送されたデータや、フラッシュ制御部 110がフ ラッシュメモリ 104から読み出したデータを一時記憶する。一方、テーブル RAM108 は、フラッシュメモリ 104の書き込み情報を記憶する。書き込み情報とは、物理ブロッ クの使用状況 (書き込み有りブロックか未使用ブロック力 、論理アドレスと物理アドレ スとの対応関係を示すアドレス変換テーブル、書き込み途中の物理ブロックの最終 有効ページのアドレス等の情報をいう。これらのテーブル RAM108の情報は、メモリ カード 101の電源投入後のデータのリード Zライトを行う前の初期化期間中にフラッ シュ制御部 110がフラッシュメモリ 104にアクセスして作成され、初期化後にホスト 10 2からのデータを受信したり、あるいは消去命令を受信したりした時に更新される。な お、物理ブロックが未使用ブロックか否かの情報は、例えば物理ブロックの先頭ぺー ジを読み出して書き込み有り Z無しを判定すれば、簡単に作成することができる。
[0022] CPU109は、 RAM制御部 106を経由して転送 RAM107及びテーブル RAM10 8のデータをリード Zライトする。ホスト 102から一定期間コマンド信号やデータ信号を 受信しない場合には、 CPU109内の割り込み制御部以外のブロックが動作を停止し 、入出力部 105からの割り込み信号により動作を再開する省電力機能をサポートして いる。 CPU109がフラッシュメモリ 104にアクセスする場合には、フラッシュ制御部 11 0に所定の動作命令を送って当該アクセスを実現する。動作命令には、物理ブロック の消去命令、物理ブロック内のページへの書き込み命令、冗長領域を二分探索しな 力 読み出す命令、ページ全領域の読み出しを行って最終有効ページの特定と電 断発生有無の判定とを実行する命令等がある。
[0023] フラッシュ制御部 110は、ブロック消去実行部 112と、ページ書き込み実行部 113と 、二分探索実行部 114と、最終有効データ特定実行部 115とを有する。 CPU109か ら命令を受信し、各実行部 112〜115が動作することにより、フラッシュメモリ 104に 対してリード Zライト Z消去等のアクセスを行う。ブロック消去実行部 112は、フラッシ ュメモリ 104の指定された物理ブロックのデータを消去する。ページ書き込み実行部 113は、転送 RAM107のデータを読み出し、エラー訂正のためのシンドロームを追 加して、物理ブロックの所定のページに書き込む。このとき、書き込みページの冗長 領域にエラー訂正のためのシンドロームを書き込むとともに、同冗長領域中の書き込 みステータス情報に該当するビットに書き込み済みのマーグ' Low"を入れる。二分探 索実行部 114は、初期化時のテーブル RAM108のデータ作成時において、対象物 理ブロックの冗長領域を二分探索しながら読み出し、最終有効ページを仮特定する( 詳細は後述する)。なお、二分探索実行部 114は冗長領域中の書き込みステータス 情報のみを読み出してもよい。最終有効データ特定実行部 115は、物理ブロックの 所定のページの全領域の内容を読み出し、 ECC回路 111を経由させた後、データ を転送 RAM107に格納する。そして、訂正不能エラーの発生有無から、最終有効べ ージの特定と電断発生有無の判定とを行う(詳細は後述する)。
[0024] ECC回路 111は、フラッシュメモリ 104への書き込みデータに対しては、エラー訂 正のためのシンドロームを生成する。一方、フラッシュメモリ 104からの読み出しデー タに対してはエラーの検出及び訂正を行い、訂正不能エラーを検出した場合には訂 正不能エラー信号を返す。あるページのデータを読み出した時に ECC回路 111に て訂正不能エラーを検出すれば、当該ページが電断発生のエラーページであること が判明する。
[0025] 図 2は、図 1中のフラッシュメモリ 104の内部構成例を示している。図 1中のフラッシ ュメモリ 104は複数の物理ブロックからなるものであるが、図 2には 1つの物理ブロック 201のみが説明のために示されている。図 2に示した物理ブロック 201は、ページ 0 力もページ 31までの 32物理ページで構成される。各ページは、例えば、 512バイト のデータ領域 (DA) 202と、 16バイトの冗長領域 (RA) 203とで構成される。データ 領域 202は、主にホスト 102から転送されたデータの記憶に使用される。冗長領域 2 03は、 ECCシンドローム、ページオフセット、書き込み済みを示すステータス情報等 のデータ管理情報の記憶に使用される。
[0026] 図 2の物理ブロック 201は、必ず先頭ページから順にデータを書き込むことが要求 されるものである。図 2中のハッチングは、ページ 0からページ 20までがデータ書き込 み済みであることを示している。なお、各々のページに対して 2度書き(例えばデータ 領域 202に書き込んだ後に、別のタイミングで冗長領域 203に書き込むといった書き 込み方法)は行わないものとする。
[0027] 図 3は、図 2の構成を採用した場合の図 1中の二分探索実行部 114の動作を示して いる。ここでは、最終有効ページを検索する物理ブロック 201は少なくともページ 0へ の書き込みが必ずあるものとする。
[0028] 図 3によれば、まずはステップ 301で読み出し回数を表す変数 nの値を 1に設定し、 ステップ 302において読み出しページアドレスを表す変数 Mの値を「(物理ブロック 2 01の全ページ数) Z2」で決定する。次にステップ 303でページ Mの冗長領域 203を 読み出す。このようにして読み出したページ Mの冗長領域 203に格納されたデータ 管理情報中の書き込みステータス情報をもとに、書き込み有り Z無しの判定を行うこ とができる。書き込みステータス情報が" Low"のビットであれば書き込み有りであり、 " High"であれば書き込み無しである。
[0029] 次にステップ 304で変数 nを 1だけインクリメントし、ステップ 305で「(物理ブロック 2 01の全ページ数)≥2n」かどうかを判定する。このステップ 305は、ステップ 303から 後述のステップ 307又はステップ 308までのループ動作の終了条件にあたる。
[0030] ステップ 305で「Yes」の場合には、ステップ 306に進む。ステップ 306においてステ ップ 303で読み出したステータス情報が書き込み有りを表す場合にはステップ 307に 進む。ステップ 307では、変数 Mを「(物理ブロック 201の全ページ数) Z2n」だけ増 カロさせる。一方、ステップ 306においてステップ 303で読み出したステータス情報が 書き込み無しを表す場合にはステップ 308に進む。ステップ 308では、変数 Mを「(物 理ブロック 201の全ページ数) /2n」だけ減少させる。ステップ 307又はステップ 308 の次は、ステップ 303に戻って再度処理を実行する。
[0031] ステップ 305で「No」の場合にはステップ 309に進む。ステップ 309において、ステ ップ 303で読み出したステータス情報が書き込み有りを表す場合にはステップ 310に 進む。ステップ 310では、ページ Mが最終有効ページであると仮特定する。一方、ス テツプ 309において、ステップ 303で読み出したステータス情報が書き込み無しを表 す場合にはステップ 311に進む。ステップ 311では、ページ (M—1)が最終有効べ ージであると仮特定する。
[0032] 図 2に示した物理ブロック 201の例では、(1)ページ 16、(2)ページ 24、(3)ページ 20、(4)ページ 22、(5)ページ 21の順に各ページの冗長領域 203が読み出され、 ページ 20が最終有効ページであると仮特定される。
[0033] 図 4は、図 2の構成を採用した場合の図 1中の最終有効データ特定実行部 115の 動作を示している。なお、二分探索実行部 114による最終有効ページの仮特定が既 に終わっているものとする。
[0034] 図 4によれば、まずステップ 401において、二分探索実行部 114が仮特定した最終 有効ページをページ Nとする。次にステップ 402において、ページ Nの全領域(デー タ領域 202及び冗長領域 203)の内容を読み出して、 ECC回路 111を経由後、転送 RAM107に一時記憶させる。次に、ステップ 403でページ Nの訂正不能エラーの有 無を判定する。ページ Nの訂正不能エラー無しの場合にはステップ 404に進む。ステ ップ 404ではページ (N+ 1)の全領域を読み出す。これは、ページ (N+ 1)がエラー ページであるか否かを判断するために実行する。ステップ 405ではページ(N+ 1)の データ領域 202が消去済み(書き込み無し)力否かを判定する。ページ (N+ 1)が消 去済みの場合にはステップ 406に進む。このケースは当該物理ブロック 201に電断 発生に起因したエラーページが無いケースである。ステップ 406では、ページ Nを最 終有効ページであると特定し、かつ当該物理ブロック 201に電断発生無しと判定する
[0035] ステップ 405でページ(N+ 1)のデータ領域 202への書き込み有りの場合にはステ ップ 407に進む。ページ (N+ 1)は冗長領域 203が消去済みであるのに対してデー タ領域 202への書き込みがあるので、電断による異常状態と判定することができる。 ステップ 407でページ Nを最終有効ページであると特定し、かつページ(N+ 1)の書 き込み中の電断発生有りと判定する。
[0036] ステップ 403でページ Nの訂正不能エラー有りの場合にはステップ 408へ進む。ぺ ージ Nは冗長領域 203が消去済みであるのに対してデータ領域 202への書き込み があるので、電断による異常状態と判定することができる。ただし、ページ (N—1)に も訂正不能エラーが存在する力否かを判定する必要がある。そこで、ステップ 408で はページ (N— 1)の全領域を読み出す。次にステップ 409でページ (N— 1)の訂正 不能エラー無しの場合にはステップ 410に進む。ステップ 410では、ページ (N—1) を最終有効ページであると特定し、かつページ Nの書き込み中の電断発生有りと判 定する。
[0037] ステップ 409でページ(N— 1)の訂正不能エラー有りの場合にはステップ 411に進 む。これは、ページ N及びページ(N— 1)の両ページにおいて訂正不能エラーが発 生したケースである。このケースは電断 1回では生じない異常状態のため、当該物理 ブロック 201には有効なページが全く無いものとして処理を終了する。
[0038] 図 2に示した物理ブロック 201には電断発生に起因したエラーページが全く無!、も のとすると、ページ 20が最終有効ページであると仮特定された後、(i)ページ 20、 (ii )ページ 21の順に各々の全領域 (データ領域 202及び冗長領域 203)が読み出され 、ページ 20が最終有効ページであると特定され、かつ当該物理ブロック 201に電断 発生無しと判定される。
[0039] なお、最終有効ページが特定できた後は、 CPU109がテーブル RAM108の情報 を更新する。ただし、電断が発生したページ以降に書き込みを行うと、データ化けの 可能性があり、またデータの書き込み管理が正しくできない。したがって、電断による 訂正不能エラーが発見された場合には、有効なデータを消去済みの他の物理ブロッ クにコピーした後に、テーブル RAM108の情報を更新する。
[0040] 図 5は、図 3の変形例に係る二分探索実行部 114の動作を示している。図 5によれ ば、まずはステップ 501で物理ブロック 201の先頭ページ(ページ 0)の冗長領域 203 を読み出す。次にステップ 502で、ステップ 501で読み出したステータス情報をもとに 、ページ 0が消去済み(書き込み無し)力どうかを判定する。ステップ 502で消去済み と判定された場合には、ステップ 503に進み、ページ 0が最終有効ページであると仮 特定して終了する。このようにしてページ 0が最終有効ページであると早期に仮特定 した後は、最終有効データ特定実行部 115が図 4に示すフローチャートどおりの動作 をする。また、ステップ 502で書き込み有りと判定された場合には、二分探索実行部 1 14が図 3のステップ 301以下の動作をする。
[0041] 図 5の処理によれば、物理ブロック 201の状態として書き込み途中又は消去済みの どちらの可能性もあり、かつ消去済みの可能性が比較的高い場合においても、最終 有効ページの特定と電断に起因したエラーページの有無判定とを高速かつ正確に 実施することができる。
[0042] 図 6は、図 1中のフラッシュメモリ 104の他の内部構成例を示している。図 6に示した 例では、 4つの物理ブロック A, B, C, Dが 1つの物理ユニット 601を構成する。し力も 、 4つの物理ブロック A, B, C, Dの各々の 8ページからなるセグメントを単位として書 き込みが実行されるようになっている。 4つの物理ブロック A, B, C, Dは、各々 128 ページで構成される。つまり、図 6の物理ユニット 601は、セグメント 0からセグメント 15 までの 16セグメントで構成される。各ページは、図 2の場合と同様にデータ領域 (DA )と、冗長領域 (RA)とで構成される。
[0043] 図 6の物理ユニット 601は、必ず先頭セグメントから順にデータを書き込むことが要 求されるものである。図 6中のハッチングは、セグメント 0からセグメント 9までがデータ 書き込み済みであることを示して 、る。
[0044] 図 1中のページ書き込み実行部 113は、次のように動作する。すなわち、物理ュ- ット 601に対する書き込みは、ホスト 102からの転送バイト数にかかわらず、必ず 8ぺ ージ力 なるセグメント単位で行う。各セグメントの書き込みステータス情報は、当該 セグメント中の少なくとも先頭ページの冗長領域に記憶される。 [0045] 具体的には、ホスト 102からデータが転送されてきた場合、まず物理ブロック Aのぺ ージ 0にデータを書き込む。その後は物理ブロック Bのページ 0、物理ブロック Cのぺ ージ 0、物理ブロック Dのページ 0の順にデータを書き込む。各物理ブロックのページ 0が書き込み済みになったら、次は物理ブロック Aのページ 1に書き込みを行い、その 後は物理ブロック Bのページ 1、物理ブロック Cのページ 1、物理ブロック Dのページ 1 の順にデータを書き込む。もし物理ブロック Bのページ 1にデータを書き込んだ後に ホスト 102からの転送データが停止した場合には、残りのページに全ビットが" 1"のデ ータや、元データをコピーして書き込む。
[0046] 次に、図 6の物理ユニット 601における最終有効セグメントの特定と、電断に起因し たエラーセグメントの有無判定とを説明する。ここに、最終有効セグメントとは、当該物 理ユニット 601内で最後に書かれた、書き込み有りかつ訂正不能エラー無しのセグメ ントをいう。
[0047] 図 7は、図 6の構成を採用した場合の図 1中の二分探索実行部 114の動作を示して いる。ここでは、最終有効セグメントを検索する物理ユニット 601は少なくともセグメン ト 0への書き込みが必ずあるものとする。
[0048] 図 7によれば、まずはステップ 701で読み出し回数を表す変数 nの値を 1に設定し、 ステップ 702において読み出しセグメントアドレスを表す変数 Lの値を「(物理ユニット 601の全セグメント数) Z2」で決定する。次にステップ 703でセグメント Lの先頭ぺー ジの冗長領域を読み出す。このようにして読み出したセグメント Lの先頭ページの冗 長領域に格納されたデータ管理情報中の書き込みステータス情報をもとに、書き込 み有り Z無しの判定を行うことができる。書き込みステータス情報が" Low"のビットで あれば書き込み有りであり、 "High"であれば書き込み無しである。
[0049] 次にステップ 704で変数 nを 1だけインクリメントし、ステップ 705で「(物理ユニット 60 1の全セグメント数)≥2n」かどうかを判定する。このステップ 705は、ステップ 703から 後述のステップ 707又はステップ 708までのループ動作の終了条件にあたる。
[0050] ステップ 705で「Yes」の場合には、ステップ 706に進む。ステップ 706においてステ ップ 703で読み出したステータス情報が書き込み有りを表す場合にはステップ 707に 進む。ステップ 707では、変数 Lを「(物理ユニット 601の全セグメント数) Z2n」だけ増 カロさせる。一方、ステップ 706においてステップ 703で読み出したステータス情報が 書き込み無しを表す場合にはステップ 708に進む。ステップ 708では、変数 Lを「(物 理ユニット 601の全セグメント数) Z2n」だけ減少させる。ステップ 707又はステップ 70 8の次は、ステップ 703に戻って再度処理を実行する。
[0051] ステップ 705で「No」の場合にはステップ 709に進む。ステップ 709において、ステ ップ 703で読み出したステータス情報が書き込み有りを表す場合にはステップ 710に 進む。ステップ 710では、セグメント Lが最終有効セグメントであると仮特定する。一方 、ステップ 709において、ステップ 703で読み出したステータス情報が書き込み無し を表す場合にはステップ 711に進む。ステップ 711では、セグメント (L 1)が最終有 効セグメントであると仮特定する。
[0052] 図 6に示した物理ユニット 601の例では、(1)セグメント 8、(2)セグメント 12、(3)セ グメント 10、(4)セグメント 9の順に各セグメントの先頭ページの冗長領域が読み出さ れ、セグメント 9が最終有効セグメントであると仮特定される。
[0053] 図 8は、図 6の構成を採用した場合の図 1中の最終有効データ特定実行部 115の 動作を示している。なお、二分探索実行部 114による最終有効セグメントの仮特定が 既に終わって 、るものとする。
[0054] 図 8によれば、まずステップ 801において、二分探索実行部 114が仮特定した最終 有効セグメントをセグメント Nとする。次〖こステップ 802〖こおいて、セグメント Nの全ぺ 一ジの全領域 (データ領域及び冗長領域)の内容を順に読み出して、 ECC回路 111 を経由後、転送 RAM107に一時記憶させる。次に、ステップ 803でセグメント Nの訂 正不能エラーの有無を判定する。セグメント Nの全ページにぉ 、て訂正不能エラー 無しの場合にはステップ 804に進む。ステップ 804ではセグメント(N+ 1)の全ページ の全領域を読み出す。これは、セグメント(N+ 1)がエラーセグメントである力否かを 判断するために実行する。ステップ 805ではセグメント(N+ 1)の全ページのデータ 領域が消去済み (書き込み無し)か否かを判定する。セグメント (N+ 1)が消去済み の場合にはステップ 806に進む。このケースは当該物理ユニット 601に電断発生に 起因したエラーセグメントが無いケースである。ステップ 806では、セグメント Nを最終 有効セグメントであると特定し、かつ当該物理ユニット 601に電断発生無しと判定する [0055] ステップ 805でセグメント(N+ 1)のデータ領域への書き込み有りの場合にはステツ プ 807に進む。セグメント (N+ 1)は冗長領域が消去済みであるのに対してデータ領 域への書き込みがあるので、電断による異常状態と判定することができる。ステップ 8 07でセグメント Nを最終有効セグメントであると特定し、かつセグメント(N+ 1)の書き 込み中の電断発生有りと判定する。
[0056] ステップ 803でセグメント Nの訂正不能エラー有りの場合にはステップ 808へ進む。
セグメント Nは冗長領域が消去済みであるのに対してデータ領域への書き込みがあ るので、電断による異常状態と判定することができる。ただし、セグメント (N—1)にも 訂正不能エラーが存在する力否かを判定する必要がある。そこで、ステップ 808では セグメント (N— 1)の全ページの全領域を読み出す。次にステップ 809でセグメント( N—1)の訂正不能エラー無しの場合にはステップ 810に進む。ステップ 810では、セ グメント (N— 1)を最終有効セグメントであると特定し、かつセグメント Nの書き込み中 の電断発生有りと判定する。
[0057] ステップ 809でセグメント(N— 1)の訂正不能エラー発生有りの場合にはステップ 8 11に進む。これは、セグメント N及びセグメント(N—1)の両セグメントにおいて訂正 不能エラーが発生したケースである。このケースは電断 1回では生じな 、異常状態の ため、当該物理ユニット 601には有効なセグメントが全く無いものとして処理を終了す る。
[0058] 図 6に示した物理ユニット 601には電断発生に起因したエラーセグメントが全く無い ものとすると、セグメント 9が最終有効セグメントであると仮特定された後、(i)セグメント 9、 (ii)セグメント 10の順に各々の全ページの全領域 (データ領域及び冗長領域)が 読み出され、セグメント 9が最終有効セグメントであると特定され、かつ当該物理ュニ ット 601に電断発生無しと判定される。
[0059] なお、最終有効セグメントが特定できた後は、 CPU109がテーブル RAM108の情 報を更新する。ただし、電断が発生したセグメント以降に書き込みを行うと、データ化 けの可能性があり、またデータの書き込み管理が正しくできない。したがって、電断に よる訂正不能エラーが発見された場合には、有効なデータを消去済みの他の物理ュ ニットにコピーした後に、テーブル RAM108の情報を更新する。
産業上の利用の可能性
以上説明してきたとおり、本発明に係るメモリコントローラは、最終有効ページ又は 最終有効セグメントの特定と電断に起因したエラーページ又はエラーセグメントの有 無判定とを高速かつ正確に実施でき、順次書き込み制約を持つフラッシュメモリへの アクセス制御技術として有用である。

Claims

請求の範囲
[1] 複数のページからなる物理ブロックを有し、かつ各ページがデータを格納するデー タ領域と、データ管理情報を格納する冗長領域とを有するフラッシュメモリへのァクセ スを制御するためのメモリコントローラであって、
前記物理ブロックの消去済みの全ページのうち先頭ページから順に、前記データ 領域にデータを書き込み、かつ当該データのエラー訂正のための情報と、当該デー タが書き込み済みであることを示すステータス情報とを前記データ管理情報として前 記冗長領域に書き込むページ書き込み実行部と、
各ページの前記冗長領域中の前記ステータス情報を二分探索しながら読み出して 最終有効ページを仮特定する二分探索実行部と、
前記二分探索実行部により仮特定された最終有効ページと、当該仮特定された最 終有効ページに隣接するページとから、各データ領域中のデータ及び各冗長領域 中のデータ管理情報を読み出し、それぞれのページにおける訂正不能エラーの有 無と前記データ領域への書き込みの有無とに関するチェックの結果に応じて、最終 有効ページの特定と、前記ページ書き込み実行部の動作途中の電源オフに起因し たエラーページの有無判定とを行う最終有効データ特定実行部とを備えたことを特 徴とするメモリコントローラ。
[2] 請求項 1記載のメモリコントローラにおいて、
前記二分探索実行部は、前記ステータス情報の二分探索の実行前に、前記物理 ブロックの先頭ページ力 前記ステータス情報を読み出して当該先頭ページが消去 済みかどうかを検出し、消去済みである場合には当該先頭ページを最終有効ページ として仮特定する機能を更に有することを特徴とするメモリコントローラ。
[3] 請求項 1記載のメモリコントローラと、当該メモリコントローラによりアクセスが制御さ れるフラッシュメモリとを備えたことを特徴とする不揮発性記憶装置。
[4] 請求項 3記載の不揮発性記憶装置にお 、て、
前記メモリコントローラと前記フラッシュメモリとが 1チップに構成されたことを特徴と する不揮発性記憶装置。
[5] 請求項 3記載の不揮発性記憶装置と、当該不揮発性記憶装置へのアクセスを要求 するホストとを備えたことを特徴とする不揮発性記憶システム。
[6] 複数の物理ブロック力 なる物理ユニットを有し、前記複数の物理ブロックは各々複 数のページ力 なり、かつ各ページがデータを格納するデータ領域と、データ管理情 報を格納する冗長領域とを有するフラッシュメモリへのアクセスを制御するためのメモ リコントローラであって、
前記複数の物理ブロックの各々の所定数のページ力 なるセグメントを書き込み単 位として、前記物理ユニットの消去済みの全セグメントのうち先頭セグメントから順に、 前記データ領域にデータを書き込み、かつ当該データのエラー訂正のための情報と 、当該データが書き込み済みであることを示すステータス情報とを前記データ管理情 報として前記冗長領域に書き込むページ書き込み実行部と、
各セグメントの先頭ページの前記冗長領域中の前記ステータス情報を二分探索し ながら読み出して最終有効セグメントを仮特定する二分探索実行部と、
前記二分探索実行部により仮特定された最終有効セグメントに属する全ページと、 当該仮特定された最終有効セグメントに隣接するセグメントに属する全ページとから 、各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出し、それ ぞれのセグメントにおける訂正不能エラーの有無と前記データ領域への書き込みの 有無とに関するチェックの結果に応じて、最終有効セグメントの特定と、前記ページ 書き込み実行部の動作途中の電源オフに起因したエラーセグメントの有無判定とを 行う最終有効データ特定実行部とを備えたことを特徴とするメモリコントローラ。
[7] 請求項 6記載のメモリコントローラと、当該メモリコントローラによりアクセスが制御さ れるフラッシュメモリとを備えたことを特徴とする不揮発性記憶装置。
[8] 請求項 7記載の不揮発性記憶装置にお 、て、
前記メモリコントローラと前記フラッシュメモリとが 1チップに構成されたことを特徴と する不揮発性記憶装置。
[9] 請求項 7記載の不揮発性記憶装置と、当該不揮発性記憶装置へのアクセスを要求 するホストとを備えたことを特徴とする不揮発性記憶システム。
[10] 複数のページからなる物理ブロックを有し、かつ各ページがデータを格納するデー タ領域と、データ管理情報を格納する冗長領域とを有するフラッシュメモリへのァクセ スを制御する方法であって、
前記物理ブロックの消去済みの全ページのうち先頭ページから順に、前記データ 領域にデータを書き込み、かつ当該データのエラー訂正のための情報と、当該デー タが書き込み済みであることを示すステータス情報とを前記データ管理情報として前 記冗長領域に書き込むページ書き込みステップと、
各ページの前記冗長領域中の前記ステータス情報を二分探索しながら読み出して 最終有効ページを仮特定する二分探索ステップと、
前記二分探索ステップにより仮特定された最終有効ページと、当該仮特定された 最終有効ページに隣接するページとから、各データ領域中のデータ及び各冗長領 域中のデータ管理情報を読み出し、それぞれのページにおける訂正不能エラーの 有無と前記データ領域への書き込みの有無とに関するチェックの結果に応じて、最 終有効ページの特定と、前記ページ書き込みステップの動作途中の電源オフに起因 したエラーページの有無判定とを行う最終有効データ特定ステップとを備えたことを 特徴とするフラッシュメモリのアクセス制御方法。
[11] 請求項 10記載のフラッシュメモリのアクセス制御方法において、
前記二分探索ステップは、前記ステータス情報の二分探索の実行前に、前記物理 ブロックの先頭ページ力 前記ステータス情報を読み出して当該先頭ページが消去 済みかどうかを検出し、消去済みである場合には当該先頭ページを最終有効ページ として仮特定するステップを有することを特徴とするフラッシュメモリのアクセス制御方 法。
[12] 複数の物理ブロック力 なる物理ユニットを有し、前記複数の物理ブロックは各々複 数のページ力 なり、かつ各ページがデータを格納するデータ領域と、データ管理情 報を格納する冗長領域とを有するフラッシュメモリへのアクセスを制御する方法であつ て、
前記複数の物理ブロックの各々の所定数のページ力 なるセグメントを書き込み単 位として、前記物理ユニットの消去済みの全セグメントのうち先頭セグメントから順に、 前記データ領域にデータを書き込み、かつ当該データのエラー訂正のための情報と 、当該データが書き込み済みであることを示すステータス情報とを前記データ管理情 報として前記冗長領域に書き込むページ書き込みステップと、 各セグメントの先頭ページの前記冗長領域中の前記ステータス情報を二分探索し ながら読み出して最終有効セグメントを仮特定する二分探索ステップと、
前記二分探索ステップにより仮特定された最終有効セグメントに属する全ページと 、当該仮特定された最終有効セグメントに隣接するセグメントに属する全ページとか ら、各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出し、それ ぞれのセグメントにおける訂正不能エラーの有無と前記データ領域への書き込みの 有無とに関するチェックの結果に応じて、最終有効セグメントの特定と、前記ページ 書き込みステップの動作途中の電源オフに起因したエラーセグメントの有無判定とを 行う最終有効データ特定ステップとを備えたことを特徴とするフラッシュメモリのァクセ ス制御方法。
PCT/JP2006/318597 2006-03-13 2006-09-20 フラッシュメモリ用のメモリコントローラ WO2007119267A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE602006014734T DE602006014734D1 (de) 2006-03-13 2006-09-20 Flashspeichersteuerung
JP2007509790A JP4524309B2 (ja) 2006-03-13 2006-09-20 フラッシュメモリ用のメモリコントローラ
US11/667,477 US8006030B2 (en) 2006-03-13 2006-09-20 Memory controller for identifying the last valid page/segment in a physical block of a flash memory
EP06798153A EP2003569B1 (en) 2006-03-13 2006-09-20 Flash memory controller

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006-067385 2006-03-13
JP2006067385 2006-03-13

Publications (1)

Publication Number Publication Date
WO2007119267A1 true WO2007119267A1 (ja) 2007-10-25

Family

ID=38609089

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/318597 WO2007119267A1 (ja) 2006-03-13 2006-09-20 フラッシュメモリ用のメモリコントローラ

Country Status (7)

Country Link
US (1) US8006030B2 (ja)
EP (1) EP2003569B1 (ja)
JP (1) JP4524309B2 (ja)
CN (1) CN101288056A (ja)
DE (1) DE602006014734D1 (ja)
TW (1) TW200736909A (ja)
WO (1) WO2007119267A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277584A (ja) * 2009-04-28 2010-12-09 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ
CN101587744B (zh) * 2009-06-19 2011-11-23 上海微小卫星工程中心 一种大规模flash存储阵列的多层次数据冗余方法
JP2012208803A (ja) * 2011-03-30 2012-10-25 Keihin Corp 電子制御装置
TWI425513B (zh) * 2009-08-13 2014-02-01 Silicon Motion Inc 識別快閃記憶體中區塊之資料頁的方法以及相關之記憶裝置
JP2019168898A (ja) * 2018-03-23 2019-10-03 東芝メモリ株式会社 メモリシステム及びメモリシステムの制御方法
JP2020009370A (ja) * 2018-07-12 2020-01-16 キオクシア株式会社 メモリシステムおよびその制御方法
JP2020123023A (ja) * 2019-01-29 2020-08-13 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN111984462A (zh) * 2019-05-22 2020-11-24 慧荣科技股份有限公司 无预警断电复原管理方法、记忆装置、控制器及电子装置

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5142685B2 (ja) * 2007-11-29 2013-02-13 株式会社東芝 メモリシステム
JP4818404B2 (ja) * 2009-06-26 2011-11-16 株式会社東芝 素材サーバおよび素材蓄積方法
CN102103558B (zh) * 2009-12-18 2013-09-18 上海华虹集成电路有限责任公司 一种带有写重传功能的多通道NANDflash控制器
TWI447739B (zh) * 2010-03-22 2014-08-01 Phison Electronics Corp 錯誤校正方法、記憶體控制器與儲存系統
TWI451435B (zh) * 2010-10-08 2014-09-01 Phison Electronics Corp 非揮發性記憶體儲存裝置、記憶體控制器與資料儲存方法
US8683113B2 (en) * 2011-02-04 2014-03-25 Western Digital Technologies, Inc. Concurrently searching multiple devices of a non-volatile semiconductor memory
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
CN102411548B (zh) * 2011-10-27 2014-09-10 忆正存储技术(武汉)有限公司 闪存控制器以及闪存间数据传输方法
CN102609334B (zh) * 2012-01-09 2016-05-04 晨星软件研发(深圳)有限公司 非易失闪存擦除异常存储块修复方法和装置
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8898545B2 (en) * 2012-05-18 2014-11-25 Hitachi, Ltd. Semiconductor storage device and control method of nonvolatile memory
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
CN103020323B (zh) * 2013-01-15 2016-01-20 山东大学 一种基于未知长度二分查找的闪存数据检索存储的方法
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9183081B2 (en) * 2013-03-12 2015-11-10 Sandisk Technologies Inc. Systems and methods for performing defect detection and data recovery in a memory system
JP5695112B2 (ja) * 2013-03-18 2015-04-01 富士通テン株式会社 データ記憶装置、データの記憶方法および車載用制御装置
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) * 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
CN103778964B (zh) * 2013-12-30 2016-08-17 上海晨思电子科技有限公司 一种NAND Flash烧写数据的处理、使用方法及装置、系统
CN105808153B (zh) * 2014-12-31 2018-11-13 深圳市硅格半导体有限公司 存储系统及其读写操作方法
KR102547642B1 (ko) * 2016-05-18 2023-06-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN107544925B (zh) * 2016-06-24 2020-05-08 爱思开海力士有限公司 存储器系统及加速引导时间的方法
KR102790818B1 (ko) * 2016-11-24 2025-04-07 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP2020021385A (ja) * 2018-08-03 2020-02-06 キオクシア株式会社 メモリシステム
TWI696951B (zh) * 2018-08-31 2020-06-21 威剛科技股份有限公司 儲存裝置異常斷電的處理系統和方法
JP2020047834A (ja) 2018-09-20 2020-03-26 キオクシア株式会社 記憶装置
JP7017495B2 (ja) * 2018-10-15 2022-02-08 ハギワラソリューションズ株式会社 フラッシュメモリの管理方法
CN111949426B (zh) * 2019-05-16 2024-09-17 兆易创新科技集团股份有限公司 一种固件程序错误的检测方法、装置及存储设备
CN112100087B (zh) 2019-06-17 2024-04-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130750B (zh) * 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110764693B (zh) * 2019-09-12 2023-03-28 深圳市德明利技术股份有限公司 一种提高Nand flash数据稳定性的方法以及装置
JP7500365B2 (ja) * 2020-09-14 2024-06-17 キオクシア株式会社 メモリシステム
CN114116309B (zh) * 2021-11-19 2023-04-14 合肥康芯威存储技术有限公司 一种存储器的数据存取方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2256735A (en) 1991-06-12 1992-12-16 Intel Corp Non-volatile disk cache.
JP2002073425A (ja) * 2000-08-31 2002-03-12 Hitachi Ltd 媒体再生装置
JP2003015929A (ja) * 2001-06-28 2003-01-17 Matsushita Electric Ind Co Ltd 不揮発性メモリの制御方法
WO2003030180A1 (en) 2001-09-28 2003-04-10 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
WO2004021191A1 (ja) 2002-08-29 2004-03-11 Matsushita Electric Industrial Co., Ltd. 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法
DE10322723B3 (de) 2003-05-20 2004-10-14 Infineon Technologies Ag Vorrichtung und Verfahren zum Behandeln eines Zustands eines Speichers

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240178B2 (en) * 2001-07-25 2007-07-03 Sony Corporation Non-volatile memory and non-volatile memory data rewriting method
US7003532B2 (en) * 2002-11-27 2006-02-21 Microsoft Corporation System and method for scaleable multiplexed transactional log recovery
US6988175B2 (en) * 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
JP2006285600A (ja) * 2005-03-31 2006-10-19 Tokyo Electron Device Ltd 記憶装置、メモリ管理装置、メモリ管理方法及びプログラム
US7747903B2 (en) * 2007-07-09 2010-06-29 Micron Technology, Inc. Error correction for memory

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2256735A (en) 1991-06-12 1992-12-16 Intel Corp Non-volatile disk cache.
JP2002073425A (ja) * 2000-08-31 2002-03-12 Hitachi Ltd 媒体再生装置
JP2003015929A (ja) * 2001-06-28 2003-01-17 Matsushita Electric Ind Co Ltd 不揮発性メモリの制御方法
US20030189860A1 (en) 2001-06-28 2003-10-09 Akio Takeuchi Non-volatile memory control method
WO2003030180A1 (en) 2001-09-28 2003-04-10 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
WO2004021191A1 (ja) 2002-08-29 2004-03-11 Matsushita Electric Industrial Co., Ltd. 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法
DE10322723B3 (de) 2003-05-20 2004-10-14 Infineon Technologies Ag Vorrichtung und Verfahren zum Behandeln eines Zustands eines Speichers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2003569A4 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277584A (ja) * 2009-04-28 2010-12-09 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ
CN101587744B (zh) * 2009-06-19 2011-11-23 上海微小卫星工程中心 一种大规模flash存储阵列的多层次数据冗余方法
TWI425513B (zh) * 2009-08-13 2014-02-01 Silicon Motion Inc 識別快閃記憶體中區塊之資料頁的方法以及相關之記憶裝置
JP2012208803A (ja) * 2011-03-30 2012-10-25 Keihin Corp 電子制御装置
JP2019168898A (ja) * 2018-03-23 2019-10-03 東芝メモリ株式会社 メモリシステム及びメモリシステムの制御方法
JP7109949B2 (ja) 2018-03-23 2022-08-01 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法
JP2020009370A (ja) * 2018-07-12 2020-01-16 キオクシア株式会社 メモリシステムおよびその制御方法
JP7030636B2 (ja) 2018-07-12 2022-03-07 キオクシア株式会社 メモリシステムおよびその制御方法
JP2020123023A (ja) * 2019-01-29 2020-08-13 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN111984462A (zh) * 2019-05-22 2020-11-24 慧荣科技股份有限公司 无预警断电复原管理方法、记忆装置、控制器及电子装置
CN111984462B (zh) * 2019-05-22 2024-06-11 慧荣科技股份有限公司 无预警断电复原管理方法、记忆装置、控制器及电子装置

Also Published As

Publication number Publication date
DE602006014734D1 (de) 2010-07-15
CN101288056A (zh) 2008-10-15
EP2003569B1 (en) 2010-06-02
US20090228634A1 (en) 2009-09-10
EP2003569A9 (en) 2009-04-15
US8006030B2 (en) 2011-08-23
JP4524309B2 (ja) 2010-08-18
JPWO2007119267A1 (ja) 2009-08-27
EP2003569A2 (en) 2008-12-17
EP2003569A4 (en) 2009-04-22
TW200736909A (en) 2007-10-01

Similar Documents

Publication Publication Date Title
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
JP4129381B2 (ja) 不揮発性半導体記憶装置
JP3692313B2 (ja) 不揮発性メモリの制御方法
TWI592800B (zh) 記憶體管理方法及使用所述方法的儲存控制器
CN104423888B (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
US8756398B2 (en) Partitioning pages of an electronic memory
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TW201443776A (zh) 韌體碼載入方法、記憶體控制器與記憶體儲存裝置
CN101625897B (zh) 用于快闪存储器的数据写入方法、储存系统与控制器
CN104765568A (zh) 数据存储方法、存储器控制电路单元与存储器存储装置
TWI421870B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
TWI447579B (zh) 程式碼載入與存取方法、記憶體控制器與記憶體儲存裝置
US8607123B2 (en) Control circuit capable of identifying error data in flash memory and storage system and method thereof
TW201734793A (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US8943289B2 (en) Data moving method for flash memory module, and memory controller and memory storage apparatus using the same
CN102800357B (zh) 程序码载入与存取方法、存储器控制器与存储器储存装置
TW201820114A (zh) 資料寫入方法以及儲存控制器
CN104166558B (zh) 固件码载入方法、存储器控制器与存储器存储装置
JP2008251154A (ja) 不揮発性半導体記憶装置
JP4794530B2 (ja) 半導体装置および携帯電話
TWI813362B (zh) 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元
JP4661369B2 (ja) メモリコントローラ
CN112988069B (zh) 存储器管理方法、存储器存储装置及存储器控制器
CN102467459A (zh) 数据写入方法、存储器控制器与存储器储存装置
CN112988076A (zh) 快闪存储器控制方法、存储装置及控制器

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200680001444.0

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 2007509790

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2006798153

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11667477

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 06798153

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE