Similar function, different use

By: David Kanter (dkanter.delete@this.realworldtech.com), January 18, 2011 12:24 pm
Room: Moderated Discussions
? (0xe2.0x9a.0x9b@gmail.com) on 1/18/11 wrote:
---------------------------
>Matt Waldhauer (M.Waldhauer@gmx.de) on 1/18/11 wrote:
>---------------------------
>>David Kanter (dkanter@realworldtech.com) on 1/17/11 wrote:
>>---------------------------
>>>Mtatt Waldhauer (M.Waldhauer@gmx.de) on 1/17/11 wrote:
>>>---------------------------
>>>>? (0xe2.0x9a.0x9b@gmail.com) on 1/16/11 wrote:
>>>>---------------------------
>>>>>On the other hand, I predict that AMD will be forced to copy the Intel's microOP
>>>>>cache from Intel's Sandy Bridge (Unless AMD did not already do so in some form in
>>>>>the Bulldozer architecture. It would be nice if Bulldozer featured such a cache, but I doubt Bulldozer has it.)
>>>>
>>>>AMD already patented a branch redirect recovery cache. Very similar to the uOp cache. Does that count as copy? ;)
>>>
>>>So...judging from the name, this sounds very different from a uop cache. It sounds
>>>like they just have patented a cache that holds common targets of mispredicted branches.
>>>I.e. it reduces the penalty of a branch mispredict, rather than accelerating the common case.
>>>
>>>AFAIK, bulldozer does not have anything like the uop cache at all. Although AMD
>>>has always been a little less worried about decode bandwidth.
>>
>>Quotes from the patent:
>>"One or more decode stages (corresponding to the decode unit 18 ) may also be bypassed.
>>In the illustrated embodiment, pipeline stages corresponding to fetch and decode
>>are bypassed, and instructions are inserted into the rename/schedule unit 22."
>>
>>"The operations cached by the redirect recovery cache 20 may be in the form that
>>they exist at the pipeline stage in which they will be inserted (e.g. partially
>>or fully decoded form). Alternatively, the redirect recovery cache 20 may comprise
>>logic to modify the cached operations to produce the form they would have at the
>>inserted stage. This logic may be relatively simple logic that does not add clock
>>cycles to the path of inserting operations into the desired pipeline stage."
>>
>>So several forms incl. the caching of decoded ops are included. Since it's not
>>needed to cover correctly predicted branches, it can be small:
>>"The redirect recovery cache 20 may have any desired number of entries. A relatively
>>small number of entries may be used (e.g. 64 or 128) and may achieve relatively high hit rates for many applications."
>>
>>http://www.freepatentsonline.com/7685410.html
>
>I think David Kanter is wrong here, and Matt Waldhauer is right. The patent essentially
>gives AMD the right to implement any equivalent to Intel's microOP cache. A sample
>crucial paragraph is (column 9 on page 10 of the patent):
>
>"In some embodiments, the redirect recovery cache 20 may implement loop cache functionality.
>If a loop is detected, the loop may continue dispatching out of the redirect recovery
>cache 20 until the loop branch is mispredicted. The mispredict (sequential) path
>for the loop branch may also be stored in the redirect recovery cache 20 , further
>accelerating processing for the loop."
>
>The main point of the patent is the following: The recovery cache can start to
>supply decoded instructions directly to the scheduler after a branch misprediction,
>as indeed stated by the title of the patent. The decisive factor here is the potential
>length of the stream of the decoded instructions. In short, a *single* mispredict
>can (and that *is* the main hidden point of the patent) *trigger* a continuous stream
>of thousands of decoded instructions, a million of them, or 100 millions of them.
>If this is not functionally equivalent to a trace cache, then I don't know what is.
>
>(I wonder if the patent office are only playing dumb not to see that this is basically
>the same thing that Transmeta/Intel/whoever are *already* using in their products,
>or whether the patent office actually are so stupid. Not to mention that there are
>numerous other patents patenting a very similar (essentially identical) idea. Different words, but same idea.)

I hadn't read the patent until now due to connectivity issues...so my analysis was based mostly on the title. However, I believe my reading is still correct.

Also, just because it is patented doesn't mean it will be implemented at all...or in the same form as described in the patent.

The patent describes the same idea as a trace cache, but a very different use. As the title of the patent indicates, this is used in the case of a branch misprediction and redirection.

In the common case of a correct branch prediction, this approach won't have any benefits in terms of performance or power consumption. That is the point I was making. While it is similar to a trace cache (decoded uops in dynamic execution order), it is used for different circumstances.

So I'd say that Intel's uop cache differs in two respects:

1. Trace cache (patent) vs. decoded uop cache (SNB)
2. Used for mispredicts (patent) vs. all fetches (SNB)

David
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
AMD chief executive resigns; CFO takes interim jobsomeone01/10/11 02:44 PM
  AMD chief executive resigns; CFO takes interim joba reader01/10/11 03:09 PM
    AMD chief executive resigns; CFO takes interim jobsomeone01/10/11 03:21 PM
      AMD chief executive resigns; CFO takes interim jobMr. Camel01/10/11 03:39 PM
        AMD chief executive resigns; CFO takes interim jobsomeone01/10/11 05:03 PM
          AMD chief executive resigns; CFO takes interim jobinf6401/11/11 08:43 AM
            AMD chief executive resigns; CFO takes interim jobsomeone01/11/11 09:21 AM
              AMD chief executive resigns; CFO takes interim jobfanboi01/11/11 03:42 PM
      AMD chief executive resigns; CFO takes interim jobAzazel01/10/11 09:40 PM
    AMD chief executive resigns; CFO takes interim jobPun Zu01/11/11 01:48 AM
      AMD chief executive resigns; CFO takes interim jobsomeone01/11/11 08:27 AM
        AMD chief executive resigns; CFO takes interim joba reader01/11/11 06:36 PM
        AMD chief executive resigns; CFO takes interim jobBrett01/11/11 07:04 PM
          AMD chief executive resigns; CFO takes interim jobslacker01/11/11 07:18 PM
            AMD chief executive resigns; CFO takes interim jobBrett01/11/11 07:55 PM
              Facts or fiction?David Kanter01/11/11 08:02 PM
                Facts or fiction?Brett01/11/11 09:41 PM
                  Facts or fiction?Aaron Spink01/12/11 02:42 AM
                  Facts or fiction?Michael S01/12/11 03:01 AM
                Facts or fiction?Michael S01/12/11 02:25 AM
              AMD chief executive resigns; CFO takes interim jobsomeone01/11/11 11:08 PM
                AMD chief executive resigns; CFO takes interim jobBrett01/12/11 12:07 AM
                  AMD chief executive resigns; CFO takes interim jobJS01/12/11 12:41 AM
                  FactsDavid Kanter01/12/11 01:00 PM
                  AMD chief executive resigns; CFO takes interim jobMark Roulo01/12/11 01:56 PM
                    AMD chief executive resigns; CFO takes interim jobBrett01/12/11 04:49 PM
                      AMD chief executive resigns; CFO takes interim jobMark Roulo01/12/11 05:43 PM
                        AMD chief executive resigns; CFO takes interim jobDavid Kanter01/12/11 11:07 PM
                        AMD chief executive resigns; CFO takes interim jobMichael S01/13/11 04:22 AM
                          AMD chief executive resigns; CFO takes interim jobBrett01/13/11 01:53 PM
                  AMD chief executive resigns; CFO takes interim jobdc01/12/11 07:02 PM
          Reality checkDavid Kanter01/11/11 07:58 PM
            Reality checkBrett01/11/11 10:14 PM
              Reality checkJack01/11/11 11:07 PM
              Reality checkRohit01/12/11 09:09 AM
            I don't think it is 90% CPU, 2x the graphics for AMDMark Roulo01/12/11 10:39 AM
              I don't think it is 90% CPU, 2x the graphics for AMDRichard Cownie01/12/11 07:46 PM
          AMD chief executive resigns; CFO takes interim jobAzazel01/11/11 09:22 PM
            AMD chief executive resigns; CFO takes interim jobMegol01/12/11 11:14 AM
            AMD chief executive resigns; CFO takes interim jobDavid Kanter01/12/11 01:19 PM
              AMD chief executive resigns; CFO takes interim jobAzazel01/12/11 02:34 PM
          Brazos positioned at ~$500, not $250Brett01/12/11 05:58 PM
            Globalfoundries doubles investment spendingBrett01/12/11 06:17 PM
              Globalfoundries doubles investment spendingMark Roulo01/12/11 07:31 PM
                Globalfoundries doubles investment spendingDavid Kanter01/12/11 10:31 PM
            Brazos positioned at ~$500, not $250David Kanter01/12/11 09:29 PM
            Brazos positioned at ~$500, not $250Azazel01/12/11 11:51 PM
            Brazos positioned at ~$500, not $250nemlis01/13/11 02:44 PM
              Brazos positioned at ~$500, not $250Brett01/13/11 03:37 PM
                SandyBridge IGPU, Llano and RadeonsMark Roulo01/13/11 04:00 PM
                  SandyBridge IGPU, Llano and Radeonszzou01/16/11 05:52 PM
            Brazos positioned at ~$500, not $250Richard Cownie01/14/11 10:14 AM
              Brazos positioned at ~$500, not $250Dan Fay01/14/11 10:40 AM
            Brazos positioned at ~$500, not $250Brett01/15/11 01:06 PM
      possible candidates Eric Bron01/12/11 02:51 PM
        possible candidates Azazel01/13/11 02:54 AM
  AMD chief executive resigns; CFO takes interim jobEduardoS01/11/11 02:03 AM
  Waiting for a Bulldozer benchmark?01/11/11 02:09 AM
    Waiting for a Bulldozer benchmarkMichael S01/11/11 06:22 AM
    Waiting for a Bulldozer benchmarkAzazel01/11/11 06:53 AM
      Waiting for a Bulldozer benchmarkAnon01/11/11 07:22 PM
        Waiting for a Bulldozer benchmarkAzazel01/11/11 09:10 PM
      Waiting for a Bulldozer benchmarkdc01/11/11 11:42 PM
        Waiting for a Bulldozer benchmarkAzazel01/12/11 02:43 AM
      Waiting for a Bulldozer benchmarkBrett01/12/11 12:32 AM
    Waiting for a Bulldozer benchmarkBrett01/14/11 05:41 PM
      Waiting for a Bulldozer benchmarkrwessel01/15/11 04:31 AM
        Waiting for a Bulldozer benchmarkBrett01/15/11 11:27 AM
          Waiting for a Bulldozer benchmarkanon01/15/11 12:17 PM
            Waiting for a Bulldozer benchmarkEduardoS01/15/11 03:17 PM
              Waiting for a Bulldozer benchmarkBrett01/15/11 04:19 PM
                Waiting for a Bulldozer benchmarkEduardoS01/15/11 04:30 PM
                  Waiting for a Bulldozer benchmarkanon01/15/11 06:24 PM
                Bulldozer AVX units are shared...Mark Roulo01/16/11 11:41 AM
                  2 or 3 ??01/16/11 12:53 PM
                    2 or 3 ?Mark Roulo01/16/11 01:07 PM
                    2 or 3 ?Michael S01/16/11 01:30 PM
                      2 or 3 ?Dan Fay01/16/11 03:18 PM
                        FMADavid Kanter01/17/11 03:35 PM
                      2 or 3 ?Eric Bron01/16/11 04:21 PM
                        2 or 3 ?Michael S01/17/11 02:47 AM
                          2 or 3 ?Eric Bron01/17/11 04:17 AM
                            2 or 3 ?Michael S01/17/11 04:27 AM
                              2 or 3 ?Eric Bron01/17/11 04:33 AM
                                2 or 3 ?MS01/17/11 08:30 PM
                                  2 or 3 ?Eric Bron01/18/11 12:44 AM
                                    2 or 3 ?MS01/18/11 09:11 AM
                                      2 or 3 ?Eric Bron01/18/11 10:54 AM
                                        2 or 3 ?MS01/18/11 11:59 AM
                                    Sandy Bridge L2 CacheDavid Kanter01/18/11 02:46 PM
                                      Sandy Bridge L2 CacheMS01/18/11 03:32 PM
                                        Sandy Bridge L2 CacheDavid Kanter01/18/11 03:58 PM
                                          Sandy Bridge L2 CacheMS01/18/11 05:03 PM
                                            Sandy Bridge L2 CacheDavid Kanter01/18/11 06:10 PM
                                              Sandy Bridge L2 CacheMS01/18/11 08:11 PM
                                                Sandy Bridge L2 CacheMS01/19/11 02:32 PM
                                                  Sandy Bridge L2 CacheDavid Kanter01/20/11 02:34 AM
                                                    Sandy Bridge L2 CacheMS01/20/11 08:32 AM
                                                      Sandy Bridge L2 CacheEric Bron01/20/11 09:39 AM
                                                        Sandy Bridge L2 CacheMS01/20/11 02:35 PM
                                                          Sandy Bridge L2 CacheEric Bron01/20/11 02:58 PM
                                                            Sandy Bridge L2 CacheMS01/21/11 10:01 AM
                                                              Sandy Bridge L2 CacheEric Bron01/21/11 11:47 AM
                                                    Sandy Bridge L2 CacheMS01/21/11 05:09 PM
                                      Sandy Bridge L2 CacheEric Bron01/18/11 04:39 PM
                                        Sandy Bridge L2 CacheDavid Kanter01/18/11 06:19 PM
                                          Sandy Bridge L2 CacheMichael S01/19/11 11:12 AM
                                            Sandy Bridge L2 Cacheanonymous01/19/11 11:23 AM
                                              Sandy Bridge L2 CacheMichael S01/19/11 12:24 PM
                          2 or 3 ?EduardoS01/17/11 01:24 PM
                  Bulldozer AVX units are shared...Dan Fay01/16/11 01:27 PM
                  Bulldozer AVX units are shared...anon01/16/11 03:36 PM
                  Bulldozer AVX units are shared...Axel01/20/11 11:33 AM
                    Post and HTML tagsDavid Kanter01/20/11 12:41 PM
                    Bulldozer AVX units are shared...David Kanter01/20/11 12:49 PM
                      Bulldozer AVX units are shared...Axel01/20/11 02:18 PM
                        Bulldozer AVX units are shared...David Kanter01/20/11 05:12 PM
                          Thanks for the clarifications (NT)Axel01/21/11 06:53 AM
                      Bulldozer AVX units are shared...Foo_01/21/11 06:21 AM
                    Bulldozer AVX units are shared...Axel01/20/11 01:05 PM
                      Bulldozer AVX units are shared...Eric Bron01/20/11 04:16 PM
                        Bulldozer AVX units are shared...Axel01/21/11 06:51 AM
                          Bulldozer AVX units are shared...Eric Bron01/21/11 11:35 AM
                        Some SPECfp_base 2006 resultsTemp02/01/11 02:17 PM
          Waiting for a Bulldozer benchmarkAntti-Ville Tuunainen01/15/11 06:25 PM
          Waiting for a Bulldozer benchmarkHiTEK01/16/11 02:49 AM
            Waiting for a Bulldozer benchmarkAntti-Ville Tuunainen01/16/11 09:27 AM
              Waiting for a Bulldozer benchmarkHiTEK01/16/11 11:12 AM
            Waiting for a Bulldozer benchmarkDavid Kanter01/17/11 07:01 PM
              Waiting for a Bulldozer benchmarkHiTEK01/19/11 05:44 AM
                Sandy Bridge EP and EXDavid Kanter01/19/11 10:01 AM
                  Sandy Bridge EP and EXanonymous01/19/11 11:37 AM
                    Sandy Bridge EP and EXDavid Kanter01/19/11 11:39 AM
          Waiting for a Bulldozer benchmark?01/16/11 09:29 AM
            Waiting for a Bulldozer benchmarkanon01/16/11 03:51 PM
              Waiting for a Bulldozer benchmark?01/17/11 02:50 AM
                Waiting for a Bulldozer benchmarkanon01/17/11 03:57 AM
                  Waiting for a Bulldozer benchmark?01/17/11 06:07 AM
                    Waiting for a Bulldozer benchmarkanon01/17/11 04:41 PM
            Waiting for a Bulldozer benchmarkMatt Waldhauer01/17/11 07:02 AM
              Quite differentDavid Kanter01/17/11 07:48 PM
                Quite differentAntti-Ville Tuunainen01/17/11 08:53 PM
                  Quite differentMichael S01/18/11 01:37 AM
                Quite differentMichael S01/18/11 01:45 AM
                  Quite differentanon01/18/11 02:59 AM
                Quite differentMatt Waldhauer01/18/11 02:02 AM
                  No, it is functionally equivalent to a trace cache?01/18/11 03:46 AM
                    Similar function, different useDavid Kanter01/18/11 12:24 PM
                      Similar function, different use?01/19/11 05:17 AM
                        Similar function, different useDavid Kanter01/19/11 10:24 AM
                          Similar function, different use?01/19/11 01:23 PM
                            Similar function, different useDavid Kanter01/19/11 04:58 PM
                              Similar function, different useDan Downs01/19/11 05:36 PM
                              Similar function, different useAxel01/20/11 03:42 AM
                              Similar function, different use?01/21/11 05:53 AM
                                Not a good ideaDavid Kanter01/21/11 11:56 AM
                                  Not a good idea?01/21/11 02:41 PM
                                Similar function, different useEric Bron01/21/11 02:09 PM
          Some numbers (and a lot of speculation)Mark Roulo01/16/11 11:37 AM
            Some numbers (and a lot of speculation)anonymous01/16/11 12:27 PM
              Some numbers (and a lot of speculation)Mark Roulo01/16/11 12:30 PM
                Some numbers (and a lot of speculation)anonymous01/16/11 01:59 PM
  ArsTechnica/Jon Stokes' takelars01/12/11 10:23 PM
    ArsTechnica/Jon Stokes' takeAzazel01/12/11 11:46 PM
      ArsTechnica/Jon Stokes' takeMatt Waldhauer01/14/11 02:28 AM
  Dirk Meyer's achievement?Azazel01/14/11 06:58 AM
    Dirk Meyer's achievement?MS01/14/11 07:20 PM
      Dirk Meyer's achievement?Azazel01/15/11 02:52 AM
    Dirk Meyer's achievement?mpx01/15/11 02:21 AM
    AMD accomplishmentsDavid Kanter01/18/11 01:17 PM
      AMD accomplishmentsAzazel01/19/11 02:46 AM
        AMD accomplishmentsDavid Kanter01/19/11 11:53 AM
          AMD accomplishmentsBrett01/19/11 04:01 PM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell blue?