http://cadena.projects.cis.ksu.edu santos laboratory, kansas state university, usa cadena: analyzing...

63
http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component-based Embedded System Designs Matthew Dwyer John Hatcliff Support US Army Research Office (ARO) US National Science Foundation (NSF) US Department of Defense Advanced Research Projects Agency (DARPA) Rockwell-Collins ATC Boeing Lockheed Martin IBM Xianghua Deng http://bogor.projects.cis.ksu.edu Matt Hoosier Robby

Post on 22-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

http://cadena.projects.cis.ksu.edu

SAnToS Laboratory, Kansas State University, USA

Cadena: Analyzing Component-based Embedded System Designs

Matthew DwyerJohn Hatcliff

SupportUS Army Research Office (ARO)US National Science Foundation (NSF)US Department of Defense Advanced Research Projects Agency (DARPA)

Rockwell-Collins ATCBoeingLockheed Martin IBM

Xianghua Deng

http://bogor.projects.cis.ksu.edu

Matt Hoosier

Robby

Page 2: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Distributed Real-time Embedded Systems

Distributed Real-time Embedded Systems

Mission-control software for Boeing military aircraft

Boeing’s Bold Stroke Avionics Middleware (PRISM)

…built on top of ACE/TAO RT CORBA

Software Communications Architecture (SCA) of the Joint Tactical Radio System (JTRS)

CORBA-based middleware with radio-specific services

Multiple vendors (Rockwell-Collins), government branches

Fire-effects cell control software for HIMARS/MLRS

Component-oriented redesign of legacy Ada system

Lockheed Martin (Eagan, Dallas)

Page 3: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component-based Design

Cadena development environment allows model-based development of applications using the CORBA Component

Model (CCM)

Component DevelopmentComponent

Development

CCMComponent

Input event port

Outputevent port

EventPorts

Require aninterface

Provide an interface

Interface Ports

Page 4: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Control-Push Data-Pull

Component A computes some data that is to be read by one or more components Bi

Typical situation

A

B1

Bk

Run-time ActionsA publishes a dataAvailable event

Bi call the getData() method of A to fetch the data

dataAvailable

dataAvailable

getData()

Depending on current state, component may not fetch data

Depending on current state, component may not fetch data

Page 5: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Control-Push Data-Pull Structure

1. Logical GPS component receives a periodic event indicating that it should read the physical GPS device.2. Logical GPS publishes DATA_AVAILABLE event

3. Airframe component fetches GPS data by calling GPS GetData method4. Airframe updates its position data and publishes DATA_AVAILABLE event5. NavDisplay component fetches AirFrame data by calling AirFrame GetData method6. NavDisplay updates the physical display

1

2

3

44

5

6

Input

Output

Page 6: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Example System

Page 7: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Example SystemBasic components seen earlier

Basic components seen earlier

Page 8: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Example SystemNavigation Steering Subsystem

Navigation Steering Subsystem

Page 9: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Example System

Tactical Steering Subsystem

Tactical Steering Subsystem

Page 10: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Example System

Display Control

Display Control

on/off

on/off

Page 11: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component IDL

CORBA 3CCM IDLModalSP Components

Page 12: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component IDL

CORBA 3CCM IDLModalSP Components

Page 13: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component IDL

output data port (facet)

output data port (facet)

CORBA 3CCM IDLModalSP Components

Page 14: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component IDL

input data port (receptacle)

input data port (receptacle)

CORBA 3CCM IDLModalSP Components

Page 15: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component IDL

output event port (event source)

output event port (event source)

CORBA 3CCM IDLModalSP Components

Page 16: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component IDL

input event port (event sink)

input event port (event sink)

CORBA 3CCM IDLModalSP Components

Page 17: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component IDL

mode attributemode attribute

CORBA 3CCM IDLModalSP Components

Page 18: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component Behavior

component BMModal { uses ReadData dataIn; consumes DataAvailable inDataAvailable; publishes DataAvailable outDataAvailable; provides ReadData dataOut; provides ChangeMode modeChange;

enum Modes (enabled,disabled); Modes m;

behavior { handles dataInReady (DataAvailable e) { case m of enabled { dataOut::data <- dataIn.getData(); push {} dataOutReady; } disabled {} } …

mode declaration using CORBA IDL

mode declaration using CORBA IDL

Page 19: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component Behavior

component BMModal { uses ReadData dataIn; consumes DataAvailable inDataAvailable; publishes DataAvailable outDataAvailable; provides ReadData dataOut; provides ChangeMode modeChange;

enum Modes (enabled,disabled); Modes m;

behavior { handles dataInReady (DataAvailable e) { case m of enabled { dataOut::data <- dataIn.getData(); push {} dataOutReady; } disabled {} } …

behavior for events on dataInReady port

behavior for events on dataInReady port

Page 20: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component Behavior

component BMModal { uses ReadData dataIn; consumes DataAvailable inDataAvailable; publishes DataAvailable outDataAvailable; provides ReadData dataOut; provides ChangeMode modeChange;

enum Modes (enabled,disabled); Modes m;

behavior { handles dataInReady (DataAvailable e) { case m of enabled { dataOut::data <- dataIn.getData(); push {} dataOutReady; } disabled {} } …

behavior mode casesbehavior mode cases

Page 21: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component Behavior

component BMModal { uses ReadData dataIn; consumes DataAvailable inDataAvailable; publishes DataAvailable outDataAvailable; provides ReadData dataOut; provides ChangeMode modeChange;

enum Modes (enabled,disabled); Modes m;

behavior { handles dataInReady (DataAvailable e) { case m of enabled { dataOut::data <- dataIn.getData(); push {} dataOutReady; } disabled {} } …

data flow specification

data flow specification

Page 22: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component Behavior

component BMModal { uses ReadData dataIn; consumes DataAvailable inDataAvailable; publishes DataAvailable outDataAvailable; provides ReadData dataOut; provides ChangeMode modeChange;

enum Modes (enabled,disabled); Modes m;

behavior { handles dataInReady (DataAvailable e) { case m of enabled { dataOut::data <- dataIn.getData(); push {} dataOutReady; } disabled {} } … publish eventpublish event

Page 23: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Component-based Design

Cadena development environment allows model-based development of applications using the CORBA Component

Model (CCM)

Component IntegrationComponent Integration…up to 1000+ components

Page 24: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

RT Middleware-based Implementation

Real Time Event Channel (from ACE/TAO RT CORBA)

CORBALevelCORBALevel

Event channel

Page 25: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

RT Middleware-based Implementation

Real Time Event Channel (from ACE/TAO RT CORBA)

CORBALevelCORBALevel

Event channelAbstractly…Abstractly…

produceproduce

consumeconsume

Page 26: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

RT Middleware-based Implementation

Real Time Event Channel (from ACE/TAO RT CORBA)

CORBALevelCORBALevel

Event channel

…Thread Pool

60Hz 20Hz 5Hz 1Hz

… … ……

correlation & filtering

proxy consumer holds list of consumer

references

proxy consumer holds list of consumer

references

consumer refs

dispatch queues for each rate

group

dispatch queues for each rate

group

Threads run call-backs associated with event consumer ports

Threads run call-backs associated with event consumer ports

consumeconsume

produceproduce

In reality…In reality…

Page 27: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Domain-Specific ModelingBogor -- Extensible Modeling Language

Core Modeling Language

Threads,Objects,Methods,Exceptions, etc.

New Bogor primitives corresponding toEvent Channel API

+

publish()

subscribe()

push()

connect()

disconnect()…

Event publish() {

Bogor API calls…}

Java implementation of new primitives inside model-checker

Event connect() {

Bogor API calls…}

Page 28: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Bogor Modeling Extensions

Bogor extensions for representing event-channel queue data structures

…Thread Pool

60Hz 20Hz 5Hz 1Hz

… … ……

correlation & filtering

Page 29: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Bogor Modeling Extensions

Bogor extensions for representing CCM component API

…Thread Pool

60Hz 20Hz 5Hz 1Hz

… … ……

correlation & filtering

Page 30: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Bogor Algorithm Customization

Bogor default modules are unplugged and replaced with state representation, scheduling and search strategies customized to the Bold Stroke domain

BogorModulesBogorModules

IActionTaker

IExpEvaluator

IValueFactory

IBacktrackIF

ITransformer

ISchedulingStg

ISearcher

IStateFactory

IStateMgr

PrioritySchedS

PartialStMgr

LTSearcher

Page 31: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Bogor Customized To CadenaBogor -- Extensible Modeling Language

Core Modeling Language

Threads,Objects,Methods,Exceptions, etc.

+Extensions

Sets

Queues

Tables

RT CORBAEvent Service

API Abstraction

Domain-specific Abstractions

+

Event Service

SchedulingLazy Time

SearchPartial State

Representation

Bogor -- Customizable Checking Engine ModulesSchedulingStrategy

State-spaceExploration

StateRepresentation

Core Checker Modules Customized Checker Modules

…existing modules…

Page 32: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Assessments of Previous WorkCadena dSPIN

(ICSE’02)Bogor

(FMCO’02)

Boeing ModalSP 3 rate groups 8 components 125 events per hp

1.4 M states58 sec130 MB

9.1 K states8.59 sec1.61 MB

Boeing MediumSP 2 rate groups 50 components 820 events per hp

740 K states3 min21.5 MB

X want to check realistically-sized model

aggressive reductions are essential, but not enough

Page 33: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Possible Solutions

pro: don’t store any states cons: time required is too great because of high

degree of non-determinisms due to abstract nature of design models

Stateless search (Godefroid ’97)

keep an a priori bounded cache of states; discard to make room for others if the cache is full

pro: minimum memory requirement is space needed to store states in longest DFS stack

cons: selection of cache size

State caching (Godefroid ’93)

Page 34: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Key Observation

use the structure of periodic systems to decompose the state space search

Leverage patterns of periodic computation

Page 35: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Leveraging Periodic Structure

break the search into several regions divide the problem into smaller problems

1 Hz

Periodic Tasks

5 Hz

10 Hz

Hyper-period

“Macro-state” S1

Basic Idea

Hyper-period

S2

Hyper-period

S3

Page 36: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Leveraging Periodic Structure

Common values in macro-state: dispatch queues empty, threads idle, correlators are at initial state

Different values in macro-state: component/system mode values are different

1 Hz

Periodic Tasks

5 Hz

10 Hz

Hyper-period

“Macro-state” S1

Macro-state Structure

Hyper-period

S2

Hyper-period

S3

Page 37: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Quasi-Cyclic StructureTrace Structure

S3

Macro-states

S4

S2

S1These successive macro-states may be different (acyclic)…

…but a portion of each of the states is repeating…

equal

equal

equal …and so we say that the state-space is quasi-cyclic.

Page 38: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Quasi-Cyclic Structure

Many applications with control-loops have this property GUIs, web-servers,

… Use a predicate Φ

to characterize the repeating portion

Trace Structure Macro-states

S3

S4

S2

S1

equal

equal

equal

Generalizing

Φ-conforming

Φ-conforming

Φ-conforming

Φ-conforming

Φ-statesΦ-states

Page 39: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Φ-Bounded SearchTrace Structure Global State Store

Φ0

Region State Store

Φ0

Place initial Φ-state in global store, and begin state exploration.

Place initial Φ-state in global store, and begin state exploration.

Page 40: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Φ-Bounded SearchTrace Structure Global State Store

Φ0

Region State Store

Φ0

Φ1

Φ0

Place states in region

state store until Φ-state is encountered.

Place states in region

state store until Φ-state is encountered.

Page 41: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Φ-Bounded SearchTrace Structure Global State Store

Φ0

Region State Store

Φ0

Φ1

Φ0

Place Φ-state into global store

Place Φ-state into global store

, Φ1

Page 42: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Φ-Bounded SearchTrace Structure Global State Store

Φ0

Region State Store

Φ0

Φ1

Flush region state store

Flush region state store

, Φ1

Page 43: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Φ-Bounded SearchTrace Structure Global State Store

Φ0

Region State Store

Φ0

Φ1

, Φ1

Φ3Φ2

Place states in region

state store until Φ-state is encountered.

Place states in region

state store until Φ-state is encountered.

Page 44: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Φ-Bounded SearchTrace Structure Global State Store

Φ0

Region State Store

Φ0

Φ1

, Φ1

Φ3Φ2

Non-determinism in region generated two Φ-states. Put these into global state store.

Non-determinism in region generated two Φ-states. Put these into global state store.

, Φ2 , Φ3

Page 45: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Φ-Bounded SearchTrace Structure Global State Store

Φ0

Region State Store

Φ0

Φ1

, Φ1

Φ3Φ2

, Φ2 , Φ3

Flush region state store

Flush region state store

Page 46: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Φ-Bounded SearchTrace Structure Global State Store

Φ0

Region State Store

Φ0

Φ1

, Φ1

Φ3Φ2

, Φ2 , Φ3

Explore these regions until Φ states encountered

Explore these regions until Φ states encountered

Φ5Φ4

Page 47: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Φ-Bounded SearchTrace Structure Global State Store

Φ0

Region State Store

Φ0

Φ1

, Φ1

Φ3Φ2

, Φ2 , Φ3

Φ5Φ4

Φ4 , Φ5

Page 48: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

(l3,0,5)

(l1,0,0)

(l3,0,0)

(l2,0,0)

(l3,0,2)

(l5,2,2)

(l4,2,0)

(l2,2,2)

(l3,0,3)

(l5,3,3)

(l4,3,0)

(l2,3,3)

(l3,0,4)

(l2,2,4)

(l5,2,4)

(l4,2,2)

(l2,3,5)

(l5,3,5)

(l4,3,2) (l4,2,3)

(l5,2,5)

(l2,2,5)

(l4,3,3)

(l5,3,6)

(end,3,6)

(l5,2,6)

(l4,2,4)

(end,2,6)

(l5,3,7)

(l4,3,4)

(end,3,7)

(l5,2,7)

(l4,2,5)

(end,2,7)

(l5,3,8)

(l4,3,5)

(end,3,8)

l1: y = 0; goto l2;l2: x = 0; goto l3;l3: true -> x = 2; goto l4; true -> x = 3; goto l4;l4: y = y + x; goto l5;l5: y > 5 -> skip; goto end; y <= 5 -> skip; goto l2;end:

A Quasi-cyclic System: Example

Page 49: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

(l3,0,5)

(l1,0,0)

(l3,0,0)

(l2,0,0)

(l3,0,2)

(l5,2,2)

(l4,2,0)

(l2,2,2)

(l3,0,3)

(l5,3,3)

(l4,3,0)

(l2,3,3)

(l3,0,4)

(l2,2,4)

(l5,2,4)

(l4,2,2)

(l2,3,5)

(l5,3,5)

(l4,3,2) (l4,2,3)

(l5,2,5)

(l2,2,5)

(l4,3,3)

(l5,3,6)

(end,3,6)

(l5,2,6)

(l4,2,4)

(end,2,6)

(l5,3,7)

(l4,3,4)

(end,3,7)

(l5,2,7)

(l4,2,5)

(end,2,7)

(l5,3,8)

(l4,3,5)

(end,3,8)

l1: y = 0; goto l2;l2: x = 0; goto l3;l3: true -> x = 2; goto l4; true -> x = 3; goto l4;l4: y = y + x; goto l5;l5: y > 5 -> skip; goto end; y <= 5 -> skip; goto l2;end:

A Quasi-cyclic System: Example

Page 50: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Quasi-cyclic Search: Example

(l1,0,0) Φ: pc = l3 Æ x = 0

Global States = {}

Queue = {}

l1: y = 0; goto l2;l2: x = 0; goto l3;l3: true -> x = 2; goto l4; true -> x = 3; goto l4;l4: y = y + x; goto l5;l5: y > 5 -> skip; goto end; y <= 5 -> skip; goto l2;end:

Page 51: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Quasi-cyclic Search: Example

(l1,0,0)

(l3,0,0)

(l2,0,0)

l1: y = 0; goto l2;l2: x = 0; goto l3;l3: true -> x = 2; goto l4; true -> x = 3; goto l4;l4: y = y + x; goto l5;l5: y > 5 -> skip; goto end; y <= 5 -> skip; goto l2;end:

Φ: pc = l3 Æ x = 0

Global States = {}

Queue = {0}

Page 52: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Queue = {}

Quasi-cyclic Search: Example

(l1,0,0)

(l3,0,0)

(l2,0,0)

(l3,0,2)

(l5,2,2)

(l4,2,0)

(l2,2,2)

(l3,0,3)

(l5,3,3)

(l4,3,0)

(l2,3,3)

l1: y = 0; goto l2;l2: x = 0; goto l3;l3: true -> x = 2; goto l4; true -> x = 3; goto l4;l4: y = y + x; goto l5;l5: y > 5 -> skip; goto end; y <= 5 -> skip; goto l2;end:

Φ: pc = l3 Æ x = 0

Global States = {0}

Queue = {2}Queue = {2,3}

Page 53: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Quasi-cyclic Search: Example

(l1,0,0)

(l3,0,0)

(l2,0,0)

(l3,0,2)

(l5,2,2)

(l4,2,0)

(l2,2,2)

(l3,0,3)

(l5,3,3)

(l4,3,0)

(l2,3,3)

(l3,0,4)

(l2,2,4)

(l5,2,4)

(l4,2,2)

(l3,0,5)

(l2,3,5)

(l5,3,5)

(l4,3,2) l1: y = 0; goto l2;l2: x = 0; goto l3;l3: true -> x = 2; goto l4; true -> x = 3; goto l4;l4: y = y + x; goto l5;l5: y > 5 -> skip; goto end; y <= 5 -> skip; goto l2;end:

Φ: pc = l3 Æ x = 0

Global States = {0,2}

Queue = {3}Queue = {3,4}Queue = {3,4,5}

Page 54: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Quasi-cyclic Search: Example

(l1,0,0)

(l3,0,0)

(l2,0,0)

(l3,0,2)

(l5,2,2)

(l4,2,0)

(l2,2,2)

(l3,0,3)

(l5,3,3)

(l4,3,0)

(l2,3,3)

(l3,0,4)

(l2,2,4)

(l5,2,4)

(l4,2,2)

(l2,3,5)

(l5,3,5)

(l4,3,2)

(l3,0,5)

(l4,3,3)

(l5,3,6)

(end,3,6)

(l4,2,3)

(l5,2,5)

(l2,2,5)

l1: y = 0; goto l2;l2: x = 0; goto l3;l3: true -> x = 2; goto l4; true -> x = 3; goto l4;l4: y = y + x; goto l5;l5: y > 5 -> skip; goto end; y <= 5 -> skip; goto l2;end:

Φ: pc = l3 Æ x = 0

Global States = {0,2,3}

Queue = {4,5}

Page 55: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Quasi-cyclic Search: Example

(l4,3,3)

(l5,3,6)

(end,3,6)

(l3,0,5)

(l1,0,0)

(l3,0,0)

(l2,0,0)

(l3,0,2)

(l5,2,2)

(l4,2,0)

(l2,2,2)

(l3,0,3)

(l5,3,3)

(l4,3,0)

(l2,3,3)

(l3,0,4)

(l2,2,4)

(l5,2,4)

(l4,2,2)

(l2,3,5)

(l5,3,5)

(l4,3,2) (l4,2,3)

(l5,2,5)

(l2,2,5)

(l5,2,6)

(l4,2,4)

(end,2,6)

(l5,3,7)

(l4,3,4)

(end,3,7)

l1: y = 0; goto l2;l2: x = 0; goto l3;l3: true -> x = 2; goto l4; true -> x = 3; goto l4;l4: y = y + x; goto l5;l5: y > 5 -> skip; goto end; y <= 5 -> skip; goto l2;end:

Φ: pc = l3 Æ x = 0

Global States = {0,2,3,4}

Queue = {5}

Page 56: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Quasi-cyclic Search: Example

(l4,3,3)

(l5,3,6)

(end,3,6)

(l5,2,6)

(l4,2,4)

(end,2,6)

(l3,0,5)

(l1,0,0)

(l3,0,0)

(l2,0,0)

(l3,0,2)

(l5,2,2)

(l4,2,0)

(l2,2,2)

(l3,0,3)

(l5,3,3)

(l4,3,0)

(l2,3,3)

(l3,0,4)

(l2,2,4)

(l5,2,4)

(l4,2,2)

(l2,3,5)

(l5,3,5)

(l4,3,2) (l4,2,3)

(l5,2,5)

(l2,2,5)

(l5,3,7)

(l4,3,4)

(end,3,7)

(l5,2,7)

(l4,2,5)

(end,2,7)

(l5,3,8)

(l4,3,5)

(end,3,8)

l1: y = 0; goto l2;l2: x = 0; goto l3;l3: true -> x = 2; goto l4; true -> x = 3; goto l4;l4: y = y + x; goto l5;l5: y > 5 -> skip; goto end; y <= 5 -> skip; goto l2;end:

Φ: pc = l3 Æ x = 0

Global States = {0,2,3,4,5}

Queue = {}

Page 57: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Quasi-cyclic Search: Example

(l4,3,3)

(l5,3,6)

(end,3,6)

(l5,2,6)

(l4,2,4)

(end,2,6)

(l3,0,5)

(l1,0,0)

(l3,0,0)

(l2,0,0)

(l3,0,2)

(l5,2,2)

(l4,2,0)

(l2,2,2)

(l3,0,3)

(l5,3,3)

(l4,3,0)

(l2,3,3)

(l3,0,4)

(l2,2,4)

(l5,2,4)

(l4,2,2)

(l2,3,5)

(l5,3,5)

(l4,3,2) (l4,2,3)

(l5,2,5)

(l2,2,5)

(l5,3,7)

(l4,3,4)

(end,3,7)

(l5,2,7)

(l4,2,5)

(end,2,7)

(l5,3,8)

(l4,3,5)

(end,3,8)

l1: y = 0; goto l2;l2: x = 0; goto l3;l3: true -> x = 2; goto l4; true -> x = 3; goto l4;l4: y = y + x; goto l5;l5: y > 5 -> skip; goto end; y <= 5 -> skip; goto l2;end:

Φ: pc = l3 Æ x = 0

Global States = {0,2,3,4,5}

Queue = {}

Page 58: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

(l3,0,4)(l3,0,5) (l3,0,5)

(l3,0,2) (l3,0,3)

(l3,0,0)

Quasi-cyclic Search: Example

(l4,3,3)

(l5,3,6)

(end,3,6)

(l5,2,6)

(l4,2,4)

(end,2,6)

(l3,0,5)

(l1,0,0)

(l3,0,0)

(l2,0,0)

(l3,0,2)

(l5,2,2)

(l4,2,0)

(l2,2,2)

(l3,0,3)

(l5,3,3)

(l4,3,0)

(l2,3,3)

(l3,0,4)

(l2,2,4)

(l5,2,4)

(l4,2,2)

(l2,3,5)

(l5,3,5)

(l4,3,2) (l4,2,3)

(l5,2,5)

(l2,2,5)

(l5,3,7)

(l4,3,4)

(end,3,7)

(l5,2,7)

(l4,2,5)

(end,2,7)

(l5,3,8)

(l4,3,5)

(end,3,8)

(l1,0,0)

(l3,0,0)

(l3,0,2) (l3,0,3)

(l3,0,5)(l3,0,4)

3

9

8 8

7 7

Page 59: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Quasi-cyclic Search: Example

3

9

8 8

7 7

Search each region independently

max of 9 versus 37 states in classical DFS

note that the sum here is >37

same states may appear in multiple regions

Regions can be searched in parallel

Works well when reasonable fraction of state

variables are cyclic low-degree of overlapping

between regions

Page 60: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Bogor Algorithm Customization

Bogor default modules are unplugged and replaced with state representation, scheduling and search strategies customized for Quasi-cyclic Search

BogorModulesBogorModules

IActionTaker

IExpEvaluator

IValueFactory

IBacktrackIF

ITransformer

ISchedulingStg

ISearcher

IStateFactory

IStateMgr

PrioritySchedS

PartialStMgr

LTSearcherQCSearcher

Page 61: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

Scaling #components in ModalSP

0

1000000

2000000

3000000

4000000

5000000

6000000

1 2 3 4 5 6

Classic v<=3

Cyclic v<=3

me

mor

y co

nsu

me

d

both searches have exponential time growth quasi-cyclic search takes more time (overlapping regions)

we’re seeing linear speedup in parallelizing QC search as problems scale there is sufficient available parallelism

Page 62: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

An Integrated Environment for Modeling, Analysis, Synthesis, and Optimization of Component-based Systems

I. Platform for real-world experimentation with technologies for building high-assurance distributed systems using CORBA Component Model

… light-weight specification, analysis, and verification techniques… model-based development,

middleware configuration, and code synthesis

… robust tool environment suitable for industrial experimentation

… customizable to different domains/product lines

II. Avenue for collaborating with industrial research teams and middleware experts to guide next-generation component/middleware technology… interacting with groups at Boeing,

Rockwell-Collins, Lockheed-Martin to develop techniques that match fit into development process

… collaborating with middleware experts (e.g., ACE/TAO RT-middleware) to make frameworks more amenable to model-based configuration and analysis

Page 63: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer

For More Information…

http://cadena.projects.cis.ksu.edu

http://bogor.projects.cis.ksu.edu

SAnToS Laboratory, Kansas State Universityhttp://www.cis.ksu.edu/santos

Bogor Project

Cadena Project

http://bandera.projects.cis.ksu.eduBandera Project