Abstract: The present invention provides a fractional frequency divider, wherein the fractional frequency divider includes a plurality of registers, a control signal generator and a clock gating circuit. Regarding the plurality of registers, at least a portion of the registers are set to have values. The control signal generator is configured to generate a control signal based on an input clock signal and values in the at least a portion of the registers, wherein the control generator sequentially generates the control signal during each cycle of the input clock signal. The clock gating circuit is configured to refer to the control signal to mask or not mask the input clock signal to generate an output clock signal.
Abstract: A multi-processor system with a distributed mailbox architecture and a communication method thereof are provided. The multi-processor system comprises a plurality of processors, each of the processors is correspondingly configured with an exclusive mailbox and an exclusive channel, and the communication method comprises the following steps. When a first processor of the processors needs to communicate with a second processor, the first processor writes data into the exclusive mailbox of the second processor through a public bus; and when the writing of the data has completed, the exclusive mailbox of the second processor sends an interrupt signal to the second processor, after receiving the interrupt signal, the second processor reads the data in the exclusive mailbox through the corresponding exclusive channel.
Abstract: Mapping information management for data storage. A mapping information format without any uncorrectable flag bits (UNC bits) is shown. A controller provides a cyclic redundancy check (CRC) engine. In response to an uncorrectable marking command issued by a host, the controller operates the cyclic redundancy check engine to encode a data pattern with a biased encoding seed to generate biased cyclic redundancy check code. The controller programs the data pattern and the biased cyclic redundancy check code to the non-volatile memory. The data pattern, therefore, will not pass CRC. The uncorrectable marking command works.
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 slot bit table (SBT) including an entry from a second layer, where each entry is associated with an IO operation; receiving a plurality of addresses of callback functions from the second layer; and repeatedly executing a loop until IO operations of the SBT have been processed completely, and, in each iteration of the loop, calling the callback functions implemented in the second layer for a write operation or a read operation of the SBT to drive the frontend interface through the second layer.
Abstract: The invention introduces an apparatus for searching linked lists at least including: a memory arranged to operably store a linked list; a linked-list search engine arranged to operably search content of the linked list until a search success or fail and generate a search result; and a processing unit arranged to operably write the content of the linked list into the memory, drive the linked-list search engine to start a search on the linked list and obtain the search result from the linked-list search engine.
Abstract: The present invention discloses a storage device including a memory module and a memory controller. The memory controller includes a memory interface control unit, a command queue, a selecting unit, a buffer and a processing unit. The processing unit is configured to perform: generating a plurality of macro commands by combining a plurality of sequences of memory operation commands; writing the macro commands into the buffer; writing one or more than one operation parameter of the macro command corresponding to a host command into the buffer according to the host command outputted from a host; commanding the selecting unit to select the buffer as an input terminal; and commanding the buffer to output the macro command corresponding to the host command.
Abstract: A data storage device includes a memory device and a memory controller. The memory controller configures a first predetermined memory block and a second predetermined memory block as buffers to receive data from a host device and determines to use the first or the second predetermined memory block to receive the data according to write addresses of a write command received from the host device. When the write addresses indicate that the data to be written by the host device is management data of a file system of the host device, the memory controller writes the data to the first predetermined memory block. When the write addresses indicate that the data to be written by the host device is not the management data of the file system of the host device, the memory controller writes the data to the second predetermined memory block.
Abstract: The invention introduces an apparatus for generating a storage mapping table at least including a direct memory access controller for reading first physical location (PL) address corresponding to a logical location of the storage mapping table; an expanding circuit for obtaining the first PL address and expanding the first PL address into second PL address by appending data bits that originally provide different information from a physical address of the flash memory unit to the first PL address; and a controller for transmitting the second PL address without transmitting the first PL address stored in the flash memory unit to a host.
Abstract: The invention introduces a method for performing operations to namespaces of a flash memory device, at least including the steps: receiving a namespace setting-update command from a host, requesting to update a namespace size of a namespace; determining whether the updated namespace size of the namespace can be supported; and when the updated namespace size of the namespace can be supported, updating a logical-physical mapping table of the namespace to enable the namespace to store user data of the updated namespace size.
Abstract: The invention relates to an apparatus, a method, and a non-transitory computer program product for programming flash administration tables. The non-transitory computer program product includes program code to: periodically determine whether user data that has been programmed into a current block of a flash module satisfies a random-write condition; and update a record of a host-to-flash (H2F) sub-table according to content of a flash-to-host (F2H) table for the current block when user data that has been programmed into the current block of the flash module satisfies the random-write condition.
Abstract: A function management method applied to a memory device includes obtaining a plurality of functions through a map file of a compiler, and parsing at least one source code of the memory device with the map file. The functions include at least one normal function and at least one API function. The parsing includes developing a mapping relationship between the at least one API function and the at least one normal function, and developing a calling relationship between the at least one normal function.
Abstract: Efficient space trimming of data storage device is shown, which uses a controller to program a trimming tag that corresponds to a trimming command issued by a host into a cache area of a temporary storage device. The trimming tag, therefore, can be flushed from the cache area to the non-volatile memory for non-volatile storage. The update of the host-to-device mapping table based on the trimming tag can be postponed to the moment that the controller is free.
Abstract: A method and apparatus for performing dynamic recovery management regarding a RAID are provided. The method includes: writing a first set of protected data into a first protected access unit of multiple protected access units of the RAID, and recording a first set of management information corresponding to the first set of protected data, for data recovery of the first set of protected data; and when any storage device of multiple storage devices of the RAID malfunctions, writing a second set of protected data into a second protected access unit of the protected access units, and recording a second set of management information corresponding to the second set of protected data, for data recovery of the second set of protected data. Any set of the first set of protected data and the second set of protected data includes data and multiple parity-check codes.
Abstract: A method for controlling a storage device is provided. The method may include: transmitting an initial command conforming to a first communications protocol and a data payload comprising a command parameter to the storage device, wherein the command parameter conforms to a second communications protocol; transmitting a setting command conforming to the first communications protocol to the storage device; and generating an operation command conforming to the second communications protocol according to the initial command, the setting command and the data payload comprising the command parameter. More particularly, the initial command and the setting command are different commands.
Abstract: The present invention provides a method for managing a flash memory module, wherein the method includes the steps of: grouping a plurality of blocks within the flash memory module into a plurality of groups; scanning a target block of each group, without scanning all of the blocks within the group, to determine if at least a portion of blocks of the group needs to be refreshed, wherein the group that is determined that at least the portion of blocks needs to be refreshed is marked as a marked group; only scanning at least the portion of blocks of the marked group, without scanning the groups that is not marked, to determine which block needs to be refreshed, wherein the block that is determined to be refreshed is marked as a marked block; refreshing the marked block(s) by moving valid data of the marked block(s) to at least one blank block.
Abstract: A method employed in a low-density parity-check code decoder includes: receiving a specific data portion of a first codeword; calculating a flipping function value of the specific data portion of the first codeword according to the specific data portion by using checking equations of a parity check matrix to calculate checking values of the specific data portion; and determining whether to flip the specific data portion of the first codeword by comparing the flipping function value with a flipping threshold which has been calculated based on a plurality of flipping function values of a plurality of previous data portions earlier than the specific data portion.
Abstract: A method for performing access control in a memory device, the associated memory device and the controller thereof are provided. The method includes: according to at least one predetermined arrangement pattern, writing a plurality of sets of symbols into a plurality of storage regions of a memory as a plurality of redundant array of independent disks (RAID) groups, respectively; and utilizing a RAID engine circuit in the memory device to perform a plurality of operations related to data protection, such as: determining a series of reading patterns corresponding to the predetermined arrangement pattern; according to a reading pattern of the series of reading patterns, reading a plurality of symbols from each RAID group of the RAID groups; and performing exclusive-OR (XOR) operations on the symbols to convert the symbols into at least one XOR result, for performing data protection.
Abstract: A method for performing read acceleration, an associated data storage device and controller thereof are provided, where the method is applicable to the data storage device and the controller. The method includes: receiving a write command from a host device, and performing programming on a non-volatile (NV) memory element within a plurality of NV memory elements according to the write command; recording operation command-related information corresponding to the write command; when a read command having high priority exists in a queue corresponding to the NV memory element, suspending performing programming on the NV memory element; executing the read command; and after executing the read command, continuing performing programming on the NV memory element at least according to the operation command-related information.
Abstract: The invention introduces a method, an apparatus and a non-transitory computer program product for storing data in flash memory. The method is performed by a processing unit when loading and executing program code of a flash translation layer to include: dividing storage space of a flash module into a first region and a second region; programming data belonging to a first partition type received from a host side into first physical blocks of the first region only; and programming data belonging to a second partition type received from the host side into the first physical blocks of the first region and the second physical blocks of the second region. With the region division and the policy for writing data into the regions in terms of data characteristics of different partition types, storage space of the flash module would be used more effective.
Abstract: The invention introduces a method for multi-namespace data access, performed by a controller, at least including: obtaining a host write command from a host, which includes user data and metadata associated with one Logical Block Address (LBA) or more; and programming the user data and the metadata into a user-data part and a metadata part of a segment of a Logical Unit Number (LUN), respectively, wherein a length of the metadata part is the maximum metadata length of a plurality of LBA formats that the controller supports.