US 11,940,887 B2
Cache program with backup blocks
Gang Zhao, Chandler, AZ (US); Lin Chen, Cupertino, CA (US); Jie Chen, Milpitas, CA (US); and Qun Zhao, Pleasanton, CA (US)
Assigned to Innogrit Technologies Co., Ltd., Shanghai (CN)
Filed by Innogrit Technologies Co., Ltd., Shanghai (CN)
Filed on Dec. 4, 2020, as Appl. No. 17/112,123.
Prior Publication US 2022/0179762 A1, Jun. 9, 2022
Int. Cl. G06F 11/00 (2006.01); G06F 3/06 (2006.01); G06F 11/20 (2006.01)
CPC G06F 11/2087 (2013.01) [G06F 3/0619 (2013.01); G06F 3/064 (2013.01); G06F 3/065 (2013.01); G06F 3/0659 (2013.01); G06F 3/0679 (2013.01); G06F 2201/85 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A method, comprising:
issuing a first cache program operation from a storage controller to a non-volatile storage device to write data to a first regular block of the non-volatile storage device;
receiving the data into a cache buffer of the non-volatile storage device from the storage controller;
transferring the data from the cache buffer into a data buffer of the non-volatile storage device;
upon completion of transferring the data from the cache buffer into the data buffer, acknowledging the storage controller;
writing the data from the data buffer to the first regular block, wherein storage cells in the first regular block are multi-bit cells;
writing the data from the data buffer to a backup block of the non-volatile storage device, as a copy of the data, wherein storage cells in the backup block are single-bit cells;
determining that a program error has occurred in writing the data to the first regular block;
asserting the program error to the storage controller;
retrieving, by the storage controller, a mapping between the first regular block and the backup block from a mapping table;
issuing a read operation from the storage controller to the non-volatile storage device to read the copy of the data from the backup block;
reading the copy of the data from the backup block and sending the copy of the data to the storage controller; and
issuing a second cache program operation from the storage controller to the non-volatile storage device to write the data to a second regular block of the non-volatile storage device, wherein storage cells in the second regular block are multi-bit cells, and
marking the first regular block as defective;
wherein the mapping table contains four (4) backup blocks repeatedly mapped to regular blocks in a plane in a round robin manner.