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

文档序号:8531858阅读:363来源:国知局
具有多位通路预测掩码的指令高速缓存的制作方法
【技术领域】
[0001]本发明通常针对一种指令高速缓存存储器系统。
【背景技术】
[0002]技术的进步已产生较小且较强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如便携式无线电话、个人数字助理(PDA)和寻呼装置,其体积小、重量轻且易于由用户携带。更具体来说,例如蜂窝电话和因特网协议(IP)电话等便携式无线电话可通过无线网络传达语音和数据包。此外,多个此类无线电话包含并入其中的其它类型的装置。举例来说,无线电话还可包含数字静态相机、数码摄像机、数字记录器,和音频文件播放器。而且,此类无线电话可处理可执行指令,包含软件应用程序,例如可用以接入网络的网络浏览器应用程序。由此,这些无线电话可包含大量计算能力。
[0003]此类计算功能可通过包含指令高速缓存(icache)的处理器增强,所述指令高速缓存经配置以存储(在高速缓存线中)最近或频繁被执行的程序指令。可由处理器存取存储在指令高速缓存中的指令,这比从主存储器存取指令更快。指令高速缓存包含多个通路,每一通路包含对应于指令高速缓存的一或多个高速缓存线(例如,存储位置)的驱动器。为了存取存储在指令高速缓存中的特定指令,所有驱动器可经启用(例如,触发)以驱动器(通过多个数据线)多路复用器的所有通路,并且所要通路可通过多路复用器选择。然而,驱动用于每一指令高速缓存存取的所有通路消耗功率来驱动每一通路,尽管最后只选择单个通路。
[0004]为减少功率消耗,通路预测技术已经用于预测(例如,识别)待驱动的“下一通路”及因此预测待执行的下一高速缓存线(例如,指令)。通过预测“下一通路”(即,待执行的下一指令的位置),仅需要驱动单个通路。然而,先前通路预测技术易受导致性能损失的频繁误预测(例如,预测不正确通路)及处理器所经历的功率恶化的影响,以修正所述误预测并存取正确的下一通路。
[0005]举例来说,第一技术存储用于每一高速缓存线的上一个(前一)“下一通路”(即,单个“下一通路”)。基于所述单个“下一通路”,指令高速缓存启用对应于所述单个“下一通路”的单个驱动器。当未驱动正确通路(即,不提供给多路复用器)时,发生误预测且执行对指令高速缓存数据阵列的第二次存取,这驱动正确通路(基于完成的标记查找操作或从控制逻辑提供的信号)。当使用第一技术时,预测正确“下一通路”的准确性由于给定程序(例如,多个指令)的可预测性可能不稳定而存在问题。因此,用于高速缓存线的上一个“下一通路”不一定是很好的预测子,并且发生频繁误预测。
[0006]第二技术分配置信度值至通路预测以决定通路预测是否可能引起选择(S卩,识另Ij)正确通路。如果单个通路预测的置信度值不够高,那么启用所有驱动器。第三技术在识别分支类型指令时将预测的“下一通路”存储在将要使用的分支目标缓冲器(例如,跟踪高速缓存)中。储存的预测“下一通路”可具有高准确度,但可能不常采用分支并且因此第三技术仅对在执行当前指令之后采用分支的情况有用。

【发明内容】

[0007]本文公开一种用于指令高速缓存(icache)的通路预测技术,所述指令高速缓存利用对应于所提取(及被执行的)上一个高速缓存线的多位通路预测掩码(例如,预测掩码值)。多位通路预测掩码可提供相对于所提取的上一个高速缓存线的“下一通路”预测。多位通路预测掩码可包括η位向量,其中每一位对应于指令高速缓存的通路。举例来说,当指令高速缓存包含四个通路时,多位通路预测掩码可包括4位值。对应通路中的每一个可包括基于多位通路预测掩码启用或停用的驱动器(例如,线驱动器)。各自与对应高速缓存位置相关联的多位通路预测掩码值可存储在具有与指令高速缓存的高速缓存线的一对一关联的任何结构中。举例来说,特定高速缓存线的多位通路预测掩码可存储在标记阵列、对应于高速缓存线的寄存器中或作为最近所提取的高速缓存线的部分(例如,末端)。
[0008]在特定实施例中,一种设备包含经配置以基于预测掩码值选择性地设定多位方式预测掩码的位的控制逻辑。所述控制逻辑与包含数据阵列的指令高速缓存相关联。响应于多位通路预测掩码启用数据阵列的线驱动器子集。所述线驱动器子集包含多个线驱动器。
[0009]在另一特定实施例中,一种方法包含基于预测掩码值选择性地设定多位通路预测掩码的位。多位通路预测掩码与包含具有多个线驱动器的数据阵列的指令高速缓存相关联。响应于多位通路预测掩码启用所述数据阵列的线驱动器子集。所述线驱动器子集包含多个线驱动器。
[0010]在另一特定实施例中,一种设备包含用于基于预测掩码值选择性地设定多位通路预测掩码的位的装置。多位通路预测掩码与包含数据阵列的指令高速缓存相关联。所述设备还包含用于提供多位通路预测掩码到数据阵列的多个线驱动器的装置。响应于多位通路预测掩码启用多个线驱动器的多个线驱动器。
[0011 ] 在另一特定实施例中,一种非暂时性计算机可读媒体包含在由处理器执行时导致所述处理器根据预测掩码值选择性地设定多位通路预测掩码的位的指令。多位通路预测掩码与包含数据阵列的指令高速缓存相关联。响应于多位通路预测掩码启用数据阵列的多个线驱动器。
[0012]由所公开实施例提供的一个特定优点在于降低低功率消耗的通路预测技术,具有高预测准确性并且克服先前通路预测技术的不足。通路预测技术减少或避免影响功率功效及处理器性能的误预测。指令高速缓存的误预测发生率相比于先前通路预测技术可大大降低(例如,小于1% )。
[0013]本发明的其它方面、优点和特征将在审阅申请案之后变得显而易见,所述申请案包含以下部分:【附图说明】、【具体实施方式】和权利要求书。
【附图说明】
[0014]图1为包含利用预测掩码的指令高速缓存的处理器系统的第一说明性实施例的方块图;
[0015]图2为包含利用预测掩码的指令高速缓存的处理器系统的第二说明性实施例的方块图;
[0016]图3为执行通路预测的方法的第一说明性实施例的流程图;
[0017]图4为执行通路预测的方法的第二说明性实施例的流程图;
[0018]图5为执行通路预测的方法的第三说明性实施例的流程图;及
[0019]图6为包含执行通路预测的指令高速缓存存储器系统的无线通信装置的特定实施例的方块图。
【具体实施方式】
[0020]图1说明包含指令高速缓存102 (例如,icache)的处理器系统100的第一特定说明性实施例。指令高速缓存102可经配置以存储(在高速缓存线中)最近或频繁被执行的程序指令。可比从另一位置(例如,主存储器(未展示))存取的指令更快地存取存储在指令高速缓存102中的指令。在特定实施例中,指令高速缓存102为集相关高速缓存。指令高速缓存102包含数据阵列110及控制逻辑150。
[0021]数据阵列110可包括各自包含对应线驱动器140至144的多个通路120至124。每一线驱动器140至144对应于包含数据阵列110的多个高速缓存线(例如,存储位置)的通路(例如,数据阵列110的列)。数据阵列110可包含具有第一线驱动器140的第一通路120、具有第二线驱动器142的第二通路122及具有第N线驱动器144的第N通路124。虽然图1中展示三个线驱动器140至144,但是数据阵列110中可包含小于三个或大于三个线驱动器。在特定实施例中,数据阵列110包含四个通路。线驱动器140至144中的每一个可耦合到对应数据线(未展示),每一线驱动器140至144通过所述数据线驱动与对应通路120至124相关联的内容(例如,数据阵列110的高速缓存线的数据)。举例来说,线驱动器140可驱动与第一通路120相关联的内容(例如,存储于高速缓存线处的数据,如一或多个指令)。在特定实施例中,线驱动器140至144驱动通路120至124的内容作为数据阵列110至多路复用器(未展示)的输出。多路复用器可响应于多个线驱动器140至144且可经配置以选择特定通路(例如,所要通路)。在特定实施例中,数据阵列110可包含多路复用器。
[0022]控制逻辑150可包含或存取提供“下一通路”预测至数据阵列110的预测掩码152 (例如,多位通路预测掩码)。“下一通路”预测可与所提取的上一个高速缓存线(例如,存取的数据阵列110的上一个高速缓存线)相关联且预测(例如,识别)待驱动的“下一通路”且因此预测待存取的下一高速缓存线(例如,待执行的下一指令)。通过预测一或多个“下一通路”(但并非所有通路120至124),驱动指令高速缓存102的少于全部线驱动器140至144 (例如,启用对应驱动器),这与启用所有驱动器140至144来驱动所有通路120至124相比产生降低的功耗。预测掩码152的值(例如,预测掩码值)可对应于指令高速缓存102的所提取的上一个高速缓存线以预测一或多个下一通路。预测掩码152可包含η位向量,其中每一位对应于指令高速缓存102的特定通路。预测掩码152可存储在寄存器或缓冲器中。
[0023]控制逻辑150可经配置以基于(例如,根据)与所提取的上一个高速缓存线相关联的预测掩码值选择性地设定预测掩码152的一或多个位。预测掩码152可启用(或停用)数据阵列110的线驱动器子集,例如驱动器140至144中的一或多个。当预测掩码152的多个位经设定时,启用(或停用)对应数目的多个驱动器140至144。多个驱动器140至144中的每一个可通过预测掩码152的特定位选择性地启用(例如,接通或启动)或选择性地停用(例如,断开或撤销启动)。在特定实施例中,线驱动器子集为大于一个线驱动器(例如,预测掩码152设定多个位且同时启用多个线驱动器)。
[0024]控制逻辑150可经配置以维持各自对应于数据阵列110的高速缓存线的多个预测掩码值。多个预测掩码值可存储在控制逻辑150可存取的一或多个存储位置处。举例来说,预测掩码值中的一或多个可存储在标记阵列、与数据阵列110的高速缓存线相关联的寄存器中、作为个别高速缓存线的部分或在具有与数据阵列HO的高速缓存线的一对一关联的结构中。当内容加载到数据阵列110的高速缓存线中时,控制逻辑150可将对应于特定高速缓存线的特定预测掩码值设定(例如初始化)为初始值。另外,控制逻辑150可视需要更新其它预测掩码值以反映内容正加载到特定高速缓存线中。举例来说,控制逻辑150可更新对应于另一高速缓存线的将特定高速缓存线的先前内容相关联的通路识别为“下一通路”的预测掩码值以指示所述通路不再被识别为其它高速缓存线的“下一通路”。
[0025]控制逻辑150可接收与数据阵列110的上一个提取的(例如,最近提取的)高速缓存线相关联的预测掩码值。预测掩码值可预测(例如识别)将在提取上一个高速缓存线之后存取的一或多个通路。待存取的一或多个通路可各自对应于存储将在提取对应于上一个高速缓存线的指令之后执行的一或多个指令的高速缓存线。控制逻辑150可基于预测掩码值设定预测掩码152。举例来说,当存取数据阵列110的特定高速缓存线时,对应于特定高速缓存线的预测掩码值可经识别及设定为预测掩码152的值以识别将在存取特定高速缓存线之后的下一高速缓存存
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1