Related articles |
---|
Stack based machines thand@pmail.net (Linus Thand) (2000-03-23) |
Re: Stack based machines plakal@cs.wisc.edu (2000-03-23) |
Re: Stack based machines dvdeug@x8b4e53cd.dhcp.okstate.edu (2000-03-25) |
Re: Stack based machines pieter@cs.kun.nl (Pieter Koopman) (2000-03-25) |
Re: Stack based machines galexand@sietch.bloomington.in.us (2000-03-25) |
Re: Stack based machines bonzini@my-deja.com (2000-03-25) |
Re: Stack based machines gneuner@dyn.com (2000-03-25) |
Re: Stack based machines dxj@mnsinc.com (Deepak Janardhanan) (2000-03-25) |
Re: Stack based machines koopman@cmu.edu (Philip Koopman) (2000-03-25) |
Re: Stack based machines Keith@wootten.demon.co.uk (Keith Wootten) (2000-03-28) |
Re: Stack based machines bpaysan@mikron.de (Bernd Paysan) (2000-03-28) |
Re: Stack based machines dxj@mnsinc.com (Deepak Janardhanan) (2000-03-28) |
From: | gneuner@dyn.com (George Neuner) |
Newsgroups: | comp.compilers,comp.arch |
Date: | 25 Mar 2000 02:36:26 -0500 |
Organization: | Dynamic ReSolutions, Inc. |
References: | 00-03-101 00-03-124 |
Keywords: | architecture, performance |
On 23 Mar 2000 23:45:32 -0500, plakal@cs.wisc.edu wrote:
>Linus Thand <thand@pmail.net> wrote:
>> What is happening in the world of stack-based machines?
>> Are there any active groups working on processors or
>> compilers (I'm especially interested in functional languages).
>>
>> [Other than forth, not much I'm aware of. Registers give an architecture
>> a big performance boost, and it's hard to fake that by caching to top of
>> the stack. -John]
>
> Well, there's the whole Java thing and Sun making
> those processor cores: {micro,pico,ultra}Java which
> I believe are all stack machines. I do remember
> reading a design document from Sun a long time back
> which described mapping the top elements of the stack
> to registers in at least one of these processors.
>
> Manoj
>[There have been lots of stack architectures that kept the top of the
>stack in registers, but it's my impression that performance is worse
>than real registers. Registers hold common subexpression values and
>hot loop variables as well as expression temporaries, and stack
>caching doesn't easily get either of those. -John]
Sorry for the large quote, but it's need to establish the context.
One thing you can do is to frame the data stack so that all the
function locals and temporaries are at known offsets. Stack size
permitting, that gives you effectively unlimited registers and you use
classic stack ops only for expression evaluation. It does require the
ability to load and store values at arbitrary stack positions, but
many stack machines already allow deep fetches.
This architecture is (currently) better suited to a software VM
interpreter than to real hardware, but there have been a few academic
attempts to create such hardware.
George Neuner
Dynamic Resolutions, Inc.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.