发明名称 具有远跳跃与远呼叫指令之退回分支预测机制的处理器
摘要 一种可于一微处理器中处理远跳跃-呼叫分支指令之方法与装置,其系可减少微处理器于管线中发生暂停之情况。该微处理器包括有一远跳跃-呼叫分支目标缓冲器,其系可储存已由微处理器管线所执行过之远跳跃-呼叫分支指令中的程式段基础与偏移量。当微处理器自记忆体中提取一现行远跳跃-呼叫指令时,若该指令命中,则将有一索引指令产生于该分支目标缓冲器中。于指令命中情况下,一主推测性目标位址将可产生,且后续指令系可自该主推测性目标位址处继续执行。若发生未中的情况时,利用该程式段基础与远跳跃目标偏移量遂可产生一退回的推测性目标位址,其中该程式段基础与偏移量系自现行远跳跃-呼叫指令中所撷取出来。管线在没有重新清洗的状况下可继续执行。若在现行远跳跃-呼叫指令被分解后,实际的目标位址与推测性目标位址系为相同,则流程可继续执行且其系可节省时间。否则该管线将需要清洗,而整个流程将必须重新开始。
申请公布号 TWI231450 申请公布日期 2005.04.21
申请号 TW092123372 申请日期 2003.08.26
申请人 智慧第一公司 发明人 葛拉.柯尔;汤玛斯.麦当劳
分类号 G06F9/32 主分类号 G06F9/32
代理机构 代理人 何文渊 台北市信义区松德路171号2楼
主权项 1.一种微处理器,包括:一记忆体,其系用来储存可被执行之指令;一提取阶层,其系用来自该记忆体中提取指令,而该指令系包括具有一现行程式段基础与偏移量之一现行远跳跃指令;一远跳跃-呼叫分支目标缓冲器,位于该提取阶层中,其系包括有一测试机制以决定该缓冲器中是否命中该现行远跳跃-呼叫分支指令,而该缓冲器系可储存该现行程式段基础与偏移量以纪录前面所执行过之远跳跃-呼叫指令的目标位址;以及一退回的推测性目标位址产生器,其系耦接至该远跳跃-呼叫分支目标缓冲器,并可于该缓冲器发生未中情形时,自于该现行远跳跃呼叫分支指令相关之该现行程式段基础与偏移量中产生一退回的远跳跃呼叫推测性目标位址。2.如申请专利范围第1项所述之微处理器,其中该退回的推测性目标位址产生器系可将该现行程式段基础与该现行跳跃呼叫指令之偏移量相加总,以算得该退回的远跳跃呼叫推测性目标位址。3.如申请专利范围第1项所述之微处理器,其中该微处理器系包括一索引产生器,该索引产生器系耦接至该远跳跃呼叫分支目标缓冲器且可用来产生一远索引资料,其方法系于该现行远跳跃-呼叫指令之位址中移除一高阶位元的预设数字。4.如申请专利范围第2项所述之微处理器,其中该推测性目标位址产生器更包括有耦接至该远跳跃呼叫分支目标缓冲器之一程式段基础输入,以便该推测性目标位址产生器可自其中接收到程式段基础资讯。5.如申请专利范围第2项所述之微处理器,其中该推测性目标位址产生器更包括有耦接至该远跳跃呼叫分支目标缓冲器之一偏移量输入,以便该推测性目标位址产生器可自其中接收到偏移量资讯。6.如申请专利范围第2项所述之微处理器,其中该推测性目标位址产生器更包括有耦接至该远跳跃呼叫分支目标缓冲器之一未中输入,而该推测性目标位址产生器系可于其中接收到未中资讯。7.如申请专利范围第1项所述之微处理器,其中该微处理器更包括有耦接至该提取阶层之一多层指令管线,其系可用来处理被提取之指令。8.如申请专利范围第7项所述之微处理器,其中该指令管线更包括有一执行阶层以用来于管线中执行指令。9.如申请专利范围第8项所述之微处理器,其中该执行阶层系可执行该现行远跳跃呼叫分支指令以决定一实际远跳跃呼叫目标位址。10.如申请专利范围第9项所述之微处理器,其中该执行阶层系包括远跳跃分解逻辑,其系可用来比较该退回的远跳跃呼叫推测性目标位址与该实际远跳跃呼叫目标位址。11.如申请专利范围第10项所述之微处理器,其中该远跳跃分解逻辑系可于该退回的远跳跃呼叫推测性目标位址与该实际远跳跃呼叫目标位址不相同时清洗该管线,而若两者相同,则该远跳跃分解逻辑系可允许指令之继续执行。12.如申请专利范围第1项所述之微处理器,其中该远跳跃呼叫分支目标缓冲器系储存有一程式段基础及偏移量,以供N个各别的推测性已执行之远跳跃呼叫分支指令使用,而其中N为整数。13.一种用于微处理器中之分支预测方法,该微处理器系具有一指令管线以执行指令,而该方法系包括:自一记忆体中提取一现行远跳跃呼叫分支指令,该现行远跳跃呼叫分支指令系包括一现行程式段基础及偏移量。测试一远跳跃呼叫分支目标缓冲器以决定该缓冲器是否命中该现行远跳跃呼叫分支指令,而该缓冲器系可储存该现行程式段基础与偏移量以纪录前面所执行过之远跳跃呼叫指令的目标位址;以及当该缓冲器发生未中情况时,依据该现行远跳跃呼叫分支指令之该现行程式段基础与偏移量产生一退回的远跳跃呼叫推测性目标位址。14.如申请专利范围第13项所述之方法,其中该远跳跃呼叫分支目标缓冲器系储存有一程式段基础及偏移量,以供N个各别的已执行之推测性远跳跃呼叫分支指令使用,而其中N为整数。15.如申请专利范围第13项所述之方法,于该缓冲器发生未中情况时更包括有一步骤,其系可于该退回的推测性目标位址中提取一目标指令,并开始执行该目标指令。16.如申请专利范围第15项所述之方法,更包括有一步骤,其系于不清洗该指令管线之情况下继续该目标指令之执行。17.如申请专利范围第16项所述之方法,更包括有一步骤,其系继续执行该现行跳跃呼叫分支指令,直到该现行跳跃呼叫分支指令决定出该现行跳跃呼叫分支指令之实际目标位址为止。18.如申请专利范围第17项所述之方法,更包括有一比较该现行跳跃呼叫分支指令之实际目标位址与该退回的推测性目标位址是否为相同之步骤。19.如申请专利范围第18项所述之方法,更包括有一步骤,当发现该现行跳跃呼叫分支指令之实际目标位址与该退回的推测性目标位址系为相同时,则该微处理器系继续执行后续指令。20.如申请专利范围第18项所述之方法,更包括有一步骤,当发现该现行跳跃呼叫分支指令之实际目标位址与该退回的推测性目标位址系为不同时,则该微处理器系进行指令管线之清洗动作。21.如申请专利范围第13项所述之方法,当该缓冲器发生现行远跳跃呼叫分支指令命中情况时,可自该现行程式段基础与偏移量中决定一主要推测性目标位址,其系储存于该缓冲器中并与该现行远跳跃呼叫分支指令相关。22.如申请专利范围第21项所述之方法,更包括有一步骤,其系于该主要推测性目标位址中提取一目标指令。23.如申请专利范围第22项所述之方法,更包括有一步骤,其系于不清洗该指令管线之情况下,由该微处理器继续执行后续之指令。图式简单说明:图一系为一方块图,说明一传统微处理器中之各项管线阶层。图二系为本发明所揭露之微处理器的一方块示意图。图三系为一流程图,其说明本发明所揭露之微处理器管线中远跳跃分解逻辑之操作流程。
地址 美国