Cache interference in Cheddar is based on the concepts of Cache Related Preemption Delay (CRPD).
The bounds on the CRPD are computed by using :
- Useful Cache Block [LEE 98]
- Evicting Cache Block[BUS 95]
The following process is required to run the CRPD analyses implemented in Cheddar.
Cheddar provides supports for modeling the CFG of a task. An external tool is used to parse the object file of a task and then to compute and generate the CFG in a Cheddar-compatible format. Examples of the CFGs computed for tasks in the Malardalen benchmark are available on the Cheddar svn repository at this link.
The users can import an existing system model with several tasks in Cheddar or choose to create a new model.
After that, the CFGs of these tasks can imported by Cheddar :
Menu --> Tools --> Cache --> Import Control Flow Graph
The current GUI of Cheddar does not provide an interactive way to work (add/modify/delete) with CFGs. The features are to be implemented in the next version.
The sets of UCBs and ECBs of a program are computed by Cheddar from its CFG.
The sets of UCBs and ECBs can also be computed by external tools and put directly in Cheddar without passing by this step. In order to do this, the users need to modify the xml file of a Cheddar-ADL system model with the information about the UCBs and ECBs of tasks.
After this step, the following analyses are available in CheddarIn order to perform CRPD-Aware WCRT analysis in Cheddar, the following steps are required:
In order to perform CRPD-aware scheduling simulation in Cheddar, the following steps are required.
Tools --> Scheduling --> Scheduling Options
Our implementation of the CRPD-aware priority assignment is based on Audsley's Optimal Priority Assignment (OPA) algorithm. We extended this algorithm in order to take into account the CRPD. In order to perform CRPD-aware prority assignment in Cheddar, the following steps are required.
Tools --> Scheduling --> Scheduling Options --> Tasks Priority Assignment