Figure 1. Start screen of the Xamber editor.

Xamber is a graphical configuration tool adapted to assist the user through completion of the configuration of Time and Space Partitioning systems (TSP), and provides an intuitive, time saving and powerful interface for capturing and editing all the elements that are part of the system.

  • Intuitive
    • Several views allowing the user to focus in the task that is performing.
    • Familiar to use operations, such as delete or export/import, are applied during configuration of the system elements.
    • Easy to identify elements of the system, color and shape coordinated to easy identification.
  • Time Saving
    • Quickly view the configuration summary data.
    • Minimizes configuration errors.
    • Import/Export of configurations.
    • Undo/Redo capabilities.
  • Powerful
    • Create platform configurations, export and use them as templates in new projects.
    • Continuous model coherence monitoring and reporting.
    • Cross-platform: Linux, MacOSX and Windows.

Xamber Overview

Because the elaboration of the configuration file is a complex task, involving memory and resources overlapping, communication ports correspondence and scheduling, it is necessary to provide a specific model-based set of tools. The current implementation of this helping software integrates a Graphical Editor (Xamber) with an external scheduling tool (Cortex). Having access to an easy-to-use configuration interface paired with software tools that graphically configure a partitioned system enables users to quickly determine the model elements and automate the system configuration file generation.

Xamber provides to the System Integrator an environment where define the platform properties, resources assignment and cyclic plans in a graphical way. Model restrictions are applied on-line in order to alert the user about configuration errors, warnings or pending definitions. Without access to a graphical tool for configuration, a developer may need to spend a significant amount of time and effort debugging a configuration.

Figure 2. Interaction of models and meta-models

As depicted in Figure 2, the interaction of models and meta-models provides Xamber some degree of flexibility. In design time the Agnostic Configuration Meta-Model is narrowed with the information of a specific platform. The Computing Load Model, inspired in MARTE UML, give Xamber support to the definition of scheduling requirements in an abstract way.

Moreover, the power of the Cortex scheduler provides automatic plan generation from a graphically defined Computing Load Model (tasks specification, resource dependences and end-to-end computing flows involving tasks running in different partitions). Xamber organizes all this information in a “Configuration Project” allowing Import/Export operations of project parts as well as specific hypervisor file generation (currently supported XtratuM 3.0).

Intuitive User Interface Design

Figure 3. Xamber main view.

The Xamber user interface has been designed to simplify the Partitioning Kernel configuration edition process through an interactive experience, providing a graphical representation of the model and standard user interface controls. By this means, the interface is intended to be rich and flexible in terms of addressing the individual user requirements. Also following this approach, it is easier for the user to get used of the way the functionality is spatially distributed by following commonly accepted UI concepts like tabs, dialogs, bars or pop-up helper windows.

Specific views provide a simple visualization of the configuration process. Using the Xamber tool, users can easily change the configuration of the system elements (hw description, partitioning kernel, partitions, chanels...) and immediately see how these changes affect other elements in real time.

Time Saving error reporting

Xamber provides a powerful error reporting mechanism. It is used to attach information, using error messages, to system elements in the project. What makes them particularly powerful is that they can be attached to particular view within a system element. This way, the user can be immediately notified about errors, easing its fix and location, and hence, improving the usability of the application.

Resource allocation inconsistencies (memory overlaps, wrong port binding, etc.) are immediately detected and reported, thus providing early feedback about the system design. This is extensive to the temporal model feeding the schedulability analysis and cyclic schedule generation.

Rich temporal model

The workload is a tailored version of the MARTE-UML specification. The model is powerful enough to capture most of the requirements of any real world application in an intuitive way, but also it is possible to build a compact and easy to debug plan. The temporal model provides support for:

Figure 4. Xamber tasks view.

  • Periodic and aperiodic behaviour.
  • Access to shared resources.
  • Complex data and control dependencies.
  • Deadline specification and deadline miss detection.
  • DMA operation.

Difficult to manually design a schedule that fulfils all the constraints of your application and take full advantage of the available processing power? Xamber does the job for you. Not just that, but also helps in providing the evidences that such allocation is feasible.

DMA access modelling

DMA controllers are a special kind of shared resources. It is not enough to ensure that race conditions do not occur while programming the device, but also while the controller is carrying on data transfers. Traditional resource access serialization policies rely on the assumption that resource locking and unlocking occurs during execution of the portion of code accessing the shared resource. That does not hold anymore for DMA devices.

Xamber's temporal model allows the integrator to define the specific needs, regarding shared resource unlocking, by providing a worst case value for the duration of DMA transfers. Moreover, the cyclic schedule resulting from the Cortex execution already incorporates those constraints by properly adjusting the allocated execution time of partitions competing for access to DMA devices.

Figure 5. Resulting cyclic schedule.

Detailed reporting

Xamber provides to the system integrator detailed information about many aspects of the configuration. Allocation of memory, I/O resources and communication links are summarized in several views providing an overview of the current system configuration.

The data generated by the Cortex scheduling is used by Xamber to elaborate detailed information about the resulting cyclic schedule including:

  • A graphical view of the generated schedule at different levels of detail (partitions, tasks, end-to-end flows).
  • Detailed CPU usage statistics including: useful time, hypervisor overhead time and total CPU usage.
  • Scheduling errors found.
  • Shared resources usage.

Platform independent

Xamber GUI has been fully developed in Java. The scheduling core has been written in C for performance reasons. Moreover, it is fully C99 conformant and does not have any library dependency, thus being fully available for any OS and architecture.

Xamber Video Tutorial

In this video tutorial below we will show you how to use the main features of the Xamber tool.