Patents Assigned to Tidal Systems, Inc.
  • Patent number: 10318448
    Abstract: A buffer manager is generated by executing a script with respect to a buffer architecture template and a configuration file specifying parameters for the buffer such as, for example, number of memory banks, width of memory banks, depth of memory banks, and client bridge FIFO depth. The script converts the buffer architecture template into a hardware description language (HDL) description of a buffer manager having the parameters. Client bridges accumulate requests for memory banks in FIFO that is provided to a buffer manager upon the client bridge being granted arbitration. Accesses of memory banks may be performed one at a time in consecutive clock cycles in a pipelined manner. Client bridges and the buffer manager may operate in different clock domains. The clock frequency of the buffer manager may be increased or decreased according to requests from client devices.
    Type: Grant
    Filed: August 29, 2017
    Date of Patent: June 11, 2019
    Assignee: Tidal Systems, Inc.
    Inventors: Michael Ou, Jerry Wang, Meng Kun Lee
  • Patent number: 10277248
    Abstract: Systems and method provide for consistent throughput of one or more compression engines. Data received from an input stream is stored in a buffer. Data is read from the buffer and distributed to the compression engines. Latency of the compression engines is monitored. If latency exceeds a threshold, data is read from the buffer and written to an output stream simultaneously with reading of data and inputting it to the compression engines. Data from the input stream may be evaluated for likely compressibility and non-compressible data may be written to the output stream bypassing both the buffer and the compression engines.
    Type: Grant
    Filed: July 7, 2015
    Date of Patent: April 30, 2019
    Assignee: Tidal Systems, Inc.
    Inventor: Meng Kun Lee
  • Patent number: 10230393
    Abstract: A compression algorithm based on Huffman coding is disclosed that is adapted to be readily implemented using VLSI design. A data file may be processed to replace duplicate data with a copy commands including an offset and length, such as according to the LV algorithm. A Huffman code may then be generated for parts of the file. The Huffman code may be generated according to a novel method that generates Huffman code lengths for literals in a data file without first sorting the literal statistics. The Huffman code lengths may be constrained to be no longer than a maximum length and the Huffman code may be modified to provide an acceptable overflow probability and be in canonical order. Literals, offsets, and lengths may be separately encoded. The different values for these data sets may be assigned to a limited number of bins for purpose of generating usage statistics used for generating Huffman codes.
    Type: Grant
    Filed: August 30, 2017
    Date of Patent: March 12, 2019
    Assignee: Tidal Systems, Inc.
    Inventors: Yingquan Wu, Alexander Hubris
  • Patent number: 10177786
    Abstract: A system implements adaptive desaturation for the min-sum decoding of LDPC codes. Specifically, when an-above threshold proportion of messages from check nodes to variable nodes (CN-to-VN messages) are saturated to a maximum fixed-precision value, all CN-to-VN messages are halved. This facilitates the saturation of correct messages and boosts error correction over small trapping sets. The adaptive desaturation approach reduces the error floor by orders of magnitudes with negligible add-on circuits.
    Type: Grant
    Filed: August 1, 2017
    Date of Patent: January 8, 2019
    Assignee: Tidal Systems, Inc.
    Inventor: Yingquan Wu
  • Patent number: 10176041
    Abstract: A method is disclosed for performing LDPC soft decoding of data stored in a flash storage device. Upon occurrence of a hard read failure, one or more retries with soft decoding after each retry are performed until soft decoding is successful or a maximum iteration count is reached. For each retry thresholds for sensing a level of a cell are adjusted according to a specific sequence. Likewise, the LLR table for each retry is selected from pre-determined LLR tables each corresponding to a retry attempt and the thresholds used for the retry attempt. The LLR table is not adjusted between retries or based on outcomes of any retries. A step size by which thresholds adjusted may be tuned to improve performance.
    Type: Grant
    Filed: June 16, 2014
    Date of Patent: January 8, 2019
    Assignee: Tidal Systems, Inc.
    Inventors: Yingquan Wu, Armin Banaei
  • Patent number: 9959077
    Abstract: Data words written to an SSD device, or other device or output data stream, may be randomized using a seed based on physical addressing information, such as a page address, column address, and a cycle count for the page address. This enables the storage and de-randomization of variable length data blocks stored at random locations within a page without requiring storage of additional data, which would make recovery impossible if lost in prior approaches. The page address, column address, and block address are physical attributes of the storage location for the data word and do not need to be saved and therefore will not be lost making recovery of the seed always possible. The cycle count can be saved and, if lost, limited trials with range of cycle counts can be exercised to de-randomize the data word and decoding may be used to determine whether descrambling was successful.
    Type: Grant
    Filed: November 18, 2014
    Date of Patent: May 1, 2018
    Assignee: Tidal Systems, Inc.
    Inventors: Meng Kun Lee, Priyanka Thakore
  • Patent number: 9934234
    Abstract: An input file is processed according to hash algorithm that references sets of literals to preceding sets of literals to facilitate copy-offset command generation. Preceding instances are identified by generating a hash of the literal set and looking up a corresponding entry in a hash table. The hash table may be accessed by placing look-up requests in a FIFO buffer. When the FIFO buffer is full, generation of the hash chain is suspended until it is no longer full. When repeated literals are found, generation of the hash chain is likewise suspended. The hash chain is used to generate a command file, such as according to the LZ algorithm. Runs of consecutive literals are replaced by a run-length command. The command file may then be encoded using Huffman encoding.
    Type: Grant
    Filed: August 12, 2015
    Date of Patent: April 3, 2018
    Assignee: Tidal Systems, Inc.
    Inventors: Alexander Hubris, Yingquan Wu
  • Patent number: 9927998
    Abstract: Systems and method for reading compressed data from non-volatile storage such as an SSD device are disclosed. A logical section, e.g. page, of data includes a plurality of data blocks that are compressed such that the lengths thereof are different. A header section of the page stores headers for the data blocks and storing a length for each data block. The header section may be a codeword encoding the headers according to an error correction scheme. To read out a data block a hardware decoder requests reading of the page and transfers the header section into a hardware decoder that decodes the headers to obtain an offset for a desired data block. Without instructing reading of the page, the offset is used by the hardware decoder to request transfer of the desired data block that is then decoded and returned to a requesting device.
    Type: Grant
    Filed: February 5, 2014
    Date of Patent: March 27, 2018
    Assignee: Tidal Systems, Inc.
    Inventors: Meng Kun Lee, Priyanka Thakore
  • Patent number: 9882583
    Abstract: A compression algorithm based on Huffman coding is disclosed that is adapted to be readily implemented using VLSI design. A data file may be processed to replace duplicate data with a copy commands including an offset and length, such as according to the LV algorithm. A Huffman code may then be generated for parts of the file. The Huffman code may be generated according to a novel method that generates Huffman code lengths for literals in a data file without first sorting the literal statistics. The Huffman code lengths may be constrained to be no longer than a maximum length and the Huffman code may be modified to provide an acceptable overflow probability and be in canonical order. Literals, offsets, and lengths may be separately encoded. The different values for these data sets may be assigned to a limited number of bins for purpose of generating usage statistics used for generating Huffman codes.
    Type: Grant
    Filed: April 15, 2016
    Date of Patent: January 30, 2018
    Assignee: Tidal Systems, Inc.
    Inventors: Yingquan Wu, Alexander Hubris
  • Patent number: 9767051
    Abstract: A buffer manager is generated by executing a script with respect to a buffer architecture template and a configuration file specifying parameters for the buffer such as, for example, number of memory banks, width of memory banks, depth of memory banks, and client bridge FIFO depth. The script converts the buffer architecture template into a hardware description language (HDL) description of a buffer manager having the parameters. Client bridges accumulate requests for memory banks in FIFO that is provided to a buffer manager upon the client bridge being granted arbitration. Accesses of memory banks may be performed one at a time in consecutive clock cycles in a pipelined manner. Client bridges and the buffer manager may operate in different clock domains. The clock frequency of the buffer manager may be increased or decreased according to requests from client devices.
    Type: Grant
    Filed: April 6, 2015
    Date of Patent: September 19, 2017
    Assignee: Tidal Systems, Inc.
    Inventors: Michael Ou, Jerry Wang, Meng Kun Lee
  • Patent number: 9755666
    Abstract: A system implements adaptive desaturation for the min-sum decoding of LDPC codes. Specifically, when an-above threshold proportion of messages from check nodes to variable nodes (CN-to-VN messages) are saturated to a maximum fixed-precision value, all CN-to-VN messages are halved. This facilitates the saturation of correct messages and boosts error correction over small trapping sets. The adaptive desaturation approach reduces the error floor by orders of magnitudes with negligible add-on circuits.
    Type: Grant
    Filed: July 24, 2015
    Date of Patent: September 5, 2017
    Assignee: Tidal Systems, Inc.
    Inventor: Yingquan Wu
  • Patent number: 9584158
    Abstract: A quasi-cyclic LDPC encoding apparatus is disclosed wherein a matrix H of the form [0 T; D E] is used, where T is a triangular matrix and D and E are arbitrary matrices selected to improve encoding performance. T and E vary with the size of an encoded data word whereas D is maintained constant. T and E are sparse such that encoding operations performed on them are computationally simple. Likewise D and its inverse are constant and pre-computed further reducing computation. T, E, and D and the inverse of D may be constrained to be quasi-cyclic, which reduces storage required to represent them and enables the performance of encoding operations using shift registers.
    Type: Grant
    Filed: July 24, 2015
    Date of Patent: February 28, 2017
    Assignee: Tidal Systems, Inc.
    Inventor: Yingquan Wu
  • Patent number: 9577665
    Abstract: A compression algorithm replaces duplicative strings with a copy pair indicating a location and length of a preceding identical string that is within a window from the duplicative string. Rather than a replacing a longest matching string within a window from a given point with a copy pair, the longest matching string may be used provide it is at least two bytes larger than the next longest matching string or is at a distance that is less than some multiple of a distance to the next longest matching string. In another aspect, the length of the window in which a matching string may be found is dependent on a length of the matching string. In yet another aspect, rather than labeling each literal and copy pair to indicate what it is, strings of non-duplicative literals are represented by a label and a length of the string.
    Type: Grant
    Filed: February 12, 2016
    Date of Patent: February 21, 2017
    Assignee: Tidal Systems, Inc.
    Inventor: Yingquan Wu
  • Patent number: 9547550
    Abstract: Systems and method provide for the writing of a data block and corresponding metadata block to a storage location. Metadata and data block are encoded separately. The metadata and data block may be moved to a different location due to garbage collection, defragmentation, or some other prompt. The metadata is decoded, modified, re-encoded and written to the different location whereas the data block can be written to the new location without re-encoding.
    Type: Grant
    Filed: July 7, 2015
    Date of Patent: January 17, 2017
    Assignee: Tidal Systems, Inc.
    Inventors: Priyanka Thakore, Meng Kun Lee
  • Patent number: 9515680
    Abstract: A method is disclosed for performing LDPC decoding, specifically layered min-sum decoding using a Tanner graph including check nodes (CN) and variable nodes (VN). Messages passed between nodes are quantized in a non-uniform manner. Values below a threshold are uniformly quantized whereas values above the threshold are non-uniformly quantized. A corresponding inverse-quantization is also defined.
    Type: Grant
    Filed: October 10, 2014
    Date of Patent: December 6, 2016
    Assignee: Tidal Systems, Inc.
    Inventors: Yingquan Wu, Xiaojie Zhang
  • Patent number: 9337862
    Abstract: A compression algorithm based on Huffman coding is disclosed that is adapted to be readily implemented using VLSI design. A data file may be processed to replace duplicate data with a copy commands including an offset and length, such as according to the LV algorithm. A Huffman code may then be generated for parts of the file. The Huffman code may be generated according to a novel method that generates Huffman code lengths for literals in a data file without first sorting the literal statistics. The Huffman code lengths may be constrained to be no longer than a maximum length and the Huffman code may be modified to provide an acceptable overflow probability and be in canonical order. Literals, offsets, and lengths may be separately encoded. The different values for these data sets may be assigned to a limited number of bins for purpose of generating usage statistics used for generating Huffman codes.
    Type: Grant
    Filed: June 9, 2014
    Date of Patent: May 10, 2016
    Assignee: Tidal Systems, Inc.
    Inventors: Yingquan Wu, Alexander Hubris