%% objectives: identify the constraints which will be transformed by rules in the meta model En fait, toutes ces regles se trouvent desormais dans le rapport technique cheddar adl ... ne pas oublier: faut il changer la facon de faire les check, vu que les attributs ont changé? ou bien les garder et retrouver les valeurs correspondantes? exemple: avant dans processor, on avait scheduler, quantum, automaton, option et dans address space on avait scheduler, quantum, automaton, option ... maintenant tout ca a été géré en amont, et mieux factorisé ... entity Generic_Object: -- generic constraints for all entities 1- The name must not be empty 2- The name should be Is_A_Valid_Identifier : the function Is_A_Valid_Identifier is located in Objects.extended package entity Core_unit: -- derived from procedure check_core_unit of Package Procesor_set 1- We can't have simultaneously (A_Scheduler = pipeline_User_Defined_Protocol) and (File_Name = "") 2- We can't have simultaneously (File_Name /= "") and (A_Scheduler /= pipeline_User_Defined_Protocol) and (A_Scheduler /= Automata_User_Defined_Protocol) 3- The period must be greater than or equal to 0 4- The capacity must be greater than or equal to 0 5- We can't have (priority < Integer (Priority_Range'First)) or (priority > Integer (Priority_Range'Last)) 6- We can't have simultaneously (Quantum /= 0) and (A_Scheduler /= Posix_1003_Highest_Priority_First_Protocol) and (A_Scheduler /= Round_Robin_Protocol) and (A_Scheduler /= Hierarchical_Round_Robin_Protocol) and (A_Scheduler /= Hierarchical_Cyclic_Protocol) 7- The Quantum must be greater than or equal to 0 8- The Speed must be greater than or equal to 0.0 9- We can't have A_Scheduler = No_Scheduling_Protocol 10- The l1_cache_system is a list of 0 or several caches. Each Cache can be of 2 types: unified or separated When it is unified, it corresponds to Data_Instruction_Cache When it is separated, it corresponds to 2 elements: 1 Data_Cache and 1 Instruction_Cache entity Generic_cache: -- see with Frank what is available 1- The hit_time must be greater than or equal to 0 2- The miss_time must be greater than or equal to 0 3- The hit_time must be greater than or equal to 0 4- Voir les contraintes entre protocole, associativite, replacement ... entity Multi_Cores_Processor: -- 1- The l2_cache_system is a list of 0 or several caches. When it exists, it is unified: it corresponds to Data_Instruction_Cache In this case, all corresponding l1_cache_system are separated 2- The cores must not be empty entity Network: -- derived from procedure check_network of Package Network_set 1- See Generic_Object (en fait, il vérifie juste le nom ...) entity Generic_Processor: -- 1- See Generic_Object 2- A constraint on the network? -- see with Frank what is available ... entity Mono_Core_Processor: -- 1- The core must not be empty entity Address_Space -- derived from procedure check_address_space of Package Address_space_set 1- Conflict between scheduling attribute of entity Core_Unit and entity Address_Space??? 2- The cpu_name must not be empty 3- The text_memory_size must be greater than or equal to 0 4- The stack_memory_size must be greater than or equal to 0 5- The data_memory_size must be greater than or equal to 0 6- The heap_memory_size must be greater than or equal to 0 entity Generic_Task: -- derived from procedure check_task of Package task_set 1- The activation_rule should be a valid identifier 2- The cpu_name must not be empty 3- The Address_Space_Name must not be empty 4- In the case of Periodic type, the period must be greater than 0 5- Ajouter la contrainte sur le Jitter ... 6- In the case of APeriodic type, the period must be equal to 0 --- a voir, car elle ne doit mm pas apparaitre ... 7- In the case of Poisson type, the period must be greater than 0 --- a voir, car elle ne doit mm pas apparaitre ... 8- In the case of Sporadic type, the period must be greater than 0 --- a voir, car elle ne doit mm pas apparaitre ... 9- In the case of Parametric type, the Parametric_Rule_Name must not be empty 10- In the case of Frame task type, the period must be greater than or equal to 0 --- a voir, car elle ne doit mm pas apparaitre ... 11- The Capacity must be greater than 0 12- The context_switch_overhead must be greater than or equal to 0 13- The Criticality must be greater than or equal to 0 14- The Deadline must be greater than or equal to 0 15- The Deadline must be less than the Jitter 16- The start_time must be greater than or equal to 0 17- The blocking_time must be greater than or equal to 0 18- The Text_Memory_Size must be greater than or equal to 0 19- The Stack_Memory_Size must be greater than or equal to 0