Patents by Inventor Brian Clarke

Brian Clarke 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: 12596501
    Abstract: A system may include a non-volatile memory (NVM), a first memory, a second memory that has a higher speed than the first memory, and a controller. The controller may be configured to receive a first read command from a host computer, and determine a size of one or more buffers that are allocated for one or more read commands that have been received and not returned read data to the host computer. The controller may be configured to determine a number of the one or more read commands, and determine, based on at least the size of the one or more buffers and the number of the one or more read commands, whether to start processing the first read command. In response to determining to start processing the first read command, the controller may be configured to allocate, in the first memory, a first buffer for the first read command.
    Type: Grant
    Filed: September 29, 2023
    Date of Patent: April 7, 2026
    Assignee: KIOXIA CORPORATION
    Inventor: Brian Clarke
  • Patent number: 12591391
    Abstract: A method for writing data to an SSD configured to store data in a plurality of memory dies each comprising a plurality of memory blocks. The plurality of memory blocks are logically organized as a plurality of superblocks. The method is performed by a controller in communication with the plurality of memory dies. The method comprises generating, from accumulated write data, a plurality of commands. The method also comprises assigning, to each of the plurality of generated commands, an identifier corresponding to a superblock of the plurality of superblocks associated with the command. The method further comprises tracking a number of commands in each of a plurality of command queues corresponding to the dies of the superblock. The method additionally comprises queuing at least one of the plurality of generated commands to a die of the superblock having a corresponding command queue containing the smallest number of commands.
    Type: Grant
    Filed: September 28, 2023
    Date of Patent: March 31, 2026
    Assignee: KIOXIA CORPORATION
    Inventor: Brian Clarke
  • Patent number: 12487744
    Abstract: A method performed by a controller of a solid-state drive (SSD) having an integrated circuit comprising the controller. The method comprises receiving from a host a request for read data stored in a non-volatile semiconductor storage device of the SSD. The method also comprises determining if a capacity of internal memory of the integrated circuit is less than a predetermined fraction of its total capacity. Then the method comprises throttling a read-out rate used by the controller to retrieve data from the non-volatile semiconductor storage device if the capacity of internal memory of the integrated circuit is less than a predetermined fraction of its total capacity. The method then comprises retrieving the read data for storage in the internal memory using the throttled read-out rate.
    Type: Grant
    Filed: March 4, 2024
    Date of Patent: December 2, 2025
    Assignee: KIOXIA CORPORATION
    Inventors: Brian Clarke, Nigel Horspool
  • Patent number: 12474872
    Abstract: A method performed by a controller of a solid-state drive (SSD), the controller communicatively coupled to a non-volatile semiconductor memory device comprising a plurality of memory dies for storing data. The method comprises receiving a write command containing write data from a host interface. Next, the method comprises determining that write data associated with the write command is on a plurality of data streams. Here each data stream of the plurality of data streams having a stream number. The method then comprises retrieving a fill order from a plurality of fill orders based on a stream number, the fill order specifying a sequence of memory dies of the plurality of memory dies in which to program the write data. Further, the method comprises programming the write data to the memory dies according to the retrieved fill order.
    Type: Grant
    Filed: March 4, 2024
    Date of Patent: November 18, 2025
    Assignee: KIOXIA CORPORATION
    Inventors: Brian Clarke, Keigo Honda
  • Publication number: 20250278191
    Abstract: A method performed by a controller of a solid-state drive (SSD) having an integrated circuit comprising the controller. The method comprises receiving from a host a request for read data stored in a non-volatile semiconductor storage device of the SSD. The method also comprises determining if a capacity of internal memory of the integrated circuit is less than a predetermined fraction of its total capacity. Then the method comprises throttling a read-out rate used by the controller to retrieve data from the non-volatile semiconductor storage device if the capacity of internal memory of the integrated circuit is less than a predetermined fraction of its total capacity. The method then comprises retrieving the read data for storage in the internal memory using the throttled read-out rate.
    Type: Application
    Filed: March 4, 2024
    Publication date: September 4, 2025
    Inventors: Brian CLARKE, Nigel HORSPOOL
  • Publication number: 20250278215
    Abstract: A method performed by a controller of a solid-state drive (SSD), the controller communicatively coupled to a non-volatile semiconductor memory device comprising a plurality of memory dies for storing data. The method comprises receiving a write command containing write data from a host interface. Next, the method comprises determining that write data associated with the write command is on a plurality of data streams. Here each data stream of the plurality of data streams having a stream number. The method then comprises retrieving a fill order from a plurality of fill orders based on a stream number, the fill order specifying a sequence of memory dies of the plurality of memory dies in which to program the write data. Further, the method comprises programming the write data to the memory dies according to the retrieved fill order.
    Type: Application
    Filed: March 4, 2024
    Publication date: September 4, 2025
    Inventors: Brian CLARKE, Keigo HONDA
  • Publication number: 20250110888
    Abstract: A system may include a controller, a write buffer, and a device. The device may include a non-volatile memory (NVM), a first data buffer, and a second data buffer. The controller may be configured to transfer data from the write buffer to the first data buffer and the second data buffer and determine whether a power failure occurs. In response to determining that a power failure does not occur, the controller may configure the device to program data stored in at least one of the first data buffer or the second data buffer to the NVM in a first mode. In response to determining that the power failure occurs, the controller may configure the device to program data stored in at least one of the first data buffer or the second data buffer to the NVM in a second mode different from the first mode.
    Type: Application
    Filed: September 28, 2023
    Publication date: April 3, 2025
    Applicant: Kioxia Corporation
    Inventors: Nigel David Horspool, Brian Clarke
  • Publication number: 20250110869
    Abstract: A method for writing data to a solid-state drive (SSD) configured to store data in a plurality of memory dies each comprising a plurality of memory blocks. The plurality of memory blocks are logically organized as a plurality of superblocks. The method is performed by a controller in communication with the plurality of memory dies. The method comprises associating a superblock of the plurality of superblocks with a data stream of a plurality of data streams received via a write command from a host interface. The method also comprises writing each data stream to the memory blocks of the respective superblock. The method also includes identifying a superblock as a bad superblock if the data stream written to the memory blocks of the superblock does not satisfy a predetermined criteria. Further, the method includes executing garbage collection only on the memory blocks of the bad superblocks.
    Type: Application
    Filed: September 28, 2023
    Publication date: April 3, 2025
    Inventors: Nigel HORSPOOL, Brian CLARKE
  • Publication number: 20250110661
    Abstract: A system may include a non-volatile memory (NVM), a first memory, a second memory that has a higher speed than the first memory, and a controller. The controller may be configured to receive a first read command from a host computer, and determine a size of one or more buffers that are allocated for one or more read commands that have been received and not returned read data to the host computer. The controller may be configured to determine a number of the one or more read commands, and determine, based on at least the size of the one or more buffers and the number of the one or more read commands, whether to start processing the first read command. In response to determining to start processing the first read command, the controller may be configured to allocate, in the first memory, a first buffer for the first read command.
    Type: Application
    Filed: September 29, 2023
    Publication date: April 3, 2025
    Applicant: Kioxia Corporation
    Inventor: Brian Clarke
  • Publication number: 20250110665
    Abstract: A method for writing data to an SSD configured to store data in a plurality of memory dies each comprising a plurality of memory blocks. The plurality of memory blocks are logically organized as a plurality of superblocks. The method is performed by a controller in communication with the plurality of memory dies. The method comprises generating, from accumulated write data, a plurality of commands. The method also comprises assigning, to each of the plurality of generated commands, an identifier corresponding to a superblock of the plurality of superblocks associated with the command. The method further comprises tracking a number of commands in each of a plurality of command queues corresponding to the dies of the superblock. The method additionally comprises queuing at least one of the plurality of generated commands to a die of the superblock having a corresponding command queue containing the smallest number of commands.
    Type: Application
    Filed: September 28, 2023
    Publication date: April 3, 2025
    Inventor: Brian CLARKE
  • Patent number: 11698753
    Abstract: A method performed by a controller of an SSD, the controller coupled to a non-volatile semiconductor memory device and comprising a first command queue (Q1) and a second command queue (Q2). The method comprises selecting from a submission queue at least one command from a host, the command relating to an action to be performed on the memory device. The method comprises determining if a number of in-flight commands received from the host via the submission queue and already present in Q1 exceeds a threshold. The method comprises adding the selected command to Q2 if the threshold is exceeded, otherwise adding the selected command to Q1. The method comprises processing a first command from Q1 and a second command from Q2 to perform a first action and a second action, respectively, on the memory device, the first action being completed in advance of the second action.
    Type: Grant
    Filed: February 17, 2021
    Date of Patent: July 11, 2023
    Assignee: Kioxia Corporation
    Inventors: Nigel Horspool, Brian Clarke
  • Patent number: 11561724
    Abstract: A method of managing writing data to a Solid State Drive (SSD). The method includes determining a remaining capacity of an event queue for queuing write commands for execution by the SSD. Dynamically setting an ingress throttle rate of write commands, transferred from a host interface to the event queue based on the remaining capacity of the event queue, during the operation of then SSD and transferring the write commands to the event queue at ingress throttle rate. The method also includes inputting write data associated with the write commands into a write data buffer.
    Type: Grant
    Filed: June 1, 2021
    Date of Patent: January 24, 2023
    Assignee: Kioxia Corporation
    Inventors: Sebastian Troy, Brian Clarke
  • Publication number: 20220261183
    Abstract: A method performed by a controller of an SSD, the controller coupled to a non-volatile semiconductor memory device and comprising a first command queue (Q1) and a second command queue (Q2). The method comprises selecting from a submission queue at least one command from a host, the command relating to an action to be performed on the memory device. The method comprises determining if a number of in-flight commands received from the host via the submission queue and already present in Q1 exceeds a threshold. The method comprises adding the selected command to Q2 if the threshold is exceeded, otherwise adding the selected command to Q1. The method comprises processing a first command from Q1 and a second command from Q2 to perform a first action and a second action, respectively, on the memory device, the first action being completed in advance of the second action.
    Type: Application
    Filed: February 17, 2021
    Publication date: August 18, 2022
    Inventors: Nigel Horspool, Brian Clarke
  • Publication number: 20210286550
    Abstract: A method of managing writing data to a Solid State Drive (SSD). The method includes determining a remaining capacity of an event queue for queuing write commands for execution by the SSD. Dynamically setting an ingress throttle rate of write commands, transferred from a host interface to the event queue based on the remaining capacity of the event queue, during the operation of then SSD and transferring the write commands to the event queue at ingress throttle rate. The method also includes inputting write data associated with the write commands into a write data buffer.
    Type: Application
    Filed: June 1, 2021
    Publication date: September 16, 2021
    Inventors: Sebastian Troy, Brian Clarke
  • Patent number: 11042322
    Abstract: A method of managing writing data to a Solid State Drive (SSD). The method includes determining a remaining capacity of an event queue for queuing write commands for execution by the SSD. Dynamically setting an ingress throttle rate of write commands, transferred from a host interface to the event queue based on the remaining capacity of the event queue, during the operation of then SSD and transferring the write commands to the event queue at ingress throttle rate. The method also includes inputting write data associated with the write commands into a write data buffer.
    Type: Grant
    Filed: September 13, 2019
    Date of Patent: June 22, 2021
    Assignee: Toshiba Memory Corporation
    Inventors: Sebastian Troy, Brian Clarke
  • Patent number: 11030349
    Abstract: The method, computer program product and computer system may include computing device which may detect a first user within a defined area of a display device and the first user may have a first security level. The computing device may display data on the display device and the data may be associated with a security parameter defining a security level for viewing the data. The computing device may detect a second user within the defined area of the display device and the second user may have a second security level. The computing device may determine that the second security level of the second user does not meet the security parameter for viewing the data and redact the data in response to determining that the second user does not meet the security parameter for viewing the data.
    Type: Grant
    Filed: October 26, 2018
    Date of Patent: June 8, 2021
    Assignee: International Business Machines Corporation
    Inventors: Vijaya Balakrishna, Ambal Balakrishnan, Brian Clarke, Andrew R. Jones, Linda Zimmer
  • Patent number: 11030351
    Abstract: The method, computer program product and computer system may include computing device which may detect a first user within a defined area of a display device and the first user may have a first security level. The computing device may display data on the display device and the data may be associated with a security parameter defining a security level for viewing the data. The computing device may detect a second user within the defined area of the display device and the second user may have a second security level. The computing device may determine that the second security level of the second user does not meet the security parameter for viewing the data and redact the data in response to determining that the second user does not meet the security parameter for viewing the data.
    Type: Grant
    Filed: July 17, 2019
    Date of Patent: June 8, 2021
    Assignee: International Business Machines Corporation
    Inventors: Vijaya Balakrishna, Ambal Balakrishnan, Brian Clarke, Andrew R. Jones, Linda Zimmer
  • Publication number: 20210081135
    Abstract: A method of managing writing data to a Solid State Drive (SSD). The method includes determining a remaining capacity of an event queue for queuing write commands for execution by the SSD. Dynamically setting an ingress throttle rate of write commands, transferred from a host interface to the event queue based on the remaining capacity of the event queue, during the operation of then SSD and transferring the write commands to the event queue at ingress throttle rate. The method also includes inputting write data associated with the write commands into a write data buffer.
    Type: Application
    Filed: September 13, 2019
    Publication date: March 18, 2021
    Inventors: Sebastian Troy, Brian Clarke
  • Publication number: 20210081115
    Abstract: A method of managing writing data to a Solid State Drive (SSD). The SSD comprising a plurality of sets of one or more memory dies, each memory die is not associated with more than one set of memory dies and the SSD configured to store data in a plurality of data sets, each data set associated with a given set of memory dies of the plurality of sets of memory dies. The method additionally includes determining a remaining capacity of an event queue for queuing a plurality of write commands, each write command associated with one or more data units for writing to a data set of the plurality of data sets. Further, the ingress throttle rate of the plurality of write commands to be transferred from a host interface to the event queue based on the remaining capacity of the event queue is dynamically set during the operation of the SSD.
    Type: Application
    Filed: September 13, 2019
    Publication date: March 18, 2021
    Inventor: Brian Clarke
  • Publication number: 20200134238
    Abstract: The method, computer program product and computer system may include computing device which may detect a first user within a defined area of a display device and the first user may have a first security level. The computing device may display data on the display device and the data may be associated with a security parameter defining a security level for viewing the data. The computing device may detect a second user within the defined area of the display device and the second user may have a second security level. The computing device may determine that the second security level of the second user does not meet the security parameter for viewing the data and redact the data in response to determining that the second user does not meet the security parameter for viewing the data.
    Type: Application
    Filed: October 26, 2018
    Publication date: April 30, 2020
    Inventors: Vijaya Balakrishna, Ambal Balakrishnan, Brian Clarke, Andrew R. Jones, Linda Zimmer