Design of the RISC-V Instruction Set Architecture笔记(chapter5)
RISC-V Compressed ISA Extension:旨在通过以更密集的格式编码最频繁的指令来减少RISC-V程序的静态代码大小和动态获取流量
MIPS等其他RISC ISA扩展压缩指令集的缺点:基本ISA不是考虑压缩指令而设计的,因此操作码空间没有为压缩指令保留。因此使用压缩指令的方法就是制作新的,不兼容的指令集。这就阻止了和基本ISA的混合。基本指令集不可能用会带来很大的性能影响。
Although the base ISA consists of only 32-bit instructions that must be naturally aligned, the base control-flow instructions have a displacement granularity of 16 bits.
两个主要的设计约束指导了RVC的设计:
- 首先,RVC程序不应该采用比RISC-V对应程序更多的编码指令,因此至少应该具有高性能。用无模式设计可轻松实现此目标,其中基本ISA指令始终可用。 这种设计的一个重要结果是RVC不需要是独立的ISA,因此宝贵的RVC操作码空间不需要花费在必要但相对不频繁的操作上,例如通过系统调用来调用操作系统。 相反,该操作码空间可专用于减小最常见代码序列的大小。
- 每条RVC指令