I hope you find something, but there are challenges

By: blaine (myname.delete@this.acm.org), August 3, 2022 12:03 pm
Room: Moderated Discussions
NoSpammer (no.delete@this.spam.com) on August 3, 2022 7:55 am wrote:
> Adrian (a.delete@this.acm.org) on August 3, 2022 2:19 am wrote:
> > Mark Roulo (nothanks.delete@this.xxx.com) on August 2, 2022 6:48 pm wrote:
> > >
  • Stack or memory based architecture (you really want registers)

  • > >
    > >
    > > Nobody has proven yet whether encoding the operands implicitly with operations defined
    > > on a stack is better or worse than encoding the operands using register numbers.
    >
    > So mainstream architectures that used to use stack-like structures like intel x87
    > and archs using register windows being obsoleted are not a practical proof?
    >
    > From the information theoretical perspective it's actually likely that stack-based encoding would have code
    > density advantage simply due to the fact that code is more likely to reuse most recent results, BUT... it's
    > likely that you can devise alternative encodings using shorthand instructions to refer to the last few results,
    > too. It's just that nobody has researched that because it became clear a long time ago that symmetric access
    > to the registers is in fact preferred if you want to make anything like a decent compiler.
    >
    > Also, if you actually look at a dependency graph of many relevant algos, it looks more like
    > a lattice than a tree that would suggest it naturally maps to stack based computation.
    >
    > > The problem with the early stack-based instruction encodings, like Intel
    > > 8087, was that they used ONLY ONE STACK, not that they were stack based.
    >
    > How would N+1 stacks improve performance for general purpose
    > code and compilers? How about spillovers and function calls?
    >
    > > In modern OoO CPUs, the register numbers used in the instruction encodings are no longer
    > > addresses, but only means to specify the data dependencies between instructions. The same
    > > data dependencies can be specified implicitly when the operand belong to a stack.
    >
    > I would correct you that the register numbers are used to specify EXPLICIT dependencies between instructions,
    > which is very important if you want to parse dependencies quickly without additional indirection.
    >
    > > Allowing each instruction to specify 1 of 4 operand stacks might be enough
    > > to remove most false dependencies, while specifying 1 of 8 operand stacks
    > > is pretty much certain to prevent the apparition of false dependencies.
    >
    > Sure if 8 registers only works kinda ok for most code, 8 stacks will do. Maybe you actually
    > keep the top of the stack in the register and spill over the stack, oh look, x86.
    >
    > > There is no doubt that a stack-based encoding with multiple operand stacks would increase a lot the code
    > > density. What is not clear is how much more complex would be the implementation of such a CPU in comparison
    > > with using register numbers for operands, i.e. if the improvement in code density would be worthwhile.
    >
    > I think it's quite clear that is not a compiler friendly target for current compiler tech.
    > It's also quite clear that you will be burning power resolving a layer of indirection.
    > It's also quite clear that you will be wasting time shuffling stack order at many block edges.
    >
    > > The most complex issues with a stack-base encoding would be to determine which are the best strategies
    > > for avoiding operand stack overflow and for what to save or not save across function invocations.
    >
    > Here you are again in the territory where static code analysis cannot give you the
    > answer for dynamic code, virtual functions, trees of logic before/between FP etc.
    >

    Also be ware that you understand the workload your are designing for. An embedded controller WL may have different needs than a general purpose computer.
    < Previous Post in Thread 
    TopicPosted ByDate
    Empirical data on ISA design parametersNvaxPlus2022/08/02 08:45 AM
      Empirical data on ISA design parameters---2022/08/02 10:25 AM
        Empirical data on ISA design parametersRayla2022/08/02 10:29 AM
      Empirical data on ISA design parametersAnon2022/08/02 11:46 AM
        Empirical data on ISA design parametersAdrian2022/08/03 02:00 AM
          Immediate ranges (was: Empirical data on ISA...)Marcus2022/08/07 10:16 AM
            Immediate ranges (was: Empirical data on ISA...)Björn Ragnar Björnsson2022/08/07 05:14 PM
              Immediate ranges (was: Empirical data on ISA...)Marcus2022/08/07 09:50 PM
      I hope you find something, but there are challengesMark Roulo2022/08/02 06:48 PM
        I hope you find something, but there are challengesBrett2022/08/02 10:41 PM
          I hope you find something, but there are challengeshobold2022/08/03 03:17 AM
            I hope you find something, but there are challengesBrett2022/08/03 11:37 AM
        I hope you find something, but there are challengesvonk2022/08/03 12:22 AM
        I hope you find something, but there are challengesAdrian2022/08/03 02:19 AM
          I hope you find something, but there are challengesNoSpammer2022/08/03 07:55 AM
            I hope you find something, but there are challengesAnon2022/08/03 09:25 AM
              I hope you find something, but there are challengesLinus Torvalds2022/08/03 11:31 AM
              I hope you find something, but there are challengesNoSpammer2022/08/04 03:18 AM
                I hope you find something, but there are challengesAdrian2022/08/04 04:56 AM
                  I hope you find something, but there are challengesLinus Torvalds2022/08/04 11:03 AM
                    I hope you find something, but there are challengesMr. Camel2022/08/04 12:29 PM
                  I hope you find something, but there are challengesNoSpammer2022/08/08 09:31 AM
                I hope you find something, but there are challengesAnon2022/08/04 02:54 PM
            I hope you find something, but there are challengesAdrian2022/08/03 11:33 AM
              I hope you find something, but there are challengesBrett2022/08/03 12:21 PM
              I hope you find something, but there are challenges---2022/08/03 02:55 PM
                I hope you find something, but there are challengesBrett2022/08/03 04:31 PM
                  Rebirth of the 68k archBrett2022/08/05 01:17 PM
                    Rebirth of the 68k archMarcus2022/08/06 04:36 AM
                      Rebirth of the 68k archMegol2022/08/07 02:01 PM
                        Rebirth of the 68k archMarcus2022/08/07 11:30 PM
                          Rebirth of the 68k archBrett2022/08/08 12:31 AM
                            Rebirth of the 68k archMarcus2022/08/08 01:46 AM
                      Rebirth of the 68k archAnon2022/08/07 02:57 PM
                        Rebirth of the 68k archBrett2022/08/07 05:37 PM
                          68K was not a kludgeMark Roulo2022/08/07 06:05 PM
                            68K was not a kludgeBrett2022/08/07 09:56 PM
                              68K was not a kludgenone2022/08/08 01:00 AM
                                rich man's VAX and more O.T.Michael S2022/08/08 02:44 AM
                                  rich man's VAX and more O.T.none2022/08/08 02:51 AM
                    Rebirth of the 68k archBrett2022/08/10 11:59 PM
                      Rebirth of the 68k archUngo2022/08/11 03:53 AM
                        Rebirth of the 68k archAnon42022/08/11 12:08 PM
                          Rebirth of the 68k archrwessel2022/08/11 01:02 PM
                I hope you find something, but there are challengesAdrian2022/08/04 12:07 AM
                  I hope you find something, but there are challengesEtienne2022/08/04 05:15 AM
              I hope you find something, but there are challengesAnon2022/08/03 05:15 PM
            I hope you find something, but there are challengesblaine2022/08/03 12:03 PM
    Reply to this Topic
    Name:
    Email:
    Topic:
    Body: No Text
    How do you spell tangerine? 🍊