In defense of Bulldozer's Oddities

By: Linus Torvalds (torvalds.delete@this.linux-foundation.org), April 21, 2012 12:26 pm
Room: Moderated Discussions
JJB (jjb@example.com) on 4/21/12 wrote:
>
>Now it makes sense! The AGUs can't affect the flags. That's
>actually a moderately sane separation, since the hazards there are so complex, but
>given the x86's flags-heavy architecture, it severely limits the instructions that can be issued.

That makes no sense. Sure, the flags are special, but they
aren't that special.

Besides, if an architect really thinks that flags access
is a major issue, any sane architect will do the trivial
WAW detection, and simply kill the redundant flags. Because
while it is true that in theory almost every single
x86 operation writes the flags, in practice the
flags register is trivially dead for the vast majority of
those same instructions, and you can see that with very
small instruction windows.

In fact, the instruction window could be small enough that
you can just do it at decode time, and if you decode more
than one instruction per cycle, you notice when an earlier
instruction eflags writing is covered by the later ones.
With three or four decoders, I bet that you'd get rid of
half the eflags writes that way.

If you do it with a bigger instruction window (and basically
do it as a register renaming thing), you get rid of almost
all of them. In fact, that's one of the main reasons to
avoid the "inc/dec" instructions, because they don't write
the full set of eflags, so you need to rename things
one bit at a time.

Sure, dropping eflags writes does affect your instruction
completion model, and that can be very complicated
depending on how you handle that whole thing. But if eflags
is a major bottleneck for your uarch, somebody did something
wrong, I think.

Linus
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Phoronix tests GCC compiler flags and Bulldozer.I.S.T.04/19/12 03:05 AM
  Single page view?David Kanter04/19/12 08:59 AM
    Single page view?wainwright04/19/12 09:22 AM
    Single page view?slothrop04/19/12 09:23 AM
      Single page view?David Kanter04/19/12 09:31 AM
        Single page view?EduardoS04/19/12 03:12 PM
    Is there a single page view option for RWT articles?anon04/19/12 09:27 AM
    Single page view?Del04/19/12 09:36 AM
      Single page view?slacker04/19/12 03:56 PM
        Single page view?Del04/22/12 06:09 AM
          Single page view?David Kanter04/22/12 09:38 AM
            Single page view?Del04/23/12 01:22 AM
    Single page view?Michael S04/19/12 01:30 PM
      Single page view?Ungo04/19/12 02:25 PM
        Single page view?Foo_04/20/12 12:17 AM
          Single page view?James04/20/12 04:01 AM
            There are ads on the web?JJB04/20/12 04:32 AM
              What a bunch of freeloaders (NT)slacker04/20/12 01:44 PM
                So are you, probablyiz04/21/12 04:41 AM
                  Impression ad revenuePaul A. Clayton04/21/12 06:44 AM
                  So are you, probablyslacker04/21/12 01:09 PM
                    So are you, probablyDavid Kanter04/22/12 09:41 AM
                      So are you, probablyiz04/22/12 03:57 PM
                    So are you, probablyDoug Siebert04/22/12 12:37 PM
                      Aha!David Kanter04/22/12 03:45 PM
                        Aha!bakaneko04/22/12 08:49 PM
                    So are you, probablyiz04/22/12 03:48 PM
                      That's not how the business works...David Kanter04/22/12 05:31 PM
                        That's not how the business works...iz04/23/12 01:49 AM
                      So are you, probablyslacker04/22/12 11:31 PM
                        back to phoronixMichael S04/23/12 02:07 AM
                        So are you, probablyiz04/23/12 03:29 AM
                          Membership at RWTDavid Kanter04/23/12 11:24 AM
                          So are you, probablyJukka Larja04/27/12 08:59 AM
  So, what do people think of these numbers>I.S.T.04/19/12 07:34 PM
    So, what do people think of these numbers>Linus Torvalds04/20/12 08:34 AM
      So, what do people think of these numbers>Kira04/20/12 09:18 AM
        So, what do people think of these numbers>Linus Torvalds04/20/12 10:05 AM
      So, what do people think of these numbers>Doug Siebert04/20/12 09:00 PM
      So, what do people think of these numbers>Megol04/21/12 09:05 AM
        So, what do people think of these numbers>Linus Torvalds04/21/12 01:11 PM
          Most problems are fixed...Megol04/24/12 07:00 AM
    So, what do people think of these numbers>bakaneko04/20/12 11:16 AM
      So, what do people think of these numbers>bakaneko04/20/12 11:37 AM
        So, what do people think of these numbers>Linus Torvalds04/20/12 01:24 PM
          So, what do people think of these numbers>Joel04/20/12 02:59 PM
            So, what do people think of these numbers>Kira04/20/12 03:32 PM
              So, what do people think of these numbers>EduardoS04/20/12 04:00 PM
                Bulldozer's Oddities.Joel04/20/12 04:54 PM
                  In defense of Bulldozer's OdditiesDavid Kanter04/20/12 05:32 PM
                    In defense of Bulldozer's OdditiesExophase04/20/12 07:11 PM
                      In defense of Bulldozer's OdditiesEduardoS04/20/12 07:46 PM
                        In defense of Bulldozer's OdditiesExophase04/20/12 08:18 PM
                          In defense of Bulldozer's Odditiesanonymous04/20/12 11:26 PM
                            In defense of Bulldozer's OdditiesJJB04/20/12 11:34 PM
                              In defense of Bulldozer's Odditiesimaxx04/21/12 07:21 AM
                                In defense of Bulldozer's OdditiesMichael S04/21/12 10:42 AM
                                  Bulldozer's integer execution unitsDavid Kanter04/25/12 04:29 PM
                                    Bulldozer's integer execution unitsExophase04/26/12 12:17 PM
                                      Bulldozer's integer execution unitsanonymous04/26/12 03:15 PM
                                        Bulldozer's integer execution unitsEduardoS04/26/12 03:40 PM
                                          Bulldozer's integer execution unitsFoo_04/27/12 08:21 AM
                                            Bulldozer's integer execution unitsMegol04/27/12 01:38 PM
                                      Bulldozer's integer execution unitsEduardoS04/26/12 03:47 PM
                                        Bulldozer's integer execution unitsExophase04/26/12 05:02 PM
                                          Bulldozer's integer execution unitsEduardoS04/26/12 06:03 PM
                                            Bulldozer's integer execution unitsExophase04/26/12 06:24 PM
                                              Bulldozer's integer execution unitsEduardoS04/26/12 07:18 PM
                                                Bulldozer's cache memory performanceHeikki Kultala04/28/12 01:18 AM
                                                  Bulldozer's cache memory performanceEduardoS04/28/12 10:06 AM
                                      Bulldozer's integer execution unitsDavid Kanter04/26/12 04:03 PM
                                        Bulldozer's integer execution unitsExophase04/26/12 04:59 PM
                                          Bulldozer's integer execution unitsDavid Kanter04/26/12 10:53 PM
                                            Bulldozer's integer execution unitsExophase04/27/12 08:42 AM
                                              Bulldozer's integer execution unitsDavid Kanter04/27/12 11:06 AM
                                                Bulldozer's integer execution unitsEduardoS04/27/12 01:27 PM
                                                K8 divided pipelines?Paul A. Clayton04/27/12 01:59 PM
                                          Bulldozer's integer execution unitsMichael S04/27/12 04:37 AM
                                            Bulldozer's integer execution unitsExophase04/27/12 08:33 AM
                                            Bulldozer's integer execution unitsanonymous04/27/12 09:03 AM
                                    Renaming FlagsKonrad Schwarz04/27/12 03:04 AM
                                      Renaming Flagsnone04/27/12 04:03 AM
                                        Renaming FlagsMegol04/27/12 12:42 PM
                                    Bulldozer's integer execution unitshcl6404/27/12 04:31 PM
                                      VEX supports 3+ operands. FPU have renaming already(NT)Megol04/28/12 08:20 AM
                              In defense of Bulldozer's OdditiesLinus Torvalds04/21/12 12:26 PM
                                Thanks for the lessonJJB04/21/12 02:23 PM
                                  Side note..Linus Torvalds04/21/12 02:57 PM
                            In defense of Bulldozer's OdditiesExophase04/21/12 12:13 PM
                            In defense of Bulldozer's OdditiesEduardoS04/21/12 12:53 PM
                    In defense of Bulldozer's OdditiesGionatan Danti04/21/12 12:42 PM
                    In defense of Bulldozer's Odditieshcl6404/27/12 05:07 PM
                      In defense of Bulldozer's OdditiesDavid Kanter04/28/12 06:29 AM
                        In defense of Bulldozer's Odditieshcl6404/28/12 02:44 PM
                          In defense of Bulldozer's OdditiesDavid Kanter04/28/12 09:42 PM
                            In defense of Bulldozer's Odditieshcl6404/28/12 10:39 PM
                  Bulldozer's Oddities.EduardoS04/20/12 06:05 PM
                    Bulldozer's Oddities.anon04/20/12 08:32 PM
                      Bulldozer's Oddities.EduardoS04/21/12 12:37 PM
                        Bulldozer's Oddities.anon04/21/12 10:16 PM
                          Bulldozer's Oddities.EduardoS04/21/12 10:43 PM
                            Bulldozer's Oddities.anon04/22/12 02:09 AM
                              Bulldozer's Oddities.EduardoS04/22/12 01:57 PM
                                Bulldozer's Oddities.anon04/22/12 04:17 PM
                                  Bulldozer's Oddities.EduardoS04/22/12 05:05 PM
                                    Bulldozer's Oddities.anon04/22/12 05:42 PM
                                      Bulldozer's Oddities.anon04/22/12 06:01 PM
                                      Bulldozer's Oddities.EduardoS04/22/12 10:28 PM
                                        Bulldozer's Oddities.anon04/22/12 11:05 PM
                  Bulldozer's isn't bad.a reader04/21/12 10:01 AM
                    Bulldozer's isn't bad.Kira04/21/12 11:29 AM
                      Bulldozer's isn't bad.hcl6404/27/12 05:58 PM
                        Bulldozer's isn't bad.anon04/27/12 06:16 PM
                          Bulldozer's isn't bad.hcl6404/27/12 07:33 PM
                            Bulldozer's isn't bad.rwessel04/27/12 11:12 PM
                        Bulldozer's isn't bad.EduardoS04/28/12 09:29 AM
                          Bulldozer's isn't bad.EduardoS04/28/12 09:30 AM
                          Bulldozer's isn't bad.Michael S04/28/12 12:36 PM
                    Bulldozer is made for SPEC fpPelle-4804/21/12 11:41 AM
                  Bulldozer's Oddities.mpx04/22/12 03:47 AM
                    Bulldozer's Oddities.EduardoS04/22/12 01:57 PM
                      Bulldozer's Oddities.mpx04/23/12 07:04 AM
                        Bulldozer's Oddities.Eric04/23/12 12:33 PM
                          Bulldozer's Oddities.EduardoS04/23/12 02:22 PM
                            Bulldozer's Oddities.Eric04/23/12 07:30 PM
                              Bulldozer's Oddities.hcl6404/27/12 06:16 PM
                            Bulldozer's Oddities.Y04/25/12 04:34 AM
                              Bulldozer's IDIVHeikki Kultala04/27/12 10:56 PM
                                Bulldozer's IDIVY04/30/12 01:51 AM
                                  Bulldozer's IDIVEduardoS04/30/12 05:39 AM
                                    Bulldozer's IDIVP3Dnow05/08/12 01:23 AM
                                      Bulldozer's IDIVExophase05/08/12 07:37 AM
                        Bulldozer's Oddities.EduardoS04/23/12 02:15 PM
              Clustered MT as SMT for high frequencyPaul A. Clayton04/20/12 04:10 PM
                Clustered MT as SMT for high frequencyhcl6404/28/12 12:56 AM
                  Clustered MT as SMT for high frequencyanonymous04/28/12 01:43 AM
                    Clustered MT as SMT for high frequencyhcl6404/28/12 02:59 PM
                      Clustered MT as SMT for high frequencyanonymous04/28/12 08:45 PM
                  Clustered MT as SMT for high frequencyanon04/28/12 02:13 AM
                    Clustered MT as SMT for high frequencyhcl6404/28/12 03:23 PM
                      Clustered MT as SMT for high frequencyanon04/28/12 06:19 PM
                        Clustered MT as SMT for high frequencyhcl6404/28/12 07:58 PM
                  Clustered MT as SMT for high frequencyDavid Kanter04/28/12 06:38 AM
                    Guessed meaning of "strong dependency model"Paul A. Clayton04/28/12 07:24 AM
                      Guessed meaning of "strong dependency model"EduardoS04/28/12 09:46 AM
                        *Right meaning* about "strong dependency model"hcl6404/28/12 04:59 PM
                    Clustered MT as SMT for high frequencyhcl6404/28/12 04:24 PM
                      Clustered MT as SMT for high frequencyanonymous04/28/12 08:50 PM
                        Clustered MT as SMT for high frequencyhcl6404/28/12 09:47 PM
                          SNB widthDavid Kanter04/28/12 09:48 PM
                            SNB widthhcl6404/29/12 02:24 AM
                      Clustered MT as SMT for high frequencyDavid Kanter04/28/12 09:56 PM
                        Clustered MT as SMT for high frequencyhcl6404/28/12 11:44 PM
                          SOI, FD vs. PDDavid Kanter04/29/12 07:19 AM
                            SOI, FD vs. PDhcl6404/29/12 05:31 PM
                              SOI, FD vs. PDDavid Kanter04/29/12 11:26 PM
                                SOI, FD vs. PDhcl6404/30/12 08:08 AM
                                  SOI, FD vs. PDDavid Kanter04/30/12 09:59 AM
                                    SOI, FD vs. PDhcl6404/30/12 06:10 PM
                                      SOI, FD vs. PDDavid Kanter04/30/12 06:32 PM
                                        SOI, FD vs. PDhcl6404/30/12 10:47 PM
                                          SOI, FD vs. PDDavid Kanter05/01/12 02:24 AM
                                            SOI, FD vs. PDhcl6405/01/12 05:46 AM
                                            SOI, FD vs. PDhcl6405/01/12 06:37 AM
                                              SOI, FD vs. PDDavid Kanter05/01/12 08:19 AM
                                          SOI, FD vs. PDhcl6405/01/12 07:39 AM
                                            PD-SOIDavid Kanter05/02/12 12:22 PM
                                    SOI, FD vs. PDslacker04/30/12 08:10 PM
                                      SOI, FD vs. PDDavid Kanter04/30/12 10:16 PM
                                        SOI, FD vs. PDslacker05/01/12 10:04 PM
                                          SOI, FD vs. PDDavid Kanter05/02/12 08:19 AM
                                            SOI, FD vs. PDzou05/02/12 12:23 PM
                  Previous discussion of clustered MTPaul A. Clayton04/28/12 07:00 AM
                    Previous discussion of clustered MThcl6404/28/12 09:38 PM
                      Previous discussion of clustered MTDavid Kanter04/30/12 04:37 PM
                        Previous discussion of clustered MThcl6404/30/12 07:24 PM
                          Previous discussion of clustered MTDavid Kanter04/30/12 07:40 PM
                            Previous discussion of clustered MThcl6405/01/12 09:15 AM
                              Latency issuesDavid Kanter05/02/12 12:01 PM
              So, what do people think of these numbers>Megol04/21/12 01:57 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell blue?