2011-04-23 67 views
1

是否loop unrolling以任何方式影響數據高速緩存性能? 這與我有一個作業有關,它需要我模擬simplescalar sim-cache上的代碼來測試循環平鋪,內部循環中的內存訪問等對緩存訪問和緩存缺失率的影響。該任務特別要求我們做循環展開,但我不明白它是如何影響數據緩存的?循環展開和數據高速緩存性能

回答

3

循環展開通常不會影響L1數據高速緩存,只是指令高速緩存。由於這兩者在大多數架構中都不相同。但是,如果您有多級緩存體系結構,則大多數體系結構中的二級緩存可用作指令緩存和數據緩存的二級緩存。因此,如果你將展開太多的指令,你可能會對L2緩存產生影響,從而實質上降低L2作爲數據緩存的性能。

下面是核心i7架構的圖片,它具有獨立的icache和dcache,但二級緩存對於兩者都是相同的。 http://upload.wikimedia.org/wikipedia/commons/6/64/Intel_Nehalem_arch.svg