当前位置: 首页 > news >正文

分析公司网站的开发策略阿里指数数据分析平台官网

分析公司网站的开发策略,阿里指数数据分析平台官网,网站建设建材,商丘网站制作公司萌新的RiscV学习之流水线控制-9 我们按照在之前的单周期设计加入控制单元 那么我们能够在后续的设计中提供方便 我们也在流水线中加入一个control单元 我们先按照书上的指令op码值介绍一遍基本功能 接下来我们讲述control 的 控制效果 关于这些串口判别的使用 由于控制线从…

萌新的RiscV学习之流水线控制-9

我们按照在之前的单周期设计加入控制单元 那么我们能够在后续的设计中提供方便 我们也在流水线中加入一个control单元
在这里插入图片描述
我们先按照书上的指令op码值介绍一遍基本功能
在这里插入图片描述
接下来我们讲述control 的 控制效果 关于这些串口判别的使用
在这里插入图片描述
由于控制线从 EX 阶段开始,我们可以在指令译码阶段为之后的阶段创建控制信号。传递这些控制信号最简单的方式就是扩展流水线寄存器以包含这些控制信息。
在这里插入图片描述
最后三个阶段的七条控制线。需要注意的是,在 EX 阶段使用了七条控制线中的两条,剩下的五条被传递到扩展的 EX/MEM 流水线寄存器中以保持控制线;在MEM 阶段中使用了三条控制线,最后两条传递到 MEM/WB 寄存器用于WB 阶段
在这里插入图片描述
我们在上面讲述的更多的是关于理论方面的讲解 我们接下来讲述关于具体指令的实际应用
sub x2 ,x1,x3
and x12 , x2 , x5
or x13 , x6 , x2
add x14, x2,x2
sd x15 , 100(x2)
我们会发现所有的后四条指令都采用了第一条指令中的x2值 所以我们在指令的确切使用中要注意选取合适的数据
在这里插入图片描述
在第五个时钟周期之前,对寄存器 x2 的读操作并不能返回 sub 指令的结果。因此,图中的 add sd 指令可以得到正确结果-20, 但是 and or 指令却会得到错误的结果 10 。在这种类型的图中,每当相关线在时间线上表示为后退时(箭头指向左上方),这个问题就会变得很明显。
在第三个时钟周期也就是 sub 指令的 EX 指令阶段结束时就可以得到想要的结果。那么在 and or 指令中是什么时候才真正需要这个数据呢?答案是and or 指令的 EX 阶段开始的时候,分别对应第四和第五个时钟周期。因此,只要可以一得到相应的数据就将其前递给等待该数据的单元,而不是等待其可以从寄存器堆中读取出来,就可以不需要停顿地执行这段指令了。
它这边的说法是我们看似是从这个寄存器内部取到数据但是 我想要寄存器编号
但是我们真正想要的是数据 我们可以在上一部分的EX阶段直接取到得到后的数据
在这里插入图片描述
命名流水线寄存器字段是一种更精确的表示相关关系的方法。例如, ID/EX. Register Rs I 表示一个寄存器的编号,它的值在流水线寄存器 ID.EX 中,也就是这个寄存器堆中第一个读端口的值。该名称的第一部分,也就是点号的左边,是流水线寄存器的名称;第二部分是寄存器中字段的名称。使用这种表示方法,可以得到两对冒险的条件:la. EX/MEM.Re gisterRd = ID/EX.Re gisterRsl 1 b. EX/MEM.Re gisterRd = ID/EX.Re gisterRs2 2a. MEM/WB.Re gisterRd = ID/EX.Re gisterRsl 2b. MEM/WB.Re gisterRd = ID/EX. Re gisterRs2 在本节开头的代码中,指令序列中的第一个冒险发生在寄存器 x2 上,位于 sub 指令sub x2, x l, x3 的结果和 and 指令 and xl2, x2, x5 的第一个读操作数之间。这个冒险可以在 and 指令位于 EX 阶段、 sub 指令位于 MEM 阶段时被检测到,因此这种冒险属la 类型:EX/MEM.Re gisterRd = ID/EX.Re gister Rs 1 = x2

这种一劳永逸的方法是错误的,并不是所有的指令都会写回寄存器,所以这个策略是不正确的,它有时会在不应该前递的时候也将数据前递出去。一种简单的解决方案是检查 Re Writ 信号是否是有效的:检查流水线寄存器在 EX MEM 阶段的 WB 控制字段以确定 Re Write 信号是否有效。
在这里插入图片描述
因此,只要流水线寄存器保存了将要被前递的数据,后续的指令就可以得到所需的数据。
各流水线寄存器之间的相关关系会随着时间向前移动,因此可以通过前递在流水线寄存器中找到的结果,以提供 and 指令或 or 指令所需的 ALU 的输入。流水线寄存器中的值表示所需的值在被写入寄存器堆之前就是可用的。我们假设寄存器堆可以前递在同一时钟周期内要被读写的数据,这样 add 指令就不需要停顿了,不过这些值来自流水线寄存器而不是寄存器堆。寄存器堆前递,即读操作获得的值是本时钟周期内写操作的结果,这就是为什么第五个时钟周期中显示寄存器 x2 在前半个周期内的值为 10 而在周期结束时的值为-20
如果我们可以从任何流水线寄存器而不仅仅是 ID/EX 中得到 ALU 的输入,那就可以前递正确的数据。通过在 ALU 的输入上添加多选器再辅以适当的控制,就可以在存在数据冒险的情况下全速运行流水线。

现在,假设需要前递的指令只有这四种形式: add sub and or 指令。下图是ALU 和流水线寄存器在添加前递之前和之后的“特写。还有一个是 ALU 多选器的控制线的值,它选择寄存器堆的值或是被前递的值中的一个。

这个前递控制将发生在 EX 阶段,因为 ALU 前递多选器在 EX 阶段。因此,我们必须ID 阶段通过 ID/EX 流水线寄存器将操作数寄存器编号传递出去,以决定是否需要前递值。在加入前递机制之前, ID/EX 流水线寄存器无须保存 rs 字段和 rs2 字段,但是因为前递机制的需要,现在要将保存 rsl rs2 所需的空间添加到 ID/EX 流水线寄存器中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.ritt.cn/news/23871.html

相关文章:

  • 做机网站杭州最好的seo公司
  • 电商网站后台管理系统模板四平网站seo
  • 专门做网站百度做网站
  • 定制化网站开发公司网络推广外包一年多少钱
  • 宁波市节约型机关建设考试网站婚恋网站排名前三
  • 个人可以做自媒体网站吗江苏seo平台
  • 网站兼容视图平台推广方案模板
  • 石岩网站设计关键词歌词任然
  • 邹城网站建设v556专注于品牌营销服务
  • 网站设计制作排名深圳华强北新闻最新消息今天
  • 做同款的网站上海网络推广团队
  • 台州云建站模板职业技术培训
  • 做a 免费网站有哪些百度不收录网站怎么办
  • 网站建设技术论坛中国seo网站
  • 合肥网站建设合肥网站制作seo综合查询爱站
  • 做英语题目的网站在线crm软件
  • 简约个人网站站长统计网站统计
  • 淄博网站运营公司北京网站优化seo
  • 建设网站需要那些技术人员淘宝推广公司
  • 网站 常见推广百度推广好做吗
  • 网站制作 意向单优化大师下载
  • 建造师官网爱采购seo
  • 贵阳哪里可以做网站推广营销软件
  • 厦门网站建设推广微信怎么推广找客源
  • 公司做竞拍网站的收入怎么报税自助网站建设
  • 深圳市手机网站建设百度seo推广工具
  • 浏览器禁止网站怎么做手机怎么建自己的网站
  • 个人专业制作网站网络推广seo公司
  • 国外皇色网站网络广告推广方法
  • 莱芜中考网站博客营销