Abstract: Designs of controllers for flash memory array are described. A controller is designed to form data packs of a predefined size with compressed data segments in different sizes. The data packs are encoded with ECC in two dimensions. When the data packs are read out, the ECC is applied in two dimensions to detect and correct errors that can be corrected by the ECC.
Type:
Grant
Filed:
November 5, 2020
Date of Patent:
July 12, 2022
Assignee:
Sage Microelectronics Corporation
Inventors:
Jianjun Luo, Hailuan Liu, Huayue Chen, Chris Tsu
Abstract: Techniques for Implementation of keeping data integrity in multiple dimensions are described. A single but relatively complicated engine is used to encode a line of original data bits in one dimension once and for all, while a linear array of simple engines are used in another dimension to keep revising sets of redundant data bits for successive lines of original data bits, where the redundant data bits become final when a last line of original data bits is accessed.
Type:
Grant
Filed:
September 26, 2020
Date of Patent:
December 21, 2021
Assignee:
Sage Microelectronics Corporation
Inventors:
Jianjun Luo, Hailuan Liu, Chris Tsu, Ying He
Abstract: Designs of persistently managing mapping tables are described. To keep the performance of writing data into or reading out data from a storage device, such as flash memory, RAM (Random Access Memory) is often used to manage the mapping tables. To prevent the mapping tables from being damaged for whatever reason (e.g., power failure), MRAM (Magnetic RAM) is employed to keep the mapping tables in magnetic domains while the RAM is only used for updating the content of the mapping tables. Not only is the capacity for RAM is significantly reduced, the mapping tables are securely maintained in MRAM and available to RAM while data is being written into or read out from the storage device.
Abstract: A technique of extending a correction limit defined by an ECC is described. According to one aspect of the present invention, remaining errors that cannot be corrected by the ECCs in a data array is first identified and then formed in form of matrix with defined size. These remaining errors are flipped in value, namely from “1” to “0” or “0’ to “1” if the number of the errors are within a range or additional ECCs are applied to correct the errors in flipped data bits.