WO2007119267A1 - フラッシュメモリ用のメモリコントローラ - Google Patents
フラッシュメモリ用のメモリコントローラ Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 claims description 33
- 238000013523 data management Methods 0.000 claims description 24
- 238000012937 correction Methods 0.000 claims description 7
- 238000007726 management method Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 description 14
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 208000011580 syndromic disease Diseases 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000012447 hatching Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online 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
Description
Claims
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)
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)
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)
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)
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 |
-
2006
- 2006-09-20 US US11/667,477 patent/US8006030B2/en active Active
- 2006-09-20 WO PCT/JP2006/318597 patent/WO2007119267A1/ja active Application Filing
- 2006-09-20 DE DE602006014734T patent/DE602006014734D1/de active Active
- 2006-09-20 JP JP2007509790A patent/JP4524309B2/ja not_active Expired - Fee Related
- 2006-09-20 EP EP06798153A patent/EP2003569B1/en not_active Not-in-force
- 2006-09-20 CN CNA2006800014440A patent/CN101288056A/zh active Pending
- 2006-11-17 TW TW095142709A patent/TW200736909A/zh unknown
Patent Citations (7)
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)
Title |
---|
See also references of EP2003569A4 * |
Cited By (11)
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 |