Next: 5 Performance Modeling Method
Up: Appnotes Index
Previous:3 Metrics
The modeling environment must provide a means to conveniently explore hardware/ software interaction. To facilitate such interaction, the hardware must be described independently from the software, such that a given hardware architecture can be directed to execute a variety of distinct application programs without modification to the hardware model. Conversely, a given software application program should be executable on a variety of candidate hardware configurations.
The network topology must be specified independently from the behavioral models of the network hardware components. Additionally, the component models must be modular so that network components, such as processor elements, can be interchanged without redesigning the network or the component behavior models.
An important feature for the simulation models at the performance level is extensibility to greater levels of detail to support the subsequent design stages. For instance, there must be a means to add functionality to produce abstract behavioral model based virtual prototypes, and synthesizable components.
Another important aspect is the model's efficiency, such that it offers quick simulations that permit the rapid exploration of many design alternatives. The modeling environment must inject minimal overhead such that a significant duration of arbitrarily complex systems and functionality can be simulated.
In BONES, the primary method for describing functionality and structure was through the interconnection of blocks in a graphical paradigm. SES Workbench and Nuthena Foresight promote C and Pascal-like language based methods for describing functionality while providing graphical means for describing topological information.
Each of these companies is the sole definer of language features and provider of tools for their respective environment and language variant. These products tend to focus on the system design issues and do not emphasize linkage to the detailed hardware and software design layers.
The most general purpose languages, such as C or C++, do not contain standard notational constructs for topological structure or concurrent time delays. Although such concepts can be implemented with some added complexity and awkwardness in these languages, the lack of standard methods still leaves each implementor applying incompatible solutions. Additionally, the general purpose languages provide no inherent means to transfer design information to the lower, more detailed, design layers such as RTL.
In contrast, VHDL contains standard constructs for describing topological structure, concurrent time delays, and arbitrarily abstract functionality IEEE Standard VHDL Language Reference Manual. The description of structure and functionality is inherently independent in VHDL.
Verilog is a competing hardware language with VHDL. Although Verilog contains standard methods for describing topological structure and concurrent time-delays, it is specifically aimed at the detailed (Gate Level) hardware design task. Verilog does not possess as powerful mechanisms for spanning the higher abstraction levels such as arbitrary compound data types or custom signal resolution functions that are needed when not modeling pure electrical values.
Of the standard languages, VHDL is uniquely capable of spanning the necessary abstraction layers: from mathematical algorithms down to RTL and logic. It can provide a direct coupling and transfer of design information between the levels.
VHDL is a stable IEEE and ANSI standard language for which a diversified array of vendors offer compilers, simulators, and model libraries. For the above reasons, VHDL became the language of choice for implementing performance models on the RASSP program.
All three approaches establish a computer assisted environment for analyzing and designing complex systems comprising large numbers of hardware and software components. All are composed of model-based representations of system building blocks. All three support an ordered architecture development process targeted at rationalizing architectural feature selection against measurable performance goals. This process combines traditional system
decomposition techniques with simulation-based performance experimentation and analysis to support rapid system prototyping in a virtual environment.
The ADEPT environment describes systems in a very abstract way in terms of servers and queues. It forms a well-matched tool for queuing system investigations. ADEPT's primitive library is very versatile and can be used in a variety of ways to describe the performance related aspects of a digital processing system or any of its computational devices.
In the ADEPT environment, a system model is constructed by interconnecting a collection of ADEPT modules. The modules model the information flow, both data and control, through a system. Each ADEPT module is implemented in VHDL and has a corresponding colored Petri net (CPN) representation, which is based on Jensen's CPN model. The modules communicate by exchanging tokens, which represent the presence of information, using a uniform, well defined handshaking protocol. Higher level modules can be constructed from the basic set of ADEPT modules. In addition, custom modules can be incorporated into a system model as long as the handshaking protocol is adhered to. The entire set of ADEPT modules is divided into six categories. A more detailed description of the entire ADEPT module set can be found in the following:
The PML library operates on a different paradigm level than ADEPT.
It can be considered to be specific to the task of network architecture design.
CSIM's libraries encompass both paradigms.
In comparison to ADEPT, PML and CSIM contain primitives consisting of elements representing complete
network components, such as processor elements, network switches, and buffer-memories.
Honeywell has developed the PML in VHDL using standard commercial VHDL capabilities. See the following papers for a more thorough discussion: VHDL Performance Models, Evaluating Distributed Multiprocessor Designs, Advanced Multiprocessor System Modeling. The library consists of high-level building blocks such as configurable input/output devices, memories, communication elements, and processors. The processor model is the key element to the performance modeling methodology as it facilitates hardware/software codesign and co-analysis. These building blocks can be rapidly assembled and configured to many degrees of fidelity with minimal effort. Standard output routines tabulate and graph performance statistics such as utilization and latency. These statistics can be used for performance verification studies.
The differences between the Honeywell PML and the UVa ADEPT can be traced to two factors.
First, the Honeywell PML is intended to develop performance models of systems that
include more functional information than performance models developed in ADEPT.
This inclusion of more functional information has the potential to ease the
token-to-value translation process in mixed-level or abstract-behavioral modeling.
This difference can be attributed to the different requirements to which the libraries were designed. The ADEPT library elements have a direct mapping to Petri net components which allows more formal analysis techniques. The PML elements do not have that requirement.
Second, the actual implementation of tokens and token flow in PML or CSIM is different from ADEPT.
For example, in PML and CSIM, the tokens include routing information that is used to direct the flow
of tokens over buses with multiple sources and/or sinks.
In ADEPT, each signal has only one source and one sink, so routing information is not required.
Some of the differences in implementation can be traced to the different levels of detail
that are intended to be expressed in each tool as described above.
The performance model library developed by ATL and described in a paper,
VHDL-based Performance Modeling and Virtual Prototyping
is similar to the PML. The ATL models use the Processor-Memory-Switch (PMS) paradigm
to describe the architecture of digital systems. As in the PML, separate representations for
hardware and software models are used. However in the ATL system, changing software models
does not require re-compilation of the hardware processor model.
The ATL-CSIM library consists of a processor element, switch element and a shared memory
element model. The processor element is conceptually divided into two concurrent processes:
the computation agent and the communications agent. The computation agent has four basic
instructions: compute, send, receive, and loop.
In general, the differences between the ATL-CSIM and PML models are that the PML was
designed to be slightly more detailed and less abstract. The trade-off is that the PML
models allow detailed model construction at some performance expense.
The ATL models are slightly more abstract in nature but are somewhat faster.
Accuracy can be tuned by adjusting parameters.
This is a classic trade-off in modeling systems.
4.0 Performance Modeling Environments
A modeling environment is characterized by the language(s) used to describe the system under design as well as the tools used to work with the models. 4.1 Requirements for a Performance Modeling Environment
The modeling language must possess convenient methods for expressing the structure, functionality, and temporal concurrency aspects of a complex systems. Ideally, the descriptive constructs should be standard to support model interoperability and re-use.
4.2 Proprietary Language Based Environments
Several excellent performance modeling tools exist on the open market.
For example, BONES was a Block Oriented Network Simulation environment produced by the Alta Group
Of Cadence Design Systems. (Although BONeS is no longer supported,
similar libraries have been produced to replace it.)
Workbench is a system simulation environment produced by Scientific and Engineering Software (SES). Foresight is a system design environment
produced by Nu Thena Systems. Each of these tools provide libraries and convenient environments for abstract network architecture simulations.
4.3 Open-Standard Languages
Standard languages such as (VHSIC Hardware Description Language) VHDL, Verilog, C, C++, or Java offer great potential for integration with other design models that are already based on these languages. However, conventions for their usage in performance modeling have not been previously developed.
4.4 Open-Standard Language Based Environments
Several approaches to standard language-based performance modeling have been developed under the RASSP program.
Next: 5 Performance Modeling Method
Up: Appnotes Index
Previous:3 Metrics