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

Why Vacant locations in the address space are never accessible in RISC-V ISA?

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

Why Vacant locations in the address space are never accessible in RISC-V ISA?

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

Different address ranges of a hart’s address space may (1) be vacant, or (2) contain main memory, or (3) contain one or more I/O devices.

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

Ordinarily, if an instruction attempts to access memory at an inaccessible address, an exception is raised for the instruction.  Vacant locations in the address space are never accessible.

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

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