NAND flash memory having internal ECC processing and method of operation thereof
Summary by NHIP
Partitioned Buffer ECC Processing
The method sequentially reads NAND memory data while partitioning a page buffer into first and second parts. It establishes ECC-processed data in alternating buffer parts during overlapping time relationships to determine individual and combined error statuses before output.
Claim Score by NHIP
Abstract
A continuous read operation may be achieved by using a data buffer having a partitioned data register and a partitioned cache register, user configurable internal ECC associated with the cache register, and fast bad block management. During a data read operation, the ECC status may be indicated by ECC status bits. The status (1:1), for example, may indicate for the Continuous Read Mode that the entire data output contains more than 4 bits errors/page in multiple pages. However, one may wish to know the ECC status of each page or of each page partition. For the former, the ECC status for the entire page may be determined and made in the status register at the end of the output of the page. For the latter, the ECC status of each page partition may be determined and output before output of the corresponding page partition.

Term
8.1 yearsleft in the term
Expires 19 October 2034, including 79 days of term adjustment.
- Priority and filed
- Granted
- Today
- Expires
7 claims: 4 independent, 3 dependent
- 1A method of sequentially reading data from a digital memory device comprising a NAND memory array and a page buffer coupled thereto, the page buffer being partitioned into at least a first part and a second part, comprising:accessing a page of data from the NAND memory array;establishing first error correction code (“ECC”) processed data in the first part of the page buffer from the page of data;determining a first ECC status for the first ECC processed data;outputting the first ECC processed data from the first part of the page buffer;establishing second ECC processed data in the second part of the page buffer from the page of data, in an overlapping time relationship with the first ECC processed data outputting step;determining, from the first ECC status for the first ECC processed data and during the second ECC processed data establishing step, a second ECC status for a page of data comprising the first ECC processed data and the second ECC processed data;storing the second ECC status in a status register;accessing a first sequential page of data from the NAND memory array, in an overlapping time relationship with the first ECC processed data outputting step;outputting the second ECC processed data from the second part of the page buffer;establishing third ECC processed data in the first part of the page buffer from the first sequential page of data, in an overlapping time relationship with the second ECC processed data outputting step;determining a third ECC status for the third ECC processed data;outputting the third ECC processed data from the first part of the page buffer;establishing fourth ECC processed data in the second part of the page buffer from the first sequential page of data, in an overlapping time relationship with the third ECC processed data outputting step;determining, from the third ECC status for the third ECC processed data and during the fourth ECC processed data establishing step, a fourth ECC status for a page of data comprising the third ECC processed data and the fourth ECC processed data;storing the fourth ECC status in the status register;and accessing a second sequential page of data from the NAND memory array, in an overlapping time relationship with the third ECC processed data outputting step.
- 4A digital memory device comprising:a NAND flash memory array;a row decoder coupled to the NAND flash memory array;a data register coupled to the NAND flash memory array and comprising at least a first part and a second part;a cache register coupled to the data register and comprising at least a first part and a second part corresponding to the first and second parts of the data register;an error correction code (“ECC”) circuit coupled to the cache register;a column decoder coupled to the cache register;and a control circuit coupled to the row decoder, the column decoder, the data register, the cache register, and the ECC circuit, wherein the control circuit comprises logic and register elements for executing the functions of: loading a page of data from the NAND memory array into the data register;replicating a first portion of the page of data from the first part of the data register to the first part of the cache register;establishing first ECC processed data in the first part of the cache register from the first portion of the page of data;determining a first ECC status for the first ECC processed data;outputting the first ECC processed data from the first part of the cache register;replicating a second portion of the page of data from the second part of the data register to the second part of the cache register;establishing second ECC processed data in the second part of the cache register from the second portion of the page of data, in an overlapping time relationship with the first ECC processed data outputting function;determining, from the first ECC status for the first ECC processed data and as part of the second ECC processed data establishing function, a second ECC status for a page of data comprising the first ECC processed data and the second ECC processed data;storing the second ECC status in a status register;loading a first sequential page of data from the NAND memory array into the data register, in an overlapping time relationship with the first ECC processed data outputting function;outputting the second ECC processed data from the second part of the cache register;replicating a first portion of the first sequential page of data from the first part of the data register to the first part of the cache register;establishing third ECC processed data in the first part of the cache register from the first portion of the first sequential page of data, in an overlapping time relationship with the second ECC processed data outputting function;determining a third ECC status for the third ECC processed data;outputting the third ECC processed data from the first part of the cache register;replicating a second portion of the first sequential page of data from the second part of the data register to the second part of the cache register;establishing fourth ECC processed data in the second part of the cache register from the second portion of the first sequential page of data, in an overlapping time relationship with the third ECC processed data outputting function;determining, from the third ECC status for the third ECC processed data and as part of the fourth ECC processed data establishing function, a fourth ECC status for a page of data comprising the third ECC processed data and the fourth ECC processed data;storing the fourth ECC status in the status register;and loading a second sequential page of data from the NAND memory array into the data register, in an overlapping time relationship with the third ECC processed data outputting function.
- 5A method of sequentially reading data from a digital memory device comprising a NAND memory array and a page buffer coupled thereto, the page buffer being partitioned into at least a first part and a second part, comprising:accessing a page of data from the NAND memory array;establishing first error correction code (“ECC”) processed data in the first part of the page buffer from the page of data;determining a first ECC status for the first ECC processed data;outputting the first ECC processed data from the first part of the page buffer;establishing second ECC processed data in the second part of the page buffer from the page of data, in an overlapping time relationship with the first ECC processed data outputting step;determining, from the first ECC status for the first ECC processed data and during the second ECC processed data establishing step, a second ECC status for a page of data comprising the first ECC processed data and the second ECC processed data;storing the second ECC status;accessing a first sequential page of data from the NAND memory array, in an overlapping time relationship with the first ECC processed data outputting step;outputting the second ECC processed data from the second part of the page buffer, and the second ECC status from the second ECC status storing step;establishing third ECC processed data in the first part of the page buffer from the first sequential page of data, in an overlapping time relationship with the second ECC processed data outputting step;determining a third ECC status for the third ECC processed data;outputting the third ECC processed data from the first part of the page buffer;establishing fourth ECC processed data in the second part of the page buffer from the first sequential page of data, in an overlapping time relationship with the third ECC processed data outputting step;determining, from the third ECC status for the third ECC processed data and during the fourth ECC processed data establishing step, a fourth ECC status for a page of data comprising the third ECC processed data and the fourth ECC processed data;storing the fourth ECC status;accessing a second sequential page of data from the NAND memory array, in an overlapping time relationship with the third ECC processed data outputting step;and outputting the fourth ECC processed data from the second part of the page buffer, and the fourth ECC status from the fourth ECC status storing step.
- 6Broadest claimClaim Score 20, narrow(NHIP)A method of sequentially reading data from a digital memory device comprising a NAND memory array and a page buffer coupled thereto, the page buffer being partitioned into at least a first part and a second part, comprising:accessing a page of data from the NAND memory array;establishing first error correction code (“ECC”) processed data in the first part of the page buffer from the page of data;determining a first ECC status for the first ECC processed data;outputting the first ECC status;outputting the first ECC processed data from the first part of the page buffer, following the first ECC status outputting step;accessing a first sequential page of data from the NAND memory array, in an overlapping time relationship with the first ECC processed data outputting step;establishing second ECC processed data in the second part of the page buffer from the page of data, in an overlapping time relationship with the first ECC processed data outputting step;determining a second ECC status for the second ECC processed data;outputting the second ECC status;outputting the second ECC processed data from the second part of the page buffer, following the second ECC status outputting step;establishing third ECC processed data in the first part of the page buffer from the first sequential page of data, in an overlapping time relationship with the second ECC processed data outputting step;determining a third ECC status for the third ECC processed data;outputting the third ECC status;outputting the third ECC processed data from the first part of the page buffer, following the third ECC status outputting step;accessing a second sequential page of data from the NAND memory array, in an overlapping time relationship with the third ECC processed data outputting step;and establishing fourth ECC processed data in the second part of the page buffer from the first sequential page of data, in an overlapping time relationship with the third ECC processed data outputting step.
Independent claims4
51 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to digital memory devices and operation thereof, and more particularly to NAND flash memory having internal ECC processing and methods of operation thereof.
2. Description of Related Art
NAND flash memory is popular for data storage. The cost versus density advantage of single level cell (“SLC”) NAND flash memory in densities of 512 Megabits and higher is largely due to the inherently smaller memory cell size used in SLC NAND flash technology.
NAND flash memory is also becoming popular for a variety of applications in addition to data storage, including code shadowing. Although commonly used SLC NAND flash memory has architectural, performance, data integrity, and bad block limitations that make it difficult to support the high speed code shadow applications for which serial NOR flash memory is well suited, various techniques have been developed to adapt NAND flash memory to such applications.
Error Correction Code (“EEC”) algorithms have been developed to manage the data integrity issue. In one approach, an internal ECC calculation is done during page programming, and the resulting EEC information is stored in the extra 64-Byte area known as the spare area for each page. During the data read operation, the ECC engine verifies the data according to the previously-stored ECC information, and to a limited extent, makes the indicated corrections. The verification and correction status is indicated by ECC Status Bits ECC-<b>1</b> and ECC-<b>0</b>, in the following manner. ECC-<b>1</b>, ECC-<b>0</b> status (0:0) indicates that the entire data output is successful, without the need for any ECC correction. ECC-<b>1</b>, ECC-<b>0</b> status (0:1) indicates that the entire data output is successful, with 1˜4 bit/page ECC corrections in either a single page or multiple pages. ECC-<b>1</b>, ECC-<b>0</b> status (1:0) indicates that the entire data output contains more than 4 bits errors only in a single page which cannot be repaired by ECC. The data is not suitable for use. In the Continuous Read Mode, an additional command may be used to read out the Page Address (PA) of the page containing the errors. ECC-<b>1</b>, ECC-<b>0</b> status (1:1) indicates that the entire data output contains more than 4 bits errors/page in multiple pages. In the Continuous Read Mode, the additional command provides the Page Address (PA) of the last page containing the errors. The PAs of the other failed pages is not reported.
BRIEF SUMMARY OF THE INVENTION
One embodiment of the present invention is a method of sequentially reading data from a digital memory device comprising a NAND memory array and a page buffer coupled thereto, the page buffer being partitioned into at least a first part and a second part, comprising: accessing a page of data from the NAND memory array; establishing first error correction code (“ECC”) processed data in the first part of the page buffer from the page of data; determining a first ECC status for the first ECC processed data; outputting the first ECC processed data from the first part of the page buffer; establishing second ECC processed data in the second part of the page buffer from the page of data, in an overlapping time relationship with the first ECC processed data outputting step; determining, from the first ECC status for the first ECC processed data and during the second ECC processed data establishing step, a second ECC status for a page of data comprising the first ECC processed data and the second ECC processed data; storing the second ECC status in a status register; accessing a first sequential page of data from the NAND memory array, in an overlapping time relationship with the first ECC processed data outputting step; outputting the second ECC processed data from the second part of the page buffer; establishing third ECC processed data in the first part of the page buffer from the first sequential page of data, in an overlapping time relationship with the second ECC processed data outputting step; determining a third ECC status for the third ECC processed data; outputting the third ECC processed data from the first part of the page buffer; establishing fourth ECC processed data in the second part of the page buffer from the first sequential page of data, in an overlapping time relationship with the third ECC processed data outputting step; determining, from the third ECC status for the third ECC processed data and during the fourth ECC processed data establishing step, a fourth ECC status for a page of data comprising the third ECC processed data and the fourth ECC processed data; storing the fourth ECC status in the status register; and accessing a second sequential page of data from the NAND memory array, in an overlapping time relationship with the third ECC processed data outputting step.
Another embodiment of the present invention is a digital memory device comprising: a NAND flash memory array; a row decoder coupled to the NAND flash memory array; a data register coupled to the NAND flash memory array and comprising at least a first part and a second part; a cache register coupled to the data register and comprising at least a first part and a second part corresponding to the first and second parts of the data register; an error correction code (“ECC”) circuit coupled to the cache register; a column decoder coupled to the cache register; and a control circuit coupled to the row decoder, the column decoder, the data register, the cache register, and the ECC circuit. The control circuit comprises logic and register elements for executing the functions of: loading a page of data from the NAND memory array into the data register; replicating a first portion of the page of data from the first part of the data register to the first part of the cache register; establishing first ECC processed data in the first part of the cache register from the first portion of the page of data; determining a first ECC status for the first ECC processed data; outputting the first ECC processed data from the first part of the cache register; replicating a second portion of the page of data from the second part of the data register to the second part of the cache register; establishing second ECC processed data in the second part of the cache register from the second portion of the page of data, in an overlapping time relationship with the first ECC processed data outputting function; determining, from the first ECC status for the first ECC processed data and as part of the second ECC processed data establishing function, a second ECC status for a page of data comprising the first ECC processed data and the second ECC processed data; storing the second ECC status in a status register; loading a first sequential page of data from the NAND memory array into the data register, in an overlapping time relationship with the first ECC processed data outputting function; outputting the second ECC processed data from the second part of the cache register; replicating a first portion of the first sequential page of data from the first part of the data register to the first part of the cache register; establishing third ECC processed data in the first part of the cache register from the first portion of the first sequential page of data, in an overlapping time relationship with the second ECC processed data outputting function; determining a third ECC status for the third ECC processed data; outputting the third ECC processed data from the first part of the cache register; replicating a second portion of the first sequential page of data from the second part of the data register to the second part of the cache register; establishing fourth ECC processed data in the second part of the cache register from the second portion of the first sequential page of data, in an overlapping time relationship with the third ECC processed data outputting function; determining, from the third ECC status for the third ECC processed data and as part of the fourth ECC processed data establishing function, a fourth ECC status for a page of data comprising the third ECC processed data and the fourth ECC processed data; storing the fourth ECC status in the status register; and loading a second sequential page of data from the NAND memory array into the data register, in an overlapping time relationship with the third ECC processed data outputting function.
Another embodiment of the present invention is a method of sequentially reading data from a digital memory device comprising a NAND memory array and a page buffer coupled thereto, the page buffer being partitioned into at least a first part and a second part, comprising: accessing a page of data from the NAND memory array; establishing first error correction code (“ECC”) processed data in the first part of the page buffer from the page of data; determining a first ECC status for the first ECC processed data; outputting the first ECC processed data from the first part of the page buffer; establishing second ECC processed data in the second part of the page buffer from the page of data, in an overlapping time relationship with the first ECC processed data outputting step; determining, from the first ECC status for the first ECC processed data and during the second ECC processed data establishing step, a second ECC status for a page of data comprising the first ECC processed data and the second ECC processed data; storing the second ECC status; accessing a first sequential page of data from the NAND memory array, in an overlapping time relationship with the first ECC processed data outputting step; outputting the second ECC processed data from the second part of the page buffer, and the second ECC status from the storing step; establishing third ECC processed data in the first part of the page buffer from the first sequential page of data, in an overlapping time relationship with the second ECC processed data outputting step; determining a third ECC status for the third ECC processed data; outputting the third ECC processed data from the first part of the page buffer; establishing fourth ECC processed data in the second part of the page buffer from the first sequential page of data, in an overlapping time relationship with the third ECC processed data outputting step; determining, from the third ECC status for the third ECC processed data and during the fourth ECC processed data establishing step, a fourth ECC status for a page of data comprising the third ECC processed data and the fourth ECC processed data; storing the fourth ECC status; and accessing a second sequential page of data from the NAND memory array, in an overlapping time relationship with the third ECC processed data outputting step.
Another embodiment of the present invention is a method of sequentially reading data from a digital memory device comprising a NAND memory array and a page buffer coupled thereto, the page buffer being partitioned into at least a first part and a second part, comprising: accessing a page of data from the NAND memory array; establishing first error correction code (“ECC”) processed data in the first part of the page buffer from the page of data; determining a first ECC status for the first ECC processed data; outputting the first ECC status; outputting the first ECC processed data from the first part of the page buffer, following the first ECC status outputting step; accessing a first sequential page of data from the NAND memory array, in an overlapping time relationship with the first ECC processed data outputting step; establishing second ECC processed data in the second part of the page buffer from the page of data, in an overlapping time relationship with the first ECC processed data outputting step; determining a second ECC status for the second ECC processed data; outputting the second ECC status; outputting the second ECC processed data from the second part of the page buffer, following the second ECC status outputting step; establishing third ECC processed data in the first part of the page buffer from the first sequential page of data, in an overlapping time relationship with the second ECC processed data outputting step; determining a third ECC status for the third ECC processed data; outputting the third ECC status; outputting the third ECC processed data from the first part of the page buffer, following the third ECC status outputting step; accessing a second sequential page of data from the NAND memory array, in an overlapping time relationship with the third ECC processed data outputting step; and establishing fourth ECC processed data in the second part of the page buffer from the first sequential page of data, in an overlapping time relationship with the third ECC processed data outputting step.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
<figref idref="DRAWINGS">FIG. 1</figref> is a flowchart showing the operations of a NAND flash memory for a continuous read.
<figref idref="DRAWINGS">FIG. 2</figref> is a functional block diagram of the functioning of a page buffer having a data register and a cache register during a portion of the continuous read process of <figref idref="DRAWINGS">FIG. 1</figref>.
<figref idref="DRAWINGS">FIG. 3</figref> is a functional block diagram of the functioning of a page buffer having a data register and a cache register during another portion of the continuous read process of <figref idref="DRAWINGS">FIG. 1</figref>.
<figref idref="DRAWINGS">FIG. 4</figref> is a functional block diagram of the functioning of a page buffer having a data register and a cache register during another portion of the continuous read process of <figref idref="DRAWINGS">FIG. 1</figref>.
<figref idref="DRAWINGS">FIG. 5</figref> is a functional block diagram of a pipeline circuit for ECC status pipelining.
<figref idref="DRAWINGS">FIG. 6</figref> is a signal diagram showing various signals involved in the functioning of a page buffer having a data register and a cache register as shown in <figref idref="DRAWINGS">FIGS. 1-4</figref>.
<figref idref="DRAWINGS">FIG. 7</figref> is a flowchart showing the operations of a NAND flash memory for a continuous read.
<figref idref="DRAWINGS">FIG. 8</figref> is a signal diagram showing various signals involved in the functioning of a page buffer having a data register and a cache register as shown in <figref idref="DRAWINGS">FIG. 7</figref>.
<figref idref="DRAWINGS">FIG. 9</figref> is a flowchart showing the operations of a NAND flash memory for a continuous read.
<figref idref="DRAWINGS">FIG. 10</figref> is a signal diagram showing various signals involved in the functioning of a page buffer having a data register and a cache register as shown in <figref idref="DRAWINGS">FIG. 9</figref>.
<figref idref="DRAWINGS">FIG. 11</figref> is a signal diagram showing various signals involved in the functioning of a variation of the page buffer shown in <figref idref="DRAWINGS">FIG. 9</figref>.
<figref idref="DRAWINGS">FIG. 12</figref> is a schematic functional block diagram of a serial NAND flash memory device.
DETAILED DESCRIPTION OF THE INVENTION
NAND memory devices may be made compatible with many characteristics of serial NOR memory devices, including: (1) the multi-I/O SPI/QPI interface; (2) small low pin count package types (as small as 8×6 mm at densities of 256 Mb and higher) such as, for example, the 8-contact WSON, 16-pin SOIC, and the 24-ball BGA type packages, with the flexibility of using larger packages such as VBGA-63 typically used with ordinary parallel and ordinary serial NAND flash memory; (3) high clock frequency operation (illustratively 104 MHz) for high transfer rates (illustratively 50 MB/Sec); (4) continuous read with Error Correction Code (“ECC”) processing across page boundaries without wait intervals, for fast code shadowing applications; (5) logically contiguous addressable good memory through bad block management which is transparent to the external systems and which is without adverse impact on the speed and continuity of the output; and (6) an output starting address of zero or alternatively any other address within the user-addressable space of the memory array via a user-specified or manufacturer-specified value. The Continuous Read Mode is particularly suitable for code shadowing to RAM, execute-in-place (“XIP”), and rapid retrieval of large voice, video, text and data segments. Various techniques may be used to achieve a fast and efficient continuous read operation, such as a data buffer having a partitioned data register and a partitioned cache register, user configurable internal ECC associated with the cache register, and fast bad block management. These and other techniques for overcoming the architectural, performance, unreliability, and bad block limitations that make it difficult to support high speed code shadow and XIP applications with NAND flash memory are described in U.S. Pat. No. 8,667,368 Issued Mar. 4, 2014 to Gupta et al. and entitled “Method and Apparatus for Reading NAND Flash Memory,” US Patent Application Publication No. 2013/0346671 published Dec. 26, 2013 in the name of Michael et al. and entitled “On-Chip Bad Block Management for NAND Flash Memory,” and US Patent Application Publication No. 2014/0269065 published Sep. 18, 2014 in the name of Jigour et al. and entitled “NAND Flash Memory,” all of which hereby are incorporated herein in their entirety by reference thereto.
One device which offers a continuous read operation is type W25N01 GV, which is available from Winbond Electronics Corporation of San Jose, Calif., USA, and is described in Winbond Electronics Corporation, W25N01 GV SpiFlash 3V 1 G-Bit Serial SLC NAND Flash Memory with Dual/Quad SPI & Continuous Read, Preliminary Revision B, Nov. 26, 2013, which hereby is incorporated herein in its entirety by reference thereto. The type W25N01 GV device incorporates a traditional large NAND non-volatile memory space, specifically a 1 G-bit memory array organized into 65,536 programmable pages of 2,048-bytes each. The device also incorporates a Serial Peripheral Interface (“SPI”) including bit-serial SPI as well as dual serial, quad serial, and quad I/O serial SPI. SPI clock frequencies of up to 104 MHz are supported, allowing equivalent clock rates of 208 MHz (104 MHz×2) for Dual I/O and 416 MHz (104 MHz×4) for Quad I/O when using the Fast Read Dual/Quad I/O instructions. The W25N01 GV device is switchable between a Buffer Read Mode (BUF=1) for accessing data in the page buffer, and a Continuous Read Mode (BUF=0) for efficiently accessing the entire memory array with a single read instruction.
The W25N01 GV device has an effective Error Correction Code (“EEC”) capability to manage data integrity. During the data read operation, the ECC engine verifies the data and to a limited extent, makes corrections. The verification and correction status is indicated by ECC Status Bits ECC-<b>1</b> and ECC-<b>0</b>. The ECC-<b>1</b>, ECC-<b>0</b> status (1:1), for example, which is applicable only for the Continuous Read Mode, indicates that the entire data output contains more than 4 bits errors/page in multiple pages. In the Continuous Read Mode, the additional command provides the Page Address (PA) of the last page containing the errors, and the PAs of the other failure pages is not reported. The ECC-<b>1</b>, ECC-<b>0</b> status (1:1) generally is sufficient, since bit errors per page in excess of four over multiple pages is rare. However, in some instances, one may wish to know the ECC status of each page.
<figref idref="DRAWINGS">FIG. 1</figref> is a flowchart showing various operations for carrying out a continuous page read <b>100</b> with page-by-page ECC status, <figref idref="DRAWINGS">FIGS. 2-4</figref> show the various operations as carried out within particular circuits of the NAND memory device, and <figref idref="DRAWINGS">FIG. 6</figref> shows various signals involved in the operations. The page-by-page ECC status mode may be enabled and disabled in any desired manner, an illustrative technique being the setting and resetting of a user configuration bit. A page is loaded into the page buffer, either automatically at power-up (illustratively page 0 of the NAND memory array) or in response to a Page Data Read instruction (see <b>310</b> in <figref idref="DRAWINGS">FIG. 6</figref>) or in any other desired manner (block <b>110</b>). As shown in <figref idref="DRAWINGS">FIG. 2</figref>, two one-page registers cooperate to provide a page buffer, specifically a data register <b>240</b> which is partitioned into two parts DR-<b>0</b> and DR-<b>1</b>, and a cache register <b>230</b> which is partitioned into two parts CR-<b>0</b> and CR-<b>1</b> which correspond to parts DR-<b>0</b> and DR-<b>1</b> of the data register <b>240</b>. A page <b>252</b> is loaded during a first period A into the data register <b>240</b>, the page is then replicated to the cache register <b>230</b> during a second period B (the page may be replicated in its entirety as shown, or only the first part DR-<b>0</b> of the data register <b>240</b> may be replicated to the first part CR-<b>0</b> of the cache register <b>230</b>), and ECC processing is performed on the CR-<b>0</b> part of the cache register <b>230</b> over a third period C<b>1</b>+C<b>2</b>, where C<b>1</b> indicates the time for transfer of data from CR-<b>0</b> to a first part ECC-<b>0</b> of ECC circuit <b>220</b>, and C<b>2</b> indicates ECC processing time as well as the time for transfer of data from ECC-<b>0</b> to CR-<b>0</b>. If desired, ECC processing may also be performed on the CR-<b>1</b> part of the cache register <b>230</b> over a fourth period (not shown). These operations are sequential so that the periods are cumulative, as shown in the timeline <b>260</b>.
With further reference to <figref idref="DRAWINGS">FIG. 1</figref>, the status of the BUSY bit (“BS”) may be checked (block <b>120</b>) by using a Read Status Register (0Fh/05h) instruction containing the address of the status register containing the BUSY bit (see <b>320</b> in <figref idref="DRAWINGS">FIG. 6</figref>). The status register bits are then shifted out on the DO pin at the falling edge of CLK. The ECC Status (“ES”) bits may also be accessed in this manner, although they may be ignored at this time. The Read Status Register instruction may be used at any time, thereby allowing the BUSY status bit to be checked to determine when the cycle is complete and whether the device can accept another instruction. The Status Register may be read continuously. The instruction may be completed by driving CS\ high.
When the BUSY bit has been cleared (block <b>120</b>—no) after a wait period <b>320</b> (<figref idref="DRAWINGS">FIG. 6</figref>) and a Read Data instruction <b>340</b> (<figref idref="DRAWINGS">FIG. 6</figref>) received (block <b>122</b>—yes), a continuous page read may now proceed by performing ECC processing of data and output of data from the two parts CR-<b>0</b> and CR-<b>1</b> of the cache register <b>230</b> in alternation, further coordinated with replication of data from the data register <b>240</b> to the cache register <b>230</b> and the loading of subsequent pages such as <b>254</b> from the NAND flash array <b>250</b> into the data register <b>240</b>. As indicated by blocks <b>130</b>, <b>132</b> and <b>134</b>, a read data <b>340</b> (<figref idref="DRAWINGS">FIG. 6</figref>) proceeds with three different operations which occur with substantial overlap during the same period of time, namely outputting of data onto the data bus <b>210</b> from the first part CR-<b>0</b> of the cache register <b>230</b>, performing ECC on the second part CR-<b>1</b> of the cache register <b>230</b>, and loading a successive page <b>254</b> of the NAND flash array <b>250</b> into the data register <b>240</b>. As shown in <figref idref="DRAWINGS">FIG. 3</figref>, the output of data occurs over a time period D, the ECC processing occurs over a time period F<b>1</b>+F<b>2</b>+F<b>3</b>, and the page load occurs over a time period G, with the time periods D, F<b>1</b>+F<b>2</b>+F<b>3</b>, and G overlapping substantially as shown in timeline <b>270</b>. A short period E is used to replicate the second part DR-<b>1</b> of the data register <b>240</b> to the second part CR-<b>1</b> of the cache register <b>230</b>, and while the period E precedes the periods F<b>1</b>+F<b>2</b>+F<b>3</b> and G and therefore adds to those time periods, it may overlap the period D.
For a first Read Data instruction which follows a Page Data Read instruction that causes ECC processing of data in both parts CR-<b>0</b> and CR-<b>1</b> of the cache register <b>230</b>, the data replication over the time period E and the ECC processing over the time period F<b>1</b>+F<b>2</b>+F<b>3</b> for the ECC may be skipped.
The ECC status bits for the current page and the next page may be pipelined to ensure that the ECC status bits are synchronized with the outputted page. The ECC status bits for the current page are finally determined when ECC processing of the second part of the page buffer is completed (block <b>132</b>), and then are latched during period F<b>3</b> (<figref idref="DRAWINGS">FIG. 3</figref>) into the status register so that the ECC status bits for the next page may be determined without prematurely modifying the ECC status bits in the status register. An illustrative circuit suitable for implementing the pipeline is shown in <figref idref="DRAWINGS">FIG. 5</figref>. ECC processing is performed in the ECC block <b>300</b> when enabled by signal ECC_EN. The next page ECC status bits <b>302</b> are clocked by a clock signal CLOCK and updated with the next page ECC status from the ECC block <b>300</b>. When the next page ECC status bits <b>302</b> are completed and essentially become the current page ECC status bits, they are latched into the current page ECC status bits <b>304</b> under control of signal ECC_UPDATE and the clock signal CLOCK. The ECC status bits <b>304</b> may be in the status register, if desired. The current page ECC status bits in the status register are therefore synchronized with the outputted page, and the new next page ECC status bits <b>302</b> may be determined without prematurely modifying the ECC status bits in the status register.
Next, as indicated by blocks <b>140</b> and <b>142</b>, two different operations occur with substantial overlap during the same period of time, namely outputting of data onto the data bus <b>210</b> from the second part CR-<b>1</b> of the cache register <b>230</b>, and performing ECC on the first part CR-<b>0</b> of the cache register <b>230</b> along with beginning the determination of ECC status. As shown in <figref idref="DRAWINGS">FIG. 4</figref>, the output of data occurs over a time period H, and the ECC processing occurs over a time period J<b>1</b>+J<b>2</b>, with the time periods H and J<b>1</b>+J<b>2</b> overlapping substantially as shown in timeline <b>280</b>. The ECC processing which occurs over the time period J<b>1</b>+J<b>2</b> begins the determination of the next page ECC status bits, but appropriate measures such as pipelining may be taken to ensure that the current page ECC status bits remain valid for the outputted page. A short period I is used to replicate the first part DR-<b>0</b> of the data register <b>240</b> to the first part CR-<b>0</b> of the cache register <b>230</b>, and while the period I precedes and therefore adds to the period J<b>1</b>+J<b>2</b>, it may overlap the period H.
Next, the continuous page read may be suspended on the page boundary (block <b>150</b>) so that the ECC status bits corresponding to the just outputted page may be read. A suitable technique to suspend the continuous page read is to take CS\ high after reading the last page byte. When the CS\ transitions high when the page-by-page ECC mode is enabled, internal operations are suspended so that the controller may read out the ECC status of the just-outputted page using a Read Status Register instruction (block <b>160</b>) (see <b>350</b> in <figref idref="DRAWINGS">FIG. 6</figref>). When the Busy Bit is cleared (not shown) and after a suitable wait period (see <b>360</b> in <figref idref="DRAWINGS">FIG. 6</figref>), a further Read Data instruction may be issued (see <b>370</b>) to resume the continuous page read operation.
After the ECC status bits for the last page of the continuous page read operation are read (see <b>380</b> in <figref idref="DRAWINGS">FIG. 6</figref>) the continuous page read with page-by-page ECC may be terminated in any desired manner, such as by issuing the FFh instruction after pausing on a page boundary (see <b>390</b> in <figref idref="DRAWINGS">FIG. 6</figref>) or by taking CS\ high during page data outputting.
<figref idref="DRAWINGS">FIG. 7</figref> is a flowchart showing various operations for carrying out a continuous page read <b>400</b> with page-by-page ECC status, in which the Continuous Page Read instruction is effective for outputting not only successive pages of data, but also the ECC status bits for each of the successive pages. Illustratively, a partitioned one-page page register and a partitioned one-page cache register cooperate to provide a page buffer, generally in the manner shown in and described with reference to <figref idref="DRAWINGS">FIGS. 2-4</figref>. <figref idref="DRAWINGS">FIG. 8</figref> shows various signals involved in the operations. The page-by-page ECC status mode may be enabled and disabled in any desired manner, an illustrative technique being the setting and resetting of a user configuration bit.
With reference to <figref idref="DRAWINGS">FIG. 7</figref>, a page is loaded into the page buffer, either automatically at power-up (illustratively page 0 of the NAND memory array) or in response to a Page Data Read instruction, or in any other desired manner (block <b>410</b>). The page is then replicated to the cache register (the page may be replicated in its entirety, or only the first part of the data register may be replicated to the first part of the cache register), and ECC processing is performed on the first part of the cache register.
With further reference to <figref idref="DRAWINGS">FIG. 7</figref>, the status of the BUSY bit (“BS”) may be checked (block <b>420</b>) by using a Read Status Register (0Fh/05h) instruction containing the address of the status register containing the BUSY bit. The status register bits are then shifted out on the DO pin at the falling edge of CLK. When the BUSY bit has been cleared (block <b>420</b>—no) and a Read Data instruction received (block <b>422</b>—yes), a continuous page read may now proceed by performing ECC processing of data and output of data from the two parts CR-<b>0</b> and CR-<b>1</b> of the cache register in alternation, further coordinated with replication of data from the data register to the cache register and the loading of subsequent pages from the NAND flash array into the data register. As indicated by blocks <b>430</b>, <b>432</b> and <b>434</b>, a read data proceeds with three different operations which occur with substantial overlap during the same period of time, namely outputting of data onto the data bus from the first part CR-<b>0</b> of the cache register, performing ECC on the second part CR-<b>1</b> of the cache register, and loading a successive page of the NAND flash array into the data register. The ECC status bits for the current page and the next page may be pipelined generally in the manner shown in and described with reference to <figref idref="DRAWINGS">FIGS. 3-5</figref>, to ensure that the ECC status bits are synchronized with the outputted page. Next, as indicated by blocks <b>440</b> and <b>442</b>, two different operations occur with substantial overlap during the same period of time, namely outputting of data onto the data bus from the second part CR-<b>1</b> of the cache register followed by outputting of the ECC status bits, and performing ECC on the first part CR-<b>0</b> of the cache register.
After the last page of the continuous page read operation and the ECC status bits for that page are read, the continuous page read with page-by-page ECC may be terminated in any desired manner, such as by taking CS\ high during page data outputting as shown in <figref idref="DRAWINGS">FIG. 8</figref>.
<figref idref="DRAWINGS">FIG. 9</figref> is a flowchart showing various operations for carrying out a continuous page read <b>500</b> with partition-by-partition ECC status, in which the Continuous Page Read instruction is effective for outputting not only successive pages of data, but also the ECC status bits for each partition of each of the successive pages. Moreover, the ECC status may be provided in advance of the outputted page. In this manner, the user may know prior to reading the data if it is or is not usable, and will know with greater precision where the bit failure is located. Illustratively, a partitioned one-page page register and a partitioned one-page cache register cooperate to provide a page buffer, generally in the manner shown in and described with reference to <figref idref="DRAWINGS">FIGS. 2-4</figref>. <figref idref="DRAWINGS">FIG. 10</figref> shows various signals involved in the operations. The partition-by-partition ECC status mode may be enabled and disabled in any desired manner, an illustrative technique being the setting and resetting of a user configuration bit.
With reference to <figref idref="DRAWINGS">FIG. 9</figref>, a page is loaded into the page buffer, either automatically at power-up (illustratively page 0 of the NAND memory array) or in response to a Page Data Read instruction, or in any other desired manner (block <b>510</b>). The page is then replicated to the cache register (the page may be replicated in its entirety, or only the first part of the data register may be replicated to the first part of the cache register), and ECC processing is performed on the first part of the cache register.
With further reference to <figref idref="DRAWINGS">FIG. 9</figref>, the status of the BUSY bit (“BS”) may be checked (block <b>520</b>) by using a Read Status Register (0Fh/05h) instruction containing the address of the status register containing the BUSY bit. The status register bits are then shifted out on the DO pin at the falling edge of CLK. When the BUSY bit has been cleared (block <b>520</b>—no) and a Read Data instruction received (block <b>522</b>—yes), a continuous page read may now proceed by performing ECC processing of data and output of data from the two parts CR-<b>0</b> and CR-<b>1</b> of the cache register in alternation, further coordinated with replication of data from the data register to the cache register and the loading of subsequent pages from the NAND flash array into the data register. As indicated by blocks <b>530</b>, <b>532</b> and <b>534</b>, a read data proceeds with three different operations which occur with substantial overlap during the same period of time, namely outputting of the ECC status bits and then data onto the data bus from the first part CR-<b>0</b> of the cache register (block <b>530</b>), performing ECC on the second part CR-<b>1</b> of the cache register and latching the results into the ECC status bits (block <b>532</b>), and loading a successive page of the NAND flash array into the data register (block <b>534</b>). The ECC status bits for the current partition and for the next partition may be pipelined generally in the manner shown in and described with reference to <figref idref="DRAWINGS">FIGS. 3-5</figref>, to ensure that the ECC status bits are synchronized with the outputted partition, and the ECC status may be reset after each latching. Next, as indicated by blocks <b>540</b> and <b>542</b>, two different operations occur with substantial overlap during the same period of time, namely outputting onto the data bus of first the ECC status bits and then the data from the second part CR-<b>1</b> of the cache register (block <b>540</b>), and performing ECC on the first part CR-<b>0</b> of the cache register and latching the results into the ECC status bits (block <b>542</b>).
After the last page of the continuous page read operation and the ECC status bits for that page are read, the continuous page read with partition-by-partition ECC may be terminated in any desired manner, such as by taking CS\ high during page data outputting (not shown).
In some instances, a user may wish to have access to the data in the spare area of each page. The method of <figref idref="DRAWINGS">FIG. 9</figref> may be slightly modified to achieve this result by outputting part of the spare area along with the first part data from the cache register, and part of the spare area along with the second part data from the cache register. The corresponding signals are shown in <figref idref="DRAWINGS">FIG. 11</figref>, where “SP” indicates “spare area” and “ES” indicates ECC status bits. Alternatively, the entire spare area may be furnished as part of either the first part data or the second part data from the cache register.
Serial NAND Flash Memory Architecture
<figref idref="DRAWINGS">FIG. 12</figref> is a schematic functional block diagram of an illustrative serial NAND flash memory <b>600</b> which is capable of providing a continuous read across page boundaries and from logically contiguous memory locations without wait intervals, and which is also capable of providing page-by-page ECC status information. The serial NAND flash memory <b>600</b> includes a NAND flash array <b>640</b> and associated page buffer <b>638</b>. The NAND flash array <b>640</b> includes word (row) lines and bit (column) lines, and is organized into a user-addressable area <b>642</b>, a redundant block area <b>644</b>, and a LUT information block <b>646</b>. Any desired flash memory cell technology may be used for the flash memory cells of the NAND flash array <b>640</b>. The serial NAND flash memory <b>600</b> may include various other circuits to support memory programming, erase and read, such as row decoder <b>634</b>, column decoder <b>636</b>, I/O control <b>622</b>, status register(s) <b>623</b>, continuous page read (“CPR”) address register(s) <b>624</b>, command register <b>625</b>, address register <b>626</b>, a LUT register <b>627</b>, control logic <b>630</b>, CPR bad block logic <b>631</b>, a CPR bad block register <b>632</b>, and high voltage generators <b>633</b>. The row decoder <b>634</b> selects rows of the user-addressable area <b>642</b> under user control as well as, in some implementations, under internal control; and selects rows of the redundant block area <b>644</b> and LUT information block <b>646</b> under internal control. Power is supplied (not shown) throughout the circuits of the serial NAND flash memory <b>600</b> by power lines VCC and GND. While the NAND flash memory <b>600</b> may be packaged in any desired manner and may have any type of interface, including ordinary NAND flash memory interfaces, the control logic <b>630</b> of <figref idref="DRAWINGS">FIG. 12</figref> illustratively implements the SPI/QPI protocol, including the multi-IO SPI interface. Additional detail on the SPI/QPI interface and on the various circuits of the memory may be found in U.S. Pat. No. 7,558,900 issued Jul. 7, 2009 to Jigour et al. entitled “Serial Flash Semiconductor Memory,” and in the aforementioned data sheet by Winbond Electronics Corporation, W25N01 GV SpiFlash 3V 1 G-Bit Serial SLC NAND Flash Memory with Dual/Quad SPI & Continuous Read, Preliminary Revision B, Nov. 26, 2013, which hereby are incorporated herein in their entirety by reference thereto.
If mode switching is desired, a buffer mode flag BUF <b>647</b> may be provided. The buffer mode flag <b>647</b> may be provided as a bit of the status register(s) <b>623</b> if desired. A power-up detector <b>635</b> is provided in the control logic <b>630</b> to initiate the setting of a particular mode and the loading of a default page upon power-up.
BUSY <b>652</b> is a read only bit in the status register that is set to a 1 state when the device is powering up or executing various instructions, including the Page Data Read instruction and the Continuous Read instruction.
The page buffer <b>638</b> illustratively includes a one-page data register (not shown), a one-page cache register (not shown), and one page of gates (not shown) for replicating data from the data register to the cache register. Any suitable latch or memory technology may be used for the data register and the cache register, and any suitable gating technology may be used for replicating data from the data register to the cache register. The data register and the cache register may be organized in any desired number of respective portions by, for example, the manner in which the transmission gates are wired and operated to control transmission of data. Illustratively, the data register and the cache register may be organized in two respective portions each, and operated in alternation by using respective groups of transmission gates controlled by respective control lines. The data register and the cache register of the page buffer <b>638</b> may be operated in a conventional manner by applying the same control signal to respective transmission gate control lines, or may be operated in alternation by applying suitable timed control signals to the transmission gate control lines. Illustratively in a two portion implementation in which a page is 2K Bytes, a half-page (1K) of transmission gates may be controlled by one control line and the other half-page (1K) of transmission gates may be controlled by another control line, thereby organizing the data register and the cache register in two half-page (1K) portions. Because of the operation of two portions in alternation, a two-portion implementation of the page buffer <b>638</b> may be referred to as a “ping pong” buffer. An ECC circuit (not show) may be provided to perform ECC computations on the contents of the cache register depending on the status of an ECC-E flag <b>648</b>. ECC status bits ECC-<b>0</b><b>650</b> and ECC-<b>1</b><b>651</b> are provided to indicate the error condition of the data in the associated page, and may be checked after the completion of a Read operation to verify the data integrity. The ECC-E <b>648</b>, ECC-<b>0</b><b>650</b> and ECC-<b>1</b><b>651</b> bits may be provided as part of the status register(s) <b>623</b> if desired.
A different size of page buffer may be used and/or a division of the page buffer into more than two portions or into unequal portions may be done if desired. Two sets of control signals may be needed for two portions of the page buffer, unlike one set of control signals needed for an undivided page buffer. Furthermore, differences between the logical and physical NAND flash array does not affect teachings herein. For example, the physical array may have two pages (even 2 KB page and odd 2 KB page) on one word line, so that a word line may be 4 KB of NAND bit cells. For clarity, the description and drawings herein are based upon the logical NAND flash array. The error correction circuit <b>220</b> logically may be thought of as having a section ECC-<b>0</b> which provides error correction of the contents of the cache register portion CR-<b>0</b>, and a section ECC-<b>1</b> which provides error correction of the contents of the cache register portion CR-<b>1</b>. Various ECC algorithms are suitable for use, including, for example, Hamming ECC algorithm, BCH ECC algorithm, Reed-Solomon ECC algorithm, and others. While two logical ECC sections ECC-<b>0</b> and ECC-<b>1</b> are shown as respectively interfacing with CR-<b>0</b> and CR-<b>1</b> for clarity of explanation, either two physical ECC blocks or a single physical ECC block may be used to interface with both CR-<b>0</b> and CR-<b>1</b>. Additional detail on the page buffer <b>638</b>, the ECC circuit, and their operations may be found in the aforementioned U.S. Pat. No. 8,667,368 Issued Mar. 4, 2014 to Gupta et al. and entitled “Method and Apparatus for Reading NAND Flash Memory,” which hereby is incorporated herein in its entirety by reference thereto. Continuous page read as described herein is referred to as “modified continuous page read” in the aforementioned patent application. This manner of organizing the data register and cache register into portions and performing ECC on the portions is illustrative, and other techniques may be used if desired.
While the NAND flash memory <b>600</b> is organized and operated to perform a variety of read operations including continuous page read operations and on-chip ECC in a single-plane NAND Architecture, this architecture is illustrative and variations thereof are contemplated. It will be appreciated that the example of a 2 KB Page size and a specific block size are illustrative and may be different if desired. Moreover, the specific size reference is not to be taken literally, since the actual page size may vary depending on design factors; for example, the term may include a 2,048 Byte main area plus an additional 64 Byte spare area, where the spare area is used for storing ECC and other information such as meta data. In the same way, the term 1 KB may refer to a 1,024 Byte main area and a 32 Byte spare area. While the description herein is based upon a single-plane architecture for clarity, the teachings set forth herein are equally applicable to multi-plane architectures. When multiple physical planes are used, they may share one or more word-lines so that the memory system may service multiple I/O requests simultaneously. Each plane provides a page of data and includes a corresponding data register of one page size and a corresponding cache register of one page size. The techniques described herein may be applied to each plane separately such that each data register and cache register is organized in multiple portions, or may be applied to multiple planes such that each data register and cache register is itself one portion of a multiple page data register and cache register.
<figref idref="DRAWINGS">FIG. 12</figref> also shows control signals /CS, CLK, DI, DO, /WP and /HOLD which are for the SPI interface. The standard SPI flash interface provides /CS (chip select-complement), CLK (clock), DI (serial data-in), and DO (serial data-out) signals, along with optional signals /WP (write protect—complement) and /HOLD (hold—complement). While the 1-bit serial data bus (data-in through DI and data-out through DO) in the standard SPI interface provides a simple interface and compatibility with many controllers which boot up in single SPI mode, it is limited in achieving higher read thru-put. A multi-bit SPI interface therefore evolved to additionally support dual (2-bit interface) and/or quad (4-bit interface) for increased read thru-put. <figref idref="DRAWINGS">FIG. 12</figref> also shows additional data bus signals for Dual SPI and Quad SPI operation, i.e. I/O(<b>0</b>), I/O(<b>1</b>), I/O(<b>2</b>), and I/O(<b>3</b>), by selectively redefining the function of four pins. In one illustrative version of the Quad SPI read operation (other versions may be envisioned), the appropriate read instruction may be given with 1-bit standard SPI interface through I/O(<b>0</b>), but subsequent interface for address and data-out may be Quad based (i.e. 4-bit data bus). The Quad SPI read operation can output 4-bits of data in a clock cycle as compared to output 1-bit of data in standard SPI read operation, and therefore the Quad SPI read operation can provide four times higher read thru-put. While Quad SPI read operation is used herein for explanation, the teachings herein are equally applicable to the other modes of operation, including but not limited to single SPI, dual SPI, Quad Peripheral Interface (“QPI”) and Double Transfer Rate (“DTR”) read modes. In the QPI protocol, the complete interface (opcode, address, and data-out) is done on 4-bit basis. In the DTR protocol, the output data is provided on both low-going and high-going CLK edge, rather than providing output data only on low-going CLK edge as in Single Transfer Rate (“STR”) read mode operation.
The description of the invention including its applications and advantages as set forth herein is illustrative and is not intended to limit the scope of the invention, which is set forth in the claims. Variations and modifications of the embodiments disclosed herein are possible, and practical alternatives to and equivalents of the various elements of the embodiments would be understood to those of ordinary skill in the art upon study of this patent document. For example, although many of the implementations described herein are for serial NAND memory, certain techniques described herein such as the power-up sequence, mode selection, and continuous data output across page boundaries and from logically contiguous memory locations without wait intervals, may be used for parallel NAND memory. Moreover, specific values given herein are illustrative and may be varied as desired, and terms such as “first” and “second” are distinguishing terms and are not to be construed to imply an order or a specific part of the whole. These and other variations and modifications of the embodiments disclosed herein, including of the alternatives and equivalents of the various elements of the embodiments, may be made without departing from the scope and spirit of the invention, including the invention as set forth in the following claims.
Contents4
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both waysCites: the store holds 89 of 90
| Document | Relation | Office | Cited during |
|---|---|---|---|
| TWI753814B | Cited by | Taiwan Province of China | Examiner |
| KR20210124030A | Cited by | Republic of Korea | Search report |
| US10361722B2 | Cited by | United States of America | Applicant |
| US10514981B2 | Cited by | United States of America | Applicant |
| US11093323B2 | Cited by | United States of America | Search report |
| US11048571B2 | Cited by | United States of America | Applicant |
| US10635530B2 | Cited by | United States of America | Applicant |
| EP1635261A1 | Cites | European Patent Office (EPO) | Applicant |
| CN1902599A | Cites | China | Applicant |
| JP2000057063A | Cites | Japan | Applicant |
| JP2001184874A | Cites | Japan | Applicant |
| JP2001202792A | Cites | Japan | Applicant |
| US2003002366A1 | Cites | United States of America | Applicant |
| JP2003085054A | Cites | Japan | Applicant |
| JP2003249082A | Cites | Japan | Applicant |
| US2004153902A1 | Cites | United States of America | Applicant |
| WO2005066790A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2005289314A1 | Cites | United States of America | Applicant |
| WO2006007264A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2008239809A1 | Cites | United States of America | Applicant |
| US2008313389A1 | Cites | United States of America | Applicant |
| US2009019215A1 | Cites | United States of America | Applicant |
| US2009150588A1 | Cites | United States of America | Applicant |
| US2009271567A1 | Cites | United States of America | Applicant |
| TW200935233A | Cites | Taiwan Province of China | Applicant |
| WO2010129305A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2010142275A1 | Cites | United States of America | Applicant |
| JP2010146654A | Cites | Japan | Applicant |
| US2011041039A1 | Cites | United States of America | Applicant |
| JP2011221996A | Cites | Japan | Applicant |
| US2011238898A1 | Cites | United States of America | Applicant |
| US2012069657A1 | Cites | United States of America | Applicant |
| US2012075931A1 | Cites | United States of America | Applicant |
| US2012155173A1 | Cites | United States of America | Applicant |
| JP2012243338A | Cites | Japan | Applicant |
| US2013013817A1 | Cites | United States of America | Applicant |
| US2013080858A1 | Cites | United States of America | Applicant |
| US2013138879A1 | Cites | United States of America | Applicant |
| US2013339634A1 | Cites | United States of America | Applicant |
| US2013346671A1 | Cites | United States of America | Applicant |
| JP2014038593A | Cites | Japan | Applicant |
| TW201418990A | Cites | Taiwan Province of China | Applicant |
| US2014269065A1 | Cites | United States of America | Applicant |
| US5822245A | Cites | United States of America | Applicant |
| US6775184B1 | Cites | United States of America | Applicant |
| US7120836B1 | Cites | United States of America | Applicant |
| US7171536B2 | Cites | United States of America | Applicant |
| US7558900B2 | Cites | United States of America | Applicant |
| US7559004B1 | Cites | United States of America | Applicant |
| US7822965B2 | Cites | United States of America | Applicant |
| US8019938B2 | Cites | United States of America | Applicant |
| US8051358B2 | Cites | United States of America | Search report |
| US8103936B2 | Cites | United States of America | Applicant |
| US8437197B2 | Cites | United States of America | Applicant |
| US8533572B2 | Cites | United States of America | Applicant |
| US8667368B2 | Cites | United States of America | Applicant |
| US8898548B1 | Cites | United States of America | Applicant |
| US9124432B2 | Cites | United States of America | Search report |
| JPH065085A | Cites | Japan | Applicant |
| JPH0845285A | Cites | Japan | Applicant |
| TWI351604B | Cites | Taiwan Province of China | Applicant |
| US20030002366A1 | Cites | United States of America | Applicant |
| US20040153902A1 | Cites | United States of America | Applicant |
| US20050289314A1 | Cites | United States of America | Applicant |
| US20080239809A1 | Cites | United States of America | Applicant |
| US20080313389A1 | Cites | United States of America | Applicant |
| US20090019215A1 | Cites | United States of America | Applicant |
| US20090150588A1 | Cites | United States of America | Applicant |
| US20090271567A1 | Cites | United States of America | Applicant |
| US20100142275A1 | Cites | United States of America | Applicant |
| US20110041039A1 | Cites | United States of America | Applicant |
| US20110238898A1 | Cites | United States of America | Applicant |
| US20120069657A1 | Cites | United States of America | Applicant |
| US20120075931A1 | Cites | United States of America | Applicant |
| US20120155173A1 | Cites | United States of America | Applicant |
| US20130013817A1 | Cites | United States of America | Applicant |
| US20130080858A1 | Cites | United States of America | Applicant |
| US20130138879A1 | Cites | United States of America | Applicant |
| US20130339634A1 | Cites | United States of America | Applicant |
| US20130346671A1 | Cites | United States of America | Applicant |
| US20140269065A1 | Cites | United States of America | Applicant |
| EP1635261A1 | Cites | European Patent Office (EPO) | Applicant |
| JP6005085 | Cites | Japan | Applicant |
| JP6005085 | Cites | Japan | Applicant |
| JP8045285 | Cites | Japan | Applicant |
| JP200057063A | Cites | Japan | Applicant |
| JP2001184874 | Cites | Japan | Applicant |
| JP2001202792 | Cites | Japan | Applicant |
| JP2003085054 | Cites | Japan | Applicant |
| JP2003249082 | Cites | Japan | Applicant |
| JP2010146654 | Cites | Japan | Applicant |
| JP2011221996 | Cites | Japan | Applicant |
| JP2012243338A | Cites | Japan | Applicant |
| JP2014038593A | Cites | Japan | Applicant |
| TW200935233 | Cites | Taiwan Province of China | Applicant |
| TW1351604 | Cites | Taiwan Province of China | Applicant |
| Winbond Electronics Corporation. W25N01GV spiflash 3V 1G-Bit Serial SLC Nand Flash Memory with Dual/Quad SPI & Continuous Read, Preliminary Revision B, Nov. 26, 2013. 69 Pages. | Non-patent | – | Applicant |
| Cooke, J. On-die ECC NAND, Micron Technologies, Inc. slides 25-1 and 25-2, 2009, [online] [retrieved on Oct. 5, 2012]. Retrieved from the Internet. | Non-patent | – | Applicant |
| Japanese Patent Office. Office Action: Japanese Patent Application No. 2013-055404, Feb. 12, 2014. 6 Pages. | Non-patent | – | Applicant |
| Michael, Oron et al. Reply to Office Action: U.S. Appl. No. 13/530,518, Jun. 12, 2014. 31 Pages. | Non-patent | – | Applicant |
5 members in 2 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 201414450188 | United States of America | A | |
| US201414450188 | – | – | – |
Members5
| Document | Office | Kind | |
|---|---|---|---|
| US2016034346A1 | United States of America | A1 | |
| JP2016035795A | Japan | A | |
| US9367392B2This record | United States of America | B2 | |
| JP2017224379A | Japan | A | |
| JP2019091519A | Japan | A |
73 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Correspondence Address ChangeC.AD | C.AD | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mail Miscellaneous Communication to ApplicantMM327 | MM327 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Miscellaneous Communication to Applicant - No Action CountM327 | M327 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mailing Corrected Notice of AllowabilityMCNOA | MCNOA | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Reasons for AllowanceEX.R | EX.R | |
| Corrected Notice of AllowabilityCNOA | CNOA | |
| Interview Request CorrectionINCOR | INCOR | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Response after Non-Final ActionA... | A... | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Preliminary AmendmentA.PE | A.PE | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Entity status set to undiscounted (initial default setting or status change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 09367392
- Publication, DOCDB
- 9367392
- Publication, EPODOC
- US9367392
- Application
- 14450188
- Application, DOCDB
- 201414450188
- Application, EPODOC
- US201414450188
Titles
- English
- NAND flash memory having internal ECC processing and method of operation thereof
Patent term adjustment
- A delay
- +97 daysthe office missed an examination deadline
- Applicant delay
- −18 days
- Net adjustment
- 79 days
Classification
- CPC, 8
- G06F11/1068
- G11C16/26
- H03M13/13
- G11C2029/0411
- H03M13/27
- H03M13/1515
- H03M13/152
- H03M13/19
- IPC, 7
- H03M13 15
- G06F11 10
- G11C16 26
- G11C29 04
- H03M13 13
- H03M13 19
- H03M13 27
- USPC, 1
- 001001000