本公開涉及地址管理,尤其涉及一種地址轉(zhuǎn)換方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、對大型異構(gòu)計算系統(tǒng)級芯片(system?on?chip,soc)來說,在虛擬化等場景中,不同計算單元的地址視角的轉(zhuǎn)換是一項重要的功能需求。通用的地址管理單元實現(xiàn)復(fù)雜,地址的描述粒度很小,需要一定的內(nèi)存用來存儲頁表,這導(dǎo)致地址轉(zhuǎn)換時需要讀取主存,降低總線流水線效率。且地址轉(zhuǎn)換也需要更復(fù)雜的邏輯來實現(xiàn),這降低了地址轉(zhuǎn)換的實時性。
2、在實際應(yīng)用時,需要更快速、更大粒度的地址轉(zhuǎn)換,因此一些現(xiàn)有技術(shù)方案提出定制地址轉(zhuǎn)換單元,在地址轉(zhuǎn)換單元中存儲用于描述物理空間的描述符,提前設(shè)置描述符所描述的物理空間,通過讀取描述符來進(jìn)行地址轉(zhuǎn)換。該方案為每個用戶都設(shè)置了可以描述所有物理空間的大量描述符,用戶數(shù)量較多時,描述符總數(shù)極大,大大增加描述符的存儲成本。
3、因此,如何降低用戶數(shù)量較多時描述符的存儲成本,以適用于多用戶的地址轉(zhuǎn)換場景,成為本領(lǐng)域亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)思路
1、有鑒于此,本公開提出了一種地址轉(zhuǎn)換方法、裝置、電子設(shè)備及存儲介質(zhì)。該方法能夠降低用戶數(shù)量較多時描述符的存儲成本,與多用戶的地址轉(zhuǎn)換場景更為適應(yīng)。
2、根據(jù)本公開的一方面,提供了一種地址轉(zhuǎn)換方法,所述方法包括:根據(jù)用戶發(fā)起的地址轉(zhuǎn)換請求包括的用戶標(biāo)識,查詢該用戶的用戶信息,所述用戶信息包括用戶使用的描述符集合的起始存儲地址;根據(jù)所述描述符集合的起始存儲地址和所述地址轉(zhuǎn)換請求包括的定位索引,得到所述描述符集合中的目的描述符的存儲地址,所述定位索引用于確定所述目的描述符在所述描述符集合中的位置;根據(jù)所述目的描述符的存儲地址,查詢所述目的描述符包括的高位地址;拼接所述高位地址以及所述地址轉(zhuǎn)換請求包括的低位地址,得到轉(zhuǎn)換后的地址;其中,所述用戶使用的描述符個數(shù),等于所述用戶訪問的物理空間的大小與單個描述符所描述的物理空間的大小的比值,同一用戶使用的描述符集合所包括的多個描述符的存儲地址連續(xù)。
3、在一種可能的實現(xiàn)方式中,所述描述符存儲在描述符存儲空間中,所述描述符存儲空間的大小為k×t×(1+x)+y,其中,k等于物理空間最大值與單個描述符所描述的物理空間的大小的比值,k是正整數(shù);t表示單個描述符所占據(jù)的描述符存儲空間的大小,t是正整數(shù);k×t×1的描述符存儲空間由所有使用者類型的用戶使用,k×t×x的描述符存儲空間由管理者類型的用戶使用,單個使用者類型的用戶訪問的物理空間小于物理空間最大值,所有使用者類型的用戶訪問的物理空間的總和等于物理空間最大值,不同的使用者類型的用戶訪問的物理空間不重合,每個管理者類型的用戶訪問的物理空間包括所有使用者類型的用戶訪問的物理空間,單個管理者類型的用戶訪問的物理空間等于物理空間最大值;x等于管理者類型的用戶的預(yù)期數(shù)量,x是大于或等于0的整數(shù);y表示用于數(shù)據(jù)遷移的描述符存儲空間的大小,y是大于或等于0的整數(shù)且是t的整數(shù)倍。
4、在一種可能的實現(xiàn)方式中,已使用的描述符還包括已使用標(biāo)記,所述方法還包括:根據(jù)新建用戶的請求,確定新用戶訪問的物理空間的大小;根據(jù)新用戶訪問的物理空間的大小以及單個描述符所描述的物理空間的大小,確定新用戶使用的描述符個數(shù);根據(jù)新用戶使用的描述符個數(shù),查詢所述描述符存儲空間中是否存在能夠連續(xù)存儲對應(yīng)數(shù)量的描述符且未被其他用戶使用的第一空間;在查詢到滿足條件的第一空間時,在該第一空間中寫入該新用戶使用的描述符,在該新用戶使用的描述符中寫入該描述符描述的物理空間的高位地址和所述已使用標(biāo)記;在該第一空間中寫入該新用戶使用的描述符后,根據(jù)該新用戶使用的描述符集合的起始存儲地址、新用戶使用的描述符個數(shù)以及新用戶的用戶標(biāo)識,建立新用戶的用戶信息。
5、在一種可能的實現(xiàn)方式中,新用戶使用的描述符集合的起始存儲地址和已有用戶使用的描述符集合的截止存儲地址連續(xù)。
6、在一種可能的實現(xiàn)方式中,所述在查詢到滿足條件的第一空間時,在該第一空間中寫入該新用戶使用的描述符,包括:在滿足條件的第一空間有多個時,查詢各第一空間允許存儲的描述符的最大數(shù)量;任意一個第一空間允許存儲的描述符的最大數(shù)量等于新用戶使用的描述符個數(shù)時,在該第一空間中寫入該新用戶使用的描述符。
7、在一種可能的實現(xiàn)方式中,所述方法還包括:根據(jù)刪除用戶的請求包括的用戶標(biāo)識,查詢待刪除的用戶的用戶信息,確定待刪除的用戶使用的描述符集合;清除待刪除的用戶使用的描述符集合中的每一描述符的已使用標(biāo)記,或者,將待刪除的用戶使用的描述符集合中的每一描述符的已使用標(biāo)記變更為未使用標(biāo)記;清除待刪除的用戶的用戶信息。
8、在一種可能的實現(xiàn)方式中,描述符集合包括已使用標(biāo)記時有效,所述方法還包括:每刪除一個用戶,遷移所述描述符存儲空間中有效的描述符集合,使得所述描述符存儲空間中有效的全部描述符集合連續(xù)存儲;根據(jù)遷移后的每一有效的描述符集合的起始存儲地址,更新該有效的描述符集合對應(yīng)的用戶的用戶信息。
9、在一種可能的實現(xiàn)方式中,描述符集合包括已使用標(biāo)記時有效,所述方法還包括:在未查詢到滿足條件的第一空間時,遷移所述描述符存儲空間中有效的描述符集合,使得所述描述符存儲空間中有效的全部描述符集合連續(xù)存儲;根據(jù)遷移后的每一有效的描述符集合的起始存儲地址,更新該有效的描述符集合對應(yīng)的用戶的用戶信息。
10、在一種可能的實現(xiàn)方式中,所述遷移所述描述符存儲空間中有效的描述符集合,使得所述描述符存儲空間中有效的全部描述符集合連續(xù)存儲,包括:將所述描述符存儲空間中的第一個有效的描述符集合作為當(dāng)前描述符集合,判斷所述當(dāng)前描述符集合的起始存儲地址之前是否存在未使用的空間;存在未使用的空間時,根據(jù)未使用的空間和所述當(dāng)前描述符集合占據(jù)的存儲空間的大小關(guān)系確定所述當(dāng)前描述符集合的遷移方式,所述遷移方式包括直接遷移方式和間接遷移方式,根據(jù)確定的遷移方式遷移所述當(dāng)前描述符集合,將下一有效的描述符集合作為當(dāng)前描述符集合,重新執(zhí)行判斷所述當(dāng)前描述符集合的起始存儲地址之前是否存在未使用的空間及之后的步驟;不存在未使用的空間時,將下一有效的描述符集合作為當(dāng)前描述符集合,重新執(zhí)行判斷所述當(dāng)前描述符集合的起始存儲地址之前是否存在未使用的空間及之后的步驟。
11、根據(jù)本公開的另一方面,提供了一種地址轉(zhuǎn)換裝置,所述裝置包括:第一查詢模塊,用于根據(jù)用戶發(fā)起的地址轉(zhuǎn)換請求包括的用戶標(biāo)識,查詢該用戶的用戶信息,所述用戶信息包括用戶使用的描述符集合的起始存儲地址;第一確定模塊,用于根據(jù)所述描述符集合的起始存儲地址和所述地址轉(zhuǎn)換請求包括的定位索引,得到所述描述符集合中的目的描述符的存儲地址,所述定位索引用于確定所述目的描述符在所述描述符集合中的位置;第二查詢模塊,用于根據(jù)所述目的描述符的存儲地址,查詢所述目的描述符包括的高位地址;拼接模塊,用于拼接所述高位地址以及所述地址轉(zhuǎn)換請求包括的低位地址,得到轉(zhuǎn)換后的地址;其中,所述用戶使用的描述符個數(shù),等于所述用戶訪問的物理空間的大小與單個描述符所描述的物理空間的大小的比值,同一用戶使用的描述符集合所包括的多個描述符的存儲地址連續(xù)。
12、在一種可能的實現(xiàn)方式中,所述描述符存儲在描述符存儲空間中,所述描述符存儲空間的大小為k×t×(1+x)+y,其中,k等于物理空間最大值與單個描述符所描述的物理空間的大小的比值,k是正整數(shù);t表示單個描述符所占據(jù)的描述符存儲空間的大小,t是正整數(shù);k×t×1的描述符存儲空間由所有使用者類型的用戶使用,k×t×x的描述符存儲空間由管理者類型的用戶使用,單個使用者類型的用戶訪問的物理空間小于物理空間最大值,所有使用者類型的用戶訪問的物理空間的總和等于物理空間最大值,不同的使用者類型的用戶訪問的物理空間不重合,每個管理者類型的用戶訪問的物理空間包括所有使用者類型的用戶訪問的物理空間,單個管理者類型的用戶訪問的物理空間等于物理空間最大值;x等于管理者類型的用戶的預(yù)期數(shù)量,x是大于或等于0的整數(shù);y表示用于數(shù)據(jù)遷移的描述符存儲空間的大小,y是大于或等于0的整數(shù)且是t的整數(shù)倍。
13、在一種可能的實現(xiàn)方式中,已使用的描述符還包括已使用標(biāo)記,所述裝置還包括:第二確定模塊,用于根據(jù)新建用戶的請求,確定新用戶訪問的物理空間的大??;第三確定模塊,用于根據(jù)新用戶訪問的物理空間的大小以及單個描述符所描述的物理空間的大小,確定新用戶使用的描述符個數(shù);第三查詢模塊,用于根據(jù)新用戶使用的描述符個數(shù),查詢所述描述符存儲空間中是否存在能夠連續(xù)存儲對應(yīng)數(shù)量的描述符且未被其他用戶使用的第一空間;第一寫入模塊,用于在查詢到滿足條件的第一空間時,在該第一空間中寫入該新用戶使用的描述符,在該新用戶使用的描述符中寫入該描述符描述的物理空間的高位地址和所述已使用標(biāo)記;第一建立模塊,用于在該第一空間中寫入該新用戶使用的描述符后,根據(jù)該新用戶使用的描述符集合的起始存儲地址、新用戶使用的描述符個數(shù)以及新用戶的用戶標(biāo)識,建立新用戶的用戶信息。
14、在一種可能的實現(xiàn)方式中,新用戶使用的描述符集合的起始存儲地址和已有用戶使用的描述符集合的截止存儲地址連續(xù)。
15、在一種可能的實現(xiàn)方式中,所述在查詢到滿足條件的第一空間時,在該第一空間中寫入該新用戶使用的描述符,包括:在滿足條件的第一空間有多個時,查詢各第一空間允許存儲的描述符的最大數(shù)量;任意一個第一空間允許存儲的描述符的最大數(shù)量等于新用戶使用的描述符個數(shù)時,在該第一空間中寫入該新用戶使用的描述符。
16、在一種可能的實現(xiàn)方式中,所述裝置還包括:第四查詢模塊,用于根據(jù)刪除用戶的請求包括的用戶標(biāo)識,查詢待刪除的用戶的用戶信息,確定待刪除的用戶使用的描述符集合;第一清除模塊,用于清除待刪除的用戶使用的描述符集合中的每一描述符的已使用標(biāo)記,或者,將待刪除的用戶使用的描述符集合中的每一描述符的已使用標(biāo)記變更為未使用標(biāo)記;第二清除模塊,用于清除待刪除的用戶的用戶信息。
17、在一種可能的實現(xiàn)方式中,描述符集合包括已使用標(biāo)記時有效,所述裝置還包括:第一遷移模塊,用于每刪除一個用戶,遷移所述描述符存儲空間中有效的描述符集合,使得所述描述符存儲空間中有效的全部描述符集合連續(xù)存儲;第一更新模塊,用于根據(jù)遷移后的每一有效的描述符集合的起始存儲地址,更新該有效的描述符集合對應(yīng)的用戶的用戶信息。
18、在一種可能的實現(xiàn)方式中,描述符集合包括已使用標(biāo)記時有效,所述裝置還包括:第二遷移模塊,用于在未查詢到滿足條件的第一空間時,遷移所述描述符存儲空間中有效的描述符集合,使得所述描述符存儲空間中有效的全部描述符集合連續(xù)存儲;第二更新模塊,用于根據(jù)遷移后的每一有效的描述符集合的起始存儲地址,更新該有效的描述符集合對應(yīng)的用戶的用戶信息。
19、在一種可能的實現(xiàn)方式中,所述遷移所述描述符存儲空間中有效的描述符集合,使得所述描述符存儲空間中有效的全部描述符集合連續(xù)存儲,包括:將所述描述符存儲空間中的第一個有效的描述符集合作為當(dāng)前描述符集合,判斷所述當(dāng)前描述符集合的起始存儲地址之前是否存在未使用的空間;存在未使用的空間時,根據(jù)未使用的空間和所述當(dāng)前描述符集合占據(jù)的存儲空間的大小關(guān)系確定所述當(dāng)前描述符集合的遷移方式,所述遷移方式包括直接遷移方式和間接遷移方式,根據(jù)確定的遷移方式遷移所述當(dāng)前描述符集合,將下一有效的描述符集合作為當(dāng)前描述符集合,重新執(zhí)行判斷所述當(dāng)前描述符集合的起始存儲地址之前是否存在未使用的空間及之后的步驟;不存在未使用的空間時,將下一有效的描述符集合作為當(dāng)前描述符集合,重新執(zhí)行判斷所述當(dāng)前描述符集合的起始存儲地址之前是否存在未使用的空間及之后的步驟。
20、根據(jù)本公開的另一方面,提供了一種電子設(shè)備,包括:處理器;用于存儲處理器可執(zhí)行指令的存儲器;其中,所述處理器被配置為在執(zhí)行所述存儲器存儲的指令時,實現(xiàn)上述方法。
21、根據(jù)本公開的另一方面,提供了一種非易失性計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序指令,其中,所述計算機(jī)程序指令被處理器執(zhí)行時實現(xiàn)上述方法。
22、根據(jù)本公開的另一方面,提供了一種計算機(jī)程序產(chǎn)品,包括計算機(jī)可讀代碼,或者承載有計算機(jī)可讀代碼的非易失性計算機(jī)可讀存儲介質(zhì),當(dāng)所述計算機(jī)可讀代碼在電子設(shè)備的處理器中運行時,所述電子設(shè)備中的處理器執(zhí)行上述方法。
23、根據(jù)本公開實施例的地址轉(zhuǎn)換方法,根據(jù)用戶發(fā)起的地址轉(zhuǎn)換請求包括的用戶標(biāo)識,查詢該用戶的用戶信息獲取用戶使用的描述符集合的起始存儲地址;由于同一用戶使用的描述符集合所包括的多個描述符的存儲地址連續(xù),定位索引用于確定目的描述符在描述符集合中的位置,因此根據(jù)描述符集合的起始存儲地址和地址轉(zhuǎn)換請求包括的定位索引,可得到描述符集合中的目的描述符的存儲地址;根據(jù)目的描述符的存儲地址,查詢目的描述符包括的高位地址,拼接高位地址以及地址轉(zhuǎn)換請求包括的低位地址,可以得到轉(zhuǎn)換后的地址。由于用戶使用的描述符個數(shù)等于用戶訪問的物理空間的大小與單個描述符所描述的物理空間的大小的比值,因此單個用戶使用的描述符個數(shù)得以降低,在用戶數(shù)量較多時,可以大大降低所有用戶使用的描述符總數(shù),從而降低描述符的存儲成本,與多用戶的地址轉(zhuǎn)換場景更為適應(yīng)。
24、該方法不需訪問主存,因此可提高總線流水線效率,可以采用更為簡單的邏輯來實現(xiàn),可以提高地址轉(zhuǎn)換實時性。
25、根據(jù)下面參考附圖對示例性實施例的詳細(xì)說明,本公開的其它特征及方面將變得清楚。