-
1.
公开(公告)号:US20240177777A1
公开(公告)日:2024-05-30
申请号:US18368890
申请日:2023-09-15
Applicant: Silicon Motion, Inc.
Inventor: Shen-Ting CHIU
IPC: G11C16/10
CPC classification number: G11C16/107
Abstract: The invention relates to a method, a non-transitory computer-readable storage medium and an apparatus for executing host commands. The method performed by a processing unit includes: setting a first start register and a first end register to store a first logical address range from a first start logical address to a first end logical address for an execution of a host command; providing a sequential update queue including multiple entries; setting an activation register to drive a search engine; checking values of a matching register and a resulting address register of the search engine to determine whether a whole or a portion of data of the first logical address range is temporarily stored in the RAM after a time period; and if so, manipulating the whole or a portion of data of the first logical address range that is temporarily stored in the RAM.
-
公开(公告)号:US20230094268A1
公开(公告)日:2023-03-30
申请号:US17879180
申请日:2022-08-02
Applicant: Silicon Motion, Inc.
Inventor: Shen-Ting CHIU
IPC: G06F12/02 , G06F12/0831 , G06F3/06
Abstract: The invention relates to a method, and an apparatus for programming data into flash memory. The method includes: driving, by the routing engine, a host interface (I/F) according to the front-end parameter set when determining that a front-end processing stage needs to be activated for the data-programming transaction; driving, by the accelerator, a Redundant Array of Independent Disks (RAID) engine according to the mid-end parameter set when receiving an activation message of the data-programming transaction from the routing engine and determining that a mid-end processing stage needs to be activated; and driving, by the accelerator, a data access engine according to the back-end parameter set when determining that the mid-end processing stage for the data-write transaction does not need to be activated or the mid-end processing stage for the data-write transaction has been completed, and a back-end processing stage for the data-write transaction needs to be activated.
-
公开(公告)号:US20180322041A1
公开(公告)日:2018-11-08
申请号:US15853429
申请日:2017-12-22
Applicant: Silicon Motion, Inc.
Inventor: Shen-Ting CHIU
CPC classification number: G06F12/0246 , G06F9/3004 , G06F11/073 , G06F2212/2022 , G06F2212/7201 , G11C29/52
Abstract: A data-downloading technique for a data storage device before soldering the data storage device into a product. The data storage device uses a flash memory to provide first-type blocks (using single level cells) and second-type blocks (using multi-level cells). Before soldering the data storage device onto a printed circuit board, a controller of the data storage device allocates the first-type blocks to store data from a host. When the allocated number of first-type blocks reaches an upper limit, the controller changes to allocate the second-type blocks to store data from the host. When detecting that the controller has changed to allocate the flash memory to provide the second-type blocks to receive data from the host, the controller returns a fail message to the host to indicate unreliable write operations prior to soldering.
-
4.
公开(公告)号:US20240201902A1
公开(公告)日:2024-06-20
申请号:US18383239
申请日:2023-10-24
Applicant: Silicon Motion, Inc.
Inventor: Shen-Ting CHIU
IPC: G06F3/06
CPC classification number: G06F3/0659 , G06F3/0625 , G06F3/0679
Abstract: The invention relates to a method, a non-transitory computer-readable storage medium and an apparatus for executing host write commands. The method performed by a processing unit includes: providing a sequential-write command queue (SCQ), a random-write command queue (RCQ) and a mark queue; when a specific condition is met, obtaining a first logical address range carried in the conflicting sequential write command and second logical address ranges carried in the sequential write commands earlier than the conflicting sequential write command from the SCQ, and/or a third logical address range carried in the conflicting random write command and fourth logical address ranges carried in the random write commands earlier than the conflicting random write command from the RCQ according to content of the record; reading user data of the first logical address range from a first address of the RAM and user data of the second logical address ranges from second addresses of the RAM, and/or user data of the third logical address range from a third address of the RAM and user data of the fourth logical address ranges from fourth addresses of the RAM; and programming the user data of the first logical address range and the second logical address ranges, and/or the user data of the third logical address range and the fourth logical address ranges into the flash module.
-
公开(公告)号:US20230094250A1
公开(公告)日:2023-03-30
申请号:US17879232
申请日:2022-08-02
Applicant: Silicon Motion, Inc.
Inventor: Shen-Ting CHIU
IPC: G06F3/06
Abstract: The invention relates to a method, and an apparatus for programming data into flash memory. The method includes: reading operating settings of a virtual carrier; setting a redundant array of independent disks (RAID) engine 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; and sending a programming index to a data access engine for driving the data access engine to read a programming table from the SRAM, and program the second data associated with the virtual carrier into a designated address in a flash module when the operation settings indicate that the second data associated with the virtual carrier need to go through the back-end processing stage.
-
6.
公开(公告)号:US20210011861A1
公开(公告)日:2021-01-14
申请号:US16854065
申请日:2020-04-21
Applicant: Silicon Motion, Inc.
Inventor: Shen-Ting CHIU
Abstract: The invention introduces a method for executing host input-output (IO) commands, performed by a processing unit of a device side when loading and executing program code of a first layer, at least including: receiving a host IO command from a host side through a frontend interface; generating a slot bit table (SBT) including an entry according to the host IO command; creating a thread of a second layer; and sending addresses of callback functions and the SBT to the thread of the second layer, thereby enabling the thread of the second layer to call the callback functions according to the IO operation of the SBT for driving the frontend interface to interact with the host side to transmit user data read from a storage unit to the host side, or receive user data to be programmed into the storage unit from the host side.
-
公开(公告)号:US20190065332A1
公开(公告)日:2019-02-28
申请号:US16016089
申请日:2018-06-22
Applicant: Silicon Motion, Inc.
Inventor: Kuan-Yu KE , Guan-Yao HUANG , Shen-Ting CHIU
Abstract: A data storage device includes a flash memory, a controller and a random-access memory. The flash memory includes a plurality of planes, and each plane includes a plurality of blocks. A portion of blocks in each of the planes constitutes a super block, so that the flash memory includes a plurality of super blocks. The controller is coupled to the flash memory. When a first block of at least one first super block of the super blocks is damaged, and a second block of a second super block in the position corresponding to the damaged block is normal, the controller merges the second block of the second super block with the first super block to replace the first block. The random-access memory stores a compression table to record position information about the first block in the first super block and the number information of the second block.
-
公开(公告)号:US20230099396A1
公开(公告)日:2023-03-30
申请号:US17879205
申请日:2022-08-02
Applicant: Silicon Motion, Inc.
Inventor: Shen-Ting CHIU
IPC: G06F3/06
Abstract: The invention relates to a method, a non-transitory computer-readable storage medium and an apparatus for programming data into flash memory. The method includes: generating a front-end parameter set, a mid-end parameter set and a back-end parameter set for each data-programming transaction; transmitting 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 from the host side; transmitting the mid-end parameter set of each data-programming transaction to an accelerator, thereby enabling the accelerator to drive the RAID engine to encrypt raw data or generate parity-page data according to multiple pages of the raw data; and transmitting the back-end parameter set of each data-programming transaction to the accelerator, thereby enabling the accelerator to drive a data access engine to program source data into a designated physical address of a flash module.
-
9.
公开(公告)号:US20210326278A1
公开(公告)日:2021-10-21
申请号:US17360720
申请日:2021-06-28
Applicant: Silicon Motion, Inc.
Inventor: Shen-Ting CHIU
Abstract: The invention introduces a method for executing host input-output (IO) commands, performed by a processing unit of a device side, at least including: in response to different types of host IO commands, using multiple stages of a generic framework to drive a frontend interface to interact with a host side for transmitting user data read from a storage unit to the host side, and receiving user data to be programmed into the storage unit from the host side. The frontend interface includes a register, and a data line coupled to the host side. The stages of the generic framework are used to access to the register of the frontend interface and operate the data line of the frontend interface to complete interactions with the host side.
-
10.
公开(公告)号:US20210011862A1
公开(公告)日:2021-01-14
申请号:US16854652
申请日:2020-04-21
Applicant: Silicon Motion, Inc.
Inventor: Shen-Ting CHIU
Abstract: The invention introduces a method for executing host input-output (IO) commands, performed by a processing unit of a device side, at least including: in response to different types of host IO commands, using multiple stages of a generic framework to drive a frontend interface to interact with a host side for transmitting user data read from a storage unit to the host side, and receiving user data to be programmed into the storage unit from the host side.
-
-
-
-
-
-
-
-
-