System Resource
System Resource Blocks represent the architecture segment of model-based systems engineering. SysML and AADL refer to the concept of system resource. The System Resource enables the requester to be separate from the architecture that executes the delay. The System Resource extends the basic MBSE concept by adding context switching time, clock-timed, scheduling algorithms, multi-level resources and priority-based queue.
The System Resource block extends the Server resource by separating the behavior and architecture flows. The behavior defines the sequence of events but does not execute the delay and power consumption. At each point, where an action that consumes resources is executing, the action is mapped to a resource. The resource is part of the architecture flow. The resource can be a stochastic unit or a cycle-accurate architecture platform.
While the Server blocks are used at the queuing-level of abstraction, the System Resource blocks are used at the architectural-level with more complex scheduling algorithms. Complex scheduling algorithms can represent thresholds, consumption, aging and power factors. These blocks separate the behavior and architectural aspects of a system, and provide a way for different applications/tasks/flows to utilize or call a single resource.
The equivalent blocks on the behavior side that work with the System Resources are the mappers. The Mapper (Behavior-side) makes the request to the System Resource_Extended and System_Resource (architecture-side). The System Resource blocks, perform a variety of scheduling algorithms, including First-Come-First-Serve, First-Come-First-Serve plus preemption, Round Robin, and User defined schedulers. In addition, the SystemResource Block can be arranged as a hierarchical set of entities. The SystemResource_Extended Block supports detailed external modeling of the task execution with both blocking and non-blocking options. System Resource execution receives the delay and priority from the transmitting Mapper block in the behavior flow, and can be a delay value or number of cycles.
The Task data structures enter the SystemResource via a Mapper Blocks. The Mapper Blocks can schedule the incoming token to a single fixed System Resource or dynamically select a SystemResource based on set of logic. Multiple Mapper blocks can make requests to a single SystemResource block thus establishing multiple request points in the behavior flow. After the Delay is completed internal to the SystemResource_Extended, the task is sent on the output port for additional processing. When the task encounters a SystemResource_Done, the token is immediately cleared from the System Resource and returned to the lower level System Resource or to the Mapper.
Differences between System Resource and System Resource Extend
Queue |
Server |
Delay is not predictable in advance |
Delay is known apriori |
Link of registers that store tokens |
Link of registers that store token and delay the head of the queue |
Reorder the queue based on the priority of the incoming token. Rejects the lowest priority token |
Reorder the queue based on the priority of the incoming token. Rejects the lowest priority token |
No power state |
Supports Active and Standby power state |
Supports First-Come First-Serve and Last-In First-Serve |
Supports First-Come First-Serve and Last-In First-Serve |
Can destroy elements anywhere in the queue without sending them to the output port |
Tokens cannot be destroyed. |
Detailed statistics for delay, buffer occupancy, dropped tokens and entry-exit |
Detailed statistics for delay, buffer occupancy, dropped tokens, entry-exit and utilization |
Expression to select the queue and priority of a Token |
Expression to select the queue, delay and priority. The delay can be a delay value, number of cycles (Clock Speed for hardware) or packet delay (speed for networks) |
Usage:
- Store and forward with external event
- FIFO
- Bank teller
- Software linked list
|
Usage:
- Store and delay with no external event
- Processors, buses, Network
- Active traffic light
|