本技術(shù)屬于電子,具體涉及一種內(nèi)存管理系統(tǒng)、處理器、電子設(shè)備及頁表獲取方法。
背景技術(shù):
1、隨著對(duì)大數(shù)據(jù)應(yīng)用需求的不斷擴(kuò)展,大內(nèi)存管理是現(xiàn)代高性能計(jì)算系統(tǒng)的必備。內(nèi)存管理中會(huì)涉及頁表管理,例如,使用頁表來實(shí)現(xiàn)虛擬內(nèi)存管理。而加速頁表項(xiàng)的讀取可以減少虛擬地址到物理地址轉(zhuǎn)換的延遲,從而提高數(shù)據(jù)訪問速度,這對(duì)于需要快速處理大量數(shù)據(jù)的應(yīng)用至關(guān)重要。
2、當(dāng)前的mmu(memory?management?unit,內(nèi)存管理單元)中提升虛擬地址到物理地址轉(zhuǎn)換效率的方案主要有兩種:
3、第一種,通過增加mmu中的tlb(translation?lookaside?buffer轉(zhuǎn)換檢測(cè)緩沖區(qū),也稱為頁表緩沖)容量,以存儲(chǔ)更多的頁表項(xiàng),從而提高tlb的命中率和地址轉(zhuǎn)換效率。但增加tlb容量會(huì)導(dǎo)致芯片面積增大,功耗上升,最終增加成本。此外,更大的tlb可能需要更多的時(shí)間來搜索,這可能會(huì)抵消部分容量增加帶來的優(yōu)勢(shì)。
4、第二種,通過頁表訪問統(tǒng)計(jì)規(guī)律預(yù)取相鄰的頁表項(xiàng),如果預(yù)取成功,可以顯著提高tlb的命中率。但是預(yù)取可能會(huì)占用有限的tlb空間,導(dǎo)致其他有用的頁表項(xiàng)被替換出去,從而降低tlb的整體效率。此外,如果預(yù)取的頁表項(xiàng)沒有被及時(shí)訪問,那么這種預(yù)取就是無效的,可能會(huì)降低tlb的有效利用率。
技術(shù)實(shí)現(xiàn)思路
1、鑒于此,本技術(shù)的目的在于提供一種內(nèi)存管理系統(tǒng)、處理器、電子設(shè)備及頁表獲取方法,以加快頁表訪問的速度。
2、本技術(shù)的實(shí)施例是這樣實(shí)現(xiàn)的:
3、第一方面,本技術(shù)實(shí)施例提供了一種內(nèi)存管理系統(tǒng),包括:mmu、頁表請(qǐng)求加速器、內(nèi)存控制器,所述頁表請(qǐng)求加速器分別與所述mmu、所述內(nèi)存控制器連接;mmu,用于發(fā)送頁表讀取請(qǐng)求;所述頁表請(qǐng)求加速器,用于響應(yīng)所述頁表讀取請(qǐng)求向所述內(nèi)存控制器發(fā)送獲取當(dāng)前頁表的頁表訪問請(qǐng)求,解析所述內(nèi)存控制器返回的當(dāng)前頁表,若當(dāng)前頁表不是所需的頁表數(shù)據(jù),發(fā)送獲取下一級(jí)頁表的頁表訪問請(qǐng)求,直至遍歷到所需的頁表數(shù)據(jù),并向所述mmu返回所需的頁表數(shù)據(jù);所述內(nèi)存控制器,用于響應(yīng)所述頁表訪問請(qǐng)求在內(nèi)存中讀取頁表,并將讀取的頁表返回給所述頁表請(qǐng)求加速器;其中,所述內(nèi)存用于存儲(chǔ)頁表。
4、在上述實(shí)施例中,通過在內(nèi)存管理單元與內(nèi)存控制器之間增設(shè)頁表請(qǐng)求加速器,使得內(nèi)存控制器僅向頁表請(qǐng)求加速器返回頁表,由頁表請(qǐng)求加速器進(jìn)行頁表解析、翻譯、遍歷等操作,無需每次都向mmu返回頁表,無需由mmu進(jìn)行頁表解析、翻譯、遍歷等操作,本技術(shù)中僅向mmu返回所需的頁表數(shù)據(jù),縮短了內(nèi)存儲(chǔ)器與mmu的交互路徑,通過縮短頁表訪問請(qǐng)求路徑,節(jié)約訪問請(qǐng)求的帶寬資源,從而可以提高頁表訪問的效率。
5、結(jié)合第一方面實(shí)施例的一種可能的實(shí)施方式,所述頁表請(qǐng)求加速器,包括:請(qǐng)求收發(fā)單元、頁表翻譯單元、頁表訪問單元;請(qǐng)求收發(fā)單元,用于接收所述mmu發(fā)送的頁表讀取請(qǐng)求,以及向所述mmu返回所需的頁表數(shù)據(jù);所述頁表翻譯單元用于根據(jù)所述頁表讀取請(qǐng)求獲取當(dāng)前頁表的物理訪問地址,并向所述頁表訪問單元發(fā)送所述物理訪問地址;以及解析所述內(nèi)存控制器返回的當(dāng)前頁表,若當(dāng)前頁表不是所需的頁表數(shù)據(jù),則繼續(xù)獲取下一級(jí)頁表的物理訪問地址,直至遍歷到所需的頁表數(shù)據(jù);所述頁表訪問單元,用于根據(jù)所述頁表翻譯單元發(fā)送的物理訪問地址,向所述內(nèi)存控制器發(fā)送頁表訪問請(qǐng)求,以及將所述內(nèi)存控制器讀取的頁表返回給所述頁表翻譯單元。
6、在上述實(shí)施例中,采用包含請(qǐng)求收發(fā)單元、頁表翻譯單元、頁表訪問單元的頁表請(qǐng)求加速器,即可實(shí)現(xiàn)與內(nèi)存控制器和mmu交互,以及進(jìn)行頁表解析、翻譯、遍歷等操作,將復(fù)雜的功能分解成多個(gè)功能單元來實(shí)現(xiàn),從而在實(shí)現(xiàn)發(fā)明目的的同時(shí),可以簡(jiǎn)化設(shè)計(jì)難度,使得每個(gè)模塊可以獨(dú)立開發(fā)和維護(hù)。
7、結(jié)合第一方面實(shí)施例的一種可能的實(shí)施方式,所述頁表訪問單元包含fifo隊(duì)列;所述頁表翻譯單元,還用于將獲取到的物理訪問地址存入所述fifo隊(duì)列;相應(yīng)地,所述頁表訪問單元,用于從所述fifo隊(duì)列中獲取所述物理訪問地址。
8、在上述實(shí)施例中,通過引入fifo隊(duì)列,可以確保請(qǐng)求是按照它們被提交的順序執(zhí)行,可以提高頁表獲取效率。
9、結(jié)合第一方面實(shí)施例的一種可能的實(shí)施方式,所述頁表請(qǐng)求加速器還包括計(jì)數(shù)器,所述計(jì)數(shù)器用于記錄所述頁表翻譯單元的頁表翻譯次數(shù);所述頁表翻譯單元,還用于根據(jù)所述計(jì)數(shù)器記錄的頁表翻譯次數(shù),判斷所述內(nèi)存控制器返回的頁表是否為所需的頁表數(shù)據(jù)。
10、在上述實(shí)施例中,通過引入計(jì)數(shù)器來記錄頁表翻譯單元的頁表翻譯次數(shù),使得可以根據(jù)計(jì)數(shù)器記錄的頁表翻譯次數(shù),即可快速準(zhǔn)確判斷內(nèi)存控制器返回的頁表是否為所需的頁表數(shù)據(jù),提高了判斷效率。
11、結(jié)合第一方面實(shí)施例的一種可能的實(shí)施方式,所述計(jì)數(shù)器的初始數(shù)值為n,n為多級(jí)頁表的級(jí)數(shù);所述頁表翻譯單元,還用于每次在向所述頁表訪問單元發(fā)送物理訪問地址后,更新所述計(jì)數(shù)器的計(jì)數(shù)值;以及每次在接收到所述內(nèi)存控制器返回的頁表后,獲取所述計(jì)數(shù)器最新的計(jì)數(shù)值,判斷所述最新的計(jì)數(shù)值是否為預(yù)設(shè)閾值來確定所述內(nèi)存控制器返回的頁表是否為所需的頁表數(shù)據(jù);其中,若所述最新的計(jì)數(shù)值為預(yù)設(shè)閾值,確定所述內(nèi)存控制器返回的頁表為所需的頁表數(shù)據(jù)。
12、在上述實(shí)施例中,頁表翻譯單元每次在向頁表訪問單元發(fā)送物理訪問地址后,更新計(jì)數(shù)器的計(jì)數(shù)值,以及每次在接收到內(nèi)存控制器返回的頁表后,獲取計(jì)數(shù)器最新的計(jì)數(shù)值,當(dāng)計(jì)數(shù)器的最新的計(jì)數(shù)值為預(yù)設(shè)閾值時(shí),確定內(nèi)存控制器返回的頁表為所需的頁表數(shù)據(jù),采用這樣的方式可以準(zhǔn)確確定內(nèi)存控制器返回的頁表是否為所需的頁表數(shù)據(jù)。
13、結(jié)合第一方面實(shí)施例的一種可能的實(shí)施方式,所述mmu包括tlb頁表,所述mmu還用于在接收到地址轉(zhuǎn)換請(qǐng)求時(shí),在所述tlb頁表中查找是否有命中所述地址轉(zhuǎn)換請(qǐng)求的頁表數(shù)據(jù);若沒有命中,向所述頁表請(qǐng)求加速器發(fā)送所述頁表讀取請(qǐng)求。
14、在上述實(shí)施例中,mmu在接收到地址轉(zhuǎn)換請(qǐng)求時(shí),優(yōu)先在tlb頁表中查找是否有命中地址轉(zhuǎn)換請(qǐng)求的頁表數(shù)據(jù),只有tlb未命中時(shí),才發(fā)送頁表讀取請(qǐng)求,這樣可以提高頁表獲取效率。
15、結(jié)合第一方面實(shí)施例的一種可能的實(shí)施方式,所述頁表請(qǐng)求加速器與所述mmu之間的傳輸路徑的距離,大于所述頁表請(qǐng)求加速器與所述內(nèi)存控制器之間的傳輸路徑的距離。
16、在上述實(shí)施例中,采用上述設(shè)置,可以進(jìn)一步提高頁表訪問的效率,例如,可以將頁表請(qǐng)求加速器靠近內(nèi)存控制器設(shè)置,以盡可能的縮短二者之間的請(qǐng)求路徑。
17、第二方面,本技術(shù)實(shí)施例還提供了一種處理器,包括:如上述第一方面實(shí)施例和/或結(jié)合第一方面實(shí)施例的任意一種可能的實(shí)施方式提供的內(nèi)存管理系統(tǒng)。
18、第三方面,本技術(shù)實(shí)施例還提供了一種電子設(shè)備,包括:內(nèi)存和如上述第二方面實(shí)施例提供的處理器,所述處理器與所述內(nèi)存連接。
19、第四方面,本技術(shù)實(shí)施例還提供了一種頁表獲取方法,應(yīng)用于頁表請(qǐng)求加速器,所述方法包括:獲取mmu發(fā)送的頁表讀取請(qǐng)求;響應(yīng)所述頁表讀取請(qǐng)求向內(nèi)存控制器發(fā)送獲取當(dāng)前頁表的頁表訪問請(qǐng)求;解析所述內(nèi)存控制器響應(yīng)所述頁表訪問請(qǐng)求在內(nèi)存中讀取并返回的當(dāng)前頁表;若當(dāng)前頁表不是所需的頁表數(shù)據(jù),發(fā)送獲取下一級(jí)頁表的頁表訪問請(qǐng)求,直至遍歷到所需的頁表數(shù)據(jù),并向所述mmu返回所需的頁表數(shù)據(jù)。
20、結(jié)合第四方面實(shí)施例的一種可能的實(shí)施方式,所述頁表請(qǐng)求加速器包括用于記錄頁表翻譯次數(shù)的計(jì)數(shù)器;所述方法還包括:根據(jù)計(jì)數(shù)器的計(jì)數(shù)值判斷所述內(nèi)存控制器返回的頁表是否為所需的頁表數(shù)據(jù),其中,所述計(jì)數(shù)值表征頁表翻譯次數(shù)。
21、結(jié)合第四方面實(shí)施例的一種可能的實(shí)施方式,所述方法還包括:每次向所述內(nèi)存控制器發(fā)送頁表訪問請(qǐng)求后,更新所述計(jì)數(shù)器的計(jì)數(shù)值;根據(jù)計(jì)數(shù)器的計(jì)數(shù)值判斷所述內(nèi)存控制器返回的頁表是否為所需的頁表數(shù)據(jù),包括:每次在接收到所述內(nèi)存控制器返回的頁表后,獲取所述計(jì)數(shù)器最新的計(jì)數(shù)值,判斷所述最新的計(jì)數(shù)值是否為預(yù)設(shè)閾值來確定所述內(nèi)存控制器返回的頁表是否為所需的頁表數(shù)據(jù);其中,若所述最新的計(jì)數(shù)值為預(yù)設(shè)閾值,確定所述內(nèi)存控制器返回的頁表為所需的頁表數(shù)據(jù)。
22、結(jié)合第四方面實(shí)施例的一種可能的實(shí)施方式,響應(yīng)所述頁表讀取請(qǐng)求向內(nèi)存控制器發(fā)送獲取當(dāng)前頁表的頁表訪問請(qǐng)求,包括:根據(jù)所述頁表讀取請(qǐng)求獲取當(dāng)前頁表的物理訪問地址;基于所述物理訪問地址向所述內(nèi)存控制器發(fā)送獲取當(dāng)前頁表的頁表訪問請(qǐng)求。
23、結(jié)合第四方面實(shí)施例的一種可能的實(shí)施方式,發(fā)送獲取下一級(jí)頁表的頁表訪問請(qǐng)求,包括:根據(jù)所述頁表讀取請(qǐng)求獲取下一級(jí)頁表的偏移地址,根據(jù)當(dāng)前頁表獲取下一級(jí)頁表的基地址;根據(jù)下一級(jí)頁表的偏移地址、下一級(jí)頁表的基地址,得到下一級(jí)頁表的物理訪問地址;基于下一級(jí)頁表的物理訪問地址,向所述內(nèi)存控制器發(fā)送獲取下一級(jí)頁表的頁表訪問請(qǐng)求。
24、本技術(shù)的其他特征和優(yōu)點(diǎn)將在隨后的說明書闡述。本技術(shù)的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。