本技術(shù)涉及數(shù)據(jù)存儲,特別涉及一種數(shù)據(jù)查詢方法,還涉及一種數(shù)據(jù)查詢裝置、電子設(shè)備、計算機可讀存儲介質(zhì)以及計算機程序產(chǎn)品。
背景技術(shù):
1、隨著cpu(central?processing?unit?/?processor,中央處理器)技術(shù)的進步,其對內(nèi)存的需求也越來越高,程序運行過程中對ddr(double?data?rate,雙倍速率)存儲器的訪問速度也越來越高。目前的cpu支持多進程,在用戶視角中,每個進程都有自己獨立的地址空間,a進程的4gb和b進程4gb是完全獨立不相關(guān)的,這些都是操作系統(tǒng)虛擬出來的地址空間,不過虛擬地址最終還是要轉(zhuǎn)化為實際內(nèi)存的物理地址。操作系統(tǒng)通過頁表查詢的機制來實現(xiàn)進程的虛擬地址到物理地址的翻譯工作,而頁表查詢是一個較為耗時的過程,如何能快速的將虛擬地址轉(zhuǎn)換為物理地址成為了一個研究熱點。
2、因此,如何有效提高地址映射關(guān)系的查詢速度,節(jié)省數(shù)據(jù)查詢時間以降低系統(tǒng)功耗是本領(lǐng)域技術(shù)人員亟待解決的問題。
技術(shù)實現(xiàn)思路
1、本技術(shù)的目的是提供一種數(shù)據(jù)查詢方法,該數(shù)據(jù)查詢方法可以有效提高地址映射關(guān)系的查詢速度,節(jié)省數(shù)據(jù)查詢時間以降低系統(tǒng)功耗;本技術(shù)的另一目的是提供一種數(shù)據(jù)查詢裝置、電子設(shè)備、計算機可讀存儲介質(zhì)以及計算機程序產(chǎn)品,均具有上述有益效果。
2、第一方面,本技術(shù)提供了一種數(shù)據(jù)查詢方法,應(yīng)用于內(nèi)存管理單元,所述內(nèi)存管理單元連接緩存和內(nèi)存,所述緩存用于存儲地址映射關(guān)系,所述內(nèi)存用于存儲地址映射頁表,所述內(nèi)存管理單元中部署有緩存查詢進程和內(nèi)存查詢進程,所述方法包括:
3、當接收到數(shù)據(jù)查詢請求時,根據(jù)所述數(shù)據(jù)查詢請求確定目標虛擬地址,并啟動所述緩存查詢進程和所述內(nèi)存查詢進程;
4、根據(jù)所述目標虛擬地址,利用所述緩存查詢進程對所述緩存中的所述地址映射關(guān)系進行查詢;
5、根據(jù)所述目標虛擬地址,利用所述內(nèi)存查詢進程對所述內(nèi)存中的所述地址映射頁表進行查詢;
6、對所述緩存查詢進程和所述內(nèi)存查詢進程的查詢過程進行監(jiān)控,獲得數(shù)據(jù)查詢結(jié)果;其中,所述數(shù)據(jù)查詢結(jié)果為所述緩存查詢進程的查詢結(jié)果或所述內(nèi)存查詢進程的查詢結(jié)果;
7、根據(jù)所述數(shù)據(jù)查詢結(jié)果獲得所述目標虛擬地址對應(yīng)的目標物理地址,以實現(xiàn)數(shù)據(jù)查詢。
8、可選地,所述對所述緩存查詢進程和所述內(nèi)存查詢進程的查詢過程進行監(jiān)控,獲得數(shù)據(jù)查詢結(jié)果,包括:
9、分別對所述緩存查詢進程和所述內(nèi)存查詢進程的查詢過程進行監(jiān)控;
10、若所述緩存查詢進程查詢成功,則將所述緩存查詢進程的查詢結(jié)果作為所述數(shù)據(jù)查詢結(jié)果;
11、若所述緩存查詢進程查詢失敗,則將所述內(nèi)存查詢進程的查詢結(jié)果作為所述數(shù)據(jù)查詢結(jié)果。
12、可選地,所述數(shù)據(jù)查詢方法還包括:
13、將所述緩存查詢進程的查詢結(jié)果作為所述數(shù)據(jù)查詢結(jié)果之后,發(fā)送中斷信號至所述內(nèi)存查詢進程,以使所述內(nèi)存查詢進程根據(jù)所述中斷信號中斷內(nèi)存查詢操作。
14、可選地,所述數(shù)據(jù)查詢方法還包括:
15、當所述緩存查詢進程查詢失敗且所述內(nèi)存查詢進程查詢失敗時,輸出告警提示;其中,所述告警提示為關(guān)于所述內(nèi)存管理單元的故障提示和/或關(guān)于所述地址映射頁表的異常提示。
16、可選地,所述根據(jù)所述目標虛擬地址,利用所述緩存查詢進程對所述緩存中的所述地址映射關(guān)系進行查詢,包括:
17、利用所述緩存查詢進程對所述緩存中的所述地址映射關(guān)系進行查詢,以確定所述地址映射關(guān)系中是否存在所述目標虛擬地址對應(yīng)的目標物理地址;所述地址映射關(guān)系為虛擬地址與物理地址之間的映射關(guān)系;
18、當所述地址映射關(guān)系中存在所述目標虛擬地址對應(yīng)的目標物理地址時,確定所述緩存查詢進程查詢成功,并獲得所述緩存查詢進程的查詢結(jié)果;
19、當所述地址映射關(guān)系中不存在所述目標虛擬地址對應(yīng)的目標物理地址時,確定所述緩存查詢進程查詢失敗。
20、可選地,所述根據(jù)所述目標虛擬地址,利用所述內(nèi)存查詢進程對所述內(nèi)存中的所述地址映射頁表進行查詢,包括:
21、確定所述內(nèi)存中所述地址映射頁表的頁表類型;其中,所述頁表類型包括一級頁表和多級頁表;
22、當所述地址映射頁表的頁表類型為所述一級頁表時,利用所述內(nèi)存查詢進程對所述一級頁表進行查詢,以確定所述一級頁表中是否存在所述目標虛擬地址對應(yīng)的目標物理地址;
23、當所述一級頁表中存在所述目標虛擬地址對應(yīng)的目標物理地址時,確定所述內(nèi)存查詢進程查詢成功,并獲得所述內(nèi)存查詢進程的查詢結(jié)果;
24、當所述一級頁表中不存在所述目標虛擬地址對應(yīng)的目標物理地址時,確定所述緩存查詢進程查詢失??;
25、當所述地址映射頁表的頁表類型為所述多級頁表時,利用所述內(nèi)存查詢進程對所述多級頁表進行逐級頁表查詢,獲得所述目標虛擬地址對應(yīng)的最后一級目標頁表,以確定所述最后一級目標頁表中是否存在所述目標虛擬地址對應(yīng)的目標物理地址;
26、當所述最后一級目標頁表中存在所述目標虛擬地址對應(yīng)的目標物理地址時,確定所述內(nèi)存查詢進程查詢成功,并獲得所述內(nèi)存查詢進程的查詢結(jié)果;
27、當所述最后一級目標頁表中不存在所述目標虛擬地址對應(yīng)的目標物理地址時,確定所述內(nèi)存查詢進程查詢失敗。
28、可選地,所述數(shù)據(jù)查詢方法還包括:
29、當所述數(shù)據(jù)查詢結(jié)果為所述內(nèi)存查詢進程的查詢結(jié)果時,將所述數(shù)據(jù)查詢結(jié)果中的目標物理地址與所述目標虛擬地址形成地址映射關(guān)系對;
30、將所述地址映射關(guān)系對添加至所述緩存中的所述地址映射關(guān)系,以實現(xiàn)所述地址映射關(guān)系的更新操作。
31、第二方面,本技術(shù)還提供了一種數(shù)據(jù)查詢裝置,應(yīng)用于內(nèi)存管理單元,所述內(nèi)存管理單元連接緩存和內(nèi)存,所述緩存用于存儲地址映射關(guān)系,所述內(nèi)存用于存儲地址映射頁表,所述內(nèi)存管理單元中部署有緩存查詢進程和內(nèi)存查詢進程,所述裝置包括:
32、確定模塊,用于當接收到數(shù)據(jù)查詢請求時,根據(jù)所述數(shù)據(jù)查詢請求確定目標虛擬地址,并啟動所述緩存查詢進程和所述內(nèi)存查詢進程;
33、第一查詢模塊,用于根據(jù)所述目標虛擬地址,利用所述緩存查詢進程對所述緩存中的所述地址映射關(guān)系進行查詢;
34、第二查詢模塊,用于根據(jù)所述目標虛擬地址,利用所述內(nèi)存查詢進程對所述內(nèi)存中的所述地址映射頁表進行查詢;
35、監(jiān)控模塊,用于對所述緩存查詢進程和所述內(nèi)存查詢進程的查詢過程進行監(jiān)控,獲得數(shù)據(jù)查詢結(jié)果;其中,所述數(shù)據(jù)查詢結(jié)果為所述緩存查詢進程的查詢結(jié)果或所述內(nèi)存查詢進程的查詢結(jié)果;
36、獲取模塊,用于根據(jù)所述數(shù)據(jù)查詢結(jié)果獲得所述目標虛擬地址對應(yīng)的目標物理地址,以實現(xiàn)數(shù)據(jù)查詢。
37、第三方面,本技術(shù)還公開了一種電子設(shè)備,包括:
38、存儲器,用于存儲計算機程序;
39、處理器,用于執(zhí)行所述計算機程序時實現(xiàn)如上所述的任一種數(shù)據(jù)查詢方法的步驟。
40、第四方面,本技術(shù)還公開了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上所述的任一種數(shù)據(jù)查詢方法的步驟。
41、第五方面,本發(fā)明還公開了一種計算機程序產(chǎn)品,包括計算機程序/指令,所述計算機程序/指令被處理器執(zhí)行時實現(xiàn)如上所述的任一種數(shù)據(jù)查詢方法的步驟。
42、本技術(shù)提供了一種數(shù)據(jù)查詢方法,應(yīng)用于內(nèi)存管理單元,所述內(nèi)存管理單元連接緩存和內(nèi)存,所述緩存用于存儲地址映射關(guān)系,所述內(nèi)存用于存儲地址映射頁表,所述內(nèi)存管理單元中部署有緩存查詢進程和內(nèi)存查詢進程,所述方法包括:當接收到數(shù)據(jù)查詢請求時,根據(jù)所述數(shù)據(jù)查詢請求確定目標虛擬地址,并啟動所述緩存查詢進程和所述內(nèi)存查詢進程;根據(jù)所述目標虛擬地址,利用所述緩存查詢進程對所述緩存中的所述地址映射關(guān)系進行查詢;根據(jù)所述目標虛擬地址,利用所述內(nèi)存查詢進程對所述內(nèi)存中的所述地址映射頁表進行查詢;對所述緩存查詢進程和所述內(nèi)存查詢進程的查詢過程進行監(jiān)控,獲得數(shù)據(jù)查詢結(jié)果;其中,所述數(shù)據(jù)查詢結(jié)果為所述緩存查詢進程的查詢結(jié)果或所述內(nèi)存查詢進程的查詢結(jié)果;根據(jù)所述數(shù)據(jù)查詢結(jié)果獲得所述目標虛擬地址對應(yīng)的目標物理地址,以實現(xiàn)數(shù)據(jù)查詢。
43、應(yīng)用本技術(shù)所提供的技術(shù)方案,將內(nèi)存管理單元同時對接存儲有地址映射關(guān)系的緩存和存儲有地址映射頁表的內(nèi)存,且其中部署有緩存查詢進程和內(nèi)存查詢進程,并在接收到數(shù)據(jù)查詢請求時同時執(zhí)行緩存查詢進程和內(nèi)存查詢進程,也就是實現(xiàn)了緩存中地址映射關(guān)系和內(nèi)存中地址映射頁表的并行進行,從而獲得最終的數(shù)據(jù)查詢結(jié)果,得到目標虛擬地址對應(yīng)的目標物理地址,實現(xiàn)地址映射關(guān)系查詢,此時,最終的數(shù)據(jù)查詢時間最短為緩存查詢時間,最長為內(nèi)存查詢時間,由此可見,本技術(shù)方案有效地提高了地址映射關(guān)系的查詢速度,節(jié)省了數(shù)據(jù)查詢時間,進一步降低了系統(tǒng)功耗。
44、在本技術(shù)的一個實施例中,在獲取到緩存查詢進程的查詢結(jié)果作為數(shù)據(jù)查詢結(jié)果之后,通過發(fā)送中斷信號的方式使得內(nèi)存查詢進程停止運行,以中斷自身內(nèi)存查詢操作,可以保證在獲取到數(shù)據(jù)查詢結(jié)果的同時,節(jié)省不必要的資源占用,進一步降低了系統(tǒng)功耗。
45、本技術(shù)所提供的數(shù)據(jù)查詢裝置、電子設(shè)備、計算機可讀存儲介質(zhì)以及計算機程序產(chǎn)品,同樣具有上述技術(shù)效果,本技術(shù)在此不再贅述。