2

To determine the L1D fill buffer occupancy related to loads, one can use the L1D_PEND_MISS events, in particular L1D_PEND_MISS.PENDING, which is documented as follows:

Counts duration of L1D miss outstanding, that is each cycle number of Fill Buffers (FB) outstanding required by Demand Reads. FB either is held by demand loads, or it is held by non-demand loads and gets hit at least once by demand. The valid outstanding interval is defined until the FB deallocation by one of the following ways: from FB allocation, if FB is allocated by demand from the demand Hit FB, if it is allocated by hardware or software prefetch.Note: In the L1D, a Demand Read contains cacheable or noncacheable demand loads, including ones causing cache-line splits and reads due to page walks resulted from any request type.

It's a bit hard to parse the second part of this paragraph, but the key aspect seems to be that this event only counts, every cycle, the number of occupied fill buffers required in some way by demand loads.

In the scenario of a stream of stores without loads, for example, is there any way to determine the L1 fill buffer occupancy?

Hadi Brais
  • 22,259
  • 3
  • 54
  • 95
BeeOnRope
  • 60,350
  • 16
  • 207
  • 386

0 Answers0