陳玲玲,焦童,汪玲,安鑫,李建華
(1 合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,合肥 230009;2 安徽交通職業(yè)技術(shù)學(xué)院,合肥 230051)
多核處理器(Chip Multiprocessor,簡(jiǎn)稱(chēng)為CMP)是當(dāng)前通用處理器的主流架構(gòu),該架構(gòu)下多個(gè)核心共享最后一級(jí)緩存(Last-Level Cache,簡(jiǎn)稱(chēng)LLC)和片外帶寬等共享資源。多個(gè)核心共享LLC 會(huì)導(dǎo)致訪(fǎng)存干擾,從而影響系統(tǒng)性能和融合多核處理器的服務(wù)質(zhì)量。具體來(lái)說(shuō),當(dāng)不同的應(yīng)用程序運(yùn)行在多核處理器的不同核心上時(shí),會(huì)同時(shí)發(fā)出內(nèi)存請(qǐng)求,彼此相互沖突,增加內(nèi)存訪(fǎng)問(wèn)延遲,使得每個(gè)應(yīng)用程序比單獨(dú)運(yùn)行時(shí)更慢。
硬件預(yù)取是減少內(nèi)存訪(fǎng)問(wèn)延遲的主流技術(shù)之一。通過(guò)學(xué)習(xí)當(dāng)前程序的訪(fǎng)存模式來(lái)預(yù)測(cè)程序之后一段時(shí)間內(nèi)的訪(fǎng)存行為,并在程序發(fā)出訪(fǎng)存請(qǐng)求之前將數(shù)據(jù)預(yù)取進(jìn)高速緩沖寄存器,來(lái)隱藏內(nèi)存訪(fǎng)問(wèn)延遲[1]。但預(yù)取也可能會(huì)導(dǎo)致緩存層次結(jié)構(gòu)污染,并在內(nèi)存系統(tǒng)中產(chǎn)生過(guò)多的流量和爭(zhēng)用,增加核間干擾。因此,配備預(yù)取機(jī)制的多核處理器,減少核間干擾是提升系統(tǒng)性能的主要瓶頸之一。
先前的大量工作提出了基于預(yù)取來(lái)減少核間干擾的一些方案。但是,大多數(shù)預(yù)取方案都沒(méi)有考慮過(guò)非內(nèi)存密集型程序的特殊性。由于其在運(yùn)行期間發(fā)出的訪(fǎng)存請(qǐng)求遠(yuǎn)低于其它程序,若不對(duì)其優(yōu)先處理,就容易造成以下問(wèn)題:
(1)發(fā)出的訪(fǎng)存指令少導(dǎo)致預(yù)取器難以找到程序的訪(fǎng)存規(guī)律,若非內(nèi)存密集程序盲目的配置,過(guò)于激進(jìn)的預(yù)取,由于其局部性不強(qiáng),容易將其它潛在有用的數(shù)據(jù)踢出緩存,造成嚴(yán)重的緩存污染,從而影響其它應(yīng)用程序的性能。……