Sunteți pe pagina 1din 105

EI C EI C

Computer Engineering Institute

Waveform Compression

EI C EI C
Computer Engineering Institute

contents
transition cache summary value compression
q q

s s

value prediction previous signal values

value difference encoding


q

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

transition block cache (1)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5

signal transitions at time 10 ns:

EI C EI C
Computer Engineering Institute

transition block cache (2)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5

1. sort signals:

EI C EI C
Computer Engineering Institute

transition block cache (3)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5

2. cache search:

cache hit cid = 3

EI C EI C
Computer Engineering Institute

transition block cache (4)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5

2. cache search:

compressed signal id stream: 3

EI C EI C
Computer Engineering Institute

transition block cache (5)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5

signal transitions at time 25 ns:

compressed signal id stream: 3

EI C EI C
Computer Engineering Institute

transition block cache (6)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5

1. sort signals:

compressed signal id stream: 3

10

EI C EI C
Computer Engineering Institute

transition block cache (7)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5

2. cache search: cache miss create cache entry

compressed signal id stream: 3

11

EI C EI C
Computer Engineering Institute

transition block cache (7)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5 cid=6

2. cache search: cache miss create cache entry

compressed signal id stream: 3

12

EI C EI C
Computer Engineering Institute

transition block cache (8)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5 cid=6

signal transitions at time 37 ns:

compressed signal id stream: 3

13

EI C EI C
Computer Engineering Institute

transition block cache (9)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5 cid=6

1. sort signals:

compressed signal id stream: 3

14

EI C EI C
Computer Engineering Institute

transition block cache (10)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5 cid=6

2. cache search:

cache hit cid = 2 compressed signal id stream: 3

15

EI C EI C
Computer Engineering Institute

transition block cache (11)

tr.-block cache
cid=1 cid=2 cid=3 cid=4 cid=5 cid=6

2. cache search:

compressed signal id stream: 3

16

EI C EI C
Computer Engineering Institute

contents
transition cache summary value compression
q q

s s

value prediction previous signal values

value difference encoding


q

Golomb code

memory management

17

EI C EI C
Computer Engineering Institute

value compression
Lempel-Ziv compression

computational expensive limited compression ratio

variable length encoding


low runtime overhead limited compression ratio

value difference encoding + variable length encoding + LZ-compression


low runtime overhead good compression ratio

18

EI C EI C
Computer Engineering Institute

value compression (2)


value stream value difference encoding

stream of mostly zeros exploits zeros to improve compression optional

data encoding

LZ compression

compressed value stream

19

EI C EI C
Computer Engineering Institute

value compression (3)


value stream value difference encoding

data encoding

options: 1. nothing 2. UNIX compress 3. gzip -9

LZ compression

compressed value stream

20

EI C EI C
Computer Engineering Institute

value difference encoding


value stream

predict value

xor

value difference encoding

data encoding

LZ compression

compressed value stream

21

EI C EI C
Computer Engineering Institute

value difference encoding


s

predict new signal values for transition blocks calculate difference between predicted and real value
q

difference = XOR

store either difference or original value (depending on # of 1s)

improves variable length encoding results

good compression achievable if prediction quality is good 22

EI C EI C
Computer Engineering Institute

value prediction
goal: predicted and real new value shall be as similar as possible

difference will contain mostly zeros

value prediction is based on:


s s

previous (old) signal values prediction function


q q q

predict signal value based on previous value function for binary signals function for vector signals

23

EI C EI C
Computer Engineering Institute

simple prediction function

prediction: new and previous value are the same

i.e. prediction = previous value

24

EI C EI C
Computer Engineering Institute

simple prediction function (1)


history buffer prev. signal value
1 2 3 4 5 6 7

signal transition at time 10 ns: new value = 0

1 1 1 1 1 111 011

25

EI C EI C
Computer Engineering Institute

simple prediction function (2)


history buffer prev. signal value
1 2 3 4 5 6 7

1. predict signal value: new value = 0

1 1 1 1 1 111 011

prediction( 1 ) = 1

26

EI C EI C
Computer Engineering Institute

simple prediction function (3)


history buffer prev. signal value
1 2 3 4 5 6 7

2. xor new value with prediction: new value = 0

1 1 1 1 1 111 011

xor

prediction( 1 ) = 1

27

EI C EI C
Computer Engineering Institute

simple prediction function (4)


history buffer prev. signal value
1 2 3 4 5 6 7

3. store new value to history buffer: new value = 0

1 1 0 1 1 111 011

28

EI C EI C
Computer Engineering Institute

simple prediction function (5)


history buffer prev. signal value
1 2 3 4 5 6 7

signal transition at time 15 ns: new value = 101

1 1 0 1 1 111 011

29

EI C EI C
Computer Engineering Institute

simple prediction function (6)


history buffer prev. signal value
1 2 3 4 5 6 7

1. predict signal value: new value = 101

1 1 0 1 1 111 011

prediction( 111 ) = 111

30

EI C EI C
Computer Engineering Institute

simple prediction function (7)


history buffer prev. signal value
1 2 3 4 5 6 7

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

simple prediction function (6)


history buffer prev. signal value
1 2 3 4 5 6 7

3. store new value to history buffer: new value = 110

1 1 0 1 1 110 011

32

EI C EI C
Computer Engineering Institute

simple prediction function


prediction: new and previous value are the same i.e. prediction = previous value at least one bit is probably predicted wrong does not work good for binary signals

33

EI C EI C
Computer Engineering Institute

improved prediction function (1)


Improved prediction function
s

prediction function for binary signals:


previous bit 0 1 X Z predicted bit 1 0 0 0

34

EI C EI C
Computer Engineering Institute

improved prediction function (2)


prediction function for vector signals:
q

LSB and other bits are handled different:


Previous bit Predicted LSB Other predicted bit bits

0 1 X Z

1 0 0 0

0 1 0 0

35

EI C EI C
Computer Engineering Institute

improved prediction function (3)


history buffer prev. signal value
1 2 3 4 5 6 7

signal transition at time 10 ns: new value = 0

1 1 1 1 1 111 011

36

EI C EI C
Computer Engineering Institute

improved prediction function (4)


history buffer prev. signal value
1 2 3 4 5 6 7

2. predict value: new value = 0

1 1 1 1 1 111 011

prediction( 1 ) = 0

37

EI C EI C
Computer Engineering Institute

improved prediction function (5)


history buffer prev. signal value
1 2 3 4 5 6 7

3. xor predicted with new value: new value = 0

1 1 1 1 1 111 011

xor

0 = difference

prediction( 1 ) = 0

38

EI C EI C
Computer Engineering Institute

improved prediction function (6)


history buffer prev. signal value
1 2 3 4 5 6 7

4. Store current value to history buffer: 0

1 1 0 1 1 111 011

39

EI C EI C
Computer Engineering Institute

improved prediction function (7)


history buffer prev. signal value
1 2 3 4 5 6 7

signal transition at time 15 ns: new value = 110

1 1 0 1 1 111 011

40

EI C EI C
Computer Engineering Institute

improved prediction function (8)


history buffer prev. signal value
1 2 3 4 5 6 7

2. predict value: new value = 110

1 1 0 1 1 111 011

prediction( 111 ) = 110

41

EI C EI C
Computer Engineering Institute

improved prediction function (9)


history buffer prev. signal value
1 2 3 4 5 6 7

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

improved prediction function (10)


history buffer prev. signal value
1 2 3 4 5 6 7

2. store new value to history buffer: new value = 110

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

separate entry for each signal

memory to store signal values required

1 1 1 1 1 111 011
s

signal value must be updated for each transition


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

value prediction previous signal values

value difference encoding


q

Golomb code

memory management

45

EI C EI C
Computer Engineering Institute

previous signal values


different meanings of previous:
s

value of same signal before the current transition


q

values must be stored for each signal in a history buffer

value of same signal in previous transition block


q

each transition block cache entry is associated with a corresponding value section

46

EI C EI C
Computer Engineering Institute

previous signal values in transition-block cache (1)


tr.-block cache signal ids
cid=1 cid=2 cid=3 cid=4 cid=5

values 1110 1 1 0 1 1 0 111 1 1 0 0 011 0110 110110

signal transitions at time 10 ns: 1001 1 1 0

47

EI C EI C
Computer Engineering Institute

previous signal values in transition-block cache (2)


tr.-block cache signal ids
cid=1 cid=2 cid=3 cid=4 cid=5

values 1110 1 1 0 1 1 0 111 1 1 0 0 011 0110 110110

1. sort signals: 1 1 0 0 001

48

EI C EI C
Computer Engineering Institute

previous signal values in transition-block cache (3)


tr.-block cache signal ids
cid=1 cid=2 cid=3 cid=4 cid=5

values 1110 1 1 0 1 1 0 111 1 1 0 0 011 0110 110110

2. search cache: 1 1 0 0 001

Cache hit cid = 3

49

EI C EI C
Computer Engineering Institute

previous signal values in transition-block cache (4)


tr.-block cache signal ids
cid=1 cid=2 cid=3 cid=4 cid=5

values 1110 1 1 0 1 1 0 111 1 1 0 0 001 0110 110110

3. write values to cache: 1 1 0 0 001

50

EI C EI C
Computer Engineering Institute

previous signal values in transition-block cache (5)


tr.-block cache signal ids
cid=1 cid=2 cid=3 cid=4 cid=5

values 1110 1 1 0 1 1 0 111 1 1 0 0 001 0110 110110

3. write values to cache: 1 1 0 0 001

note: same signal may be stored to several cache entries 51

EI C EI C
Computer Engineering Institute

previous signal values in transition-block cache (6)


tr.-block cache signal ids
cid=1 cid=2 cid=3 cid=4 cid=5

values 1110 1 1 0 1 1 0 111 1 1 0 0 011 0110 110110


s

each cache entry has separate value section


q

pack value section to reduce memory pressure

value section is updated after transition block hit

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

xor approach (1)


signal transitions at time 10 ns: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 1001 1 1 0

54

EI C EI C
Computer Engineering Institute

xor approach (2)


1. sort signals: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 1 1 0 0 001

55

EI C EI C
Computer Engineering Institute

xor approach (3)


2. predict values: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 simple prediction 0 0 0 0 011 1 1 0 0 001

56

EI C EI C
Computer Engineering Institute

xor approach (4)


3. xor predicted values with new values: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 simple prediction 0 0 0 0 011 1 1 0 0 001 xor 1 1 0 0 010 = difference

57

EI C EI C
Computer Engineering Institute

xor approach (5)


4. comp. # of 1s and store less populated value: tr.-block cache values 1110 11 011 0 111 110 0 001 0110 110110 simple prediction 0 0 0 0 011 1 1 0 0 001 xor compare # of 1s 1 1 0 0 010 = difference

58

EI C EI C
Computer Engineering Institute

xor approach (6)


5. write back new values to tr.-block: tr.-block cache values 1110 11 011 0 111 110 0 001 0110 110110 simple prediction 0 0 0 0 011 1 1 0 0 001 xor compare # of 1s 1 1 0 0 010 = difference

59

EI C EI C
Computer Engineering Institute

properties of xor approach

uses transition block cache to store previous values prediction is based on transition blocks streaming read/write access to value section

good data cache performance low computational overhead

60

EI C EI C
Computer Engineering Institute

xor_hist approach (1)


signal transitions at time 10 ns: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 1001 1 1 0 history buffer 0 0 1 1 1 1 000

61

EI C EI C
Computer Engineering Institute

xor_hist approach (2)


1. sort signals: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 1 1 0 0 001 history buffer 0 0 1 1 1 1 000

62

EI C EI C
Computer Engineering Institute

xor_hist approach (3)


2. predict values: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 1 1 0 0 001 0 0 1 1 000 history buffer 0 0 1 1 1 1 000

63

EI C EI C
Computer Engineering Institute

xor_hist approach (4)


3. xor predicted with new values: tr.-block cache values 1110 11 011 0 111 111 1 000 0110 110110 1 1 1 1 001 1 1 0 0 001 0 0 1 1 000 history buffer 0 0 1 1 1 1 000

xor

64

EI C EI C
Computer Engineering Institute

xor_hist approach (5)


4. Correct prediction: tr.-block cache values 1110 11 011 0 111 111 1 000 0110 110110 0 0 0 0 001 = difference xor 1 1 1 1 001 1 1 0 0 001 0 0 1 1 000 history buffer 0 0 1 1 1 1 000

xor

65

EI C EI C
Computer Engineering Institute

xor_hist approach (6)


5. Comp. # of 1s and write less pop. value: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 xor 1 1 1 1 001 # of 1s? 0 0 0 0 001 = difference 1 1 0 0 001 0 0 1 1 000 history buffer 1 1 0 1 1 0 001

xor

66

EI C EI C
Computer Engineering Institute

xor_hist approach (7)


6. write tr.-block values: tr.-block cache values 1110 11 011 0 111 111 1 001 0110 110110 xor 1 1 1 1 001 # of 1s? 0 0 0 0 001 = difference 1 1 0 0 001 0 0 1 1 000 history buffer 1 1 0 1 1 0 001

xor

67

EI C EI C
Computer Engineering Institute

xor_hist approach (8)


7. write history buffer: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 xor 1 1 1 1 001 # of 1s? 0 0 0 0 001 = difference 1 1 0 0 001 0 0 1 1 000 history buffer 1 1 0 1 1 0 001

xor

68

EI C EI C
Computer Engineering Institute

properties of xor_hist approach


s

uses history table to store previous values

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

hybrid approach (1)


signal transitions at time 10 ns: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 1001 1 1 0 history buffer 0 0 1 1 1 1 011

70

EI C EI C
Computer Engineering Institute

hybrid approach (2)


1. sort signals: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 1 1 0 0 001 history buffer 0 0 1 1 1 1 011

71

EI C EI C
Computer Engineering Institute

hybrid approach (3)


2. predict values: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 1 1 0 0 001 0 0 1 1 011 history buffer 0 0 1 1 1 1 011

72

EI C EI C
Computer Engineering Institute

hybrid approach (4)


2. predict values: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 1 1 0 0 010 1 1 0 0 001 0 0 1 1 011 predict history buffer 0 0 1 1 1 1 011

73

EI C EI C
Computer Engineering Institute

hybrid approach (5)


3. correct prediction: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 1 1 0 0 001 1 1 0 0 010 xor 1 1 0 0 001 0 0 1 1 011 predict history buffer 0 0 1 1 1 1 011

74

EI C EI C
Computer Engineering Institute

hybrid approach (6)


4. xor prediction and new value: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 xor 1 1 0 0 010 xor 1 1 0 0 001 1 1 0 0 001 0 0 1 1 011 predict history buffer 0 0 1 1 1 1 011

0 0 0 0 000 = difference

75

EI C EI C
Computer Engineering Institute

hybrid approach (7)


5. Comp. # of 1s and store less pop. value: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 xor 1 1 0 0 010 xor 1 1 0 0 001 # of 1s? 0 0 0 0 000 = difference 1 1 0 0 001 0 0 1 1 011 predict history buffer 0 0 1 1 1 1 011

76

EI C EI C
Computer Engineering Institute

hybrid approach (8)


6. write tr-block values: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 xor xor 1 1 0 0 010 xor 1 1 0 0 001 # of 1s? 0 0 0 0 000 = difference 1 1 0 0 001 0 0 1 1 011 predict history buffer 0 0 1 1 1 1 011

77

EI C EI C
Computer Engineering Institute

hybrid approach (9)


7. write history buffer: tr.-block cache values 1110 11 011 0 111 000 0 011 0110 110110 xor xor 1 1 0 0 010 xor 1 1 0 0 001 # of 1s? 0 0 0 0 000 = difference 1 1 0 0 001 0 0 1 1 011 predict history buffer 1 1 0 1 1 0 001

78

EI C EI C
Computer Engineering Institute

properties of hybrid approach


s

uses history table to store previous values

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

experimental results: rtl


350 300 compression ratio 250 200 150 100 50 0 no LZ compress gzip -9
plain sh lsh lsh_hist lsh_hist_pred xor xor_sh xor_lsh xor_lsh_hist xor_lsh_hist_pred

80

EI C EI C
Computer Engineering Institute

experimental results: sxp2


160 140 compression ratio 120 100 80 60 40 20 0 no LZ compress gzip -9
plain sh lsh lsh_hist lsh_hist_pred xor xor_sh xor_lsh xor_lsh_hist xor_lsh_hist_pred

81

EI C EI C
Computer Engineering Institute

experimental results: gate


120 100 compression ratio 80 60 40 20 0 no LZ compress gzip -9
plain sh lsh lsh_hist lsh_hist_pred xor xor_sh xor_lsh xor_lsh_hist xor_lsh_hist_pred

82

EI C EI C
Computer Engineering Institute

experimental results: sota


60 50 compression ratio 40 30 20 10 0 no LZ compress gzip -9
plain sh lsh lsh_hist lsh_hist_pred xor xor_sh xor_lsh xor_lsh_hist xor_lsh_hist_pred

83

EI C EI C
Computer Engineering Institute

experimental results: prediction hit rate

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

experimental results: runtime overhead


20% runtime increment relative to plain

with history table

15%
sh lsh lsh_hist lsh_hist_pred xor xor_sh xor_lsh xor_lsh_hist xor_lsh_hist_pred

10%

5%

0% rtl -5% sxp2 gate sota

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

value prediction previous signal values

value difference encoding


q

Golomb code

memory management

87

EI C EI C
Computer Engineering Institute

data encoding (1)


value stream value difference encoding

data encoding

difference vector

LZ compression

compressed value stream

88

EI C EI C
Computer Engineering Institute

data encoding (2)


difference vector usually contains few 1s special encoding may be used to save space
s

variable length encoding


q q

small runtime overhead compression ratio is limited

Golomb encoding
q q

more complex implementation compression ratio can be adjusted to match data properties

89

EI C EI C
Computer Engineering Institute

variable length encoding


encoding of words (32 bits or 64 bits) using
s s

from 1 up to 5 bytes (9 bytes for 64 bit encoding) 0 padding


00000000 00000000 00111001 10110011

111 1 0011 0 01 1 0 011

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

prefix: determines class of distance value


class 0 1 2 k distance range 0 .. m 1 m .. 2*m 1 2*m .. 3*m 1 k*m .. (k+1)*m 1 prefix code 0 10 110 111..10

postfix: determines offset within class (0 .. m-1 binary encoded)

91

EI C EI C
Computer Engineering Institute

Golomb encoding example (m=4)


class 0 1 2 k distance range 0 .. 3 4 .. 7 8 .. 11 k*4 .. (k+1)*4 1 prefix code 0 10 110 111..10

difference = 000001 0001 001 000000001 0001


5 = class 1 3 2 8 = class 2 3

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%

experiments: Golomb without LZ

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

experiments: Golomb + UNIX compress


0% 2 -10% 3 4 5 6 7 8 9

compression improvement

-20%

-30%

-40%

rtl sxp2 gate sota

-50%

-60%

-70%

log2(m)

94

EI C EI C
Computer Engineering Institute
20%

experiments: Golomb + gzip -9

0%

compression improvement

2 -20%

-40%

-60%

rtl sxp2 gate sota

-80%

-100%

-120%

log2(m)

95

EI C EI C
Computer Engineering Institute

adaptive Golomb encoding


best parameter m is unknown in advance!

adaptive approach: select Golomb parameter m for each transition block individually

m must be also stored significant overhead for small transition blocks

modified adaptive approach


q q

select optimal m if value section > 127 bits set m = 23 = 8 otherwise

96

EI C EI C
Computer Engineering Institute

experiments: Golomb + gzip -9

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

Golomb encoding summary


reduces file size significantly in many cases when no LZ compression is applied does not perform good when combined with LZ algorithms for constant m choose m = 26 = 64 adaptive approach gives better compression
q

s s

however: be aware of runtime overhead

use m = 64 if fast simulation is a major issue (i.e., no additional LZ compression)

98

EI C EI C
Computer Engineering Institute

contents
transition cache summary value compression
q q

s s

value prediction previous signal values

value difference encoding


q

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

memory management algorithm


Algorithm
s s s

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

no re-used entries are removed may degrade hit rate 101

EI C EI C
Computer Engineering Institute
120%

experimental results: cache size

100%

80%

Nmin / Nmax
30000 / 40000 10000 / 20000 5000 / 10000 2500 / 5000 1500 / 3000 500 / 1000

60%

40%

20%

0% rtl gate sota sxp2 leon

102

EI C EI C
Computer Engineering Institute

experimental results: cache hit ratio


100%

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

experimental results: compression ratio


105%

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

S-ar putea să vă placă și