日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

數(shù)據(jù)預(yù)取方法及可讀存儲(chǔ)介質(zhì)

文檔序號(hào):39726349發(fā)布日期:2024-10-22 13:26閱讀:2來(lái)源:國(guó)知局
本發(fā)明涉及計(jì)算機(jī),尤其涉及一種數(shù)據(jù)預(yù)取方法及可讀存儲(chǔ)介質(zhì)。
背景技術(shù)
::1、cpu(中央處理器)硬件預(yù)取是通過(guò)提前將可能需要的數(shù)據(jù)取到cache(片上緩存)以隱藏內(nèi)存訪問(wèn)請(qǐng)求所帶來(lái)的長(zhǎng)延時(shí)。各類硬件預(yù)取器已經(jīng)在商業(yè)cpu里得到了廣泛的應(yīng)用,預(yù)取技術(shù)也在過(guò)去的數(shù)十年里經(jīng)歷了快速發(fā)展。2、預(yù)取器主要有兩個(gè)指標(biāo):準(zhǔn)確率和覆蓋率。準(zhǔn)確率表示預(yù)取器通過(guò)預(yù)測(cè)提前發(fā)出的請(qǐng)求有多少是準(zhǔn)確的,覆蓋率表示預(yù)取請(qǐng)求覆蓋了多少個(gè)實(shí)際的請(qǐng)求。假設(shè)一段時(shí)間內(nèi)cpu發(fā)出了a個(gè)加載請(qǐng)求,預(yù)取器發(fā)出了b個(gè)加載請(qǐng)求,cpu所發(fā)出的請(qǐng)求里有c個(gè)是被預(yù)取器所提供的,那么,預(yù)取的準(zhǔn)確率為c/b,覆蓋率為c/a。3、由于訪問(wèn)內(nèi)存的長(zhǎng)延時(shí)使得cpu不得不停頓以等待數(shù)據(jù),造成了系統(tǒng)性能的下降。為了更好地提升性能,覆蓋更多這些長(zhǎng)延時(shí)的請(qǐng)求,預(yù)取器正變得越來(lái)越激進(jìn)。然而,與之而來(lái)的是越來(lái)越多的次優(yōu)數(shù)據(jù)塊被預(yù)取進(jìn)cache,也就是不準(zhǔn)確預(yù)取請(qǐng)求的數(shù)量越來(lái)越多。這些不準(zhǔn)確的預(yù)取請(qǐng)求會(huì)以各種方式擠占系統(tǒng)資源,包括爭(zhēng)用帶寬、爭(zhēng)用cache等。隨著共享資源如可用帶寬的減少,問(wèn)題變得越來(lái)越嚴(yán)重:大量的預(yù)取器所帶來(lái)的性能提升隨著可用帶寬的減少而急劇下降,甚至低于0(即負(fù)面收益)。由此發(fā)現(xiàn),先前的預(yù)取器所遵循的通用結(jié)構(gòu)為它們帶來(lái)了不可避免的大量不準(zhǔn)確請(qǐng)求。4、為了對(duì)預(yù)取器的預(yù)取方式進(jìn)行優(yōu)化,基于位模式的預(yù)取應(yīng)運(yùn)而生?;谖荒J降念A(yù)取是通過(guò)記錄一個(gè)區(qū)域內(nèi)哪些數(shù)據(jù)塊被訪問(wèn)來(lái)學(xué)習(xí)空間模式,并使用所學(xué)習(xí)的模式來(lái)發(fā)出預(yù)取請(qǐng)求。假設(shè)一個(gè)區(qū)域a包含8個(gè)數(shù)據(jù)塊,如果cpu訪問(wèn)了a+2,a+3和a+6,那么一個(gè)形如00110010的位模式將被生成。每當(dāng)一個(gè)位模式被生成時(shí),它將會(huì)和一個(gè)事件綁定,而這個(gè)事件是使用該區(qū)域的觸發(fā)訪問(wèn)(第一次訪問(wèn))的數(shù)個(gè)特征,例如包括pc(指令地址)、address(數(shù)據(jù)地址)、offset(頁(yè)內(nèi)偏移)等,而生成的這個(gè)事件再次發(fā)生時(shí),這個(gè)位模式會(huì)被用作預(yù)取。5、如圖1所示,基于位模式的預(yù)取通常包含三個(gè)主要組件:過(guò)濾表(ft,filtertable),累積表(at,,accumulation?table)和模式歷史表(pht,,pattern?historytable),其中,m表示未命中,h表示命中。ft被用于過(guò)濾掉單比特模式,這表明在記錄過(guò)程中該區(qū)域只有一個(gè)數(shù)據(jù)塊被訪問(wèn),at用于跟蹤所有最近訪問(wèn)的區(qū)域,pht用于存儲(chǔ)“事件-模式”對(duì),這是在累積后產(chǎn)生的。任何新訪問(wèn)的區(qū)域都會(huì)首先記錄在ft中,只有在第二次不同的訪問(wèn)到達(dá)后才會(huì)被跟蹤。此外,基于位模式的預(yù)取器通常采用預(yù)取緩沖區(qū)(pb,prefetchbuffer)來(lái)有效存儲(chǔ)預(yù)取地址,因?yàn)閱蝹€(gè)位模式通常包含多個(gè)具有相同起始地址的請(qǐng)求。此外,預(yù)取緩沖區(qū)還有助于平滑地發(fā)出預(yù)取。6、對(duì)此,space?memory?streaming(sms)首次規(guī)范化了基于位模式的預(yù)取結(jié)構(gòu)和邏輯。sms提出使用"pc+offset"作為事件,從而降低了存儲(chǔ)開(kāi)銷,并使預(yù)取器能夠消除強(qiáng)制錯(cuò)失。bulk?memory?access?prediction?and?streaming(bump)進(jìn)一步降低了sms的能耗。bingo的設(shè)計(jì)基于這樣一個(gè)事實(shí),即較短的事件("pc+offset")被包含在較長(zhǎng)的事件("pc+address")中。受tage分支預(yù)測(cè)器的啟發(fā),bingo首先嘗試使用較長(zhǎng)的事件來(lái)查找精確匹配,如果沒(méi)有找到,則使用較短的事件尋找近似匹配。為減少冗余,bingo使用"pc+offset"作為索引,并使用"pc+address"作為標(biāo)簽來(lái)實(shí)現(xiàn)pht。近似匹配意味著相應(yīng)集合中的所有模式(即具有相同短事件的模式)都會(huì)被一起用于預(yù)取,這就增加了激進(jìn)性。因此,與sms相比,bingo在覆蓋更多請(qǐng)求(近似匹配)的情況下實(shí)現(xiàn)了相似的準(zhǔn)確性(通過(guò)精確匹配維持),但不準(zhǔn)確的預(yù)取次數(shù)有所增加。可見(jiàn),sms和bingo都使用復(fù)雜的組合作為事件,需要極高的存儲(chǔ)開(kāi)銷(約1kb)和漫長(zhǎng)的學(xué)習(xí)時(shí)間才能實(shí)現(xiàn)高覆蓋率。7、為了解決這個(gè)問(wèn)題,dual?spatial?pattern?prefetcher(dspatch)在指令粒度上識(shí)別空間模式(即使用"pc"作為事件)。同時(shí),dspatch會(huì)為每個(gè)pc維護(hù)兩個(gè)最新模式,并通過(guò)預(yù)取出現(xiàn)在任一模式中的數(shù)據(jù)塊來(lái)進(jìn)一步提高覆蓋率。pattern?merging?prefetcher(pmp)通過(guò)只使用"offset"進(jìn)一步簡(jiǎn)化了事件,確保在短時(shí)間內(nèi)幾乎總能找到匹配。這就最大限度地減少了因執(zhí)行新指令或訪問(wèn)未見(jiàn)地址而丟失預(yù)取機(jī)會(huì)的可能性。此外,對(duì)于每個(gè)offset,pmp會(huì)合并32個(gè)最新模式,這意味著歷史訪問(wèn)特征會(huì)被保留和利用。不過(guò),這也意味著不再使用的模式仍可在較長(zhǎng)時(shí)間內(nèi)觸發(fā)預(yù)取,從而導(dǎo)致大量無(wú)用的預(yù)取。8、圖2顯示了使用"offset"作為事件時(shí),從數(shù)個(gè)真實(shí)工作負(fù)載中獲得的一些示例。在案例a中,第一種模式顯示了對(duì)數(shù)據(jù)塊的跨步訪問(wèn),而沖突模式則顯示了連續(xù)訪問(wèn),案例b與案例a類似。在案例c中,可以看到步長(zhǎng)為3的恒定跨度和步長(zhǎng)為{2,2,2,1}的復(fù)合跨度這兩種訪問(wèn)模式。由于局部性,這些訪問(wèn)模式很可能會(huì)再次出現(xiàn),因此應(yīng)被恰當(dāng)?shù)赜糜陬A(yù)取。但由于它們具有相同的第一偏移(圖中虛線所圈出來(lái)的數(shù)據(jù)塊),因此無(wú)法區(qū)分。9、綜上,這些方法所依賴的通用結(jié)構(gòu)所帶來(lái)的固有不準(zhǔn)確性(主要表現(xiàn)為錯(cuò)誤預(yù)測(cè)和過(guò)度預(yù)測(cè))正在將預(yù)取所帶來(lái)的性能提升推向極限。10、事實(shí)上,簡(jiǎn)化事件可帶來(lái)更高的覆蓋率、更好的性能和更低的存儲(chǔ)開(kāi)銷。然而,這也使得區(qū)分具有不同長(zhǎng)事件但具有相同短事件的不同模式變得具有挑戰(zhàn)性。例如,當(dāng)某條指令在兩個(gè)區(qū)域分別產(chǎn)生兩種不同的訪問(wèn)模式時(shí),使用"pc+address"可以區(qū)分這些模式。然而,當(dāng)僅使用"pc"時(shí),兩個(gè)指令會(huì)共享相同的事件,通常將其稱為沖突。因此,后一種模式取代了前一種模式,使得預(yù)取器使用到錯(cuò)誤模式的概率較高,從而導(dǎo)致多次錯(cuò)誤預(yù)測(cè)。對(duì)此,最近的一些提議試圖通過(guò)從合并的沖突模式中提取共同特征來(lái)解決這一問(wèn)題。例如,bingo在發(fā)生近似匹配時(shí),會(huì)合并同一set(具有相同較短事件)中的所有模式(共16個(gè));dspatch會(huì)合并每個(gè)pc中最近的兩個(gè)模式;而pmp則將合并范圍擴(kuò)大到每個(gè)offset的32個(gè)模式。然而,這并不是一個(gè)理想的解決方案,因?yàn)樗](méi)有從根本上減少?zèng)_突,而且使不再使用的模式在很長(zhǎng)一段時(shí)間內(nèi)成為共同特征的一部分,從而導(dǎo)致大量無(wú)用的預(yù)取。11、此外,目前還發(fā)現(xiàn)了一種以前被忽視但卻很常見(jiàn)的訪問(wèn)模式,在以前的方法中,這種模式會(huì)導(dǎo)致大量無(wú)用的預(yù)取。通常將具有這種訪問(wèn)模式的區(qū)域稱為單次使用區(qū)域,表示這些區(qū)域在很長(zhǎng)一段時(shí)間內(nèi)只被訪問(wèn)一次。在訪問(wèn)一個(gè)新區(qū)域時(shí),預(yù)取器遵循基于位模式預(yù)取的通用邏輯,利用這次加載訪問(wèn)來(lái)構(gòu)建搜索事件。然后,利用該事件搜索過(guò)去的模式,找到那些可能在新區(qū)域中重放的模式。在這種情況下,單次使用的區(qū)域能夠發(fā)出多個(gè)預(yù)取,其中大部分是無(wú)用的。隨著預(yù)取器變得更加激進(jìn),情況會(huì)變得更糟,因?yàn)檫@使得來(lái)自單次使用區(qū)域的事件能夠頻繁甚至持續(xù)地找到匹配模式,從而導(dǎo)致大量過(guò)度預(yù)測(cè)。技術(shù)實(shí)現(xiàn)思路1、本發(fā)明的目的在于提供一種數(shù)據(jù)預(yù)取方法及可讀存儲(chǔ)介質(zhì),以解決現(xiàn)有數(shù)據(jù)預(yù)取方法存在的錯(cuò)誤預(yù)測(cè)和過(guò)度預(yù)測(cè)等問(wèn)題。2、為達(dá)到上述目的,本發(fā)明提供一種數(shù)據(jù)預(yù)取方法,包括以下步驟:3、s100、當(dāng)檢測(cè)到cpu對(duì)緩存的加載訪問(wèn)時(shí),若所述加載訪問(wèn)所請(qǐng)求的數(shù)據(jù)地址所屬的區(qū)域在累積表中未被追蹤,跳轉(zhuǎn)s200;4、s200、檢查所述區(qū)域是否已經(jīng)在過(guò)濾表中記錄過(guò),若是,則跳轉(zhuǎn)s300;5、s300、檢查所述加載訪問(wèn)所請(qǐng)求的數(shù)據(jù)地址的偏移和所述過(guò)濾表中記錄的偏移是否一致,若不一致,則跳轉(zhuǎn)s400;6、s400、在模式歷史表中,基于所述加載訪問(wèn)所請(qǐng)求的數(shù)據(jù)地址的偏移和所述過(guò)濾表中記錄的偏移進(jìn)行查找,形成第一預(yù)取模式并發(fā)送到預(yù)取緩沖區(qū)。7、可選的,在所述s100中,若所述加載訪問(wèn)所請(qǐng)求的數(shù)據(jù)地址所屬的區(qū)域在所述累積表中被追蹤,則跳轉(zhuǎn)s210;8、s210、根據(jù)所述加載訪問(wèn)所請(qǐng)求的數(shù)據(jù)地址的偏移,檢查所述區(qū)域在最近三次訪問(wèn)所間隔的兩個(gè)步長(zhǎng)是否一致,若一致,則跳轉(zhuǎn)s220;9、s220、按照恒定步長(zhǎng)的變化規(guī)律,形成第二預(yù)取模式發(fā)出預(yù)取請(qǐng)求。10、可選的,在所述s200中,若所述區(qū)域未在所述過(guò)濾表中記錄過(guò),則在所述過(guò)濾表進(jìn)行記錄,區(qū)域號(hào)作為所述記錄的索引,同時(shí)所述記錄的內(nèi)容還包含所述加載訪問(wèn)所請(qǐng)求的數(shù)據(jù)地址的偏移以及pc。11、可選的,在所述s300中,若所述加載訪問(wèn)所請(qǐng)求的數(shù)據(jù)地址的偏移和所述過(guò)濾表中記錄的偏移一致,則更新lru標(biāo)志。12、可選的,在所述s400中,當(dāng)所述加載訪問(wèn)所請(qǐng)求的數(shù)據(jù)塊和所述過(guò)濾表中記錄的偏移所述請(qǐng)求的數(shù)據(jù)塊對(duì)應(yīng)所述區(qū)域的前兩個(gè)數(shù)據(jù)塊,且所述區(qū)域內(nèi)的數(shù)據(jù)塊未被全部訪問(wèn)時(shí),將所述區(qū)域設(shè)定為特殊區(qū)域,并利用所述模式歷史表對(duì)所述特殊區(qū)域建立pc標(biāo)簽,并根據(jù)所述pc標(biāo)簽的命中情況形成第三預(yù)取模式并發(fā)送到預(yù)取緩沖區(qū)。13、可選的,若所述pc標(biāo)簽未命中,則使用連續(xù)性感知向量進(jìn)行預(yù)取,所述連續(xù)性感知向量由多個(gè)計(jì)數(shù)器組成,對(duì)于所述特殊區(qū)域內(nèi)的每個(gè)數(shù)據(jù)塊,分別采用一個(gè)計(jì)數(shù)器來(lái)跟蹤它在最近特殊區(qū)域中的加載次數(shù),基于所述加載次數(shù)形成第四預(yù)取模式并發(fā)送到預(yù)取緩沖區(qū)。14、可選的,在所述s400之后,所述數(shù)據(jù)預(yù)取方法還包括:15、s500、將所述加載訪問(wèn)在所述過(guò)濾表中的表項(xiàng)插入到累積表中,若所述累積表中產(chǎn)生淘汰,則將淘汰的表項(xiàng)發(fā)送給所述模式歷史表進(jìn)行存儲(chǔ)。16、可選的,在所述s500之后,所述數(shù)據(jù)預(yù)取方法還包括:17、將所述過(guò)濾表中記錄的偏移作為索引,所述加載訪問(wèn)所請(qǐng)求的數(shù)據(jù)地址的偏移作為標(biāo)簽對(duì)所述第一預(yù)取模式進(jìn)行存儲(chǔ)。18、可選的,在通過(guò)所述預(yù)取緩沖區(qū)發(fā)出預(yù)取指令之前,所述數(shù)據(jù)預(yù)取方法還包括:19、判斷所述加載訪問(wèn)結(jié)束后緩存是否還剩下足夠的緩存資源下以發(fā)送預(yù)取指令,若是則發(fā)出預(yù)取指令,否則,則結(jié)束預(yù)取。20、基于同一技術(shù)構(gòu)思,本發(fā)明還提供了一種可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被執(zhí)行時(shí)能實(shí)現(xiàn)如上所述的數(shù)據(jù)預(yù)取方法。21、在本發(fā)明提供的一種數(shù)據(jù)預(yù)取方法及可讀存儲(chǔ)介質(zhì)中,通過(guò)對(duì)訪問(wèn)區(qū)域引入少量額外的觀察,能夠消除大量的錯(cuò)誤預(yù)測(cè)和過(guò)度預(yù)測(cè),從而大幅提升數(shù)據(jù)預(yù)取的準(zhǔn)確率,降低額外帶寬的消耗。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1