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

免费建立一个网站wordpress inc文件夹

免费建立一个网站,wordpress inc文件夹,简述网站设计要遵循哪些原则,但未能选择wordpress数据库目录 MIPS流水线处理器一、流水线概述二、流水线数据通路及其控制数据通路流水线控制 三、数据冒险#xff1a;转发与阻塞四、控制冒险 MIPS流水线处理器 一、流水线概述 以生活中的流水线为例#xff0c;洗衣房洗衣服分为以下几步#xff1a;1. 洗涤#xff0c;2. 烘干转发与阻塞四、控制冒险 MIPS流水线处理器 一、流水线概述 以生活中的流水线为例洗衣房洗衣服分为以下几步1. 洗涤2. 烘干3. 熨整。如果每批衣服都完成以上三步才开始洗下一批衣服会造成大量的资源浪费。如果上一批衣服在烘干的时候下一批衣服能够开始洗涤就可以提高资源利用率。MIPS流水线CPU的思想原理正是基于这种朴素的思想。 图1 串行洗衣房 图2 并行洗衣房 同理MIPS处理器执行指令的过程也可以分为几个逻辑独立的部分 IF取指PC自增ID指令译码读寄存器EX运算MEM读写数据存储器WB写回寄存器 为了保存指令在每个周期的中间结果需要添加4组流水线寄存器这样就构成了一个五级流水线CPU。上图只是流水线CPU的大致示意细节会在后续小节具体介绍。 二、流水线数据通路及其控制 数据通路 在单周期的数据通路上插入4组流水线寄存器 IF/ID寄存器主要存指令译码的结果指令的各个字段ID/EX寄存器主要存rs和rt寄存器的值以及立即数符号扩展后的值EX/MEM寄存器主要存ALU的计算结果MEM/WB寄存器主要存数据存储器的输出以及ALU的计算结果RF寄存器可以看成是最后一级流水线寄存器在这儿更新结果 更详细的图存在问题 两个最重要的疑问 在同一个周期内前面的指令写寄存器堆后面的指令读寄存器堆更新PC的时候需要在PC4和NPC之间选择会有什么问题 可以保证的是这两种情况不会影响之前的指令只会影响后面的指令。第一个问题会造成数据冒险第二个问题会造成控制冒险具体见后面两节。在这节介绍数据通路时我们暂时不管这两个问题以免造成混乱。 一个具体的例子 下面我们以数据通路最长的lw指令为例来理一遍流水线的数据通路。 IF阶段这个阶段主要是读IM将指令取出放入IF/ID寄存器中。这里可以看到一个现象lw指令显然是执行 P C ← P C 4 PC\leftarrow PC4 PC←PC4但是依旧会把PC4存入IF/ID寄存器中以便于计算NPC。这体现了一个原则尽可能将信息往后传递即使这条指令用不到其他指令也有可能会用到贸然舍弃不可取。 ID阶段在此阶段lw指令需要从寄存器堆中读取第一个寄存器的值作为基址并且将16位立即数符号扩展为32位立即数。同理这一阶段还是会将所有后续可能用到的数据向后传递第二个寄存器的值lw用不到但是也向后传递了。此图目前有一个问题如果你此时发现了能想到如何改正吗不行的话也没事我们在WB阶段会改正这个错误。 EX阶段我们在这个阶段根据基址加偏移算出最终的数据地址并将结果存入EX/MEM流水线寄存器中。 MEM级根据地址从DM中取出数据并存入MEM/WB流水线寄存器中。 WB级将MEM/WB流水线寄存器中保存的数据写回寄存器堆中。需要注意的是这里的写寄存器编号并不是当前lw指令对应的写寄存器编号而是此时运行到ID级的指令的编号因此需要更改一下数据通路。下图就是正确的通路。 流水线的图形化表示 书上最常见的表示形式就是这种比较完整仔细的形式横向是时间也就是周期纵向是指令。个人更倾向于使用另一种表示方法只画一个简易的流水线图然后在各个阶段标注正在执行的指令这对于做题分析更有帮助。 在此图的基础上简化各个部分的部件一个框加字母即可怎么方便怎么来。 流水线控制 由单周期CPU的设计可知指令执行的过程中需要很多的控制信号来引导指令的正确执行比如运算类型ALUOp、写寄存器信号RegWr等等。在单周期CPU中所使用的控制信号在流水线CPU中依然适用唯一不同的是需要将控制信号和数据一起往后传递以便于指令在执行的过程中能够一直得到对应自己的控制信号。 最简单的实现方式当然就是将控制信号一股脑地往后传递但是因为控制信号的作用域易于区分即一个控制信号可以明确在哪个流水级使用所以我们可以将控制信号按照作用的流水级分组并且在传递的过程中有选择地舍弃。 三、数据冒险转发与阻塞 冒险一共有三种类型 结构冒险硬件不支持多条指令在同一时钟周期中执行流水线的设计可以非常简单地避免结构冒险IM和DM分开就避免了结构冒险。另外一个结构冒险是在同一个时钟周期内前面的指令写回寄存器堆而后面的指令读寄存器堆造成的冲突解决这个结构冒险的常见办法之一是通过前半个周期写后半个周期读实现因此可以保证此时能够读到正确的数据。数据冒险数据相关MIPS中只有RAW相关即前面的指令是写寄存器后面的指令是读寄存器。在前面的指令还没有来得及将结果写回寄存器的时候WB级结束后面的指令就需要从同一个寄存器中取数此时就会造成数据冒险。 以上图为例当运行到第三个周期时sub指令需要从寄存器r1中读取操作数但是前一条指令add并没有将结果写回r1寄存器而是需要在第5个周期才能写回这就造成了sub指令取出的数据是“旧”的数据造成结果错误。而对于第四条指令oradd指令在第5个周期写寄存器add读寄存器这个就可以通过修改寄存器的内部结构改变因此不会造成数据冒险原ppt上画了红色应该不太对。 但是仔细分析可以知道add指令在第3个周期的结束就已经产生了正确的运算结果并且存入了EX/MEM流水线寄存器中而后续的4条指令真正使用到r1寄存器值的时间都在第4个周期及之后因此理论上就可以通过将EX/MEM流水线寄存器中的结果提前“转发”也叫旁路——这就是解决数据冒险的办法之一。 更精细的数据冒险类型以及判定条件 1a. EX/MEM.RegisterRd ID/EX.RegisterRs 1b. EX/MEM.RegisterRd ID/EX.RegisterRt 2a. MEM/WB.RegisterRd ID/EX.RegisterRs 2b. MEM/WB.RegisterRd ID/EX.RegisterRt 对应1a的更具体的判定条件 if(EX/MEM.RegWrite EX/MEM.RegisterRd ! 0 EX/MEM.RegisterRd ID/EX.RegisterRs) ForwardA 10 对应2a的更具体的判定条件 if(!(EX/MEM.RegWrite EX/MEM.RegisterRd ! 0 EX/MEM.RegisterRd ID/EX.RegisterRs) (MEM/WB.RegWrite MEM/WB.RegisterRd ! 0 MEM/WB.RegisterRd ID/EX.RegisterRs)) 2a需要先判定是否满足1a条件因为1a结果更“新” 然而并不是所有的数据冒险都是能够通过转发解决还有一些特殊的情况比如 lw指令最早在T4结束才能得到t0寄存器的正确结果而sub指令最迟在T4开始就需要使用t0寄存器的值因此就无法通过转发解决。此时只能使用解决数据冒险的另一个办法——阻塞。 目前指令集中只有一种可能会造成必须要阻塞前一条指令是lw指令后一条指令使用lw指令的目的寄存器作为源操作数寄存器。因此可以在ID级添加冒险检测单元检测冒险的逻辑如下 if(ID/EX.MemRead (ID/EX.ResgisterRt IF/ID.RegisterRs || ID/EX.ResgisterRt IF/ID.RegisterRt) ) stall the pipeline 完成阻塞需要做的事1. 冻结前面的流水线寄存器PC和IF/IDPC寄存器也可以理解成流水线寄存器即修改其写使能信号为02. 清除ID/EX流水线寄存器即修改其clr信号为1这样就相当于在lw指令后面加了一条空指令。 四、控制冒险
http://www.eeditor.cn/news/118384/

相关文章:

  • 大良网站公司设计公司推荐
  • 发果怎么做视频网站代理服务器网页版
  • 网站正在建设维护中上海空气中检测出阳性
  • 在猪八戒做网站有保障吗怎样做公司网页
  • 网站前台模板免费下载网站设计内容板块
  • 那个网站做的系统最好软件项目外包平台
  • 腾讯云如何做网站网站前置审批
  • 主机如何做服务器建网站营销软文是什么
  • 外贸网站高端定做古镇营销型网站建设
  • 个人网站网页模板做网站老板嫌弃太丑谁的锅
  • 常德人才网网站超链接的优化
  • 网站开发案例分析wordpress 育儿主题
  • 福州网站设计哪家比较好网站做好后
  • 惠山网站建设网上智慧团建网站
  • 制作小程序网站源码福州做网站公司
  • 寻找锦州网站建设酒店网站建设价格
  • 杭州做网站的优质公司哪家好wordpress视频教程 百度网盘
  • 咸宁商城网站建设做淘宝客网站用什么源码好
  • 网站文字模板国家高新技术企业查询
  • 河北省网站建设.公司营销策划方案案例
  • 导航类网站模板门户网站建设情况简介
  • 自己在家可以做网站吗特色的企业网站建设
  • 微信链接的微网站怎么做的国际新闻最新消息十条
  • 嘉兴网站排名新乡做网站的
  • 禅城建设网站软件开发工具有哪些基本功能
  • 努力把网站建设成为什么网站可以发布有偿做项目
  • 金银回收东莞网站建设劳动节网页设计素材
  • 建设网站怎么判断是电脑还是手机无锡微信公众号开发
  • 网站流量能打开wifi打不开下载微信公众号平台官网
  • 做校园二手交易网站的目的动漫网站网页设计