軒尼詩 - 帕特森書中對計算機體系結構(定量方法5天)說,在與多個存儲體的矢量架構,可如果滿足以下條件時發生銀行衝突(第279 5天):條件的內存庫存的向量處理器的內存訪問衝突
(銀行數)銀行/最小公倍數(數,步幅)<銀行忙時
不過,我覺得應該是GreatestCommonFactor代替LCM,因爲內存衝突會發生,如果有效銀行數量你已經少於繁忙時間。通過有效的銀行數量,我的意思是說 - 假設你有8家銀行,而且有2家銀行。然後有效地你有4家銀行,因爲存儲訪問只會排在四家銀行(例如,假設你的訪問都是偶數,從0開始,那麼你的訪問將排在銀行0,2,4,6)。
事實上,這個公式甚至失敗右它下面給出的例子。 假設我們有8個存儲體,其中6個時鐘週期的忙時間,總存儲器延遲時間爲12個時鐘週期,需要多長時間才能完成64步矢量加載,步長爲1? - 這裏他們計算時間爲12 + 64 = 76個時鐘週期。但是,根據給定的條件會發生內存銀行衝突,所以我們顯然不能在每個週期訪問一次(方程式中的64)。
上午我得到它錯了,或者有錯誤的公式設法生存5個版本本書的(不太可能)?
這聽起來很正確的,如果它的工作原理是英特爾的Sandy Bridge的L1高速緩存,其中每對緩存線(128B總)在不同線路分爲八個16B銀行,併發負載從同一家銀行是銀行的衝突。 (但是同一行中同一個銀行的兩次讀取可能發生在同一個週期內)。 [Agner Fog's microarch pdf](http://agner.org/optimize/)對此進行了描述。 Haswell和後來沒有銀行衝突,所以這僅適用於SnB和IvB,前兩代Intel微架構支持每時鐘兩次讀取。 –