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