[发明专利]非循序执行的微处理器及其操作方法有效
申请号: | 201010185616.2 | 申请日: | 2010-05-19 |
公开(公告)号: | CN102087591A | 公开(公告)日: | 2011-06-08 |
发明(设计)人: | 马修·D·戴;罗德尼·E·虎克 | 申请(专利权)人: | 威盛电子股份有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 钱大勇 |
地址: | 中国台*** | 国省代码: | 中国台湾;71 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 循序 执行 微处理器 及其 操作方法 | ||
技术领域
本发明是有关于非循序执行微处理器(out-of-order executionmicroprocessor),特别是有关于非循序执行微处理器内的存储器加载指令的效能。
背景技术
微处理器具有加载指令(load instruction),用以将数据由存储器来源位置(source memory location)加载至微处理器的暂存器;以及储存指令,用以将数据由微处理器的暂存器储存至存储器目的地位置(destinationmemory location)。一般而言,微处理器会遭遇的情况是加载指令所指定(specify)的存储器来源地址等同于较先前的(older)储存指令的存储器目的地地址。换言之,较先前的储存指令将数据写入至加载指令正在读取的存储器地址。这种情况通常称为储存碰撞(store collision)。当储存碰撞发生时,为了要正确地执行程序,微处理器必须确定加载指令接收由较先的地址重迭的储存指令所写入的数据。
非循序执行微处理器并不依照程序顺序(out of the program order)来执行指令。当储存碰撞发生时,这会是个问题,原因在于加载指令可能会在较先前的储存指令之前被发布(issued)并执行,因此使得加载指令接收到错误的数据。在这种情况下,加载指令不能将加载的数据退返(retire)至其架构目的地暂存器(architectural destination register)。更确切地说,加载指令必须接收正确的储存数据,并且将正确的数据退返至目的地暂存器(destination register)。
让加载指令能够接收正确的储存数据的一种方法是重新执行(replay)。换言之,微处理器会检测前述的情况,并在执行储存指令之后,使得加载指令被重新发出并且重新执行。由于储存指令已经被执行,故在后续执行操作中,加载指令将可接收到正确的储存数据。
然而,重新执行指令所付出的代价是相当大的,特别是发生在具有非常多管线级的微处理器中。首先,储存指令可能依附于其它指令;事实上,储存指令是位于相依性长链接(long chain of dependencies)的一端,所以储存指令可能不会执行这么多时钟;因此,加载指令在被重新执行之前可能要等待很多时钟周期。若加载指令在重新执行前须等待的时钟周期愈多,则处理加载指令所造成的效能损失(penalty)也就愈严重。此外,当加载指令被重新发布并重新执行时,加载指令必须通过相关管线级(relevant pipelinestages)而被再次地传回(pass back again),并因此花费更多时钟周期。若加载指令需要通过愈多的管线级才能将加载指令传回,以处理加载指令的时钟周期数来看,则效能损失也就愈严重。
Panwar等人的专利(美国专利号:6,006,326)借着使用储存关于加载指令和储存指令的彩色位(color bits)的特殊阵列(special array)试图解决这个问题。彩色位阵列中所包含的项目(entries)对应于指令高速缓存的项目,当加载指令或储存指令由指令高速缓存(instruction cache)被读取时,彩色位阵列亦会被读取。在发布早先于储存指令的加载指令而造成的重新执行之后,彩色位阵列中相应的一个项目的彩色位会被更新为相同的色彩值(colorvalue),用以表示加载指令和储存指令的相依性(依附关系)。当储存指令和加载指令再度被设置于管线中而执行时,相依性比对逻辑(dependencychecking logic)检测到储存指令和加载指令具有相同的色彩值,故将相依性回报至指令调度逻辑器(instruction scheduling logic),其中指令调度逻辑器在具有类似色彩的储存指令(similarly colored store instruction)已经被调度后,才对此加载指令进行调度。
因为彩色位阵列需要为指令高速缓存的每个加载指令和储存指令储存彩色位,所以彩色位阵列的大小会是指令高速缓存项目个数的函数。因为指令高速缓存的项目数目通常很多,所以彩色位阵列的潜在缺点是其在微处理器中需要大量的储存空间。一个大的彩色位阵列会消耗大量的电源和微处理器的物理空间。
因此,需要一种新的机制,用以减少在非循序执行微处理器中发生储存碰撞时,重新执行加载指令的次数。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于威盛电子股份有限公司,未经威盛电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010185616.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于体积数据集的多模式显像的方法和设备
- 下一篇:模块化电动汽车