Patent ID: 11972150
Assignee: SILICON MOTION, INC.
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 7:
8. A non-transitory computer-readable storage medium for programming data into flash memory when executed by a primary processing unit of a flash controller, the non-transitory computer program product comprising program code to:
generate a front-end parameter set, a mid-end parameter set and a back-end parameter set for each data-programming transaction, wherein the front-end parameter set comprises a host write command, and a first address allocated in a random access memory (RAM) for storing data obtained from a host side, the mid-end parameter set comprises a second address allocated in the RAM for storing raw data, a third address allocated in the RAM for storing an encrypted or encoded result, and a parameter for setting a redundant array of independent disks (RAID) engine, the back-end parameter set comprises a programming table and an index of the programming table, and the programming table comprises a fourth address allocated in the RAM for storing source data;
transmit the front-end parameter set of each data-programming transaction to a routing engine, thereby enabling the routing engine to drive a host interface (I/F) to obtain data from the host side, and store the obtained data in the first address of the RAM according to content of the front-end parameter set;
transmit the mid-end parameter set of each data-programming transaction to an accelerator, thereby enabling the accelerator to drive the RAID engine to obtain the raw data from the second address of the RAM, encrypt the raw data to generate the encrypted result or generate parity-page data according to multiple pages of the raw data to generate the encoded result, and store the encrypted or encoded result in the third address of the RAM according to content of the mid-end parameter set; and
transmit the back-end parameter set of each data-programming transaction to the accelerator, thereby enabling the accelerator to drive a data access engine to obtain the source data from the fourth address of the RAM and program the source data into a designated physical address of a flash module according to content of the back-end parameter set.