Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #51693

Re: Stack Sizes

From Walter Banks <walter@bytecraft.com>
Newsgroups comp.lang.forth
Subject Re: Stack Sizes
Date 2016-10-08 07:23 -0400
Organization Aioe.org NNTP Server
Message-ID <ntal08$1r85$1@gioia.aioe.org> (permalink)
References (3 earlier) <d3174888-b58a-4df1-8bd6-6c5702729da2@googlegroups.com> <nt777n$9oq$1@dont-email.me> <87k2dkwuqs.fsf@nightsong.com> <nt7f6v$r4e$1@dont-email.me> <20161007230503.2b35c2d3@_>

Show all headers | View raw


On 2016-10-07 11:05 PM, Rod Pemberton wrote:
> On Fri, 7 Oct 2016 02:26:54 -0400 rickman <gnuarm@gmail.com> wrote:
>
>> On 10/7/2016 2:14 AM, Paul Rubin wrote:
>>> rickman <gnuarm@gmail.com> writes:
>
>>>> A register/stack hybrid by giving a limited range of access
>>>> into the stack for operands.
>>>
>>> This sounds like a register window architecture, e.g. SPARC.
>>> They were in vogue in workstation processors for a while, but
>>> then went out of favor, I think because of difficulties making
>>> them superscalar or something like that.  For a small fpga
>>> softcore maybe that doesn't matter.
>>
>> Lol, no, I don't think not being "superscalar" matters to a MISC
>> CPU. Not familiar with register window, but that sounds a bit like
>> it, but put it on top of a stack.  The idea is to do away with most
>> of the stack manipulations, OVER, DUP, etc. buy implementing them
>> with small offsets and stack pointer adjustments other than
>> +1/0/-1.
>>
>> One of the issues in stack machines is dealing with more than a
>> couple or three stack items.  I think a small offset into the
>> stack will make this work a lot better.
>>
>
> It would be useful if you could move the pointer from position at
> the top of the stack, while guaranteeing that items now above the
> new pointer location were not corrupted.  E.g., if you wanted to swap
> the 3rd and 4th items, you could:
>
> 1) change data stack pointer to point to 3rd item 2) "protect" the
> items between new and old position, i.e., "guard" the 1st and 2nd
> items 3) SWAP, which would swap the 3rd and 4th items 4) restore data
> stack pointer 5) remove "guard" protecting 1st and 2nd items from
> being overwritten
>
> I noticed this type of situation come up both in Forth code and C
> code converted to Forth.  This would make all data stack operations
> independent of the current stack position.  I'm just not sure how to
> do it more effectively than moving items to the return stack.
> Guarding the data would be the hard part in software, I think,
> without needing to use to two block moves of data, which would slow
> this down.  Swapping the stack pointer is quick and easy.

This is an accurate description of a very real problem. In both code
generators and ISA projects I have worked on deal with the data stack is
a problem because of fundamental assumptions. A lot of the ISA's out
there make an assumption that if a stack pointer is created that looks a
lot like an index register with a rich collection of math operations
then everything will just work out. As  your simple example points out
there are really two problems.

1) There is a real need for two pointers for a stack one the simple
pointer that indexes where data is pushed on and off the stack and a
second that carries with it top and next operate. Combining the two as
most systems do is always a compromise.

2) Operations on the stack have different ISA requirements than index
register operations on Global variables. This difference starts with the
role of the accumulator. The question of a primary accumulator, is it
the TOP or separate AC. In your example above the AC needs to be TOP.

 From metrics (assuming appropriate code generation) we have shown that
the TOP can always be the system AC without penalty but for stack
operations an AC separate from top of stack can be expensive.

Going back to your example there is the overhead of moving using
whatever mechanism the register window somewhere on the stack. ISA
developers have tried a lot of approaches. Stack indexing - address
overhead. Pointer base addressing - set up overhead. Ivan Godard's belt
to reduce offset address size offset by retaining most intermediate
results.

w..




Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 08:22 -0400
  Re: Stack Sizes foxaudioresearch@gmail.com - 2016-10-03 07:00 -0700
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 11:14 -0400
      Re: Stack Sizes Bernd Linsel <bl1@gmx.com> - 2016-10-03 18:20 +0200
        Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-03 11:30 -0500
          Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-03 15:27 -0400
          Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 18:12 -0400
            Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-03 17:52 -0500
            Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-03 16:06 -0700
        Re: Stack Sizes Jan Coombs <jenfhaomndgfwutc@murmic.plus.com> - 2016-10-04 08:31 +0100
          Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-04 08:46 +0000
            Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 10:38 -0400
            Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-04 11:59 -0700
              Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-05 09:59 +0000
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 10:16 -0400
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-06 08:21 +0000
          Re: Stack Sizes minforth@arcor.de - 2016-10-04 05:00 -0700
          Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 08:49 -0400
      Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-03 16:28 -0700
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 10:36 -0400
          Re: Stack Sizes Rod Pemberton <NoHaveNotOne@zxdehrnyya.cam> - 2016-10-04 16:15 -0400
          Re: Stack Sizes Brad Eckert <hwfwguy@gmail.com> - 2016-11-09 09:56 -0800
            Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-11-12 09:15 -0500
    Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-03 10:35 -0500
    Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-11 01:01 +0000
  Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-03 10:21 -0400
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 11:06 -0400
      Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-03 15:22 -0400
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 18:04 -0400
    Re: Stack Sizes Hans Bezemer <the.beez.speaks@gmail.com> - 2016-10-04 20:46 +0200
      Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 15:40 -0400
        Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 12:26 -0700
          Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 15:44 -0500
            Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 16:32 -0700
              Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 20:01 -0400
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 07:39 +0000
              Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 20:36 -0500
                Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 21:28 -0700
          Re: Stack Sizes alex <alex@rivadpm.com> - 2016-10-05 22:07 +0100
            Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-06 00:05 -0700
            Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-06 02:17 -0500
      Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-04 19:27 -0400
        Re: Stack Sizes Hans Bezemer <the.beez.speaks@gmail.com> - 2016-10-05 18:58 +0200
          Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 13:17 -0400
            Re: Stack Sizes Hans Bezemer <the.beez.speaks@gmail.com> - 2016-10-22 12:35 +0200
          Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 12:18 -0500
            Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 16:07 -0400
              Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 15:50 -0500
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 17:36 -0400
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 17:14 -0500
                Re: Stack Sizes "Elizabeth D. Rather" <erather@forth.com> - 2016-10-05 14:48 -1000
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 20:49 -0500
  Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-03 16:32 +0000
  Re: Stack Sizes Chris Curl <ccurl609@gmail.com> - 2016-10-03 13:53 -0700
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 17:54 -0400
  Re: Stack Sizes Rod Pemberton <NoHaveNotOne@zxdehrnyya.cam> - 2016-10-03 23:40 -0400
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 11:30 -0400
  Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-03 21:47 -0700
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 11:22 -0400
      Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-04 11:44 -0700
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 15:53 -0400
          Re: Stack Sizes Rod Pemberton <NoHaveNotOne@zxdehrnyya.cam> - 2016-10-04 16:15 -0400
      Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 14:31 -0700
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-06 08:48 -0400
          Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-06 13:08 -0700
            Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-06 19:11 -0400
  Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-06 12:08 -0700
    Re: Stack Sizes alex <alex@rivadpm.com> - 2016-10-06 21:47 +0100
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-06 19:05 -0400
    Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-06 21:57 -0400
      Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-06 19:21 -0700
        Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-07 00:10 -0400
          Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-06 23:14 -0700
            Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-07 02:26 -0400
              Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-06 23:57 -0700
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-07 08:18 -0500
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-07 10:52 -0400
                Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-09 16:22 -0700
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-10 01:49 -0400
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-10 10:21 -0500
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-10 22:39 -0400
                Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-10 12:36 +0200
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-13 13:45 -0700
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-14 01:16 -0700
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-15 20:38 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-16 02:00 -0400
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-16 18:38 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-16 22:27 -0400
                Re: Straight Forth Re: Stack Sizes Raimond Dragomir <raimond.dragomir@gmail.com> - 2016-10-16 21:14 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 00:35 -0400
                Re: Straight Forth Re: Stack Sizes Raimond Dragomir <raimond.dragomir@gmail.com> - 2016-10-16 23:31 -0700
                Re: Straight Forth Re: Stack Sizes "Elizabeth D. Rather" <erather@forth.com> - 2016-10-16 20:36 -1000
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-17 13:11 -0700
                Re: Straight Forth Re: Stack Sizes Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2016-10-17 19:14 -0400
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-17 21:53 +0000
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-17 16:54 -0700
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-21 22:13 +0000
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-21 17:46 -0700
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-23 22:26 +0000
                Re: Straight Forth Re: Stack Sizes JUERGEN <epldfpga@aol.com> - 2016-10-24 09:13 -0700
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-24 16:28 -0700
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-24 17:20 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-24 22:23 -0400
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-11-04 20:39 +0000
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-16 22:42 -0700
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-17 11:12 +0200
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-17 09:20 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 19:11 -0400
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-17 16:40 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 20:19 -0400
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-17 17:25 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 20:50 -0400
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-18 02:04 +0200
                Re: Straight Forth Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-18 06:13 +0000
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-16 15:21 -0700
                Re: Straight Forth Re: Stack Sizes Doug Hoffman <glidedog@gmail.com> - 2016-10-17 04:09 -0400
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-17 13:48 -0700
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-18 02:12 +0200
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-18 00:35 -0700
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-18 12:53 +0200
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-18 12:12 -0700
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 16:53 +0000
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-09 08:34 -0500
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-09 16:03 +0000
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-10 03:25 -0500
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-10 10:29 -0500
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-11 05:19 -0500
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-10 14:41 +0000
                Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-10 20:23 +0200
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-11 05:16 -0500
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-12 12:54 +0000
                Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-12 18:27 +0200
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-12 17:06 +0000
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-12 13:01 -0500
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-12 17:07 -0400
                Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-13 03:18 +0200
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-14 14:26 -0400
                Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-12 20:30 -0700
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-13 15:52 +0000
                Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-13 15:05 -0700
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-14 03:08 -0500
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-14 14:41 -0400
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-07 12:33 -0500
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-08 01:12 -0400
              Re: Stack Sizes Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2016-10-07 23:05 -0400
                Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-07 21:56 -0700
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-08 07:23 -0400
                Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-11 22:39 -0700
            Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-07 08:21 +0200
            Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-07 09:22 +0200
              Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-07 09:35 +0200
                Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-07 10:51 -0700
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-07 13:21 -0500
                Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-07 20:40 +0200
                Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-07 20:53 +0200
            Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 07:35 +0000
              Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-07 01:09 -0700
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 15:59 +0000
                Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-17 22:05 +0000

csiph-web