Method of compressing integrated circuit simulation data

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C707S793000

Reexamination Certificate

active

06301578

ABSTRACT:

TECHNICAL FIELD
The invention relates generally to managing the data generated from a computer simulation of an integrated circuit (IC) and more particularly to a technique for compressing the data that is generated from a computer simulation of an IC.
BACKGROUND ART
Referring to
FIG. 1
, a computer simulation
10
of an IC involves measuring inputs and outputs at various signal points within the IC to simulate operation of the IC. In the example of
FIG. 1
, there are four input points
22
,
24
,
26
and
28
and three output points
32
,
34
and
36
schematically representing a specific portion of an IC. During the simulation, data is read from the designated points and the data is recorded in relationship to time. Data recorded in relation to time is referred to as time series data. Referring to
FIG. 2
, in computer simulations, time series data
40
represents electrical waveforms and typically consists of a variable name
42
, a time value
44
, and a variable value
46
. The variable name corresponds to the point within the simulation that is being monitored, the time value represents the time that the sample was taken from the named variable, and the variable value represents the result of the monitoring at the specific named variable at the specific time.
FIG. 3
is a depiction of an example block of time series data
50
generated from the simulation
10
of
FIG. 1
taken over nine time periods, The four input points or input variables
22
-
28
and the three output points or output variables
32
-
36
are identified at the top row
52
of the matrix, and the time values t0 through t8 are identified at the leftmost column
54
of the matrix. The variable values are identified at the intersection of each row and column. In some cases the variable value is representative of a transition from one state to another, with the transition being represented by the change from “0” to “1” or “1” to “0”.
In an actual computer simulation, there may be thousands, if not millions, of variables being measured at rates that are small fractions of a second. The net result is that the amount of data generated by computer simulations is extremely large, for example, in excess of ten thousand megabytes per simulation.
Storing such large amounts of simulation data in their entirety is inefficient and often impractical. In order to more efficiently store and manage such large quantities of data, techniques have been developed to compress simulation data into smaller quantities. One prior art technique for compressing simulation data is disclosed in U.S. Pat. No. 5,345,450, entitled “Method of Compressing and Decompressing Simulation Data for Generating a Test Program for Testing a Logic Device,” issued to Saw et al. (hereinafter Saw). Saw discloses a technique that reduces the number of input values in a sequence of input values when the sequence includes a series of redundant input values that are expected to generate the same output values. For example, referring to
FIG. 3
, Saw identifies the redundant input values that are represented at times t4 through t7 and eliminates all but the first input value at t4. Saw then encodes a group of control bits associated with the remaining input value, with information indicating the number of redundant input values being eliminated. The smaller set of input values produces a smaller set of output values and a smaller overall data set for the simulation results. The results can then be expanded to recover the eliminated data.
Although Saw works well for its intended purpose, as simulation complexity continues to grow, there is still a need for improved compression techniques that increase the amount of simulation data that can be stored in a limited storage space.
SUMMARY OF THE INVENTION
A method of compressing a block of time series data involves sorting the data by variable name, separating the series of time values from the series of variable values, and performing data pattern extraction and/or compression independently on the series of time values and on the series of variable values. The reduced volume of data is then written to memory, preferably in a database format.
In a preferred embodiment, the time series of data is generated from a computer simulation of an integrated circuit (IC). The computer simulation generates large volumes of time series data in a sequential manner. In order to efficiently compress the time series data, individual blocks of time series data representing a particular sequential time range are sorted by variable name, with each variable name having associated time values and variable values. The time values and variable values are separated into distinct data sets, and data pattern extraction, which is one type of data compression, is performed separately on the two distinct data sets. The compressed information related to each individual variable is then stored in an individual variable block. The time values and the variable values are stored within the variable blocks in a time sequential manner.
Each individual Variable Block includes a Variable Block Header that identifies the variable name, a Times Block, and a Values Block. The Times Block contains a Times Block Header that identifies the compression algorithm used on the times values and a Compressed Times Block that contains the compressed times data. The Values Block contains a Values Block Header that identifies the compression algorithm used on the variable values and a Compressed Values Block that contains the compressed values data. The Variable Blocks are stored in a memory buffer until a designated quantity of data is accumulated.
Upon reaching the designated quantity, the variable blocks are again compressed into Time Slice Blocks (TSBs). A single TSB contains all of the Variable Blocks generated in a particular range of time. Each TSB is comprised of a Transitions component, a Transitions Index, a Compression Information component, and a Header. The Transitions component of the TSB contains the Variable Blocks for a set of variables within a particular time range. The Transitions Index contains an index that identifies the start and end locations of each Variable Block stored within the Transitions component. The Compression Information component of the TSB contains translation lookup tables for decoding the compression techniques or algorithms used to compress the Variable Blocks. The Header component of a TSB contains information including the time range that is represented in the TSB and the location of the next TSB. Once TSBs are generated, the TSBs are written to the database in a time sequential manner and are stored in contiguous locations within the database.
Although the preferred embodiment describes compression processes when filling the RAM buffer and when writing to the database, it is not necessary that compression be performed at each point. Because the time series data is sorted into time values and variable values, compression can optionally be performed only once at either point in the operation.
In an alternative embodiment, the process of writing data to the database can be controlled such that a maximum database file size is not exceeded. When the maximum file size is reached, the newest data being written to the database is written over the oldest data that is resident in the database. The old data is overwritten because the newest data is considered more valuable than the old data.
An advantage of the invention is that breaking down the time series data into time values and variable values provides a greater opportunity to exploit inherent recurring patterns in the time value data and the variable value data. Storing time series data in Variable Blocks allows for quick access to the data related to a single variable for a particular time range because all of the data for a given variable for some range of time is in a single variable block within each Time Slice Block. Storing time series data in Time Slice Blocks allows for quicker data access to a group of variables because all of the variable values for the grou

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method of compressing integrated circuit simulation data does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method of compressing integrated circuit simulation data, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method of compressing integrated circuit simulation data will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2595291

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.