home .. forth .. misc mail list archive ..

Hobbit again


At 02:31 PM 3/17/96 +1000, alex lasky wrote:
>> > From: Jaap van Ganswijk <ganswijk@xs4all.nl>
>> > Since you're talking about 'stack based architectures': Does anybody
>> > know what happened to the Hobbit, which is in my opinion the best
>> > chip architecture ever. (From the viewpoint of a compiler writer. ;-)

>"In an attempt to eliminate these problems, Simon Wiseman and Hugh Field-
>Richards at the Defence Research Agency in Malvern
>have developed the High Order Language Instruction Set Computer
>(HOLISTIC). This approach does not shift complexity beetween software and the
>instruction set but attempts to remove it altogether. To do this, Wiseman
> and Field-RIchrads have tried to reduce the "semantic gap" between high-level
>languages that human progarmmers write and the  instructions to which computers
>respond.
>
>"The C programming language makes use of a concept called a "stack" in which
>programs written in C keep a record of the variables used and the memory
>addresses in which they are stored. But the stack is an abstraction: it has no
>meaning outside the software world. At the hardware level, variables and
>addresses are stored not in stacks but in memory registers on the processor
chip
>and in the main memory.
>One of the most complex and time-consuming tasks that a compiler carries out
>is juggling variables between registers and the main memory.
>
>"The aim of the HOLISTIC approach is to reorganise the chip's memory so it
>looks like a stack to the programming language, while the processor sees it as
>a series of registers. "The trick is to make the two views happen at the same
>time", says Wiseman. "If it works then we would not have Macs and PC's
>crashing randomly". Simplifying the computer is also likely to make life easier
>for programmers.

The Hobbit has (almost) no registers and uses a cache on the stack memory
instead. Compared to Forth engines and other pure stack machines it has a
very orthogonal instruction set however and can manipulate not only the top of
the stack but also local variables higher up on the stack. Which helps
compiled C/Pascal/... a lot.
Just see the upper positions on the stack as registers in cache...
.
People try to tell me, that this concept can't be efficient, but I don't see
why...
(The Cyrix 686 for example seems to use dynamically allocated registers
(eax,ebx etc.) within a virtual register bank anyway...)

Groeten,
Jaap

-- Chip Directory
-- http://www.hitex.com/chipdir/ - USA
-- http://www.xs4all.nl/~ganswijk/chipdir/ - Europe
-- http://www.eskimo.com/~cadfael/chipdir/ - Seattle, New!
-- Many other international mirror sites from there...