Technology
Embecosm offers two unique technologies:
-
Our unified SoC debug technology boosts firmware
engineer productivity by allowing the same tools to be
used throughout the product lifecycle and by giving
debug visibility to the entire chip, not just the
processor.
-
Our GCC compiler back ends take advantage of MilePost
technology to add machine learning, giving earlier
availability of compiler optimizations, and continuing
improvement to the compiler through its lifetime.
Unified SoC Debug Technology
There are three key features of Embecosm's unique tools
and technology:
-
The same debugging interface is presented throughout
the design life cycle, from initial model to final
silicon.
-
The engineer has visibility not just of the processor
being debugged, but all the peripherals of the
System-on-Chip.
-
The implementation uses existing standard
protocols and interfaces.
The user interface is available both from the command
line or within Eclipse. The development and debugging
experience is the same throughout the product life
cycle, whether the target is a high level architectural
transaction level model (TLM), a detailed simulation,
an emulation in FPGA or final silicon.
The detailed debugging interface depends on the
functionality of the target. Reference implementations
from Embecosm are based on a standard 5-pin JTAG
interface. This can be modeled as a high level SystemC
TLM 2.0 debug port, a cycle accurate model of the
individual pins, or through device drivers of the TAP
for a target in FPGA or silicon. Where the target is a
SystemC model or event drive simulation, Embecosm has
defined a standard JTAG
Cycle Accurate SystemC interface.
Many devices offer a more complex debug unit, driven
through the JTAG boundary scan interface. The Embecosm
tool flow provides full access to the debug units
throughout the product life cycle.
Interfacing to the debugger uses its standard remote
communication protocol. For the GNU tool chain, used in
the Embecosm reference implementations, this is the GDB
Remote Serial Protocol (RSP). For RSP, the
qCmd packet is used to exchange requests with
the target interface. These requests allow the debugger
to access not just the processor core, but the state of
the peripherals on the chip.
The Embecosm tool flow may be ported to any debugger
which offers a remote protocol with a sufficiently rich
command set, for example the MetaWare RASCAL interface.
The Embecosm approach ensures the firmware development
team have a consistent and reliable debugging interface
from initial system design through to functional
silicon.
MilePost Compiler Optimization
MilePost was a research project funded by the European
Union from 2006-2009. Embecosm's Jörn Rennecke was
a key contributor to this project, which resulted in
MilePost GCC 4.4.0 being released in May 2009.
MilePost adds machine learning to the GCC back end. With
complex processors, hand-writing GCC optimizations can
be a very time-consuming and expensive operation, due to
the huge number of possibilities to be
explored. Milepost sits alongside the GCC compiler and
learns which optimizations are most effective as the
compiler is being used. From this an ever improving back
end code generator can be created.
There are two complementary benefits from this
approach. The first is that optimizing compiler output
is obtained sooner, and at lower cost. The second is
that the compiler can continue to improve over its
lifetime as more code is compiled.
Embecosm is one of the first commercial organizations to
offer MilePost technology for GCC. Contact us to
discover how MilePost technology could be added to your
tool chain.
|