欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    电子科技大学计算机系统结构综合实验实验报告Word文档下载推荐.docx

    • 资源ID:5631308       资源大小:1.76MB        全文页数:39页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电子科技大学计算机系统结构综合实验实验报告Word文档下载推荐.docx

    1、1. 流水线寄存器的引入在单周期处理机中,如果一条指令还没有执行完毕,PC的内容不会改变。这就使得在一条指令的整个执行过程中,IM始终输出当前指令。流水线处理机每个时钟周期都要取出一条指令。因此,当流水线处理机已从存储器取出一条指令并把它送到ID级去译码时,下一条指令也正在从指令存储器中取出。如果先取出的指令没被保存,则它后面正在被取出的指令会对它造成影响。也就是说,必须要使用寄存器来保存从存储器取出的指令。推而广之,我们必须要在流水线的各级之间安排一组寄存器,用以保存当前时钟周期各流水级操作的结果,以便为下个周期使用,我们称这些寄存器为流水线寄存器。在第一级与第二级之间,我们使用了一个被称为

    2、IR(instruction register)的指令寄存器。对于字长为32位的处理机来讲,PC一般有30位,它存放的是32位指令的字地址。IR有32位,用来存放一条指令。第二和第三级之间需要较多的寄存器:* 从寄存器堆中读出的两个32位数据A和B必须要保存。* 经符号扩展后的32位立即数I也要保存。图中的ISE(immediate sign-extend)代表指令中立即数的符号扩展。* 一个d寄存器(5位),它被用来保存目的寄存器号;因为指令的操作结果要在WB级写入寄存器堆,目的寄存器号也要在那时使用,因此必须要同步跟随过去。第三级和第四级之间除了d之外,还有Z,R和S: Z用于存放ALU的

    3、一位ZERO标志。当ALU指令的运算结果为全0时,ZERO输出1,否则输出0。在执行条件转移指令时,Z用来决定是否真正转移。S专为store指令而设,用来存放要被写入存储器中的数据。R保存32位ALU运算结果。 第四级和第五级之间的寄存器如下: D存放load指令从存储器中读出的数据; C只是保存前一级的R,即ALU指令的结果。这一级d寄存器的输出用于指定目的寄存器,D或C的数据要被写入由d所指定的目的寄存器中。我们可以把寄存器堆看作是最后一级流水线寄存器。2. 流水线处理机的5部分和数据路径我们把执行指令的过程分为5部分,使其能够按流水线方式执行指令。每一级所使用的名字及其要完成的动作如下:

    4、(1) IF(instruction fetch)取指令; 使用PC的内容访问指令存储器,取出指令,并在该级结束时,把指令打人IR寄存器。下一条指令的地址也在这一级计算出,并把它打人PC寄存器。 (2) ID(instruction decode)指令译码并读寄存器操作数;指令译码级主要有两件事情要做: 从寄存器堆中读寄存器操作数和对指令中的立即数部分进行符号扩展。 此外:目的寄存器号要保存在流水线寄存器d中,以便在WB级指定把结果写入哪一个寄存器中。(3) EXE(execution)执行;* ALU运算类指令将在本级计算结果,并把它打人R寄存器。同时,ALU的ZERO输出也被打入Z寄存器。

    5、ALU的两个操作数,一个来自于寄存器rs1,它在前一级已被打人流水线寄存器A中了;另一个或是寄存器rs2操作数(B中内容),或是立即数(I中内容)。(4) MEM(memory access)存储器访问;存储器访问级专为loadstore指令而设。 loadstore均使用流水线寄存器R的输出作为访问存储器的地址。store指令把S的内容写入存储器。load指令读存储器,并把读出的数据打入流水线寄存器D。 ALU指令在本级直接把R内容打入C。(5) WB(write back)写回。写回级把指令结果写回到寄存器堆。目的寄存器号由从ID级一直传递过来d指定。写入的来源有两个:* 一个是流水线寄存

    6、器D中的内容(load指令读出内容),即存储器数据;* 一个是ALU的计算结果指令执行时从左移向右通过数据通路。但有两处从右向左的例外: WB级,它把运算结果写回中间靠左位置的寄存器堆中; IF级,它把经过计算的下一条指令的地址写入程序计数器PC中。下一条指令地址的计算方法有两种:一种是当前PC加4;另一种是当前PC加字地址偏移量,偏移量在指令中定义出。(二)流水线模型机的指令系统和指令格式ALU操作类型的指令存储器访问指令条件转移指令无条件转移指令 ALU指令除了把运算结果写入寄存器堆之外,也把ZERO标志写入Z寄存器。 条件转移指令使用Z标志决定是否转移,其它指令不影响Z寄存器。1、对于a

    7、dd/and/or/xor rd,rs,rt指令 /rd rs op rt其中rs和rt是两个源操作数的寄存器号,rd是目的寄存器号。2、对于sll/srl rd,rt,shift 指令 /rd rt 移动 shift位3、对于addi rt,rs,imm 指令 /rt rs+imm(符号拓展)rt是目的寄存器号,立即数要做符号拓展到32位。4、对于andi/ori/xori rt,rs,imm 指令 /rt rs op imm(零拓展)因为是逻辑指令,所以是零拓展。5、对于load rt,offset(rs) 指令 /rt memoryrs+offsetload是一条取存储器字的指令。寄存器

    8、rs的内容与符号拓展的offset想加,得到存储器地址。从存储器取来的数据存入rt寄存器。6、对于store rt,offset(rs) 指令 / memoryrs+offset rtstore是一条存字指令。存储器地址的计算方法与load相同。7、对于beq rs,rt,label指令 /if(rs=rt) PC labelbeq是一条条件转移指令。当寄存器rs内容与rt相等时,转移到label。如果程序计数器PC是beq的指令地址,则label=PC+4+offset2=72=1.将上述结果从第三个时钟周期开始和EXE_Alu的值核对,结果一致,说明CPU的EX级是正确的。第五行MEM_A

    9、lu是访问内存阶段的地址,由于这一阶段若访问内存,则其地址是根据ALU的运算结果得到的,所以除了在时间上落后EXE_Alu的值一个周期外,该行的值应该和上一行一致。仿真结果和预期的结果相同。第六行WB_Alu是需要回写到寄存器的结果,若指令是load指令,则结果应该是从存储器取出的值;否则其应该是ALU的运算结果。观察仿真的结果,第二条指令是load指令,load的地址是7,而7号存储器被初始化为了7,对应的时间是1200ns-1400ns。对于其他指令,WB_Alu的值应该和上一行相同。仿真的结果与预期一致,证明指令成功执行。代码成功实现了一个流水线CPU。通过这次实验,我对Verilog编

    10、程有了更深入的实践和了解,也更加熟悉流水线CPU的内部结构与组成,也激发了我对计算机系统结构这门课的强烈兴趣。可以根据流水线CPU的特点和结构,自己尝试编写更多的指令,使指令系统更丰富。 2019.6.7 数据冒险问题(一)数据冒险数据冒险是指由于流水线上指令重叠执行,改变了原来串行执行的读/写操作数顺序,使得后面依赖前面指令结果的指令得不到准备好的数据。例如下面的指令序列:I1: add r1,r2,r3I2: sub r4,r1,r5I3: and r6,r7,r1I4: or r8,r1,r9I5: addi r10,r1,100画出这些指令的执行时空图,结果如下:可以看到,第一条指令对r1的值进行了修改,而I2,I3,I4读取的值是没有修改的r1,即第一条指令还没有来得及回写数据,使得后续指令出错。(二)数据冒险的解决方法1. 提前回写让写寄存器堆的操作提前半个周期,即由时钟的下降沿打入;读在后半周期。设一个时钟周期是10ns,寄存器堆的访问只需要5ns。这样,在上图的例子当中,I4读取


    注意事项

    本文(电子科技大学计算机系统结构综合实验实验报告Word文档下载推荐.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开