在RISC-V指令集手册中,shift立即指令:
手册中提到了这一点。
常量的移位被编码为i类型格式的专门化。要移除的操作数在rs1中,移位量在I直接字段的较低5位中编码。右移位类型是编码在高位的I-立即.SLLI是逻辑左移位(零移到下位);SRLI是逻辑右移位(零移到上位);SRAI是算术右移位(原始符号位被复制到空出的上位)。
当人们说
移位量编码在I-即时字段的较低5位中.
它将如何准确地编码?
另一件事是否意味着,它将需要多个时钟周期的移动,如在较低的5位的即时?或者可以在一个时钟周期内完成?
发布于 2016-09-14 19:18:35
您可以在RISC-V规范中直接找到答案。
imm[11:5] imm[4:0] rs1 func3 rd opcode inst
------------------------------------------------------------
0000000 shamt rs1 001 rd 0010011 SLLI
0000000 shamt rs1 101 rd 0010011 SRLI
0100000 shamt rs1 101 rd 0010011 SRAI
至于延迟,ISA只处理体系结构,而不是微体系结构。
这意味着两个RISC-V符合标准的CPU可以在不同的时钟周期中执行移位。
发布于 2022-01-21 11:08:11
执行轮班实现的选项很多。最小的硬件是一次一位,因此32周期的32位移位。桶形移位器的硬件强度要高得多,但可以在32加法的同时移动32位。请注意,添加需要传播进位,而32位桶形移位器则需要5个阶段(2^5= 32)。其中一个诀窍是在多级流水线处理器中中断阶段之间的转移。在EX (Execute)循环中执行一个可选的位反转,然后在MEM (内存/加载/存储)循环中执行最后2个桶移位阶段,并进行一个可选的位反转。延迟现在是移位的两个周期。早期完全逻辑可以添加,因此在一个周期内完成2或3位移位。字节移位逻辑也可以添加到在一个周期内进行8x位移位。注意,位反转允许所有移位SLL,SRL,SRA在一个方向上完成,向右移动,保存一些逻辑。所以,在硬件设计中有很多选择,增加更多的硬件逻辑和转换就可以非常快地完成!
https://stackoverflow.com/questions/39489318
复制相似问题