加强转移预测的中央处理器架构的制作方法

文档序号:6633915阅读:189来源:国知局
专利名称:加强转移预测的中央处理器架构的制作方法
技术领域
本发明涉及一种加强转移预测的中央处理器架构,尤其涉及一种于一中央处理器内部至少设置有二个以上的流水线,且各流水线各自设置有复数个级,对于一支线中预测执行的指令失败时,可藉由另一支线来执行正确的指令,故可有效降低执行指令的次数,且于多级的流水线中具有更佳的降低执行指令的次数的效果。
背景技术
集成电路设计(IC Design)的产业,其是代表我国于智能财产权中的重大贡献,该产业皆属于发明专利的设计,且具备相当高度的创作,若无顶尖的精英份子从事研究即无法顺利发展,而为开发中或未开发国家所无法轻易跨入的领域,因此集成电路设计对于我国电子产业的竞争力而言,具有举足轻重的地位。
于计算机用的中央处理器(CPU)的领域中,流水线(Pipeline)于高速的中央处理器中属于主要的架构,因为在一个周期(Cycle)内不可能完成中央处理器必须执行的指令是不可能的,因此一个被执行的指令必须要被分成多级处理,且每一级皆可利用一周期来执行,因此一个高速的中央处理器必须有多级处理方能获得较佳的效率。
但于中央处理器设置流水线时会产生”转移预测(The Branch Prediction)”的问题,假设有一程序的设定如下如果预测状态为A,则一执行程序为B,而另一执行程序为C。
中央处理器若欲执行程序B与C,必须要等待状态A有执行出一个结果,但是已具流水线的中央处理器不能只为了得到状态A的结果,然后就将程序B、C塞入多级流水线中,其正确的做法应该为已具流水线的中央处理器必预测A的结果,以及读取程序B、C的指令其中之一者进入流水线中,否则具有多级流水线的中央处理器将处于等待状态A的闲置状态,如果中央处理器所预测状态A与所读取程序B的指令皆为正确的,那么所中央处理器即可迅速获得正确结果,但是如果中央处理器所预测的状态A为错误的,那么中央处理器将会丢失其结果及停止B程序,再使C程序进行流水线且执行它,因此浪费许多处理时间,该已知中央处理器的架构虽然为是高速的,但是亦无法提高其运算效能,此即为本发明欲改进的目标。

发明内容
基于解决以上所述已知技术的缺点,本发明为一种加强转移预测的中央处理器架构,本发明的主要目的为于一中央处理器内部至少设置有二个以上的流水线,且各流水线各自设置有复数个级,对于一支线中预测执行的指令失败时,可藉由另一支线来执行正确的指令,故可有效降低执行指令的次数,且于多级的流水线中具有更佳的降低执行指令的次数的效果。
本发明的另一目的在于上述二个以上流水线所设置的相同功能级可依设计需求做成一合并架构,用以降低中央处理器的价格及其设计的复杂性。
本发明采用以下技术方案来实现,按本发明一种加强转移预测的中央处理器架构执行指令的方法,该加强转移预测的中央处理器架构包括内存(1),内存控制器(2)及所连接的中央处理器(3),中央处理器内部包括有一高速缓冲区(31),至少两个流水线AB,及四个级,其中A流水线包括A读取(32)及A解码(33)二个级;B流水线包括B读取(34)及B解码(35),而二流水线共同使用的级包括有执行(36)及回写(37),该方法的特征在于若转移预测结果是正确的,而平时中央处理器利用A流水线来执行执令,则在第0周期中,A读取执行读取”CMPR1,R2”动作,而B读取不执行该读取动作在第1周期中A解码执行”CMPR1”解码动作,同时执行读取”JB process_A动作,而B解码不执行解码读取动作;在第2周期中执行“CMPR1,R2”动作,同时A读取执行读取”MOVR3,R1”和解码“JB process_A”动作;在第3周期中,该“CMPR1,R2”执行回写动作,该“JB process_A”“执行”执行动作,A解码执行“MOVR3,R1”解码动作而不执行读取动作,B解码不执行解码动作,但执行“MOVR3,R2”读取动作;在第四周期中,’JB process_A”执行回写动作,“MOVR3,R2”“执行”执行动作,而B解码执行“MOVR3,R2”解码动作。不执行读取动作,而A读取不执行解码读取动作;在第5周期中,“MOVR3,R2”执行回写动作,而不“执行”执行动作,A解码,B解码不执行解码动作,A读取,B读取不执行读取动作。
该方法的特征还在于若“转移预测”结果是错误的,则在第0周期中A读取执行“CMPR1,R2”读取动作,而B读取不执行读取动作;在第1周期中,A解码执行“CMPR1,R2”解码动作,同时执行读取“JBprocess_A”动作,而B解码,B解码不执行上述动作;在第2周期中,“CMPR1,R2”“执行”执行动作,同时A读取执行“CMPR3,R1”读取动作,A解码执行“JB process_A”解码动作,而B解码,B读取不执行上述动作;在第3周期中,“CMPR1,R2”“执行”回写动作,同时执行“JB process_A”执行动作,A解码执行“MOVR3,R1”解码动作,B解码不“执行”执行“MOVR3,R1”解码动作,A读取不执行读取动作,B读取执行“MOVR3,R2”读取动作;在第4周期中,“JB process_A”执行回写动作,B解码执行“MOVR3,R2”解码动作,A解码不执行“MOVR3,R2”动作。A读取和B读不执行读取动作;在第5周期中,仅执行“MOVR3,R2”执行动作;在第6周期中,仅执行“MOVR3,R2”回写动作。
以下结合


及发明详细说明进一步对本发明做更深入的说明。

图1为本发明装设多流水线的中央处理器架构的功能方块图;图2为单一流水线架构来执行若干指令的第一流程图表;图3为单一流水线架构来执行若干指令的第二流程图表;
图4为利用图1架构来执行若干指令的第一流程图表;图5为利用图1架构来执行若干指令的第二流程图表。
附图标号说明1内存;2内存控制器;3中央处理器;31高速缓存区;32-A读取;33-A解码;34-B读取;35-B解码;36执行;37回写。
具体实施例方式
兹配合下列的

本发明的详细结构,及其连结关系,以利做一一了解。
请参阅图1所示,为本发明装设多流水线的中央处理器架构的功能方块图,其中包括一内存1及一内存控制器2及所连接的中央处理器3,中央处理器3内部包括有一高速缓存区(Cache)31及二个流水线(Pipeline)及四个级(Stage),其中A流水线(Pipeline A)包括有A读取32及A解码33的二个级;B流水线(Pipeline B)包括有B读取34及B解码35的二个级,而二流水线的共同使用级包括有执行36及回写37,当然针对不同的中央处理器的设计,可以有设置更多的流水线及级。
请参阅图2所示,为单一流水线架构来执行若干指令的第一流程图表,假设中央处理器正在执行下列指令(1)CMP R1,R2(比较R1与R2的数值)(2)JB process A(若R1大于R2,则执行跳至流程A)(3)MOV R3,R2(将R2的数值搬移R3)流程A(4)MOV R3,R1(将R1的数值搬移R3)如果装置一流水线的中央处理器与单一流水线执行有关指令与转移预测是R1数值大于R2,且真实的情况亦为R1数值大于R2,此时执行结果就如图表所示其中每一个指令皆必须经过四个级,其分别依序为读取(Fetch)、解码(Decode)、执行(Execute)及回写(Writeback),方可完成所有的动作。
其中在第0个周期中,“读取”一“CMP R1,R2”的指令;于第1个周期中该“CMP R1,R2”进行“解码”动作,同时又读取下一个指令“JB processA”;于第2个周期中,该“CMP R1,R2”进行“执行”动作,同时“JB processA”进行“解码”动作,同时读取下一个指令“MOV R3,R1”(因R1数值确实大于R2数值,故执行process A);于第3个周期中,“CMP R1,R2”进行“回写”动作,“JB process A”进行“执行”动作,“MOV R3,R1”进行“解码”动作;于第4个周期中,“JB process A”进行“回写”动作,“MOVR3,R1”进行“执行”动作;于第5个周期中,“MOV R3,R1”进行“回写”动作。
由图表中可看出在“转移预测”正确的情况下,仅需要花六个周期(第0周期至第5周期)即可完成该些指令。
请参阅图3所示,为单一流水线架构来执行若干指令的第二流程图表,假设中央处理器正在执行下列指令(1)CMP R1,R2(比较R1与R2的数值)(2)JB process A(若R1大于R2,则执行跳至流程A)(3)MOV R3,R2(将R2的数值搬移R3)流程A(process A)(4)MOV R3,R1(将R1的数值搬移R3)如果装置一流水线的中央处理器与单一流水线执行有关指令与转移预测是R1数值大于R2,且真实的情况为R1数值却未大于R2,代表其“转移预测”结果是错误的,此时执行结果就如图表所示其中在第0个周期中,“读取”一“CMP R1,R2”的指令;于第1个周期中该“CMP R1,R2”进行“解码”动作,同时又读取下一个指令“JB processA”;于第2个周期中,该“CMP R1,R2”进行“执行”动作,同时“JB processA”进行“解码”动作,同时读取下一个指令“MOV R3,R1”;于第3个周期中,“CMP R1,R2”进行“回写”动作,“JB process A”进行“执行”动作,“MOV R3,R1”进行“解码”动作;于第4个周期中,“JB process A”进行“回写”动作,“MOV R3,R1”因为不符合真实故无法进行“执行”动作,因此又重新读取一指令“MOV R3,R2”;于第5个周期中,“MOV R3,R2”进行“解码”动作;于第6个周期中,“MOV R3,R2”进行“执行”动作;于第7个周期中,“MOV R3,R2”进行“回写”动作。
我们在发现该转移预测结果若未与真实情况相同时,此时必须要花费八个周期方可将指令执行完成,其原因是因为当中央处理器于第三个周期执行跳至流程A时,其结果是错误的,因此下一个指令应该是执行“将R2的数值搬移R3”,而非执行流程A的“将R1的数值搬移R3”。
但是中央处理器预测的结果如果是真实的话,才可执行读取“将R1的数值搬移R3”进入流水线的级,因此中央处理器必须舍弃“将R1的数值搬移R3”的指令,并重新读取“将R2的数值搬移R3”的指令,正因如此而浪费了两个周期来处理该些指令。
请参阅图4所示,为利用图1架构来执行若干指令的第一流程图表,一个中央处理器若装设有二个流水线(分别为A流水线及B流水线)来执行上述的若干指令,其中A流水线(Pipeline A)包括有A读取32及A解码33的二个级;B流水线(Pipeline B)包括有B读取34及B解码35的二个级,而二流水线的共同使用级包括有执行36及回写37。而其“转移预测”结果是正确的,平时中央处理器利用A流水线来执行指令,在第2个周期中,中央处理器对于“JBprocess A”这个指令进行译码后了解存在有另一个支线,因此中央处理器于第3个周期中读取该“JB process A”以后的其它指令进入B流水线中,于第3个周期之后,中央处理器执行“JB process A”指令时发现其结果为真实,因此于A流水线中执行下一个有效指令“将R1的数值搬移R3”,并同时放弃执行于B流水线中的指令,而中央处理器于六个周期内即将该些指令执行完毕。
请参阅图5所示,为利用图1架构来执行若干指令的第二流程图表,一个中央处理器若装设有二个流水线(分别为A流水线及B流水线)来执行上述的若干指令,其中A流水线(Pipeline A)包括有A读取32及A解码33的二个级;B流水线(Pipeline B)包括有B读取34及B解码35的二个级,而二流水线的共同使用级包括有执行36及回写37,其中有关指令与转移预测是R1数值大于R2,且真实的情况为R1数值却未大于R2,代表其“转移预测”结果是错误的,在第2个周期中,中央处理器对于“JB process A”这个指令进行译码后了解存在有另一个支线,同样地,中央处理器于第3个周期中读取该“JB processA”以后的其它指令进入B流水线中,于第三个周期之后,中央处理器执行“JBprocess A”指令时发现其结果为错误,因此于A流水线中执行下一个指令“将R1的数值搬移R3”乃于无效并放弃该指令,且执行于B流水线中的有效指令,其共执行七个周期,较图3所揭示的流程而言,节省了一个指令。
更甚者,该二个以上流水线所设置的相同功能级可依设计需求做成一合并架构,用以降低中央处理器的价格及其设计的复杂性。
藉由上述图1至图5的公开,即可了解本发明的主要为于一中央处理器内部至少设置有二个以上的流水线,且各流水线各自设置有复数个级,对于一支线中预测执行的指令失败时,可藉由另一支线来执行正确的指令,故可有效降低执行指令的次数,且于多级的流水线中具有更佳的降低执行指令的次数的效果,且上述二个以上流水线所设置的相同功能级可依设计需求做成一合并架构,用以降低中央处理器的价格及其设计的复杂性。上述的技术手段于市场上具极佳的商业价值,故提出专利的申请以寻求专利权的保护。
以上所述,仅为本发明的较佳实施例而已,不能以之限定本发明所实施的范围,即凡依本发明权利要求所作的均等变化与修饰,皆应仍属于本发明权利要求涵盖的范围内。
权利要求
1.一种加强转移预测的中央处理器架构,其中,是于一中央处理器内部至少设置有二个以上的流水线,且各流水线各自设置有复数个级,对于一支线中预测执行的指令失败时,可藉由另一支线来执行正确的指令,故可有效降低执行指令的次数,且于多级的流水线中具有更佳的降低执行指令的次数的效果。
2.如权利要求第1项所述的加强转移预测的中央处理器架构,其特征在于该二个以上流水线所设置的相同功能级可依设计需求做成一合并架构,用以降低中央处理器的价格及其设计的复杂性。
全文摘要
本发明涉及一种加强转移预测的中央处理器架构,其是于一中央处理器内部至少设置有二个以上的流水线,且各流水线各自设置有复数个级,对于一支线中预测执行的指令失败时,可藉由另一支线来执行正确的指令,故可有效降低执行指令的次数,且于多级的流水线中具有更佳的降低执行指令的次数的效果。
文档编号G06F9/38GK1904822SQ20051008865
公开日2007年1月31日 申请日期2005年7月29日 优先权日2005年7月29日
发明者郭建成 申请人:宇力电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1