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

文档序号:8531858阅读:来源:国知局
处将第一内容加载到数据阵列的第一高速缓存线中,且可在404处设定对应于第一高速缓存线的多位通路预测掩码值。在将数据加载到数据阵列的第一高速缓存线中之后,可将对应于第一高速缓存线的多位通路预测掩码值设定为初始值。举例来说,第一高速缓存线可包含图2的第一高速缓存线220a-d中的一者。在特定实施例中,第一内容可加载到高速缓存线A 220a中且可将高速缓存线A预测掩码值254设定为初始值。
[0060]在406处,可识别下一通路且可更新多位通路预测掩码值。下一通路可为第一高速缓存线的后续通路(例如,连续高速缓存线)且可更新对应于第一高速缓存线的多位通路预测掩码值以指示所识别的下一通路作为后续通路。下一通路可对应于在将第一内容加载到数据阵列的第一高速缓存线中之后存取(例如从其提取内容或加载内容至其中)的特定高速缓存线。
[0061]在加载第一内容及更新对应于第一高速缓存线的多位通路预测掩码值之后,在402至406处,可监视对高速缓存的后续存取以确定是否影响第一内容及对应于第一高速缓存线的多位通路预测掩码值。举例来说,当对第二高速缓存线进行后续存取时,可在408处进行是否提取第二高速缓存线或是否将第二内容加载到第二高速缓存线中的确定。举例来说,图1的控制逻辑150可通过每次存取数据阵列110时进行此类确定来监视数据阵列100。当确定第二内容已经加载到第二高速缓存线中时,处理前进到418,其中进行对所提取的第二高速缓存线是否为第一高速缓存线的确定。当在418处确定第二高速缓存线为第一高速缓存线时,第一高速缓存线的内容已经修改并且第一高速缓存线之后的所预测下一通路很可能不再有效。因此,处理前进到404,其中设定多位通路预测掩码值。举例来说,基于第二内容正在加载到及替换第一高速缓存线的第一内容,可将多位通路预测掩码值设定为初始值。在特定实施例中,设定多位通路预测掩码值的值包含将多位通路预测掩码值设定到初始值(例如,零值)。
[0062]替代地,当代替地在418处确定第二高速缓存线并非阵列的第一高速缓存线时,处理前进到416,其中可更新第一高速缓存线及/或第二高速缓存线的多位通路预测掩码值。将对应于第二高速缓存线的特定预测掩码值设定为初始值且可基于(例如,反映)第二内容正加载到第二高速缓存线中来更新高速缓存的预测掩码值。举例来说,当对应于第一高速缓存线的多位通路预测掩码值包含指示对应于第二高速缓存线的通路为预测通路(例如,在存取第一高速缓存线之后的后续通路)的确证位时,可更新对应于第一高速缓存线的多位通路预测掩码。当对应于第一高速缓存线的多位通路预测掩码包含确证位时,可通过解除确证所述确证位(例如,设定为逻辑零值)来更新对应于第一高速缓存线的多位通路预测掩码。因此,对应于第一高速缓存线的多位通路预测掩码值的特定位值(例如,与对应于第二高速缓存线的通路相关联)保持设定直至第二高速缓存线的内容从指令高速缓存移除(例如,从高速缓存线位置移除)。在更新多位通路预测掩码之后,方法400前进到408。在替代实施例中,当确定第二高速缓存线并非第一高速缓存线时,不更新对应于第一高速缓存线的多位通路预测掩码值的值。实情为,当在418处确定第二高速缓存线并非第一高速缓存线时,处理前进到408,且不基于数据(例如,第二内容)正加载到第二高速缓存线中来更新对应于第一高速缓存线的多位预测掩码值。
[0063]当代替地在408处确定第二高速缓存线已经提取(例如,存取)时,处理前进到410,其中进行对第二高速缓存线是否为第一高速缓存线的确定。当在410处确定第二高速缓存线并非第一高速缓存线时,处理前进到408。在特定实施例中,将对应于第二高速缓存线的特定预测掩码值提供到数据阵列。
[0064]替代地,当在410处确定第二高速缓存线为第一高速缓存线时,在412处将第一高速缓存线的预测掩码值应用(例如,提供)到数据阵列。可将多位通路预测掩码值设定为应用(例如,提供)到包含多个线驱动器的数据阵列的预测掩码的值。预测掩码应用到数据阵列(例如,多个线驱动器)选择性地驱动一或多个通路,所述通路预测为在提取(例如,存取)第一高速缓存线之后存取的“下一通路”。当待存取的正确“下一通路”不包含在预测为“下一通路”的一或多个通路中时发生误预测。举例来说,参考图2,可将高速缓存线A预测掩码值254设定为预测掩码152的值。在特定实施例中,在提取(例如,存取)第一高速缓存线之后将对应于第一高速缓存线的多位通路预测掩码值应用到数据阵列所述多个线驱动器。举例来说,将多位通路预测掩码应用到数据阵列的多个线驱动器可包含将预测掩码152应用到图1的线驱动器140至144或图2的线驱动器240a_d。在应用多位通路预测掩码之后,方法400前进到414。
[0065]在414处,进行对是否发生误预测的确定。当由于将预测掩码应用到数据阵列以选择性地启用数据阵列的一或多个驱动器而不驱动“下一通路”时可发生误预测。举例来说,可通过图1的控制逻辑150进行所述确定。当确定已发生所述误预测时,处理前进到416,其中更新多位通路预测掩码值。在误预测之后,可启用数据阵列的一或多个线驱动器。在特定实施例中,启用所有线驱动器。在另一特定实施例中,启用单个线驱动器。在另一特定实施例中,所启用的一或多个线驱动器并不包含先前启用的导致误预测的线驱动器。接着可基于完成的标记查找操作从数据阵列选择后续通路以识别将在已存取的第一高速缓存线之后驱动的正确通路(例如,正确高速缓存线)。控制逻辑可确定(例如,识别)在误预测之后驱动的后续通路并且基于所述后续通路更新第一高速缓存线的多位预测掩码值。因此,可基于识别在应用预测掩码导致误预测(例如,并未驱动正确通路)之后驱动的后续通路(例如,正确通路)来更新预测掩码值。当确定未发生误预测时,处理前进到408。
[0066]根据方法400,可保持及更新第一高速缓存线的多位通路预测掩码值。可将多位预测掩码值提供到指令高速缓存的数据阵列作为预测掩码以选择性地启用指令高速缓存的一或多个线驱动器。选择性地启用(或停用)一或多个线驱动器可起作用以驱动在存取第一高速缓存线之后驱动的一或多个预测“下一通路”。可基于对数据阵列的第二高速缓存线执行加载操作还是提取操作及/或第二高速缓存线是否为第一高速缓存线来更新多位预测掩码值。通过保持及更新多位通路预测掩码值以选择性地启用不到全部的指令高速缓存的线驱动器,可影响功率效率及处理器性能。
[0067]参考图5,说明执行与指令高速缓存相关联的通路预测的方法500的第三说明性实施例的流程图。举例来说,指令高速缓存可包含图1的指令高速缓存102。在特定实施例中,可由图1的控制逻辑150执行方法500。
[0068]在502处,可在指令高速缓存的数据阵列处接收多位通路预测掩码。举例来说,多位通路预测掩码可为多位通路预测掩码152且数据阵列可为图1的数据阵列110。多位通路预测掩码的值可存储在标记阵列、寄存器中或作为对应于多位通路预测掩码的指令高速缓存的高速缓存线的部分。在特定实施例中,通过指令高速缓存的控制逻辑从指令高速缓存的标记阵列、寄存器或高速缓存线接收多位通路预测掩码的值。
[0069]在504处,可响应于多位通路预测掩码的设定位选择性地启用数据阵列的线驱动器子集。可通过预测掩码的不同位选择性地启用(例如,接通或启动)或选择性地停用(例如,断开或撤销启动)一或多个线驱动器。在特定实施例中,预测掩码的每一确证位使待启动(例如,接通)的对应驱动器驱动高速缓存线(例如,高速缓存线的内容)到多路复用器。子集可大于单个线驱动器。举例来说,子集可包含许多个线驱动器(例如,多个线驱动器)。线驱动器的子集可包含在多个线驱动器中,例如图1的线驱动器140至144或图2的线驱动器 240a_d。
[0070]在506处,可将对应于线驱动器子集的每一驱动器的高速缓存线提供到多路复用器。举例来说,可将对应于线驱动器子集的每一启用的线驱动器的高速缓存线提供到多路复用器。可基于多位通路预测掩码进行对是否发生误预测(例如是否未驱动到多路复用器的正确通路)的确定。举例来说,控制逻辑可识别(例如,检测)是否多路复用器选择提供到多路复用器的经驱动通路(例如,一或多个高速缓存线的内容,例如一或多个指令)中的一者。当进行对发生误预测的确定时,可启用所有线驱动器且可基于完成的标记查找操作选择正确通路。标记查找操作可能已经与将多位通路预测掩码提供到多个线驱动器以选择性地启用线驱动器子集同时(例如,并行)执行。另外或替代地,标记查找操作可与选择性地启用(或停用)的线驱动器中的一或多个同时执行。
[0071]图6为包含利用多位通路预测掩码的指令高速缓存存储器系统的装置600(例如,通信装置)的特定实施例的方块图。装置600可为无线电子装置且可包含耦合到存储器632的处理器610,例如数字信号处理器(DSP)。
[0072]处理器610可经配置以执行存储于所述存储器632中的软件660 (例如,一或多个指令的程序)。处理器610可包含指令高速缓存680。举例来说,指令高速缓存680可包含或对应于图1的指令高速缓存102。指令高速缓存680可包含数据阵列682、标记阵列684、控制逻辑686及多位通路预测掩码688。数据阵列682、控制逻辑686及多位通路预测掩码688可分别对应于图1的数据阵列110、控制逻辑150及预测掩码152。数据阵列682可包含多个线驱动器,例如图1的线驱动器140至144或图2的线驱动器240a-d。标记阵列684可对应于图2的标记阵列280。在说明性实例中,处理器610包含或对应于图1至2的任何所述系统,或其组件,并且根据图3至5的任何实施例或其任何组合操作。举例来说,如图2中所示,控制逻辑686可设定应用到数据阵列682以使预测通路能够提供作为数据阵列682的输出的多位通路预测掩码688的值。在特定实施例中,基于多位通路预测掩码启用多个线驱动器的子集,其中所述子集包含多个线驱动器。标记阵列684可执行标记查找操作以基于所应用的多位通路预测掩码688识别将在发生误预测的情况下驱动的正确通路。在特定实施例中,处理器610可经配置以执行存储在非暂时性计算机可读媒体(例如,存储器632)处电脑可执行指令(例如,软件660),所述指令可执行以使如处理器610的计算机根据预测掩码值选择性地设定多位通路预测掩码的位。多位通路预测掩码与包含数据阵列的指令高速缓存相关联。响应于多位通路预测掩码启用所述数据阵列的线驱动器子集。在特定实施例中,线驱动器子集为单个线驱动器。在另一特定实施例中,线驱动器子集为大于一个线驱动器(例如,多个线驱动器)。计算机可执行指令(例如,软件660)可进一步使处理器610接收预测掩码值及选择性地启用多个线驱动器。
[0073]相机接口 668耦合到处理器610,且还耦合到相机(例如,摄像机670)。显示控制器626耦合到处理器610及显示装置628。编解码器(CODEC) 634还可耦合到处理器610。扬声器636及麦克风638可耦合到CODEC 634。无线接口 640可耦合到处理器610及天线642以使得通过天线642及无线接口 640接收到的无线数据可提供到处理器610。
[0074]在特定实施例中,处理器610、显示控制器6
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1