Kernel
支持 5 級分頁的 CPU 是否實現了 57 位長的地址匯流排?
儘管數據匯流排大小為 64 位,但現代 AMD64 兼容 CPU 的地址匯流排大小在一段時間內是/曾經是 48 位,這允許使用 48 位長的虛擬記憶體地址,最大可定址虛擬記憶體為 2^48 = > 256 TB。
英特爾說
$$ 1 $$自從 Ice Lake CPU 架構以來,他們的 CPU 支持具有 57 位長虛擬記憶體地址的 5 級分頁。Linux 自 Kernel 4.14 起支持此功能$$ 2 $$. 這是否意味著支持具有 57 位長虛擬記憶體地址的 5 級分頁的 CPU 實現了 57 位長地址匯流排?
我提問的背景是,大約在 10-15 年前,了解現代 CPU 的地址匯流排和數據匯流排大小不是問題,但大約十年後,要找到有關地址匯流排的資訊並不容易尺寸。
$$ 1 $$ https://software.intel.com/content/www/us/en/develop/download/5-level-paging-and-5-level-ept-white-paper.html $$ 2 $$ https://www.kernel.org/doc/html/latest/x86/x86_64/5level-paging.html
不,它們(最多)實現了 52 位地址匯流排。英特爾® 64 和 IA-32 架構軟體開發人員手冊第 3A 卷的第 4.5 節描述了 4 級和 5 級分頁:
5 級分頁將 57 位線性地址轉換為 52 位物理地址。
據我所知,目前的英特爾 CPU 最多支持每個插槽 6TiB 的 RAM(例如參見8362),小於 2 43;所以我懷疑,即使地址匯流排覆蓋的不僅僅是物理記憶體,CPU 上的地址墊也少於 52 個(在套接字 4189 中)。