UID869906
威望0
金钱34
交易诚信度0
主题1
帖子9
注册时间2011-9-14
最后登录2012-7-4
禁止发言
交易诚信度0
注册时间2011-9-14
|
马上注册 家电论坛,众多有奖活动等你来参与!
您需要 登录 才可以下载或查看,没有账号?注册
x
影响宁波流水线效率的因素:1.条件转移指令
最常见的就是条件转移指令。在存在转移指令的情况下,下一条需要执行的指令未必是程序计数器所指的指令。只有在这条转移指令执行完成后,才能判断下一条指令是什么。
这时,如果在遇到转移指令时,关闭流水线的进入端口防止错误发生,这种方法无疑会降低流水线的效率;同时程序中的条件转移是大量存在的,这势必使得流水线在很长的时间内闲置,从而影响计算机的性能。
有的计算机采用猜测式,在发现条件转移指令时,猜测可能会跳转到的语句,如果猜测正确,则流水线正常运行:如果猜测错误,则需要清空当前流水线的内容。
2.资源共享
由于使用流水线,若相邻的两条指令都对同一个资源进行操作时,或者前一条指令的输出是后一条指令的输入,这在没有流水线情况下是正常的,在流水线时就可能会出现错误。例如,前一条指令是写,后一条指令是读,当前一条指令保持结构没有完成时,后一条指令的读操作数就已经开始,这样后一条指令读到的就是未改写的数据。
为了解决这个问题,当遇到资源冲突时,就只好暂停后读指令进入流水线,这就降低了流水线的效率。显然,流水线步骤越多,越容易引起资源冲突的发生。
也可以在编译系统上做文章,当发现相邻的语句存在资源共享冲突的时候,在两者之间插入其他语句,将两条指令进入流水线的时间拉开,以避免错误。
3.寄存器相关
如果相邻的指令使用了相同的寄存器,这也会使流水线失常。
通常的解决方法是,如果此时还有其他寄存器可用,则给两个指令分配不问的寄存器,以避免冲突的发生。这对拥有大量的通用寄存器的精简指令系统计算机是个不错的方法。
4.中断系统
当有中断发生时,与条件转移指令类似,流水线也不得不停止,以载入中断处理程序,由于中断的其他方面的优点,这种影响对流水线而言,是不可避免的。
流水线响应中断有两种方式,—种是立即停止现有的流水线,称为精确断点法,这种方法能够立即响应中断,缩短了中断响应时间。但是增加了中央处理器的硬复杂度。
还有一种是在中断时,在宁波流水线内的指令继续执行,堵住流水线的入门,停止新的指令进入。当所有流水线内的指令执行后,再执行中断处理指令。这种方式中断响应时间较长。这种方式称为不精确断点法,其优点是实现控制简单。
本帖来自:www.cxkefan.com
|
|