Friday, February 08, 2002
11:00 AM
CSB 209
Josh Fisher
Hewlett-Packard Labs: Cambridge
The Cambridge DELI: A New Control Point in the Computation Chain
Caching, linking and then executing a private copy of executable code is a technique that has been used by many people to improve performance in many different environments, for example: (1) by avoiding the repetition of work done to produce the executable itself (in dynamic binary translators), (2) by permitting performance-enhancing transformations to the private copy (in dynamic optimizers), and (3) by linking the code better in the cache than it was in the original, thus avoiding some branch penalties (in general).

At HP Labs Cambridge we have recognized the inherent value of this technique, and, rather than just using it in "point implementations", we have extracted the underlying control functionality for caching and linking and have opened it up to the OS and to higher layers of system software and applications. Since the interesting aspect of this is the presentation of a new control point or service layer in the the computation chain, we believe that such a facility should be called a "Dynamic Execution Layer Interface", or DELI, and we call our own implementation of it the Cambridge DELI.

Once we started thinking in these more general terms, it became possible to consider many new capabilities that are not practical at higher levels of the computation chain (e.g. in the compiler or linker). Despite the great variety of these new capabilities, we leverage the investment of building a single well-designed caching and linking mechanism across these many different uses.

In this talk we discuss the design of the DELI infrastructure, illustrate several DELI applications, and report on early experimental results.