本發明總體上涉及網絡通信,特別是涉及網絡設備中的跨地址空間橋接。
背景技術:
1、網絡設備,諸如網絡接口控制器(nic)、主機通道適配器(hca)和數據處理單元(dpu),通常用于為用戶應用程序提供網絡服務。在一個示例配置中,用戶應用程序運行在合適的處理器上,并且網絡設備通過外圍總線與處理器通信。外圍總線的示例包括外圍組件互連高速(pcie)、nvlink和計算快速鏈路(cxl)。
技術實現思路
1、本文描述的一實施例提供了一種網絡設備,該設備包括一個或更多個端口、總線接口和一個或更多個電路。一個或更多個端口用于連接到網絡。總線接口用于:(i)使用外圍總線的第一總線域與存儲器通信;以及(ii)使用外圍總線的第二總線域與一個或更多個用戶應用程序通信。所述一個或更多個電路用于執行第一總線功能,即使用在第一總線域中定義的存儲器域存儲器密鑰(mkey)訪問存儲器的區域;執行第二總線功能,即使用第二總線域與用戶應用程序通信,并通過網絡為用戶應用程序傳輸包,其中,所述包的處理包括:經由指向第一總線功能中的存儲器域mkey的跨總線域mkey訪問存儲器的區域;以及響應于授權用戶應用程序訪問存儲器區域中的子區域,為該子區域定義指向跨總線域mkey的相應跨安全域mkey,而該跨總線域mkey又指向存儲器域mkey。
2、在一個實施例中,響應于授權一個或更多個用戶應用程序訪問存儲器區域中的一個或更多個附加子區域,一個或更多個電路用于為所述一個或更多個附加子區域定義一個或更多個附加跨安全域mkey,該一個或更多個附加跨安全域mkey指向所述跨總線域mkey。
3、在公開的實施例中,第一總線功能是從策略器接收跨安全域mkey,該策略器授權用戶應用程序訪問存儲器區域中的子區域的請求,并為子區域定義相應的跨安全域mkey。
4、在一個示例性實施例中,響應于來自用戶應用程序的指定虛擬地址va的存儲器訪問命令,一個或更多個電路用于根據存儲器域mkey中所定義的地址映射,將va轉換為子區域中的物理地址pa,并訪問存儲器中的pa。
5、在一個實施例中,第一總線功能用于與圖形處理單元(gpu)通信,存儲器位于gpu內部;第二總線功能用于與一個或更多個主機通信,并且所述用戶應用程序運行在所述一個或更多個主機上。在另一個實施例中,網絡設備是包括cpu和一個或更多個處理器核心的數據處理單元dpu;第一總線功能用于與cpu通信,存儲器位于cpu內部;第二總線功能用于與一個或更多個處理器核心通信,并且用戶應用程序運行在所述一個或更多個處理器核心上。
6、在一個示例性實施例中,跨安全域mkey包括修改子區域的保護域pd的第一mkey和映射子區域的地址的第二mkey。
7、此外,根據本文所述的實施例,還附加地提供了一種網絡設備中的方法。該方法包括:由網絡設備,使用外圍總線的第一總線域與存儲器通信,并使用外圍總線的第二總線域與一個或更多個用戶應用程序通信。第一總線功能在網絡設備中執行,所述第一總線功能使用在所述第一總線域中所定義的存儲器域存儲器密鑰(mkey)訪問所述存儲器的一個區域。第二總線功能在網絡設備中執行,所述第二總線功能使用所述第二總線域與用戶應用程序通信,并通過網絡為用戶應用程序傳輸包,其中所述包的處理包括經由指向所述第一總線功能中的所述存儲器域mkey的跨總線域mkey訪問所述存儲器的所述區域。響應于授權用戶應用程序訪問存儲器的區域中的子區域,為所述子區域定義相應的跨安全域mkey。所述跨安全域mkey指向所述跨總線域mkey,而所述跨總線域mkey又指向所述存儲器域mkey。
8、根據本文所述的實施例,還提供了一種數據中心,該數據中心包括一個或更多個網絡設備。網絡設備中的至少一個網絡設備包括一個或更多個端口、總線接口和一個或更多個電路。一個或更多個端口用于連接到網絡。所述總線接口用于:(i)使用外圍總線的第一總線域與存儲器通信;以及(ii)使用所述外圍總線的第二總線域與一個或更多個用戶應用程序通信。所述一個或更多個電路用于:執行第一總線功能,即使用在所述第一總線域中所述定義的存儲器域存儲器密鑰mkey訪問所述存儲器的區域;執行第二總線功能,即使用第二總線域與用戶應用程序通信,并通過網絡為用戶應用程序傳輸包,其中,包的處理包括:經由指向所述第一總線功能中的所述存儲器域mkey的跨總線域mkey訪問存儲器的區域;以及響應于授權用戶應用程序訪問所述存儲器的所述區域中的子區域,為所述子區域定義指向所述跨總線域mkey的相應的跨安全域mkey,而所述跨總線域mkey又指向所述存儲器域mkey。
1.一種網絡設備,所述網絡設備包括:
2.根據權利要求1所述的網絡設備,其中,響應于授權所述用戶應用程序中的一個或更多個用戶應用程序訪問所述存儲器的所述區域中的一個或更多個附加子區域,所述一個或更多個電路用于為所述一個或更多個附加子區域定義一個或更多個附加跨安全域存儲器密鑰mkey,所述一個或更多個附加跨安全域存儲器密鑰mkey指向所述跨總線域存儲器密鑰mkey。
3.根據權利要求1所述的網絡設備,其中,所述第一總線功能用于從策略器接收所述跨安全域存儲器密鑰mkey,所述策略器授權來自所述用戶應用程序的訪問所述存儲器的所述區域中的子區域的請求,并為所述子區域定義相應的跨安全域存儲器密鑰mkey。
4.根據權利要求1所述的網絡設備,其中,響應于來自所述用戶應用程序的指定虛擬地址va的存儲器訪問命令,所述一個或更多個電路用于根據所述存儲器域存儲器密鑰mkey中所定義的地址映射,將所述虛擬地址va轉換為所述子區域中的物理地址pa,并用于訪問所述存儲器中的所述物理地址pa。
5.根據權利要求1所述的網絡設備,
6.根據權利要求1所述的網絡設備,
7.根據權利要求1所述的網絡設備,其中,所述跨安全域存儲器密鑰mkey包括修改所述子區域的保護域pd的第一存儲器密鑰mkey和映射所述子區域的地址的第二存儲器密鑰mkey。
8.一種網絡設備中的方法,所述方法包括:
9.根據權利要求8所述的方法,包括:響應于授權所述用戶應用程序中的一個或更多個用戶應用程序訪問所述存儲器的所述區域中的一個或更多個附加子區域,為所述一個或更多個附加子區域定義一個或更多個附加跨安全域存儲器密鑰mkey,所述一個或更多個附加跨安全域存儲器密鑰mkey指向所述跨總線域存儲器密鑰mkey。
10.根據權利要求8所述的方法,其中,執行所述第一總線功能包括從策略器接收所述跨安全域存儲器密鑰mkey,所述策略器授權來自所述用戶應用程序的訪問所述存儲器的所述區域中的子區域的請求,并為所述子區域定義相應的跨安全域存儲器密鑰mkey。
11.根據權利要求8所述的方法,包括:響應于來自所述用戶應用程序的指定虛擬地址va的存儲器訪問命令,根據所述存儲器域存儲器密鑰mkey中所定義的地址映射,將所述虛擬地址va轉換為所述子區域中的物理地址pa,并訪問所述存儲器中的所述物理地址pa。
12.根據權利要求8所述的方法,
13.根據權利要求8所述的方法,
14.根據權利要求8所述的方法,其中,定義所述跨安全域存儲器密鑰mkey包括:定義修改所述子區域的保護域pd的第一存儲器密鑰mkey;以及定義映射所述子區域的地址的第二存儲器密鑰mkey。
15.一種數據中心,所述數據中心包括一個或更多個網絡設備,所述網絡設備中的至少一個網絡設備包括:
16.根據權利要求15所述的數據中心,其中,響應于授權所述用戶應用程序中的一個或更多個用戶應用程序訪問所述存儲器的所述區域中的一個或更多個附加子區域,所述一個或更多個電路用于為所述一個或更多個附加子區域定義一個或更多個附加跨安全域存儲器密鑰mkey,所述一個或更多個附加跨安全域存儲器密鑰mkey指向所述跨總線域存儲器密鑰mkey。
17.根據權利要求15所述的數據中心,其中,所述第一總線功能用于從策略器接收所述跨安全域存儲器密鑰mkey,所述策略器授權來自所述用戶應用程序的訪問所述存儲器的所述區域中的子區域的請求,并為所述子區域定義相應的跨安全域存儲器密鑰mkey。
18.根據權利要求15所述的數據中心,其中,響應于來自所述用戶應用程序的指定虛擬地址va的存儲器訪問命令,所述一個或更多個電路用于根據所述存儲器域存儲器密鑰mkey中所定義的地址映射,將所述虛擬地址va轉換為所述子區域中的物理地址pa,并訪問所述存儲器中的所述物理地址pa。
19.根據權利要求15所述的數據中心,
20.根據權利要求15所述的數據中心,