News

Control Abstraction

Components along the datapath of a design are often similar from design to design within the same class of devices. However, the relative timing of computation and synchronization requirements for communication is often different. This timing and synchronization is performed by the control logic of the machine and the components need a control interface compatible with the control paradigm. If no control abstraction is provided, components that would otherwise be reusable may be unusable in a particular design because there is no way to time the components' computations correctly.

The other mechanisms described on this page provide the capability to manage the variations that occur along the computational data path. Many of them are natural extensions or generalizations of general purpose programming language features. This stands to reason since both systems are designed to perform computation, irrespective of time.

The controller of a piece of hardware, on the other hand, is concerned withe timing of hardware to ensure proper synchronization. Often, the controller has global knowledge about the data dependences, interconnections, and timing of other blocks. As a result, it often is different in every design, requires different control interfaces for functionally similar components, not well abstracted by extensions to traditional language techniques, and thus is a major barrier to reusability.

To lower this barrier to reusability an abstraction for control that both reduces the burden of specifying control in the common cases and allows a component to be used with different control paradigms in a modular fashion.

A careful characterization and fully general solution is a work in progress. However, the Liberty Simulation Environment (LSE) provides a signals and a default signaling protocol that can be overridden using LSE's Component Computation Customization (CCC) interface. This seems to work well in most cases.

Synergies and Interaction

Since the Model of Computation (MoC) and the control of a machine is closely related to the notion of time, there can be may be many interactions. However, LSE's signaling protocol works in any sufficiently flexible MoC (see this discussion for more information).

In the specific control paradigm used by LSE, the CCC interface provides the means by which the default control semantics are overridden.