A page buffer for a nand memory array has a data register and a cache register that are suitably organized and operated to eliminate gaps and discontinuities in the output data during a continuous page read. The cache register may be organized in two portions, and the page data in the cache may be output from the cache portions in alternation. ecc delay may be eliminated from the output by performing the ecc computation on one cache portion while the other is being output. The data register may also be organized in two portions corresponding to the cache portions, so that data may be transferred to one cache portion while the other is being output. In a variation, the continuous page read may be done without ecc.
|
15. A nand flash memory comprising:
a nand flash memory array;
a row decoder coupled to the nand flash memory array;
a one page data register coupled to the nand flash memory array;
a page of transmission gates;
a one page cache register coupled to the data register through the transmission gates;
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 transmission gates, wherein a first group of the transmission gates, and a second group of the transmission gates distinct from the first group, are separately and independently controllable.
1. A method for outputting a plurality of pages of data from a nand memory array to a data bus through a data register and a cache register associated with the nand memory array, comprising:
storing nand memory array data in the data register, the data register being organized in a plurality of portions, and the cache register being organized in a plurality of portions corresponding to the portions of the data register;
outputting data from the cache register portions, seamlessly and in alternation;
while outputting data from a first one of the cache register portions, providing data to one of the cache register portions other than the first portion from the corresponding portion of the data register and performing an ecc computation thereon; and
while outputting data from a second one of the cache register portions, providing data to one of the cache register portions other than the second portion from the corresponding portion of the data register and performing an ecc computation thereon.
3. A method for providing a continuous data output from a nand memory array to a data bus through a page buffer, the page buffer having a data register and a cache register, comprising:
storing nand memory array data in the data register;
transferring a first portion of data from a first portion of the data register to a first portion of the cache register;
subsequent to the first data portion transferring step, performing a first ecc computation on data in the first cache register portion;
subsequent to the first ecc computation performing step, outputting data from the first cache register portion to the data bus;
transferring a second portion of data from a second portion of the data register to a second portion of the cache register;
subsequent to the second data portion transferring step, performing a second ecc computation on data in the second cache register portion; and
subsequent to the second ecc computation performing step, outputting data from the second cache register portion to the data bus;
wherein the first cache register portion outputting step and the second cache register portion outputting step are performed continuously and in alternation;
wherein the first ecc computation performing step is performed during the second cache register portion outputting step; and
wherein the second ecc computation performing step is performed during the first cache register portion outputting step.
14. A flash memory 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;
a cache register coupled to the data register;
an ecc circuit coupled to the cache register;
a column decoder coupled to the cache register;
a control circuit coupled to the row decoder, the column decoder, the data register, the cache register, and the ecc circuit;
wherein the cache register is organized in a plurality of portions, and the data register is organized in a plurality of portions respectively corresponding to the cache register portions; and
wherein the control circuit comprises logic and register elements for executing the functions of:
reading data from the nand flash memory array to the data register;
transferring data from the data register portions to the respective cache register portions, in alternation;
performing error correction with the ecc circuit on data in the cache register portions in alternation, to provide ecc processed data in the cache register portions; and
outputting the ecc processed data from the cache register portions to the control circuit, seamlessly and in alternation;
wherein execution of the data transferring function and the ecc processed data outputting function for a particular one of the cache register portions is adapted for different times; and
wherein execution of the error correction performing function and the ecc processed data outputting function for a particular one of the cache register portions is adapted for different times.
2. The method of
4. The method of
the first data portion transferring step and the first ecc computation performing step are performed during the second cache register portion data outputting step; and
the second data portion transferring step and the second ecc computation performing step are performed during the first cache register portion data outputting step.
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
the first and second cache register portion outputting steps are clocked by user-issued clock cycles in response to a user-issued continuous read command, and
further comprising continuously outputting data in an interleaved manner in accordance with the first and second cache register portion outputting steps in every consecutive one of the user-issued clock cycles.
10. The method of
11. The method of
12. The method of
13. The method of
16. The nand flash memory of
17. The nand flash memory of
18. The nand flash memory of
reading data from the nand flash memory array to the data register;
transferring data from the data register to the cache register in respective first and second portions corresponding to the first and second groups of transmission gates, in alternation;
performing error correction with the ecc circuit on the first and second portions of data in the cache register, in alternation, to provide respective first and second portions of ecc processed data in the cache register; and
outputting the first and second portions of ecc processed data from the cache register to the control circuit, seamlessly and in alternation;
wherein execution of the data transferring function and the error correction performing function for the first portion of data in the cache register are adapted for execution during the ecc processed data outputting function for the second portion of ecc processed data in the cache register; and
wherein execution of the data transferring function and the error correction performing function for the second portion of data in the cache register are adapted for execution during the ecc processed data outputting function for the first portion of ecc processed data in the cache register.
|
1. Field of the Invention
The present invention relates to flash memory, and more particularly to methods and apparatus for reading NAND flash memory.
2. Description of Related Art
NAND Flash memory has become increasingly popular due to its significant cost advantage. One measure of cost of Flash memory is memory cell area, wherein the memory cell area is commonly expressed in terms of F*2. The F, commonly called feature size, is usually the technology node. In other words, F is 58 nm for 58 nm technology node and F is 46 nm for 46 nm technology node. The NAND Flash memory cell size of 4F*2 is significantly smaller than other competing technologies such as NOR Flash memory, which has a cell size in the range of about 12F*2 through 15F*2.
Another segment of Flash memory with good growth has been the Serial Peripheral Interface (“SPI”) segment. One reason for the popularity of serial NOR Flash memory with SPI is low pin count (e.g. pins CS/, CLK, DI, DO for single-bit SPI). The availability of serial NOR Flash with SPI in small and inexpensive packages such as the 8-pin package enables significant board space savings. Moreover, the serial NOR Flash products with SPI have been designed on NOR Flash technology to accommodate applications requiring fast data fetch from random address. The NOR Flash inherently provides fast random read speed due to larger cell current. In contrast, NAND Flash has large initial latency and therefore NAND Flash is better suited for applications with sequential access of data, including but not limited to code shadowing. The slow random read speed of NAND Flash is due to very small cell current inherent in NAND Flash, due to multiple cells (e.g. 32 cells) connected in series in a NAND string.
As scaling of NOR Flash technology has slowed down, serial NAND Flash products with SPI have become available because of the memory cell area advantage.
On the issuance of a page read (“PR”) command, Page-0 data is transferred from the specified page, shown as page 18, to the data register 16, typically in about 20 μs. While successive PR commands may be used to read sequential pages from memory, each page read incurs a 20 μs delay. These successive 20 μs delays may be masked by using the page read cache mode (“PRCM”) command. ON the issuance of a PRCM command after the PR command, the Page-0 data in the data register 16 is very quickly transferred to the cache register 14, typically in a maximum time of 3 μs, from which it is read out to a data bus 11. Issuance of the PRCM command also starts a transfer of Page-1 data from the next sequential page (not shown) to the data register 16, simultaneously with the output of the Page-0 data from the cache register 14. After Page-0 data has been read out from the cache register 14, another PRCM command may be issued. This second PRCM command transfers Page-1 data from the data register 16 to the cache register 14 in typically a maximum time of 3 μs, from which the Page-1 data is read out onto the data bus 11. The second PRCM command also transfers the Page-2 data from the next sequential page (not shown) to the data register 16, simultaneously with the output of the Page-1 data from the cache register 14. In this manner, sequential pages are read out by issuing multiple PRCM commands. Although gaps of up to 3 μs are present between data read from successive pages, throughput is nonetheless greatly improved by cache read operation.
Unfortunately, cache read operation conflicts with on-chip implementations of Error Correction Code (“ECC”). ECC is commonly used in NAND Flash because the inherent cycling (endurance) of NAND Flash is not as good as that of NOR Flash. ECC may be performed on-chip or externally by a host controller. External ECC by a host controller is quite effective for masking random single (or few) bit error(s) in the NAND Flash. The number of bits which can be corrected depends on the choice of ECC algorithm (e.g. Hamming, BCH, Reed-Solomon, or another appropriate ECC algorithm) used by the host controller. However, external ECC provided by a host controller is a burden on the host. Some recent NAND Flash devices include ECC on the NAND Flash chip itself, referred from herein as “on-chip ECC.” The on-chip ECC performs ECC computation and provides the correction of wrong bit(s). However, in those implementations of NAND Flash memory which use the cache register for the ECC computation, read-out of page data from the cache register cannot be done while ECC computations are in process. While such ECC NAND Flash memory devices may be read using the standard PR command, a long wait is incurred which includes the time to transfer page data to the page buffer and the time for ECC to be performed. While ECC computation time varies depending on the algorithm and implementation, a 20 μs computation time is not uncommon. In such a case, every PR command, even for sequential pages, incurs a wait time of about 40 μs, specifically 20 μs for page data transfer to the page buffer and 20 μs for the ECC computation, before page data can be read out. This delay is a significant penalty in read thru-put due to on-chip ECC.
One embodiment of the present invention is a method for outputting a plurality of pages of data from a NAND memory array to a data bus through a data register and a cache register associated with the NAND memory array, comprising storing NAND memory array data in the data register, the data register being organized in a plurality of portions, and the cache register being organized in a plurality of portions corresponding to the portions of the data register; outputting data from the cache register portions, seamlessly and in alternation; while outputting data from a first one of the cache register portions, providing data to one of the cache register portions other than the first portion from the corresponding portion of the data register and performing an ECC computation thereon; and while outputting data from a second one of the cache register portions, providing data to one of the cache register portions other than the second portion from the corresponding portion of the data register and performing an ECC computation thereon.
Another embodiment of the present invention is a method for providing a continuous data output from a NAND memory array to a data bus through a page buffer, the page buffer having a data register and a cache register, comprising: storing NAND memory array data in the data register; transferring a first portion of data from a first portion of the data register to a first portion of the cache register; subsequent to the first data portion transferring step, performing a first ECC computation on data in the first cache register portion; subsequent to the first ECC computation performing step, outputting data from the first cache register portion to the data bus; transferring a second portion of data from a second portion of the data register to a second portion of the cache register; subsequent to the second data portion transferring step, performing a second ECC computation on data in the second cache register portion; and subsequent to the second ECC computation performing step, outputting data from the second cache register portion to the data bus. The first cache register portion outputting step and the second cache register portion outputting step are performed continuously and in alternation; the first ECC computation performing step is performed during the second cache register portion outputting step; and the second ECC computation performing step is performed during the first cache register portion outputting step.
Another embodiment of the present invention is a flash memory comprising: a NAND flash memory array having word lines and bit lines; a row decoder coupled to the NAND flash memory array; a data register coupled to the NAND flash memory array; a cache register coupled to the data register; an 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 cache register is organized in a plurality of portions, and the data register is organized in a plurality of portions respectively corresponding to the cache register portions. The control circuit comprises logic and memory elements for executing the functions of: reading data from the NAND flash memory array to the data register; transferring data from the data register portions to the respective cache register portions, in alternation; performing error correction with the ECC circuit on data in the cache register portions in alternation, to provide ECC processed data in the cache register portions; and outputting the ECC processed data from the cache register portions to the control circuit, seamlessly and in alternation; wherein execution of the data transferring function and the ECC processed data outputting function for a particular one of the cache register portions is adapted for different times; and wherein execution of the error correction performing function and the ECC processed data outputting function for a particular one of the cache register portions is adapted for different times.
Another embodiment of the present invention is a NAND flash memory comprising: a NAND flash memory array; a row decoder coupled to the NAND flash memory array; a one page data register coupled to the NAND flash memory array; a page of transmission gates; a one page cache register coupled to the data register through the transmission gates; 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 transmission gates. A first group of the transmission gates, and a second group of the transmission gates distinct from the first group, are separately and independently controllable. In a variation, the NAND flash memory further comprises an ECC circuit coupled to the cache register.
Page buffer for a NAND memory array is suitably organized and operated to eliminate gaps and discontinuities in the output data during a continuous page read after the initial page read. The page buffer includes a data register for receiving page data transferred from the NAND memory array, and a cache register for receiving page data transferred from the data register, thereby freeing up the data register to receive a subsequent page of data from the NAND memory array without causing any gaps or discontinuities in the data output from the cache register. As used herein, the term “transfer” refers to transmission of data from a source to a destination, and does not concern the disposition of the data at the source, which data may be remain undisturbed, deleted, refreshed, rewritten, modified, or otherwise treated. The cache register may be organized in two or more portions, and the page data in the cache register may be output continuously from the cache portions in alternation. In a two-portion implementation, for example, portion A may be output, then B, then A, then B, and so forth. In a three-portion implementation, for example, A may be output, then B, then C, then A, then B, then C, and so forth. ECC computation delay may be eliminated from the output by performing the ECC computation on one cache portion while another is being output. The data register may also be organized in two or more portions corresponding to the cache portions. Page data transfer delay from the data register to the cache register may be eliminated from the output by transferring the page data between the data register portions and the cache register portions in alternation, so that one page data portion is being transferred while another page portion is being output. In this manner, a continuous page read may be performed with ECC and without any gaps or discontinuities in the output between respective portions of the page data or between the page data across pages and blocks.
While performing ECC on-chip in a NAND memory device without any gaps or discontinuities in the output during a continuous page read is particularly advantageous, other variations may be useful as well. In one such variation, on-chip ECC is not done but the organization of the data register and the cache register respectively in two or more portions is retained so that a continuous page read may be performed without any gaps or discontinuities in the output.
As also shown in
While the NAND memory device 20 is organized and operated to perform a continuous read operation and on-chip ECC in a single-plane NAND Architecture, this architecture is illustrative and variations thereof are contemplated. While the example of a 2 KB Page size is used throughout this document, it will be appreciated that the page and block sizes are illustrative and may be different if desired. The page in a NAND Flash specifies the granularity for programming (e.g. 2K Bytes), and the block in NAND flash specifies granularity for erasing (e.g. 128K Bytes). The page also specifies granularity for reading data in standard NAND Flash. 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 the user 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. A plane is the smallest unit that serves an I/O request in a parallel fashion. 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.
While a continuous read command may be expressed in different ways, the term generally refers to a type of command whose purpose is for reading through the whole or a desired portion of the memory array. In the case of the serial NAND Flash device with SPI 20 shown in
As shown in
Next as shown in
In case of ECC error detected by ECC computation, the ECC-0 block may overwrite wrong data in CR-0 with corrected data during the ECC computation. In some cases, error information detected by the ECC computation may be stored in ECC-0 during the ECC computation and wrong data in CR-0 may not be overwritten with corrected data during the ECC computation. Alternatively, error information detected by the ECC computation may be stored in ECC-0 during the ECC computation, and wrong data in CR-0 may also be overwritten with corrected data during the ECC computation. The error information stored in ECC-0 may include the address of the wrong data, and both wrong data as well as expected (correct) data. Various ECC algorithms are suitable for use, including, for example, Hamming ECC algorithm, BCH ECC algorithm, Reed-Solomon ECC algorithm, and others. While two different ECC blocks ECC-0 and ECC-1 are shown in
Next as shown in
Time to read out CR-0(1KB): 1KB×8-bit/B×1-nibble/4-bit×1/100MHZ=20μs (1)
While 20 μs for each step simplifies illustration, more realistic time to read out CR-0 is calculated as 19.69 us based upon a 104 MHz clock and CR-0 data of 1024B, in accordance with Equation (2). However, the figure of 20 μs a reasonable approximation.
Time to read CR-0(1024B): 1024B×8-bit/B×1-nibble/4-bit×1/104MHZ=19.69μs (2)
Although the output shown in
As further shown in
As further shown in
While
Next as shown in
As further shown in
While
The continuous page read operation continues by looping back to block 706, and may be stopped by stopping the clock. Alternatively, the continuous page read command may be varied to stop after a predetermined number of page reads or in any other manner desired by the designer.
Advantageously, the continuous page read command may be a single command which causes reading through the whole or a desired portion of the NAND memory array with no gap or other discontinuity at page or block boundaries. This is achieved by reading data out in a “ping-pong” manner, i.e. reading from CR-0 and CR-1 in alternation. Essentially the operations shown in
The page address is incremented automatically by an address counter in the NAND Flash memory device. The operations shown in
A “continuous read” operation as used herein is different from a typical “sequential read” operation which involves issuing multiple page read cache mode (“PRCM”) commands. The page read cache mode command does not support on-chip ECC, and introduces about a 3 μs waiting period in the output data at page boundaries. Advantageously, as used herein, a continuous read supports on-chip ECC and eliminates all such gaps and discontinuities in the output data.
However, if desired for compatibility or other reasons, a type of sequential read operation which supports on-chip ECC using a modified page read cache mode (“PRCM”) command may be implemented in accordance with the teachings set forth herein. The modified PRCM command is now described for a two portion page buffer such as the ping-pong page buffer 38 (
Various techniques may be used to initialize the page buffer for the modified PRCM command. Such techniques may also be used with a modified continuous read command, which can be modified to avoid any initial latency by assuming that the entire cache register contains ECC processed data, or as in the case of the modified PRCM command, that CR-0 contains ECC-processed data and DR-1 contains valid page data. Such a modified continuous read command may output data immediately after the user provides the command, address, and optional dummy clocks, without any initial latency. In one illustrative initialization technique, a full initialization command causes a page read into the data register, a transfer of the data from the data register to the cache register, and ECC correction of the entire cache register. The latency introduced by this technique may approach about 60 μs depending on the time required for the ECC processing. In an alternative illustrative technique, a partial initialization command causes a page read into the data register, a transfer of the data from the data register to the cache register, and ECC correction of just one portion of the cache register. The latency introduced by this technique may approach about 40 μs depending on the time required for the ECC processing.
In yet another variation, the cache register and the data register may be organized in more than two portions; for example, in three, four or more portions. The various operations may be carried out in alternation.
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. Moreover, specific values given herein are illustrative, and may be varied as desired. 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.
Michael, Oron, Gupta, Anil, Jigour, Robin John
Patent | Priority | Assignee | Title |
10062420, | Oct 17 2007 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Memory devices having special mode access using a serial message |
10192591, | Oct 17 2007 | Micron Technology, Inc. | Memory devices having special mode access |
10366731, | Oct 17 2007 | Micron Technology, Inc. | Memory devices having special mode access using a serial message |
10621091, | May 04 2018 | Micron Technology, Inc. | Apparatuses and methods to perform continuous read operations |
10978112, | Oct 17 2007 | Micron Technology, Inc. | Memory devices having special mode access |
11093392, | May 04 2018 | Micron Technology, Inc. | Apparatuses and methods to perform continuous read operations |
11217315, | May 24 2019 | Winbond Electronics Corp. | Semiconductor apparatus and continuous readout method |
11586540, | May 04 2018 | Micron Technology, Inc. | Apparatuses and methods to perform continuous read operations |
11657857, | Oct 17 2007 | Micron Technology, Inc. | Memory devices having special mode access |
8891279, | Sep 17 2012 | International Business Machines Corporation | Enhanced wiring structure for a cache supporting auxiliary data output |
9128822, | Jun 22 2012 | Winbond Electronics Corporation | On-chip bad block management for NAND flash memory |
9218888, | Oct 11 2012 | Winbond Electronics Corp | Non-volatile semiconductor memory data reading method thereof |
9245639, | Oct 13 2014 | Windbound Electronics Corporation; Winbond Electronics Corporation | NAND flash memory array architecture having low read latency and low program disturb |
9275738, | May 02 2013 | Winbond Electronics Corporation | Flash memory having dual supply operation |
9324450, | Mar 13 2013 | Winbond Electronics Corporation | NAND flash memory |
9367392, | Aug 01 2014 | Winbond Electronics Corporation | NAND flash memory having internal ECC processing and method of operation thereof |
9442798, | Jul 31 2014 | Winbond Electronics Corporation | NAND flash memory having an enhanced buffer read capability and method of operation thereof |
9542269, | Jun 29 2015 | SK Hynix Inc. | Controller controlling semiconductor memory device and operating method thereof |
9552896, | Feb 11 2014 | Samsung Electronics Co., Ltd. | Memory controller and method of reading data from nonvolatile memory by memory controller |
9576626, | May 30 2014 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and storage device having the same |
9594629, | Jun 03 2015 | KIng Abdulaziz City for Science and Technology | Data error correction from cached error correction information |
9773566, | May 30 2014 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and storage device having the same |
9785382, | Apr 14 2015 | NXP USA, INC | Method and apparatus for read retry sequence for boot ROM |
9941009, | May 16 2016 | Samsung Electronics Co., Ltd. | Memory device having vertical structure and memory system including the same |
9971647, | Jul 31 2014 | Winbond Electronics Corporation | Apparatus and method for programming ECC-enabled NAND flash memory |
Patent | Priority | Assignee | Title |
5822245, | Mar 26 1997 | Atmel Corporation | Dual buffer flash memory architecture with multiple operating modes |
6775184, | Jan 21 2003 | Winbond Electronics Corporation | Nonvolatile memory integrated circuit having volatile utility and buffer memories, and method of operation thereof |
7558900, | Sep 27 2004 | Winbond Electronics Corporation | Serial flash semiconductor memory |
8103936, | Oct 17 2007 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | System and method for data read of a synchronous serial interface NAND |
20040153902, | |||
20050289314, | |||
20130013817, | |||
20130080858, | |||
JP2001184874, | |||
JP2001202792, | |||
JP2003249082, | |||
JP2010146654, | |||
JP6005085, | |||
JP8045285, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 03 2012 | GUPTA, ANIL | Winbond Electronics Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028160 | /0461 | |
May 03 2012 | MICHAEL, ORON | Winbond Electronics Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028160 | /0461 | |
May 04 2012 | Winbond Electronics Corporation | (assignment on the face of the patent) | / | |||
May 04 2012 | JIGOUR, ROBIN JOHN | Winbond Electronics Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028160 | /0461 |
Date | Maintenance Fee Events |
Aug 16 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Aug 18 2021 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 04 2017 | 4 years fee payment window open |
Sep 04 2017 | 6 months grace period start (w surcharge) |
Mar 04 2018 | patent expiry (for year 4) |
Mar 04 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 04 2021 | 8 years fee payment window open |
Sep 04 2021 | 6 months grace period start (w surcharge) |
Mar 04 2022 | patent expiry (for year 8) |
Mar 04 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 04 2025 | 12 years fee payment window open |
Sep 04 2025 | 6 months grace period start (w surcharge) |
Mar 04 2026 | patent expiry (for year 12) |
Mar 04 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |