某些体系结构除了正常负载外还具有“可忽略负载”:当负载被拒绝时,不是发出异常(导致分段错误),而是将缺省值(例如,零)写入目标寄存器。这允许编译器将加载移动到条件分支之前,这对于非推测性内核的性能可能很重要。
我想知道是否有一个Risc-V扩展。我什么也没找到。
发布于 2020-09-19 19:26:36
在当前的一组完整的标准RISC-V扩展中,不支持可忽略的加载(即,当标准lw、lh、lb等将被捕获时,不基于存储器位置的存储器保护而捕获的加载指令)。它们自然也不适合任何计划中的标准扩展。您可以找到ISA规范here的当前版本。(标准扩展是由RISC-V基金会设计和批准的,保证不会相互冲突,并将出现在ISA规范中)。
这就是说,RISC-V的设计目的是让自定义加速器的非标准扩展的设计和实现变得简单。有一些位保留用于自定义扩展的实现,并保证当前和未来的标准扩展不会发生冲突。因此,也没有任何措施阻止将可忽略的load指令作为非标准扩展的一部分添加到RISC-V中。
https://stackoverflow.com/questions/63967103
复制