HOPES: Embedded Software Development Environment for MPSoC Feb. 14, 2006 Soonhoi Ha Seoul National University Feb.

Download Report

Transcript HOPES: Embedded Software Development Environment for MPSoC Feb. 14, 2006 Soonhoi Ha Seoul National University Feb.

HOPES: Embedded Software
Development Environment for MPSoC
Feb. 14, 2006
Soonhoi Ha
Seoul National University
Feb. 14, 2006
Soonhoi Ha, SNU
1
Contents
•
•
•
•
•
Introduction
Proposed Design Flow
Key Techniques
Status
Conclusion
Feb. 14, 2006
Soonhoi Ha, SNU
2
Deep Submicron Era
• Increased chip density
– MPSoC (Multiprocessor System on Chip), NoC (Network on
Chip)
– Increased chip density
– Increased NRE cost
– Increased manufacturing cost
• Platform based design
– Platform: common (HW/SW) denominator over multiple
applications
– Pre-built and verified (HW/SW) architecture
– SW design and system verification are major challenges
Feb. 14, 2006
Soonhoi Ha, SNU
3
SoC (System-on-a-Chip)
• Assembly of “prefabricated
component”
software
up
up
memory
graphics
video unit
coms
DSP custom
Feb. 14, 2006
– Maximize VC(IP) reuse: over 90%
– New economics:
fast and correct design >
optimum design
• Design and Verification at
the system level
– interface between VCs
– SW becomes more important
Soonhoi Ha, SNU
4
HOPES Project
• Project
– Title: Development of Embedded software design and
verification techniques for MPSoC, Period: 2005.3.1 2008.2.29,
– Amount: $4,200,000
– Sponsor: Korean Ministry of Information and Communication,
• Mission
– Develop an integrated embedded software development
environment based on model-based programming techniques
and multi-stage validation techniques for MPSoC (MultiProcessor System on Chip)
Feb. 14, 2006
Soonhoi Ha, SNU
5
Motivation
• Current SoC-related projects (in Korea) focus on
hardware design and verification
• Software design on MPSoC
– Embedded software with timing and resource constraints
– Parallel programming for heterogeneous multiprocessors
– Fast virtual prototyping
Feb. 14, 2006
Soonhoi Ha, SNU
6
Current Practice (in Korea)
• Virtual prototyping
– Coware ConvergenSC, ARM(Axys) MaxSim
– Manual software and hardware design
– TLM (transaction level modeling) simulation: 100K inst./sec
• Model-based programming
– UML based tool: (ex) Telelogic TAU
– Limited capability: documentation, code structure.
• No tool is available for parallel programming
– Manual programming
Feb. 14, 2006
Soonhoi Ha, SNU
7
HOPES Proposal
Model-based
Programming UML
(PeaCE model)
KPN
Common Intermediate Code (CIC)
Generic API
Static C code analysis
CIC (w/ API) translator
Per-processor code
Perf. & power estimation
Processor ISS
Feb. 14, 2006
Virtual
prototyping
API lib.
SW
2
Platform 1
Target HW platform
Soonhoi Ha, SNU
8
Key Techniques
• SW design techniques
–
–
–
–
Model-based specification
Partitioning and automatic code generation from specification
Parallel programming (task parallelism, data parallelism)
Generic APIs (independent of OS and target architecture)
• SW verification techniques: 3-phase verification
– At specification level: static analysis of program specification
and functional simulation
– After code generation: static analysis of C code
– At simulation time: debugging on virtual prototyping
environment
Feb. 14, 2006
Soonhoi Ha, SNU
9
Contents
•
•
•
•
•
Introduction
Proposed Design Flow
Key Techniques
Status
Conclusion
Feb. 14, 2006
Soonhoi Ha, SNU
10
Proposed design flow
• Model-based programming
– PeaCE model (dataflow + FSM + task model)
– ESUML (embedded system UML) model
• CIC (Common Intermediate Code)
– OpenMP pragma + generic API
• Static Analysis
– Buffer overrun, memory leak, null dereference, stack size
• Virtual prototyping
– Performance and power estimation
– with source-level debugging capability
Feb. 14, 2006
Soonhoi Ha, SNU
11
Software Module Interface
results
GUI SW Platform
ESUML_Modeler
Document generation
Block library DB
PeaCE_Modeler
PeaCE_Partitioner
ESUML_Verifier
ESUML_Partitioner
HW component DB
C-code static analyzer
Power analysis module
Performance analysys module
Common Intermediate Code (CIC): task_graph.cic
Generic API
Generic parallel API
proc. code with generic API parallel API
OpenMP translator
OS API Translator Comm. API Lib.
Code Synthesizer
{processorX.c}
proc. code with OS proc. code without OS
Verification OS
ARM processor simulation
MPI Library
virtual prototype system
MPSoC {prototype system}
Feb. 14, 2006
Soonhoi Ha, SNU
12
{Application_graph.xml}
user command
App_classDiagram.xml
results App_seqDiagram.xml
Action semantics
GUI SW Platform
Application_graph.xml
user command
ESUML_Modeler
Document gen. sched.xml
Block perf. DB
▼공동 1
PeaCE_Modeler
Task_graph.xml
PeaCE_Partitioner
TimeCost.xml
archi.xml
User_command
sched.xml
ESUML_Verifier
ESUML_Partitioner
Common Intermediate Code (CIC): task_graph.cic
Feb. 14, 2006
Soonhoi Ha, SNU
13
HW component DB
C-code static analyzer
Power estimation
Perf. estimation
Common Intermediate Code (CIC): task_graph.cic
Generic API
openMP pragma
proc. Code(generic API) parallel API
OpenMP translator
OS API Translator comm API Lib.
Code Synthesizer
{processorX.c}
processorX.
elfISS
ARM
code w/ OS
Verification OS
virtual prototype system
Function symbol table
Cycle-level execution
trace
Feb. 14, 2006
processor
parameter
code w/o OS
MPI Library
MPSoC {prototype system}
Soonhoi Ha, SNU
14
Demo 1. HOPES Design Flow
• Model-based programming (ex: divx player)
– PeaCE Model
• Dataflow + (FSM) + task model
– Fault simulation
• sample rate inconsistency
(Y;U;V= 3:1:1)
• deadlock error
– Functional simulation
• Host machine
Feb. 14, 2006
Soonhoi Ha, SNU
15
Demo 1. HOPES Design Flow (2)
• C code static analysis
– Buffer overrun error detection
– Fault simulation: wrong array
size in “AviFileReader task”
•
Runtime verification
– Simulation with Realview ARM
debugger
– Fault simulation
• Logical error insertion
Feb. 14, 2006
Soonhoi Ha, SNU
16
Demo 2. HOPES (single task)
• Single task example: H.263
decoder
• C-code static analysis
• Performance and power
estimation
– Custom-designed ARM Simulator
– Per-function estimation
• Runtime verification
– Source level debugging
– Fault simulation : logical error
insertion
Feb. 14, 2006
Soonhoi Ha, SNU
17
HOPES flow for single processor
HOPES GUI
perf. And power
estimation
Xml files (topology, property)
PeaCE code gen.
- CIC(xml)
- CIC(.cic)
ARM ISS
C code static
analysis
CIC code with
Generic API, OpenMP pragma
Manual
for now
OpenMP translator
CIC code
With Generic API
Code Synthesizer
- C code, Executable
Feb. 14, 2006
Executable
With target API
CIC xml
Generic API tranformer
C codes
With Generic API
Soonhoi Ha, SNU
18
Demo 3. UML 2.0 –based Modeling
• ESUML : Embedded Software modeling with
UML 2.0
feedback
Embedded
S/W Needs
Target
MPSoC
Simulation Trace
Environment
Interface
Controller
Heater
PushButton()
HeaterOn()
Heat()
Heat_OK
DisplayHeat()
Analysis &
Design
ESUML Modeler
Feb. 14, 2006
Verification
& Validation
ESUML Statis analyzer
Code Gen. &
Optimization
ESUML Simulator
Soonhoi Ha, SNU
19
ESUML
• Model – Driven Application Development
Requirements Capturing
Use-Case
model
PIM Modeling
Structural Behavioral
model
model
Model Verification
Static Analysis
PSM Modeling
H/W architecture model
Physical model
PIM : Platform Independent Model
PSM : Platform Specific Model
Feb. 14, 2006
Model Simulation
Code Generation
CIC
code
Java
code
Soonhoi Ha, SNU
20
ESUML Characterisitcs
• Light-Weight Development Methodology
Concepts
Process
Real-Time Embedded Software
Interaction-based Behavior Modeling
Large-Scale System
ESUML
Notations
Use Case Diagram
Class Diagram
Interaction Overview Diagram
Sequence Diagram
Hardware Architecture Diagram
Feb. 14, 2006
Requirement Capturing
PIM and PSM modeling
Analysis
Code Generation
Rules
Event-Based Modeling
Hierarchical Decomposition
Modeling Guidelines and Tips
Soonhoi Ha, SNU
21
ESUML Characteristics
• Hierarchical Modeling
• Interaction-based Behavior Modeling
UCD
use case 1
Scenarios
use case 2
use case 3
IOD of UC1
X
Global IODs
B
A
C
IOD of UC3
IOD of UC2
Y
Global behavioral
SDs of Xview
SDs of Z
SDs of Y
SDs of X
Feb. 14, 2006
Soonhoi Ha, SNU
22
PSM Modeling (To-Be)
• PSM Modeling : Physical Model
SRAM1
ARM1
S_SRAM1
SRAM2
ARM2
RDRAMCtrl
AHB_1
DCTIDCT
AHBtoAHB
Bridge
DMACtrl
AHBtoAPB
Brdige
AHB2
GPIOCtrl
I2CCtrl
APB1
sd Cook
P11_ActiveMain
ARMSub
ref
Waiting
CookButtonPressed
DoorOpened
ref
Door Opened
DoorClosed
ref
Door Closed
S_SRAM2
TFTLCD
Ctrl
AudCodec
IntrCtrl
UARTCtrl
P12_ActiveSub2
[ Door. isOpen()==false]
[ Door. isOpen()==true]
ref Cook Button Pressed
sd Single Beep
Add60Sec
Timer
OvenCtrl
StartTimer
beep()
CookButtonPressed
CancelButtonPressed
TimerExpired
P20_ActiveSub1
P30_PostProcessing
Feb. 14, 2006
Automatically
Recommended Partition
Beeper
ref
Cooking Complete
DoorOpened
Add60Sec
Timer
ref
Cancel Button Pressed
ref
DoorOpened
StopTimer
+
Modeler
Enforced Partition
Soonhoi Ha, SNU
23
ESUML Code Gen. (To-Be)
• Platform Independent Code Generation
PIM/PSM Models
C
CIC
Code Generator
Feb. 14, 2006
JAVA
C++
Soonhoi Ha, SNU
24
ESUML Verification and Validation
• Rule-based consistency analyzer
– Intra-model, inter-model, action-language
64
Rules
Feb. 14, 2006
Soonhoi Ha, SNU
25
ESUML Simulator
Simulation result
MicroOven.XMI File
Simulation
Simulation Trace
Trace
Environment
Interface
Controller
Heater
PushButton()
(4) output
(1) input
HeaterOn()
Heat()
Heat_OK
DisplayHeat()
(3) output
CFG
Generation
Simulation
Engine
(2) input
(5) save
SimMicroOven.txt
(5) modify model (if needed)
Define Scenario
Feb. 14, 2006
Feedback to Modeler
Soonhoi Ha, SNU
26
Contents
• Introduction
• Proposed Design Flow
• Key Techniques
– PeaCE Modeling
– CIC & Generic API
– Static Analysis
• Status
• Conclusion
Feb. 14, 2006
Soonhoi Ha, SNU
27
PeaCE Model
• Top model: Task model
• Computation task model: Dataflow model
– Extended SDF model: SPDF (Synchronous Piggybacked Data
Flow) and FRDF (Fractional Rate Data Flow)
• Control task model: FSM model
– Hierarchical and concurrent FSM model: fFSM (flexible Finite
State Machine)
Feb. 14, 2006
Soonhoi Ha, SNU
28
PeaCE Project
• PeaCE
– Ptolemy extension as a Codesign Environment
based on Ptolemy classic
– open-source research platform
– Officially released in DAC 2005. (version 1.0)
• PeaCE home page
– http://peace.snu.ac.kr/research/peace
Feb. 14, 2006
Soonhoi Ha, SNU
29
Seamless HW/SW Codesign Flow
1
Func.
Simulation
4
1
2
3
5
6
7
Algorithm spec.
2
Architecture
templates
4 Graph Analysis
8
clustered.xml
5
3
TimeCost.xml
.
Profiling
3
DB
PE Selection
Partition & mapping
sched.xml
6 3
7 3
8
3
PE Code generation
C-code +
C-code
OS API
Block Lib.
VHDL-code
Comm. arch DSE3
6
Archi.xml
Feb. 14, 2006
IF Code generation
3
7 3
8
Coverification & Prototyping
Soonhoi
Ha, SNU
30
Divx Player: Top Model
Feb. 14, 2006
Soonhoi Ha, SNU
31
H.264 Decoder
if-then-else construct
Feb. 14, 2006
Soonhoi Ha, SNU
32
SPDF Model
• Basic SDF Model
– A node represents a function block (ex: FIR, DCT)
– A block is fireable (executable when it receives all required
number of input samples)
– Statically scheduled at compile-time:
sample rate inconsistency, deadlock condition
• Our extensions
– Generic message type data -> code generation only
– FRDF: fractional rate data flow
– SPDF: synchronous piggybacked dataflow
Feb. 14, 2006
Soonhoi Ha, SNU
33
Fractional Rate Dataflow
1/99
1/99
ME
1
1
16x16
EN
1
Schedule : 99(ME,EN)
The macro block is 1/99 of the video frame in its size.
For each execution of the ME node, it consumes a macro-block
from the input frame, and produces a macro-block output.
Feb. 14, 2006
Soonhoi Ha, SNU
34
FRDF (Fractional Rate DF)
1/99
Read
From
Device
1
1
Motion 1
Estimation
Macro 1
Block
Encoding
1
Variable
Length
Coding
1/99
1/99
Macro
1
Block
Decoding
Write
To
Device
Reference Code
SDF
FRDF
Buffer size
361KB
686KB
225KB
No. of frame
Type data
5
8
3
1/99
1
Feb. 14, 2006
1
Motion
Compensation
1
1/99
Soonhoi Ha, SNU
35
Synchronous Piggybacked Dataflow
• Global data structure with limited access
• Each data sample is piggybacked with an SU request
• A block updates its internal parameters depending
on applicability of SU request
State name
“gain”
….
SU
1st iteration
10
2nd iteration
20
“gain”=
“gain”=10
5
PD
piggyback
A
B
C
data
Feb. 14, 2006
Soonhoi Ha, SNU
36
SPDF (Synchronous Piggybacked DF)
• Piggybacking the control variable
• Special super-block definition for the body of DC
x
c
x
c
PB
A
B
MUX
A
B
1 0
Mux
y
y
Feb. 14, 2006
Soonhoi Ha, SNU
37
fFSM (flexible FSM) Model
• Hierarchical FSM
a
a
B
A
A
C
c/u
BC
b/v
D
b/v
b/v
b’c/u
BD
• Concurrent FSM
a
A
C
Feb. 14, 2006
b
c
ac’
AC
B
a’c
D
AD
bc’
ac
BC
bc
a
b
b’c
BD
Soonhoi Ha, SNU
38
fFSM + SPDF
suspend==1
divx
run
script in divxrun
{run divx}
start
suspend
stop
text
divxread
AVI
Reader
divx
suspend
start==1
script in divsuspend
{suspend divx} divx
stop==1/
tostart=1
script in divxstop
{stop divx}
divxstop
divx
MP3
Decoder
scripts in divx
{deliver ui filename divxread filename}
{run divx}
text==4
exitDivx
1
==1
start
tostart==1
Feb. 14, 2006
exit
H.263
Decoder
exit
script in exit state
{get divx exit exitDivx}
Soonhoi Ha, SNU
39
Task Model
• Task execution semantics
– periodic, sporadic, functional
• Port properties
– data rate : static or dynamic
– data size : static or variable
– port type : queue or buffer
periodic
AviReader
Feb. 14, 2006
H.263
decoder
MP3
decoder
Execution Type
Basic Task Block
(SDF or FSM)
port
semantic
Task Wrapper
Soonhoi Ha, SNU
40
CIC Code Generation
• Application tasks
– Task in task-level specification model  task_name.cic
• Generic API
• Partitioning considering data parallelism
– openMP programming
void h263decoder_go (void) {
...
l = MQ_RECEIVE("mq0", (char *)(ld_106->rdbfr), 2048);
...
# pragma omp parallel for
for(i=0; i<99; i++) {
//thread_main()
....
}
// display the decode frame
dither(frame);
Soonhoi Ha, SNU
Feb. }
14, 2006
41
CIC Format
Architecture
Hardware
Constraints
Structure
Feb. 14, 2006
Task Code
Kernel code
_init()
_go()
_wrapup()
Generic API Parallel API
Soonhoi Ha, SNU
42
DivX player CIC xml (Hardware)
<?xml version="1.0" ?>
<CIC_XML>
<hardware>
<processor name="arm926ej-s0">
<index>0</index>
<localMem name=“lmap0”>
<addr>0x0</addr>
<size>0x10000</size> // 64KB
</localMem>
<sharedMem name=“shmap0”>
<addr>0x10000</size>
<size>0x40000</size> // 256KB
<sharedWith>1</sharedWith>
</sharedMem>
<OS>
<support>TRUE</support>
</OS>
</processor>
Feb. 14, 2006
<processor name="arm926ej-s1">
<index>0</index>
<localMem name=“lmap1”>
<addr>0x0</addr>
<size>0x20000</size> // 128KB
</localMem>
<sharedMem name=“shmap1”>
<addr>0x20000</size>
<size>0x40000</size> // 256KB
<sharedWith>0</sharedWith>
</sharedMem>
<OS>
<support>TRUE</support>
</OS>
</processor>
</hardware>
Soonhoi Ha, SNU
43
Hardware Architectures
0x0
Local
Mem
P1
TCM
P2
shared=NO
0x0
shared=NO
0x10000
0x20000
shared=YES
shared=YES
0x50000
0x60000
Shared Mem
P1
P2
P3
SM1
Feb. 14, 2006
SM2
Soonhoi Ha, SNU
44
DivX player CIC xml (Constraint)
<constraints>
<memory>16MB</memory>
<power>50mWatt</power>
<mode name="default">
<task name="AviReaderI0">
<period>120000</period>
<deadline>120000</deadline>
<priority>0</priority>
<subtask name="arm926ej-s0">
<execTime>186</execTime>
</subtask>
</task>
<task name="H263FRDivxI3">
<period>120000</period>
<deadline>120000</deadline>
Feb. 14, 2006
<priority>0</priority>
<subtask name="arm926ej-s0">
<execTime>5035</execTime>
</subtask>
</task>
<task name="MADStreamI5">
<period>120000</period>
<deadline>120000</deadline>
<priority>0</priority>
<subtask name="arm926ej-s0">
<execTime>13</execTime>
</subtask>
</task>
</mode>
</constraints>
Soonhoi Ha, SNU
45
DivX player CIC xml (Structure)
<structure>
<mode name="default">
<task name="AviReaderI0">
<subtask name="arm926ej-s0">
<procMap>0</procMap>
<fileName>AviReaderI0_arm926ej_s0.cic</fileName>
</subtask>
</task>
<task name="H263FRDivxI3">
<subtask name="arm926ej-s0">
<procMap>0</procMap>
<fileName>H263FRDivxI3_arm926ej_s0.cic</fileName>
</subtask>
</task>
<task name="MADStreamI5">
<subtask name="arm926ej-s0">
<procMap>0</procMap>
<fileName>MADStreamI5_arm926ej_s0.cic</fileName>
</subtask>
</task>
</mode>
Feb. 14, 2006
<queue>
<name>mq0</name>
<src>AviReaderI0</src>
<dst>H263FRDivxI3</dst>
<size>30000</size>
</queue>
<queue>
<name>mq1</name>
<src>AviReaderI0</src>
<dst>MADStreamI5</dst>
<size>30000</size>
</queue>
</structure>
</CIC_XML>
Soonhoi Ha, SNU
46
Task Code: Structure
• Task kernel code
– _init(): before main loop
– _go(): in the main loop
– _wrapup(): after main loop
(example) h263dec.cic
// header file
// global declaration and definition
// procedure definition
h263dec_init() { … }
h263dec_go() { … }
h263dec_wrapup() { … }
Feb. 14, 2006
Soonhoi Ha, SNU
47
Generic API
• Generic API
– OS-indepednent API
– API translator to OS-specific APIs
• Generic API Definition
– Abstraction from IEEE POSIX 1003.1-2004
– OS services:
• Process, memory, synchronization, file system, networking, real-time,
thread, I/O, timer, etc.
– C library functions based on use frequency
• stdio.h, stdlib.h, time.h, signal.h
Feb. 14, 2006
Soonhoi Ha, SNU
48
function
C Library
Memory
Synchronization
File system
IPC
Network
Realtime
Thread
I/O
Timer
Total
Feb. 14,
2006
total API
26
65
68
30
8
3
79
68
14
100
5
9
79
10
10
14
18
10
10
8
100
8
6
1
30
4
Generic
API
정의
Signal, I/O, Time
Process
OS Services
header
signal.h
stdio.h
stdlib.h
time.h
sched.h
sys/wait.h
unistd.h
stdlib.h
sys/mman.h
pthread.h
fcntl.h
sys/stat.h
unistd.h
mqueue.h
semaphore.h
sys/mman.h
sys/socket.h
mqueue.h
semaphore.h
sched.h
pthread.h
stropts.h
sys/select.h
poll.h
time.h
sys/time.h
18
464
Selected API
Generic API
2
19
5
3
3
1
13
5
4
21
1
2
13
8
8
4
11
8
8
3
21
1
1
1
3
3
2
10
3
3
3
1
13
3
4
12
1
2
13
5
3
4
9
5
3
3
12
1
1
1
3
3
107Soonhoi Ha, SNU 77 49
OS API Translator
• OS API Translator
CIC’s Task Code
APIs, Patterns, and Rules
register
modify
OS API Translator
Translation pattern and rules
Code Analysis
Symbol Table
Construction
Generic APIs
Transformation
Rules
POSIX APIs
Transformation
Non-POSIX APIs
Pattern mapping
- 1-to-1, 1-to-m, n-to-m
- initialize/finalize
- acquire/release
parameters
- type, number, value
Variable names
- naming of additional
variables
OS-Specific C Code
Feb. 14, 2006
Soonhoi Ha, SNU
50
Airac5
• Static Analyzer for Detecting All Buffer Overrun Errors
in C Programs
• Keywords
–
–
–
–
–
–
–
static program analysis: abstract interpretation
C: ANSI C + somje GNU C extensions
all: detects all buffer-overrun places
statically: at compile-time
always stops: finishes even for infinite-loop programs
modular: separate C files
correct: based on a firm theoretical framework
• SAS’05, BUGS’05
• being in use inside Samsung and LG
Feb. 14, 2006
Soonhoi Ha, SNU
51
Airac5’s Performance(1/3)
on P4, 3.2GHz, 4GB
Linux kernel-2.6.4
Software
#Lines
Time(sec)
#Alarms
#Bugs
vmax301.c
246
7.42
1
1
cdc-acm.c
849
17.66
7
2
atkbd.c
944
4.20
3
2
eata-pio.c
984
15.45
16
1
ip6_output.c
1110
47.69
0
0
xfrm_user.c
1201
56.52
4
1
keyboard.c
1256
90.42
31
1
af_inet.c
1273
186.06
12
2
usb-midi.c
2206
53.98
12
4
mptbase.c
6158
206.04
12
1
Feb. 14, 2006
Soonhoi Ha, SNU
52
Airac5’s Performance(3/3)
Comparison with Coverity’s SWAT
Program
(LOC)
vmax301.c(246)
#Time
(sec)
SWAT
#Alarms
#Alarms
#Real
Bugs
7.42
1
1
1
xfrm_user.c(1201)
56.52
4
1
1
usb_midi.c(2206)
53.98
12
2
4
4.20
3
2
2
90.42
31
1
1
af_inet.c(1273)
186.06
12
1
2
eata_pio.c(984)
15.45
16
1
1
cdc_acm.c(849)
17.66
7
1
2
ip6_output.c(1110)
47.69
0
1
0
206.04
12
1
1
98.49
4
1
1
atkbd.c(944)
keyboard.c(1256)
mptbase.c(6158)
aty128fb.c(2466)
Feb. 14, 2006
Airac5
Soonhoi Ha, SNU
53
Airac5’s Performance(2/3)
GNU applications
Software
#Lines
Time(sec)
#Alarms
#Bugs
tar-1.13
20258
2003
76
1
bison-1.875
25907
7050
30
0
sed-4.0.8
6053
256
5
0
gzip-1.2.4a
7327
330
50
0
grep-2.5.1
9297
1314
24
0
• Statistical technique ranks the alarms
• Linear regression statistical analysis
• Users see truer alarms first
• 4.10% of false alarms mixed up until 50% of true alarms seen
Feb. 14, 2006
Soonhoi Ha, SNU
54
Airac5 Available
ropaswork.com/airac5
• free-trial version
• performance data
• on-line demo
• etc informationqq
Feb. 14, 2006
Soonhoi Ha, SNU
55
Contents
•
•
•
•
•
Introduction
Proposed Design Flow
Key Techniques
Status
Conclusion
Feb. 14, 2006
Soonhoi Ha, SNU
56
Status (1)
• CIC and Generic API translator
– Translator for single processor
– To-do
• openMP translator
• support on more APIs
• Target specific API libraries
– ARM multi-processor platform for now
– To-do
• Libraries for a real MPSoC platform
Feb. 14, 2006
Soonhoi Ha, SNU
57
Status (2)
• Virtual Prototyping
– 1st version of ARM simulator and debugger
– To-do
• Multiprocessor system simulator and source level debugger
• OS porting on the ISS
• Performance and power estimation
– Function-based estimation for ARM processor
– To-do
• system-level estimation, other processors
Feb. 14, 2006
Soonhoi Ha, SNU
58
Conclusion
• HOPES is a newly launched project to make a
embedded software development environment for
MPSoCs
– Support of diverse models
– Target independent environment + target specific libraries
– 3-phase verification: model-level, C code static analysis, runtime simulation
– Integration of software modules at various stages
– http://peace.snu.ac.kr/hopes (sorry, only Korean for now)
Feb. 14, 2006
Soonhoi Ha, SNU
59
Thank you !
Feb. 14, 2006
Soonhoi Ha, SNU
60