varemu: an emulation testbed for variability-aware software€¦ · variability expedition varemu:...

37
CODES+ISSS 2013 Embedded Systems Week VarEMU: An Emulation Testbed for Variability-Aware Software Lucas Wanner, Salma Elmalaki, Liangzhen Lai, Puneet Gupta, and Mani Srivastava [email protected] Copyright (c) 2013 Variability Expedition NESL Networked & Embedded Systems Laboratory NanoCAD

Upload: others

Post on 26-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

CODES+ISSS 2013 Embedded Systems Week

!

VarEMU: An Emulation Testbed for Variability-Aware SoftwareLucas Wanner, Salma Elmalaki, Liangzhen Lai, Puneet Gupta, and Mani [email protected]

Copyright (c) 2013

Variability ExpeditionNESLNetworked & EmbeddedSystems Laboratory NanoCAD

Page 2: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

The Variability Problem

2

Nominally identical parts, different characteristicsFrequency Errors Power

Varia

bilit

y (%

)

0

250

500

750

1000

Year2009 2012 2015 2018 2021 2024

Total PowerStatic (Sleep) Power

Page 3: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Variability-Aware Software

3

OS

App

Software

App

Sense and Expose

Page 4: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Variability-Aware Software

4

Quality

OS

App

Software

App

Activation Control

HW/SW Parameters

App Code

...

Sense and ExposeProblem: hardware is not instrumented for

variability sensing

Page 5: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Motivation

5

Sense and ExposeHow to Variations to Software?

Observ

ability

Perform

ance

Contro

l

Cost

Instrumented HardwareHW-In-The Loop SimGate/RTL-Level Sim

VarEMU

✔ ✔ ✔

✔ ✔ ✔ ✔

Page 6: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Architecture

6

QEMUVirtual Machine Monitor Runs unmodified SW images Cross-architecture support Binary translation (fast)

Page 7: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Architecture

7

VarEMUQEMU Core Power + Aging Model Fault Framework Energy + Time Accounting

Virtual Machine

Query energy Control faults Suffer faults

User + Software Monitor

Configure, change, query

Page 8: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 8

VarEMU

Virtual Machine

User + Software Monitor

Instruction disassembly & translation

Cycle & Time Accounting

Page 9: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 9

Cycle and Time Accounting

Translation time

add r1, r2, r3

Execution time

Translated ops x y z

cycle counting

# cycles class

fault status

Special case: WFI (standby instruction): Start sleep interval until next interrupt

Page 10: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 10

VarEMU

Virtual Machine

User + Software Monitor

Instruction disassembly & translation

Cycle & Time Accounting

Power ModelAging Model

Page 11: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Aging and Power Model

11

Voltage!

Temperature

Power = f (current state)

Active + Sleep Power and Aging

Model

➾➾

!

Parameters for each (class of) instructions

Frequency

change due to aging & user

input

technology + design

dependent

Page 12: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Power Model

12

Slee

p Po

wer

(µW

)

0

100

200

300

400

500

600

Temperature (°C)

0 10 20 30 40 50 60

Best Case Worst Case Nominal Case

normalized to match 45nm Cortex-M3 test chip

Page 13: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Aging Model

13

∂Vt (

V)

0

0.01

0.02

0.03

0.04

Time (s)

0 7500000 15000000 22500000 30000000

0.8V (r) 1V (r) 1.2V (r)0.8V (m) 1V (m) 1.2V (m)

60°C, referece (r) vs. model (m)

Page 14: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 14

VarEMU

Virtual Machine

User + Software Monitor

Instruction disassembly & translation

Cycle & Time Accounting

Power ModelAging Model

Energy Accounting

Energy = Time × Power

Page 15: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 15

VarEMU

Virtual Machine

User + Software Monitor

Instruction disassembly & translation

Cycle & Time Accounting

Power ModelAging Model

Energy Accounting

Fault Model

Page 16: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 16

Faults

Translation time

add r1, r2, r3

Execution time

Translated ops x y z

cycle counting

fault status

Page 17: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 17

Faults

Translation time

add r1, r2, r3

Execution time

Translated ops x y z

cycle counting

fault status

pre

post

replace

Page 18: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Fault Module: translation Time

18

Instruction marked as faulty?

No: generate standard code

!!!

Yes: generate two code paths

!!

mul rd, rn, rs mul rd, rn, rsfault module

Page 19: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Translated instruction !!!!!!!!

Fault Module: execution time

19

Tests

Standard (correct) version

Faulty version

Page 20: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Translated instruction !!!!!!!!

Fault Module: execution time

20

Tests

Standard (correct) version

Faulty version

Input: architectural state, instruction info

Privileged mode?Faults enabled in the VM?User-defined conditions

Chose between correct and faulty version

Page 21: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Translated instruction !!!!!!!!

Fault Module: execution time

21

Tests

Standard (correct) version

Faulty version

Example: MUL + stuck at one

env-­‐>regs[rd]  =

env-­‐>regs[rm]  *  

env-­‐>regs[rs]

|  0x01;

Page 22: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 22

VarEMU

Virtual Machine

User + Software Monitor

Instruction disassembly & translation

Cycle & Time Accounting

Power ModelAging Model

Energy Accounting

Fault Model

Virtual Hardware

Device

Page 23: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 23

VarEMU

Virtual Machine

User + Software Monitor

Virtual Hardware

Device

Page 24: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

VM-VarEMU interaction

24

time [class]energy [class]cycles [class]

total timetotal energytotal cyclessleep time

sleep energyfault status

activesleep

• VM interacts with VarEMU through memory mapped registers

• Commands• read command creates a checkpoint for all

VarEMU registers• faults command propagates value to fault

module• zero: faults disabled• not zero: implementation-dependent,

typically means faults may now occur• Multiple registers for time, energy, cycles• Linux driver handles interaction through syscall

interface and provides per-process energy accounting

Page 25: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

VarEMU Linux support

25

process

kernel

read registers save error status

read registers restore error status

VarEMU status is part of process

context

Page 26: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

App example

26

int  main()  {

}

       vemu_regs  regs;  ...

       printf("active  energy:  %d\n",  regs.total_act_energy);

       syscall(VAR_SYSCALL_WRITE,  FAULT_ST,  &fault_status);

       x  =  y  *  z;

       int  fault_status  =  1;  

       fault_status  =  0;  

       syscall(VAR_SYSCALL_WRITE,  FAULT_ST,  &fault_status);

       syscall(VAR_SYSCALL_READ,  READ_PROC,  &regs);

Page 27: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 27

VarEMU

Virtual Machine

User + Software Monitor

Instruction disassembly & translation

Cycle & Time Accounting

Power ModelAging ModelI/O

Energy Accounting

Fault Model

Virtual Hardware

Device

Page 28: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 28

VarEMU

Virtual Machine

User + Software Monitor

I/O

Page 29: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Dynamic monitoring and control

• Socket interface (QEMU Machine Protocol)

• VarEMU status queries (energy, error status, ...)

• VarEMU power model parameter updates

• Example: change parameter zero (temperature) of class zero (all) to 60 (°C)

29

 varemu-­‐model-­‐param          p="0"  v="60"  c="0"

Page 30: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Evaluation: time accounting accuracy

30

Accu

racy

(%)

95%

96%

97%

98%

99%

100%

Time

0 50 100 150 200

empty loopmatrix multiplicationauto correlation

Hardware timing vs. VarEMU

Page 31: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Evaluation: overhead

31

Page 32: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Case study: approximate arithmetic

• Approximate adder using partial sums [Kahng and Kang, DAC’12]

• Fault implementation with variable accuracy: 25% accuracy means that 25% of the partial sums are corrected

• Clock period reduced by 25%, with 6% recovery overhead

32

99.8% of edges detected

18% faster, no increase in energy

97% of pixels within 5% of “correct” version

Page 33: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

• Higher voltage is needed to support same frequency as the device ages• Non-adaptive voltage, margined for the worst-case• Adaptive voltage, dynamically tailored to match aging process

Case Study: Dynamic Reliability Management

33

11% energy savings

Page 34: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

• Variability-Aware Real-Time OS [Martin, et. al., submitted to TECS]

• Learn power characteristics for each instance, tailor task activations and quality to achieve desired lifetime

• Application robustness to intermittent and permanent faults [Sharma et. at., ICCD’13]

• Fault model using VarEMU + ModelSim

• Code transformations (e.g. operand swap) to increase robustness to faults

Research and Education using VarEMU

34

B/B B/N B/W N/B N/N N/W W/B W/N W/W0

2

4

6

8

10

12

Instance and Temperature Profile (Inst/Temp)

Velo

city

Est

imate

Err

or

(RM

SE

)

Assumed Worst Case

With Instance Modeling

• Graduate-level courses at UCLA

• Battery models

• Fault experiments

Page 35: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013

Final remarks

• VarEMU: a tool to evaluate variability-aware software• Variability-aware aging and power models• Energy, cycle accounting• Fault framework• Linux + embedded software stack

• Per-process accounting• Fine-grained control over faults

• Limitations• Cycle counting: simple model doesn’t take pipeline hazards, branch

prediction misses, cache, etc. into account• Fault framework: only architecturally visible states can be altered

• External tools may be used to simulate more complex faults• Availability:

• VarEMU is open software. github.com/nesl/varemu• NSF Variability Expeditions: variability.org

35

Page 36: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

CODES+ISSS 2013 Embedded Systems Week

!

VarEMU: An Emulation Testbed for Variability-Aware SoftwareLucas Wanner, Salma Elmalaki, Liangzhen Lai, Puneet Gupta, and Mani [email protected]

Copyright (c) 2013

Variability ExpeditionNESLNetworked & EmbeddedSystems Laboratory NanoCAD

Page 37: VarEMU: An Emulation Testbed for Variability-Aware Software€¦ · Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 The Variability

Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 37