本技術(shù)涉及電數(shù)字?jǐn)?shù)據(jù)處理,尤其涉及轉(zhuǎn)譯后備緩沖器查詢加速系統(tǒng)、方法、設(shè)備、介質(zhì)及產(chǎn)品。
背景技術(shù):
1、傳統(tǒng)的iommu(i/o?memory?management?unit,輸入/輸出內(nèi)存管理單元)&mmu(memory?management?unit,內(nèi)存管理單元)分別為設(shè)備和系統(tǒng)提供地址mapping(映射)、remapping(重映射)等與地址隔離相關(guān)的轉(zhuǎn)換功能,同時(shí)提供讀寫權(quán)限、內(nèi)存屬性和緩存屬性等管理功能。這類內(nèi)存管理單元在soc(system?on?chip,片上系統(tǒng))系統(tǒng)中,將主端(可以是cpu(central?processing?unit,中央處理器)核心或者設(shè)備)發(fā)出的虛擬地址轉(zhuǎn)換成主存的物理地址。在mmu/iommu內(nèi)部有tlb(translation?lookaside?buffer,轉(zhuǎn)譯后備緩沖器)用于緩存地址映射翻譯。并且在多數(shù)處理器架構(gòu)中,轉(zhuǎn)譯后備緩沖器通常是多級(jí)的。多級(jí)轉(zhuǎn)譯后備緩沖器結(jié)構(gòu)的設(shè)計(jì),減少了轉(zhuǎn)譯后備緩沖器未命中的概率,適應(yīng)了不同的訪問模式,對(duì)于系統(tǒng)性能的提升來說,這是必要的。但是多級(jí)轉(zhuǎn)譯后備緩沖器的設(shè)計(jì)帶來了一個(gè)不可忽視的問題,即所有來自主端的翻譯請(qǐng)求都會(huì)先去查詢多級(jí)轉(zhuǎn)譯后備緩沖器看是否有對(duì)應(yīng)的地址映射緩存,當(dāng)存在多級(jí)轉(zhuǎn)譯后備緩沖器時(shí),隨著級(jí)數(shù)的增加,查詢過程中消耗的時(shí)間會(huì)逐步增加。并且在一些特殊場(chǎng)景下(如此時(shí)處于系統(tǒng)啟動(dòng)初期或者大面積頁(yè)表更新等多種情況下),請(qǐng)求在查詢多級(jí)轉(zhuǎn)譯后備緩沖器的過程中,會(huì)出現(xiàn)大量的緩存未命中,這部分時(shí)間開銷將變得巨大且無(wú)意義。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)的主要目的在于提供一種轉(zhuǎn)譯后備緩沖器查詢加速系統(tǒng)、方法、設(shè)備、介質(zhì)及產(chǎn)品,旨在解決轉(zhuǎn)譯后備緩沖器查詢效率低的技術(shù)問題。
2、為實(shí)現(xiàn)上述目的,本技術(shù)提出一種轉(zhuǎn)譯后備緩沖器查詢加速系統(tǒng),轉(zhuǎn)譯后備緩沖器查詢加速系統(tǒng)包括相互通信連接的多級(jí)轉(zhuǎn)譯后備緩沖器和轉(zhuǎn)譯后備緩沖過濾器,且多級(jí)轉(zhuǎn)譯后備緩沖器和轉(zhuǎn)譯后備緩沖過濾器置于轉(zhuǎn)譯緩沖單元中,與翻譯控制單元連接,轉(zhuǎn)譯后備緩沖過濾器包括相互通信連接的哈希函數(shù)模塊和位數(shù)組模塊,
3、多級(jí)轉(zhuǎn)譯后備緩沖器,用于接收外部設(shè)備發(fā)送的地址翻譯請(qǐng)求,并查詢地址翻譯請(qǐng)求對(duì)應(yīng)的目標(biāo)地址映射,
4、轉(zhuǎn)譯后備緩沖過濾器,用于根據(jù)地址翻譯請(qǐng)求在哈希函數(shù)模塊中生成至少一個(gè)哈希摘要值,將所有哈希摘要值與位數(shù)組模塊中存儲(chǔ)的歷史哈希摘要值進(jìn)行對(duì)比,得到對(duì)比結(jié)果,根據(jù)對(duì)比結(jié)果,判斷目標(biāo)地址映射是否存在于多級(jí)轉(zhuǎn)譯后備緩沖器中,若目標(biāo)地址映射不存在于多級(jí)轉(zhuǎn)譯后備緩沖器中,則中斷多級(jí)轉(zhuǎn)譯后備緩沖器查詢地址翻譯請(qǐng)求對(duì)應(yīng)的目標(biāo)地址映射的查詢操作,并由預(yù)設(shè)的翻譯控制單元通過訪存獲取目標(biāo)地址映射,向外部設(shè)備發(fā)送目標(biāo)地址映射。
5、在一實(shí)施例中,多級(jí)轉(zhuǎn)譯后備緩沖器包括第一級(jí)轉(zhuǎn)譯后備緩沖器和第二級(jí)轉(zhuǎn)譯后備緩沖器,
6、第一級(jí)轉(zhuǎn)譯后備緩沖器,用于接收外部設(shè)備發(fā)送的地址翻譯請(qǐng)求,查詢地址翻譯請(qǐng)求對(duì)應(yīng)的目標(biāo)地址映射,若不存在目標(biāo)地址映射,則向第二級(jí)轉(zhuǎn)譯后備緩沖器發(fā)送地址翻譯請(qǐng)求,
7、第二級(jí)轉(zhuǎn)譯后備緩沖器,用于接收第一級(jí)轉(zhuǎn)譯后備緩沖器發(fā)送的地址翻譯請(qǐng)求,查詢目標(biāo)地址映射,若不存在目標(biāo)地址映射,則由預(yù)設(shè)的翻譯控制單元通過訪存獲取目標(biāo)地址映射。
8、在一實(shí)施例中,轉(zhuǎn)譯后備緩沖器查詢加速系統(tǒng)包括相互通信連接的多級(jí)轉(zhuǎn)譯后備緩沖器和轉(zhuǎn)譯后備緩沖過濾器,且多級(jí)轉(zhuǎn)譯后備緩沖器和轉(zhuǎn)譯后備緩沖過濾器置于轉(zhuǎn)譯緩沖單元中,與翻譯控制單元連接,轉(zhuǎn)譯后備緩沖過濾器包括相互通信連接的哈希函數(shù)模塊和位數(shù)組模塊,轉(zhuǎn)譯后備緩沖器查詢加速方法包括:
9、接收外部設(shè)備發(fā)送至轉(zhuǎn)譯后備緩沖過濾器和多級(jí)轉(zhuǎn)譯后備緩沖器的地址翻譯請(qǐng)求;
10、在多級(jí)轉(zhuǎn)譯后備緩沖器中查詢地址翻譯請(qǐng)求對(duì)應(yīng)的目標(biāo)地址映射;
11、根據(jù)地址翻譯請(qǐng)求在轉(zhuǎn)譯后備緩沖過濾器中,使用哈希函數(shù)模塊生成至少一個(gè)哈希摘要值,將所有哈希摘要值與位數(shù)組模塊中存儲(chǔ)的歷史哈希摘要值進(jìn)行對(duì)比,得到對(duì)比結(jié)果,根據(jù)對(duì)比結(jié)果,判斷目標(biāo)地址映射是否存在于多級(jí)轉(zhuǎn)譯后備緩沖器中,若目標(biāo)地址映射不存在于多級(jí)轉(zhuǎn)譯后備緩沖器中,則中斷多級(jí)轉(zhuǎn)譯后備緩沖器查詢地址翻譯請(qǐng)求對(duì)應(yīng)的目標(biāo)地址映射的查詢操作,并由預(yù)設(shè)的翻譯控制單元通過訪存獲取目標(biāo)地址映射,向外部設(shè)備發(fā)送目標(biāo)地址映射。
12、在一實(shí)施例中,多級(jí)轉(zhuǎn)譯后備緩沖器包括第一級(jí)轉(zhuǎn)譯后備緩沖器和第二級(jí)轉(zhuǎn)譯后備緩沖器,在多級(jí)轉(zhuǎn)譯后備緩沖器中查詢地址翻譯請(qǐng)求對(duì)應(yīng)的目標(biāo)地址映射的步驟包括:
13、在第一級(jí)轉(zhuǎn)譯后備緩沖器中接收外部設(shè)備發(fā)送的地址翻譯請(qǐng)求,并查詢地址翻譯請(qǐng)求對(duì)應(yīng)的目標(biāo)地址映射;
14、若第一級(jí)轉(zhuǎn)譯后備緩沖器中不存在目標(biāo)地址映射,則在第二級(jí)轉(zhuǎn)譯后備緩沖器查詢目標(biāo)地址映射;
15、若第二級(jí)轉(zhuǎn)譯后備緩沖器不存在目標(biāo)地址映射,則由預(yù)設(shè)的翻譯控制單元通過訪存獲取目標(biāo)地址映射。
16、在一實(shí)施例中,將所有哈希摘要值與位數(shù)組模塊中存儲(chǔ)的歷史哈希摘要值進(jìn)行對(duì)比的步驟包括:
17、將哈希摘要值與位數(shù)組中有已存放標(biāo)識(shí)的位置中的歷史哈希摘要值進(jìn)行對(duì)比;
18、若哈希摘要值與任一歷史哈希摘要值相同,則判斷為哈希摘要值存在于位數(shù)組中。
19、在一實(shí)施例中,將所有哈希摘要值與位數(shù)組模塊中存儲(chǔ)的歷史哈希摘要值進(jìn)行對(duì)比的步驟之后包括:
20、若所有哈希摘要值都與位數(shù)組模塊中存儲(chǔ)的歷史哈希摘要值匹配,則確定目標(biāo)地址映射存在于多級(jí)轉(zhuǎn)譯后備緩沖器中;
21、若存在至少一個(gè)與位數(shù)組模塊中存儲(chǔ)的歷史哈希摘要值不匹配的哈希摘要值,則確定目標(biāo)地址映射不存在于多級(jí)轉(zhuǎn)譯后備緩沖器中。
22、在一實(shí)施例中,由預(yù)設(shè)的翻譯控制單元通過訪存獲取目標(biāo)地址映射的步驟之后包括:
23、將目標(biāo)地址映射更新到第一級(jí)轉(zhuǎn)譯后備緩沖器或第二級(jí)轉(zhuǎn)譯后備緩沖器中,并將所有哈希摘要值存儲(chǔ)至位數(shù)組中;
24、在位數(shù)組中所有哈希摘要值的存儲(chǔ)位置上標(biāo)記已存放標(biāo)識(shí)。
25、此外,為實(shí)現(xiàn)上述目的,本技術(shù)還提出一種介質(zhì),介質(zhì)為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上文的轉(zhuǎn)譯后備緩沖器查詢加速方法的步驟。
26、此外,為實(shí)現(xiàn)上述目的,本技術(shù)還提供一種產(chǎn)品,產(chǎn)品為計(jì)算機(jī)程序產(chǎn)品,計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上文的轉(zhuǎn)譯后備緩沖器查詢加速方法的步驟。
27、本技術(shù)提出的一個(gè)或多個(gè)技術(shù)方案,至少具有以下技術(shù)效果:
28、在本技術(shù)中,通過提供一種轉(zhuǎn)譯后備緩沖器查詢加速系統(tǒng),包括相互通信連接的多級(jí)轉(zhuǎn)譯后備緩沖器和轉(zhuǎn)譯后備緩沖過濾器,且所述多級(jí)轉(zhuǎn)譯后備緩沖器和轉(zhuǎn)譯后備緩沖過濾器置于轉(zhuǎn)譯緩沖單元中,與翻譯控制單元連接,實(shí)現(xiàn)了對(duì)地址翻譯請(qǐng)求的高效處理。轉(zhuǎn)譯后備緩沖過濾器包括相互通信連接的哈希函數(shù)模塊和位數(shù)組模塊;用于根據(jù)外部設(shè)備發(fā)送的所述地址翻譯請(qǐng)求在哈希函數(shù)模塊中生成至少一個(gè)哈希摘要值,將所有所述哈希摘要值與所述位數(shù)組模塊中存儲(chǔ)的歷史哈希摘要值進(jìn)行對(duì)比,得到對(duì)比結(jié)果,根據(jù)所述對(duì)比結(jié)果,判斷所述目標(biāo)地址映射是否存在于所述多級(jí)轉(zhuǎn)譯后備緩沖器中,極大地縮短了判斷時(shí)間,若所述目標(biāo)地址映射不存在于所述多級(jí)轉(zhuǎn)譯后備緩沖器中,則中斷所述多級(jí)轉(zhuǎn)譯后備緩沖器查詢所述地址翻譯請(qǐng)求對(duì)應(yīng)的目標(biāo)地址映射的查詢操作,并由預(yù)設(shè)的翻譯控制單元通過訪存獲取所述目標(biāo)地址映射,向外部設(shè)備發(fā)送所述目標(biāo)地址映射,通過此設(shè)計(jì),系統(tǒng)能夠有效避免在轉(zhuǎn)譯后備緩沖器未命中情況下繼續(xù)無(wú)意義的查詢過程,顯著減少了因高未命中率導(dǎo)致的查詢延遲和資源浪費(fèi),提升了轉(zhuǎn)譯后備緩沖器查詢的效率。