Arm64物理地址空间映射官方文档查询及32/36/40位Arm地址映射参考
问题描述
我从DEN0001C_principles_of_arm_memory_maps.pdf文档中找到了Arm的物理地址空间映射:
32-bit, 36-bit and 40-bit ARM Address Maps Address map in use in ARM development systems today - 32-bit - - 36-bit - - 40-bit - 1024GB+ + +--------------+ <- 40-bit | | DRAM | ~ ~ ~ ~ | | | | | | | | | | | | 544GB + + +--------------+ | | Hole or DRAM | | | | 512GB + + +--------------+ | | Mapped | | | I/O | ~ ~ ~ ~ | | | 256GB + + +--------------+ | | Reserved | ~ ~ ~ ~ | | | 64GB + +--------------+--------------+ <- 36-bit | | DRAM | ~ ~ ~ ~ | | | | | | 34GB + +--------------+--------------+ | | Hole or DRAM | 32GB + +--------------+--------------+ | | Mapped I/O | ~ ~ ~ ~ | | | 16GB + +--------------+--------------+ | | Reserved | ~ ~ ~ ~ 4GB +--------------+--------------+--------------+ <- 32-bit | 2GB of DRAM | | | 2GB +--------------+--------------+--------------+ | Mapped I/O | 1GB +--------------+--------------+--------------+ | ROM & RAM & I/O | 0GB +--------------+--------------+--------------+ 0 - 32-bit - - 36-bit - - 40-bit - Figure 1 32-bit, 36-bit and 40-bit Address Map
我没有找到Arm64对应的物理地址空间映射,请问是否有相关官方文档可供参考?
回答
Arm64(AArch64)架构没有统一的通用物理地址空间映射标准,和32位Arm时代有通用的开发系统参考映射不同,AArch64规范仅定义了不同硬件实现支持的物理地址最大宽度:目前主流AArch64芯片支持40位、48位或52位物理地址,对应最大可寻址空间分别为1TB、256TB、4PB,具体的地址区间划分(DRAM、MMIO、保留区、ROM等)由SoC厂商或平台设计者自行定义。
你可以通过两类官方文档获取对应参考:
- Arm A-profile架构参考手册中关于物理地址空间、内存属性、地址翻译的相关章节,其中明确了架构层面对地址空间划分的约束要求
- 如果你需要Arm官方开发平台的参考映射,可查询对应开发板的技术参考手册(TRM),比如Juno开发板、Arm固定虚拟平台(FVP)的配套文档都标注了完整的AArch64环境地址映射
内容的提问来源于stack exchange,提问作者Li Chen
相关产品推荐
相关产品推荐

