Patents Assigned to Denali Software, Inc.
  • Publication number: 20100287401
    Abstract: An invention is provided for transferring data between asynchronous clock domains. The asynchronous clock domains include a source clock domain operating with a source clock signal and a receiving clock domain operating with a receiving clock signal. The invention includes determining a phase shift relationship between the source clock signal and a signal. When the phase shift relationship is below a predetermined threshold the data is transferred between the source clock domain and the receiving clock domain using a first plurality of stage operations. When the phase shift relationship is above the predetermined threshold, the data is transferred between the source clock domain and the receiving clock domain using a second plurality of stage operations that delay data transfer an additional half period of the source clock signal.
    Type: Application
    Filed: May 5, 2009
    Publication date: November 11, 2010
    Applicant: DENALI SOFTWARE, INC.
    Inventors: Anne Espinoza, John MacLaren
  • Publication number: 20100251042
    Abstract: An invention is provided for providing a double data rate memory physical interface having self checking loopback logic is disclosed. Disposed on the chip is a first linear feedback shift register, which is capable of generating a set of test data values that comprise at least two data bits. Also disposed on the chip is a second linear feedback shift register. The second linear feedback shift register is capable of generating a set of expected data values that match the test data values. Further, an internal loopback error check element is disposed on the chip. The internal loopback error check element is used to compare the set of expected data values with the set of test data values.
    Type: Application
    Filed: March 30, 2009
    Publication date: September 30, 2010
    Applicant: DENALI SOFTWARE, INC.
    Inventor: John W. Selking
  • Publication number: 20100246290
    Abstract: An invention is provided for gate training in memory interfaces. The invention includes adding a coarse delay to a gate assert time, where the coarse delay is a predefined period of time and the gate assert time is a time when a data strobe gate signal is asserted. Next, the a data strobe signal is repeatedly sampled at the gate assert time until a rising edge of the data strobe signal is found, wherein a fine delay is added to the gate assert time between sampling of the data strobe signal. The fine delay is a period of time shorter than the coarse delay. Once the rising edge is found, the coarse delay is removed from the gate assert time, thus setting the gate assert time centrally within the preamble of the data strobe signal.
    Type: Application
    Filed: March 30, 2009
    Publication date: September 30, 2010
    Applicant: DENALI SOFTWARE, INC.
    Inventors: John MacLaren, Anne Espinoza
  • Publication number: 20100246291
    Abstract: An invention is provided for determining write leveling delay for a plurality of memory devices having command signals lines connected in series to each memory device is disclosed. The invention includes determining a device delay value for each memory device. Each device delay value indicates a period of time to delay a DQS signal when accessing a related memory device. Once these delay values are determined, the delay values are examined sequentially and a prior device delay value is set to a lower value, for example zero, when a subsequent device delay value of a memory device connected subsequently along the command signal lines is greater than the prior device delay value.
    Type: Application
    Filed: March 30, 2009
    Publication date: September 30, 2010
    Applicant: DENALI SOFTWARE, INC.
    Inventors: Anne Espinoza, John MacLaren
  • Publication number: 20100095046
    Abstract: An invention is provided for improving performance in block based non-volatile memory when performing random small write operations. When requests for small page updates are received for a memory page currently storing data, the updated page data is written to a reserve memory page. The reserve memory page can be in the same memory block as the target memory page, or in an associated reserve memory block. In addition, the associated logical page address is temporarily remapped to the reserve page. Later, when time permits, the page data for the block can be reorganized into continuous pages in a new block.
    Type: Application
    Filed: October 9, 2008
    Publication date: April 15, 2010
    Applicant: Denali Software, Inc.
    Inventors: Robert Alan Reid, Steven L. Shrader
  • Publication number: 20100058119
    Abstract: An invention is provided for managing non-volatile memory having a plurality of memory blocks and a plurality of error values associated with the memory blocks. The method includes recording an error value indicating a number of errors occurring in a memory block during an operation accessing the memory block. The error values can then be aggregated to calculate an overall health of the memory, or used individually, for example, by selecting a memory block for a memory operation based on the associated error value. In general, the error value is updated when the most recent number of errors occurring in the memory block during an operation accessing the memory block is greater than a current recorded value.
    Type: Application
    Filed: August 29, 2008
    Publication date: March 4, 2010
    Applicant: DENALI SOFTWARE, INC.
    Inventor: Robert Alan Reid
  • Publication number: 20100011247
    Abstract: An invention is provided for parallel ECC error location in a memory. The invention includes partitioning a set of field elements into w partitions. Then, for each of the w partitions of field elements, i) providing a set of r different field elements of the partition to r parallel search element. Next, in operation ii), each parallel search element computes a sum that is based on a set of coefficients of an error locator polynomial and the field element provided to the particular parallel search element. The set of field elements is advanced r field elements in GF(2m), and operations i) through iii) are repeated using the next r different field elements of the partition.
    Type: Application
    Filed: July 9, 2008
    Publication date: January 14, 2010
    Applicant: Denali Software, Inc.
    Inventors: Steven Shrader, Anujan Varma, Mohit Mittal
  • Publication number: 20090319864
    Abstract: An invention is provided for dynamically configurable error correction. The invention includes receiving a check code configuration signal, which indicates a particular level of error detection. A check code generator is configured to generate check codes based on the particular level of error detection indicated by the check code configuration signal. In addition, an error locator configuration signal is received that indicates a particular level of error addressing, and an error locator is configured to produce addresses of errors in a set of data based on the particular level of error addressing indicated by the error locator configuration signal.
    Type: Application
    Filed: June 20, 2008
    Publication date: December 24, 2009
    Applicant: DENALI SOFTWARE, INC.
    Inventor: Steven Shrader
  • Publication number: 20090222627
    Abstract: An invention is provided for performing flush cache in a non-volatile memory. The invention includes maintaining a plurality of free memory blocks within a non-volatile memory. When a flush cache command is issued, a flush cache map is examined to obtain a memory address of a memory block in the plurality of free memory blocks within the non-volatile memory. The flush cache map includes a plurality of entries, each entry indicating a memory block of the plurality of free memory blocks. Then, a cache block is written to a memory block at the obtained memory address within the non-volatile memory. In this manner, when a flush cache command is received, the flush cache map allows cache blocks to be written to free memory blocks in the non-volatile memory without requiring a non-volatile memory search for free blocks or requiring erasing of memory blocks storing old data.
    Type: Application
    Filed: February 29, 2008
    Publication date: September 3, 2009
    Applicant: DENALI SOFTWARE, INC.
    Inventor: Robert Alan Reid
  • Patent number: 7574573
    Abstract: An invention is provided for a reactive placement controller for interfacing with a banked memory storage. The reactive placement controller includes a read/write module, which is coupled to a command control module for a banked memory device. A command queue is included that comprises a plurality of queue entries coupled in series, with a top queue entry coupled to the read/write module. Each queue entry is capable of storing a memory command. Each queue entry includes its own queue control logic that functions to control storage of new memory commands into the command queue to reduce latency of commands in the command queue.
    Type: Grant
    Filed: October 9, 2007
    Date of Patent: August 11, 2009
    Assignee: Denali Software, Inc.
    Inventors: Steven Shrader, Michael McKeon
  • Publication number: 20090193221
    Abstract: An invention is provided for memory management in a non-volatile memory which includes a plurality of memory blocks. The invention includes loading a block table from a memory block of the non-volatile memory into system memory, where the block table includes, inter alia, a plurality of entries mapping a physical block address of the non-volatile memory to a logical block address of the non-volatile memory. The block table is updated as data is accessed in the non-volatile memory, and the updated block table is stored into a memory block of the non-volatile memory. Generally, the block table is stored periodically and/or at system shutdown.
    Type: Application
    Filed: January 29, 2008
    Publication date: July 30, 2009
    Applicant: DENALI SOFTWARE, INC.
    Inventor: Robert Alan Reid
  • Publication number: 20090193058
    Abstract: An invention is provided for affording CopyBack data integrity in a non-volatile memory system. When the potential for moving data with a CopyBack command occurs, a counter corresponding to the data is examined. When the counter is below a predetermined limit, the counter is incremented and data from the block of data is moved using a CopyBack command. However, when the counter reaches the predetermined limit, the counter is reset and data from the block of data is moved to system memory and examined for errors. Once any errors are corrected, the data is transferred back to the non-volatile memory.
    Type: Application
    Filed: January 29, 2008
    Publication date: July 30, 2009
    Applicant: DENALI SOFTWARE, INC.
    Inventor: Robert Alan Reid
  • Publication number: 20090193174
    Abstract: An invention is provided for read disturbance management in a non-volatile memory. The invention includes storing a read count data for a memory location in non-volatile memory. The read count data indicating an amount of read operations accessing the memory location since data was last written to the memory location. Then, when data is read from the memory location while the value of the read count data is less than a predetermined threshold value, the value of the read count data is incremented. However, when the value of the read count data equals the predetermined threshold value, the data is moved to a new memory location, thereby avoiding read disturbance effects.
    Type: Application
    Filed: January 29, 2008
    Publication date: July 30, 2009
    Applicant: DENALI SOFTWARE, INC.
    Inventor: Robert Alan Reid
  • Publication number: 20090122949
    Abstract: An invention is provided for wear leveling in a non-volatile memory system utilizing relative wear counters to indicate relative levels of wear for each memory block in a non-volatile memory system. Whenever a memory block is erased, the associated relative wear counter is incremented. Then, when any relative wear counter reaches a predetermined limit, the value of the lowest relative wear counter is subtracted from each relative wear counter. Thus, each relative wear counter indicates a relative wear level of the associated memory block relative to other memory blocks. In this manner, the relative wear levels are maintained while reducing the amount of memory needed to for each relative wear counter.
    Type: Application
    Filed: November 12, 2007
    Publication date: May 14, 2009
    Applicant: DENALI SOFTWARE, INC.
    Inventors: Robert Alan Reid, Robert Pierce, Narayanan Vinay Krishnan, Amit Bhardwaj
  • Patent number: 7299324
    Abstract: An invention is provided for a reactive placement controller for interfacing with a banked memory storage. The reactive placement controller includes a read/write module, which is coupled to a command control module for a banked memory device. A command queue is included that comprises a plurality of queue entries coupled in series, with a top queue entry coupled to the read/write module. Each queue entry is capable of storing a memory command. Each queue entry includes its own queue control logic that functions to control storage of new memory commands into the command queue to reduce latency of commands in the command queue.
    Type: Grant
    Filed: November 5, 2003
    Date of Patent: November 20, 2007
    Assignee: Denali Software, Inc.
    Inventors: Steven Shrader, Michael McKeon
  • Patent number: 7100002
    Abstract: A port independent data transaction interface for multi-port devices is provided. The port independent data transaction interface includes a command channel that receives command data and a source id. The source id indicates a source device that transmitted the command data. In addition, a data-in channel is included that receives write data and a write source id. Similar to the source id, the write source id indicates a source device that transmitted the write data. The port independent data transaction interface further includes a data-out channel that provides read data and a read id. The read id indicates a source device that transmitted a read command corresponding to the read data. The port independent data transaction interface utilizes the source id to associate command data with corresponding write data and read data.
    Type: Grant
    Filed: September 16, 2003
    Date of Patent: August 29, 2006
    Assignee: Denali Software, Inc.
    Inventors: Steven Shrader, Samitinjoy Pal, Anne Espinoza, Michael McKeon
  • Patent number: 7062625
    Abstract: An interface for sending write data, write control signals and write data between a memory controller and a double data rate (DDR) memory with the appropriate timing relationships so that the write data can be reliably written in the DDR memory. Also, an interface for reliably capturing read data received from the DDR memory during a read operation.
    Type: Grant
    Filed: July 31, 2002
    Date of Patent: June 13, 2006
    Assignee: Denali Software, Inc.
    Inventors: Steven Shrader, Art Gmurowski, Samitinjoy Pal, Michael McKeon
  • Patent number: 7054968
    Abstract: A memory controller is provided. The memory controller includes an initiator block configured to arbitrate requests corresponding to data from multiple ports. The initiator block includes an arbitration module configured to consider a latency factor and a bandwidth factor associated with the data from a port to be selected for processing. A state machine is in communication with the arbitration module. The state machine is configured to generate a signal to the arbitration module that is configured to select the data associated with the port based upon the latency factor and the bandwidth factor. Task status and completion circuitry configured to calculate the bandwidth factor based upon previous data selected from the port is included in the initiator block. The task status and completion circuitry is further configured to transmit the calculated bandwidth factor to the state machine. A method for arbitrating across multiple ports is also provided.
    Type: Grant
    Filed: September 16, 2003
    Date of Patent: May 30, 2006
    Assignee: Denali Software, Inc.
    Inventors: Steven Shrader, Wendy Bishop, Ashwin Matta
  • Publication number: 20050097265
    Abstract: An invention is provided for a reactive placement controller for interfacing with a banked memory storage. The reactive placement controller includes a read/write module, which is coupled to a command control module for a banked memory device. A command queue is included that comprises a plurality of queue entries coupled in series, with a top queue entry coupled to the read/write module. Each queue entry is capable of storing a memory command. Each queue entry includes its own queue control logic that functions to control storage of new memory commands into the command queue to reduce latency of commands in the command queue.
    Type: Application
    Filed: November 5, 2003
    Publication date: May 5, 2005
    Applicant: Denali Software, Inc.
    Inventors: Steven Shrader, Michael McKeon
  • Publication number: 20050060501
    Abstract: A port independent data transaction interface for multi-port devices is provided. The port independent data transaction interface includes a command channel that receives command data and a source id. The source id indicates a source device that transmitted the command data. In addition, a data-in channel is included that receives write data and a write source id. Similar to the source id, the write source id indicates a source device that transmitted the write data. The port independent data transaction interface further includes a data-out channel that provides read data and a read id. The read id indicates a source device that transmitted a read command corresponding to the read data. The port independent data transaction interface utilizes the source id to associate command data with corresponding write data and read data.
    Type: Application
    Filed: September 16, 2003
    Publication date: March 17, 2005
    Applicant: Denali Software, Inc.
    Inventors: Steven Shrader, Samitinjoy Pal, Anne Espinoza, Michael McKeon