具有多位通路预测掩码的指令高速缓存的制作方法_3

文档序号:8531858阅读:来源:国知局
速缓存存取操作的数目可与数据阵列110的高速缓存操作(例如,高速缓存存取操作,例如高速缓存加载、高速缓存提取或其组合)的数目、数据阵列110的特定行的数目或特定高速缓存线220a-d的数目相关联。在特定实施例中,高速缓存操作的时间周期及/或数目可由控制逻辑150跟踪。当内容加载到特定高速缓存线中时,可将特定高速缓存线的对应预测掩码值设定为初始值,且可更新将对应于特定高速缓存线的通路识别为后续高速缓存线的所有其它预测掩码值。举例来说,当高速缓存线A预测掩码值254为“0001”(例如,指示与高速缓存线D 220d相关联的第四通路是后续通路)且将内容(例如,新内容)加载到高速缓存线D 220d中时,高速缓存线D预测掩码值可设定为初始值且高速缓存线A预测掩码值254可设定为“0000”,指示在执行高速缓存线A220a之后,对应于高速缓存线D220d的新内容的通路尚未经预测作为“下一通路预测”。
[0041]在内容加载到特定高速缓存线中且将对应预测掩码值设定为初始值之后,控制逻辑150可确定(例如,识别)接下来存取哪个通路(例如,在特定高速缓存线作为后续通路之后)。在确定后续通路之后,控制逻辑150可设定对应预测掩码值的位以识别所述后续通路。
[0042]举例来说,当内容(例如,一或多个指令)加载到数据阵列110的高速缓存线A220a中(且高速缓存线A预测掩码值254经初始化到“0000”)时,控制逻辑150可确定存取哪个通路。当对应于高速缓存线D 220d的通路被识别为高速缓存线A 220a的后续时,控制逻辑150可将高速缓存线A预测掩码值254设定为“0001”。因此,当存取高速缓存线A且将高速缓存线A预测掩码值254设定为预测掩码152的值时,可选择性地启用驱动器240d以在预测高速缓存线A 220a之后存取的高速缓存线D 220d时驱动第四通路(例如高速缓存线D 220d)的内容。对应于高速缓存线A预测掩码值254的第四通路的位可保持确证直至替换(例如,收回或移除)高速缓存线D 220d的内容(例如,数据)或直至将高速缓存线A预测掩码值254重设到初始值。或者,对应于第四通路的位可保持确证直至高速缓存线D 220d的内容(例如,数据)无效。
[0043]控制逻辑150还可确定(例如,检测)是否由于预测掩码152应用到数据阵列110而发生误预测。举例来说,当预测掩码152设定为对应于数据阵列110的特定高速缓存线220a-d的特定预测掩码值的值时,控制逻辑150可确定特定预测掩码值是否导致误预测。当特定预测掩码值导致误预测时,控制逻辑150可识别待驱动的正确通路(例如待启用的正确驱动器)及基于识别的正确通路更新特定预测掩码值。
[0044]举例来说,当预测掩码152经设定为“0001”的高速缓存线A预测掩码值254时,可选择性地启用与第四通路相关联的驱动器240d以驱动高速缓存线D 220d的内容到多路复用器260。当控制逻辑150基于驱动到多路复用器260的第四通路确定发生误预测时,控制逻辑150可识别待驱动的正确通路且更新高速缓存线A预测掩码值254。举例来说,控制逻辑150可提供信号到多路复用器,所述信号识别待驱动的正确通路或识别当发生误预测时未经驱动的一或多个通路。在特定实施例中,对应于高速缓存线C 220c的第三通路由控制逻辑150识别为正确通路且控制逻辑150将高速缓存线A预测掩码值254更新为“0011”,反映与高速缓存线C 220c相关联的第三通路也是高速缓存线A220a的后续者的确定。
[0045]多路复用器260可选择数据阵列110的输出中的一者来提供作为指令高速缓存102的输出。指令高速缓存102的输出可提供到与处理器系统200相关联的执行单元(未展示)。多路复用器260可经配置以接收通路选择信号作为标记阵列280的输出。基于通路选择信号,多路复用器260可选择数据阵列110的输出中的一者来提供作为多路复用器260的输出(例如,指令高速缓存102的输出)。
[0046]程序计数器可提供标记部分274(与接下来将执行的指令相关联)到标记阵列280。在特定实施例中,可与控制逻辑150应用预测掩码152(与当前正在执行的指令相关联)并行地将标记部分274提供到标记阵列280,所述预测掩码预测可与接下来将执行的指令相关联的一或多个通路。在另一特定实施例中,可在(例如,响应于)误预测之后将标记部分274提供到标记阵列280。标记阵列280可识别数据阵列110中的包含接下来将执行的指令的位置(例如,高速缓存线或通路)。标记阵列280可提供所述位置到多路复用器160作为通路选择信号。当预测掩码152导致数据阵列110的一个以上通路驱动到多路复用器260时,多路复用器可基于从标记阵列280接收的通路选择信号选择特定通路。在预测掩码152并不启用对应于由通路选择信号识别的通路的特定线驱动器的情况下,控制逻辑150可确定发生误预测。为了恢复(例如,修正)误预测,可启用所有驱动器240a-d并且多路复用器260可选择正确通路以提供到执行单元。在替代实施例中,标记阵列280可将通路选择信号提供到控制逻辑150及多路复用器260。在误预测的情况下,控制逻辑150可通过基于通路选择信号启用单个驱动器240a-d来从误预测恢复。控制逻辑150可将正确通路的指示提供到多路复用器260。
[0047]在操作期间,特定指令从数据阵列110的特定高速缓存线220a_d提取并且(通过执行单元)被执行。基于所提取及/或执行的特定指令,控制逻辑150识别对应于特定高速缓存线的预测掩码值。控制逻辑150可将预测掩码152设定为预测掩码值以选择性地启用数据阵列110的一或多个驱动器240a-d。当启用一或多个驱动器240a-d时,可将对应于一或多个启用的驱动器(例如,一或多个驱动器240a-d)的所选高速缓存线(例如,一或多个高速缓存线220a-d)的内容提供到多路复用器260。
[0048]与所应用的预测掩码152并行,程序计数器270可将标记部分274 (与接下来将执行的指令相关联)提供到标记阵列280。基于标记部分274,标记阵列280可确定将在特定指令之后存取的数据阵列110的内容的位置(例如,通路及/或高速缓存线)。标记阵列280可提供所述位置到多路复用器260作为通路选择信号。
[0049]多路复用器260可接收通路选择信号及对应于基于预测掩码152启用的一或多个驱动器(例如一或多个驱动器240a-d)的所选高速缓存线(例如,一或多个高速缓存线220a-d)的内容。当将由通路选择信号识别的通路提供到多路复用器260时,多路复用器260选择识别的通路并提供所述通路作为多路复用器260的输出。替代地,当由通路选择信号识别的通路不提供到多路复用器260时,控制逻辑150确定发生误预测并且启用一或多个驱动器240a-d以提供正确通路到多路复用器260。
[0050]通过选择性地启用多个驱动器240a_d的子集及驱动一个以上预测通路(但并非所有通路),或可对指令高速缓存102的每次数据存取实现功率效益。另外,处理器系统200可维持及更新数据阵列110的每一高速缓存线220a-d的预测掩码值。
[0051]参考图3,说明执行与指令高速缓存相关联的通路预测的方法300的第一说明性实施例的流程图。举例来说,指令高速缓存可包含图1的指令高速缓存102。在特定实施例中,方法300可通过图1的控制逻辑150来执行。
[0052]可在302处将对应于高速缓存线的多位通路预测掩码设定为初始值,并且可在304处提取高速缓存线。多位通路预测掩码可与包含具有多个高速缓存线的数据阵列的指令高速缓存相关联。多位通路预测掩码的值可对应于包含在指令高速缓存的数据阵列中的高速缓存线。举例来说,多位预测掩码可为预测掩码152并且数据阵列可为图1的数据阵列 IlOo
[0053]可在306处将多位通路预测掩码应用到多个线驱动器。可响应于多位通路预测掩码启用数据阵列的多个线驱动器的线驱动器子集。在特定实施例中,所述子集可包含多个线驱动器(例如,预测掩码设定有多个位并且同时启用多个线驱动器)。举例来说,多个线驱动器可包含图1的线驱动器140至144或图2的线驱动器240a-d。多位通路预测掩码可设定为作为高速缓存线的部分存储在数据阵列中的值(例如,对应于高速缓存线的多位预测掩码值)。
[0054]可在308处执行标记查找操作。在特定实施例中,308处的标记查找操作可与306处的将多位通路预测掩码应用到多个线驱动器并行(例如,同时或至少部分重叠)执行。举例来说,标记查找操作可使用图2的指令高速缓存102的标记阵列280执行。
[0055]可在310处选择性地设定对应于高速缓存线的多位通路预测掩码值的位。举例来说,多位通路预测掩码值的一或多个位可经设定以更新多位通路预测掩码值。可基于存取数据阵列(例如,加载数据或提取数据)的一或多个操作更新多位通路预测掩码值的一或多个位,如进一步参考图4所描述。所更新的多位通路预测掩码值(例如,所设定的位)可存储在可提供与指令高速缓存的多个高速缓存线的一对一关联的任何结构中。举例来说,更新的多位通路预测掩码值(例如,所设定的位)可存储在标记阵列、与高速缓存线相关联(例如,对应于所述高速缓存线)的寄存器中或作为高速缓存线的部分(例如,末端或开端)O
[0056]可基于高速缓存线加载操作或高速缓存线提取操作选择性地设定对应于高速缓存线的多位通路预测掩码值的一或多个位。举例来说,当产生误预测时,可基于在存取对应于多位通路预测掩码的高速缓存线之后存取的所识别后续通路(例如,正确通路)更新多位通路预测掩码值。作为另一实例,当数据加载到高速缓存线中时,可将对应于高速缓存线的多位通路预测掩码值设定为初始值。另外,当数据加载到高速缓存线中时,可更新各自对应于不同高速缓存线的一或多个其它多位通路预测掩码值。举例来说,当对应于另一高速缓存线的另一多位通路预测掩码值将与高速缓存线相关联的通路识别为后续通路并且所识别的高速缓存线的内容经修改时,可基于正加载到高速缓存线中的数据更新(例如可选择性地设定一或多个位)对应于另一高速缓存线的另一多位通路预测掩码以指示与高速缓存线相关联的通路不再被识别(例如,预测)为后续通路。
[0057]根据方法300,当选择性地启用线驱动器子集时,可驱动一或多个预测的通路(但并非所有通路)并且可在指令高速缓存的数据存取期间实现功率效益。另外,使用上述通路预测技术,通路的误预测(例如后续通路不由多位通路预测掩码152识别)应只发生一次,因为在误预测之后,设定(例如,更新)对应于高速缓存线的预测掩码值的位以识别后续通路。可存储所更新的多位通路预测掩码值以在高速缓存线的下一次(例如,后续)存取之后使用(例如,预测一或多个通路)。
[0058]参考图4,说明执行与指令高速缓存相关联的通路预测的方法400的另一说明性实施例的流程图。方法400还可监视在指令高速缓存上执行的一或多个操作并且维持对应于指令高速缓存的第一高速缓存线的预测掩码值。举例来说,指令高速缓存可包含图1的指令高速缓存102。在特定实施例中,可通过图1的控制逻辑150执行方法400。
[0059]可在402
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1