90 likes | 253 Views
November 2012 J. Legrand, P. Dissaux, L. Lemarchand, S. Rubini, V. Gaudel, A. Plantec, F. Singhoff. Cheddar architecture Description language : current status. Requirements.
E N D
November 2012 J. Legrand, P. Dissaux, L. Lemarchand, S. Rubini, V. Gaudel, A. Plantec, F. Singhoff Cheddar architecture Description language : current status
Requirements Current Cheddar ADL is quite simple : must be extend to be applied on new domains : FPGA, Multiprocessor architectures with caches/cores and shared memory, N-level of hierarchical scheduling Should be as close as possible with real-time scheduling and queueing system theorys (Classic models, synchronization/dependencies, scheduler parameters) Must stay simple and easy/quick to use/understand Maintain existing features. Allow transformation to AADL/Marte/others supported ADLs Provide isolation : spatial and temporal Both hardware/software modelingand software deployment: required fo real-time systems analysis, user/designer understanding
Cheddar ADL concepts Basic entities: Components: reusable unit. A component has a type, an unique name and attributes. Part of a system to analyze. Bindings: relationships between components. Model a resource allocation between n providers and m consumers. Types of entity: Hardware components: resources provided by the execution environment. Processor, cache, core, memory unit, network. Software components: model the design of the software. Task, resource, buffer, dependency, message. Bindings: enforce either temporal or spatial isolation.
Semantic of components Software components : Address space: model a logical unit of memory. May be associated to an address protection mechanism Task: model a flow of control. Run any type of program (including any operating system function such as a scheduler). Statically defined in an address space. Resource : any data structure, shared by tasks or not, synchronized or not. May model asynchronous communication between tasks of the same address space. Statically defined in an address space. Buffer : model queued data exchanges between tasks of the same address space. Statically defined in an address space. Message : model queued data exchanges between tasks located in different address spaces.
Semantic of components Hardware component: Core: model an entity providing a resource to sequentially run flow of controls. Deployment unit for a software component. Cache: model memory caches related to one of several cores. Data/instruction cache. Processors: composed of a set of cores and caches. Deployment unit for a software component. Memory: model an entity providing a physical memory unit. Deployment unit for a software component. Network: any communication link between any hardware components. Monocore processor : schedule tasks independently Multicore processor : schedule tasks globally with a set of cores Expliquer le concept de multi et mono cœur, ces concepts sont liés à la facon dont l'ordonnancement est réalisé
Semantic of bindings A binding is a relationship between two set of entities : source entities (resource consumer entities) and sink entities (resource entities). Static binding : a static binding contains a tabledefines how the resources are statically allocated by the resource consumers. Example : may model an off-line scheduling of task or a statically defined set of addresses for each software component inside an address space. Dynamic binding: a dynamic binding contains an algorithm. The algorithm defines how the resources are dynamically allocated by the resource consumers. Example : an algorithm may be an on-line scheduler of tasks or a malloc algorithm for a set of software components inside an address space.
Semantic of bindings Static & Dynamic bindings: ENTITY Generic_Binding SUBTYPE OF ( Generic_Object ); source_entity : Generic_Objects_Set; sink_entity : Generic_Objects_Set; DERIVE SELF\Generic_Object.object_type : Objects_Type := Binding_Type; END_ENTITY; ENTITY Static_Binding SUBTYPE OF ( Generic_Binding ); allocation : STRING; END_ENTITY; ENTITY Dynamic_Binding SUBTYPE OF ( Generic_Binding ); allocation : Scheduling_Parameters; END_ENTITY;
Examples Examples of cardinality and allowed bindings: Consumers => Providers Il faut rédiger les règles ci-dessous avec les entités du méta modèle cheddar afin de bien définir la sémantique de connection autorisée ! Flot de contrôle/ordonnancement : 1..N generic_task => 1..M processors, XMLV4 1..N generic_task => 1..1 processors, XMLV3 1..N generic_task => 1..M cores, XMLV3 1..N generic_task => 1..M scheduling_task_type, XMLV4, tache à droite = virtual processor AADL Architectural/déploiement : 1..N generic_task => 1..1 address space 1..N buffers => 1..1 address space 1..N resources => 1..1 address space 1..N address space => 1..M memory 1..N processors => 1..M network …
Status Bindings: Bindings are part of the current Cheddar ADL meta model. XML Printers/Parsers are Ok Next steps : Simulation engine must be coupled with bindings. Planned for next meeting. Relationships with ARINC 653 configuration tables.