DENALI SOFTWARE, INC. Patent applications |
Patent application number | Title | Published |
20100287401 | METHOD AND APPARATUS FOR TRANSFERRING DATA BETWEEN ASYNCHRONOUS CLOCK DOMAINS - 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. | 11-11-2010 |
20100251042 | DOUBLE DATA RATE MEMORY PHYSICAL INTERFACE HIGH SPEED TESTING USING SELF CHECKING LOOPBACK - 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. | 09-30-2010 |
20100246291 | METHOD AND APPARATUS FOR DETERMINING WRITE LEVELING DELAY FOR MEMORY INTERFACES - 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. | 09-30-2010 |
20100246290 | METHOD AND APPARATUS FOR GATE TRAINING IN MEMORY INTERFACES - 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. | 09-30-2010 |
20100095046 | METHOD AND APPARATUS FOR IMPROVING SMALL WRITE PERFORMANCE IN A NON-VOLATILE MEMORY - 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. | 04-15-2010 |
20100058119 | SYSTEM AND METHOD FOR MANAGING NON-VOLATILE MEMORY BASED ON HEALTH - 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. | 03-04-2010 |
20100011247 | METHOD AND APPARATUS FOR PARALLEL ECC ERROR LOCATION - 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(2 | 01-14-2010 |
20090319864 | METHOD AND APPARATUS FOR DYNAMICALLY CONFIGURABLE MULTI LEVEL ERROR CORRECTION - 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. | 12-24-2009 |
20090222627 | METHOD AND APPARATUS FOR HIGH SPEED CACHE FLUSHING IN A NON-VOLATILE MEMORY - 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. | 09-03-2009 |
20090193221 | METHOD AND APPARATUS FOR MEMORY MANAGEMENT IN A NON-VOLATILE MEMORY SYSTEM USING A BLOCK TABLE - 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. | 07-30-2009 |
20090193174 | READ DISTURBANCE MANAGEMENT IN A NON-VOLATILE MEMORY SYSTEM - 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. | 07-30-2009 |
20090193058 | SYSTEM AND METHOD FOR PROVIDING COPYBACK DATA INTEGRITY IN A NON-VOLATILE MEMORY SYSTEM - 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. | 07-30-2009 |
20090122949 | SYSTEM AND METHOD FOR WEAR LEVELING UTILIZING A RELATIVE WEAR COUNTER - 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. | 05-14-2009 |