首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RISC-V:实施SLLI、SRLI和SRAI

RISC-V:实施SLLI、SRLI和SRAI
EN

Stack Overflow用户
提问于 2016-09-14 11:29:26
回答 2查看 35.4K关注 0票数 3

在RISC-V指令集手册中,shift立即指令:

  1. 左移逻辑立即)。
  2. SRLI (右移逻辑即时)
  3. SRAI (右移算术立即)。

手册中提到了这一点。

常量的移位被编码为i类型格式的专门化。要移除的操作数在rs1中,移位量在I直接字段的较低5位中编码。右移位类型是编码在高位的I-立即.SLLI是逻辑左移位(零移到下位);SRLI是逻辑右移位(零移到上位);SRAI是算术右移位(原始符号位被复制到空出的上位)。

当人们说

移位量编码在I-即时字段的较低5位中.

它将如何准确地编码?

另一件事是否意味着,它将需要多个时钟周期的移动,如在较低的5位的即时?或者可以在一个时钟周期内完成?

EN

回答 2

Stack Overflow用户

发布于 2016-09-14 19:18:35

您可以在RISC-V规范中直接找到答案。

代码语言:javascript
运行
复制
 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可以在不同的时钟周期中执行移位。

票数 7
EN

Stack Overflow用户

发布于 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在一个方向上完成,向右移动,保存一些逻辑。所以,在硬件设计中有很多选择,增加更多的硬件逻辑和转换就可以非常快地完成!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39489318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档