New article: AMD's Jaguar Microarchitecture

Article: AMD's Jaguar Microarchitecture
By: Maynard Handley (name99.delete@this.name99.org), April 6, 2014 2:52 pm
Room: Moderated Discussions
Michael S (already5chosen.delete@this.yahoo.com) on April 6, 2014 1:50 am wrote:
> Maynard Handley (name99.delete@this.name99.org) on April 5, 2014 6:01 pm wrote:
> > Michael S (already5chosen.delete@this.yahoo.com) on April 5, 2014 10:59 am wrote:
> > >
> > > I don't follow.
> > > Why should one save/restore the whole FPU state, why not only FP control register? Saving/restoring
> > > only FPU control register is not slow relatively to the rest of library call overhead
> > > and it *should* be done by any library that wants to use non-default control bits. Anything
> > > less is bug and should not be tolerated bu library users.
> > >
> >
> > By FPU state I mean the stuff that would be in an FP control register. I don't
> > mean the state of standard FP registers. Sorry, I guess that was not clear.
> >
> > The point is
> > (a) put it ALL CONTROL state in ONE register. And don't make the problem artificially
> > more complicated by mixing up CONTROL bits with STATUS bits.
> > (b) allow rapid reading and writing of that control state register with a single user level
> > read/write operation, instead of a twiddle one bit at a time with high latency model.
>
> Intel/AMD MXCSR, indeed combines control and status in the same registers. Same for Power FPSCR. And, indeed,
> I don't like it from pure theoretical point of view. But in practice it is not a significant problem.

Reading and writing control both make sense, writing status does not make sense.

Reading control can be as fast as reading any other register, reading status means you have to delay the read until the status is available.

Writing control (in a model where control is separate from status) is also easy and fast because now "all" you do is attach the control bits (as they are defined at the point of instruction execution) to each instruction, and they then flow along with instruction execution. At the point where you're making each decision (rounding, deform, etc), you consult the attached bit, not the global register. The main additional feature you need to add is that FP instructions later than a change of FP control don't move past an FP control write. (Or you can speculate on this, but an explicit test is probably easier and more performant.)

PPC allows for 4-bit at a time twiddling of the FPSCR. This has the potential to be faster than reading and writing the whole thing because now you aren't necessarily delayed by the status bits; but it does mean that pulling out/shoving in the data you want is now two instructions (I think there are 8 control bits of interest on PPC, but it's been a while) each time, instead of one, and two registers that have to just sit around storing that info otherwise unusable, or which have to be pushed then popped.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
New article: AMD's Jaguar MicroarchitectureDavid Kanter2014/04/01 12:19 AM
  New article: AMD's Jaguar MicroarchitectureSHK2014/04/01 05:09 AM
    New article: AMD's Jaguar MicroarchitectureJeff Rupley2014/04/01 06:13 PM
      New article: AMD's Jaguar MicroarchitectureSHK2014/04/02 05:45 AM
        CMOV is 3 operand given register renamingPaul A. Clayton2014/04/02 08:11 AM
          CMOV is 3 operand given register renamingSHK2014/04/02 11:17 AM
            Limited operand tags in issue queue entriesPaul A. Clayton2014/04/02 12:32 PM
        New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/02 11:48 AM
          New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/02 01:32 PM
  New article: AMD's Jaguar MicroarchitectureGeorge2014/04/01 01:10 PM
  New article: AMD's Jaguar Microarchitecturewillmore2014/04/01 05:37 PM
    New article: AMD's Jaguar Microarchitecturewillmore2014/04/01 06:08 PM
    New article: AMD's Jaguar MicroarchitectureNaN2014/04/02 07:58 AM
      New article: AMD's Jaguar MicroarchitectureUnmaskedUnderflow2014/04/04 06:16 AM
        New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/04 07:54 AM
          New article: AMD's Jaguar MicroarchitectureUnmaskedUnderflow2014/04/04 10:45 AM
            New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/04 01:00 PM
              New article: AMD's Jaguar MicroarchitectureNoSpammer2014/04/04 02:15 PM
              New article: AMD's Jaguar MicroarchitectureTREZA2014/04/04 02:18 PM
                New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/04 03:56 PM
                  New article: AMD's Jaguar MicroarchitectureTREZA2014/04/04 04:34 PM
                  New article: AMD's Jaguar MicroarchitectureMichael S2014/04/05 10:02 AM
                  New article: AMD's Jaguar Microarchitecturecomputational_scientist2014/04/05 05:50 PM
                    New article: AMD's Jaguar MicroarchitectureMichael S2014/04/06 12:22 AM
                    New article: AMD's Jaguar MicroarchitectureWilco2014/04/06 04:29 AM
                      New article: AMD's Jaguar Microarchitecturecomputational_scientist2014/04/06 06:33 AM
                        New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 02:12 AM
                          New article: AMD's Jaguar MicroarchitectureMichael S2014/04/07 05:58 AM
                        New article: AMD's Jaguar MicroarchitectureEduardoS2014/04/07 03:34 PM
                      New article: AMD's Jaguar Microarchitecturecomputational_scientist2014/04/06 06:53 AM
                      New article: AMD's Jaguar MicroarchitectureMegol2014/04/06 07:21 AM
                        New article: AMD's Jaguar Microarchitecturenone2014/04/06 08:07 AM
                          New article: AMD's Jaguar MicroarchitectureMichael S2014/04/06 08:23 AM
                        New article: AMD's Jaguar MicroarchitectureWilco2014/04/06 01:48 PM
                          New article: AMD's Jaguar MicroarchitectureTREZA2014/04/06 02:47 PM
                            New article: AMD's Jaguar MicroarchitectureMichael S2014/04/07 01:34 AM
                              New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 02:27 AM
                                New article: AMD's Jaguar MicroarchitectureMichael S2014/04/07 04:39 AM
                                  New article: AMD's Jaguar MicroarchitectureUnmaskedUnderflow2014/04/07 11:26 AM
                                    New article: AMD's Jaguar MicroarchitectureMichael S2014/04/07 12:42 PM
                                    New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 12:50 PM
                                      New article: AMD's Jaguar MicroarchitectureUnmaskedUnderflow2014/04/07 01:11 PM
                                        New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 04:44 PM
                                      New article: AMD's Jaguar MicroarchitectureTREZA2014/04/07 02:38 PM
              denormal on IvyB and HaswellMichael S2014/04/05 09:45 AM
                Forum searchiz2014/04/05 11:54 AM
                denormal on IvyB and HaswellLinus Torvalds2014/04/06 08:55 AM
                  denormal on IvyB and HaswellMichael S2014/04/17 05:43 PM
            New article: AMD's Jaguar Microarchitecturedmcq2014/04/05 05:52 AM
            New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/05 09:38 AM
              New article: AMD's Jaguar MicroarchitectureMichael S2014/04/05 09:59 AM
                New article: AMD's Jaguar MicroarchitectureBrett2014/04/05 11:12 AM
                  New article: AMD's Jaguar MicroarchitectureEduardoS2014/04/05 11:29 AM
                    New article: AMD's Jaguar MicroarchitectureBrett2014/04/05 12:00 PM
                      New article: AMD's Jaguar MicroarchitectureMichael S2014/04/06 01:18 AM
                        New article: AMD's Jaguar MicroarchitectureBrett2014/04/06 09:08 AM
                          New article: AMD's Jaguar MicroarchitectureBrett2014/04/06 09:11 AM
                New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/05 05:01 PM
                  New article: AMD's Jaguar MicroarchitectureMichael S2014/04/06 12:50 AM
                    New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/06 02:52 PM
                      New article: AMD's Jaguar MicroarchitectureMichael S2014/04/07 01:20 AM
                        New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/07 09:38 AM
                          New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 09:47 AM
                            New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/07 01:52 PM
                              New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 03:01 PM
                                New article: AMD's Jaguar MicroarchitectureSeni2014/04/08 01:03 PM
                                  New article: AMD's Jaguar MicroarchitectureWilco2014/04/08 01:56 PM
                                    New article: AMD's Jaguar MicroarchitectureMichael S2014/04/08 03:05 PM
                                      New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/08 05:55 PM
                                        New article: AMD's Jaguar MicroarchitectureMichael S2014/04/09 12:12 AM
                  New article: AMD's Jaguar MicroarchitectureWilco2014/04/06 03:51 AM
  New article: AMD's Jaguar MicroarchitectureWaltC2014/04/02 12:52 PM
    New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/02 01:25 PM
      New article: AMD's Jaguar Microarchitectureitsmydamnation2014/04/02 11:19 PM
      New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/09 12:44 PM
        New article: AMD's Jaguar MicroarchitectureDavid Kanter2014/04/10 10:24 PM
          New article: AMD's Jaguar Microarchitecturenone2014/04/11 12:49 AM
          New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/11 08:14 AM
    New article: AMD's Jaguar MicroarchitectureRyan Dean2014/04/03 12:04 AM
  New article: AMD's Jaguar MicroarchitecturePaul A. Clayton2014/04/02 04:02 PM
  New article: AMD's Jaguar MicroarchitectureRicky Chan2014/04/03 06:50 AM
    New article: AMD's Jaguar Microarchitecturesomeone2014/04/04 06:18 AM
  New article: AMD's Jaguar Microarchitecturebakaneko2014/04/09 02:08 PM
    New article: AMD's Jaguar MicroarchitectureTREZA2014/04/09 04:34 PM
  Jaguar's detailsHugo DĂ©charnes2014/06/07 03:08 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell green?