US 12,223,199 B2
Method and apparatus for programming data arranged to undergo specific stages into flash memory based on virtual carriers
Shen-Ting Chiu, Miaoli County (TW)
Assigned to SILICON MOTION, INC., Zhubei (TW)
Filed by Silicon Motion, Inc., Zhubei (TW)
Filed on Aug. 2, 2022, as Appl. No. 17/879,232.
Claims priority of provisional application 63/249,702, filed on Sep. 29, 2021.
Claims priority of application No. 202210339875.9 (CN), filed on Apr. 1, 2022.
Prior Publication US 2023/0094250 A1, Mar. 30, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/0655 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0689 (2013.01)] 20 Claims
OG exemplary drawing
 
11. An apparatus for programming data into flash memory, comprising:
a static random access memory (SRAM), arranged operably to: store operating settings of a virtual carrier;
a controller, coupled to the SRAM, arranged operably to: read the operating settings of the virtual carrier from the SRAM; set a redundant array of independent disks (RAID) engine according to a mid-end parameter set stored in the SRAM for driving the RAID engine to complete a designated encryption or encoding operation on first data associated with the virtual carrier when the operation settings indicate that the first data associated with the virtual carrier need to go through a mid-end processing stage; determine whether second data associated with the virtual carrier need to go through a back-end processing stage according to the operation settings when the operation settings indicate that the first data associated with the virtual carrier do not need to go through the mid-end processing stage, or the first data associated with the virtual carrier have gone through the mid-end processing stage; and send a programming index to a data access engine according to a back-end parameter set stored in the SRAM for driving the data access engine to read a programming table from the SRAM according to the programming index, and program the second data associated with the virtual carrier into a designated address in a flash module according to content of the programming table when the operation settings indicate that the second data associated with the virtual carrier need to go through the back-end processing stage.