[net.arch] Flexible Architectures, CISC's and RISC's

jpb@jenny.UUCP (Jeremy Bennett) (07/02/85)

A number of contributors have asked "Who is interested in flexible
architectures anyway these days".

A couple of us (myself and Martin Richards) at Cambridge, England are
currently looking at such architectures, with a particular interest in
the static compactness of compiled code. Very small programs may lead to
a considerable increase in overall machine performance, not so much in
execution, as in the loading of the code in the first place. In the case
of machines without virtual memory this is achieved by the possibility of
preloading commonly used commands; in the case of machines with virtual
memory the improved performance comes from a reduction in working set
size. Our investigations suggest that in some environments on existing
machines up to 80% of overall command execution time may be spent in
loading code.

One approach is to tune the architecture to the high level language in
use, and there are many cases of this in the literature (see e.g.
Tannenbaum or Sweet & Sandman). This is very much the CISC philosophy,
and over the years a number of better and better empirical examples have
been published. To apply this to multi-language machines must involve
ability to change architecture dynamically.

We are now trying to find out whether a theoretical minimum can be
obtained for the encoding of a given high level language, based on the
information content of programs in the language, and the relationship
between encoding density and speed of decoding (important for practical
machines). This is a change from most previous approaches which have
taken existing architectures (and hence an existing view of the world)
and made them more compact. The best attempt so far would seem to be the
Canonical Interepretive Form devised by Flynn.

Views on the desirability of statically compact programs, and in
particular experience in comparison with more verbose architectures would
be welcome. Ideas on how to merge the RISC philosophy (which in principle
obviates the need for multiple arcitectures) with the idea of very
compact code (a contradiction in terms perhaps!?) would similarly be of
interest.

Jeremy Bennett,
University of Cambridge Computer Laboratory,
Corn Exchange Street,
Cambridge CB2 3QG
ENGLAND

References:

M J Flynn,
Directions and Issues in Architecture and Language,
Computer Vol 13 No 10, pp 5-22 (October 1980)

R E Sweet & J G Sandman,
Empirical Analysis of the Mesa Instruction Set,
ACM Symposium on Arhitectural Support for Programming Languages &
Operating Systems (March 1982).

S A Tannebaum,
Implications of Structured Programming for Machine Architecture
CACM Vol 2 No 3, pp 237-246 (March 1978)