Patents by Inventor Haining Liu

Haining Liu has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10255179
    Abstract: A device that provides garbage collection read throttling includes at least one processor that is configured to receive a request to perform a garbage collection read command on one of a plurality of flash memory circuits. The at least one processor is configured to determine whether garbage collection read throttling is enabled, such as when a garbage collection read throttling criterion is satisfied. The at least one processor is configured to buffer the garbage collection read command when garbage collection read throttling is enabled and perform the garbage collection read command when garbage collection read throttling is disabled. When the garbage collection read throttling is enabled and the garbage collection read command is buffered, the at least one processor is configured to perform the buffered garbage collection read command when garbage collection read throttling is subsequently disabled.
    Type: Grant
    Filed: December 30, 2016
    Date of Patent: April 9, 2019
    Assignee: Western Digital Technologies, Inc.
    Inventors: YungLi Ji, Yun-Tzuo Lai, Haining Liu, Ming-Yu Tai
  • Patent number: 10254966
    Abstract: Data storage devices and systems include a non-volatile memory array including a plurality of non-volatile memory cells, a host interface for communicating with a host system, and a controller configured to receive data storage access commands from the host system over the host interface, determine an input/output (I/O) state of the data storage device based at least in part on the received data storage access commands, and execute a data management operation based at least in part on the I/O state of the data storage device.
    Type: Grant
    Filed: December 28, 2016
    Date of Patent: April 9, 2019
    Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
    Inventor: Haining Liu
  • Patent number: 10235056
    Abstract: A storage device may include a plurality of memory devices logically divided into a plurality of blocks and a controller. In some examples, the controller may be configured to determine a respective fullness percentage for each respective block of the plurality of blocks; determine the smallest fullness percentage for the plurality of respective fullness percentages; and responsive to determining that the smallest fullness percentage exceeds a predetermined threshold value, perform an action related to health of the storage device.
    Type: Grant
    Filed: September 26, 2014
    Date of Patent: March 19, 2019
    Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
    Inventor: Haining Liu
  • Patent number: 10228862
    Abstract: A data storage device includes a nonvolatile solid-state memory comprising a plurality of blocks and a controller configured to maintain age data associated with each of a plurality of memory units, wherein each memory unit comprises one or more of the plurality of blocks, determine a capacity of the nonvolatile solid-state memory, and perform a wear leveling operation on a first memory unit of the plurality of memory units based at least in part on the age data associated with the first memory unit and the capacity of the nonvolatile solid-state memory.
    Type: Grant
    Filed: March 15, 2017
    Date of Patent: March 12, 2019
    Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
    Inventors: Haining Liu, Subhash Balakrishna Pillai
  • Patent number: 10204693
    Abstract: A method, system, and apparatus are provided for retiring computer memory blocks. Two overall schemes are provided for separating poorly functioning blocks from normally functioning blocks. In a first scheme, after data relocation is finished, firmware remembers the old physical memory block. As soon as the system writes to the old physical memory block with new data, firmware issues a read again and receives back a count of error bits. If the returned error bits are still high, then the system identifies the block as being weak and retires the block. In a second scheme, firmware tracks statistics for data relocates, block reads, activity timers, among other statistics. If some blocks have abnormal activities (e.g., too many data relocates, too many reads, etc.), then the system may identify the block as being weak and may retire the physical memory block.
    Type: Grant
    Filed: December 31, 2016
    Date of Patent: February 12, 2019
    Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
    Inventors: Ming-Yu Tai, Yun-Tzuo Lai, Yung-Li Ji, Haining Liu
  • Publication number: 20180373450
    Abstract: Command scheduling for die sets of non-volatile memory may be performed based on command states of the die sets. Upon receiving an erase command to erase data stored in a first block set of non-volatile memory, a command state of the first die set of the non-volatile memory is determined, where the first die set contains the first block set. If the first die set is determined to be in a pending command state, the erase command is queued in a wait queue. If the first die set is determined to be in an idle command state, the erase command is scheduled to erase the data stored in the first block set.
    Type: Application
    Filed: August 15, 2017
    Publication date: December 27, 2018
    Inventors: YUNGLI JI, YUN-TZUO LAI, HAINING LIU, YURIY PAVLENKO
  • Publication number: 20180341413
    Abstract: A data storage device that provides priority-based internal data movement includes a controller communicatively coupled to volatile memory and to non-volatile memory circuits, where the controller is configured to queue requests in a plurality of queues in the volatile memory, where each of the requests is associated with one of a plurality of internal data movement command types. The controller is also configured to select one of the plurality of queues based on a prioritization of the plurality of internal data movement command types. The controller is also configured to determine that the selected queue includes at least one request of the associated internal data movement command type. The controller is also configured to issue the at least one request from the selected queue to at least one of the non-volatile memory circuits.
    Type: Application
    Filed: May 24, 2017
    Publication date: November 29, 2018
    Inventors: Yun-Tzuo LAI, Haining LIU, Subhash Balakrishna PILLAI
  • Publication number: 20180336150
    Abstract: The subject technology provides for managing a data storage system. Commands are identified into as a first command type or a second command type. The commands identified as the first command type are assigned to a first queue, and the commands identified as the second command type are assigned to a second queue. After the commands from the first queue and the commands from the second queue are processed based on a scheduling ratio over a predetermined period of time, a write amplification factor, number of host read commands, and number of host write commands during the predetermined period of time are determined. The scheduling ratio is updated based on the write amplification, the number of host read commands, the number of host write commands, and a predetermined scheduling ratio factor. Subsequent commands are processed from the first queue and the second queue based on the updated scheduling ratio.
    Type: Application
    Filed: May 19, 2017
    Publication date: November 22, 2018
    Inventors: Scott JINN, Yun-Tzuo LAI, Haining LIU, Yuriy PAVLENKO
  • Publication number: 20180267705
    Abstract: A data storage device includes a nonvolatile solid-state memory comprising a plurality of blocks and a controller configured to maintain age data associated with each of a plurality of memory units, wherein each memory unit comprises one or more of the plurality of blocks, determine a capacity of the nonvolatile solid-state memory, and perform a wear leveling operation on a first memory unit of the plurality of memory units based at least in part on the age data associated with the first memory unit and the capacity of the nonvolatile solid-state memory.
    Type: Application
    Filed: March 15, 2017
    Publication date: September 20, 2018
    Inventors: Haining LIU, Subhash Balakrishna PILLAI
  • Publication number: 20180188970
    Abstract: Systems and methods are disclosed for scheduling access commands for a data storage device. A data storage device determines a layout of a plurality of non-volatile memory arrays. The data storage device also determine completed access statistics and pending access statistics for a first set of the plurality of non-volatile memory arrays during a monitoring period. The data storage device further generates a schedule based on the layout of the plurality of non-volatile memory arrays, the completed access statistics, and the pending access statistics and executes access commands based on schedule.
    Type: Application
    Filed: December 30, 2016
    Publication date: July 5, 2018
    Inventors: Haining LIU, YungLi JI, Yun-Tzuo LAI, Ming-Yu TAI
  • Publication number: 20180189187
    Abstract: The subject technology provides for recovering a validity table for a data storage system. A set of logical addresses in a mapping table is partitioned into subsets of logical addresses. Each of the subsets of logical addresses is assigned to respective processor cores in the data storage system. Each of the processor cores is configured to check each logical address of the assigned subset of logical addresses in the mapping table for a valid physical address mapped to the logical address, for each valid physical address mapped to a logical address of the assigned subset of logical addresses, increment a validity count in a local validity table associated with a blockset of the non-volatile memory corresponding to the valid physical address, and update validity counts in a global validity table associated with respective blocksets of the non-volatile memory with the validity counts in the local validity table.
    Type: Application
    Filed: December 30, 2016
    Publication date: July 5, 2018
    Inventors: Caesar Cheuk-Chow CHEUNG, Haining LIU, Subhash Balakrishna PILLAI
  • Publication number: 20180189149
    Abstract: A device that provides error recovery handling includes a processor that is configured to receive an error recovery request including error type information and a page address, where the error type information is mapped to a first error recovery technique. The processor may be configured to determine whether an error count associated with the flash memory circuit satisfies a first criterion and an error map associated with the flash memory circuit satisfies a second criterion, where the error count indicates a number of read errors that have occurred and the error map indicates blocks in which the read errors have occurred. The processor may be configured to utilize a second technique to attempt to recover data when the first and second criterions are satisfied, otherwise utilize the first technique to attempt to recover data, where the second technique is associated with recovering data stored in an offline flash memory circuit.
    Type: Application
    Filed: December 30, 2016
    Publication date: July 5, 2018
    Inventors: Parvaneh ALAVI, Kai-Lung CHENG, Yun-Tzuo LAI, Haining LIU
  • Publication number: 20180190362
    Abstract: Aspects of the disclosure provide methods and apparatus for handling Read Disturb and block errors in a non-volatile memory (NVM) device. An error level of both an aggressor page that causes Read Disturb errors and an error level of adjacent victim pages are obtained. The error level of the victim page is compared against a predetermined threshold error level to determine if the victim page is experiencing a high level of bit errors. If so, then the error level of the aggressor page is compared to the error level of the victim page to determine whether Read Disturb errors are actually occurring due to host reads of the aggressor page. By looking at both the aggressor and victim error levels, a more accurate determination of Read Disturb errors may be obtained, resulting in less unnecessary relocations of pages and blocks within an NVM for mitigating Read Disturb effects.
    Type: Application
    Filed: December 30, 2016
    Publication date: July 5, 2018
    Inventors: Richard David Barndt, Aldo Giovanni Cometti, Haining Liu, Jerry Lo
  • Publication number: 20180188981
    Abstract: Aspects of the disclosure provide methods and apparatus that monitor and mitigate Read Disturb errors in non-volatile memory (NVM) devices such as NAND flash memories. The disclosed methods and apparatus determine which logical block addresses (LBAs) in the NVM device are frequently accessed by a host, rather than looking a physical address accesses. The potential Read Disturb errors may then be mitigated by triggering Read Disturb mitigation when the numbers of access of one or more of the frequently accessed LBAs exceeds a predefined number of accesses.
    Type: Application
    Filed: December 29, 2016
    Publication date: July 5, 2018
    Inventors: Parvaneh Alavi, Hung-min Chang, Haining Liu, Jerry Lo, Hung-Cheng Yeh
  • Publication number: 20180188980
    Abstract: A method of wear leveling receives a write request. The write request indicates received data to be written to memory blocks. The method detects a system condition. Example system conditions include a random write condition, a garbage collection start condition, and/or a sequential write condition. Based on the system condition, the method determines whether the received data comprises hot data or cold data. Some embodiments use a write amplification value to determine the system condition. If the received data comprises hot data, the method writes the received data to a cold block. If the received data comprises cold data, the method writes the received data to a hot block.
    Type: Application
    Filed: December 31, 2016
    Publication date: July 5, 2018
    Inventors: Ming-Yu Tai, Subhash Balakrishna Pillai, Yung-Li Ji, Haining Liu
  • Publication number: 20180189175
    Abstract: A device that provides garbage collection read throttling includes at least one processor that is configured to receive a request to perform a garbage collection read command on one of a plurality of flash memory circuits. The at least one processor is configured to determine whether garbage collection read throttling is enabled, such as when a garbage collection read throttling criterion is satisfied. The at least one processor is configured to buffer the garbage collection read command when garbage collection read throttling is enabled and perform the garbage collection read command when garbage collection read throttling is disabled. When the garbage collection read throttling is enabled and the garbage collection read command is buffered, the at least one processor is configured to perform the buffered garbage collection read command when garbage collection read throttling is subsequently disabled.
    Type: Application
    Filed: December 30, 2016
    Publication date: July 5, 2018
    Inventors: YungLi JI, Yun-Tzuo LAI, Haining LIU, Ming-Yu TAI
  • Publication number: 20180188984
    Abstract: A method, system, and apparatus are provided for retiring computer memory blocks. Two overall schemes are provided for separating poorly functioning blocks from normally functioning blocks. In a first scheme, after data relocation is finished, firmware remembers the old physical memory block. As soon as the system writes to the old physical memory block with new data, firmware issues a read again and receives back a count of error bits. If the returned error bits are still high, then the system identifies the block as being weak and retires the block. In a second scheme, firmware tracks statistics for data relocates, block reads, activity timers, among other statistics. If some blocks have abnormal activities (e.g., too many data relocates, too many reads, etc.), then the system may identify the block as being weak and may retire the physical memory block.
    Type: Application
    Filed: December 31, 2016
    Publication date: July 5, 2018
    Inventors: Ming-Yu Tai, Yun-Tzuo Lai, Yung-Li Ji, Haining Liu
  • Publication number: 20180181302
    Abstract: Data storage devices and systems include a non-volatile memory array including a plurality of non-volatile memory cells, a host interface for communicating with a host system, and a controller configured to receive data storage access commands from the host system over the host interface, determine an input/output (I/O) state of the data storage device based at least in part on the received data storage access commands, and execute a data management operation based at least in part on the I/O state of the data storage device.
    Type: Application
    Filed: December 28, 2016
    Publication date: June 28, 2018
    Inventor: Haining LIU
  • Patent number: 9971515
    Abstract: In general, a storage device may perform an incremental background media scan. The storage device includes a data storage portion comprising a plurality of blocks. The storage device also includes a controller configured to perform the scan to determine whether to perform maintenance on the page. As such, the controller may scan a first page of a first block of a set of blocks. Each block has multiple pages. The controller may, for each respective remaining block of the set, scan a respective first page of the respective remaining block, the first page having a same first index as the respective first page. The controller may further scan a second page of the first block. The controller may then, for each respective remaining block of the set, scan a respective second page of the respective remaining block, the second page having a same second index as the respective second page.
    Type: Grant
    Filed: September 13, 2016
    Date of Patent: May 15, 2018
    Assignee: Western Digital Technologies, Inc.
    Inventors: Hung-Min Chang, Haining Liu, Yuriy Pavlenko, Hung-Cheng Yeh
  • Publication number: 20180074701
    Abstract: In general, a storage device may perform an incremental background media scan. The storage device includes a data storage portion comprising a plurality of blocks. The storage device also includes a controller configured to perform the scan to determine whether to perform maintenance on the page. As such, the controller may scan a first page of a first block of a set of blocks. Each block has multiple pages. The controller may, for each respective remaining block of the set, scan a respective first page of the respective remaining block, the first page having a same first index as the respective first page. The controller may further scan a second page of the first block. The controller may then, for each respective remaining block of the set, scan a respective second page of the respective remaining block, the second page having a same second index as the respective second page.
    Type: Application
    Filed: September 13, 2016
    Publication date: March 15, 2018
    Inventors: Hung-Min Chang, Haining Liu, Yuriy Pavlenko, Hung-Cheng Yeh