Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing...
-
date post
22-Dec-2015 -
Category
Documents
-
view
217 -
download
0
Transcript of Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing...
![Page 1: Http://cadena.projects.cis.ksu.edu SAnToS Laboratory, Kansas State University, USA Cadena: Analyzing Component- based Embedded System Designs Matthew Dwyer.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/1.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/2.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/3.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/4.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/5.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/6.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/7.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/8.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/9.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/10.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/11.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/12.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/13.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/14.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/15.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/16.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/17.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/18.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/19.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/20.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/21.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/22.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/23.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/24.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/25.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/26.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/27.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/28.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/29.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/30.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/31.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/32.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/33.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/34.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/35.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/36.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/37.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/38.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/39.jpg)
Φ-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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/40.jpg)
Φ-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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/41.jpg)
Φ-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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/42.jpg)
Φ-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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/43.jpg)
Φ-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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/44.jpg)
Φ-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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/45.jpg)
Φ-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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/46.jpg)
Φ-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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/47.jpg)
Φ-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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/48.jpg)
(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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/49.jpg)
(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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/50.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/51.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/52.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/53.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/54.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/55.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/56.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/57.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/58.jpg)
(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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/59.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/60.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/61.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/62.jpg)
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.](https://reader035.fdocuments.us/reader035/viewer/2022062320/56649d7e5503460f94a61648/html5/thumbnails/63.jpg)
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