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)