WO2007023674A1 - メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 - Google Patents

メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 Download PDF

Info

Publication number
WO2007023674A1
WO2007023674A1 PCT/JP2006/315725 JP2006315725W WO2007023674A1 WO 2007023674 A1 WO2007023674 A1 WO 2007023674A1 JP 2006315725 W JP2006315725 W JP 2006315725W WO 2007023674 A1 WO2007023674 A1 WO 2007023674A1
Authority
WO
WIPO (PCT)
Prior art keywords
page
data
error
memory
physical block
Prior art date
Application number
PCT/JP2006/315725
Other languages
English (en)
French (fr)
Inventor
Masahiro Nakanishi
Masayuki Toyama
Manabu Inoue
Hirofumi Nakagaki
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 US12/064,469 priority Critical patent/US20090100290A1/en
Publication of WO2007023674A1 publication Critical patent/WO2007023674A1/ja

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Definitions

  • the present invention relates to a nonvolatile storage device including a rewritable nonvolatile memory, a memory controller that controls the nonvolatile storage device, a nonvolatile storage system, and a data writing method.
  • the demand for a nonvolatile memory device including a rewritable nonvolatile main memory is increasing, particularly for a semiconductor memory card.
  • This memory card includes a flash memory as a non-volatile memory and a memory controller for controlling the flash memory.
  • the memory controller performs read / write control on the flash memory in response to read / write instructions from an access device such as a digital still camera or a personal computer. Since flash memory has a large variation in characteristics of storage elements compared to volatile memory such as RAM, write errors occur relatively frequently. For this reason, some memory cards with built-in non-volatile memory perform an alternative process of replacing a storage area in which a write error has occurred with another storage area (Patent Document 1).
  • the nonvolatile memory is usually a flash memory in which each memory cell is closed within one page, such as binary NAND.
  • Patent Document 2 discloses a technique in which the page structure of a multi-level NAND flash memory is improved in order to realize high-speed access.
  • conventional flash memory which is a binary memory
  • one memory cell holds a bit of data in one page.
  • the multi-level NAND flash memory is configured such that each memory cell is formed across a plurality of pages, for example, two pages, that is, holds a plurality of bits of data.
  • FIGS. 1 to 3 show that each memory cell spans multiple pages as in a multi-level NAND flash memory. It is a block diagram showing the non-volatile memory comprised.
  • pages with the same group number (GN) are two pages including data held in one memory cell. The page that is not hatched is the first page, and the page that is hatched with hatching is the second page.
  • even pages and odd pages are paired to constitute one memory cell.
  • pagers with the same group number indicated by GN are page pairs that share one memory cell.
  • the low-order page is the first page
  • the high-order page is the second page.
  • the force that the first page and the second page are adjacent to each other.
  • the first page and the second page are separated. This is separated in order to reduce the influence (disturbance) on the data stored in the other page by writing to one page.
  • FIG. 4 is a characteristic diagram showing the voltage distribution of the memory cells of the multi-level NAND flash memory shown in FIGS.
  • This memory cell stores 2 bits of information. This is the voltage V obtained from the horizontal force memory cell, and the vertical axis is the probability P of that voltage.
  • each memory cell is “11” in an erased state.
  • each memory cell transitions from the state of “11” to the state of “11” or “10”.
  • each memory cell remains in the “11” state from the “11” state or transitions to the “01” state if the writing is successful.
  • the state changes from “10” to “10” or “00”.
  • FIG. 5 is a characteristic diagram showing a state when data can be normally written to the memory cell.
  • the target value "01" is written by writing the first and second pages. Assuming that As a writing process, first, the state of “1 1” is set by writing the first page, and then the state of “01” is set by writing the second page.
  • FIG. 6 is a characteristic diagram showing a state in the case where the memory cell can be normally written.
  • “10” in the process where the applied voltage to the memory cell transitions from the “11” state to the “01” state, due to an abnormality such as voltage fluctuation inside the flash memory, “10” It shows that it falls into a state. Also, it may fall into the “00” state, and such an abnormality is referred to as “flash abnormality”.
  • flash abnormality In the second page write, when the voltage reaches the “10” or “00” state during the transition from the “11” state to the “01” state, the voltage applied to the memory cell is non-volatile. The power supplied to the volatile memory may be turned off, resulting in a "10” or "00” state.
  • power shutdown such an abnormality is referred to as “power shutdown”.
  • Patent Document 1 Japanese Patent Laid-Open No. 2003-76615
  • Patent Document 2 JP 2001-93288 A
  • FIG. 7A shows the state in which the buffer power shown at the left end of the figure is also written to physical block PB10 as shown in A, B, and C sequentially.
  • FIG. 7B is an operation explanatory diagram showing an error elimination process when a flash abnormality occurs.
  • the data stored in pages 0 to 16 of physical block PB10 is copied to the corresponding page of other physical blocks, for example PB5, and the data to be stored in page 17 of PB10, that is, Rewrite the data of logical addresses LA68 to 71 to page 17 of PB5.
  • the power is cut off, new data is written again from page 17 when the next power is turned on.
  • the data recorded on pages 0 to 16 is copied to the corresponding page of PB5.
  • An object of the present invention is to provide a highly reliable memory controller, a nonvolatile storage device, a nonvolatile storage system, and a data writing method that can eliminate errors that occur.
  • the memory controller of the present invention is configured by a plurality of pages, and each memory cell gives externally to a nonvolatile memory that holds a plurality of pages of data constituting a group.
  • a memory controller that reads data from the non-volatile memory and reads the data from the non-volatile memory, and has an error resolution unit that eliminates errors that occur in the data stored in other pages in the same group as the page where the error occurred.
  • the error canceling unit assumes that, prior to data writing, another page that is in the same group as the write destination current page and already stores data is a related page. Read the stored relational data and temporarily store the relational data in the save area. It is intended to eliminate the E error by using the relational data.
  • the memory controller includes an error page specifying unit that specifies a page in which an error has occurred when an error occurs during writing to a page of the nonvolatile memory, and the error page
  • the specifying unit may include a power-off determination unit that determines occurrence of power-off and a memory abnormality determination unit that determines occurrence of abnormality in the nonvolatile memory.
  • the error elimination unit includes a page information instruction unit that outputs page information relating to pages constituting the same group in the nonvolatile memory, and a page output from the current page and the page information instruction unit. And a related page specifying unit that specifies a related page based on the information, and an alternative 'repair processing unit that repairs data stored in the related page using the related data when an error occurs. You may do so.
  • the non-volatile memory is composed of a plurality of physical blocks
  • the alternative repair processing unit separates data written in a page having no error in the physical block being written into the non-volatile memory. Copy processing to transfer to the invalid physical block, repair processing to rewrite the related data held in the evacuation area to the invalid physical block repaired data, which was erroneously written, and physical block write failure Retry processing to write data to the invalid physical block again.
  • the non-volatile memory has a plurality of physical block powers
  • the alternative repair processing unit separates the data written in the error-free page of the physical block being written into the non-volatile memory.
  • the resolution unit may save the related data in a non-volatile storage area.
  • the error elimination unit may be a non-volatile save memory that saves related data.
  • the save memory may be a nonvolatile RAM.
  • the non-volatile RAM includes a ferroelectric memory (FeRAM), a magnetic recording type arbitrary write / read memory (MRAM), an ovonic unified memory (OUM), a resistance! ⁇ It may be composed of one of M (RRAM)!
  • a nonvolatile memory device includes a nonvolatile memory configured by a plurality of pages, each memory cell holding data of a plurality of pages forming a group, and A non-volatile storage device having a memory controller for writing data supplied from the outside and reading the data from the non-volatile memory, wherein the memory controller has another page in the same group as the error page in which the write error has occurred.
  • An error canceling unit that cancels an error that occurs in the data stored in the memory, and the error canceling unit is another page that forms the same group as the current page of the write destination prior to data writing, If a page storing data is a related page, the related data stored in the related page is read and the related page is read. Temporarily stores the data in a save area, is intended to eliminate the error by using the relationship data when an error occurs.
  • a nonvolatile storage system of the present invention is a nonvolatile storage system including an access device and a nonvolatile storage device, and the access device is included in the nonvolatile storage device.
  • the nonvolatile memory device is configured by a plurality of pages, and each memory cell includes a non-volatile memory that holds a plurality of pages of data constituting a group, and is provided from the outside.
  • a memory controller that reads data from the non-volatile memory, and the memory controller generates an error that occurs in data stored in another page of the same group as the error page in which the write error occurred.
  • An error canceling unit that eliminates the error, the error canceling unit prior to data writing, If another page that is in the same group as the current page of the destination and stores the data is a related page, the related data stored in the related page is read and the related data is read. Is temporarily stored in the save area, and when an error occurs, the related data is used to eliminate the error.
  • a data writing method of the present invention is configured by a plurality of pages, and each memory cell holds data of a plurality of pages forming a group from a nonvolatile memory from the outside.
  • a data writing method for writing given data which is stored in another page in the same group as the error page where there was a write error.
  • a step of eliminating an error that occurs in the stored data, and in the error eliminating step, prior to the data writing, the data is already stored in another page that constitutes the same group as the current page of the writing destination. If the page is a related page, the related data stored in the related page is read, the related data is temporarily stored in the save area, and the error is resolved using the related data when an error occurs.
  • the error elimination unit even when an error peculiar to a memory in which a certain memory cell stores a plurality of pages of data occurs by the error elimination unit, the error can be eliminated. Therefore, even in memory cards that use flash memory such as multi-level NAND, which will become the mainstream in the future, the reliability should be as high as or better than memory cards that use conventional memory in which memory cells store one page of data. The effect of being able to be obtained.
  • FIG. 1 is a configuration diagram showing a multi-level NAND nonvolatile memory.
  • FIG. 2 is a configuration diagram showing a multi-level NAND nonvolatile memory.
  • FIG. 3 is a block diagram showing a multi-level NAND nonvolatile memory.
  • FIG. 4 is a characteristic diagram showing the voltage distribution of memory cells of a multi-level NAND flash memory.
  • FIG. 5 is a characteristic diagram showing a state when data can be normally written to the memory cell.
  • FIG. 6 is a characteristic diagram showing a state in the case where the memory cell is normally written.
  • FIG. 7A is a flowchart showing data write processing in normal processing in a conventional nonvolatile storage system.
  • FIG. 7B is a flowchart showing an alternative process in the normal process in the conventional nonvolatile memory system.
  • FIG. 8A is a block diagram of the nonvolatile memory system according to the first example of the present invention.
  • FIG. 8B is a block diagram showing a detailed configuration of an error page specifying unit and an error solving unit of the nonvolatile memory system according to the embodiment of the present invention.
  • FIG. 9 is a diagram showing a configuration of a nonvolatile memory according to the present example.
  • FIG. 10 is an explanatory diagram showing a format of a physical block provided in the nonvolatile memory 110.
  • FIG. 11 is an explanatory diagram showing the format of the logical address LA.
  • FIG. 12 is an explanatory diagram showing the format of the physical area management table 141.
  • FIG. 13 is an explanatory diagram showing the format of a logical-physical conversion table 142.
  • FIG. 14 is an explanatory diagram showing a current block status table.
  • FIG. 15 is an address map showing the format of the page information table.
  • FIG. 16A is a flowchart showing the contents of initialization processing and error elimination processing.
  • FIG. 16B is a flowchart showing the contents of the initialization process and error elimination process.
  • FIG. 17A is an operation explanatory diagram showing error elimination processing when a flash abnormality occurs.
  • FIG. 17B is an operation explanatory diagram showing an error elimination process when a flash abnormality occurs.
  • FIG. 18 is a flowchart showing the processing contents of the flash abnormality determination unit.
  • FIG. 19 is a flowchart showing processing contents of a related page specifying unit.
  • FIG. 20 is a flowchart showing details of error elimination processing in normal processing.
  • FIG. 21 is a flowchart showing the processing contents of the power-off judgment in the normal processing.
  • FIG. 22 is an operation explanatory diagram showing an error solving process when the power is cut off.
  • FIG. 23A is a block diagram of a nonvolatile memory system according to a second embodiment of the present invention.
  • FIG. 23B is a block diagram showing a detailed configuration of an error base identification unit and an error elimination unit of the nonvolatile memory system according to the second example of the present invention.
  • FIG. 24A is an operation explanatory diagram showing an error elimination process when a flash abnormality occurs in the second embodiment of the present invention.
  • FIG. 24B is an operation explanatory diagram showing an error elimination process when a flash abnormality occurs in the second embodiment of the present invention.
  • FIG. 25 is an operation explanatory diagram showing an error elimination process when a power interruption occurs in the second embodiment of the present invention.
  • Figure 8 is a block diagram of a non-volatile storage system.
  • Non-volatile storage system is non-volatile
  • the storage device 100 and the access device 101 are configured.
  • the non-volatile storage device 100 includes a non-volatile memory 110 composed of a flash memory and a memory controller 120.
  • the nonvolatile memory 110 is a multi-level NAND flash memory in which one memory cell holds data across two pages.
  • the nonvolatile memory 110 is composed of 4096 physical blocks PB0 to PB4095.
  • a physical block is a unit of erasure, and each page is composed of 128 pages.
  • Each page is an access unit from the memory controller 120 and has a storage capacity of 2112 bytes.
  • the memory has the same group structure as in Fig. 3.
  • the access device 101 performs a read / write command of user data (hereinafter simply referred to as data) to the nonvolatile storage device 100, transmission of a logical address in which the data is stored, and transmission / reception of data. .
  • the memory controller 120 writes the received data to the nonvolatile memory 110, reads the data from the nonvolatile memory 110, and outputs it to the outside.
  • the memory controller 120 provided in the nonvolatile memory device 100 includes a host IF 121 and a CPU 122 that controls the entire memory controller 120.
  • the memory controller 120 includes a RAM 123 that is a work area of the CPU 122 and a ROM 124 that stores a program executed by the CPU 122. Further, the memory controller 120 has a nother memory 125 for temporarily storing data when accessing the nonvolatile memory 110, and an address management unit 126 for designating the address of the nonvolatile memory 110! .
  • the noffer memory 125 is composed of a volatile memory such as SRAM having a capacity of one page or a non-volatile memory such as FeRAM.
  • the read / write control unit 127 writes data into the nonvolatile memory 110 or reads data from the nonvolatile memory 110 based on the address designated by the address management unit 126. .
  • the error page identification unit 128 transfers an error type flag to the error elimination unit 129 when an error occurs during writing to a certain page in the nonvolatile memory 110.
  • the error type flag is a flag for specifying the physical address of the page (hereinafter referred to as an error page number) and the type of error.
  • the error page identification section is detailed in Figure 8B.
  • a current block status table (CBST in the figure) 131, a power shutdown judgment unit 132, and a flash abnormality judgment unit 133 are provided to indicate the correct block.
  • the current block status table 131 is a table for storing a write state to a physical block currently being accessed.
  • the current block status table 131 is composed of non-volatile RAM such as ferroelectric memory (FeRAM), magnetic recording type write / read memory (MRAM), Ovonic unified memory (OUM), and resistance RAM (RRAM).
  • FeRAM ferroelectric memory
  • MRAM magnetic recording type write / read memory
  • OUM Ovonic unified memory
  • RRAM resistance RAM
  • the power-off determination unit 132 determines the occurrence of power-off, which is one of the causes of errors.
  • the power shutdown judgment unit 132 stores the current block status stored in the current block status table 131, the ready / busy flag transferred from the nonvolatile memory 110 after the data is written to the nonvolatile memory 110, and the address management unit. Based on the current page number that represents the physical address of the currently written page transferred from 126, the error page number where the error occurred is specified. Then, the power shutdown judgment unit 132 transfers the error page number and the error type flag to the error elimination unit 129.
  • the flash abnormality determination unit 133 is a memory abnormality determination unit that determines the occurrence state of an abnormality in the flash memory that is one of the causes of the error.
  • the flash error determination unit 133 determines whether the error has occurred based on the error status transferred from the non-volatile memory 110 after data is written to the non-volatile memory 110 and the current page number transferred from the address management unit 126.
  • the page number is specified, and the error page number and error type flag are transferred to the error elimination unit 129.
  • FIG. 10 shows a format of a physical block in the nonvolatile memory 110.
  • one physical block is composed of 128 pagers with page numbers (PN) 0 to 127.
  • Each page consists of a data area for 4 sectors and a management area MR.
  • One sector consists of 512 bytes, and one page consists of 4 sectors, which is 2048 bytes.
  • the management area MR is 64 bytes per page, and has a logical block address and status flag corresponding to the page number. The status flag indicates a valid block, invalid block or bad block in physical block units.
  • PSAO Physical arrangement symbols such as PSA1,..., PSA511 are attached. PSA is an abbreviation for the acronym for Physical Sector Address.
  • FIG. 11 is an explanatory diagram showing the format of the logical address LA.
  • the sector number, page number, and logical block address LBA are in order from the least significant bit.
  • the 12 bits corresponding to the logical block address LBA are subject to address translation, that is, the logical-physical translation table 142 Corresponds to the address of Since the sector size specified by the file system of the access device 101 is 512 bytes and the cluster size is 16 kbytes, the LSB of the cluster number corresponds to bit 5 (b5).
  • Logical addresses LA b8 to b2 correspond to page numbers.
  • the address management unit 126 includes a physical area management table 141 and a logical physical conversion table 142. While referring to these tables, the address management unit 126 selects the physical block to which the transferred data is written, designates the write destination page in the physical block, that is, indicates the current page number, This is what performs so-called address management, such as pre-read processing described later.
  • the physical area management table 141 stores a state of a physical block that is an erasing unit in the nonvolatile memory 110, that is, valid data, and a status flag indicating whether or not power is valid.
  • the logical / physical conversion table 142 is a table necessary for converting the logical address transferred by the access device 101 into a physical address in the nonvolatile memory 110.
  • FIG. 12 shows the format of the physical area management table 141.
  • the address of this table 141 corresponds to the physical block address PBA of the nonvolatile memory 110 and stores the status flag of each physical block.
  • a status flag a binary value of 00 indicates a valid block that contains valid data
  • a value of 11 indicates an erased or invalid block that has been written but is unnecessary
  • a value of 10 is Indicates a bad block that cannot be used due to a solid error on the memory cell.
  • FIG. 13 shows the format of the logical-physical conversion table 142.
  • This table 142 is a table that holds the physical block address PBA corresponding to each logical block address LBA.
  • FIG. 14 shows the current block status table 131.
  • Current block stator The stable 131 is composed of 18 words, and one word is composed of 16 bits.
  • the 12-bit physical block address PBA is stored in bl 0 to bO of word 0.
  • word 1 bl 1 to b 0 the 12-bit logical block address LBA is stored.
  • Words 2 through 17 are the write status status area. In this area, an identification flag that identifies the write status of each page (page 0 to page 127) that constitutes the current block is temporarily stored. This identification flag consists of 2 bits per page.
  • the CPU 122 sets an identification flag based on the current page number output from the address management unit 126 and the ready Z busy flag output from the nonvolatile memory 110.
  • the upper bit is a bit set based on the current page number, and the lower bit is a bit set based on the ready Z busy flag.
  • this identification flag indicates that the page has not been written.
  • the value is 10 in binary, the page is being written.
  • the value is 11 in binary, Indicates that the page has been written
  • the CPU 122 instructs the address management unit 126 to acquire an invalid physical block as a powerful block in response to a write command from the access device 101, the CPU 122 clears the current block status table 131 all. Then, the physical block address PBA is set in word 0, the logical block address LBA is set in word 1, and then the identification flag is set according to the write processing of each page of the current block.
  • the error elimination unit 129 includes an alternative / repair processing unit 151, a related page specification unit 152, a page information instruction unit 153, and a save memory 155.
  • the replacement / repair processing unit 151 performs copy processing, retry processing, and repair processing based on the error page number. Copy processing copies data already stored in the physical block (block to be written) including the error page to another erased block.
  • the retry process is a process of trying to write to the error page of the block to be written and writing the data again to the page of another erased block corresponding to the error page. If the repair page is another page that constitutes the same memory cell as the error page, the repair process writes the repair data to the first page (related page) corresponding to the repair page of this erased block. The process is instructed.
  • the page information instruction unit 153 has a page information table 154.
  • This table 154 is a table for storing page information related to a page of data held in a memory cell.
  • FIG. 15 is an address map showing the format of the page information table 154.
  • the page information table 154 is composed of 129 words, and 128 words from the top are arranged in the order of page numbers (PN) 0 to 127. In each word, page number related information 154a and page type information 154b are stored.
  • the page number relation information 154a stores other page numbers in the same group.
  • the page type information 154b stores a flag for identifying whether the page number described as PN in the figure is the first page or the second page. Here, “0” indicates the first page and “1” indicates the second page. As mentioned above, the first page is the page at the lower order address side than the second page.
  • the last word of the page information table 154 stores the number of pages constituted by one memory cell, in this case, 2.
  • the page information table 154 in FIG. 15 is a table of the page configuration of the multi-level NAND flash memory shown in FIG. 9, and its contents vary depending on the type of the multi-level NAND flash memory.
  • the page information table 154 includes volatile RAM such as SRAM and non-volatile RAM such as ferroelectric memory (FeRAM).
  • volatile RAM such as SRAM
  • non-volatile RAM such as ferroelectric memory (FeRAM).
  • the CPU 122 may be configured in SRAM or the like based on the device code read from the nonvolatile memory 110 by the CPU 122 during initialization processing at power-on.
  • the page information table for each device type may be stored in advance in ROM 124 or the like, and selectively transferred from ROM 124 to SRAM based on the device code.
  • a multi-level NAND flash memory with a relatively simple page configuration has an even-numbered and odd-numbered relationship (regularity).
  • the page information instruction unit 153 can calculate the page number related information by bit operation based on the device code that does not need to have the page information table. Specifically, a multi-value NAND flash memory as shown in FIG. 1 can be calculated based on Equation (1).
  • the operator ' is an operator that takes an exclusive OR.
  • Page number related information Page number-0x01---(1)
  • the save memory 155 is a memory having a storage capacity for one page, and is used as a save area for the data of the first page of the same gnorape as that page when data is written to the second page of each group. If this memory is composed of a non-volatile RAM such as a ferroelectric memory (FeRAM), the error can be resolved in response to either a power failure or a flash failure. If this memory is composed of volatile RAM such as SRAM, only flash errors can be resolved.
  • a non-volatile RAM such as a ferroelectric memory (FeRAM)
  • FeRAM ferroelectric memory
  • the related page specifying unit 152 refers to the page information table of the page information instruction unit 153 based on the current page number received from the address management unit 126, as will be described later using a flowchart, or Page numbers belonging to the same group are determined by performing the operation of Equation 1.
  • the repair processing of the alternative 'repair processing unit 151 is temporarily stored in the save memory with the error page number and error type flag received from the error page specifying unit 128, the related page number received from the related page specifying unit 152, and The error is repaired using the related data.
  • the nonvolatile memory 110 there are a system area in which system information such as device code and security information is stored, and a normal area in which a user reads and writes data. Various information in the system area is written by the manufacturer before shipment.
  • the value OxFFF is set for the logical block address!
  • the value OxFFF means that the physical address of the nonvolatile memory 110 is not the address OxFFF and no physical address is set. Therefore, the physical address of the nonvolatile memory 110 is OxFF
  • the physical block at address F is an unusable physical block, and the logical address managed by the access device 101 specifies a space smaller than 4096 from address 0x0000 to address OxF FF in units of 256 kbytes, which is the physical block size. Shall.
  • FIG. 16A and FIG. 16B are flowcharts showing processing after power-on.
  • the CPU 122 is first reset, and an initialization process is performed based on the program stored in the ROM 124 (S101).
  • the RAM 123 and the buffer memory 125 are all cleared first.
  • the system area power device code in the nonvolatile memory 110 is read via the read / write control unit 127, and the type and capacity of the nonvolatile memory 110 are specified based on the device code (S102).
  • the page information table 154 is generated in the page information instruction unit 153 based on the device code read from the nonvolatile memory 110 (S 103).
  • the page information instructing unit 153 may grasp the page configuration information by a calculation function (corresponding to Formula 1) based on the device code.
  • the CPU 122 reads the management area of the first page of all physical blocks in the nonvolatile memory 110 via the read / write control unit 127 (S104). Thereafter, the physical area management table 141 and the logical physical conversion table 142 are created in the address management unit 126 (S105).
  • the CPU 122 checks the current block status table 131 to check whether there is any power that does not cause an error due to power shutdown during a write operation before power-up.
  • a state immediately after shipment that is, a case where the page being written is strong will be described, and a case where there is a page being written will be described in detail later. If there is no page being written, in step S107 and S108 in the flowchart of FIG. 16A, the process proceeds directly to step S116 in FIG. 16B to enter a state where permission to read / write commands from the access device 101 is accepted.
  • the access device 101 formats the nonvolatile storage device 100 based on the FAT file system to create a logical address space. Constitute. After that, for processing during normal operation Transition.
  • access device 101 transfers a write command of 16 kbytes (for one cluster) at logical addresses LAO to LA31 to nonvolatile storage device 100.
  • the host IF 121 receives the write command, it notifies the CPU 122 of the reception, and the CPU 122 first writes the data power for the logical address LA 0 in the buffer memory 125 in order.
  • the data from the logical addresses LAO to LA3 is written into the buffer memory 125.
  • the CPU 122 writes the data in the buffer memory 125 into the nonvolatile memory 110.
  • the CPU 122 returns the next data transfer permission to the access device 101 via the host IF 121.
  • the CPU 122 writes data from the buffer memory 125 to the nonvolatile memory 110 in units of 4 sectors.
  • the CPU 122 notifies the access device 101 through the host IF 121 that “the corresponding cluster has been successfully written”.
  • the CPU 122 instructs the address management unit 126 to acquire a physical block of one write destination using that as a trigger.
  • the address management unit 126 refers to the physical area management table 141 and searches for invalid blocks in ascending order of randomly selected address power, and sets the first invalid physical block found, for example, PB10, as the physical block to be written. . This makes it possible to realize wear leveling that does not concentrate the write target block on a specific block.
  • CPU 122 deletes PB10 via read / write controller 127 Is sent to the non-volatile memory 110 and data is written after erasing PB10.
  • PB 10 indicates one physical block in the nonvolatile memory 110.
  • the CPU 122 performs a process of writing data to the PB 10 at a stage where data for 4 sectors, that is, 1 page, is temporarily stored in the buffer memory 125.
  • the CPU 122 transfers the data LA0 to LA3 stored in the buffer memory 125 to the read / write control unit 127.
  • the address management unit 126 refers to the logical address LA held by the CPU 122, sets the page number in the logical address format of FIG. 11 as the write destination page number (powerful page number), and
  • the data is transferred to the sequential read / write control unit 127, the error page specifying unit 128, and the related page specifying unit 152.
  • the read / write control unit 127 writes data to the corresponding page of PB10 in the nonvolatile memory 110 (corresponding to the arrow A in FIG. 17A), and when the writing is completed, the nonvolatile memory 110 sets the ready Z busy flag to the ready state. Then, the error page specifying unit 128 and the CPU 122 are notified. As a result of notification, if an error occurs and you are able to write normally, the process proceeds to error cancellation processing.
  • the CPU 122 If no error occurs, the CPU 122 returns permission to transfer the next data to the access device 101 via the host IF 121 after receiving the ready / busy flag. Transfers data after logical address LA4.
  • the data stored in the buffer memory 125 is written to the corresponding page of the PB 10 for each page unit.
  • the CPU 122 notifies the access device 101 that the corresponding cluster has been successfully written via the host IF121. Notice.
  • the access device 101 continuously writes data for one cluster of the logical addresses LA32 to LA63, the same processing is performed and stored in pages 8 to 15 of the PB10. Furthermore, when the access device 101 continues to write data for one cluster of logical addresses LA64 to LA95, the same processing as the above-described series of processing is performed and stored in pages 16 to 23 of PB10. .
  • the CPU 122 temporarily stores the data stored in the first page in the save memory 155 prior to the writing of the second page, as will be described later.
  • FIG. 17A prior to the process of writing to page 17 of PB10 (arrow C in FIG. 17A), the data stored in page 11 of PB10 is saved (arrow B) in save memory 155. In this case, page 11 is the first page and page 17 is the second page.
  • the save memory 155 saves data stored in the first page prior to every second page write.
  • the first page is the “related page”, and the data stored on the first page is the “related data”.
  • the flash abnormality determination unit 133 receives the current page number from the address management unit 126 when the PB 10 is written to the page 17 (S201).
  • the nonvolatile memory 110 transfers an error status to the memory controller 120, and the flash abnormality determination unit 133 receives this (S202).
  • the flash abnormality determination unit 133 checks the error status, and if a flag indicating that an error has occurred is set (S203), it recognizes that a flash abnormality has occurred during the writing on page 17 of PB10. Then, using page 17 as an error occurrence page, the error page number (physical address) and error type flag are set to the value 1 and transferred to the substitute / repair processing unit 151 (S204). Further, the error page number is also transferred to the related page specifying unit 152 (S205). When the error type flag is 0, it indicates an error due to power interruption, and a value 1 indicates an error due to flash error.
  • the address management unit 126 transfers the current page number to the related page specifying unit 152, and the related page specifying unit 152 performs pre-read processing (save processing), which will be described later, as necessary. Give instructions.
  • the related page specifying unit 152 receives the current page number transferred by the address management unit 126 (S 301), and transfers the current page number to the page information instruction unit 153.
  • the page information instruction unit 153 is a page information table 154 By referring to the page number relation information 154a, the page number of the same group for the current page number is transferred to the related page specifying unit 152 (S302). For example, if the current page number is page 17, page 11 is transferred to the related page specifying unit 152 as the page number of the same group.
  • the page number of the same group is the first page (S303). If the page number is the first page (that is, the related page), the related page number is transferred to the address management unit 126 (S304), and pre-read processing described later is instructed to the address management unit 126. Regardless of binary or multi-value, NAND flash memory has a restriction that data must be written even on the low-order address side. Therefore, if the current page number is the first page, no pre-read instruction is required.
  • the pre-read process is a process of storing the data stored in the related page transferred from the related page specifying unit 152 to the address management unit 126 in the save memory 155 prior to writing the current page. Uh. In this way, the data stored in the save memory 155 at any time is used as related data, and the related page data corruption caused by a write error in the current page is repaired using the related data. The repair process will be described later.
  • PB10 on the right side of Fig. 17A shows the page where the error occurred with an asterisk.
  • the related page specifying unit 152 receives the error page number transferred from the error page specifying unit 128 (S306). Then, the error page number is transferred to the page information instruction unit 153.
  • the page information instruction unit 153 refers to the page number relation information 154a of the page information table 154, and transfers the page number of the same group corresponding to the error page number to the related page identification unit 152 (S307). For example, if the error page number is page 17, the page number 11 is transferred to the related page specifying unit 152.
  • the page type information 154b determines whether the page number of the same group is the first page (S308). If the error page is the first page, no repair process is required. If the error page is the second page, the data of the related page needs to be repaired. example For example, if the related page number is page 11 and the error page number is page 17, the related page number is transferred to the substitute / repair processing unit 151 (S309), and control is transferred to the substitute / repair processing unit 151. If S309 is not executed successfully, that is, if the related page specifying unit 152 does not transfer the related page to the substitute / repair processing unit 151, the repair process is not performed! / ⁇ .
  • step S401 When the control shifts to the alternative 'repair processing unit 151, it is determined whether or not the error type flag is 1 as shown in FIG. 20 (S401). If this flag is not 1, the process ends. If this flag is 1, that is, an error due to a flash error, the process proceeds to step S402, where the alternative repair processing unit 151 performs alternative processing (copy processing, repair processing, and retry processing) (S402).
  • the copy process is a process for transferring the data written in the page without error in PB10 to another erased physical block (for example, PB5) in the error elimination process of FIG. 17B.
  • the address management unit 126 acquires the erased physical block PB5 as the copy destination block (S403).
  • the replacement / repair processing unit 151 executes copy processing for all pages except for the repair page (page 11) that are lower in address than the error page number (S404).
  • the error page is 17 and the repair page is 11, so copy pages 0 to 10 and pages 12 to 16 as indicated by the white arrows D and E from physical block PB10 to physical block PB5. .
  • a repair process is performed.
  • the repair process is a process for rewriting the related data temporarily stored in the save memory 155 to the related page.
  • the relational data held in the save memory 155 is written to page 11 (relevant page) of the physical block PB5 as indicated by the broken line arrow F.
  • the retry process is a process in which the data that has been written to page 17 of physical block PB10 in the error elimination process of Fig. 17B is written again to page 17 of physical block PB5. It is.
  • the alternative 'repair processing unit 151 executes the retry process of the error occurrence page (S406).
  • S407 the writing after page 18 is continued (S408). If it fails, the access device is notified that the corresponding cluster could not be written normally (S409), and a rewrite command for the relevant cluster is prompted.
  • S409 the access device is notified that the corresponding cluster could not be written normally
  • a rewrite command for the relevant cluster is prompted.
  • an error due to flash abnormality can be eliminated.
  • the address management unit 126 sets the corresponding status flag in the physical area management table to an invalid block.
  • FIG. 1 the flow of the power shutdown judgment unit 132 in the normal operation process will be described with reference to FIG.
  • the normal process refers to a process other than the initialization process executed immediately after the power is turned on, in other words, the process after the command reception from the access device 101 is permitted.
  • This flowchart includes initial setting processing and update processing of the current block status table 131. In the initial setting process, first, it is determined whether or not a new invalid physical block is to be acquired in response to a write instruction from the access device 101.
  • the power shutdown judgment unit 132 receives the current page number from the address management unit 126 (S505), and reads the upper bit of the write status identification flag corresponding to the current page when reading the data temporarily stored in the buffer memory 125. Set the value to 1 (S506).
  • the read / write control unit 127 receives the ready Z busy flag immediately after writing data to the nonvolatile memory 110 (S507).
  • ready by setting the lower bit of the identification flag corresponding to the current page to the value 1 (S509), the current block history is recorded in the current block status table 131. Leave as.
  • the power shutdown judgment unit 132 checks the identification flag in the current block status table 131 (S106). If there is a page being written (S107), the corresponding page is regarded as an error page, and the error page number and error type flag are transferred to the substitute / repair processing unit 151 (S109).
  • the process proceeds to FIG. 16B and the related page is specified (S110).
  • S110 This is the same as the flowchart of FIG. In other words, when the page of the same group is the first page (S308), the related page specifying unit 152 transfers the related page to the alternative 'repair processing unit 151 (S309). If the page of the same group is not the first page, the related page specifying unit 152 does not transfer the related page to the replacement / repair processing unit 151.
  • the substitution / repair processing unit 151 checks the error type flag transferred from the error page identification unit 128 (S111), and if the value is 0, that is, if it is determined that the error is due to power shutdown, the error is resolved. Execute. Figure 22 shows this error resolution process.
  • the alternative 'repair processing unit 151 starts alternative processing (copy processing and repair processing) (S112).
  • the replacement / restoration processing unit 151 acquires an invalid physical block, for example, PB5, as a copy destination block (S113).
  • the data on the related page (page 11) is not copied from PB10.
  • the alternative 'repair processing unit 151 acquires the related data from the save memory 155 and writes it in the related page with page number 11 (S115, arrow F).
  • the error solving unit 129 since the error solving unit 129 performs the repair process, the non-volatile memory that forms the same memory cell across two pages 11 A unique error of 0, that is, an error in which the data stored in the first page changes due to a write error on the second page can be solved.
  • the nonvolatile storage system can restore data by adding error elimination processing in both cases of flash abnormality and power shutdown.
  • FIGS. 23A and 23B are block diagrams of the second embodiment.
  • the same parts as those of the first embodiment are denoted by the same reference numerals, and detailed description thereof is omitted.
  • the non-volatile storage device 100A has a memory controller 120A and a non-volatile memory 110 similar to the above-described embodiment.
  • the memory controller 120A has an error elimination unit 161.
  • the error elimination unit 161 does not have the save memory 125 as shown in FIG. 23B, and other configurations are the same as those in the first embodiment.
  • one physical block of the nonvolatile memory 110 is used as a save physical block.
  • the free block power is arbitrarily selected for each evacuation. This realizes wear leveling without writing concentration in a certain physical block.
  • each page may be used as a save area sequentially.
  • the nonvolatile memory since the nonvolatile memory is used as the save memory, the data can be restored even in the case of the error due to the power interruption as well as the error due to the flash abnormality.
  • data stored in the first page corresponding to the second page is temporarily stored in another physical block.
  • page 17 Temporarily stored in the save area of the physical block PB20, that is, the first page (arrow B).
  • a process to eliminate it is performed. That is, as shown in FIG. 24B, restoration processing is performed in addition to the copy processing (arrows D and E) and retry processing (arrow G) described above.
  • the repair process the data written in the save area of the save physical block PB20 is written back to the 11th page, which is the repair page of the physical block PB50, as shown by arrow F in Fig. 14B.
  • the repair process is a process in which the data written in the save area of the physical block PB20 is written back to the physical block PB5 as indicated by arrow F.
  • Other operations are the same as those in the first embodiment. In this way, data can be evacuated using only a non-volatile memory without providing a separate evacuation memory, and the reliability when a multi-value flash memory is used can be improved.
  • the non-volatile memory 110 holds data across three pages, where each memory cell is a type of memory that holds data across two pages.
  • the present invention can be applied even to a type of memory.
  • a memory cell is closed in a page, for example, a binary NAND flash memory is used as the nonvolatile memory 110, there is no problem.
  • the page information instruction unit 153 can always return page 0 as the related page number to the related page specifying unit 152, thereby masking the execution of the repair process.
  • this invention is not limited to the said Example.
  • the memory controller, the nonvolatile memory device, and the nonvolatile memory system that work for the present invention use a nonvolatile memory in which each memory cell holds data across a plurality of pages, such as a multi-level NAND flash memory. In such a device, the reliability can be improved.
  • the present invention can be applied to a recording medium of a portable AV device such as a still image recording / reproducing device or a moving image recording / reproducing device, or a portable communication device such as a mobile phone.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

 不揮発性記憶装置は複数ページに跨って同一のメモリセルを構成する不揮発性メモリと、メモリコントローラとを有する。ページ情報指示部は不揮発性メモリのページ構造情報を有し、この情報に基づき関係ページ特定部がデータが変化する可能性のあるページ(関係ページ)を特定する。エラー発生前に関係ページに記憶されていた関係データを退避メモリに一時保持させ、エラーがあればこの関係データを用いて、変化したデータを修復する。こうすれば複数ページに跨って同一のメモリセルを構成する不揮発性メモリを使用する記憶装置において、データの書き込み中にエラーが発生してもエラーを修復して信頼性を確保できる。

Description

明 細 書
メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデ ータ書き込み方法
技術分野
[0001] 本発明は、書き換え可能な不揮発性メモリを備えた不揮発性記憶装置、及びこれ を制御するメモリコントローラ、不揮発性記憶システム、及びデータ書き込み方法に 関する。
背景技術
[0002] 書き換え可能な不揮発性の主記憶メモリを備えた不揮発性記憶装置は、半導体メ モリカードを中心にその需要が広まっている。このメモリカードは、不揮発性メモリとし てフラッシュメモリを備え、それを制御するメモリコントローラを有している。メモリコント ローラは、デジタルスチルカメラやパーソナルコンピュータ本体等のアクセス装置から の読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行うものとなって いる。フラッシュメモリは、 RAMなどの揮発性メモリに比べて記憶素子の特性のばら つきが大きいため、比較的頻繁に書込みエラーが発生する。そのため、不揮発性メ モリを内蔵したメモリカードにおいては、書込みエラーが発生した記憶領域を他の記 憶領域と置き換える代替処理を行うようにしたものがある(特許文献 1)。ここでは、不 揮発性メモリは、 2値 NANDのように各メモリセルがひとつのページ内で閉じているフ ラッシュメモリが通常用いられて 、る。
[0003] さて、多値 NANDフラッシュメモリは、低価格なフラッシュメモリとしての期待が大き ぐ今後メモリカードの主記憶メモリとして主流となる可能性が高い。特許文献 2には、 高速アクセスを実現するために、多値 NANDフラッシュメモリのページ構造を改良し た技術を開示している。 2値のメモリである従来のフラッシュメモリは、ひとつのメモリセ ルはひとつのページのあるビットのデータを保持するものである。一方、多値 NAND フラッシュメモリは、各メモリセルが複数のページ、例えば 2つのページにまたがって 構成される、即ち複数のビットのデータを保持するものである。
[0004] 図 1〜図 3は、多値 NANDフラッシュメモリのように各メモリセルが複数ページに跨 つて構成される不揮発性メモリを表す構成図である。図 1〜図 3において、同一のグ ループ番号(GN)が付与されたページが、 1つのメモリセルで保持されるデータが含 まれる 2つのページである。ハッチングを施していないページを第 1ページとし、斜線 でハッチングを施したページを第 2ページとする。
[0005] 例えば図 1に示した多値 NANDフラッシュメモリは、偶数ページと奇数ページが対 となって、ひとつのメモリセルを構成する。図中 GNで示すグループ番号が同じぺー ジカ ひとつのメモリセルを共有するページ対である。各ページ対において、アドレス が低順位のページを第 1ページ、高順位のページ (ハッチングを施したページ)を第 2ページとする。図 1では、第 1ページと第 2ページが隣接している力 図 2や図 3では 、第 1ページと第 2ページが離れている。これは一方のページへの書き込みによって 、他方のページに記憶されたデータへの影響 (ディスターブ)を少なくするために隔 離されたものである。
[0006] し力し、ひとつのメモリセルが 2つのページに跨って構成された場合、一方のページ の書き込み中にエラーが発生すると、他方のページに記憶されていたデータが変化 してしまうという問題がある。この問題について、以下図 4〜図 6を用いて説明する。
[0007] 図 4は、図 1〜図 3に示す多値 NANDフラッシュメモリのメモリセルの電圧分布を表 す特性図である。このメモリセルは 2ビットの情報を記憶する。横軸力メモリセルより得 られる電圧 Vであり、縦軸はその電圧となる確率 Pである。
[0008] さて図 4の 4つの分布において、左から" 11"、 "10"、 "00"、 "01"のコードが割り当 てられる。各コードの右側の桁 (ビット)が第 1ページに対応し、左側の桁 (ビット)が第 2ページに対応する。各メモリセルは消去済みの状態で" 11 "である。この状態から第 1ページ側に書き込むと、正常に書き込めた場合は、各メモリセルは" 11"の状態のま ま力、あるいは" 11"から" 10"の状態に遷移する。その後、第 2ページ側に書き込む と、正常に書き込めた場合は、各メモリセルは" 11"の状態から" 11"の状態のままか 、若しくは" 01"の状態に遷移する。あるいは" 10"から" 10"のまま、若しくは" 00"の 状態に遷移することとなる。
[0009] 図 5は、メモリセルへ正常に書き込めた場合の状態を示す特性図である。図 5にお いて、第 1ページと第 2ページの書き込みによって、目標値である" 01"の情報を書き 込むことを想定する。書き込み過程としては、まず第 1ページの書き込みによって、 "1 1"の状態にし、次に第 2ページの書き込みによって、 "01"の状態にすることとなる。
[0010] 図 6は、メモリセルへ正常に書き込めな力つた場合の状態を示す特性図である。図 6では、第 2ページの書き込みにおいて、メモリセルへの印加電圧が" 11"の状態から "01"の状態に遷移する過程において、フラッシュメモリ内部の電圧変動などの異常 によって、 "10"の状態に陥ることを示している。また" 00"の状態に陥る場合もあり、 以下、このような異常を「フラッシュ異常」という。また第 2ページの書き込みにおいて、 メモリセルへの印加電圧が" 11"の状態から" 01"の状態に遷移する過程において、 " 10"又は" 00"の状態にまで電圧が到達した時点で不揮発性メモリに供給される電源 が OFFされてしまい、 "10"や" 00"の状態に陥る場合がある。以下、このような異常 を「電源遮断」という。
[0011] なお、メモリカードの場合、通常、電源はアクセス装置側力 供給されるので、デー タ書き込み中に不用意にアクセス装置の電源をオフとしたり、メモリカードをアクセス 装置から強制的に取り出してしまうと、電源遮断が発生することとなる。
特許文献 1 :特開 2003— 76615号公報
特許文献 2:特開 2001 - 93288号公報
発明の開示
発明が解決しょうとする課題
[0012] 図 3で示した多値 NANDフラッシュメモリを従来の不揮発性記憶システムに適用し た場合のシステム上の課題について説明する。まず、図 7A,図 7Bを用いて、多値 N ANDのフラッシュメモリを使用した場合に、フラッシュ異常が発生した場合の従来の エラー解消処理について説明する。図 7Aは図中左端に示すバッファ力も物理ブロッ ク PB10に順次 A, B, Cに示すようにデータを書き込む状態を示している。
[0013] さて図 7Aに示すように、ある物理ブロック、例えば物理ブロック PB10にグループ G N7の第 2ページであるページ 17を書き込み中にフラッシュ異常が発生したとする。こ こで星印は異常を示す。グループ GN7はページ 11と 17により構成されているので、 ページ 11に記憶されたデータが変化する場合がある。
[0014] 図 7Bは、フラッシュ異常が発生した際のエラー解消処理を示す動作説明図である 。従来のエラー解消処理では、物理ブロック PB10のページ 0〜16に記憶されたデ ータを他の物理ブロック、例えば PB5の対応ページにコピーし、更に PB10のページ 17に記憶されるべきデータ、すなわち論理アドレス LA68〜71のデータを、 PB5の ページ 17にリトライ書き込みする。又電源遮断が生じた場合には、次の電源が投入さ れた時点でページ 17から新たなデータを再び書き込む。この場合にもページ 0〜16 に記録されたデータを PB5の対応ページにコピーする。
[0015] し力し、 PB10のページ 11に記憶されたデータが変化して 、た場合、従来の不揮 発性記憶装置では当該データを修復しな 、ため、誤ったデータのまま使用されつづ けることとなる。当該データがファイルシステムのような重要データであった場合は、 不揮発性記憶装置からの読み出しができなくなるといった致命的な問題をひきおこ す可能性があった。即ち特許文献 2に示した多値 NANDフラッシュメモリに対して特 許文献 1に示されているエラー解消処理を適用すると、信頼性が著しく低下するとい う課題を有していた。
[0016] そこで、本発明は、上記問題点に鑑み、所定ページへの書き込み時のエラーに起 因して該所定ページと同一のメモリセルを構成する他のページに記憶されたデータ が変化してしまうエラーを解消できる高信頼性のメモリコントローラ、不揮発性記憶装 置、不揮発性記憶システム、データ書き込み方法を提供することを目的とする。 課題を解決するための手段
[0017] この課題を解決するために、本発明のメモリコントローラは、複数のページによって 構成され、各メモリセルがグループを構成する複数ページのデータを保持する不揮 発性メモリに、外部から与えられるデータを書き込み、該不揮発性メモリからデータを 読み出すメモリコントローラであって、書き込みエラーがあったエラー発生ページと同 一グループの他のページに記憶されたデータに生じるエラーを解消するエラー解消 部を具備し、前記エラー解消部は、データ書き込みに先立って、書き込み先のカレン トページと同一グループを構成する他のページであって既にデータを記憶している ページを関係ページとすると、前記関係ページに記憶された関係データを読み出し 、該関係データを退避領域に一時記憶し、エラー発生時に該関係データを用いてェ ラーを解消するものである。 [0018] ここで前記メモリコントローラは、前記不揮発'性メモリのあるページへの書き込み中 にエラーが発生したときにそのエラーが発生したページを特定するエラーページ特 定部を具備し、前記エラーページ特定部は、電源遮断の発生を判断する電源遮断 判断部と、前記不揮発性メモリ内部での異常の発生を判断するメモリ異常判断部と、 を有するようにしてもよ 、。
[0019] ここで前記エラー解消部は、前記不揮発性メモリにおいて同一のグループを構成 するページに関するページ情報を出力するページ情報指示部と、前記カレントぺー ジと前記ページ情報指示部より出力されるページ情報に基づいて、関係ページを特 定する関係ページ特定部と、エラー発生時に前記関係データを用いて前記関係べ ージに記憶されたデータの修復を行う代替'修復処理部と、を更に具備するようにし てもよい。
[0020] ここで前記不揮発性メモリは、複数の物理ブロックから成り、前記代替'修復処理部 は、書き込み中の物理ブロックの誤りのないページに書き込まれたデータを、前記不 揮発性メモリの別の無効物理ブロックに転写するコピー処理、書き込みを誤ったデー タであって前記退避領域に保持されている関係データを前記無効物理ブロックの修 復ページに再び書き込む修復処理、及び物理ブロックの書き損じたデータを再度前 記無効物理ブロックに書き込むリトライ処理をするようにしてもょ 、。
[0021] ここで前記不揮発性メモリは、複数の物理ブロック力 成り、前記代替'修復処理部 は、書き込み中の物理ブロックの誤りのないページに書き込まれたデータを、前記不 揮発性メモリの別の無効物理ブロックに転写するコピー処理、及び書き込みを誤った データであって前記退避領域に保持されている関係データを前記無効物理ブロック の修復ページに再び書き込む修復処理をするものであり、前記エラー解消部は、関 係データを不揮発性の記憶領域に退避させるようにしてもょ 、。
[0022] ここで前記エラー解消部は、関係データを退避させる不揮発性の退避メモリとしても よい。
[0023] ここで前記退避メモリは、不揮発性 RAMとしてもよい。
[0024] ここで前記不揮発性 RAMは、強誘電体メモリ (FeRAM)、磁性記録式随時書き込 み読み出しメモリ (MRAM)、オボニックユニファイドメモリ(OUM)、レジスタンス!^ M (RRAM)のうちの!/、ずれか 1つで構成されるようにしてもよ!、。
[0025] この課題を解決するために、本発明の不揮発性記憶装置は、複数のページによつ て構成され、各メモリセルがグループを構成する複数ページのデータを保持する不 揮発性メモリと、外部から与えられるデータを書き込み、該不揮発性メモリからデータ を読み出すメモリコントローラとを有する不揮発性記憶装置であって、前記メモリコント ローラは、書き込みエラーがあったエラーページと同一グループの他のページに記 憶されたデータに生じるエラーを解消するエラー解消部を具備し、前記エラー解消 部は、データ書き込みに先立って、書き込み先のカレントページと同一グループを構 成する他のページであって既にデータを記憶しているページを関係ページとすると、 前記関係ページに記憶された関係データを読み出し、該関係データを退避領域に 一時記憶し、エラー発生時に該関係データを用いてエラーを解消するものである。
[0026] この課題を解決するために、本発明の不揮発性記憶システムは、アクセス装置と不 揮発性記憶装置を具備する不揮発性記憶システムであって、前記アクセス装置は、 前記不揮発性記憶装置に書き込みコマンドとデータを送出するものであり、前記不 揮発性記憶装置は、複数のページによって構成され、各メモリセルがグループを構 成する複数ページのデータを保持する不揮発性メモリと、外部から与えられるデータ を書き込み、該不揮発性メモリからデータを読み出すメモリコントローラとを有するも のであり、前記メモリコントローラは、書き込みエラーがあったエラーページと同一グ ループの他のページに記憶されたデータに生じるエラーを解消するエラー解消部を 具備し、前記エラー解消部は、データ書き込みに先立って、書き込み先のカレントぺ ージと同一グループを構成する他のページであって既にデータを記憶しているぺー ジを関係ページとすると、前記関係ページに記憶された関係データを読み出し、該 関係データを退避領域に一時記憶し、エラー発生時に該関係データを用いてエラー を解消するものである。
[0027] この課題を解決するために、本発明のデータ書き込み方法は、複数のページによ つて構成され、各メモリセルがグループを構成する複数ページのデータを保持する 不揮発性メモリに、外部から与えられるデータを書き込むデータ書き込み方法であつ て、書き込みエラーがあったエラーページと同一グループの他のページに記憶され たデータに生じるエラーを解消するステップを有し、前記エラー解消ステップは、デ ータ書き込みに先立って、書き込み先のカレントページと同一グループを構成する他 のページであって既にデータを記憶しているページを関係ページとすると、前記関 係ページに記憶された関係データを読み出して退避領域に該関係データを一時記 憶し、エラー発生時に該関係データを用いてエラーを解消するものである。
発明の効果
[0028] 本発明によれば、エラー解消部によって、あるメモリセルが複数ページのデータを 記憶するメモリに特有のエラーが発生した場合においても、エラーを解消することが できる。そのため今後主流となる多値 NANDなどのフラッシュメモリを適用したメモリ カードにおいても、メモリセルが 1つのページのデータを記憶する従来のメモリを用い たメモリカードと同等以上の高信頼性を確保することができるという効果が得られる。 図面の簡単な説明
[0029] [図 1]図 1は多値 NAND不揮発性メモリを表す構成図である。
[図 2]図 2は多値 NAND不揮発性メモリを表す構成図である。
[図 3]図 3は多値 NAND不揮発性メモリを表す構成図である。
[図 4]図 4は多値 NANDフラッシュメモリのメモリセルの電圧分布を表す特性図である
[図 5]図 5はメモリセルへ正常に書き込めた場合の状態を示す特性図である。
[図 6]図 6はメモリセルへ正常に書き込めな力つた場合の状態を示す特性図である。
[図 7A]図 7Aは従来の不揮発性記憶システムにおける通常処理におけるデータ書き 込み処理を示したフローチャートである。
[図 7B]図 7Bは従来の不揮発性記憶システムにおける通常処理における代替処理を 示したフローチャートである。
[図 8A]図 8Aは本発明の第 1の実施例による不揮発性記憶システムのブロック図であ る。
[図 8B]図 8Bは本発明の実施例による不揮発性記憶システムのエラーページ特定部 及びエラー解消部の詳細な構成を示すブロック図である。
[図 9]図 9は本実施例による不揮発性メモリの構成を示す図である。 [図 10]図 10は不揮発性メモリ 110内に設けられた物理ブロックのフォーマットを示し た説明図である。
[図 11]図 11は論理アドレス LAのフォーマットを示した説明図である。
[図 12]図 12は物理領域管理テーブル 141のフォーマットを示した説明図である。
[図 13]図 13は論理物理変換テーブル 142のフォーマットを示した説明図である。
[図 14]図 14はカレントブロックステータステーブルを示した説明図である。
[図 15]図 15はページ情報テーブルのフォーマットを表すアドレスマップである。
[図 16A]図 16Aは初期化処理及びエラー解消処理内容を示したフローチャートであ る。
[図 16B]図 16Bは初期化処理及びエラー解消処理内容を示したフローチャートであ る。
圆 17A]図 17Aはフラッシュ異常が発生した際のエラー解消処理を示す動作説明図 である。
圆 17B]図 17Bはフラッシュ異常が発生した際のエラー解消処理を示す動作説明図 である。
[図 18]図 18はフラッシュ異常判断部の処理内容を示したフローチャートである。
[図 19]図 19は関係ページ特定部の処理内容を示したフローチャートである。
[図 20]図 20は通常処理におけるエラー解消処理内容を示したフローチャートである
[図 21]図 21は通常処理における電源遮断判断の処理内容を示したフローチャートで ある。
圆 22]図 22は電源遮断が発生した際のエラー解消処理を示す動作説明図である。
[図 23A]図 23Aは本発明の第 2の実施例による不揮発性記憶システムのブロック図 である。
[図 23B]図 23Bは本発明の第 2の実施例による不揮発性記憶システムのエラーべ一 ジ特定部及びエラー解消部の詳細な構成を示すブロック図である。
[図 24A]図 24Aは本発明の第 2の実施例においてフラッシュ異常が発生した際のェ ラー解消処理を示す動作説明図である。 [図 24B]図 24Bは本発明の第 2の実施例においてフラッシュ異常が発生した際のエラ 一解消処理を示す動作説明図である。
[図 25]図 25は本発明の第 2の実施例において電源遮断が発生した際のエラー解消 処理を示す動作説明図である。
符号の説明
100, 100A 不揮発性記憶装置
101 アクセス装置
110 不揮発性メモリ
120, 120A メモリコントローラ
122 CPU
125 ノ ッファメモリ
126 アドレス管理部
127 読み書き制御部
128 エラーページ特定部
129, 161 エラー解消部
131 カレントブロックステータステ
132 電源遮断判断部
133 フラッシュ異常判断部
141 物理領域管理テーブル
142 論理物理変換テーブル
151 代替 ·修復処理部
152 関係ページ特定部
153 ページ情報指示部
154 ページ情報テーブル
155 退避メモリ
発明を実施するための最良の形態
以下、本発明の第 1の実施例による不揮発性記憶システムについて説明する。図 8 は、不揮発性記憶システムのブロック図である。不揮発性記憶システムは不揮発性 記憶装置 100とアクセス装置 101とによって構成される。
[0032] 不揮発性記憶装置 100は、フラッシュメモリからなる不揮発性メモリ 110とメモリコン トローラ 120とを有している。不揮発性メモリ 110は、ひとつのメモリセルが 2つのぺー ジに跨ってデータを保持する多値 NANDフラッシュメモリである。不揮発性メモリ 110 は例えば図 9に示すように、 4096個の物理ブロック PB0〜PB4095から構成される。 物理ブロックは消去の単位であって、夫々 128ページ力も構成される。各ページはメ モリコントローラ 120からのアクセス単位であり、 2112バイトの記憶容量をもつ。ここで は図 3と同一のグループ構成のメモリとする。
[0033] アクセス装置 101は、不揮発性記憶装置 100にユーザデータ(以下、単にデータと いう)の読み書き命令と、そのデータが格納されている論理アドレスの送信と、データ の送受信を行うものである。このアクセス装置 101からの読み書き命令を受けて、メモ リコントローラ 120は、不揮発性メモリ 110に受け取ったデータを書き込んだり、不揮 発性メモリ 110からデータを読み込み外部へ出力する。
[0034] 次に、メモリコントローラ 120の詳細について述べる。不揮発性記憶装置 100に備 えられたメモリコントローラ 120は、ホスト IF121と、メモリコントローラ 120全体の制御 を行う CPU122とを備えている。またメモリコントローラ 120は、 CPU122の作業領域 である RAM123と、 CPU122が実行するプログラムを格納した ROM124とを有して いる。さらに、メモリコントローラ 120は、不揮発性メモリ 110へアクセスする際にデー タを一時記憶するためのノッファメモリ 125と、不揮発性メモリ 110のアドレスを指定 するアドレス管理部 126とを有して!/、る。ノッファメモリ 125は 1ページ分の容量を有 した SRAMなどの揮発性メモリや FeRAMなどの不揮発性メモリで構成される。
[0035] 読み書き制御部 127は、アドレス管理部 126が指定したアドレスに基づいて、不揮 発性メモリ 110内にデータを書き込んだり、不揮発性メモリ 110内のデータを読み出 したりするちのである。
[0036] エラーページ特定部 128は、不揮発性メモリ 110内のあるページへの書き込み中 にエラーが発生した際に、エラー種別フラグをエラー解消部 129に転送するものであ る。エラー種別フラグは当該ページの物理アドレス(以下、エラーページ番号という) とエラーの種類を特定するフラグである。エラーページ特定部 は、図 8Bに詳細 なブロックを示すように、カレントブロックステータステーブル(図中では CBST) 131, 電源遮断判断部 132,フラッシュ異常判断部 133を有して 、る。
[0037] カレントブロックステータステーブル 131は現在アクセス中の物理ブロックへの書き 込み状態を記憶するテーブルである。カレントブロックステータステーブル 131は、強 誘電体メモリ (FeRAM)、磁性記録式随時書き込み読み出しメモリ (MRAM)、オボ ニックユニファイドメモリ(OUM)、レジスタンス RAM (RRAM)などの不揮発性 RAM で構成されており、その中に、現在書き込み中の論理ブロックアドレスと物理ブロック アドレスと各ページの書き込み状況が記録されて 、る。
[0038] 電源遮断判断部 132はエラーの発生要因のひとつである電源遮断の発生状況を 判断する。電源遮断判断部 132はカレントブロックステータステーブル 131に記憶さ れて 、るカレントブロックステータスと、不揮発性メモリ 110へのデータの書き込み後 に不揮発性メモリ 110から転送されるレディ/ビジーフラグと、アドレス管理部 126か ら転送される現在書き込み中のページの物理アドレスを表すカレントページ番号に 基づいて、エラーが発生したエラーページ番号を特定する。そして電源遮断判断部 132はエラーページ番号とエラー種別フラグをエラー解消部 129に転送する。
[0039] フラッシュ異常判断部 133はエラーの発生要因のひとつであるフラッシュメモリ内部 での異常の発生状況を判断するメモリ異常判断部である。フラッシュ異常判断部 133 は、不揮発性メモリ 110へのデータの書き込み後に不揮発性メモリ 110から転送され るエラーステータスと、アドレス管理部 126から転送されるカレントページ番号に基づ いて、エラーが発生したエラーページ番号を特定し、エラーページ番号とエラー種別 フラグをエラー解消部 129に転送する。
[0040] 図 10は、不揮発性メモリ 110内の物理ブロックのフォーマットを示したものである。こ の図に示すように、 1つの物理ブロックはページ番号(PN) 0〜 127までの 128ぺー ジカも構成される。各ページは 4セクタ分のデータ領域と管理領域 MRとからなる。 1 セクタは 512バイト、 1ページは 4セクタで構成され、 2048バイトである。管理領域 M Rは 1ページ当たり 64バイトであり、そのページ番号に対応する論理ブロックアドレス とステータスフラグとを有して 、る。ステータスフラグは物理ブロック単位で有効ブロッ ク、無効ブロック又は不良ブロックを示すものである。なお、図 10で左上から PSAO, PSA1, · ··, PSA511というように物理的な配置記号を付している。 PSAとは物理セ クタアドレス (Physical Sector Address)の頭文字をとつた略号である。
[0041] 図 11は、論理アドレス LAのフォーマットを示した説明図である。この図に示すように 、下位ビットから順に、セクタ番号、ページ番号、論理ブロックアドレス LBAとなってお り、論理ブロックアドレス LBAに対応する 12ビット分がアドレス変換の対象、すなわち 論理物理変換テーブル 142のアドレスに相当する。アクセス装置 101のファイルシス テムで規定されるセクタサイズは 512バイト、クラスタサイズは 16kバイトであるので、ク ラスタ番号の LSBはビット 5 (b5)に対応する。論理アドレス LAの b8〜b2がページ番 号に対応する。
[0042] アドレス管理部 126は、物理領域管理テーブル 141と論理物理変換テーブル 142 を含む。アドレス管理部 126は、これらのテーブルを参照しながら、アクセス装置 101 力 転送されたデータの書き込み先の物理ブロックの選択や、当該物理ブロック内の 書き込み先のページ、すなわちカレントページ番号の指示、更に後述するプリリード 処理など、いわゆるアドレス管理を行うものである。物理領域管理テーブル 141には 、不揮発性メモリ 110内における消去単位である物理ブロックの状態、すなわち有効 なデータが記憶されて 、る力否かのステータスフラグが記憶されて 、る。論理物理変 換テーブル 142は、アクセス装置 101が転送した論理アドレスを不揮発性メモリ 110 内の物理アドレスに変換するために必要なテーブルである。
[0043] 図 12は、物理領域管理テーブル 141のフォーマットを示している。この図からわか るように、このテーブル 141のアドレスは不揮発性メモリ 110の物理ブロックアドレス P BAに対応し、各物理ブロックのステータスフラグを記憶している。ステータスフラグと して、 2進数で値 00は有効なデータが記憶されている有効ブロックを示し、値 11は消 去済み又はデータが書き込まれているが不要である無効ブロックを示し、値 10はメモ リセル上のソリッドエラー等により使用できなくなった不良ブロックを示す。
[0044] 図 13は、論理物理変換テーブル 142のフォーマットを示す。このテーブル 142は、 各論理ブロックアドレス LBAに対応する物理ブロックアドレス PBAを保持するテープ ルである。
[0045] 図 14は、カレントブロックステータステーブル 131を示す。カレントブロックステータ ステーブル 131は 18ワードから構成され、 1ワードは 16ビットからなる。ワード 0の bl l 〜bOには 12ビットの物理ブロックアドレス PBAがー時記憶される。ワード 1の bl l〜b 0には 12ビットの論理ブロックアドレス LBAがー時記憶される。ワード 2からワード 17 は、書き込み状況ステータスエリアである。このエリアは、カレントブロックを構成する 各ページ (ページ 0〜ページ 127)の書き込み状況を識別する識別フラグが一時記 憶される。この識別フラグは各ページあたり 2ビットで構成されている。 CPU122は、 アドレス管理部 126が出力するカレントページ番号と不揮発性メモリ 110が出力する レディ Zビジーフラグに基づいて識別フラグを設定する。上位側のビットは、カレント ページ番号に基づいて設定されるビットであり、下位側のビットは、レディ Zビジーフ ラグに基づいて設定されるビットである。この識別フラグは 2進数で値 00のとき、当該 ページが未書き込みであることを表し、 2進数で値 10のとき、当該ページが書き込み 中であることを表し、 2進数で値 11のとき、当該ページが書き込み済であることを表す
[0046] なお、 CPU122がアクセス装置 101の書き込み命令に応じて無効物理ブロックを力 レントブロックとして取得するようにアドレス管理部 126に指示した際に、 CPU122が カレントブロックステータステーブル 131をオールクリアする。そしてワード 0に物理ブ ロックアドレス PBAを、ワード 1に論理ブロックアドレス LBAをセットし、その後カレント ブロックの各ページの書き込み処理に応じて、識別フラグをセットする。
[0047] エラー解消部 129は、図 8Bに示すように代替'修復処理部 151と、関係ページ特 定部 152と、ページ情報指示部 153と、退避メモリ 155から構成される。
[0048] 代替'修復処理部 151は、エラーページ番号に基づき、コピー処理、リトライ処理と 修復処理を行うものである。コピー処理はエラー発生ページを含む物理ブロック(書 き込み対象ブロック)に既に記憶されているデータを他の消去済みブロックにコピー するものである。リトライ処理は書き込み対象ブロックのエラーページに書き込もうとし て 、たデータを、エラーページに対応する他の消去済みブロックのページに再度書 き込む処理である。修復ページをエラーページと同一のメモリセルを構成する他のぺ ージとすると、修復処理とはこの消去済みブロックの修復ページに対応する第 1ぺー ジ(関係ページ)に対して修復データを書き込む処理を指示するものである。 [0049] ページ情報指示部 153はページ情報テーブル 154を有する。このテーブル 154は メモリセルに保持するデータのページに関するページ情報を記憶するテーブルであ る。図 15は、ページ情報テーブル 154のフォーマットを表すアドレスマップである。ぺ ージ情報テーブル 154は 129ワードからなり、先頭から 128ワードはページ番号(PN ) 0〜127の順に配列されている。各ワードにはページ番号関係情報 154aとページ 種別情報 154bを記憶する。ページ番号関係情報 154aは同一グループ内の他のぺ ージ番号を記憶する。ページ種別情報 154bは、図中 PNと記載されたページ番号が 第 1ページか第 2ページなのかを識別するフラグを記憶する。ここで" 0"は第 1ページ 、 "1"は第 2ページを示す。なお、前述したとおり、第 1ページは第 2ページよりも低順 位アドレス側のページのことである。
[0050] ページ情報テーブル 154の最終ワードには、 1つのメモリセルによって構成される ページ数、ここでは 2が記憶されている。なお、図 15のページ情報テーブル 154は、 図 9に示した多値 N ANDフラッシュメモリのページ構成をテーブル化したものであり、 その内容は多値 N ANDフラッシュメモリの種類によって変わる。
[0051] なお、ページ情報テーブル 154は SRAMなどの揮発性 RAMや、強誘電体メモリ ( FeRAM)などの不揮発性 RAMある!/ヽは ROMで構成される。揮発性 RAMの場合 は、電源立ち上げ時の初期化処理にぉ 、て CPU 122が不揮発性メモリ 110から読 み込んだデバイスコードに基づいて、 CPU122が SRAMなどに構成すればよい。具 体的な構成方法のひとつとして、予め ROM 124などにデバイス種ごとに当該ページ 情報テーブルを記憶しておき、デバイスコードに基づ 、て選択的に ROM 124から S RAMに転送してもよい。また、図 1に示すような、比較的ページ構成が簡単な多値 N ANDフラッシュメモリであれば、偶数 Z奇数の関係性 (規則性)がある。従ってべ一 ジ情報指示部 153はページ情報テーブルを有する必要はなぐデバイスコードに基 づいてビット演算でページ番号関係情報を算出することができる。具体的には、図 1 に示すような多値 NANDフラッシュメモリであれば、数式(1)に基づいて算出すること ができる。ここで演算子'は、排他的論理和をとる演算子である。
ページ番号関係情報 =ページ番号 - 0x01 - - - (1)
ここで Oxは 16進数を示す。 [0052] 退避メモリ 155は、 1ページ分の記憶容量を有したメモリであり、各グループの第 2 ページにデータを書き込む際にそのページと同一グノレープの第 1ページのデータの 退避領域として用いる。このメモリを強誘電体メモリ(FeRAM)などの不揮発性 RAM で構成した場合には、電源遮断とフラッシュ異常のいずれの異常にも対応してエラー を解消できる。このメモリを SRAMなどの揮発性 RAMで構成した場合には、フラッシ ュ異常のみを解消できる。
[0053] 関係ページ特定部 152は、フローチャートを用いて後述するように、アドレス管理部 126より受信したカレントページ番号に基づいてページ情報指示部 153が有するぺ ージ情報テーブルを参照するか、あるいは数式 1の演算を実行することにより、同一 グループに属するページ番号を決定する。代替'修復処理部 151の修復処理は、ェ ラーページ特定部 128より受信したエラーページ番号とエラー種別フラグと、関係べ ージ特定部 152より受信した関係ページ番号と、退避メモリに一時記憶された関係デ ータを用いて、エラー修復を実行するものである。
[0054] 以下に、不揮発性記憶装置 100の動作について説明する。
[初期状態]
まず、出荷直後における不揮発性メモリ 110や論理物理変換テーブル 142などの 内容について説明する。不揮発性メモリ 110内には、デバイスコードやセキュリティ情 報等のシステム情報を記憶したシステム領域と、ユーザがデータを読み書きする通常 領域とがある。システム領域内の各種情報は、出荷前にメーカ側で書き込まれるもの である。
[0055] 出荷後の不揮発性メモリ 110内の通常領域の良ブロックは全て消去された状態とな つており、物理ブロックの先頭ページの管理領域 MR (図 10のハッチング部分)には 、ステータスフラグと論理ブロックアドレスとが設定されている。このステータスフラグは 、初期状態であるため、値 11 (無効ブロック)もしくは値 10 (不良ブロック)となっている
[0056] 論理ブロックアドレスにつ 、ては、値 OxFFFが設定されて!、る。なお、値 OxFFFと は不揮発性メモリ 110の物理アドレスが OxFFF番地ではなく、何も物理アドレスが設 定されていないことを意味する。ゆえに、不揮発性メモリ 110の物理アドレスが OxFF F番地の物理ブロックは使用できない物理ブロックであり、アクセス装置 101が管理す る論理アドレスは、物理ブロックサイズである 256kバイト単位で 0x0000番地〜 OxF FF番地までの 4096番地よりも少ない空間を指定するものとする。
[0057] [電源立ち上げ時の初期化処理]
図 16A,図 16Bは電源投入後の処理を示すフローチャートである。電源が投入さ れると、まず、 CPU122をリセットし、 ROM124に記憶されたプログラムに基づいて 初期化処理を行う(S101)。力かる初期化処理においては、まず、 RAM123ゃバッ ファメモリ 125をオールクリアする。読み書き制御部 127を介して、不揮発性メモリ 11 0内のシステム領域力 デバイスコードを読み出し、当該デバイスコードに基づいて 不揮発性メモリ 110の種類や容量を特定する(S102)。
[0058] 次いで不揮発性メモリ 110から読み出したデバイスコ―ドに基づいて、ページ情報 指示部 153内にページ情報テーブル 154を生成する(S 103)。ある 、はページ情報 指示部 153が当該デバイスコ―ドに基づいた演算機能 (数式 1に対応)によりページ 構成情報を把握してもよい。
[0059] 次に CPU122は、読み書き制御部 127を介して、不揮発性メモリ 110の全ての物 理ブロックの先頭ページの管理領域を読み出す(S104)。その後、アドレス管理部 1 26内に、物理領域管理テーブル 141と論理物理変換テーブル 142とを作成する(S 105)。
[0060] その後、 CPU122はカレントブロックステータステーブル 131をチェックすることによ り、電源立ち上げ前の書き込み動作などで電源遮断によるエラーが発生していない 力どうかをチェックする。ここでは出荷直後の状態、すなわち書き込み中のページが な力つた場合について説明し、書き込み中のページがあった場合については後で詳 細に説明する。書き込み中のページがなければ、図 16Aのフローチャートにおいて S 107, S108より直ち〖こ図 16Bのステップ S116〖こ進み、アクセス装置 101からの読み 書きコマンド等の受付許可状態に入る。
[0061] コマンド等の受付許可状態に入った後、不揮発性記憶装置 100が未フォーマットの 場合は、アクセス装置 101は、 FATファイルシステムに基づいて不揮発性記憶装置 100をフォーマットし、論理アドレス空間を構成する。その後、通常動作時の処理に 移行する。
[0062] [通常動作時の処理]
次に、初期化後の通常動作時の処理について説明する。なお本発明は、書き込み 処理におけるエラー解消を改善するものであるので、ここでも書き込み処理にっ 、て のみ説明する。また、通常、アクセス装置 101からはクラスタ単位での書き込まれる場 合が多いので、簡単のために、クラスタ単位での書き込みについてのみ説明する。な お、クラスタ単位での書き込みにおいても最小書き込み単位であるセクタ単位毎に、 アクセス装置 101と不揮発性記憶装置 100間で、データ転送許可制御がなされる。
[0063] まずアクセス装置 101が論理アドレス LAO〜LA31の 16kバイト(1クラスタ分)の書 き込みコマンドを不揮発性記憶装置 100に転送する。ホスト IF121は書き込みコマン ドを受信すると、 CPU122に受信したことを通知し、 CPU122はまず論理アドレス LA 0に対するデータ力も順番にバッファメモリ 125に書き込む。
[0064] ノッファメモリ 125の容量は 1ページ分 (4セクタ分)の容量を有しているので、論理 アドレス LAO〜LA3までのデータについては、バッファメモリ 125に書き込む。バッフ ァメモリ 125に論理アドレス LAO〜LA3までのデータが一時記憶された段階で、 CP U122はバッファメモリ 125のデータを不揮発性メモリ 110に書き込む。不揮発性メモ リ 110への書き込みが完了した時点で、 CPU122はホスト IF121を介してアクセス装 置 101に対して、次のデータの転送許可を返す。このように、 CPU122は 4セクタ単 位でバッファメモリ 125から不揮発性メモリ 110へ書き込む。アクセス装置 101からの 1クラスタ分の書き込み処理が完了した時点で、 CPU 122はホスト IF 121を介してァ クセス装置 101に対して「対応するクラスタが正常に書き込めたこと」を通知する。
[0065] 上記と併行してホスト IF121がアクセス装置 101からの書き込みコマンドを受信する と、それをトリガーとして CPU122はアドレス管理部 126に対してひとつの書き込み先 の物理ブロックの取得を指示する。アドレス管理部 126は物理領域管理テーブル 14 1を参照し、ランダムに選択された番地力 昇順に無効ブロックをサーチし、最初に見 つかった無効の物理ブロック、例えば PB10を書き込み対象の物理ブロックとする。こ れにより書き込み対象ブロックを特定ブロックに集中させないウェアレべリングを実現 することが可能となる。 CPU122は読み書き制御部 127を介して PB10の消去命令 を不揮発性メモリ 110に送信し、 PB10を消去した後にデータの書き込みを行う。
[0066] 次に、ノ ッファメモリ 125に一時記憶されたデータを不揮発性メモリ 110内の物理ブ ロックへ書き込む流れについて、図 17Aを用いて説明する。 PB10は不揮発性メモリ 110内の 1つの物理ブロックを示す。
[0067] CPU122は、バッファメモリ 125に 4セクタ分、すなわち 1ページ分のデータが一時 記憶された段階で、 PB10へのデータの書き込み処理を行う。 CPU122は、バッファ メモリ 125に記憶されたデータ LA0〜LA3を読み書き制御部 127に転送する。それ と併行して、アドレス管理部 126は、 CPU 122が保持している論理アドレス LAを参照 し、図 11の論理アドレスフォーマット中のページ番号を書き込み先のページ番号(力 レントページ番号)とし、逐次読み書き制御部 127とエラーページ特定部 128と関係 ページ特定部 152に転送する。
[0068] 読み書き制御部 127は、不揮発性メモリ 110内の PB10の対応するページにデー タを書き込み(図 17Aの矢印 Aに対応)、書き込みが終了すると不揮発性メモリ 110 がレディ Zビジーフラグをレディ状態にしてエラーページ特定部 128と CPU 122に通 知する。通知の結果、エラーが発生して正常に書き込めな力つた場合は、エラー解 消処理に移行する。
[0069] 更に、エラーが発生しな力つた場合は、 CPU122は上記レディ/ビジーフラグの受 信後、ホスト IF 121を介してアクセス装置 101に対して次のデータの転送許可を返し 、アクセス装置 101は論理アドレス LA4以降のデータを転送する。
[0070] 以上のようして、バッファメモリ 125に記憶したデータを、 1ページ単位毎に PB10の 対応するページに書き込んでいく。そして論理アドレス LA0〜LA31の 1クラスタ分の データを PB10のページ 0〜7に記憶した段階で、 CPU122はホスト IF121を介して アクセス装置 101に対して「対応するクラスタが正常に書き込めたこと」を通知する。
[0071] アクセス装置 101が継続して論理アドレス LA32〜LA63の 1クラスタ分のデータを 書き込む場合は、これと同様の処理を行い、 PB10のページ 8〜15に記憶する。更 に、アクセス装置 101が継続して論理アドレス LA64〜LA95の 1クラスタ分の書き込 み処理を行う場合は、上述した一連の処理と同様の処理を行い、 PB10のページ 16 〜23に記憶する。 [0072] これら一連の書き込み処理において、 CPU122は後述する通り、第 2ページの書き 込みに先行して第 1ページに記憶されたデータを退避メモリ 155に一時記憶する。例 えば図 17Aにおいて、 PB10のページ 17に書き込む処理(図 17Aの矢印 C)に先行 して、 PB10のページ 11に記憶されたデータを退避メモリ 155に退避(矢印 B)させて おく。この場合、ページ 11が第 1ページ、ページ 17が第 2ページである。退避メモリ 1 55は、全ての第 2ページの書き込みの都度、それに先行して第 1ページに記憶され たデータの退避を行う。第 1ページのことを「関係ページ」、第 1ページに記憶された データを「関係データ」とする。
[0073] [フラッシュ異常が発生した際のエラー解消処理]
ここで、 PB10のページ 17への書き込みにおいて、フラッシュ異常が発生して正常 に書き込めなかった場合の処理について、図 17〜図 20を用いて説明する。
[0074] 図 18において、フラッシュ異常判断部 133は PB10のページ 17への書き込みに際 して、アドレス管理部 126よりカレントページ番号を受信する(S201)。 PB10のぺー ジ 17への書き込みが完了すると、不揮発性メモリ 110がメモリコントローラ 120に対し てエラーステータスを転送し、フラッシュ異常判断部 133がこれを受信する(S202)。 フラッシュ異常判断部 133はエラーステータスをチェックし、エラーが発生したことを 表すフラグが立って 、た場合(S203)、 PB10のページ 17の書き込み中にフラッシュ 異常が発生したと認識する。そしてページ 17をエラー発生ページとして、エラーべ一 ジ番号 (物理アドレス)とエラー種別フラグを値 1にセットして代替 ·修復処理部 151に 転送する(S204)。さらにエラーページ番号を関係ページ特定部 152にも転送する( S205)。なお、エラー種別フラグは、値 0の場合は電源遮断によるエラー、値 1の場 合はフラッシュ異常によるエラーであることを表す。
[0075] 一方、エラーの発生如何に関わらず、アドレス管理部 126はカレントページ番号を 関係ページ特定部 152に転送し、関係ページ特定部 152は必要に応じて後述する プリリード処理 (退避処理)の指示を行う。
[0076] 関係ページ特定部 152は、図 19に示すフローチャートにおいて、アドレス管理部 1 26力 転送されたカレントページ番号を受信し(S301)、カレントページ番号をぺー ジ情報指示部 153に転送する。ページ情報指示部 153はページ情報テーブル 154 のページ番号関係情報 154aを参照することによって、そのカレントページ番号に対 する同一グループのページ番号を関係ページ特定部 152に転送する(S302)。例え ば、カレントページ番号がページ 17であれば、同一グループのページ番号としてべ ージ 11を関係ページ特定部 152に転送することとなる。
[0077] 次にページ種別情報 154bにより、その同一グループのページ番号が第 1ページか どうかを判断する(S303)。そのページ番号が第 1ページ (即ち関係ページ)の場合、 関係ページ番号をアドレス管理部 126に転送し (S304)、後述するプリリード処理を アドレス管理部 126に指示する。 2値ある 、は多値によらず NANDフラッシュメモリは 、低順位アドレス側力もデータを書き込まなければならないという制約がある。従って 、カレントページ番号が第 1ページであれば、プリリードの指示は不要となる。
[0078] プリリード処理とは、関係ページ特定部 152からアドレス管理部 126に転送した関 係ページに記憶されているデータを、カレントページの書き込みに先立って退避メモ リ 155に記憶させる処理のことを 、う。このように退避メモリ 155に随時保持されて 、る データを関係データとし、この関係データを用いて、カレントページの書き込みエラー に起因して生じる関係ページのデータ化けを修復する。なお修復処理については後 述する。
[0079] 上述したプリリードの指示に関する処理の後、エラーがあった力どうかを判別する( S305)。エラーがなければ処理を終える。図 17Aの右側の PB10にはエラーが生じ たページを星印で示している。エラーがあれば関係ページ特定部 152は、エラーべ ージ特定部 128から転送されたエラーページ番号を受信する(S306)。そしてエラー ページ番号をページ情報指示部 153に転送する。ページ情報指示部 153はページ 情報テーブル 154のページ番号関係情報 154aを参照することによって、そのエラー ページ番号に対する同一グループのページ番号を関係ページ特定部 152に転送す る(S307)。例えば、エラーページ番号がページ 17であれば、ページ番号 11を関係 ページ特定部 152に転送することとなる。
[0080] 次にページ種別情報 154bよりその同一グループのページ番号が第 1ページかどう かを判断する(S308)。エラーページが第 1ページであれば、修復処理は不要となる 。エラーページが第 2ページであれば、関係ページのデータ修復が必要となる。例え ば関係ページ番号がページ 11であり、エラーページ番号がページ 17の場合は、関 係ページ番号を代替 ·修復処理部 151に転送し (S309)、制御を代替 ·修復処理部 151に移す。なお S309を実行しな力つた場合、すなわち関係ページ特定部 152が 関係ページを代替 ·修復処理部 151に転送しなかった場合は、修復処理を行わな!/ヽ ものとする。
[0081] 代替'修復処理部 151に制御が移ると、図 20に示すように、エラー種別フラグが 1 であるかどうかを判別する(S401)。このフラグが 1でなければ処理を終了する。この フラグが 1、即ちフラッシュ異常によるエラーであれば、ステップ S402に進み、代替' 修復処理部 151が代替処理 (コピー処理と修復処理とリトライ処理)を行う(S402)。
[0082] コピー処理とは、図 17Bのエラー解消処理において、 PB10の誤りのないページに 書き込まれたデータを、別の消去済みの物理ブロック(例えば PB5)に転写する処理 である。コピー処理において、まずアドレス管理部 126がコピー先ブロックとして、消 去済みの物理ブロック PB5を取得する(S403)。代替 ·修復処理部 151はエラーべ ージ番号より低順位アドレスのページであって修復ページ(ページ 11)を除く全ての ページのコピー処理を実行する(S404)。ここではエラー発生ページが 17、修復べ ージが 11であるので、物理ブロック PB10から物理ブロック PB5への白抜き矢印 D, Eに示すように、ページ 0〜10とページ 12〜16をコピーする。
[0083] 次いでステップ S405において修復処理を行う。修復処理とは、退避メモリ 155に一 時記憶された関係データを関係ページに再び書き込む処理である。例えば図 17B のエラー解消処理では、破線矢印 Fに示すように退避メモリ 155に保持している関係 データを物理ブロック PB5のページ 11 (関係ページ)に書き込む。
[0084] さて、リトライ処理とは、図 17Bのエラー解消処理において、物理ブロック PB10のぺ ージ 17に書き損じたデータを再度物理ブロック PB5のページ 17に書き込む処理で あり、図 17Bの破線矢印 Gである。リトライ処理において、代替'修復処理部 151がェ ラー発生ページのリトライ処理を実行する(S406)。書き込みに成功した場合は(S4 07)、ページ 18以降の書き込みを継続する(S408)。失敗した場合は、アクセス装置 に対して「対応するクラスタが正常に書き込めなつたこと」を通知し (S409)、当該クラ スタの再書き込みコマンドをうながす。 [0085] 以上説明した代替処理によって、フラッシュ異常によるエラーを解消することができ る。なお物理ブロック PB10は次に消去して使えるようにするために、アドレス管理部 126が物理領域管理テーブル内の対応するステータスフラグを無効ブロックにセット する。
[0086] [電源遮断が発生した際のエラー解消処理]
次に電源遮断が発生した際のエラー解消処理について図 21と図 22を用いて説明 する。まず図 21を用いて通常動作時の処理における電源遮断判断部 132のフロー について説明する。ここで通常処理とは、電源立ち上げ直後に実行される初期化処 理以外の処理、言い換えればアクセス装置 101からのコマンド受付が許可された以 降の処理をさす。このフローチャートは、カレントブロックステータステーブル 131の初 期設定処理及び更新処理からなる。初期設定処理において、まずアクセス装置 101 力 の書き込み指示に応じて、新規に無効物理ブロックを取得するかどうか判断する
(S501)。取得する場合はカレントブロックステータステーブル 131をオールクリアし( S502)、物理ブロックアドレス PBA10をカレントブロックステータステーブル 131のヮ ード 0にセットし(S503)、論理ブロックアドレス LBAをカレントブロックステータステー ブル 131のワード 1にセットする(S504)。
[0087] それ以降 S505〜S509の処理は、新規に無効物理ブロックを取得する力しないか に関わらず、 PB10の各ページへの書き込み毎に実行される。電源遮断判断部 132 は、アドレス管理部 126よりカレントページ番号を受信し(S505)、バッファメモリ 125 に一時記憶されたデータを読み出す際に、カレントページに対応する書き込み状況 の識別フラグの上位ビットを値 1にセットする(S506)。また読み書き制御部 127が不 揮発性メモリ 110にデータを書き込んだ直後にレディ Zビジーフラグを受信する(S5 07)。レディになった際に(S508)、カレントページに対応する識別フラグの下位ビッ トを値 1にセットすることにより(S509)、所定ページの書き込みが完了したことをカレ ントブロックステータステーブル 131に履歴として残す。
[0088] 以上のように、カレントブロックステータステーブル 131に、各ページへの書き込み 状況を記録しておくことにより、どのページへの書き込み中に電源遮断が発生したか を、電源遮断直後の電源立ち上げ時の初期化処理にぉ 、て識別できるようにしてお く。図 14に示したカレントブロックステータステーブル 131の例は、ページ 0〜16まで は書き込みが完了し、ページ 17の書き込み中に電源遮断が発生したことを表してい る。
[0089] ページ 17の書き込み中に電源遮断が発生した後に、初期化処理を行った場合に ついて図 16Aを用いて説明する。電源遮断判別部 132はカレントブロックステータス テーブル 131の識別フラグをチェックする(S106)。書き込み中のページがあった場 合 (S107)、該当ページをエラー発生ページとして、エラーページ番号とエラー種別 フラグを代替 ·修復処理部 151に転送する(S 109)。
[0090] エラーが発生していた場合は、 S109の処理の後、図 16Bに進み関係ページの特 定処理を行う(S110)。これは、前述した図 19のフローチャートどおりである。すなわ ち、同一グループのページが第 1ページの場合は(S308)、関係ページ特定部 152 は、関係ページを代替'修復処理部 151に転送する(S309)。同一グループのぺー ジが第 1ページでない場合は、関係ページ特定部 152は、代替 ·修復処理部 151に 関係ページは転送しない。
[0091] さて代替 ·修復処理部 151はエラー発生ページ特定部 128から転送されたエラー 種別フラグをチェックし (S 111)、値 0の時、すなわち電源遮断によるエラーと判断し た場合、エラー解消を実行する。図 22はこのエラー解消処理を示す。代替'修復処 理部 151は代替処理 (コピー処理と修復処理)を開始する(S 112)。代替 ·修復処理 部 151はコピー先ブロックとして無効の物理ブロック、例えば PB5を取得する(S113 )。次!、でエラーページ番号(ページ 17)より低順位アドレスのページ(ページ 0〜 16 )のコピー処理 (矢印 D, E)を実行する。ここでは関係ページ (ページ 11)のデータは PB10からはコピーしない。最後に代替'修復処理部 151は関係データを退避メモリ 155力ら取得し、ページ番号 11の関係ページに書き込む(S115、矢印 F)。
[0092] 電源遮断によるエラーの場合は、フラッシュ異常によるエラーと異なり、リトライ処理 は行わない。その理由はエラーが発生したクラスタに関して、 CPU122はアクセス装 置 101に対して、「対応するクラスタが正常に書き込めたこと」を通知して!/ヽな 、ので 特にリトライ処理をする必要性がない。カロえて、電源遮断によってエラー発生ページ ( ページ 17)に書き込むべきデータが消失してしまっているので、リトライ処理をするこ とができない。従って電源遮断の場合においては、少なくとも正常に書き込めたこと をアクセス装置 101に通知したクラスタ分にっ 、てコピー処理を実行すればよ!、。言 い換えれば、エラー発生ページより低順位アドレスのページ(関係ページ以外)につ
V、てのコピー処理と、関係ページの修復処理を実行しておけば十分である。
[0093] 以上、説明したように、本発明の第 1の実施例は、エラー解消部 129が修復処理を 行うようにしたので、 2ページに跨って同一のメモリセルを構成する不揮発性メモリ 11 0の特有のエラー、すなわち第 2ページの書き込みエラーによって第 1ページに記憶 されていたデータが変化してしまうエラーを解消することができる。
[0094] 本発明の実施例における不揮発性記憶システムはフラッシュ異常及び電源遮断の いずれの場合もエラー解消処理を追加することにより、データの修復を行うことができ る。
[0095] 次に本発明の第 2の実施例について説明する。この実施例では、退避メモリに代え て不揮発性メモリの一部の領域を退避領域として使用したものである。図 23A, 23B はこの第 2の実施例のブロック図であって、第 1の実施例と同一部分は同一符号を付 して詳細な説明を省略する。この実施例では、不揮発性記憶装置 100Aはメモリコン トローラ 120Aと前述した実施例と同様の不揮発性メモリ 110を有している。メモリコン トローラ 120Aにはエラー解消部 161を有している。エラー解消部 161は図 23Bに示 すように退避メモリ 125を有しておらず、その他の構成は第 1の実施例と同一である。 この実施例では退避メモリに代えて不揮発性メモリ 110の 1つの物理ブロックを退避 用の物理ブロックとする。退避用の物理ブロックは空きブロック力も退避毎に任意に 選択される。このため一定の物理ブロックに書き込みが集中することのないウェアレ ベリングを実現して 、る。尚ここでは各物理ブロックの最初のページのみを退避領域 として用いるが、各ページを順次退避領域として用いてもよい。この実施例では退避 メモリとして不揮発性メモリを用いるため、フラッシュ異常によるエラーだけでなぐ電 源遮断によるエラーにつ 、てもデータの修復ができる。
[0096] さてこの実施例でデータを第 2ページに書き込む場合には、これに先行してその第 2ページに対応する第 1ページに記憶されたデータを他の物理ブロックに一時記憶 する。例えば図 24Aに示すように第 17ページにデータを書き込むとき(矢印 C)に、 物理ブロック PB20の退避領域、即ちその先頭ページに一時記憶する(矢印 B)。そし てもしフラッシュエラーが生じれば、これを解消する処理を行う。即ち図 24Bに示すよ うに前述したコピー処理 (矢印 D, E)、リトライ処理 (矢印 G)にカ卩えて、修復処理を行 う。修復処理は退避用の物理ブロック PB20の退避領域に書き込まれたデータを図 1 4Bの矢印 Fに示すように物理ブロック PB50の修復ページである第 11ページに書き 戻す。
[0097] 更に電源遮断による異常が起こった場合には、これを解消するため図 25に示すよ うに前述したコピー処理 (矢印 D, E)に加えて修復処理を行う。修復処理は物理プロ ック PB20の退避領域に書き込まれたデータを矢印 Fに示すように物理ブロック PB5 に書き戻す処理である。その他の動作は前述した第 1の実施例と同様である。こうす れば退避用のメモリを別途設けることなぐ不揮発性メモリのみを用いてデータの退 避を行うことができ、多値のフラッシュメモリを用いた場合の信頼性を向上することが できる。
[0098] なお前述した各実施例にお!、て、不揮発性メモリ 110は、各メモリセルが 2ページ に跨ってデータを保持するタイプのメモリであった力 3ページに跨ってデータを保持 するタイプのメモリであっても、本発明を適用することができる。またメモリセルがぺー ジ内に閉じている、例えば 2値 NANDフラッシュメモリを不揮発性メモリ 110として使 用しても力まわない。その場合は、ページ情報指示部 153が関係ページ番号として 常にページ 0を関係ページ特定部 152に返すようにすることで、修復処理の実行を マスクできる。なお、本発明は、上記実施例に限定されるものではない。
産業上の利用可能性
[0099] 本発明に力かるメモリコントローラ、不揮発性記憶装置、不揮発性記憶システムは、 多値 NANDフラッシュメモリのように、各メモリセルが複数のページに跨ってデータを 保持する不揮発性メモリを使用した装置において、信頼性を向上させることができる 。本発明は、静止画記録再生装置や動画記録再生装置等のポータブル AV機器、 あるいは携帯電話等のポータブル通信機器の記録媒体に適用することができる。

Claims

請求の範囲
[1] 複数のページによって構成され、各メモリセルがグループを構成する複数ページの データを保持する不揮発性メモリに、外部力 与えられるデータを書き込み、該不揮 発性メモリからデータを読み出すメモリコントローラであって、
書き込みエラーがあったエラー発生ページと同一グループの他のページに記憶さ れたデータに生じるエラーを解消するエラー解消部を具備し、
前記エラー解消部は、
データ書き込みに先立って、書き込み先のカレントページと同一グループを構成す る他のページであって既にデータを記憶しているページを関係ページとすると、前記 関係ページに記憶された関係データを読み出し、該関係データを退避領域に一時 記憶し、エラー発生時に該関係データを用いてエラーを解消するメモリコントローラ。
[2] 前記メモリコントローラは、
前記不揮発性メモリのあるページへの書き込み中にエラーが発生したときにそのェ ラーが発生したページを特定するエラーページ特定部を具備し、
前記エラーページ特定部は、
電源遮断の発生を判断する電源遮断判断部と、
前記不揮発性メモリ内部での異常の発生を判断するメモリ異常判断部と、を有する 請求項 1記載のメモリコントローラ。
[3] 前記エラー解消部は、
前記不揮発性メモリにお 、て同一のグループを構成するページに関するページ情 報を出力するページ情報指示部と、
前記カレントページと前記ページ情報指示部より出力されるページ情報に基づい て、関係ページを特定する関係ページ特定部と、
エラー発生時に前記関係データを用いて前記関係ページに記憶されたデータの 修復を行う代替'修復処理部と、を更に具備する請求項 1記載のメモリコントローラ。
[4] 前記不揮発性メモリは、複数の物理ブロック力 成り、
前記代替 ·修復処理部は、
書き込み中の物理ブロックの誤りのないページに書き込まれたデータを、前記不揮 発性メモリの別の無効物理ブロックに転写するコピー処理、書き込みを誤ったデータ であって前記退避領域に保持されている関係データを前記無効物理ブロックの修復 ページに再び書き込む修復処理、及び物理ブロックの書き損じたデータを再度前記 無効物理ブロックに書き込むリトライ処理をする請求項 3記載のメモリコントローラ。
[5] 前記不揮発性メモリは、複数の物理ブロック力 成り、
前記代替 ·修復処理部は、
書き込み中の物理ブロックの誤りのないページに書き込まれたデータを、前記不揮 発性メモリの別の無効物理ブロックに転写するコピー処理、及び書き込みを誤ったデ ータであって前記退避領域に保持されている関係データを前記無効物理ブロックの 修復ページに再び書き込む修復処理をするものであり、
前記エラー解消部は、
関係データを不揮発性の記憶領域に退避させる請求項 3記載のメモリコントローラ
[6] 前記エラー解消部は、
関係データを退避させる不揮発性の退避メモリを有する請求項 3記載のメモリコント ローラ。
[7] 前記退避メモリは、不揮発性 RAMであることを特徴とする請求項 6記載のメモリコン 卜ローラ。
[8] 前記不揮発性 RAMは、強誘電体メモリ (FeRAM)、磁性記録式随時書き込み読 み出しメモリ(MRAM)、オボ-ツクユ-ファイドメモリ(OUM)、レジスタンス RAM (R RAM)のうちのいずれか 1つで構成される請求項 7記載のメモリコントローラ。
[9] 複数のページによって構成され、各メモリセルがグループを構成する複数ページの データを保持する不揮発性メモリと、外部から与えられるデータを書き込み、該不揮 発性メモリからデータを読み出すメモリコントローラとを有する不揮発性記憶装置であ つて、
前記メモリコントローラは、
書き込みエラーがあったエラーページと同一グループの他のページに記憶された データに生じるエラーを解消するエラー解消部を具備し、 前記エラー解消部は、
データ書き込みに先立って、書き込み先のカレントページと同一グループを構成す る他のページであって既にデータを記憶しているページを関係ページとすると、前記 関係ページに記憶された関係データを読み出し、該関係データを退避領域に一時 記憶し、エラー発生時に該関係データを用いてエラーを解消する不揮発性記憶装置
[10] 前記メモリコントローラは、
前記不揮発性メモリのあるページへの書き込み中にエラーが発生したときにそのェ ラーが発生したページを特定するエラーページ特定部を具備し、
前記エラーページ特定部は、
電源遮断の発生を判断する電源遮断判断部と、
前記不揮発性メモリ内部での異常の発生を判断するメモリ異常判断部と、を有する 請求項 9記載の不揮発性記憶装置。
[11] 前記エラー解消部は、
前記不揮発性メモリにお 、て同一のグループを構成するページに関するページ情 報を出力するページ情報指示部と、
前記カレントページと前記ページ情報指示部より出力されるページ情報に基づい て、関係ページを特定する関係ページ特定部と、
エラー発生時に前記関係データを用いて前記関係ページに記憶されたデータの 修復を行う代替 ·修復処理部と、を更に具備する請求項 9記載の不揮発性記憶装置
[12] 前記不揮発性メモリは、複数の物理ブロック力 成り、
前記代替 ·修復処理部は、
書き込み中の物理ブロックの誤りのないページに書き込まれたデータを、前記不揮 発性メモリの別の無効物理ブロックに転写するコピー処理、書き込みを誤ったデータ であって前記退避領域に保持されている関係データを前記無効物理ブロックの修復 ページに再び書き込む修復処理、及び物理ブロックの書き損じたデータを再度前記 無効物理ブロックに書き込むリトライ処理をする請求項 11記載の不揮発性記憶装置
[13] 前記不揮発性メモリは、複数の物理ブロック力 成り、
前記代替 ·修復処理部は、
書き込み中の物理ブロックの誤りのないページに書き込まれたデータを、前記不揮 発性メモリの別の無効物理ブロックに転写するコピー処理、及び書き込みを誤ったデ ータであって前記退避領域に保持されている関係データを前記無効物理ブロックの 修復ページに再び書き込む修復処理をするものであり、
前記エラー解消部は、
関係データを不揮発性の記憶領域に退避させる請求項 11記載の不揮発性記憶装 置。
[14] 前記エラー解消部は、
関係データを退避させる不揮発性の退避メモリを有する請求項 11記載のメモリコン トローラ
[15] 前記退避メモリは、不揮発性 RAMであることを特徴とする請求項 14記載の不揮発 性記憶装置。
[16] 前記不揮発性 RAMは、強誘電体メモリ (FeRAM)、磁性記録式随時書き込み読 み出しメモリ(MRAM)、オボ-ツクユ-ファイドメモリ(OUM)、レジスタンス RAM (R RAM)のうちのいずれか 1つで構成される請求項 15記載の不揮発性記憶装置。
[17] アクセス装置と不揮発性記憶装置を具備する不揮発性記憶システムであって、 前記アクセス装置は、
前記不揮発性記憶装置に書き込みコマンドとデータを送出するものであり、 前記不揮発性記憶装置は、
複数のページによって構成され、各メモリセルがグループを構成する複数ページの データを保持する不揮発性メモリと、外部から与えられるデータを書き込み、該不揮 発性メモリからデータを読み出すメモリコントローラとを有するものであり、
前記メモリコントローラは、
書き込みエラーがあったエラーページと同一グループの他のページに記憶された データに生じるエラーを解消するエラー解消部を具備し、 前記エラー解消部は、
データ書き込みに先立って、書き込み先のカレントページと同一グループを構成す る他のページであって既にデータを記憶しているページを関係ページとすると、前記 関係ページに記憶された関係データを読み出し、該関係データを退避領域に一時 記憶し、エラー発生時に該関係データを用いてエラーを解消する不揮発性記憶シス テム。
[18] 前記メモリコントローラは、
前記不揮発性メモリのあるページへの書き込み中にエラーが発生したときにそのェ ラーが発生したページを特定するエラーページ特定部を具備し、
前記エラーページ特定部は、
電源遮断の発生を判断する電源遮断判断部と、
前記不揮発性メモリ内部での異常の発生を判断するメモリ異常判断部と、を有する 請求項 17記載の不揮発性記憶システム。
[19] 前記エラー解消部は、
前記不揮発性メモリにお 、て同一のグループを構成するページに関するページ情 報を出力するページ情報指示部と、
前記カレントページと前記ページ情報指示部より出力されるページ情報に基づい て、関係ページを特定する関係ページ特定部と、
エラー発生時に前記関係データを用いて前記関係ページに記憶されたデータの 修復を行う代替'修復処理部と、を更に具備する請求項 17記載の不揮発性記憶シス テム。
[20] 前記不揮発性メモリは、複数の物理ブロック力 成り、
前記代替 ·修復処理部は、
書き込み中の物理ブロックの誤りのないページに書き込まれたデータを、前記不揮 発性メモリの別の無効物理ブロックに転写するコピー処理、書き込みを誤ったデータ であって前記退避領域に保持されている関係データを前記無効物理ブロックの修復 ページに再び書き込む修復処理、及び物理ブロックの書き損じたデータを再度前記 無効物理ブロックに書き込むリトライ処理をする請求項 19記載の不揮発性記憶シス テム。
[21] 前記不揮発性メモリは、複数の物理ブロック力 成り、
前記代替 ·修復処理部は、
書き込み中の物理ブロックの誤りのないページに書き込まれたデータを、前記不揮 発性メモリの別の無効物理ブロックに転写するコピー処理、及び書き込みを誤ったデ ータであって前記退避領域に保持されている関係データを前記無効物理ブロックの 修復ページに再び書き込む修復処理をするものであり、
前記エラー解消部は、
関係データを不揮発性の記憶領域に退避させる請求項 19記載の不揮発性記憶シ ステム。
[22] 前記エラー解消部は、
関係データを退避させる不揮発性の退避メモリを有する請求項 19記載のメモリコン トローラ
[23] 前記退避メモリは、不揮発性 RAMであることを特徴とする請求項 22記載の不揮発 性記憶システム。
[24] 前記不揮発性 RAMは、強誘電体メモリ (FeRAM)、磁性記録式随時書き込み読 み出しメモリ(MRAM)、オボ-ツクユ-ファイドメモリ(OUM)、レジスタンス RAM (R RAM)のうちの、、ずれか 1つで構成される請求項 23記載の不揮発性記憶システム。
[25] 複数のページによって構成され、各メモリセルがグループを構成する複数ページの データを保持する不揮発性メモリに、外部から与えられるデータを書き込むデータ書 き込み方法であって、
書き込みエラーがあったエラーページと同一グループの他のページに記憶された データに生じるエラーを解消するステップを有し、
前記エラー解消ステップは、
データ書き込みに先立って、書き込み先のカレントページと同一グループを構成す る他のページであって既にデータを記憶しているページを関係ページとすると、前記 関係ページに記憶された関係データを読み出して退避領域に該関係データを一時 し し、 エラー発生時に該関係データを用いてエラーを解消するデータ書き込み方法。
[26] 前記エラー解消ステップは、
同一のグループを構成するページに関するページ情報を出力し、
前記カレントページと前記ページ情報に基づ!/、て、関係ページを特定し、 エラー発生時に前記関係データを用いて前記関係ページに記憶されたデータの 修復を行う請求項 25記載のデータ書き込み方法。
[27] 前記不揮発性メモリは、複数の物理ブロック力 成り、
前記代替 ·修復処理ステップは、
書き込み中の物理ブロックの誤りのないページに書き込まれたデータを、前記不揮 発性メモリの別の無効物理ブロックに転写するコピー処理、書き込みを誤ったデータ であって前記退避領域に保持されている関係データを前記無効物理ブロックの修復 ページに再び書き込む修復処理、及び物理ブロックの書き損じたデータを再度前記 無効物理ブロックに書き込むリトライ処理をする請求項 26記載のデータ書き込み方 法。
[28] 前記不揮発性メモリは、複数の物理ブロック力 成り、
前記代替 ·修復処理ステップは、
書き込み中の物理ブロックの誤りのないページに書き込まれたデータを、前記不揮 発性メモリの別の無効物理ブロックに転写するコピー処理、及び書き込みを誤ったデ ータであって前記退避領域に保持されている関係データを前記無効物理ブロックの 修復ページに再び書き込む修復処理をするものであり、
前記退避領域は、不揮発性の領域である請求項 26記載のデータ書き込み方法。
PCT/JP2006/315725 2005-08-22 2006-08-09 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 WO2007023674A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/064,469 US20090100290A1 (en) 2005-08-22 2006-08-09 Memory controller, nonvolatile memory device, nonvolatile memory system, and data writing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005-239472 2005-08-22
JP2005239472 2005-08-22

Publications (1)

Publication Number Publication Date
WO2007023674A1 true WO2007023674A1 (ja) 2007-03-01

Family

ID=37771425

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/315725 WO2007023674A1 (ja) 2005-08-22 2006-08-09 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法

Country Status (2)

Country Link
US (1) US20090100290A1 (ja)
WO (1) WO2007023674A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008544345A (ja) * 2005-05-12 2008-12-04 サンディスク アイエル リミテッド 電源喪失によるデータ破損に強いフラッシュメモリ管理方法
WO2009107505A1 (en) * 2008-02-28 2009-09-03 Kabushiki Kaisha Toshiba Memory system
JP2009217754A (ja) * 2008-03-12 2009-09-24 Toshiba Corp メモリシステム
JP2011048725A (ja) * 2009-08-28 2011-03-10 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ
US8276043B2 (en) 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4888184B2 (ja) * 2007-03-26 2012-02-29 ティアック株式会社 記憶装置
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US8730722B2 (en) 2012-03-02 2014-05-20 Sandisk Technologies Inc. Saving of data in cases of word-line to word-line short in memory arrays
US9165683B2 (en) 2013-09-23 2015-10-20 Sandisk Technologies Inc. Multi-word line erratic programming detection
US10540099B2 (en) * 2013-12-12 2020-01-21 Commissariat à l'énergie atomique et aux énergies alternatives System for managing the wear of an electronic memory
US10235058B2 (en) * 2013-12-12 2019-03-19 Commissariat à l'énergie atomique et aux énergies alternatives System and method for managing wear of an electronic memory
US9514835B2 (en) 2014-07-10 2016-12-06 Sandisk Technologies Llc Determination of word line to word line shorts between adjacent blocks
US9443612B2 (en) 2014-07-10 2016-09-13 Sandisk Technologies Llc Determination of bit line to low voltage signal shorts
US9484086B2 (en) 2014-07-10 2016-11-01 Sandisk Technologies Llc Determination of word line to local source line shorts
US9460809B2 (en) 2014-07-10 2016-10-04 Sandisk Technologies Llc AC stress mode to screen out word line to word line shorts
US9202593B1 (en) 2014-09-02 2015-12-01 Sandisk Technologies Inc. Techniques for detecting broken word lines in non-volatile memories
US9240249B1 (en) 2014-09-02 2016-01-19 Sandisk Technologies Inc. AC stress methods to screen out bit line defects
US9449694B2 (en) 2014-09-04 2016-09-20 Sandisk Technologies Llc Non-volatile memory with multi-word line select for defect detection operations
US9659666B2 (en) 2015-08-31 2017-05-23 Sandisk Technologies Llc Dynamic memory recovery at the sub-block level
CN106328059B (zh) * 2016-09-07 2017-10-27 京东方科技集团股份有限公司 用于电学补偿的存储器中数据更新的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004310650A (ja) * 2003-04-10 2004-11-04 Renesas Technology Corp メモリ装置
JP2006294126A (ja) * 2005-04-11 2006-10-26 Toshiba Corp 半導体記憶装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715221A (en) * 1995-04-21 1998-02-03 Matsushita Electric Industrial Method for managing defects in an information recording medium, and a device and information recording medium using said method
JP2002236607A (ja) * 2001-02-13 2002-08-23 Matsushita Electric Ind Co Ltd 共有メモリ制御装置とマルチメディア処理システム
JP2003036681A (ja) * 2001-07-23 2003-02-07 Hitachi Ltd 不揮発性記憶装置
JP3610574B2 (ja) * 2001-08-15 2005-01-12 日本電気株式会社 ディスクアレイ装置
WO2004047078A2 (en) * 2002-11-20 2004-06-03 Filesx Ltd. Fast backup storage and fast recovery of data (fbsrd)
US7085962B1 (en) * 2003-09-08 2006-08-01 Veritas Operating Corporation Method and system for completing a backup job that was interrupted during a backup process
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US7716413B2 (en) * 2004-02-15 2010-05-11 Sandisk Il Ltd. Method of making a multi-bit-cell flash memory
JPWO2005083573A1 (ja) * 2004-02-27 2007-11-29 松下電器産業株式会社 半導体メモリ装置
JP4570891B2 (ja) * 2004-03-30 2010-10-27 ルネサスエレクトロニクス株式会社 記憶装置
KR101115843B1 (ko) * 2004-05-06 2012-03-09 파나소닉 주식회사 반도체 메모리장치
KR100624287B1 (ko) * 2004-05-11 2006-09-18 에스티마이크로일렉트로닉스 엔.브이. 낸드 플래시 메모리 소자의 리던던시 회로
JP4722839B2 (ja) * 2004-05-19 2011-07-13 パナソニック株式会社 メモリ制御回路、不揮発性記憶装置及びメモリ制御方法
US7062624B2 (en) * 2004-09-29 2006-06-13 Hitachi, Ltd. Method for managing volume groups considering storage tiers
JP4104586B2 (ja) * 2004-09-30 2008-06-18 株式会社東芝 ファイル管理機能を備えたファイルシステム及びファイル管理方法
US7275140B2 (en) * 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
US7681109B2 (en) * 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
JP2007220168A (ja) * 2006-02-14 2007-08-30 Matsushita Electric Ind Co Ltd 半導体記憶装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004310650A (ja) * 2003-04-10 2004-11-04 Renesas Technology Corp メモリ装置
JP2006294126A (ja) * 2005-04-11 2006-10-26 Toshiba Corp 半導体記憶装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008544345A (ja) * 2005-05-12 2008-12-04 サンディスク アイエル リミテッド 電源喪失によるデータ破損に強いフラッシュメモリ管理方法
WO2009107505A1 (en) * 2008-02-28 2009-09-03 Kabushiki Kaisha Toshiba Memory system
JP2009205555A (ja) * 2008-02-28 2009-09-10 Toshiba Corp メモリシステム
EP2248026A4 (en) * 2008-02-28 2010-11-10 Toshiba Kk MEMORY SYSTEM
EP2248026A1 (en) * 2008-02-28 2010-11-10 Kabushiki Kaisha Toshiba Memory system
KR101099804B1 (ko) * 2008-02-28 2011-12-27 가부시끼가이샤 도시바 메모리 시스템
US8190812B2 (en) 2008-02-28 2012-05-29 Kabushiki Kaisha Toshiba Memory system capable of restoring broken information
US8276043B2 (en) 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
US8751901B2 (en) 2008-03-01 2014-06-10 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory system configured to control data transfer
US9176816B2 (en) 2008-03-01 2015-11-03 Kabushiki Kaisha Toshiba Memory system configured to control data transfer
JP2009217754A (ja) * 2008-03-12 2009-09-24 Toshiba Corp メモリシステム
JP2011048725A (ja) * 2009-08-28 2011-03-10 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ

Also Published As

Publication number Publication date
US20090100290A1 (en) 2009-04-16

Similar Documents

Publication Publication Date Title
WO2007023674A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP4842563B2 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
US8176236B2 (en) Memory controller, memory system with memory controller, and method of controlling flash memory
US8037232B2 (en) Data protection method for power failure and controller using the same
US8775771B2 (en) Block management method for a flash memory and flash memory controller and storage system using the same
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
JP2006048893A (ja) 不良ブロック管理機能を有するフラッシュメモリ装置及びフラッシュメモリ装置の不良ブロック管理方法
JPWO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP2004234052A (ja) 記憶装置
US8250292B2 (en) Data writing method for a flash memory, and controller and storage system using the same
JPWO2005083573A1 (ja) 半導体メモリ装置
US8200892B2 (en) Memory controller, memory system with memory controller, and method of controlling flash memory
US8316208B2 (en) Memory controller, flash memory system with memory controller, and method of controlling flash memory
JPWO2009004674A1 (ja) 記憶装置、ディスク装置、書込み判定方法、制御装置
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
US20110213912A1 (en) Memory management and writing method, and memory controller and memory storage system using the same
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2011059907A (ja) 端末装置及びそれに用いる不揮発メモリ管理方法並びにそのプログラム
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4710918B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP2005242903A (ja) メモリ装置、メモリ制御方法、及びメモリ制御装置
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 12064469

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 06782541

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP