Patents by Inventor JOAO ALCANTARA

JOAO ALCANTARA 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).

  • Publication number: 20160342367
    Abstract: A system and method for providing consistent performance in a storage device, such as a solid state drive. A threshold value for command execution time for a command in a category of command (e.g., a read command or a write command) and a command size, is stored in the storage device. When a host command in the category (e.g., a read command) and corresponding size is received, the storage device executes the command, and if it completes execution of the command in a time that is less than the threshold value, the solid state drive waits until an amount of time equal to the threshold value has elapsed before sending the command completion.
    Type: Application
    Filed: August 5, 2016
    Publication date: November 24, 2016
    Inventors: Joao Alcantara, Ricardo Cassia, Kamyar Souri, Vladimir Alves, Guangming Lu
  • Patent number: 9454551
    Abstract: A method of garbage collection in a storage device including a central processing unit (CPU), a self-organized fast release buffer (FRB), and a non-volatile memory, the method including receiving a command to perform garbage collection in a first block stripe of the non-volatile memory from the CPU, the command including a second block stripe to write to and valid logical block numbers (LBNs) corresponding to a first codewords (CWs) stored in the first block stripe, allocating space in a buffer memory of the FRB for storage of the first CWs, storing the first CWs into the allocated space in the buffer memory, transferring a second CWs to a plurality of physical addresses in the second block stripe of the non-volatile memory, and sending the valid LBNs and the plurality of physical addresses to the CPU to update a logical-to-physical table, wherein the second CWs is based on the first CWs.
    Type: Grant
    Filed: March 13, 2014
    Date of Patent: September 27, 2016
    Assignee: NXGN Data, Inc.
    Inventors: Joao Alcantara, Vladimir Alves
  • Patent number: 9448745
    Abstract: A method of writing host data to a storage device including a central processing unit (CPU), a self-organized fast release buffer (FRB), and a non-volatile memory, the storage device being in communication with a host, the method including receiving a command from the CPU to write the host data to a location in the non-volatile memory, the host data being associated with a first plurality of codewords (CWs), allocating space in a buffer memory of the FRB for storage of the first CWs, storing the first CWs into the allocated space in the buffer memory, extracting data from the stored first CWs, organizing the extracted data and the host data into a second plurality of CWs, transferring a second CWs to a physical addresses in the non-volatile memory, and sending the plurality of physical addresses to the CPU to update a logical-to-physical table.
    Type: Grant
    Filed: March 13, 2014
    Date of Patent: September 20, 2016
    Assignee: NXGN Data, Inc.
    Inventors: Joao Alcantara, Vladimir Alves
  • Publication number: 20160253095
    Abstract: Managing data returns to a host in response to read commands, an operation monitor of a solid-state drive (SSD) manages counters used to hold metrics that characterize the estimated time to complete a read operation on a corresponding flash die. A timer generates a periodic event which decrements the counters over time. The value stored in each counter is generated for flash operations submitted to the corresponding die and is, generally, based on the operational history and the physical location of the operation. Whenever a read command is scheduled for submission to a particular die, the time estimate for that particular read operation is retrieved and, based on this information, the optimum order in which to return data to the host is determined. This order is used to schedule and program data transfers to the host so that a minimum number of read commands get blocked by other read commands.
    Type: Application
    Filed: May 13, 2016
    Publication date: September 1, 2016
    Inventors: JOAO ALCANTARA, ZOLTAN SZUBBOCSEV
  • Patent number: 9354814
    Abstract: Managing data returns to a host in response to read commands, an operation monitor of a solid-state drive (SSD) manages counters used to hold metrics that characterize the estimated time to complete a read operation on a corresponding flash die. A timer generates a periodic event which decrements the counters over time. The value stored in each counter is generated for flash operations submitted to the corresponding die and is, generally, based on the operational history and the physical location of the operation. Whenever a read command is scheduled for submission to a particular die, the time estimate for that particular read operation is retrieved and, based on this information, the optimum order in which to return data to the host is determined. This order is used to schedule and program data transfers to the host so that a minimum number of read commands get blocked by other read commands.
    Type: Grant
    Filed: April 7, 2015
    Date of Patent: May 31, 2016
    Assignee: HGST Netherlands B.V.
    Inventors: Joao Alcantara, Zoltan Szubbocsev
  • Patent number: 9354822
    Abstract: A method of reading host data from a storage device including a central processing unit (CPU), a self-organized fast release buffer (FRB), and a non-volatile memory, the storage device being in communication with a host, the method including receiving, by the FRB, a command to read host data stored in the non-volatile memory from the CPU, the host data being stored in the non-volatile memory as one or more codewords (CWs), allocating space, by the FRB, in a buffer memory of the FRB for storage of the one or more CWs, storing, by the FRB, the one or more CWs into the allocated space in the buffer memory, extracting, by the FRB, the host data from the stored one or more CWs, and transferring, by the FRB, the host data to the host.
    Type: Grant
    Filed: March 13, 2014
    Date of Patent: May 31, 2016
    Assignee: NXGN Data, Inc.
    Inventors: Joao Alcantara, Vladimir Alves
  • Patent number: 9348760
    Abstract: A method of maintaining and updating a logical-to-physical (LtoP) table in a storage device including a processor, a volatile memory, and a non-volatile memory, the storage device being in communication with a host, the method including receiving, by the processor, data for storing at a physical address in the non-volatile memory, the data being associated with a logical address of the host, storing, by the processor, the physical address in a first LtoP zone of a plurality of LtoP zones of the LtoP table, the LtoP table being stored in the volatile memory, adding, by the processor, the first LtoP zone to a list of modified zones, and storing, by the processor, a second LtoP zone of the plurality of LtoP zones in the non-volatile memory when a size of the list of modified zones exceeds a threshold.
    Type: Grant
    Filed: September 9, 2014
    Date of Patent: May 24, 2016
    Assignee: NXGN Data, Inc.
    Inventors: Nader Salessi, Joao Alcantara
  • Patent number: 9336135
    Abstract: A system and method of providing enhanced data processing and analysis in a storage device, such as a solid state drive (SSD). The SSD includes flash memory and an SSD controller capable of executing searches on the data in the flash memory without returning all of the data to be searched to a host CPU outside of the SSD. Other processing capabilities incorporated into the SSD may include encryption and decryption, compression and decompression, and in-line indexing of data. The SSD efficiently processes queries through the use of an internal data buffer and a data engine configured to search partial data.
    Type: Grant
    Filed: December 27, 2013
    Date of Patent: May 10, 2016
    Assignee: NxGn Data, Inc.
    Inventors: Nader Salessi, Joao Alcantara
  • Patent number: 9336313
    Abstract: System and methods for enhanced data processing and analysis in a storage device, such as a solid state drive (SSD) include an SSD having a data storage and a controller. The data storage stores a plurality of data sets. The controller has a pattern buffer and a data engine. The controller receives a query, processes the query to extract a pattern, loads the pattern into the pattern buffer, and accesses the data storage. The data engine searches a data subset from the data storage for instances of the pattern using a rolling window method. The controller generates a result from the search.
    Type: Grant
    Filed: December 31, 2013
    Date of Patent: May 10, 2016
    Assignee: NxGn Data, Inc.
    Inventors: Nader Salessi, Joao Alcantara
  • Patent number: 9323304
    Abstract: A system and method for operating a solid state drive (SSD) within power limitations while maintaining SSD performance. In one embodiment a power management integrated circuit (PMIC) is used to measure power consumption, and a built-in self-test (BIST) procedure is used to exercise the storage device, and to calibrate the power consumed by various SSD operations. The results are stored in a power consumption cost table. In one embodiment, a procedure to dynamically adjust the power consumption cost table is employed. A power credit allocation scheme is used, along with the power consumption cost table, to track and limit the power consumed by the SSD in operation.
    Type: Grant
    Filed: December 18, 2013
    Date of Patent: April 26, 2016
    Assignee: NXGN Data, Inc.
    Inventors: Nader Salessi, Joao Alcantara
  • Publication number: 20160041596
    Abstract: The solution described here is a method to schedule the execution of data processing tasks while data retention operations need to be performed. The main objective of this approach is to minimize the power consumption of the host data processing tasks that are not time sensitive. The Storage Device may be in a power saving mode or even off at the time the Host wants to execute a data processing task. For non-critical data processing tasks, the Host activates the device at a specific time estimated by the drive to run data retention tasks, and then sends the data processing function to the device. The device executes the Host data processing tasks and also performs the data retention operations accordingly. After the entire process is complete, the device can return to the initial power state or any power state determined by the Host.
    Type: Application
    Filed: August 3, 2015
    Publication date: February 11, 2016
    Inventors: Joao Alcantara, Ricardo Cassia, Vincent Lazo, Kamyar Souri
  • Publication number: 20160043736
    Abstract: Method to simultaneously detect all possible types, combinations and/or ranges of characters of a Regular Expression search pattern in a search space by re-encoding the search pattern and the search space in single set bit representations, employing a single detection logic. The search space n-bit representation is re-encoded into a single set bit representation of 2n bits while single/multiple search pattern(s) n-bit representation(s) is (are) re-encoded and combined into a sole single/multiple set bit representation of 2n bits. The hardware implementation of the method detects the presence of any character existent from the search pattern in the search space.
    Type: Application
    Filed: August 3, 2015
    Publication date: February 11, 2016
    Inventors: Ricardo Cassia, Joao Alcantara, Kamyar Souri
  • Patent number: 9250820
    Abstract: A system and method for storing infrequently accessed data with reduced power consumption. In one embodiment, a solid state drive (SSD) includes flash memory and environmental data logging circuitry. The SSD is shut off or operated in a sleep mode to reduce power consumption, and turned on or transitioned to an active mode as needed when data on the SSD is to be accessed, or when a calculation, based on a number of erase cycles previously performed in the flash memory and on a temperature history of the SSD indicates that a data refresh may be needed to prevent data corruption in the SSD, due to data retention limitation of the nonvolatile memory in the SSD.
    Type: Grant
    Filed: September 12, 2014
    Date of Patent: February 2, 2016
    Assignee: NXGN Data, Inc.
    Inventors: Nader Salessi, Joao Alcantara
  • Publication number: 20160026402
    Abstract: The solution described here is a method to provide consistent performance in a storage device. A performance manager module is implemented to measure the time interval in which a command takes to be completed. In case the time interval is longer than a certain threshold, the difference is annotated and used on the consecutive commands within a programmable time window. This time window can be a regular time interval e.g. every second. In case the time interval is shorter than a threshold, the control module delays sending the command completion to the host until the threshold value is reached. The delay is adjusted based on the credit annotation due to commands that took longer than the time interval to be completed in order to compensate for commands that took longer than the threshold to complete, during a certain time window.
    Type: Application
    Filed: July 22, 2015
    Publication date: January 28, 2016
    Inventors: Joao Alcantara, Ricardo Cassia, Kamyar Souri, Vladimir Alves, Guangming Lu
  • Publication number: 20150378932
    Abstract: A system and method for executing user-provided code securely on a solid state drive (SSD) to perform data processing on the SSD. In one embodiment, a user uses a security-oriented cross-compiler to compile user-provided source code for a data processing task on a host computer containing, or otherwise connected to, an SSD. The resulting binary is combined with lists of input and output file identifiers and sent to the SSD. A central processing unit (CPU) on the SSD extracts the binary and the lists of file identifiers. The CPU obtains from the host file system the addresses of storage areas in the SSD containing the data in the input files, reads the input data, executes the binary using a container, and writes the results of the data processing task back to the SSD, in areas corresponding to the output file identifiers.
    Type: Application
    Filed: December 5, 2014
    Publication date: December 31, 2015
    Inventors: Kamyar Souri, Joao Alcantara, Ricardo Cassia
  • Publication number: 20150261797
    Abstract: A method of garbage collection in a storage device including a central processing unit (CPU), a self-organized fast release buffer (FRB), and a non-volatile memory, the method including receiving a command to perform garbage collection in a first block stripe of the non-volatile memory from the CPU, the command including a second block stripe to write to and valid logical block numbers (LBNs) corresponding to a first codewords (CWs) stored in the first block stripe, allocating space in a buffer memory of the FRB for storage of the first CWs, storing the first CWs into the allocated space in the buffer memory, transferring a second CWs to a plurality of physical addresses in the second block stripe of the non-volatile memory, and sending the valid LBNs and the plurality of physical addresses to the CPU to update a logical-to-physical table, wherein the second CWs is based on the first CWs.
    Type: Application
    Filed: March 13, 2014
    Publication date: September 17, 2015
    Applicant: NXGN Data, Inc.
    Inventors: Joao Alcantara, Vladimir Alves
  • Publication number: 20150261475
    Abstract: A method of reading host data from a storage device including a central processing unit (CPU), a self-organized fast release buffer (FRB), and a non-volatile memory, the storage device being in communication with a host, the method including receiving, by the FRB, a command to read host data stored in the non-volatile memory from the CPU, the host data being stored in the non-volatile memory as one or more codewords (CWs), allocating space, by the FRB, in a buffer memory of the FRB for storage of the one or more CWs, storing, by the FRB, the one or more CWs into the allocated space in the buffer memory, extracting, by the FRB, the host data from the stored one or more CWs, and transferring, by the FRB, the host data to the host.
    Type: Application
    Filed: March 13, 2014
    Publication date: September 17, 2015
    Applicant: NXGN DATA, INC.
    Inventors: Joao Alcantara, Vladimir Alves
  • Publication number: 20150261456
    Abstract: A method of writing host data to a storage device including a central processing unit (CPU), a self-organized fast release buffer (FRB), and a non-volatile memory, the storage device being in communication with a host, the method including receiving a command from the CPU to write the host data to a location in the non-volatile memory, the host data being associated with a first plurality of codewords (CWs), allocating space in a buffer memory of the FRB for storage of the first CWs, storing the first CWs into the allocated space in the buffer memory, extracting data from the stored first CWs, organizing the extracted data and the host data into a second plurality of CWs, transferring a second CWs to a physical addresses in the non-volatile memory, and sending the plurality of physical addresses to the CPU to update a logical-to-physical table.
    Type: Application
    Filed: March 13, 2014
    Publication date: September 17, 2015
    Applicant: NXGN Data, Inc.
    Inventors: Joao Alcantara, Vladimir Alves
  • Publication number: 20150212735
    Abstract: Managing data returns to a host in response to read commands, an operation monitor of a solid-state drive (SSD) manages counters used to hold metrics that characterize the estimated time to complete a read operation on a corresponding flash die. A timer generates a periodic event which decrements the counters over time. The value stored in each counter is generated for flash operations submitted to the corresponding die and is, generally, based on the operational history and the physical location of the operation. Whenever a read command is scheduled for submission to a particular die, the time estimate for that particular read operation is retrieved and, based on this information, the optimum order in which to return data to the host is determined. This order is used to schedule and program data transfers to the host so that a minimum number of read commands get blocked by other read commands.
    Type: Application
    Filed: April 7, 2015
    Publication date: July 30, 2015
    Inventors: JOAO ALCANTARA, ZOLTAN SZUBBOCSEV
  • Patent number: 9092362
    Abstract: A method of writing host data to a storage device including a central processing unit (CPU), a self-organized fast release buffer (FRB), and a non-volatile memory, the storage device being in communication with a host, the method including receiving a command to write the host data to the non-volatile memory from the CPU, the host data being associated with a logical block number (LBN), allocating space in a buffer memory of the FRB for storage of the host data, organizing the host data into one or more codewords (CWs), storing the one or more CWs into the allocated space in the buffer memory, transferring the one or more CWs from the buffer memory to a physical address in the non-volatile memory, and sending the LBN and the physical address to the CPU to update a logical-to-physical table.
    Type: Grant
    Filed: March 13, 2014
    Date of Patent: July 28, 2015
    Assignee: NXGN Data, Inc.
    Inventors: Joao Alcantara, Vladimir Alves