During codesign of a system, one still runs into the
impedance mismatch between the software and hardware worlds.
This paper identies the different levels of abstraction of hardware
and software as a major culprit of this mismatch. For example,
when programming in high-level object-oriented languages like
Java, one has disposal of objects, methods, memory management,
that facilitates development but these have to be largely . . .
abandoned when moving the same functionality into hardware.
As a solution, this paper presents a virtual machine, based
on the Jikes Research Virtual Machine, that is able to bridge the
gap by providing the same capabilities to hardware components as
to software components. This seamless integration is achieved by
introducing an architecture and protocol that allow recongurable
hardware and software to communicate with each other in a
transparent manner i.e. no component of the design needs to be
aware whether other components are implemented in hardware
or in software.
Further, in this paper we present a novel technique that
allows recongurable hardware to manage dynamically allocated
memory. This is achieved by allowing the hardware to hold
references to objects and by modifying the garbage collector of
the virtual machine to be aware of these references in hardware.
We present benchmark results that show, for four different, well-
known garbage collectors and for a wide range of applications,
that a hardware-aware garbage collector results in a marginal
overhead and is therefore a worthwhile addition to the developer's
toolbox.
Abstract:
During codesign of a system, one still runs into the impedance mismatch between the software and hardware worlds. This paper identies the different levels of abstraction of hardware and software as a major culprit of this mismatch. For example, when programming in high-level object-oriented languages like Java, one has disposal of objects, methods, memory management, that facilitates development but these have to be largely . . . abandoned when moving the same functionality into hardware. As a solution, this paper presents a virtual machine, based on the Jikes Research Virtual Machine, that is able to bridge the gap by providing the same capabilities to hardware components as to software components. This seamless integration is achieved by introducing an architecture and protocol that allow recongurable hardware and software to communicate with each other in a transparent manner i.e. no component of the design needs to be aware whether other components are implemented in hardware or in software. Further, in this paper we present a novel technique that allows recongurable hardware to manage dynamically allocated memory. This is achieved by allowing the hardware to hold references to objects and by modifying the garbage collector of the virtual machine to be aware of these references in hardware. We present benchmark results that show, for four different, well- known garbage collectors and for a wide range of applications, that a hardware-aware garbage collector results in a marginal overhead and is therefore a worthwhile addition to the developer's toolbox.