计算机组成原理 “CPU结构和功能”.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
这个概念与cache的局部性原理很相似。动态转移预测缓冲器可进一步解释如下: 2位预测器 Computer+Organization+and+Architecture+8th+Edition by William Stallings.pdf 流程图:无时序 状态图:有时序 取指流水线 * 大多数的应用都有行为良好的分支。因此现代的分支预测器能到达到90%以上的预测正确率。但是面对一些不可预见的分支和不可知的模式,分支预测器就没有多大用了。 注意到data这个数组里面的值是平均分布于0-255之间的。当数据排好序之后,前半部分的数据都会小于128,所以不会进到if语句里面,后半部分的值都大于128,所以会进到循环语句。 可以看到,当数据排好序之后,对分支预测器十分友好,很容易进行预测。但是,当数据完全是随机的时候,分支预测器便失去了用处,因为无法预测随机的数据,因此会有大概50%的预测失败率。 * 以下在顺序流水线中也不会发生WAW: ld R1,R2,#1000; add R1, R2, R3; * MIPS的cache写策略? For pipeline stalls, be sure to freeze up and bubble down. Thus, for instance, if you get a cache miss on a load in the memory stage, you should stall this load by (1) freezing the Fetch, Decode, Execute, and Memory stages (i.e. these stages dont move forward and keep repeating the same operations over and over), and (2) send a bubble on to the write stage. This will keep the load instruction in the memory stage. You should then keep stalling until the cache is filled and then release the pipeline to move forward; in the cycle that you release things, the load will be retried and continue as if nothing happened. Stores will stall if the write buffer is full; same thing -- the store keeps retrying until it is able to write into the write buffer. 需要增加I$,D$检测和控制? * 立即寻址、寄存器寻址R-type、基址寻址I-type、PC相对寻址、伪直接寻址 注意:寄存器间接寻址是基址寻址的特殊形式(偏移为0) 见carl hamacher等《computer organization》P476 寻址方式:包括index(变址寻址,由index register + offset)、indirect、自增、自减,以及它们的组合等。 采用复杂的寻址方式(如间址寻址)的指令不一定必然使得执行快,多次访存可能造成stall。其优势在于减小了代码的长度。可以由多条简单指令实现。 适合流水的寻址方式:register、register indirect、index。相对寻址是index的特例。基址寻址与变址寻址同。 是否一定要直接寻址? 条件标志:不同指令序列造成最终的条件标志不同。 如: Add r1,r2 Compare r3,r4 Branch=0 改成: Compare r3,r4 Add r1,r2 Branch=0 add和comp指令都可能改变条件位,如果branch依赖于条件标志,则编译器不能进行这种指令调度。 一、运算结果标志位 1、进位标志CF(Carry Flag)进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。 2、奇偶标志PF(Parity Flag)奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,

文档评论(0)

kunpengchaoyue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档