0

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

4

1 回答 1

1

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

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

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

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

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

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

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

于 2021-06-03T14:07:11.657 回答