微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在 RISC-V ISA 中永远无法访问地址空间中的空位置?

如何解决为什么在 RISC-V ISA 中永远无法访问地址空间中的空位置?

我正在阅读 RISC-V 指令集手册第一卷:非特权 ISA,我遇到了一个非常奇怪的陈述。在第 5 段末尾的 1.4 小节中,“永远无法访问地址空间中的空位置”。 我有点困惑并对此进行了搜索,但我无法得出任何结论。如果您能与我分享您的想法,我们将不胜感激。

解决方法

为什么在 RISC-V ISA 中永远无法访问地址空间中的空位置?

这是根据定义。来自第 1.4 节的第二段:

一个 hart 地址空间的不同地址范围可能 (1) 是空的,或 (2) 包含主内存,或 (3) 包含一个或多个 I/O 设备。

也就是说,可能存在既没有内存也没有 I/O 设备的地址范围:这些被称为空位置。

通常,如果一条指令试图访问位于不可访问地址的内存,则会引发该指令的异常。地址空间中的空位置永远无法访问。

此外,这些空位置是不可访问的,这意味着尝试访问它们会出错(导致异常)。

hart 是(可由操作系统编程为)知道三种地址范围:主内存、I/O 设备和空的(即两者都不是)。尝试在空闲位置执行加载或存储会出错,因为那里没有任何东西可以访问,而 hart 知道这一点(即,它已被告知哪些范围是有效/无效的)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。