Developments in computer technology over the last fifty years have led to both increased miniaturisation and, apart from a sawtooth dip when single-chip processors were first introduced, increased design complexity. This has had two consequences for computer architecture education. Firstly, a number of educators have designed simpler, hypothetical architectures which embody the main principles of modern processor architectures but not all of their complexity. Probably the most well known of these is the DLX, an `average' register-register load/store architecture designed by Hennesssy and Patterson [1, 2].
Secondly, techniques have been developed to allow visualisation of the internal activities taking place within processors - in the days when most computers were mainframes it was possible to enthuse students about computers and demonstrate their operation by taking the students to view the internals of the processor hardware and to show them what was happening inside the processor by means of the display lights, for example, which were commonly provided. Numerous DLX simulators have been developed for teaching purpose (e.g. DLXsim - A Simulator for DLX and DLXview).
HASE is a Hierarchical computer Architecture design and Simulation Environment which allows for the rapid development and exploration of computer architectures, encompassing both hardware and software.
The components of a computer system lend themselves naturally to being modelled as objects, so HASE has been implemented in an object oriented language. Furthermore, many complex systems of interacting components can be more easily understood as pictures rather than as words, and in a computer architecture the dynamic behaviour of systems is frequently of interest. Thus the user interface to HASE is via a design window and HASE allows users to view the results of simulation runs though animation of the design window.
HASE uses an Entity Description Language (EDL) file and an Entity Layout (ELF) file to specify an architecture. The EDL file describes the parameters and components of an architecture. From this HASE creates a library of parameter types from which parameter instances (variables) can be created and a library of components from which an architecture can be constructed by linking the defined components together in the desired manner. The screen image of the project is defined by the Entity Layout file which contains screen position information about the displayed entities, their ports and parameters.
When a simulation is run, HASE produces trace file which can be used to animate the on-screen display of the model so as to show data movements, state changes, etc.
The ideas for HASE grew from a simulator built for an MC88000 system, written in occam and run on a Meiko Computing Surface at the Edinburgh Parallel Computing Centre. However, HASE itself has been developed using object oriented simulation languages, the first prototype using DEMOS, the second Sim++ and the current version Hase++. Earlier versions of HASE ran on Solaris and a Windows version was also developed but these are now obsolete. The current version, HASE-III, is a new implementation written in Java. It can be run on Linux, Mac OS X and Windows XP.
Hase++ is a discrete event simulation engine with a programming interface similar to that of Sim++, but implemented using C++ and threads. It includes a set of library routines to provide for process oriented discrete event simulation and a run time system for multi-threading many objects in parallel and keeping track of simulation time.
HASE was originally developed as part of the ALAMO project supported by the UK EPSRC under grant GR/J43295. It has been further developed with EPSRC support for use in the EMIN Project (EPSRC Grant GR/K19716), the QCDOC Computer Simulation project (EPSRC grant GR/R27129) and the Storlite Project (EPSRC grant GR/S28153). It has also been used for a variety of undergraduate and postgraduate projects and a number of HASE models are being used in support of teaching.
More detailed information about HASE can be accessed from Documents about HASE & SimJava.
References1. John L. Hennessy and David A. Patterson, "Computer Architecture: A Quantitative Approach", Morgan Kaufmann, 1990. (Back to top)
2. P.M. Sailer & D.R. Kaeli "The DLX Instruction Set Architecture Handbook", Morgan Kaufmann, 1996. (Back to top)
Return to HASE home page