发明名称 用于侦测与更正错误的假想分支目标位址快取记忆体分支之装置、系统及方法
摘要 一种装置,用以侦测由一管线化微处理器所作之错误的假想分支,以及更正该错误的假想分支。一分支目标位址快取记忆体(BTAC)快取已执行之分支指令的目标位址。在管线初期,于解码一指令前,基于一指令快取记忆体之提取位址命中BTAC而执行一假想分支至一快取目标位址。当该假想分支执行时,一命中位元被设定。稍后在管线中,该假定之分支指令被解码和执行。若该命中位元因该指令而被设定,则检查该已解码之指令,并将正确的目标位址及方向与假想的版本做一比较,以确定该假想分支是否错误。若侦测到错误,该分支目标位址快取记忆体就会更新或无效化,且处理器会分支至适当位址以更正错误。
申请公布号 TW538336 申请公布日期 2003.06.21
申请号 TW090132654 申请日期 2001.12.28
申请人 智慧第一公司 发明人 葛兰 亨利;汤玛斯 麦当劳;泰瑞 派克斯
分类号 G06F12/00 主分类号 G06F12/00
代理机构 代理人 何文渊 台北市信义区松德路一七一号二楼
主权项 1.一种用于一微处理器中之装置,用以侦测该微处理器是否错误地分支至由一分支目标位址快取记忆体(BTAC)所提供之一假想目标位址,该装置包含:一储存元件,储存一指示,以指出该微处理器在不知关联于该指示之一指令是否为分支指令的情况下,是否分支至该BTAC提供之假想目标位址;一指令解码逻辑,组态为在微处理器分支至该假想目标位址后接收并解码该指令;以及一预测检查逻辑,耦接至该指令解码逻辑,用以告知分支控制逻辑,若该指令解码逻辑指出该指令不是分支指令且该指示显示微处理器已分支至假想目标位址,则微处理器系错误地分支至假想目标位址。2.如申请专利范围第1项所述之装置,其中该储存元件位于一指令缓冲器中,该指令缓冲器储存复数个指令,其中包含该指令。3.如申请专利范围第1项所述之装置,其中该指示指出微处理器在不确定指令解码逻辑所解码之该指令是否相同于BTAC为其快取该假想目标位址之一指令的情况下,分支至快取于BTAC之该假想目标位址。4.如申请专利范围第1项所述之装置,其中该指示指出微处理器已因应一选取一指令快取记忆体之一指令快取线的提取位址,分支至BTAC所提供之该假想目标位址。5.如申请专利范围第4项所述之装置,其中该指示指出微处理器已因应该提取位址,在不确定一先前执行的指令是否存在于该指令快取线的情况下,分支至该假想目标位址,其中BTAC为该先前执行的指令而快取该目标位址。6.如申请专利范围第1项所述之装置,其中该指令解码逻辑被组态为确定该指令之一第一指令长度。7.如申请专利范围第6项所述之装置,其中该预测检查逻辑被组态为告知该分支控制逻辑,若该第一指令长度与从BTAC接收其所快取之一第二指令长度不相吻合,则微处理器已错误地分支至假想目标位址。8.如申请专利范围第1项所述之装置,其中该预测检查逻辑被组态为告知该分支控制逻辑,若该指示关联于该指令之一位元组,而该微处理器之一指令集未将该位元组定义为一有效的运算码位元组,则微处理器已错误地分支至假想目标位址。9.如申请专利范围第8项所述之装置,其中该微处理器指令集是一x86架构的指令集。10.如申请专利范围第1项所述之装置,其中该装置更包含:位址产生逻辑,耦接至该指令解码逻辑,用以产生该指令之一正确目标位址;以及一比较器,耦接至该位址产生逻辑,比较BTAC所提供之假想目标位址与该指令之该正确目标位址,以及依据该比较提供一不吻合指示(mismatch indicator)至该预测检查逻辑。11.如申请专利范围第10项所述之装置,其中该预测检查逻辑被组态为告知该分支控制逻辑,若该不吻合指示显示假想目标位址与该指令之该正确目标位址不相吻合,则微处理器已错误地分支至假想目标位址。12.如申请专利范围第1项所述之装置,其中该装置更包含:一执行逻辑(execution logic),运作上耦接至该指令解码逻辑,用以确定该指令之一正确方向,该正确方向指明该指令是否被采行,该执行逻辑提供该正确方向至该预测检查逻辑。13.如申请专利范围第12项所述之装置,其中该预测检查逻辑被组态为告知该分支控制逻辑,若该正确方向指明该指令不被采行,则微处理器已错误地分支至假想目标位址。14.一种用于一微处理器中之装置,用以侦测该微处理器是否错误地假想分支至由一分支目标位址快取记忆体(BTAC)所提供之一目标位址,该装置包含:一储存元件,储存一指示,以指出该微处理器是否在未先确定是否有一分支指令存在于一指令快取记忆体内一提取位址所选取之一指令位元组线中的情况下,基于该提取位址而假想分支至BTAC提供之目标位址;一指令解码逻辑,组态为在微处理器假想分支至该目标位址后,接收并解码该指令位元组线中之指令位元组,该指令解码逻辑更组态为指出该指令位元组线是否包含一分支指令;以及一预测检查逻辑,耦接至该指令解码逻辑,若该指示显示微处理器已假想分支至该目标位址,且指令解码逻辑指出该指令位元组线不包含分支指令,则该预测检查逻辑提供一错误讯号至分支控制逻辑。15.如申请专利范围第14项所述之装置,其中该目标位址是由微处理器中一假想呼叫/返回堆叠而非假想BTAC,因应一快取于BTAC之指示所提供,该指示指出该指令位元组线包含一返回指令。16.一种微处理器,用以侦测及更正一错误的假想分支,该微处理器包含:一指令快取记忆体,提供一提取位址选取之一指令位元组线,该提取位址被送至一位址滙流排上之该指令快取记忆体;一分支目标位址快取记忆体(BTAC),耦接至该位址滙流排,因应该提取位址而提供一先前执行的分支指令之一假想目标位址,不论该先前执行的分支指令是否存在于该指令位元组线中;一控制逻辑,耦接至BTAC,组态为控制一多工器以在一第一周期选取该假想目标位址作为该提取位址;以及一预测检查逻辑,耦接至BTAC,组态为侦测该控制逻辑是否控制该多工器错误地选取了该假想目标位址;其中该控制逻辑更组态为控制该多工器以在一第二周期选取一正确位址作为该提取位址,以回应该预测检查逻辑侦测到该错误的选取。17.如申请专利范围第16项所述之微处理器,其中该第二周期在该第一周期之后。18.如申请专利范围第16项所述之微处理器,更包含:一指令解码逻辑,组态为接收及解码该指令位元组线中之复数个指令位元组,并向该预测检查逻辑指明是否有一分支指令存在于该复数个指令位元组中。19.如申请专利范围第18项所述之微处理器,其中该预测检查逻辑对控制逻辑是否控制该多工器错误地选取该假想目标位址之侦测包含该预测检查逻辑确定一分支指令不存在于该复数个指令位元组中。20.如申请专利范围第16项所述之微处理器,更包含:一分支目标位址产生逻辑,组态为接收该指令位元组线,并产生包含于该指令位元组线之一指令之一指令指标;其中该正确位址包含该指令之该指令指标。21.如申请专利范围第20项所述之微处理器,其中该指令包含于该指令位元组线,并位于该指令位元组线中之该先前执行的分支指令之一位置。22.如申请专利范围第21项所述之微处理器,其中该位置被快取于BTAC中。23.如申请专利范围第16项所述之微处理器,更包含:一分支目标位址产生逻辑,组态为接收该指令位元组线,并依据包含于该指令位元组线之一分支指令的执行,产生包含于该指令位元组线之该分支指令之一正确分支目标位址;其中该正确位址包含该正确分支目标位址。24.如申请专利范围第23项所述之微处理器,其中该预测检查逻辑对控制逻辑是否控制该多工器错误地选取该假想目标位址之侦测包含该预测检查逻辑确定该正确分支目标位址与该假想目标位址不相吻合。25.如申请专利范围第23项所述之微处理器,其中该分支指令包含于该指令位元组线,并位于该指令位元组线中之该先前执行的分支指令之一位置。26.如申请专利范围第25项所述之微处理器,其中该位置被快取于BTAC中。27.如申请专利范围第16项所述之微处理器,更包含:一执行逻辑,组态为接收该指令位元组线,并产生包含于该指令位元组线之一分支指令之一正确方向,该正确方向基于包含于该指令位元组线之该分支指令的执行而产生。28.如申请专利范围第27项所述之微处理器,其中该预测检查逻辑对控制逻辑是否控制该多工器错误地选取该假想目标位址之侦测包含该预测检查逻辑确定该正确方向指明包含于该指令位元组线之该分支指令不被采行。29.如申请专利范围第27项所述之微处理器,其中该分支指令包含于该指令位元组线,并位于该指令位元组线中之该先前执行的分支指令之一位置。30.如申请专利范围第29项所述之微处理器,其中该位置被快取于BTAC中。31.如申请专利范围第16项所述之微处理器,更包含:一分支目标位址产生逻辑,组态为接收该指令位元组线,并产生包含于该指令位元组线之一指令之下个指令之一指令指标,该指令位于该指令位元组线中之该先前执行的分支指令之一位置;其中该正确位址包含该指令之下个指令之该指令指标。32.如申请专利范围第31项所述之微处理器,其中该位置被快取于BTAC中。33.如申请专利范围第16项所述之微处理器,更包含:一指令解码逻辑,组态为接收及解码该指令位元组线,并指定包含于该指令位元组线之一指令之一长度,该指令位于该指令位元组线中之该先前执行的分支指令之一位置。34.如申请专利范围第33项所述之微处理器,其中该预测检查逻辑对控制逻辑是否控制该多工器错误地选取该假想目标位址之侦测包含该预测检查逻辑确定该指令之该长度与为该先前执行的分支指令而快取于该假想BTAC之一指令长度不相吻合。35.如申请专利范围第34项所述之微处理器,更包含:一分支目标位址产生逻辑,组态为接收该指令,并产生该指令之一指令指标;其中该正确位址包含该指令之该指令指标。36.如申请专利范围第16项所述之微处理器,更包含:一指令解码逻辑,组态为接收及解码该指令,并指明包含该指令之复数个位元组中的哪一个为一运算码位元组。37.如申请专利范围第36项所述之微处理器,其中该预测检查逻辑对控制逻辑是否控制该多工器错误地选取该假想目标位址之侦测包含:该预测检查逻辑确定控制逻辑是基于该指令之一位元组而非指令解码逻辑所指明之该运算码位元组,而控制该多工器选取该假想目标位址。38.如申请专利范围第16项所述之微处理器,更包含:一分支目标位址产生逻辑,组态为接收该指令位元组线,并产生包含于该指令位元组线之一指令之一指令指标,该指令位于该指令位元组线中之该先前执行的分支指令之一位置;其中该正确位址包含该指令之该指令指标。39.如申请专利范围第16项所述之微处理器,其中该假想BTAC快取该假想目标位址之一项目(entry)被无效化,以回应预测检查逻辑侦测到该错误的选取。40.如申请专利范围第16项所述之微处理器,其中该假想BTAC以一关联于该先前执行的分支指令之方向预测来更新,该假想BTAC系回应预测检查逻辑侦测到控制逻辑控制该多工器错误地选取该假想目标位址而进行更新。41.如申请专利范围第16项所述之微处理器,其中该假想目标位址系回应预测检查逻辑侦测到控制逻辑控制该多工器错误地选取该假想目标位址而在该假想BTAC中被更新。42.如申请专利范围第16项所述之微处理器,其中该预测检查逻辑包含一错误输出(error output),耦接至控制逻辑,用以告知控制逻辑,该预测检查逻辑已侦测到控制逻辑控制该多工器错误地选取该假想目标位址。43.如申请专利范围第16项所述之微处理器,其中该微处理器之复数个管线阶段被清空,以回应预测检查逻辑侦测到控制逻辑控制该多工器错误地选取该假想目标位址。44.如申请专利范围第16项所述之微处理器,更包含:一指令缓冲器,耦接至该指令快取记忆体,用以缓冲该指令位元组线;其中该指令缓冲器因应预测检查逻辑侦测到控制逻辑控制该多工器错误地选取该假想目标位址而被清空。45.如申请专利范围第16项所述之微处理器,其中该假想BTAC与该指令快取记忆体实质上被并行存取。46.一种用以从错误地分支至一假想目标位址的情况回复之方法,包含:为一分支指令产生一假想目标位址,该分支指令被假定存在于一提取位址所选取之一指令快取线中;分支至该假想目标位址,不论该假定之分支指令是否存在于该指令快取线中;在产生该假想目标位址后,产生该假定的分支指令之一正确目标位址;确定该假想目标位址是否吻合该正确目标位址;以及若假想目标位址不吻合该正确目标位址,则分支至该正确目标位址。47.如申请专利范围第46项所述之方法,更包含:在该确定动作之前,储存一指示,以指出该分支至假想目标位址的动作是否发生;以及只有在该指示指出该分支至假想目标位址的动作发生时,才进行该分支至该正确目标位址的动作。48.如申请专利范围第46项所述之方法,其中该产生正确目标位址的动作包含使用假定的分支指令之复数个指令位元组来计算该正确目标位址。49.如申请专利范围第46项所述之方法,更包含:若该假想目标位址不吻合该正确目标位址,则以该正确目标位址更新一分支目标位址快取记忆体中之一包含该假想目标位址之项目。50.一种用以从错误地分支至一分支指令之一假想目标位址的情况回复之方法,该分支指令被假定存在于一指令快取线中,该指令快取线由一指令快取记忆体回应一提取位址而提供,该假想目标位址由一分支目标位址快取记忆体(BTAC)回应该提取位址而假想地产生,该方法包括:在BTAC假想地产生该假想目标位址后,解码该假定之分支指令;因应该解码动作,确定该假定之分支指令是否为一非分支指令;以及若该假定之分支指令为一非分支指令,则分支至该假定的分支指令之一指令指标。51.如申请专利范围第50项所述之方法,更包含:因应该解码动作,计算该假定的分支指令之该指令指标。52.如申请专利范围第50项所述之方法,更包含:若该假定之分支指令为一非分支指令,则使BTAC中一包含该假想目标位址之项目无效。53.如申请专利范围第52项所述之方法,其中使该项目无效的动作先于该分支至该指令指标的动作而执行。54.一种用以从错误地分支至一假想目标位址的情况回复之方法,该假想目标位址关联于假定存在于一提取位址所选取一快取线中之一分支指令,该假想目标位址由一分支目标位址快取记忆体(BTAC)回应该提取位址而提供,该方法包括:在BTAC提供该假想目标位址后,解码该假定之分支指令;确定该假定的分支指令之一长度;以及若假定的分支指令之该长度与分支目标位址快取记忆体所假想提供之一指令长度不相吻合,则分支至该假定的分支指令之一指令指标。55.如申请专利范围第54项所述之方法,更包含:若假定的分支指令之该长度与分支目标位址快取记忆体所假想提供之该指令长度不相吻合,则使BTAC中一包含该假想目标位址之项目无效。56.如申请专利范围第55项所述之方法,其中使该项目无效的动作先于该分支至该指令指标的动作而执行。57.一种用以从错误地分支至一假想目标位址的情况回复之方法,包括:产生一分支指令之一假想目标位址,该分支指令被假定存在于一提取位址所选取一指令快取线中;产生该假定的分支指令之一假想方向预测;分支至该假想目标位址,不论该假定的分支指令是否存在于该指令快取线中;在产生该假想方向预测后,产生该假定的分支指令之一正确方向;确定该正确方向是否不被采行;以及若该正确方向不被采行,则分支至假定的分支指令之下个指令之一指令指标。58.如申请专利范围第57项所述之方法,更包含:若该正确方向不被采行,则回应该正确方向而更新一分支目标位址快取记忆体中之该假想方向预测。59.一种用于一微处理器中之装置,用以侦测是否错误地分支至一假想呼叫/返回堆叠所提供之一假想返回位址,该装置包含:一储存元件,储存一指示,以指出该微处理器是否在不知关联于该指示之一指令是否为分支指令的情况下,分支至该假想返回位址;一指令解码逻辑,组态为在微处理器分支至该假想返回位址后接收并解码该指令;一预测检查逻辑,耦接至该指令解码逻辑,用以告知分支控制逻辑,若指令解码逻辑指出该指令不是分支指令且该指示显示微处理器分支至假想返回位址,则微处理器已错误地分支至假想返回位址。60.一种微处理器,用以侦测及更正一错误的假想分支,包含:一指令快取记忆体,提供一提取位址所选取之一指令位元组线;一假想呼叫/返回堆叠,因应该提取位址而提供一先前执行的分支指令之一假想返回位址,不论该先前执行的分支指令是否存在于该指令位元组线中;一控制逻辑,耦接至该假想呼叫/返回堆叠,组态为控制一多工器在一第一周期选取该假想返回位址作为提取位址;以及一预测检查逻辑,耦接至该控制逻辑,用以侦测控制逻辑是否控制该多工器错误地选取了该假想返回位址;其中该控制逻辑更组态为控制该多工器在一第二周期选取一正确位址作为提取位址,控制逻辑选取该正确位址,以回应预测检查逻辑侦测到控制逻辑控制该多工器错误地选取了该假想返回位址。61.一种用于一微处理器中之方法,用以从错误地分支至一假定分支指令之一假想目标位址的情况回复,该方法包含:因应一指令快取记忆体之提取位址而提供一假想目标位址;因应该指令快取记忆体之提取位址而产生一指令快取线;在提供该假想目标位址后从该指令快取线解码一指令;其中该徵处理器为第一次执行该指令的解码;在该解码动作前分支至该假想目标位址;以及在该分支至假想目标位址之动作后,回应该解码动作分支至该指令之一正确的目标位址。62.一种用以从错误地分支至一假想目标位址的情况回复之方法,包含:提供一分支指令之一假想目标位址,该分支指令被假定存在于一提取位址所选取一指令快取线中;分支至该假想目标位址,不论该假定的分支指令是否存在于该指令快取线中;以及若该假定的分支指令不存在于该指令快取线中,则更正一错误的分支。63.一种用于一微处理器中之分支装置,用以侦测该微处理器何时错误地分支至一假想目标位址,该假想目标位址由一分支目标位址快取记忆体(BTAC)所提供,该装置包含:一分支命中指示,用以指出该微处理器何时分支至该假想目标位址,不论关联于该分支命中指示之一指令是否为分支指令,皆提供该分支命中指示;一指令解码逻辑,组态为接收及解码该指令,并指出该指令是否为分支指令;一预测检查逻辑,耦接至该指令解码逻辑,用以确定该微处理器错误地分支至该假想目标位址;其中当指令解码逻辑指出该指令不是分支指令,以及该分支命中指示显示该微处理器分支至该假想目标位址时,该微理器即为错误地分支至该假想目标位址。图式简单说明:图一 系为PentiumⅡ/Ⅲ处理器先前技术之相关部分方块图。图二 系为Athlon处理器先前技术之相关部分方块图。图三 系依本发明绘示之管线化微处理器之方块图。图四 系依本发明绘示图三处理器之假想分支预测装置。图五 系图四之指令快取记忆体之方块图。图六 系依本发明绘示图四分支目标位址快取记忆体(BTAC)之方块图。图七 系依本发明绘示图四BTAC之图六项目之格式的方块图。图八 系依本发明绘示之图四假想分支预测装置之运作的流程图。图九 系依本发明绘示之图四假想分支预测装置使用图八步骤之一运作范例之方块图。图十 系依本发明绘示之图四假想分支预测装置侦测与更正错误的假想分支预测之运作流程图。图十一 系依本发明列举之程式码片段及一表格,为说明图十假想分支预测错误之侦测与更正之一范例。图十二 系依本发明绘示之图四分支预测装置包含一混合假想分支方向预测装置(hybrid speculativebranch direction predictor)之另一具体实施例的方块图。图十三 系为图四之双呼叫/返回堆叠(dual call/returnstacks)之运作流程图。图十四 系为说明图四之分支预测装置选择性地以非假想分支预测来覆盖(override)假想分支预测,藉以改进本发明之分支预测准确度之运作流程图。图十五 系依本发明绘示之用以进行图四BTAC中目标位址置换工作之装置的方块图。图十六 系依本发明绘示图十五装置之一运作方法的流程图。图十七 系依本发明之另一具体实施例绘示图十五装置之一运作方式的流程图。图十八 系依本发明之另一具体实施例绘示之用以进行图四BTAC中目标位址置换动作之装置方块图。图十九 系依本发明之另一具体实施例绘示之用以进行图四BTAC中目标位址置换动作之装置方块图。
地址 美国