5
我有一個關於內存系統遵循的策略的基本問題。從L1緩存驅逐L2驅逐
考慮一個具有私有L1和L2高速緩存的核心。在L2緩存之後,我們有一條總線,在這條總線上運行一致性流量。現在,如果地址(X)的高速緩存行從L2高速緩存中被逐出,是否需要從L1高速緩存中驅逐該地址?
驅逐的原因可能是它有助於保持一致性協議的不變性[如果l2中的一行顯示無效,則此核心不包含此地址]。
我有一個關於內存系統遵循的策略的基本問題。從L1緩存驅逐L2驅逐
考慮一個具有私有L1和L2高速緩存的核心。在L2緩存之後,我們有一條總線,在這條總線上運行一致性流量。現在,如果地址(X)的高速緩存行從L2高速緩存中被逐出,是否需要從L1高速緩存中驅逐該地址?
驅逐的原因可能是它有助於保持一致性協議的不變性[如果l2中的一行顯示無效,則此核心不包含此地址]。
有three different designs和所有使用。
獨佔:L1高速緩存中的數據永遠不會在L2高速緩存中。 L2高速緩存中的數據永遠不會在L1高速緩存中。包含:L1緩存中的數據也必須位於L2緩存中。
以下哪一種:L1高速緩存中的數據可能也可能不在L2高速緩存中。
這些都有優點和缺點。包容性方案允許緩存一致性協議忽略L1緩存 - 如果數據不在L2緩存中,則不在L1緩存中。但獨家方案使寶貴的高速緩存最有效的使用。
包容設計正變得越來越流行,因爲更快的內核間同步變得比具有稍大的有效緩存大小更重要。
我對線條大小有疑問。請你澄清一下http://stackoverflow.com/questions/14707803/line-size-of-l1-and-l2-caches –
你能提供一些關於這方面的進一步閱讀:「包容設計越來越流行,因爲更快核心間同步變得比具有稍大的有效緩存大小更重要「? – rkioji