如何确定架构的最小 pmp 区域?

How to decide minimum pmp region for an architecture?

提问人:Ömer GÜZEL 提问时间:11/15/2023 更新时间:11/15/2023 访问量:16

问:

在RISCV架构中,有PMP寄存器来定义和控制内存区域。规范中指出,“尽管 PMP 机制支持小至 4 个字节的区域,但平台可以指定更粗略的 PMP 区域”。我知道我可以在我的核心(Linux 可启动)中将最小区域定义为 16 字节而不是 4 字节。换言之,我可以指定内存区域至少应对齐 16 字节。我想知道制作更粗的最小 PMP 区域的优缺点。

在我这边,使最小区域与缓存行一样大,可以降低硬件成本和复杂性。但是,我担心这些较粗糙的区域会增加内存使用量(我不确定)。我还想知道是否有任何其他缺点或问题使区域更粗糙。

操作系统 CPU 架构 RISCV 指令集 Supervisor 模式

评论

1赞 Peter Cordes 11/15/2023
使用分页时,内存保护仅在页面粒度下可用,在大多数 ISA 上至少为 4K,在某些 ISA 上(可选)更大。因此,如果你要运行像 Linux 这样围绕分页内存设计的操作系统,我希望更粗糙一点就可以了。(但我对 RISC-V 物理内存保护一无所知,也不知道操作系统需要管理哪些数据结构来告诉 CPU 它想要什么权限。

答: 暂无答案