leveraging linux: code coverage for post-silicon validation · code coverage for post-silicon...

63
Leveraging Linux: Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb, 2013

Upload: others

Post on 17-Oct-2019

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Leveraging Linux: Code Coverage for Post-Silicon

Validation Mehdi Karimi-biuki

Embedded Linux Conference 2013 San Francisco, CA

22 Feb, 2013

Page 2: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

About me

• MASc (2012) and BASc (2009) from UBC •  2 years of work experience at different

companies Bcom, PMC, and Intrinsyc. •  Area of interest system validation and test

+ formal methods for debug + physical design.

•  I am new in embedded software design – A firmware guy but mostly on the hardware

side.

2 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 3: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

What we learn today? •  We look at the hardware examination of a very

dominant test practice on today’s industrial microprocessors – That is coverage of a popular test “Linux boot bring-

up” on an industrial size system on chip called LEON3 •  You will expect to learn how we did this

(methodology) and how you can do it if interested. •  You will also see our interesting results achieved.

– We conclude that Linux boot is a necessary test for today’s state-of-the-art designs, but not enough.

3 Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi Karimibiuki 2/22/2013

Page 4: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Outline

•  Motivation – Why post-silicon validation? – Why post-silicon coverage?

•  Proposed techniques for post-silicon coverage

•  Using Linux for post-silicon code coverage – Why code coverage? Code Coverage Types – Instrumentation – Case Study and Results

•  Conclusion and Future Work

4 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 5: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Outline

•  Motivation – Why post-silicon validation? – Why post-silicon coverage?

•  Proposed techniques for post-silicon coverage

•  Using Linux for post-silicon code coverage – Why code coverage? Code Coverage Types – Instrumentation – Case Study and Results

•  Conclusion and Future Work

5 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 6: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Why post-silicon validation? •  Post-silicon is everything that happens

between tape-out and high-volume manufacturing.

•  Fact: in a short time-to-market, SoC complexity continues to increase – Industry attempts to make more complex designs

at shorter time to allow for: • Decreasing manufacturing and labor costs • Making low-power (clk-gating, power-gating, cloning,

multi-bit register cells) designs while at higher speeds

6 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 7: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Why post-silicon validation?

7

Yet, all these come at a price Bugs are harder to detect

(It’s easy to have bugs on silicon)

Miron Abramovici, Paul Bradley, Kumar Dwarakanath, Peter Levin, Gerard Memmi, and Dave Miller. 2006. A reconfigurable design-for-debug infrastructure for SoCs. In Proceedings of the 43rd annual Design Automation Conference (DAC '06). ACM, New York, NY, USA, 7-12.

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 8: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Data from Mentor Graphics…

8

Source: Harry Foster, Chief Technologist, Mentor Graphics

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 9: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Data from Intel…

9 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 10: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Post-Silicon vs. Pre-Silicon •  Pre-silicon techniques:

– Advantages: •  Very good visibility of internal events better controllability

better feeling for debugging –  Inexpensive bug fixing by setting breakpoints, etc. –  Quick turnout time

10

–  Disadvantages: -- Difficult to model complex electrical behaviors and off-

chip interactions requires very good understanding of the behavior of the chip for different functional modes…(some tools from Cadence/Synopsys/AtopTech)…

3 million gates takes about 8 hours to simulate timing.

Slow up to nine orders of magnitude against real hardware

--

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 11: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

11

Post-Silicon vs. Pre-Silicon

Simulation is SLOW. Consider Linux boot that takes 1 minute on actual

hardware…it takes 1900 years in simulation! Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 12: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

12

1st Silicon success is only 30%

•  More bugs are reported as complexity continues to increase

•  Simulation is slow •  Therefore, there are more chances for bugs escaping

into post-silicon (see figure above) •  Without a doubt, post-silicon validation is a must.

resp

onse

s

# of spins

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 13: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Outline

•  Motivation – Why post-silicon validation? – Why post-silicon coverage?

•  Proposed techniques for post-silicon coverage

•  Using Linux for post-silicon code coverage – Why code coverage? Code Coverage Types – Instrumentation – Case Study and Results

•  Conclusion and Future Work

13 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 14: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Why post-silicon coverage?

•  Typical Post-Silicon Validation Process – In post-silicon, because it runs at full speed, we

run real software applications to determine that the chip works as intended.

– …run specialized test programs – Or random instruction streams – Check functionality while at different functional

modes(func, scan_cap, rambist, etc.), and extreme process-voltage-temperature (PVT) corners.

– Regression suites… – Prepare and run drivers…

14 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 15: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

And the question is…Did I do enough?????

I mean, if a software hangs, is it all from the software side, or hardware?

15 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 16: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Why post-silicon coverage?

Did I do enough?????

(And if not, am I making progress? What areas need more verification? …)

How can I get a feeling about the effectiveness of my validation scheme…on the chip

16 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 17: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

The Solution is…………….

We can check for validation effectiveness with Coverage.

•  This is similar to what is being done in pre-silicon verification they all use coverage.

•  Coverage is any scheme that measures the thoroughness of validation process.

•  In post-silicon validation, due to limited observability – Coverage instrumentation in post-silicon is done by

adding some on-chip monitors.

17

COVERAGE

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 18: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Outline

•  Motivation – Why post-silicon validation needed? – Why post-silicon coverage?

•  Proposed techniques for post-silicon coverage

•  Using Linux for post-silicon code coverage – Why code coverage? Code Coverage Types – Instrumentation – Case Study and Results

•  Conclusion and Future Work

18 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 19: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Proposed techniques for post-silicon coverage

Industry has integrated some coverage metrics onto their chips: •  Intel Core2 Duo Family

–  Bojan, T.; Arreola, M.A.; Shlomo, E.; Shachar, T.; , "Functional coverage measurements and results in post-Silicon validation of Core™2 duo family," High Level Design Validation and Test Workshop, 2007. HLVDT 2007. IEEE International , vol., no., pp.145-150, 7-9 Nov. 2007

•  IBM POWER7 –  Adir, A.; Nahir, A.; Shurek, G.; Ziv, A.; Meissner, C.; Schumann, J.; , "Leveraging pre-

silicon verification resources for the post-silicon validation of the IBM POWER7 processor," Design Automation Conference (DAC), 2011 48th ACM/EDAC/IEEE , vol., no., pp.569-574, 5-9 June 2011

19

There is a need for a complete coverage technique.

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 20: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Outline

•  Motivation – Why post-silicon validation needed? – Why post-silicon coverage?

•  Proposed techniques for post-silicon coverage

•  Using Linux for post-silicon code coverage – Why code coverage? Code Coverage Types. – Instrumentation – Case study and results

•  Conclusion and Future Work

20 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 21: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

We employ Linux boot as a standard test to examine our code coverage

analyses •  The mostly known and used test for chip

bring up – Linux boot is widely used, widely accepted as

a good test for first silicon chip. – Code coverage is a standard, objective

coverage technique.

21 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 22: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Code Coverage Types

•  Statement •  Branch • Condition •  Expression •  Finite State Machine (FSM)

22

We instrument Statement and Branch

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 23: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Outline •  Motivation

– Why post-silicon validation needed? – Why post-silicon coverage?

•  Proposed techniques for post-silicon coverage

•  Using Linux for post-silicon code coverage – Why code coverage? Code Coverage Types – Instrumentation – Case study and results

•  Conclusion and Future Work

23 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 24: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Measuring Code Coverage on Chip

1. We instrument HDL code by adding flags per “basic block”.

2. Then run Linux. 3. Then count the number of flags that are

set divided by the total number of flags in each block.

24 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 25: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Instrumenting for Statement Coverage

•  Add one flag per “basic block”: process (example) S1; S2; S3; if (s4) begin s5; s6; s7; else s8; s9; end if; s9; end process;

25

“Bas ic B lock” i s a sequence o f consecutive statements with a single branch or return statement at the end. The flow of control enters and leaves the basic block without any branching into or out of the sequence.

SFlag2=1;

SFlag3=1;

SFlag4=1;

SFlag0=1;

SFlag1=1;

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 26: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Instrumenting for Branch Coverage

•  Add two flags per branch: process (example) S1; S2; S3; if (s4) begin s5; s6; s7; else s8; s9; end if; s9; end process;

26

BFlag0=1;

BFlag1=1;

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 27: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Outline

•  Motivation – Why post-silicon validation needed? – Why post-silicon coverage?

•  Proposed techniques for Post-silicon coverage

•  Post-silicon code coverage – Why code coverage? Code Coverage Types – Instrumentation – Case study and results

•  Conclusion and Future Work

27 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 28: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Case Study

• We pick an industrial-size SoC that is synthesizable to FPGA.

•  Instrument code coverage in 9 blocks • Measure post-silicon coverage •  Also compare with pre-silicon simulation

results

28 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 29: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

SoC Platform •  Built from Aeroflex Gaisler open-source IP

–  Aeroflex Gaisler IP used in real European Space Agengy (ESA) projects

–  All in VHDL •  Features:

–  Leon3 processor •  OpenSPARC V8, 7-stage pipeline

–  IEEE-754 FPU –  SPARC V8 reference MMU –  Multiway D- and I-caches –  DDR2 SDRAM controller/interface –  DVI Display Controller –  10/100/1000 Ethernet MAC –  PS2 Keyboard and Mouse –  Compact Flash Interface –  Can be fabricated to 0.18um ASIC technology.

29

It’s a notebook-on-chip

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 30: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

SoC Platform at Block Diagram

30

LOGAN GRMON JTAG

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 31: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Xilinx University platform (XUP)

31 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 32: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

We instrumented 9 blocks from different clusters

32 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 33: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Post-Silicon Statement Coverage

33

•  We boot Linux with kernel version 2.6.21.1, Debian etch distribution. It takes 45 seconds to boot up (at speed 75MHz) about 3.4 billion clk cycles.

86.00%

89.20%

92.90%

40.30%

90.20%

94.40%

92.70%

88.70%

96.10%

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% 100.00%

i2cmst div32

mmutw mul32

uart mmutlb svgactrl

mmu iu3

Statement

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 34: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Post-Silicon vs. Pre-Silicon Statement Coverage

34

• Running Gaisler system level tests

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% 100.00%

i2cmst div32

mmutw mul32

uart mmutlb svgactrl

mmu iu3

86.00%

89.20%

92.90%

40.30%

90.20%

94.40%

92.70%

88.70%

96.10%

90.00%

92.80%

90.50%

41.20%

88.60%

92.30%

57.60%

84.00%

89.80%

pre-silicon stmt

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 35: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Post-Silicon Branch Coverage

35

81.80% 73.30%

94.70% 35.70%

72.50% 81.00%

90.50% 85.90%

95.00%

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% 100.00%

i2cmst div32

mmutw mul32

uart mmutlb svgactrl

mmu iu3

post-silicon branch

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 36: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Post-Silicon vs. Pre-Silicon Branch Coverage

36

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% 100.00%

i2cmst

div32

mmutw

mul32

uart

mmutlb

svgactrl

mmu

iu3

81.80%

73.30%

94.70%

35.70%

72.50%

81.00%

90.50%

85.90%

95.00%

86.40%

80.00%

78.90%

39.10%

68.30%

74.60%

32.20%

63.20%

69.40%

pre-silicon branch post-silicon branch Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 37: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Post-Silicon

37

86.00%

89.20%

92.90%

40.30%

90.20%

94.40%

92.70%

88.70%

96.10%

81.80%

73.30%

94.70%

35.70%

72.50%

81.00%

90.50%

85.90%

95.00%

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% 100.00%

i2cmst

div32

mmutw

mul32

uart

mmutlb

svgactrl

mmu

iu3

post-silicon branch post-silicon stmt

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 38: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Outline

•  Motivation – Why post-silicon validation needed? – Why post-silicon coverage?

•  Proposed techniques for post-silicon coverage

•  Using Linux for post-silicon code coverage – Why code coverage? Code Coverage Types – Instrumentation – Case Study and Results

•  Conclusion and Future Work

38 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 39: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Conclusions

• Demonstrated a practical and an effective technique to measure coverage for post-silicon validation effectiveness. – Measured and compared pre- and post-silicon

code coverage on a realistic SoC. – Results show Linux boot is a very good test to

run in post-silicon, but the results also show that Linux boot is not a sufficient test to claim our chip is working completely fine.

39 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 40: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

List of Publications, Demo, and Poster Presentations

•  Conference Paper –  M. Karimibiuki, K. Balston, A.J. Hu, and A. Ivanov. "Post-

silicon code coverage evaluation with reduced area overhead for functional verification of SoC". In IEEE International High Level Design Validation and Test Workshop (HLDVT), pages 92 –97, Nov. 2011.

40

•  Journal Paper –  Kyle Balston, Mehdi Karimibiuki, Alan J Hu, Andre Ivanov, and

Steve Wilton. "Post-silicon code coverage for multiprocessor system-on-chip designs". IEEE Transactions on Computers, to appear (accepted June 17, 2012).

•  Demo and Poster Presentation –  University Booth, DAC 2011, San Diego.

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 41: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Future Work •  Explore monitoring for other code coverage metrics

– Expression and condition

•  Compare code coverage results with other techniques – Assertion, mutation, etc.

•  Apply more expensive techniques to reduce monitoring overhead, without sacrificing accuracy. – Software techniques intended to be lightweight, only

explore graph properties of CFG. –  In post-silicon, overhead reduction more important, could

try e.g., formal analysis of the code.

41 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 42: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

End.

42 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 43: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

43 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 44: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Outline •  Motivation

–  Why post-silicon validation needed? –  Why post-silicon coverage?

•  Proposed techniques for post-silicon coverage •  Using Linux for post-silicon code coverage

–  Why code coverage? Code Coverage Types –  Instrumentation –  Case study and Results

•  Area overhead investigation –  Area Overhead Results –  Area overhead reduction methodology –  Reduction results

•  Conclusion and Future Work

44 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 45: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Area overhead calculation •  Area overhead is not reported in any coverage paper

that we surveyed!!! •  Why area overhead is important?

– Direct effect on cost – Direct effect on speed – We want minimal change to the intended functionality of

the chip

We calculate area based on two components: •  Based on FFs before routing and optimization but after

synthesis •  LUTs after routing and optimization

45 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 46: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Overhead -- FFs (Percent)

46

21.7% 31.0%

38.4%

65.0% 60.0% 61.4%

21.9%

134.7%

9.6%

0.0%

20.0%

40.0%

60.0%

80.0%

100.0%

120.0%

140.0%

i2cmst div32 mmutw mul32 uart mmutlb svgactrl mmu iu3

overhead

overhead

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 47: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Overhead -- LUTs (Percent)

47

3.5%

5.6%

21.7%

6.3%

18.6%

4.5%

12.9%

4.2%

1.2%

0.0%

2.0%

4.0%

6.0%

8.0%

10.0%

12.0%

14.0%

16.0%

18.0%

20.0%

22.0%

i2cmst div32 mmutw mul32 uart mmutlb svgactrl mmu iu3

overhead

overhead

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 48: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Outline •  Motivation

–  Why post-silicon validation needed? –  Why post-silicon coverage?

•  Proposed techniques for post-silicon coverage •  Using Linux for post-silicon code coverage

–  Why code coverage? Code Coverage Types –  Instrumentation –  Case Study and Results

•  Area overhead investigation –  Area Overhead Results –  Area overhead reduction methodology –  Reduction results

•  Conclusion and Future Work

48 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 49: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Agrawal’s method

•  Code coverage is a classic concept in software testing

•  We use a classic technique devised by Agrawal for control flow graphs. (Reference: Hiralal Agrawal. Dominators, super blocks, and program coverage. In Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, POPL ’94, pages 25–34, New York, NY, USA, 1994. ACM.)

•  How much overhead reduction can we achieve by using state-of-the-art techniques from the software testing world?

•  The technique reduces the per-basic-block-instumentation by inspecting control flow graphs (CFG). Yet it preserves data accuracy.

49 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 50: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

module example … always @ (posedge clk) begin if(s1) then s2; else s3; endif; s4; endmodule;

2

1

3

begin

end

4

Control Flow Graph (CFG)

Agrawal’s method

Page 51: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

How does it works: two relations: pre-dominance and

post-dominance

• Definition 1: Basic block X pre-dominates basic block Y if every path from begin to Y goes through X.

51 CFG

module example … always @ (posedge clk) begin if(s1) then s2; else s3; endif; s4; endmodule;

2

1

3

begin

end

4 Pre-dominator tree

2

1

3 4

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 52: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

How does it works:

•  Definition 2: Basic block X post-dominates basic block Y if every path from Y to exit goes through X.

52

Post-dominator tree

1

4

3 2

CFG

module example … always @ (posedge clk) begin if(s1) then s2; else s3; endif; s4; endmodule;

2

1

3

begin

end

4

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 53: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

53

leaves So far...50% overhead

savings

2

1

3

Basic block dominator graph

4

CFG

module example … always @ (posedge clk) begin if(s1) then s2; else s3; endif; s4; endmodule;

2

1

3

begin

end

4 Post-dominator tree

1

4

3 2

Pre-dominator tree

2

1

3 4

2

1, 4

3

Superblock dominator graph

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 54: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

54

Overall, 50% area saving in this example

CFG

module example … always @ (posedge clk) begin if(s1) then s2; else s3; endif; s4; endmodule;

2

1

3

begin

end

4

2

1, 4

3

Superblock dominator graph

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 55: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Outline •  Motivation

–  Why post-silicon validation needed? –  Why post-silicon coverage?

•  Proposed techniques for post-silicon coverage •  Using Linux for post-silicon code coverage

–  Why code coverage? Code Coverage Types –  Instrumentation –  Case Study and Results

•  Area overhead investigation –  Area Overhead Results –  Area overhead reduction methodology –  Reduction results

•  Conclusion and Future Work

55 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 56: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

FF overhead reduced (Percent)

56

21.70% 31.00%

38.40%

65.00% 60.00% 61.40%

21.90%

134.70%

9.60% 20.30%

21.40%

32.90%

52.50% 45.60% 45.50%

17.10%

63.00%

6.70%

0.00%

20.00%

40.00%

60.00%

80.00%

100.00%

120.00%

140.00%

i2cmst div32 mmutw mul32 uart mmutlb svgactrl mmu iu3

overhead reduced overhead

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 57: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

LUT overhead reduced (Percent)

57

3.50%

5.60%

21.70%

6.30%

18.60%

4.50%

12.90%

4.20%

1.20%

4.10% 4.50%

20.30%

6.30%

15.80%

3.30%

12.10%

4.00%

1.20%

0.00%

5.00%

10.00%

15.00%

20.00%

25.00%

i2cmst div32 mmutw mul32 uart mmutlb svgactrl mmu iu3

overhead reduced overhead

Leveraging Linux: Code Coverage for Post-Silicon Validation --- Mehdi

Karimibiuki 2/22/2013

Page 58: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

58 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 59: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

59 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 60: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Agrawal’s Algorithm (POPL 1994)

• Merge to form dominance graph. •  Find strongly connected components in

graph – Every basic block in SCC dominates others in

SCC. – Therefore, basic block covered iff others

covered. – Therefore, one flag per SCC.

60 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 61: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

tree

•  All nodes are minimally connected • N nodes and n-1 edges • No more than one edge to a node

61 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 62: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Linearly ordered

•  a linearly ordered or totally ordered group is an ordered group G such that the order relation "≤" is total. This means that the following statements hold for all a, b, c ∈ G:

•  if a ≤ b and b ≤ a then a = b (antisymmetry) •  if a ≤ b and b ≤ c then a ≤ c (transitivity) •  a ≤ b or b ≤ a (totality) •  the order relation is translation invariant: if a ≤

b then a + c ≤ b + c and c + a ≤ c + b.

62 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013

Page 63: Leveraging Linux: Code Coverage for Post-Silicon Validation · Code Coverage for Post-Silicon Validation Mehdi Karimi-biuki Embedded Linux Conference 2013 San Francisco, CA 22 Feb,

Partial order vs total order

•  Partial order elements not comparable in general but comparable to each other – A relation R on a set S is called a partial order

if it is reflexive, antisymmetric and transitive. A set S together with a partial ordering R is called a partially ordered set or poset for short and is denoted

•  Total order elements are comparable in terms of less than, greater than, etc.

63 Leveraging Linux: Code Coverage for

Post-Silicon Validation --- Mehdi Karimibiuki

2/22/2013