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
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
Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013
Variability-Aware Software
3
OS
App
Software
App
Sense and Expose
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
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
✔
✔
✔ ✔ ✔
✔ ✔ ✔ ✔
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)
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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;
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
Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 23
VarEMU
Virtual Machine
User + Software Monitor
Virtual Hardware
Device
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
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
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, ®s);
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
Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 28
VarEMU
Virtual Machine
User + Software Monitor
I/O
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"
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
Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013
Evaluation: overhead
31
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
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
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
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
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
Variability Expedition VarEMU: An Emulation Testbed for Variability-Aware Software CODES+ISSS 2013 37