- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MIPS流水线技术数据冒险转发策略探究
基于MIPS流水线技术数据冒险转发策略探究摘要:流水线技术是计算机加快处理指令的经典策略之一,迄今为止,几乎所有的计算机都采用了流水线技术来加速其中央处理器(CPU)的处理速度。然而,做到处理器的加速绝非轻而易举,流水线技术虽然巧妙地大幅提高了处理器的速度,但是这其中也包含着许多影响计算大局的关键问题,数据冒险就是其中一类。该文探究了数据冒险中数据被提前使用所带来的问题,并分析了专门针对此问题所用到的数据转发策略。
关键词:流水线技术;MIPS;数据冒险;转发策略
中图分类号: TP311 文献标识码: A 文章编号:1009-3044(2013)13-2946-05
流水线技术可以说是计算机制造艺术中的降龙十八掌,威力巨大而不失优雅的思想,就目前的计算机发展条件来说,其是提高处理器处理速度的关键。
简单来说,流水线技术是一种可以将多条指令的执行过程相互重叠的实现技巧。
让我们来从现实生活中举个例子,例如一位一级大厨在厨房做菜,一般来说,假设他可以将做菜分为以下四个步骤:
1) 在摆满了原材料的台子前挑选做菜的材料;
2) 在水池中清洗挑选出来的材料;
3) 一级厨师使用他眼花缭乱的技术进行炒菜;
4) 厨师炒完菜后将菜不紧不慢地送达客户的桌上。
对于一位厨师以及少量的客人来说,上述步骤似乎没有设么问题,我们的一级厨师只要专心地炒他的菜即可,仅有的几个客人也只需耐心地小等一会便可吃上美味佳肴。
然而,当客人变得多起来,情况就比较糟糕了,比如有1000个客人,厨师一个接一个地为客人炒菜就显得耗时太多了,总有看上去多的可怕的客人在抱怨等待时间太长,于是,这位可怜的厨师只好一边听着客人不耐烦的抱怨一边手忙脚乱的炒菜。
同样,不只是厨师会碰到这种棘手的事,每秒处理几亿计算的计算机也是任务艰巨,倘若只有少得可怜的CPU的计算机只是呆板的一个接一个地处理繁杂的计算任务,那计算机的响应时间就会被大幅拖长,其交互性就会大打折扣,客户很可能会因此对计算机失去信心。
不过幸运的是,流水线技术的出现很好地提高了CPU的处理速度。但是好事多磨,流水线技术在发展的过程中本身也包含着众多问题。
下面,就让我们结合MIPS汇编语言来分析一下流水线技术中的一种数据冒险问题,并分析一下专门应对此问题的数据转发策略。
1 流水线技术简介及数据冒险问题探究
1.1 流水线技术简介
正如概述中所述的,流水线技术是一种可以将多条指令的执行过程相互重叠的实现技巧。
可以就我们前面所举的一级厨师的例子来说明这个技巧的原理。
在概述中,厨师的做菜过程有四个步骤,简化来说即挑选材料、清洗材料、炒菜和上菜。若只有一个专门的厨师,则该厨师只能按部就班地一步一步来。
假设突然之间,厨师所在的餐馆富裕了,于是餐馆给厨师请了三个助手,一个是专门选原材料的材料师,一个是专门洗菜的,最后一个则是一个帅气的服务员,专门负责上菜,于是,厨师就可以一直待在灶台前专心地挥动锅铲进行炒菜这一单独事件。
按如上所述的情况,餐馆将会大有改观。假设以上的四个人很勤奋,一刻不停地坚守岗位,挑菜的一刻不停地在选材料,洗菜的一刻不停地清洗前面传到手中的菜,我们的一级大厨则不停地炒送过来的菜,最后服务员矜矜业业地不断为客人送上从厨房传来的菜。
现在的情况比起只有一个人不停地重复全部事情要好不少,假设以上四个步骤所花的时间是相同的,每个步骤花费一个单位时间,则在一个人的情况下,要每过四个单位时间才能搞定一个菜,但是在四个人各司其职的情况下,除了前三个单位时间没有菜被炒好外,以后每过一个单位时间便会有菜被炒好。这在要执行很多任务时会将速度加快不少,按上述描述,我们假设现在有八个单位时间,则一个人做完全部事情则只能抄完两个菜,倘若有四个人,则会炒好五个菜,在炒菜任务更多的情况下,这种加速就更可观了。
对于计算机处理指令来说,也可以用相同的技巧。
值得注意的是,MIPS汇编指令总是按照以上五个步骤的执行时间来运行,虽然有些MIPS汇编指令只会进行其中的四个或三个步骤,但是为了流水线技术的方便,这些指令也会运行五个单位执行时间,在多余的单位执行时间里,这些指令便什么都不做。
根据前文所述,计算机会将指令分为五个步骤执行,于是,使用流水线技术,这两条指令将会如下被执行:
1) 计算机从储存器中读取第一条指令;
2) 计算机在将第一条指令进行译码的同时从储存器中读取第二条指令;
3) 计算机执行将100加至$0储存的数据上,同时对第二条指令进行译码;
4) 计算机根据第一条指令而得出的储存地址读取数据,同时将600加至$0储存的数据上;
5) 计算机
文档评论(0)