Why only ~10 fill buffers?

By: Travis Downs (travis.downs.delete@this.gmail.com), November 13, 2018 12:40 pm
Room: Moderated Discussions
Modern Intel chips have 10 fill buffers[1]. If I remember correctly Ryzen has something like like 8 to 10, and earlier "cat-generation" AMD about 6. Daniel Lemire has also measured a Cortex A57 and it came in around 5. So everything so far is in the same range of "less than a dozen".

I'm curious why one wouldn't have many more buffers? On modern Intel chips you have a ROB of more than 200 entries, and load buffers with more than 70 entries so it is definitely possible to sometimes have many more misses in flight. For many of these structures which are "close to the core" there is obviously some kind of cycle time vs size tradeoff: you can't make them too big without slipping out of your timing window.

It isn't as obvious to me that this applies to fill buffers: after all, they are only consulted after an L1 miss, so you are in any case looking at 10+ cycles of latency for the best of case of an L2 hit. The structure itself doesn't seem particularly huge or expensive: it needs space for an address, maybe a cache line or two (e.g., the evicted line from L1, and maybe the incoming line). If the fill buffers coalesce hits to the same line (Intel's do), then you need to CAM across the cache line addresses, but this kind of thing already happens against the store buffer which is much larger.

Being able to support more misses in parallel would be pretty significant for at least some narrow portion of the code out there, but all the low hanging fruit is gone so improvements like this are par for the course. So why are the buffers so small? I must be missing something.

---

[1] known more generally and in academia as miss status handling registers (MSHRs)
 Next Post in Thread >
TopicPosted ByDate
Why only ~10 fill buffers?Travis Downs2018/11/13 12:40 PM
  Why only ~10 fill buffers?Maynard Handley2018/11/13 01:43 PM
    Why only ~10 fill buffers?Travis Downs2018/11/13 01:55 PM
      Why only ~10 fill buffers?anon2018/11/13 06:05 PM
        Why only ~10 fill buffers?Travis Downs2018/11/13 06:35 PM
          Why only ~10 fill buffers?anon2018/11/13 07:33 PM
            Why only ~10 fill buffers?Travis Downs2018/11/13 08:42 PM
            Why only ~10 fill buffers?Paul A. Clayton2018/11/13 09:40 PM
              Why only ~10 fill buffers?Travis Downs2018/11/15 09:18 AM
                MLP-orientation is a different mindsetPaul A. Clayton2018/11/16 07:47 PM
                  MLP-orientation is a different mindsetTravis Downs2018/11/16 09:23 PM
                    MLP-orientation is a different mindsetMontaray Jack2018/11/17 11:25 PM
                      MLP-orientation is a different mindsetMontaray Jack2018/11/17 11:28 PM
                    MLP-orientation is a different mindsetjuanrga2018/11/18 05:11 AM
                      MLP-orientation is a different mindsetTravis Downs2018/11/18 10:55 AM
                        MLP-orientation is a different mindsetjuanrga2018/11/23 08:47 PM
                          MLP-orientation is a different mindsetMaynard Handley2018/11/24 01:03 PM
                            Runaheadjuanrga2018/11/26 07:18 AM
                              Runaheaddmcq2018/11/26 11:55 AM
                                RunaheadMaynard Handley2018/11/26 01:18 PM
                                  Runaheaddmcq2018/11/27 07:35 AM
                                Runaheadjuanrga2018/11/27 12:01 PM
                                  Runaheaddmcq2018/11/27 05:11 PM
                                    Runaheadjuanrga2018/11/28 12:02 AM
                                RunaheadMontaray Jack2018/11/27 09:16 PM
                              RunaheadMaynard Handley2018/11/26 01:15 PM
                                Runaheadjuanrga2018/11/27 12:03 PM
                            MLP-orientation is a different mindsetanon2018/11/27 05:47 PM
                              MLP-orientation is a different mindsetMaynard Handley2018/11/27 05:55 PM
                                MLP-orientation is a different mindsetanon2018/11/28 01:05 AM
                          MLP-orientation is a different mindsetTravis Downs2018/11/24 04:13 PM
                      MLP-orientation is a different mindsetj2018/11/24 11:52 AM
                        MLP-orientation is a different mindsetMaynard Handley2018/11/24 01:04 PM
          Why only ~10 fill buffers?Aaron Spink2018/11/13 09:26 PM
            Why only ~10 fill buffers?Travis Downs2018/11/15 09:14 AM
              Why only ~10 fill buffers?aaron spink2018/11/15 05:17 PM
                Thanks Aaron (NT)Travis Downs2018/11/16 06:01 PM
        Why only ~10 fill buffers?Maynard Handley2018/11/13 08:01 PM
          Why only ~10 fill buffers?anon2018/11/13 10:00 PM
  Why only ~10 fill buffers?WEN2018/11/14 07:34 AM
    You are right, AMD supports more MLPTravis Downs2018/11/16 06:15 PM
      You are right, AMD supports more MLPanon2018/11/18 06:29 AM
        You are right, AMD supports more MLPTravis Downs2018/11/18 11:28 AM
          You are right, AMD supports more MLPanon2018/11/18 12:11 PM
            You are right, AMD supports more MLPTravis2018/11/18 12:23 PM
              You are right, AMD supports more MLPanon2018/11/18 02:25 PM
  Actually, Skylake has 12Travis Downs2018/11/22 02:56 PM
  Cannonlake has 20+ outstanding missesTravis Downs2019/01/06 11:05 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell green?