250 likes | 396 Views
Presentation. Ptolemy: A Framework For Simulating and Prototyping Heterogeneous Systems. Agenda. Overview of Ptolemy Internal Structure of Ptolemy Blocks and particles Stars, Galaxies and the Universe Targets and Schedulers The Wormhole The EventHorizon Code Generation
E N D
Presentation Ptolemy: A Framework For Simulating and Prototyping Heterogeneous Systems CS 599
Agenda • Overview of Ptolemy • Internal Structure of Ptolemy • Blocks and particles • Stars, Galaxies and the Universe • Targets and Schedulers • The Wormhole • The EventHorizon • Code Generation • Practical Applications CS 599
Ptolemy/Ptolemy II C++/Java Many domains implemented Multi-domain modeling Block-diagram GUI Extensible type system Code generator Ptolemy uses object-oriented software principles to achieve: Agility Heterogeneity Extensibility Friendliness Overview of Ptolemy CS 599
Domain Classes • Domain - A realization of a framework • Derived from kernel class • inheritance • data abstraction • polymorphism • Booch notation • Multiple domains can be mixed hierarchically in the same model CS 599
Multiple Domains CS 599
Hierarchical Color is a domain, which defines both the flow of control and interaction protocols. Amorphous vs. Hierarchical Heterogeneity Amorphous Color is a communication protocol only, which interacts in unpredictable ways with the flow of control. CS 599
Domain Issues • Ontology: What is a component? • States? Processes? Threads? Differential equations? Constraints? Objects? • Epistemology: What knowledge do components have? • Time? Name spaces? Signals? State? • Protocols: How do components communicate? • Rendezvous? Message passing? Continuous-time signals? Streams? Method calls? • Lexicon: What do components communicate? • Objects? Transfer of control? Data Structures? ASCII text? CS 599
Blocks and Particles • Blocks depend on the model of computation • C++ base classes • Block • Porthole • Geodesic • Plasma • Non-dogmatic kernel CS 599
Stars, Galaxies and the Universe • Star • lowest level of the hierarchy (atomic) • Galaxy • hierarchical block (composite) • Universe • top-level system representation (application) CS 599
Targets and Schedulers • Base class mechanisms • Target • top-level manager of execution • Scheduler • defines the operational semantics of the domain by controlling the order of execution CS 599
Domains in Ptolemy CS 599
The Wormhole A new domain YYY is introduced by adding a Wormhole to the XXXUniverse. What’s EventHorizon? CS 599
The EventHorizon • Supports interoperability of different domains at runtime(key for heterogeneity in Ptolemy). • The interface between the internal structure of a Wormhole and its external environment. • two types of interactions • the conversion of Particles passing through it • the coordination of the Schedulers associated with the inside and outside domains CS 599
Particle Conversion at the EventHorizon • Accomplished by objects of class ToEventHorizon and FromEventHorizon, derived from EventHorizon. • Particles are read from the XXXtoUniversal, transferred to the YYYfromUniversal, and sent to the inside YYY domain. • For built-in types, the type conversion is performed automatically, otherwise should be managed explicitly. • EventHorizons may have other domain-specific responsibilities(following example). CS 599
Particle Conversion at the EventHorizon(cont.)Specific responsibilities • The DEWormhole is executed when any input has new data . • The inner SDF domain requires that all input data be available • The DEWormhole checks all SDFfromUniversal EventHorizons to see if they have enough data before turning control over to the inner SDFScheduler. CS 599
Scheduler Coordination Across the EventHorizon • Schedulers on both sides of an EventHorizon need to coordinate. CS 599
Code Generation • The go() method of a code generation Star adds ASCII text to a data structure in the Target. • The Scheduler controls the sequence of generated code. The Target collects the code and supervises the compilation and execution. • While a domain is specific to the computational model used, the code is also specific to the type of language generated. CS 599
Broadband Networking Example • Message Queues • Untimed • “Before and After” timing style • Discrete Event Model (DE) • TimeStamped (Global Time) Asynchronously • “When” timing style • Synchronous Dataflow (SDF) • Repeatable Schedule • “How Often” timing style CS 599
Terminals & the CRN • Terminals • Internally Complex • Cell Relay Network (CRN) • DE Modeling Domain • Non-Empty Cells traveling between Terminals and CRN CRN Terminals Signaling ATM Switches DE Modeling Domain CS 599
CRN to Signaling & Switching • Signaling • MQ Domain (Untimed) • ATM • Internal Sim. – SDF • All Cells Modeled • Including Empty Cells • TimeStamped to fit DE (timed asynchronous) CRN Signaling ATM Switches Signaling (MQ) ATM ATM ATM ATM DE CS 599
ATM to Call Processing & Internal Switching • Call Processing Entity • Control of the Switch • MQ - Instantaneous Processing • Internal Switches • Shuffle Exchange • DE (asynchronous) Cells augmented with Empty Cells to fit SDF (isochronous) at the EventHorizon Signaling(MQ) ATM ATM Call Processing (MQ) ATM ATM Shuffle-Exchange (SDF) CS 599
Internal Switching to Routing & 2X2 Switches • Routing Tables • Updated from Call Processing Messages • Instantaneous Message Receipt • 2X2 Switching Matrix • Interconnected Switches Shuffle-Exchange (SDF) Routing Tables 2X2 Switch CS 599
Ptolemy & the Broadband Networking Model • Ptolemy uses a Wormhole to deal with the inter-domain heterogeneity in this example • Ptolemy does not solve all the problems relating to interconnecting domains. • Often additional user modeling work is required. • Functional requirements of the system should reflect these inter-domain issues CS 599
More Ptolemy Examples • Signal Processing • Little Heterogeneity • Auto-generation of DSP Assembly code • Hardware Software Code Design • Support domains for modeling • Custom hardware design • Programmable Commodity Parts • Single model can be developed to simulate the system • Source Linking Modeling • OOP Abstraction • Covert to/from Bits to Abstract from Source/Link Specifics CS 599
Other Interesting Ptolemy Topics • Interoperation of Heterogeneous CAD Tools in Ptolemy II • Ptolemy II is a Java Version of Ptolemy • Computationally Efficient Version of the Decision Feedback Equalizer • This and other Ptolemy information may be found at: http://ptolemy.eecs.berkeley.edu CS 599