General details regarding the ARINC 653 model 1 There is one frame of time for the processor. This is sum of all the times in the Database block. 2 Each frame is divided into multiple Virtual Machines. Each Virtual Machine is independent. The time slice of the Frame for each VM is listed in the Database block. 3 The CPU and cache resources of the processor are dedicated to the current VM and there is no sharing. 4 The Mapper in the behavior flow is the middleware. This gets mapped to the hardware which is the VM Scheduler. This is the overhead associated with the Virtual Machine (VM). a. Each task has the specific flow- Middleware->Cache->SDRAM->Processor. The combination of Mappers and Schedulers handle this. 5 The SDRAM is shared and there are other activities that might access that system. This modeled as overhead activity. 6 There is a single task that must be fully processed within each VM. The task has to get the data and complete the execution. 7 The tasks are generated in a random manner using the Transaction_Source. 8 Each Transaction has an associated priority that is set in the first Processing block of the behavior flow. 9 "The Smart_Resource is a set of queues, one for each VM. These are preemptive, First Come-First-Serve at each Priority Queue." 10 "The VM_Arbiter connected to the Smart_Resource has the scheduling algorithm of the VX_Works or other ARINC 653 RTOS. The current scheduler is a Round-Robin. The algorithm here can be modified to experiment with other algorithms. If a particular task exceeds the deadline, the next VM will not be used. The next task must wait for the next frame to get the VM slot." 11 There are two plots. a. The first plot shows points at which each task completed- the positive indicates that it consumed more than the deadline and the negative values indicate it took less than the deadline. b. The second plot shows a timeline with the time taken for each task. The clock at the top of the model shows when a task has exceeded the time deadline. "I check the specification for 653.  Each of the partitions is a “Time Slots”.  Each partition has its own unique memory space within a single hardware memory device.  The addresses are unique for each partition but not the device.  So, the delay to access the device is modeled sequentially.  It is possible to multi-task within a partition.  For example, while one task in a partition is loading data from disk to memory, another task could be processing.  This is not modeled but could be added easily.  Each task or process is assigned to a particular partition.  It is a static assignment.  As we do not have tasks identified by names, we have not done a rigorous assignment.  This could be added in a similar form to the AUTOSAR Task Table." Questions and Answers: 1 "I am not certain whether the task can rollover to the next slot.  This must be part of the protection.  There might be a guard band to handle this.  We have done the rollover to the next slop to demonstrate the problem.  It is quite likely that this will happen, because if the task is in the middle of memory load, there are a lot of things that need to happen before the task can be completed.  Preemption is not listed as a part of the spec but I assume it can be done within a partition." "Response: The tasks are being generated for all the virtual partitions from a single generator. They are randomly assigned to one of the Virtual Partitions. Initially, there are not enough tasks to fill out all the partition. The first task coming out is for partition 2 and the second is for partition 5. Hence you see 1,3,4 are empty. In the next frame, slots 1 and 4 are missing." 2 Clock Period is uneven in the same window? "Response: The clock line is not a fixed clock rate. It is plotting the time duration for each partition. If you go into the Database block and modify the time for each slot to 100,200,300,400,500; then you will see the spacing much more clearly." 3 "Explain the Virtual machine controller algorithm, what are the numbers used in controller VM script like 5,7 ." "Response: The Virtual Machine controller algorithm goes in a Round-Robin between each Virtual Machine or Partitioning. For each partition, it checks to see whether there is a task available. If there is, it sends the task to the Scheduler. If there is no task, it does not do anything in the partition and waits for the next partition. If the tasks of one partition goes beyond its partition, the task of the next partition misses the turn. It will have to wait for the next frame. This model currently does not support multiple tasks in a single virtual window but it could be incorporated easily. Also, it is possible to add other logic such as monitoring components etc. A more complex variation of the ARINC 653 is attached to this email. IN this case, there are multiple events and there are monitors." 4 Give the complete explanation on the demo model ARNIC 653 explaining the working principle in detail. "Response: The Database block maintains the list of partitions and the time slice for each partition. The Transaction Source generates tasks and the Processing tasks assigns attributes for each task, including the priority and the virtual machine assigned. The Smart_Resource Queue holds the tasks. The Smart_Controller arbiter selects the task based on the above logic, explained in 3. The Mapper sends the task to the scheduler to execute. This is where the processing delay is maintained. The resource section on top is for the hardware architecture. When the request comes in, it needs to get data from the cache, so it is send on the output port of the scheduler. There we have a hit-miss ratio to determine whether the task can get data from the cache or need to go to the SDRAM. The Mappers send the data to the Scheduler and when it gets a return sends it on the output ports. When the Task has completed the execution, it is send to the Scheduler_Releae which sends it back to the behavior flow." 5 What is a_time_stamp = Tnow? Response: This is used to compute the actual processing and to exclude the Queuing time to wait for the Partition within the frame. 6 VM1 to 5 are queue or tasks? Response: VM 1 to 5 are the Queues. There are multiple tasks assigned to each Queue. We number the Tasks by the Queue/VM in which they are processed.