Documente Academic
Documente Profesional
Documente Cultură
Waveform Compression
EI C EI C
Computer Engineering Institute
contents
transition cache summary value compression
q q
s s
Golomb code
memory management
EI C EI C
Computer Engineering Institute
system structure
VCD-File transition block separator signal id compression encoding LZ compression compressed VCD-File value compression encoding
EI C EI C
Computer Engineering Institute
system structure
VCD-File transition block separator signal id compression encoding LZ compression compressed VCD-File value compression encoding
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5
1. sort signals:
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5
2. cache search:
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5
2. cache search:
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5
1. sort signals:
10
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5
11
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5 cid=6
12
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5 cid=6
13
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5 cid=6
1. sort signals:
14
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5 cid=6
2. cache search:
15
EI C EI C
Computer Engineering Institute
tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5 cid=6
2. cache search:
16
EI C EI C
Computer Engineering Institute
contents
transition cache summary value compression
q q
s s
Golomb code
memory management
17
EI C EI C
Computer Engineering Institute
value compression
Lempel-Ziv compression
18
EI C EI C
Computer Engineering Institute
data encoding
LZ compression
19
EI C EI C
Computer Engineering Institute
data encoding
LZ compression
20
EI C EI C
Computer Engineering Institute
predict value
xor
data encoding
LZ compression
21
EI C EI C
Computer Engineering Institute
predict new signal values for transition blocks calculate difference between predicted and real value
q
difference = XOR
EI C EI C
Computer Engineering Institute
value prediction
goal: predicted and real new value shall be as similar as possible
predict signal value based on previous value function for binary signals function for vector signals
23
EI C EI C
Computer Engineering Institute
24
EI C EI C
Computer Engineering Institute
1 1 1 1 1 111 011
25
EI C EI C
Computer Engineering Institute
1 1 1 1 1 111 011
prediction( 1 ) = 1
26
EI C EI C
Computer Engineering Institute
1 1 1 1 1 111 011
xor
prediction( 1 ) = 1
27
EI C EI C
Computer Engineering Institute
1 1 0 1 1 111 011
28
EI C EI C
Computer Engineering Institute
1 1 0 1 1 111 011
29
EI C EI C
Computer Engineering Institute
1 1 0 1 1 111 011
30
EI C EI C
Computer Engineering Institute
2. xor new value with prediction: new value = 101 xor prediction( 111 ) = 111 010
1 1 0 1 1 111 011
31
EI C EI C
Computer Engineering Institute
1 1 0 1 1 110 011
32
EI C EI C
Computer Engineering Institute
33
EI C EI C
Computer Engineering Institute
34
EI C EI C
Computer Engineering Institute
0 1 X Z
1 0 0 0
0 1 0 0
35
EI C EI C
Computer Engineering Institute
1 1 1 1 1 111 011
36
EI C EI C
Computer Engineering Institute
1 1 1 1 1 111 011
prediction( 1 ) = 0
37
EI C EI C
Computer Engineering Institute
1 1 1 1 1 111 011
xor
0 = difference
prediction( 1 ) = 0
38
EI C EI C
Computer Engineering Institute
1 1 0 1 1 111 011
39
EI C EI C
Computer Engineering Institute
1 1 0 1 1 111 011
40
EI C EI C
Computer Engineering Institute
1 1 0 1 1 111 011
41
EI C EI C
Computer Engineering Institute
3. xor predicted with new value: new value = 110 xor prediction( 111 ) = 110 000 = difference
1 1 0 1 1 111 011
42
EI C EI C
Computer Engineering Institute
1 1 0 1 1 110 011
43
EI C EI C
Computer Engineering Institute
history buffer
history buffer prev. signal value
1 2 3 4 5 6 7
1 1 1 1 1 111 011
s
random like access to history buffer poor data cache performance significant runtime overhead
44
EI C EI C
Computer Engineering Institute
contents
transition cache summary value compression
q q
s s
Golomb code
memory management
45
EI C EI C
Computer Engineering Institute
each transition block cache entry is associated with a corresponding value section
46
EI C EI C
Computer Engineering Institute
47
EI C EI C
Computer Engineering Institute
48
EI C EI C
Computer Engineering Institute
49
EI C EI C
Computer Engineering Institute
50
EI C EI C
Computer Engineering Institute
EI C EI C
Computer Engineering Institute
streamed access to value section good data cache performance low runtime overhead
52
EI C EI C
Computer Engineering Institute
configurations
s s s
hist
q
uses history buffer to store previous values uses transition block cache to store previous values uses history buffer uses improved prediction function uses value section of transition block cache uses history buffer uses history buffer uses improved prediction function uses value section of transition block cache
xor
q
hist_pred
q q
xor_hist
q q
xor_hist_pred (hybrid)
q q q
53
EI C EI C
Computer Engineering Institute
54
EI C EI C
Computer Engineering Institute
55
EI C EI C
Computer Engineering Institute
56
EI C EI C
Computer Engineering Institute
57
EI C EI C
Computer Engineering Institute
58
EI C EI C
Computer Engineering Institute
59
EI C EI C
Computer Engineering Institute
uses transition block cache to store previous values prediction is based on transition blocks streaming read/write access to value section
60
EI C EI C
Computer Engineering Institute
61
EI C EI C
Computer Engineering Institute
62
EI C EI C
Computer Engineering Institute
63
EI C EI C
Computer Engineering Institute
xor
64
EI C EI C
Computer Engineering Institute
xor
65
EI C EI C
Computer Engineering Institute
xor
66
EI C EI C
Computer Engineering Institute
xor
67
EI C EI C
Computer Engineering Institute
xor
68
EI C EI C
Computer Engineering Institute
data cache pollution due to random like access to history table performance hit
s s
uses simple prediction function uses transition block cache to store correction information associated with transition block 2-level prediction
q q
level 1: value prediction based on history table level 2: prediction correction based on transition block info good prediction quality
69
EI C EI C
Computer Engineering Institute
70
EI C EI C
Computer Engineering Institute
71
EI C EI C
Computer Engineering Institute
72
EI C EI C
Computer Engineering Institute
73
EI C EI C
Computer Engineering Institute
74
EI C EI C
Computer Engineering Institute
0 0 0 0 000 = difference
75
EI C EI C
Computer Engineering Institute
76
EI C EI C
Computer Engineering Institute
77
EI C EI C
Computer Engineering Institute
78
EI C EI C
Computer Engineering Institute
data cache pollution due to random like access to history table performance hit
s s
uses improved prediction function uses transition block cache to store correction information associated with transition block 2-level prediction
q q
level 1: value prediction based on history table level 2: prediction correction based on transition block info best prediction quality
79
EI C EI C
Computer Engineering Institute
80
EI C EI C
Computer Engineering Institute
81
EI C EI C
Computer Engineering Institute
82
EI C EI C
Computer Engineering Institute
83
EI C EI C
Computer Engineering Institute
100% 90% 80% 70% 60% 50% 40% rtl sxp2 gate sota
lsh lsh_hist lsh_hist_pred xor_lsh xor_lsh_hist xor_lsh_hist_pred
hit rate
84
EI C EI C
Computer Engineering Institute
15%
sh lsh lsh_hist lsh_hist_pred xor xor_sh xor_lsh xor_lsh_hist xor_lsh_hist_pred
10%
5%
85
EI C EI C
Computer Engineering Institute
prediction summary
history table + improved prediction best suited for gate level models
s
history table + improved prediction + correction based on tr.-block values best suited for RTL models increasing value hit rate does not always improve compression ratio (depending on encoding) maintaining history table is expensive (wrt. runtime) maintaining tr.-block values is cheap (wrt. runtime) 86
s s
EI C EI C
Computer Engineering Institute
contents
transition cache summary value compression
q q
s s
Golomb code
memory management
87
EI C EI C
Computer Engineering Institute
data encoding
difference vector
LZ compression
88
EI C EI C
Computer Engineering Institute
Golomb encoding
q q
more complex implementation compression ratio can be adjusted to match data properties
89
EI C EI C
Computer Engineering Institute
stop bits
90
EI C EI C
Computer Engineering Institute
Golomb encoding
s s s
distance between two 1s is encoded and stored uses parameter m to adjust compression each distance is encoded via a prefix and a postfix:
q
91
EI C EI C
Computer Engineering Institute
encoded = 10 10 0 11 0 10 110 00
5 mod 4 = 2 = prefix
0 11 92
= postfix
EI C EI C
Computer Engineering Institute
20% 10%
compression improvement
0% 2 -10% -20% -30% -40% -50% -60% rtl sxp2 gate sota 3 4 5 6 7 8 9
log2(m)
93
EI C EI C
Computer Engineering Institute
compression improvement
-20%
-30%
-40%
-50%
-60%
-70%
log2(m)
94
EI C EI C
Computer Engineering Institute
20%
0%
compression improvement
2 -20%
-40%
-60%
-80%
-100%
-120%
log2(m)
95
EI C EI C
Computer Engineering Institute
adaptive approach: select Golomb parameter m for each transition block individually
96
EI C EI C
Computer Engineering Institute
30%
compression improvement
20% 10% 0% -10% -20% -30% -40% -50% 26.52% 20.36% 12.44% -0.32% -19.74% -37.61% -1.27% -2.25% 1.43% -48.25% 0.28% -1.63%
rtl
sxp2
gate
sota+co mpress
97
EI C EI C
Computer Engineering Institute
s s
98
EI C EI C
Computer Engineering Institute
contents
transition cache summary value compression
q q
s s
Golomb code
memory management
99
EI C EI C
Computer Engineering Institute
memory management
some models create large cache sizes
m odel rtl gate sota sxp2 leon tr-blocks file size cache size 1-entries hit-rate 51728 688718 807 19 98,44% 164634 3231609 4450 153 97,30% 561102926409368 71158 35667 98,73% 150609126122008 70893 70731 95,29% 29824 4211687 4668 3308 84,35%
main memory consumption caused by entries that are not re-used (not target of a hit) 100
EI C EI C
Computer Engineering Institute
maintain a list of not re-used entries entry is removed from list if it is target of a hit when transition block cache size hits upper threshold Nmax delete entries from list until Nmin is reached
Properties
EI C EI C
Computer Engineering Institute
120%
100%
80%
Nmin / Nmax
30000 / 40000 10000 / 20000 5000 / 10000 2500 / 5000 1500 / 3000 500 / 1000
60%
40%
20%
102
EI C EI C
Computer Engineering Institute
95% 30000 / 40000 10000 / 20000 5000 / 10000 2500 / 5000 1500 / 3000 500 / 1000
90%
Nmin / Nmax
85%
80%
75%
rtl
gate
sota
sxp2
leon
103
EI C EI C
Computer Engineering Institute
100%
95%
90%
85%
30000 / 40000 10000 / 20000 5000 / 10000 2500 / 5000 1500 / 3000 500 / 1000
Nmin / Nmax
80%
75%
rtl
gate
sota
sxp2
leon
104
EI C EI C
Computer Engineering Institute
The End
105