发明名称 在假想分支目标位址快取记忆体中置换目标位址之装置及方法
摘要 一种用于管线化微处理器的装置及方法,用以置换一分支目标位址快取记忆体(BTAC)快取线中两个目标位址其中之一。若两个项目中只有一个是无效的,该无效的项目就被置换。若两个项目皆为有效,则最近最少被使用的项目被置换。若两个项目皆无效,则被置换的是,BTAC中并非最后以一无效项目写入之一边所对应的项目,其中该边由一全域状态暂存器(global statusregister)指出。在一具体实施例中,只有当两个项目皆无效时,在一边被写入的情况下,才更新全域状态。在另一具体实施例中,BTAC于每条快取线储存N个项目,其中N大于1。状态暂存器保存着用于确定N个边中哪一边为最近最少被写入的资讯。最近最少被写入之一边则被选择用来置换。
申请公布号 TWI229815 申请公布日期 2005.03.21
申请号 TW090132650 申请日期 2001.12.28
申请人 智慧第一公司 发明人 汤玛斯.麦当劳;泰瑞.派克斯
分类号 G06F9/00 主分类号 G06F9/00
代理机构 代理人 何文渊 台北市信义区松德路171号2楼
主权项 1.一种用以将一被采行分支指令之一目标位址写入一分支目标位址快取记忆体(BTAC)的装置,该写入系于该被采行的分支指令执行时进行,该BTAC具有复数个储存元件,用于快取复数个已执行分支指令之复数个目标位址,每一该复数个储存元件包含第一与第二项目以储存一目标位址,该装置包含:一全域指示器(global indicator),在BTAC复数个储存元件之第一与第二项目中指定一全域项目;一分支控制逻辑,耦接至该全域指示器,依据全域指示器选取该第一与第二项目其中之一,以写入该被采行分支指令之目标位址。2.如申请专利范围第1项所述之装置,其中该第一与第二项目之全域项目在任一该复数个储存元件之第一与第二项目皆无效时,于该些无效的项目中指定何者为最后被写入的。3.如申请专利范围第2项所述之装置,其中该分支控制逻辑选取该全域指示器所指定该第一与第二项目的全域项目之一相对项目,以写入该被采行分支指令之目标位址。4.如申请专利范围第3项所述之装置,其中该分支控制逻辑更新该全域指示器以指定该选取的项目。5.如申请专利范围第4项所述之装置,其中该分支控制逻辑连同于BTAC将该被采行分支指令之目标位址写入该选取项目的动作,而更新该全域指示器。6.如申请专利范围第4项所述之装置,其中对于每一该第一与第二项目,该复数个储存元件亦包含一相关联之有效指示器(valid indicator),以指出存于每一该第一与第二项目之目标位址是否有效。7.如申请专利范围第6项所述之装置,其中只有在选择要更新的其中一该复数个储存元件之所有有效指示器显示相关联之第一与第二项目皆无效的情况下,分支控制逻辑依据该全域指示器选取该些无效的第一与第二项目其中之一。8.如申请专利范围第6项所述之装置,其中若在选择要更新的该复数个储存元件之一中,其第一与第二项目只有一个为无效,则分支控制逻辑不管该全域指示器,而选择写入该无效的项目。9.如申请专利范围第6项所述之装置,其中对于每一该该复数个储存元件,BTAC包含一相关联之最近最少被使用指示器(least recently used indicator),以指出相关联储存元件之第一与第二项目中,何者为最近最少被使用的。10.如申请专利范围第9项所述之装置,其中若在选择要更新的该复数个储存元件之一中,其第一与第二项目皆为有效,则分支控制逻辑依据该最近最少被使用指示器,选择写入该有效的第一与第二项目其中之一,而不管该全域指示器。11.如申请专利范围第6项所述之装置,其中该分支控制逻辑只有在选择要更新的该复数个储存元件之一中,其第一与第二项目皆为无效的情况下,更新该全域指示器。12.如申请专利范围第1项所述之装置,其中BTAC依据该被采行分支指令之一指令指标,选取该复数个储存元件其中之一,以写入该被采行分支指令之目标位址。13.一种用以将一目标位址写入一分支目标位址快取记忆体(BTAC)的装置,该写入系于一被采行的分支指令执行时进行,该装置包含:一分支目标位址快取记忆体(BTAC),包含复数个储存元件,用以快取复数个已执行分支指令之目标位址,每一该复数个储存元件包含第一与第二项目以储存一目标位址;一全域指示器(global indicator),组态为储存一全域指示,当该复数个储存元件其中之一最后被写入者中,该第一与第二项目至少有一个无效时,该全域指示即指出在任何该复数个储存元件中,是该第一与第二项目中的哪一个最后被写到;以及一分支控制逻辑,耦接至该全域指示器,依据全域指示器选取该第一与第二项目其中之一以写入被采行分支指令之目标位址。14.一种在一分支目标位址快取记忆体(BTAC)中置换一目标位址的方法,该BTAC具有复数个储存位置,每个储存位置皆有一A项目与一B项目,以快取一目标位址,该方法包含:执行一分支指令与产生该分支指令之一目标位址;依据该分支指令之一指令指标选取BTAC之复数个储存位置其中之一;确定所选取BTAC储存位置之A与B项目两者是否皆为无效;检查由该复数个BTAC储存位置全域共享之一置换状态旗标;以及若所选取BTAC储存位置之A与B项目两者皆为无效,则依据该置换状态旗标将所产生之该目标位址写入所选取BTAC储存位置之A与B项目其中之一。15.如申请专利范围第14项所述之方法,其中该确定所选取BTAC储存位置之A与B项目两者是否皆为无效的动作包含:检查关联于各A与B项目之一有效状态指示器,该有效状态指示器包含于所选取之BTAC储存位置。16.如申请专利范围第14项所述之方法,其中该检查置换状态旗标的动作包含:藉由一写入任一该复数个储存位置的动作,其中该被写入之储存位置的A与B项目两者皆无效,以确定A与B项目中何者为最后被写入的。17.如申请专利范围第16项所述之方法,其中该写入目标位址的动作包含写入A与B项目中一并非最后被写入的项目,如该置换状态旗标所指出的。18.如申请专利范围第14项所述之方法,其中该检查置换状态旗标的动作包含:藉由一写入任一该复数个储存位置的动作,其中该被写入之储存位置的A与B项目中至少有一项目为无效,以确定A与B项目中何者为最后被写入的。19.如申请专利范围第18项所述之方法,其中该写入目标位址的动作包含写入A与B项目中一并非最后被写入的项目,如该置换状态旗标所指出的。20.如申请专利范围第14项所述之方法,更包含:确定所选取BTAC储存位置之A与B项目中是否只有一个为无效;以及若A与B项目中只有一个为无效,则将所产生之该目标位址写入所选取BTAC储存位置之A与B项目中之该无效者。21.如申请专利范围第14项所述之方法,更包含:确定所选取BTAC储存位置之A与B项目两者是否皆有效;以及依据关联于所选取BTAC储存位置之一置换状态旗标,将所产生之该目标位址写入所选取BTAC储存位置之A与B项目其中之一。22.如申请专利范围第21项所述之方法,其中该依据关联于所选取BTAC储存位置之该置换状态旗标,将该目标位址写入所选取BTAC储存位置的A与B项目其中之该项目的动作包含:所写入A与B项目其中之该项目为最近最少被使用的,如关联于所选取BTAC储存位置之该置换状态旗标所指出的。23.一种在一分支目标位址快取记忆体(BTAC)中置换一目标位址的方法,该BTAC具有复数个储存位置,每个储存位置皆有N个项目,以快取一目标位址,其中N为一大于一的整数,该方法包含:执行一分支指令与产生该分支指令之一目标位址;依据该分支指令之一指令指标选取BTAC之复数个储存位置其中之一;确定所选取BTAC储存位置之所有N个项目是否皆为无效;检查由该复数个BTAC储存位置全域共享之一置换状态旗标;以及若所选取BTAC储存位置之所有项目皆为无效,则依据该置换状态旗标将所产生之该目标位址写入所选取BTAC储存位置之N个项目其中之一。24.如申请专利范围第23项所述之方法,其中该检查全域置换状态旗标的动作包含:在复数个写入任一该复数个储存位置的动作中,其中该被写入之储存位置的所有N个项目皆为无效,去确定N个项目中何者为最近最少被写入的。25.如申请专利范围第24项所述之方法,其中该写入目标位址的动作包含所写入N个项目其中之该项目为最近最少被写入的,如该全域置换状态旗标所指出的。26.一种管线化微处理器,包含:一分支目标位址快取记忆体(BTAC),包含复数条快取线,每一该复数条快取线储存N个目标位址,N是一大于一的整数;一执行逻辑,耦接至该BTAC,组态为执行一分支指令并产生该分支指令之一目标位址,以存于BTAC;一位址选择逻辑,耦接至BTAC,组态为选取该已执行分支指令之一指令指标以更新BTAC;一状态暂存器,耦接至该执行逻辑,储存该复数条BTAC快取线之全域置换状态;一分支控制逻辑,组态为在储存于该指令指标所选取其中一该复数条快取线内之N个目标位址中,选取其中一个,以该分支指令之目标位址来置换,分支控制逻辑组态为对该N个目标位址其中之该目标位址所作的选取,是随着储存于状态暂存器之该全域置换状态而定。27.如申请专利范围第26项所述之微处理器,更包含:一指令快取记忆体,由一提取位址作索引;其中该位址选择逻辑选取该提取位址以读取BTAC。28.如申请专利范围第26项所述之微处理器,其中该分支控制逻辑组态为只有在存于所选取快取线中之所有N个目标位址皆无效的情况下,为了置换存于所选取快取线中的N个目标位址之一而作的选取,是随着该全域置换状态而定。29.如申请专利范围第28项所述之微处理器,其中该控制逻辑在复数个先前写入该复数条快取线之一的动作中,其中该先前被写入之快取线的所有N个目标位址皆无效,去选取该N个目标位址中一最近最少被写入者。30.如申请专利范围第28项所述之微处理器,其中该控制逻辑在复数个先前写入该复数条快取线之一的动作中,其中该先前被写入之快取线至少有一无效的目标位址,去选取该N个目标位址中一最近最少被写入者。31.如申请专利范围第26项所述之微处理器,其中该分支控制逻辑组态为只有在存于所选取快取线之该N个目标位址中有多于一个为无效的情况下,为了置换存于所选取快取线中的该N个目标位址之一而作的选取,是随着该全域置换状态而定。32.如申请专利范围第31项所述之微处理器,其中该控制逻辑在复数个先前写入该复数条快取线之一的动作中,其中该先前被写入之快取线有多于一个之无效目标位址,去选取该N个目标位址中一最近最少被写入者。图式简单说明:图一 系为Pentium Ⅱ/Ⅲ处理器先前技术之相关部分方块图。图二 系为Athlon处理器先前技术之相关部分方块图。图三 系依本发明绘示之管线化微处理器之方块图。图四 系依本发明绘示图三处理器之假想分支预测装置。图五 系图四之指令快取记忆体之方块图。图六 系依本发明绘示图四分支目标位址快取记忆体(BTAC)之方块图。图七 系依本发明绘示图四BTAC之图六项目之格式的方块图。图八 系依本发明绘示之图四假想分支预测装置之运作的流程图。图九 系依本发明绘示之图四假想分支预测装置使用图八步骤之一运作范例之方块图。图十 系依本发明绘示之图四假想分支预测装置侦测与更正错误的假想分支预测之运作流程图。图十一 系依本发明列举之程式码片段及一表格,为说明图十假想分支预测错误之侦测与更正之一范例。图十二 系依本发明绘示之图四分支预测装置包含一混合假想分支方向预测装置(hybrid speculativebranch direction predictor)之另一具体实施例的方块图。图十三 系为图四之双呼叫/返回堆叠(dual call/returnstacks)之运作流程图。图十四 系为说明图四之分支预测装置选择性地以非假想分支预测来覆盖(override)假想分支预测,藉以改进本发明之分支预测准确度之运作流程图。图十五 系依本发明绘示之用以进行图四BTAC中目标位址置换工作之装置的方块图。图十六 系依本发明绘示图十五装置之一运作方法的流程图。图十七 系依本发明之另一具体实施例绘示图十五装置之一运作方式的流程图。图十八 系依本发明之另一具体实施例绘示之用以进行图四BTAC中目标位址置换动作之装置方块图。图十九 系依本发明之另一具体实施例绘示之用以进行图四BTAC中目标位址置换动作之装置方块图。
地址 美国