AIPHS, acronym of Adaptive Profiling HW Sub-system, is basically conceived to support designers on the development of On-Chip Monitoring Systems (OCMSs) able to satisfy given Monitorability Requirements, namely requirements about possibility to observe the behaviour of a system with the goal of collecting metrics (e.g. related to execution time). It is a flexible framework that targets both SoCs implemented on Field Programmable Gate Arrays (FPGAs) and on Integrated Circuits integrating some reconfigurable logics. AIPHS is a library of elements that, starting from some monitorability requirements and a description of the architecture, automatically offers a monitoring system that performs required measurements.
There are different planned steps related to AIPHS development, listed in the following:
- baseline/initial version
- Distributed hardware monitoring system for targets implemented on FPGAs;
- Run-time generation of logs for WCET analysis;
- Runtime generation of logs for performance measurements on targets with multi-core processors, running bare-metal and Linux based applications;
- intermediate version
- Generalization of the concept among monitoring infrastructures by defining a general reference architecture that can be adapted to different applications;
- final version
- Development of a methodology to suggest the best monitoring mechanisms to be used in a given system, depending on data of interest and constraints to be satisfied;
The current development activities provide features related to baseline/initial version. In particular:
- The produced monitoring systems are described in VHDL;
- The monitoring systems can be strongly customized acting directly on VHDL code. There is an example adaptation to provide logs for WCET analysis with Rapitime tool (https://www.rapitasystems.com/products/rapitime), partially done during CRAFTERS european project (https://artemis-ia.eu/project/36-crafters.html).
- The monitoring system can act both on bare-metal application and Linux-based ones.
- The monitoring system can be controlled both by bare-metal applications and Linux-based ones: for the latter, a character device driver is provided.