欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

硬件數(shù)據(jù)預(yù)取器及執(zhí)行硬件數(shù)據(jù)的方法

文檔序號(hào):9523957閱讀:564來源:國知局
硬件數(shù)據(jù)預(yù)取器及執(zhí)行硬件數(shù)據(jù)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明有關(guān)于處理器的數(shù)據(jù)預(yù)取,并且主張2014年10月20日提出的美國臨時(shí)申請案第62/066,131號(hào)的優(yōu)先權(quán),此案件整體引用為本發(fā)明的參考。
【背景技術(shù)】
[0002]由于處理器內(nèi)部對快取存儲(chǔ)器的存取時(shí)間相對于處理器對系統(tǒng)存儲(chǔ)器的存取時(shí)間持續(xù)不對等成長,凸顯處理器需要更好的預(yù)取方式。舉例來說,Mowry描述一個(gè)對編譯器做修改以使用互斥模式預(yù)取的方式,此編譯器對分割存儲(chǔ)器執(zhí)行本地分析時(shí),參考“等效分類,其可為單一參考的參考集合”,并插入“一互斥模式預(yù)取而非共享模式預(yù)取在一給定的等效分類上,如果至少一個(gè)等效分類的成員是寫入的話”,請參閱“通過軟件控制數(shù)據(jù)預(yù)取的延遲容忍”,Mowry, Todd Carl,史丹佛大學(xué)1994年博士論文,第89頁的敘述。
[0003]以軟件為主的預(yù)取方式的一個(gè)缺點(diǎn)就如Mowry所述,因?yàn)轭A(yù)取指令將寫在程序里于是會(huì)增加微碼大小,而增加微碼大小可能需要在系統(tǒng)主要儲(chǔ)存媒介(例如硬盤)上更多的儲(chǔ)存空間以保留較大的程序,并且在較大的程序執(zhí)行時(shí)也要在系統(tǒng)存儲(chǔ)器中在維持更大的空間才行。額外的指令也消耗處理器的資源,諸如分派區(qū)域(dispatch slots)、保留站區(qū)域、以及執(zhí)行單元區(qū)域等,這些都可能對處理器效能產(chǎn)生負(fù)面影響,而且更特別的是將減少指令區(qū)間有效的預(yù)視能力,因此對使用指令階層的平行處理能力影響甚巨。另一個(gè)缺點(diǎn)是它不會(huì)對所有在處理器執(zhí)行的程序提供好處,而只會(huì)對那些使用最佳化編譯器所描述(profiled)與編譯過的程序有所助益。

【發(fā)明內(nèi)容】

[0004]本發(fā)明提供一種包含在一存儲(chǔ)器存取代理器的硬件數(shù)據(jù)預(yù)取器,其中該存儲(chǔ)器存取代理器為共享一存儲(chǔ)器的多個(gè)存儲(chǔ)器存取代理器之一。該硬件數(shù)據(jù)預(yù)取器包含一初始為互斥或共享的預(yù)取特性,該硬件數(shù)據(jù)預(yù)取器亦包含一預(yù)取模塊,其使用該預(yù)取特性對共享的存儲(chǔ)器的一存儲(chǔ)器區(qū)塊執(zhí)行硬件預(yù)取,該硬件數(shù)據(jù)預(yù)取器還包括一更新模塊,其執(zhí)行一該多個(gè)存儲(chǔ)器存取代理器對該存儲(chǔ)器區(qū)塊的存取分析,并依據(jù)該分析,當(dāng)該預(yù)取模塊利用該預(yù)取特性對該存儲(chǔ)器區(qū)塊執(zhí)行硬件預(yù)取時(shí),動(dòng)態(tài)地更新該預(yù)取特性為互斥或共享。
[0005]本發(fā)明另一實(shí)施例提供一種存儲(chǔ)器存取代理器的硬件數(shù)據(jù)預(yù)取器方法,其中存儲(chǔ)器存取代理器為共享一存儲(chǔ)器的多個(gè)存儲(chǔ)器存取代理器之一,該方法包含初始化一預(yù)取特性為互斥或共享,該方法亦包含使用該預(yù)取特性對共享的存儲(chǔ)器的一存儲(chǔ)器區(qū)塊執(zhí)行硬件預(yù)取,該方法還包括執(zhí)行一個(gè)該多個(gè)存儲(chǔ)器存取代理器對該存儲(chǔ)器區(qū)塊的存取分析,該方法還包括依據(jù)該分析,當(dāng)該預(yù)取模塊利用該預(yù)取特性對該存儲(chǔ)器區(qū)塊執(zhí)行硬件預(yù)取時(shí),動(dòng)態(tài)地更新該預(yù)取特性為互斥或共享。
[0006]本發(fā)明再一實(shí)施例提供一種由計(jì)算裝置所使用的編碼于至少一非轉(zhuǎn)態(tài)計(jì)算機(jī)使用存儲(chǔ)媒介的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包含編碼于該儲(chǔ)存媒介的計(jì)算機(jī)使用程序編碼,用以指示包含于一存儲(chǔ)器存取代理器的硬件數(shù)據(jù)預(yù)取器,其中該存儲(chǔ)器存取代理器為共享一存儲(chǔ)器的多個(gè)存儲(chǔ)器存取代理器之一。該計(jì)算機(jī)使用程序編碼包含一第一程序編碼,用以指示一初始化為互斥或共享的預(yù)取特性。該計(jì)算機(jī)使用程序編碼亦包含一第二程序編碼,用以指示一預(yù)取模塊使用該預(yù)取特性對共享的存儲(chǔ)器的一存儲(chǔ)器區(qū)塊執(zhí)行硬件預(yù)取。該計(jì)算機(jī)使用程序編碼還包括一第三程序編碼,用以指示一更新模塊,其執(zhí)行一該多個(gè)存儲(chǔ)器存取代理器對該存儲(chǔ)器區(qū)塊的存取分析,并依據(jù)該分析,當(dāng)該預(yù)取模塊利用該預(yù)取特性對該存儲(chǔ)器區(qū)塊執(zhí)行硬件預(yù)取時(shí),動(dòng)態(tài)地更新該預(yù)取特性為互斥或共享。
[0007]本發(fā)明可在運(yùn)行時(shí)觀察其他存儲(chǔ)器存取代理器對存儲(chǔ)器區(qū)塊的存取,即執(zhí)行改變預(yù)取特性的分析,因而相對于軟件預(yù)取而言,容易在編譯時(shí)決定其他存儲(chǔ)器存取代理器何時(shí)會(huì)對哪個(gè)存儲(chǔ)器區(qū)塊進(jìn)行存取。
【附圖說明】
[0008]圖1是本發(fā)明一實(shí)施例的計(jì)算機(jī)系統(tǒng)的方塊圖。
[0009]圖2是圖1的硬件數(shù)據(jù)預(yù)取器的細(xì)部方塊圖。
[0010]圖3是圖1的系統(tǒng)的操作流程圖。
[0011]圖4至11是圖1依據(jù)多個(gè)存儲(chǔ)器存取代理器對一存儲(chǔ)器區(qū)塊的存取分析以動(dòng)態(tài)地更新該預(yù)取特性的操作流程圖。
[0012]圖12是使用離線程序分析來決定預(yù)取特性以執(zhí)行硬件預(yù)取的操作流程圖。
[0013]圖13描繪多個(gè)范圍暫存器的方塊圖。
[0014]圖14是圖1依據(jù)多個(gè)存儲(chǔ)器存取代理器對一存儲(chǔ)器區(qū)塊的存取分析以動(dòng)態(tài)地更新該預(yù)取特性的操作流程圖。
[0015]其中,附圖中符號(hào)的簡單說明如下:
[0016]100:計(jì)算系統(tǒng)
[0017]101:存儲(chǔ)器存取代理器
[0018]102:核
[0019]103:處理器
[0020]104:繪圖處理單元(GPU)
[0021]106:直接存儲(chǔ)器存取(DMA)裝置
[0022]108:系統(tǒng)存儲(chǔ)器
[0023]112:總線
[0024]114:存儲(chǔ)器區(qū)塊
[0025]122:硬件數(shù)據(jù)預(yù)取器
[0026]124:末級(jí)快取存儲(chǔ)器(LLC)
[0027]132:預(yù)取特性
[0028]202:存儲(chǔ)器存取歷史
[0029]204:更新模塊
[0030]206:預(yù)取模塊
[0031]212:存儲(chǔ)器存取歷史206的一部分
[0032]208:預(yù)取請求
[0033]232:微碼擷取
[0034]234:程序加載/儲(chǔ)存
[0035]236:窺探
[0036]1302:地址范圍字段
[0037]1304:預(yù)取特性字段
[0038]302 ?312、402 ?406、502 ?506、602 ?608、702 ?712、802 ?812、902 ?912、1002 ?1008、1102 ?1112、1202 ?1208、1402 ?1408:步驟。
【具體實(shí)施方式】
[0039]< 術(shù)語 >
[0040]存儲(chǔ)器存取代理器是一存取系統(tǒng)存儲(chǔ)器的裝置,舉例來說,處理核、繪圖處理單元、以及執(zhí)行直接存儲(chǔ)器存取的(DMA)周邊裝置都是存儲(chǔ)器存取代理器。
[0041]硬件數(shù)據(jù)預(yù)取器基于存儲(chǔ)器存取代理器未來將需要數(shù)據(jù)的預(yù)估而經(jīng)由從系統(tǒng)存儲(chǔ)器的數(shù)據(jù)讀取,特別是,如本發(fā)明所述,硬件預(yù)取不是一軟件預(yù)取,其指處理器因執(zhí)行一架構(gòu)預(yù)取指令而由處理器從系統(tǒng)存儲(chǔ)器的數(shù)據(jù)讀取。因此,處理器基于處理器在運(yùn)轉(zhuǎn)時(shí)的分析(亦即與硬件預(yù)取同時(shí)發(fā)生的存儲(chǔ)器存取分析)來執(zhí)行硬件預(yù)取。相反的,相關(guān)于插入在程序架構(gòu)預(yù)取指令(例如在編譯時(shí)間)的軟件預(yù)取會(huì)在程序執(zhí)行之前被執(zhí)行,因此不會(huì)與軟件預(yù)取同時(shí)發(fā)生。硬件預(yù)取執(zhí)行所讀取的數(shù)據(jù)可能是由處理器所執(zhí)行的指令、或是非指令的數(shù)據(jù),例如處理器執(zhí)行指令時(shí)的數(shù)據(jù)運(yùn)算元。
[0042]存儲(chǔ)器區(qū)塊是在系統(tǒng)存儲(chǔ)器中一連串的存儲(chǔ)位置,例如存儲(chǔ)器頁。
[0043]預(yù)取特性是用以指出數(shù)據(jù)讀取者所要求的與相關(guān)快取線所有權(quán)互斥(互斥預(yù)取特性)的預(yù)取性質(zhì)、或是所要求的是允許其他存儲(chǔ)器區(qū)塊可保留快取線副本(共享預(yù)取特性)的預(yù)取性質(zhì)。當(dāng)一預(yù)取使用互斥預(yù)取特性時(shí),將包含一命令每個(gè)其他的存儲(chǔ)器存取代理器無效其本地快取線副本(假使有修改則寫回目前數(shù)據(jù)數(shù)值)的總線傳輸,其通常被當(dāng)成是讀取無效總線傳輸、具修改意圖的讀取總線傳輸、讀取所有權(quán)、或是相似的技術(shù)名稱;反之,當(dāng)預(yù)取使用共享預(yù)取特性時(shí),將包含一在共享狀態(tài)下允許每個(gè)其他的存儲(chǔ)器存取代理器保留其本地快取線副本的總線傳輸,其通常被當(dāng)成是單純的讀取總線傳輸、或是讀取共享0K總線傳輸、或是相似的技術(shù)名稱。
[0044]圖1繪示本發(fā)明一實(shí)施例的計(jì)算機(jī)系統(tǒng)100的方塊圖。計(jì)算機(jī)系統(tǒng)100包含存儲(chǔ)器存取代理器101,其共享一系統(tǒng)存儲(chǔ)器108并通過一總線112存取。存儲(chǔ)器存取代理器101可包含一執(zhí)行直接存儲(chǔ)器存取(DMA)的周邊裝置106、一繪圖處理單元(GPU) 104、以及一處理器103。處理器103包含多個(gè)處理核102、一個(gè)由核102所共享的末級(jí)快取存儲(chǔ)器(LLC) 124、以及一硬件數(shù)據(jù)預(yù)取器122,GPU 104與DMA 106亦可包含一硬件數(shù)據(jù)預(yù)取器122。雖然在圖1僅顯示兩核102,其他數(shù)量核的實(shí)施例亦可運(yùn)用本發(fā)明的技術(shù)。
[0045]硬件數(shù)據(jù)預(yù)取器122包含一預(yù)取特性132,其系硬件數(shù)據(jù)預(yù)取器122用來從系統(tǒng)存儲(chǔ)器108的一存儲(chǔ)器區(qū)塊114執(zhí)行硬件預(yù)取,預(yù)取特性132具有一互斥或共享的值。硬件數(shù)據(jù)預(yù)取器122動(dòng)態(tài)地且選擇性地依據(jù)由存儲(chǔ)器存取代理器101對該存儲(chǔ)器區(qū)塊114進(jìn)行存取的分析來更新預(yù)取特性132。硬件數(shù)據(jù)預(yù)取器122將在下面的圖2與其他圖示做更進(jìn)一步的描述。
[0046]處理器103可包含一作為處理器103與總線112的接口的總線接口單元,而每個(gè)核102包含一指令快取、指令解碼器、指令分派器、存儲(chǔ)子系統(tǒng)(例如加載/儲(chǔ)存單元、存儲(chǔ)緩沖區(qū))、其他執(zhí)行單元、以及一本地?cái)?shù)據(jù)快取(例如第一級(jí)數(shù)據(jù)快取)。
[0047]當(dāng)硬件數(shù)據(jù)預(yù)取器122對總線接口單元提出一硬件預(yù)取請求時(shí),其將伴隨預(yù)取
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
太仓市| 两当县| 中方县| 新龙县| 白朗县| 兴安盟| 冕宁县| 城固县| 民和| 兴宁市| 伊宁县| 迁安市| 佛坪县| 柳州市| 新宁县| 凌源市| 修文县| 浮山县| 大邑县| 玉环县| 安远县| 彭水| 克拉玛依市| 公安县| 湄潭县| 团风县| 双城市| 乌拉特后旗| 兴宁市| 颍上县| 辽阳市| 巨鹿县| 潼南县| 河北区| 宜昌市| 什邡市| 东阳市| 确山县| 安多县| 吉林市| 通辽市|