ISA support for constant count loops: ineffective compared to micro-threads

By: dmcq (dmcq.delete@this.fano.co.uk), January 22, 2020 1:31 pm
Room: Moderated Discussions
Heikki Kultala (heikki.kultala.delete@this.tuni.fi) on January 22, 2020 9:47 am wrote:
> ⚛ (0xe2.0x9a.0x9b.delete@this.gmail.com) on January 22, 2020 8:18 am wrote:
>
> > > Note that with Out Of Order processor you may already treat few iteration in parallel right now...
> >
> > Only if you can statically (at compile-time) prove that the few iterations are data independent.
>
> No.
>
> OoOE works fully dynamically. The processor fetches multiple iterations of the loop (later
> iterations of the micro-op cache) and instructions from ANY iteration can execute.
>
> There is no need to prove ANYTHING at compile time; The incoming code looks like completely serial
> code but the processor extracts huge amount of parallelism from it fully dynamically.
>
> If the processor makes some wrong guess like branch misprediction or incorrectly predicted
> memory aliasing, then it just reverts the the "last known correct state".

I think the different ARM API's SVE for the high end Cortex-A and Helium for Cortex-M are relevant to the discussion. Neither have specific support for constant counts. Helium is for slow and simple in-order processors with relatively fast memory and task switching - but allows the end of one loop to overlap the start of the next provided the special instructions that can stop loop branches being fetched are used. SVE is designed for high end OoO processors with relatively slow memory and task switching. The Helium instructions would I guess be considered wrong for a large OoO processor - they are a marvellous design for their purpose I think, but for OoO the whole design would be considered a bunch of kludges like the delay slot in MIPS.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
LLVM comments on mem*Maynard Handley2020/01/14 01:51 PM
  LLVM comments on mem*Anon32020/01/15 06:28 AM
  Interesting comment about rep instructions & code sizeGabriele Svelto2020/01/15 07:12 AM
    Interesting comment about rep instructions & code sizenone2020/01/15 08:59 AM
      Interesting comment about rep instructions & code sizeGabriele Svelto2020/01/16 03:56 AM
        Interesting comment about rep instructions & code sizeLinus Torvalds2020/01/16 10:12 AM
          ISA support for constant count loopsPaul A. Clayton2020/01/16 11:28 AM
            ISA support for constant count loopsGabriele Svelto2020/01/16 02:15 PM
              PowerPC "front-end registers"Paul A. Clayton2020/01/16 03:34 PM
              ISA support for constant count loopsTravis Downs2020/01/16 05:21 PM
                ISA support for constant count loopsLinus Torvalds2020/01/16 08:41 PM
                  ISA support for constant count loopsTravis2020/01/16 09:48 PM
                    ISA support for constant count loopsBrett2020/01/17 01:28 AM
              Branch to CTRMaya2020/01/18 08:15 AM
                Branch to CTRGabriele Svelto2020/01/18 01:14 PM
            ISA support for constant count loopsanon2020/01/17 08:28 AM
              ISA support for constant count loopsTravis Downs2020/01/17 08:34 AM
            ISA support for constant count loops: ineffective compared to micro-threads2020/01/20 08:02 AM
              ISA support for constant count loops: ineffective compared to micro-threadssomeone2020/01/20 12:23 PM
                ISA support for constant count loops: ineffective compared to micro-threads2020/01/22 09:23 AM
              ISA support for too slow computersEtienne2020/01/21 02:42 AM
                ISA support for constant count loops: ineffective compared to micro-threads2020/01/22 09:18 AM
                  ISA support for constant count loops: ineffective compared to micro-threads2020/01/22 10:04 AM
                  ISA support for constant count loops: ineffective compared to micro-threadsHeikki Kultala2020/01/22 10:47 AM
                    ISA support for constant count loops: ineffective compared to micro-threadsdmcq2020/01/22 01:31 PM
                    ISA support for constant count loops: ineffective compared to micro-threads2020/01/22 03:28 PM
                      ISA support for constant count loops: ineffective compared to micro-threadsEtienne2020/01/22 04:35 PM
          Interesting comment about rep instructions & code sizeGabriele Svelto2020/01/16 02:00 PM
    Interesting comment about rep instructions & code sizeTravis Downs2020/01/15 03:40 PM
      Interesting comment about rep instructions & code sizeChester2020/01/15 05:16 PM
        Interesting comment about rep instructions & code sizeTravis Downs2020/01/15 05:50 PM
          Interesting comment about rep instructions & code sizeChester2020/01/15 07:24 PM
            Interesting comment about rep instructions & code sizeTravis Downs2020/01/16 02:26 PM
              Interesting comment about rep instructions & code sizeChester2020/01/17 01:16 PM
                Interesting comment about rep instructions & code sizeTravis Downs2020/01/17 03:41 PM
        Interesting comment about rep instructions & code sizeGabriele Svelto2020/01/16 03:53 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell purple?