一種數(shù)據(jù)預(yù)取的方法和系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)預(yù)取的方法和系統(tǒng)。本發(fā)明實(shí)施例采用預(yù)先對(duì)本地終端和與本地終端相連的遠(yuǎn)端終端設(shè)置不同的預(yù)取深度值,當(dāng)預(yù)取系統(tǒng)接收到處理器發(fā)送的訪存地址時(shí),對(duì)該訪存地址所屬的終端進(jìn)行區(qū)分判斷,從而得到相應(yīng)的預(yù)取深度值。本發(fā)明可在不增設(shè)額外預(yù)取系統(tǒng)情況下提高高速緩存命中率,降低訪問(wèn)遠(yuǎn)端內(nèi)存的時(shí)延,降低了成本。同時(shí)提供軟件編程接口,可在運(yùn)行時(shí)動(dòng)態(tài)修改各終端對(duì)應(yīng)的預(yù)取深度值。
【專(zhuān)利說(shuō)明】一種數(shù)據(jù)預(yù)取的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,具體涉及一種數(shù)據(jù)預(yù)取的方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著信息技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)規(guī)模隨著用戶(hù)數(shù)呈指數(shù)級(jí)增長(zhǎng),也越來(lái)越龐大,為了支持?jǐn)嘟硬僮鞑捎昧祟A(yù)取技術(shù),預(yù)取技術(shù)利用程序的局部性原理,從主存預(yù)取數(shù)據(jù)到緩存器中,使處理器訪存時(shí)直接從緩存器中取數(shù)據(jù),大大減少訪存時(shí)間和網(wǎng)絡(luò)延遲,提高系統(tǒng)性能。
[0003]預(yù)取技術(shù)可以分為軟件預(yù)取和硬件預(yù)取。目前,對(duì)于軟件預(yù)取,大部分的處理器支持不同格式的預(yù)取指令,但通過(guò)指令進(jìn)行數(shù)據(jù)預(yù)取會(huì)有指令開(kāi)銷(xiāo);硬件預(yù)取技術(shù)在真實(shí)環(huán)境中應(yīng)用廣泛,它不需要程序員和編譯器的參與,不需要修改可執(zhí)行文件,所以沒(méi)有指令開(kāi)銷(xiāo),硬件預(yù)取也可以利用系統(tǒng)運(yùn)行時(shí)的信息修改預(yù)取系統(tǒng)參數(shù),使預(yù)取更加有效。
[0004]在服務(wù)器集群中,利用互聯(lián)技術(shù),可以在節(jié)點(diǎn)之間共享內(nèi)存,即有些節(jié)點(diǎn)可以使用不屬于自己的內(nèi)存,而使用遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存,但是訪問(wèn)遠(yuǎn)端內(nèi)存的時(shí)延要比訪問(wèn)本地內(nèi)存的時(shí)延高很多。假設(shè)有個(gè)節(jié)點(diǎn)使用了不屬于自己的內(nèi)存,該節(jié)點(diǎn)上的預(yù)取器不區(qū)分處理器發(fā)出的訪存地址是本地內(nèi)存還是遠(yuǎn)端內(nèi)存,也就無(wú)法針對(duì)訪問(wèn)遠(yuǎn)端內(nèi)存的情況進(jìn)行數(shù)據(jù)預(yù)取優(yōu)化。
[0005]本發(fā)明的發(fā)明人發(fā)現(xiàn),現(xiàn)有的只針對(duì)節(jié)點(diǎn)的本地內(nèi)存進(jìn)行數(shù)據(jù)預(yù)取,不考慮節(jié)點(diǎn)使用遠(yuǎn)端內(nèi)存的預(yù)取方法無(wú)法降低訪問(wèn)遠(yuǎn)端內(nèi)存的時(shí)延,這將導(dǎo)致在使用遠(yuǎn)端內(nèi)存的集群中,降低系統(tǒng)系能。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實(shí)施例提供一種數(shù)據(jù)預(yù)取的方法和系統(tǒng),以期在互聯(lián)的集群系統(tǒng)中,區(qū)分對(duì)待處理器訪問(wèn)本地內(nèi)存和遠(yuǎn)端內(nèi)存的情況,改進(jìn)針對(duì)遠(yuǎn)端內(nèi)存的預(yù)取方式,減少訪問(wèn)遠(yuǎn)端內(nèi)存的時(shí)延,提高系統(tǒng)整體性能。
[0007]第一方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)預(yù)取的方法,包括:
[0008]接收第一終端的處理器發(fā)送的訪存地址;
[0009]根據(jù)預(yù)設(shè)的第一關(guān)系表獲取所述訪存地址所屬的終端及所述終端對(duì)應(yīng)的預(yù)取深度值,其中,所述第一關(guān)系表包括所述第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端的內(nèi)存地址、及與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值;
[0010]利用獲取的預(yù)取深度值對(duì)所述第一終端進(jìn)行數(shù)據(jù)預(yù)取。
[0011]在第一種可能的實(shí)施方式中,結(jié)合第一方面,所述根據(jù)預(yù)設(shè)的第一關(guān)系表獲取所述訪存地址所屬的終端及所述終端對(duì)應(yīng)的預(yù)取深度值包括:
[0012]將接收到的訪存地址與所述第一關(guān)系表中的與所述第一終端相連的終端的內(nèi)存地址進(jìn)行匹配,若匹配成功,則根據(jù)第一關(guān)系表獲取與所述第一終端相連的終端的內(nèi)存地址所對(duì)應(yīng)的預(yù)取深度值;若匹配不成功,則根據(jù)所述第一關(guān)系表獲取所述第一終端對(duì)應(yīng)的預(yù)取深度值。
[0013]在第二種可能的實(shí)施方式中,結(jié)合第一方面或者第一方面的第一種可能的實(shí)施方式,所述第一關(guān)系表中的第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值分別存儲(chǔ)于M個(gè)預(yù)取深度寄存其中,與所述第一終端相連的終端的內(nèi)存地址分別存儲(chǔ)于N個(gè)地址寄存器中,其中,M和N都為正整數(shù)。
[0014]在第三種可能的實(shí)施方式中,結(jié)合第二種可能的實(shí)施方式,所述根據(jù)第一關(guān)系表獲取所述訪存地址所屬的終端及所述終端對(duì)應(yīng)的預(yù)取深度值包括:
[0015]將接收到的訪存地址依次與所述N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配;
[0016]若匹配成功,則從所述N個(gè)預(yù)取深度寄存器中,選擇與匹配成功的地址寄存器相對(duì)應(yīng)的預(yù)取深度寄存器,并獲取預(yù)取深度值;
[0017]若匹配不成功,則從第一終端對(duì)應(yīng)的預(yù)取深度寄存器中獲取預(yù)取深度值。
[0018]其中,在上述的實(shí)施方式中,所述訪存地址為所述處理器發(fā)送的虛擬地址經(jīng)旁路轉(zhuǎn)換緩沖TLB轉(zhuǎn)換后得到的物理地址。
[0019]在第四種可能的實(shí)施方式中,所述數(shù)據(jù)預(yù)取的方法還包括定期對(duì)所述第一關(guān)系表中的所述第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值進(jìn)行更新。
[0020]在第五種可能的實(shí)施方式中,結(jié)合第二種可能的實(shí)施方式,所述將接收到的訪存地址依次與所述N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配具體包括:
[0021]將所述訪存地址與預(yù)設(shè)的地址掩碼進(jìn)行相與運(yùn)算;
[0022]將相與運(yùn)算后所得結(jié)果依次與所述N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配。
[0023]第二方面,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)預(yù)取的系統(tǒng),包括:
[0024]接收模塊,用于接收第一終端的處理器發(fā)送的訪存地址;
[0025]獲取模塊,用于根據(jù)預(yù)設(shè)的第一關(guān)系表獲取所述訪存地址所屬的終端及所述終端對(duì)應(yīng)的預(yù)取深度值,其中,所述第一關(guān)系表包括第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端的內(nèi)存地址、及與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值;
[0026]預(yù)取模塊,利用所述獲取模塊獲取的預(yù)取深度值對(duì)所述第一終端進(jìn)行數(shù)據(jù)預(yù)取。
[0027]在第一種可能的實(shí)施方式中,結(jié)合第二方面,所述獲取模塊中包括:
[0028]第一匹配單元,用于將所述接收模塊接收到的訪存地址與所述第一關(guān)系表中的與所述第一終端相連的終端的內(nèi)存地址進(jìn)行匹配;
[0029]第一調(diào)取單元,用于當(dāng)所述第一匹配模塊匹配成功時(shí),根據(jù)所述第一關(guān)系表獲取與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值;當(dāng)所述第一匹配模塊匹配不成功時(shí),根據(jù)所述第一關(guān)系表獲取所述第一終端對(duì)應(yīng)的預(yù)取深度值。
[0030]在第二種可能的實(shí)施方式中,結(jié)合第二方面,所述獲取模塊中包括N個(gè)地址寄存器、M個(gè)預(yù)取深度寄存器、第二匹配單元和第二調(diào)取單元,其中,N和M為正整數(shù);
[0031]所述N個(gè)地址寄存器分別用于存儲(chǔ)與所述第一終端相連的終端的內(nèi)存地址;
[0032]所述M個(gè)預(yù)取深度寄存器分別用于存儲(chǔ)所述第一終端對(duì)應(yīng)的預(yù)取深度值,或者與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值;
[0033]所述第二匹配單元用于將所述接收模塊所接收的訪存地址依次與所述N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配;[0034]所述第二調(diào)取單元用于當(dāng)所述第二匹配單元匹配成功時(shí),從所述M個(gè)預(yù)取深度寄存器中選擇與匹配成功的地址寄存器相對(duì)應(yīng)的預(yù)取深度寄存器并獲取預(yù)取深度值;當(dāng)所述第二匹配單元匹配不成功時(shí),從所述第一終端對(duì)應(yīng)的預(yù)取深度寄存器中調(diào)取第一終端對(duì)應(yīng)的預(yù)取深度值。
[0035]在第三種可能的實(shí)施方式中,結(jié)合第二方面或者第二方面的第一種可能的實(shí)施方式或者第二方面第二種可能的實(shí)施方式,所述數(shù)據(jù)預(yù)取的系統(tǒng)還包括轉(zhuǎn)換模塊,所述轉(zhuǎn)換模塊連接所述接收模塊,用于將所述第一終端的處理器發(fā)送的虛擬的訪存地址轉(zhuǎn)換為物理的訪存地址后發(fā)送給所述接收模塊。
[0036]在第四種可能的實(shí)施方式中,結(jié)合第二方面或者第二方面的第一種或者第二種或者第三種可能的實(shí)施方式,所述數(shù)據(jù)預(yù)取的系統(tǒng)還包括更新模塊,用于定期對(duì)所述第一關(guān)系表中的所述第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值進(jìn)行更新。
[0037]在第五種可能的實(shí)施方式中,結(jié)合第二種可能的實(shí)施方式,所述數(shù)據(jù)預(yù)取的系統(tǒng)還包括掩碼寄存器,用于存儲(chǔ)地址掩碼;
[0038]所述第二匹配單元用于將所述接收模塊接收的訪存地址與所述掩碼寄存器中的地址掩碼進(jìn)行相與運(yùn)算,將相與運(yùn)算后所得結(jié)果依次與所述N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配。
[0039]本發(fā)明實(shí)施例提供的數(shù)據(jù)預(yù)取的方法對(duì)本地終端的第一終端和與第一終端相連的遠(yuǎn)端終端各自設(shè)置相適應(yīng)的預(yù)取深度值,當(dāng)接收到處理器發(fā)送的訪存地址時(shí),對(duì)該訪存地址所屬的終端進(jìn)行判斷,從而得到相應(yīng)的預(yù)取深度值,本發(fā)明可在不增設(shè)額外預(yù)取系統(tǒng)情況下提高高速緩存命中率,降低訪問(wèn)遠(yuǎn)端內(nèi)存的時(shí)延,降低了成本,同時(shí)提供軟件編程接口,可在運(yùn)行時(shí)動(dòng)態(tài)修改各終端對(duì)應(yīng)的預(yù)取深度值。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0040]圖1是本發(fā)明實(shí)施例提供的數(shù)據(jù)預(yù)取方法的基本流程示意圖;
[0041]圖2是本發(fā)明實(shí)施例提供的數(shù)據(jù)預(yù)取系統(tǒng)的基本邏輯結(jié)構(gòu)示意圖;
[0042]圖3是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)預(yù)取系統(tǒng)的基本邏輯結(jié)構(gòu)示意圖;
[0043]圖4是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)預(yù)取系統(tǒng)的基本邏輯結(jié)構(gòu)示意圖;
[0044]圖5是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)預(yù)取系統(tǒng)的基本邏輯結(jié)構(gòu)示意圖;
[0045]圖6是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)預(yù)取系統(tǒng)的基本邏輯結(jié)構(gòu)示意圖?!揪唧w實(shí)施方式】
[0046]本發(fā)明實(shí)施例提供一種數(shù)據(jù)預(yù)取的方法和系統(tǒng),以期在互聯(lián)的集群系統(tǒng)中,區(qū)分對(duì)待處理器訪問(wèn)本地內(nèi)存和遠(yuǎn)端內(nèi)存的情況,改進(jìn)針對(duì)遠(yuǎn)端內(nèi)存的預(yù)取方式,減少訪問(wèn)遠(yuǎn)端內(nèi)存的時(shí)延,提高系統(tǒng)整體性能。
[0047]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。[0048]本發(fā)明實(shí)施例提供一種數(shù)據(jù)預(yù)取的方法,包括:
[0049]接收第一終端的處理器發(fā)送的訪存地址;
[0050]根據(jù)預(yù)設(shè)的第一關(guān)系表獲取所述訪存地址所屬的終端及對(duì)應(yīng)的預(yù)取深度值,其中,所述第一關(guān)系表包括所述第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端的內(nèi)存地址及其對(duì)應(yīng)的預(yù)取深度值;
[0051]對(duì)所述第一終端以獲取的預(yù)取深度值進(jìn)行數(shù)據(jù)預(yù)取。
[0052]需要說(shuō)明的是,上述訪存地址為本地終端的第一終端發(fā)送的虛擬地址經(jīng)過(guò)旁路轉(zhuǎn)換緩沖TLB轉(zhuǎn)換后得到物理地址。
[0053]由于訪問(wèn)遠(yuǎn)端內(nèi)存的時(shí)延要比訪問(wèn)本地內(nèi)存的高很多,因此本發(fā)明實(shí)施例針對(duì)本地內(nèi)存和遠(yuǎn)端內(nèi)存,以及不同的遠(yuǎn)端內(nèi)存的時(shí)延特點(diǎn)設(shè)置不同的預(yù)取深度值。
[0054]由上可見(jiàn),當(dāng)接收到處理器發(fā)送的訪存地址后,對(duì)該訪存地址進(jìn)行區(qū)分,判斷該訪存地址是屬于本地內(nèi)存還是遠(yuǎn)端內(nèi)存,以及具體屬于哪一個(gè)遠(yuǎn)端內(nèi)存,從而根據(jù)第一關(guān)系表得到該訪存地址對(duì)應(yīng)的預(yù)取深度值,因此本發(fā)明可在不增設(shè)額外預(yù)取系統(tǒng)情況下提高高速緩存命中率,降低訪問(wèn)遠(yuǎn)端內(nèi)存的時(shí)延,降低成本。
[0055]本發(fā)明實(shí)施例還提供一種數(shù)據(jù)預(yù)取的方法,參見(jiàn)圖1所示,包括:
[0056]S101、接收第一終端的處理器發(fā)送的訪存地址;
[0057]其中,所述訪存地址為處理器CPU發(fā)送的訪問(wèn)內(nèi)存的地址,經(jīng)過(guò)TLB(,旁路轉(zhuǎn)換緩沖)轉(zhuǎn)換后生成的物理地址。
[0058]S102、根據(jù)預(yù)設(shè)的第一關(guān)系表獲取所述訪存地址所屬的終端及該終端對(duì)應(yīng)的預(yù)取深度值,其中,所述第一關(guān)系表包括所述第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端的內(nèi)存地址、及與第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值;
[0059]S103、利用獲取的預(yù)取深度值對(duì)所述第一終端進(jìn)行數(shù)據(jù)預(yù)?。?br>
[0060]在本發(fā)明實(shí)施例中,預(yù)先對(duì)本地終端的第一終端和與第一終端相連的遠(yuǎn)端終端分別設(shè)置不同的預(yù)取深度值,具體的可以根據(jù)不同終端的時(shí)延特點(diǎn)進(jìn)行設(shè)置。
[0061]將本地終端(即第一終端)對(duì)應(yīng)的預(yù)取深度值、不同的遠(yuǎn)端終端(即與第一終端相連的終端)的內(nèi)存地址及對(duì)應(yīng)的不同的預(yù)取深度值存儲(chǔ)在第一關(guān)系表中,當(dāng)接收到訪存地址后,首先將訪存地址與第一關(guān)系表中的內(nèi)存地址進(jìn)行匹配,當(dāng)有終端的內(nèi)存地址與該訪存地址相同時(shí),則獲取該終端對(duì)應(yīng)的預(yù)取深度值,當(dāng)?shù)谝魂P(guān)系表中沒(méi)有終端的內(nèi)存地址與該訪存地址相同時(shí),則獲取第一終端對(duì)應(yīng)的預(yù)取深度值;
[0062]進(jìn)一步的,可以對(duì)本地終端和遠(yuǎn)端終端在全局范圍內(nèi)進(jìn)行編址,然后設(shè)置多個(gè)寄存器,分別用于存儲(chǔ)某個(gè)遠(yuǎn)端終端的內(nèi)存地址、地址掩碼、預(yù)取深度值,有多組遠(yuǎn)端內(nèi)存的情況就需要多組寄存器來(lái)區(qū)分。根據(jù)前兩個(gè)寄存器可以確定訪存地址所述的終端,根據(jù)第三個(gè)寄存器可以確定預(yù)取深度值。也就是說(shuō),可以將第一關(guān)系表中的第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值分別存儲(chǔ)于預(yù)取深度寄存器中,與所述第一終端相連的終端的內(nèi)存地址分別存儲(chǔ)于地址寄存器中,預(yù)設(shè)的地址掩碼可以存儲(chǔ)于掩碼寄存器中。
[0063]或者,還可以采用在TLB entry中設(shè)置標(biāo)志位來(lái)確定訪存地址所述的終端。具體的說(shuō),從處理器CPU發(fā)出的虛擬地址經(jīng)過(guò)TLB時(shí),根據(jù)TLB entry中預(yù)先設(shè)置的標(biāo)志位可以區(qū)分訪存地址屬于哪一個(gè)終端,進(jìn)而可以通過(guò)設(shè)置一個(gè)寄存器用于表示預(yù)取深度值。[0064]將接收到的訪存地址依次與N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配,其中,N為正整數(shù);若匹配成功,則從N個(gè)預(yù)取深度寄存器中選擇與匹配成功的地址寄存器相對(duì)應(yīng)的預(yù)取深度寄存器并獲取預(yù)取深度值,對(duì)第一終端以獲取的預(yù)取深度值進(jìn)行數(shù)據(jù)預(yù)?。蝗羝ヅ洳怀晒?,則從第一終端對(duì)應(yīng)的預(yù)取深度寄存器中獲取預(yù)取深度值,對(duì)所述第一終端以獲取的預(yù)取深度值進(jìn)行數(shù)據(jù)預(yù)取。
[0065]上述將接收到的訪存地址依次與N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配可以進(jìn)一步包括:將接收到的訪存地址與掩碼寄存器中存儲(chǔ)的地址掩碼進(jìn)行相與運(yùn)算,將相與運(yùn)算后得到的結(jié)果依次與N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配。
[0066]假設(shè)以終端A為本地終端,為方便說(shuō)明,本發(fā)明實(shí)施例以32位操作系統(tǒng)為例。終端A的本地內(nèi)存為1G,同時(shí)終端A使用了終端B的IG內(nèi)存,終端C的IG內(nèi)存、終端D的IG內(nèi)存。對(duì)于用寄存器方式區(qū)分遠(yuǎn)端終端和本地終端的方法,3個(gè)寄存器就可以區(qū)分遠(yuǎn)端終端和本地終端。在本發(fā)明實(shí)施例中設(shè)定10個(gè)寄存器用于區(qū)分遠(yuǎn)端終端和本地終端,本數(shù)據(jù)預(yù)期方法中使用了 3個(gè)遠(yuǎn)端終端,即終端B、終端C和終端D,其寄存器使用情況如表1所示:
[0067]表1寄存器使用表格
[0068]
【權(quán)利要求】
1.一種數(shù)據(jù)預(yù)取的方法,其特征在于,包括: 接收第一終端的處理器發(fā)送的訪存地址; 根據(jù)預(yù)設(shè)的第一關(guān)系表獲取所述訪存地址所屬的終端及所述終端對(duì)應(yīng)的預(yù)取深度值,其中,所述第一關(guān)系表包括所述第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端的內(nèi)存地址、及與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值; 利用獲取的預(yù)取深度值對(duì)所述第一終端進(jìn)行數(shù)據(jù)預(yù)取。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)預(yù)取的方法,其特征在于,所述根據(jù)預(yù)設(shè)的第一關(guān)系表獲取所述訪存地址所屬的終端及所述終端對(duì)應(yīng)的預(yù)取深度值包括: 將接收到的訪存地址與所述第一關(guān)系表中的與所述第一終端相連的終端的內(nèi)存地址進(jìn)行匹配,若匹配成功,則根據(jù)第一關(guān)系表獲取與所述第一終端相連的終端的內(nèi)存地址所對(duì)應(yīng)的預(yù)取深度值;若匹配不成功,則根據(jù)所述第一關(guān)系表獲取所述第一終端對(duì)應(yīng)的預(yù)取深度值。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)預(yù)取的方法,其特征在于,所述第一關(guān)系表中的第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值分別存儲(chǔ)于M個(gè)預(yù)取深度寄存器中,與所述第一終端相連的終端的內(nèi)存地址分別存儲(chǔ)于N個(gè)地址寄存器中,其中,M和N都為正整數(shù)。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)預(yù)取的方法,其特征在于,所述根據(jù)第一關(guān)系表獲取所述訪存地址所屬的終端及所述終端對(duì)應(yīng)的預(yù)取深度值包括: 將接收到的訪存地址依次與所述N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配; 若匹配成功,則從所述M個(gè)預(yù)取深度寄存器中,選擇與匹配成功的地址寄存器相對(duì)應(yīng)的預(yù)取深度寄存器,并獲取預(yù)取深度值; 若匹配不成功,則從第一終端對(duì)應(yīng)的預(yù)取深度寄存器中獲取預(yù)取深度值。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)預(yù)取的方法,其特征在于,所述訪存地址為所述處理器發(fā)送的虛擬地址經(jīng)旁路轉(zhuǎn)換緩沖TLB轉(zhuǎn)換后得到的物理地址。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)預(yù)取的方法,其特征在于,還包括: 定期對(duì)所述第一關(guān)系表中的所述第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值進(jìn)行更新。
7.根據(jù)權(quán)利要求4所述的數(shù)據(jù)預(yù)取的方法,其特征在于,所述將接收到的訪存地址依次與所述N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配具體包括: 將所述訪存地址與預(yù)設(shè)的地址掩碼進(jìn)行相與運(yùn)算; 將相與運(yùn)算后所得結(jié)果依次與所述N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配。
8.一種數(shù)據(jù)預(yù)取的系統(tǒng),其特征在于,包括: 接收模塊,用于接收第一終端的處理器發(fā)送的訪存地址; 獲取模塊,用于根據(jù)預(yù)設(shè)的第一關(guān)系表獲取所述訪存地址所屬的終端及所述終端對(duì)應(yīng)的預(yù)取深度值,其中,所述第一關(guān)系表包括第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端的內(nèi)存地址、及與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值; 預(yù)取模塊,用于利用所述獲取模塊獲取的預(yù)取深度值對(duì)所述第一終端進(jìn)行數(shù)據(jù)預(yù)取。
9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)預(yù)取的系統(tǒng),其特征在于,所述獲取模塊包括: 第一匹配單元,用于將所述接收模塊接收到的訪存地址與所述第一關(guān)系表中的與所述第一終端相連的終端的內(nèi)存地址進(jìn)行匹配; 第一調(diào)取單元,用于當(dāng)所述第一匹配單元匹配成功時(shí),根據(jù)所述第一關(guān)系表獲取與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值;當(dāng)所述第一匹配單元匹配不成功時(shí),根據(jù)所述第一關(guān)系表獲取所述第一終端對(duì)應(yīng)的預(yù)取深度值。
10.根據(jù)權(quán)利要求8所述的數(shù)據(jù)預(yù)取的系統(tǒng),其特征在于,所述獲取模塊中包括N個(gè)地址寄存器、M個(gè)預(yù)取深度寄存器、第二匹配單元和第二調(diào)取單元,其中,N和M為正整數(shù); 所述N個(gè)地址寄存器分別用于存儲(chǔ)與所述第一終端相連的終端的內(nèi)存地址; 所述M個(gè)預(yù)取深度寄存器分別用于存儲(chǔ)所述第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值; 所述第二匹配單元用于將所述接收模塊所接收的訪存地址依次與所述N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配; 所述第二調(diào)取單元用于當(dāng)所述第二匹配單元匹配成功時(shí),從所述M個(gè)預(yù)取深度寄存器中選擇與匹配成功的地址寄存器相對(duì)應(yīng)的預(yù)取深度寄存器并獲取預(yù)取深度值;當(dāng)所述第二匹配單元匹配不成功時(shí),從所述第一終端對(duì)應(yīng)的預(yù)取深度寄存器中調(diào)取第一終端對(duì)應(yīng)的預(yù)取深度值。
11.根據(jù)權(quán)利要求8所述的數(shù)據(jù)預(yù)取的系統(tǒng),其特征在于,還包括轉(zhuǎn)換模塊,所述轉(zhuǎn)換模塊連接所述接收模塊,用于將所述第一終端的處理器發(fā)送的虛擬的訪存地址轉(zhuǎn)換為物理的訪存地址后發(fā)送給所述接收模塊。
12.根據(jù)權(quán)利要求8所述的數(shù)據(jù)預(yù)取的系統(tǒng),其特征在于,還包括更新模塊,用于定期對(duì)所述第一關(guān)系表中的所述第一終端對(duì)應(yīng)的預(yù)取深度值、與所述第一終端相連的終端對(duì)應(yīng)的預(yù)取深度值進(jìn)行更新。
13.根據(jù)權(quán)利要求10所述的數(shù)據(jù)預(yù)取的系統(tǒng),其特征在于,還包括掩碼寄存器,用于存儲(chǔ)地址掩碼; 所述第二匹配單元用于將所 述接收模塊接收的訪存地址與所述掩碼寄存器中的地址掩碼進(jìn)行相與運(yùn)算,將相與運(yùn)算后所得結(jié)果依次與所述N個(gè)地址寄存器中存儲(chǔ)的內(nèi)存地址進(jìn)行匹配。
【文檔編號(hào)】G06F12/08GK103902469SQ201210571705
【公開(kāi)日】2014年7月2日 申請(qǐng)日期:2012年12月25日 優(yōu)先權(quán)日:2012年12月25日
【發(fā)明者】張乾龍, 江濤, 侯銳, 張立新 申請(qǐng)人:華為技術(shù)有限公司, 中國(guó)科學(xué)院計(jì)算技術(shù)研究所