correct operation of a component or to detect and
react on faulty component behavior. Monitors are
widely applied in embedded systems, as there are
many areas of application throughout the lifecycle of
a product, ranging from design time to run-time. Dur-
ing design time, embedded monitors aid in debugging
and profiling a system or parts thereof, whereas at
run-time, they provide performance measures and en-
sure operability of the system.
Embedded logic analyzers (ELA) such as Xilinx’s
ChipScope Pro (Xilinx, 2010) or Altera’s SignalTap
II (Altera, 2010) are the simplest form of monitors in
terms of complexity. ELAs provide direct access to
internal signals of a system and, therefore, constitute
an essential tool during test and verification of a de-
sign, as only few components offer externally accessi-
ble interfaces. Their use is limited to scenarios where
the direct exposure of a signal path without further
processing is desired or sufficient.
Debugging tasks that require triggering on spe-
cific events or sequential patterns depend on a more
sophisticated monitoring solution than ELAs can pro-
vide. To allow for more complex scenarios, (Pentti-
nen et al., 2006) presents a method to monitor the in-
ternal signals of FPGA circuits by using an embedded
microprocessor as central monitoring instance. Their
setup is able to account for timing constraints and
does not suffer from slowdowns in case of many or
complex input patterns, like HDL simulators do.
Another approach is taken in (Cheng et al., 2010),
where the authors propose a run-time RTL debug-
ging methodology for FPGA-assisted co-simulation.
By instrumenting the design under test (DUT) with
a wrapper, parts of the design simulation are exe-
cuted transparently on an FPGA. Furthermore, their
approach provides internal node probing and, thus,
achieves full observability of the DUT.
Profiling and performance monitoring (PM)
(Sprunt, 2002) constitutes another application area of
hardware monitors. PM is commonly implemented
by performance event (PE) detectors and PE coun-
ters. PE detectors trigger on certain events, such
as distinct program characteristics, memory access,
pipeline stalls, branch predictions or resource utiliza-
tion and increment their corresponding PE counter.
The implementations of existing performance moni-
toring solutions such as (DeVille et al., 2005), (Lan-
caster et al., 2010) and (Tong and Khalid, 2008) are
often highly application dependent and offer no or
low reuseability. With the framework for generic
monitoring IP cores presented in this paper, the instru-
mentation of HW components with monitoring func-
tionality is highly automated. By using pre-defined
monitoring blocks from the frameworks’s library or
by extending the library with user-supplied blocks,
code reuse for common monitoring tasks is easily
achieved.
Based on similar considerations, the authors of
(Schulz et al., 2005) propose Owl, a framework
to pervasively deploy programmable monitoring ele-
ments throughout a system. Owl is built on the archi-
tectural principle of programmable capsules, which
are comparable to the wrapper notation of our ap-
proach, and analysis modules that provide function-
ality within the capsules. Programmable capsules are
realized as reconfigurable and programmable logic in
an FPGA and are used to integrate hardware moni-
tors at potential event sources. Although their frame-
work is suited for generic application scenarios, the
authors’ main focus is on profiling. They propose
memory access logging, memory access histograms
and dynamic pattern recognition and reduction as pos-
sible use cases. One of the major differences to
our approach is the absence of a central monitor-
ing core (CMC) that provides a facility to aggregate
systemwide monitoring events and to coordinate sys-
temwide reaction patterns during run-time.
Apart from implementing existing monitoring so-
lutions, our proposal aims at extending the area of
application of HW monitors in embedded systems.
As related work shows, HW monitors are tradition-
ally employed for tasks such as debugging, profiling
and performance measurement. In addition to this, we
aim to implement well-established software concepts
of the dependability, safety and security domains, es-
pecially those which are commonly implemented by
component wrappers. In this context, the proposed
framework can therefore be seen as first step to deliver
an enabling platform upon which further research and
experiments will be conducted.
Currently, we consider several future applica-
tion scenarios. The first one is to implement fault-
containment wrappers (Saridakis, 2003) for IP cores,
in order to limit a fault’s effect to the wrapped com-
ponent and prevent its propagation to other parts of
the system. We furthermore consider to use monitors
for the safe implementation of component isolation in
mixed-criticality designs (Pellizzoni et al., 2009) and
also investigate to provide monitors that offer reac-
tion triggers for reconfiguration in self-adaptive auto-
nomic systems (Santambrogio, 2009).
3 MONITORING
ARCHITECTURE
The approach presented in this paper delivers a frame-
work for automatic integration of monitoring func-
PECCS 2011 - International Conference on Pervasive and Embedded Computing and Communication Systems
380