P
US8005992B1ActiveUtilityPatentIndex 86

Scalable storage and retrieval of multiple asynchronous signals

Assignee: CADENCE DESIGN SYSTEMS INCPriority: Oct 13, 2006Filed: Oct 13, 2006Granted: Aug 23, 2011
Est. expiryOct 13, 2026(~0.3 yrs left)· nominal 20-yr term from priority
Inventors:PICHUMANI RAMANIBUNTING CATHERINE
G06F 2218/00G06F 18/40
86
PatentIndex Score
38
Cited by
15
References
27
Claims

Abstract

A method of processing signals includes: sampling multiple signals, where each sampled signal includes multiple signal values and corresponding time values; partitioning the sampled signals into multiple partitions, where each partition includes signal values and corresponding time values for signals having identical time values within a partition time interval and where at least one additional partition is formed when two sampled signals diverge from identical time values; and saving signal values and time values from partitions in buffers corresponding to the partitions, where the buffers represent allocations of memory for saving partition values.

Claims

exact text as granted — not AI-modified
1. A method of processing signals, comprising:
 sampling a plurality of signals, each sampled signal including a plurality of signal values and corresponding time values; 
 partitioning the sampled signals into a plurality of partitions, each partition including signal values and corresponding time values for signals having identical time values within a partition time interval, wherein at least one additional partition is formed when two sampled signals diverge from identical time values; 
 saving signal values and time values from partitions in buffers corresponding to the partitions in accordance with a hierarchical tree data structure, wherein the buffers represent allocations of memory for saving partition values and partitioning the sampled signals includes splitting at least one buffer into multiple buffers when corresponding signals diverge from identical time values so that the multiple buffers correspond to partitions having identical time values; 
 storing at least some buffer values in blocks when sizes of the buffers reach corresponding buffer-limit sizes; and 
 flushing the stored buffer values from the buffers to free-up corresponding allocations of memory. 
 
     
     
       2. The method of  claim 1 , further comprising:
 adjusting one or more buffer-limit sizes to control a combined allocation of memory for the buffers. 
 
     
     
       3. The method of  claim 1 , further comprising:
 allocating memory for one or more additional buffers in response to sampling one or more additional signals. 
 
     
     
       4. The method of  claim 1 , further comprising:
 determining buffer-characterizing values for characterizing the signal values in the buffers. 
 
     
     
       5. The method of  claim 4 , wherein the buffer-characterizing values include minimum signal values and maximum signal values for sampled signals in a corresponding partition. 
     
     
       6. The method of  claim 1 , further comprising:
 arranging the buffers sequentially into a first level of nodes; and 
 determining an arrangement of second level of nodes so that each second level-node corresponds to a sequence of the first level nodes. 
 
     
     
       7. The method of  claim 6 , further comprising:
 determining an arrangement of third level of nodes so that each third level-node corresponds to a sequence of the second level nodes. 
 
     
     
       8. The method of  claim 6 , further comprising:
 determining buffer-characterizing values for characterizing the signal values in the buffers; and 
 determining node-characterizing values for second-level nodes from the buffer-characterizing values of buffers corresponding to the second-level nodes. 
 
     
     
       9. The method of  claim 1 , further comprising:
 arranging the buffers into a plurality of levels including a first level and a plurality of higher-order levels, wherein 
 the first level includes a sequential arrangement of nodes corresponding to the buffers, and 
 higher-order levels correspond to sequential arrangements of nodes on previous-order levels. 
 
     
     
       10. The method of  claim 9 , further comprising:
 determining buffer-characterizing values for characterizing the signal values in the buffers; and 
 determining node-characterizing values for nodes at higher-order levels based on node-characterizing values at previous-order levels, wherein node-characterizing values for the first level are the buffer-characterizing values. 
 
     
     
       11. A non-transitory computer-readable medium that stores a computer program for processing signals, wherein the computer program includes instructions for:
 sampling a plurality of signals, each sampled signal including a plurality of signal values and corresponding time values; 
 partitioning the sampled signals into a plurality of partitions, each partition including signal values and corresponding time values for signals having identical time values within a partition time interval, wherein at least one additional partition is formed when two sampled signals diverge from identical time values; 
 saving signal values and time values from partitions in buffers corresponding to the partitions in accordance with a hierarchical tree data structure, wherein the buffers represent allocations of memory for saving partition values and partitioning the sampled signals includes splitting at least one buffer into multiple buffers when corresponding signals diverge from identical time values so that the multiple buffers correspond to partitions having identical time values; 
 storing at least some buffer values in blocks when sizes of the buffers reach corresponding buffer-limit sizes; and 
 flushing the stored buffer values from the buffers to free-up corresponding allocations of memory. 
 
     
     
       12. The computer-readable medium of  claim 11 , wherein the computer program further includes instructions for:
 adjusting one or more buffer-limit sizes to control a combined allocation of memory for the buffers. 
 
     
     
       13. The computer-readable medium of  claim 11 , wherein the computer program further includes instructions for:
 allocating memory for one or more additional buffers in response to sampling one or more additional signals. 
 
     
     
       14. The computer-readable medium of  claim 11 , wherein the computer program further includes instructions for:
 determining buffer-characterizing values for characterizing the signal values in the buffers. 
 
     
     
       15. The computer-readable medium of  claim 14 , wherein the buffer-characterizing values include minimum signal values and maximum signal values for sampled signals in a corresponding partition. 
     
     
       16. The computer-readable medium of  claim 11 , wherein the computer program further includes instructions for:
 arranging the buffers sequentially into a first level of nodes; and 
 determining an arrangement of second level of nodes so that each second level-node corresponds to a sequence of the first level nodes. 
 
     
     
       17. The computer-readable medium of  claim 16 , wherein the computer program further includes instructions for:
 determining an arrangement of third level of nodes so that each third level-node corresponds to a sequence of the second level nodes. 
 
     
     
       18. The computer-readable medium of  claim 16 , wherein the computer program further includes instructions for:
 determining buffer-characterizing values for characterizing the signal values in the buffers; and 
 determining node-characterizing values for second-level nodes from the buffer-characterizing values of buffers corresponding to the second-level nodes. 
 
     
     
       19. The computer-readable medium of  claim 11 , wherein the computer program further includes instructions for:
 arranging the buffers into a plurality of levels including a first level and a plurality of higher-order levels, wherein 
 the first level includes a sequential arrangement of nodes corresponding to the buffers, and 
 higher-order levels correspond to sequential arrangements of nodes on previous-order levels. 
 
     
     
       20. The computer-readable medium of  claim 19 , wherein the computer program further includes instructions for:
 determining buffer-characterizing values for characterizing the signal values in the buffers; and 
 determining node-characterizing values for nodes at higher-order levels based on node-characterizing values at previous-order levels, wherein node-characterizing values for the first level are the buffer-characterizing values. 
 
     
     
       21. An apparatus for processing signals, the apparatus comprising a computer for executing computer instructions, wherein the computer includes computer instructions for:
 sampling a plurality of signals, each sampled signal including a plurality of signal values and corresponding time values; 
 partitioning the sampled signals into a plurality of partitions, each partition including signal values and corresponding time values for signals having identical time values within a partition time interval, wherein at least one additional partition is formed when two sampled signals diverge from identical time values; 
 saving signal values and time values from partitions in buffers corresponding to the partitions in accordance with a hierarchical tree data structure, wherein the buffers represent allocations of memory for saving partition values and partitioning the sampled signals includes splitting at least one buffer into multiple buffers when corresponding signals diverge from identical time values so that the multiple buffers correspond to partitions having identical time values; 
 storing at least some buffer values in blocks when sizes of the buffers reach corresponding buffer-limit sizes; and 
 flushing the stored buffer values from the buffers to free-up corresponding allocations of memory. 
 
     
     
       22. The apparatus of  claim 21 , wherein the computer includes a processor with memory for executing at least some of the computer instructions. 
     
     
       23. The apparatus of  claim 21 , wherein the computer includes circuitry for executing at least some of the computer instructions. 
     
     
       24. The apparatus of  claim 21 , wherein the computer further includes computer instructions for:
 determining buffer-characterizing values for characterizing the signal values in the buffers. 
 
     
     
       25. The apparatus of  claim 24 , wherein the buffer-characterizing values include minimum signal values and maximum signal values for sampled signals in a corresponding partition. 
     
     
       26. The apparatus of  claim 21 , wherein the computer further includes computer instructions for:
 arranging the buffers into a plurality of levels including a first level and a plurality of higher-order levels, wherein 
 the first level includes a sequential arrangement of nodes corresponding to the buffers, and 
 higher-order levels correspond to sequential arrangements of nodes on previous-order levels. 
 
     
     
       27. The apparatus of  claim 26 , wherein the computer further includes computer instructions for:
 determining buffer-characterizing values for characterizing the signal values in the buffers; and 
 determining node-characterizing values for nodes at higher-order levels based on node-characterizing values at previous-order levels, wherein node-characterizing values for the first level are the buffer-characterizing values.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.