Чтобы определить заполнение буфера заполнения L1D, связанное с нагрузками , можно использовать события L1D_PEND_MISS
, в частности L1D_PEND_MISS.PENDING
, которые задокументированы следующим образом:
Подсчитывает длительность невыполненных пропусков L1D, то есть число циклов заполняющих буферов (FB), требуемых для чтения запросов по требованию.FB либо удерживается нагрузками по требованию, либо он удерживается нагрузками не по требованию и по крайней мере один раз подвергается воздействию по требованию.Действительный ожидающий интервал определяется до освобождения FB одним из следующих способов: из распределения FB, если FB выделяется по требованию из запроса FB Hit, если он назначается аппаратной или программной предварительной выборкой. Примечание: в L1DЧтение по требованию содержит кешируемые или не кешируемые нагрузки по требованию, в том числе те, которые вызывают разбиение строки кэша и чтение из-за обходов страниц, полученных в результате любого типа запроса.
Немного сложно разобрать вторую часть этого абзаца,но ключевым аспектом, по-видимому, является то, что это событие подсчитывает в каждом цикле только то количество заполненных буферов заполнения, которое требуется каким-либо образом для нагрузок по требованию .
В сценарии потока хранилищбез нагрузки, например, есть ли способ определить заполнение буфера заполнения L1?