基于缓冲器充满度而向高速缓存进行预取的制作方法

文档序号:8449188阅读:311来源:国知局
基于缓冲器充满度而向高速缓存进行预取的制作方法
【专利说明】基于缓冲器充满度而向高速缓存进行预取
[0001]背景发明领域
[0002]本公开一般涉及处理器,并且更具体来说,涉及处理器上的预取。
[0003]现有技术描述
[0004]处理器架构通常采用存储器层次结构,在存储器层次结构的最低级别上具有外部存储器,并且在存储器层次结构的每个更高级别上具有高速缓存。处理器架构进一步采用从存储器层次结构中的最高级别高速缓存请求数据(指令或操作数数据)的处理器核心。响应于确定与存取请求相回应的信息并未存储在存储器层次结构中的特定高速缓存上,所述高速缓存将发出针对来自层次结构中下一个更低级别上的高速缓存的信息的存取请求。一些处理器架构采用非阻塞高速缓存,据此,所述高速缓存能够在对朝向存储器层次结构中的更低级别的未决存取请求的满足进行等待的同时,服务存取请求。此类架构可使用未命中地址缓冲器(MAB)来存储用于每个未决存取请求的地址和其它信息。存储器层次结构中的每个高速缓存分配有MAB时隙,以使得分配至高速缓存的时隙数目决定针对高速缓存的未决存取请求的最大允许数目。
[0005]存取请求可为至少两种类型:需求请求,其表示来自处理器核心的、针对已知被处理器需要的指令或数据的请求,以及预取请求,所述预取请求投机性地请求期望与被预测在稍后点处执行的指令或数据参考相回应的指令或数据。通常给予需求请求较高优先级而便于保留MAB上的存储位置。由于在MAB上缺乏可用存储位置,这个优先化会对预取产生负面影响,从而降低处理器效率。
[0006]附图简述
[0007]通过参考附图,可更好地理解本公开,并且它的许多特征和优点对本领域技术人员来说变得显而易见。
[0008]图1为根据一些实施方案的电子装置的方框图。
[0009]图2为根据一些实施方案的、在图1的电子装置的处理器上所使用的预取请求信息的方框图。
[0010]图3为时间线图,其示出根据一些实施方案的、在图1的处理器的存储器层次结构上进行的预取请求传输。
[0011]图4为根据一些实施方案的、基于MAB充满度而在图1的处理器的存储器层次结构上传输预取请求的方法的流程图。
[0012]图5为根据一些实施方案的、基于预取信任级别而在图1的处理器的存储器层次结构上传输预取请求的方法的流程图。
[0013]图6为流程图,其示出根据一些实施方案的、用以设计和制造实施处理器部件的至少一部分的集成电路装置的方法。
[0014]在不同图示中相同参考符号的使用指示类似或相同的物件。
[0015]详细描述
[0016]图1至图6示出用以提升处理效率的技术,所述技术通过基于未命中地址缓冲器(MAB)或基于预取请求的信任级别,将预取请求从其目标高速缓存传输至存储器层次结构中的另一高速缓存来提升处理效率。处理器保持MAB,以使得MAB上的每个时隙可存储与针对存储器层次结构中的高速缓存的未决存取请求相关的信息。存储器层次结构中的每个高速缓存在MAB上分配有一组时隙。响应于在接收对高速缓存的预取请求时,确定分配至高速缓存的所述组时隙的充满度高于阈值,处理器将预取请求传输至存储器层次结构中的下一个更低级别高速缓存。作为响应,被存取请求锁定为目标的数据会预取至存储器层次结构中的更低级别高速缓存,并且因此在后续需求请求的事件中可用以提供给高速缓存。另夕卜,处理器可基于预取请求的信任级别而将预取请求传输至更低级别的高速缓存。这确保与低信任级别关联的预取请求不会消耗MAB上更高级别高速缓存的时隙,所述时隙将用于具有更高信任度的需求请求或预取请求。
[0017]图1示出根据一些实施方案的、具有处理器102和存储器150的电子装置100。电子装置100可为采用处理器的任何装置,包括个人计算机、服务器、便携式电子装置(如手机)、自动装置、游戏控制台以及类似装置。处理器102—般被配置成执行布置为计算机程序并且存储在存储器150上的多组指令。所述多组指令操纵处理器102,以便执行与计算机程序关联的任务。
[0018]处理器102包括执行所述多组指令的处理器核心110。在一些实施方案中,处理器核心110实施具有多个级的指令流水线,据此每个级执行作为指令执行的一部分的特定操作。例如,指令流水线可包括:获取级,用以按照程序顺序来获取下一指令;解码级,用以将所获取的指令解码成微操作集;分派级,用以分派微操作而加以执行;具有多个执行单元的执行级,用以执行所分派的微操作;以及引退级,用以管理指令的引退。
[0019]处理器102也包括一组N个高速缓存,其中N为整数。在所示出的实施例中,N个高速缓存包括高速缓存104、高速缓存105以及额外高速缓存至第N个高速缓存106。出于论述目的,假定高速缓存104至106存储由处理器102在指令执行期间所操纵的数据。处理器102也可包括布置在层次结构中另一组高速缓存,其存储将要由处理器核心110执行的指令。在一些实施方案中,高速缓存104至106中的一个或多个高速缓存可存储指令和数据。尽管将在假定高速缓存104至106存储数据的条件下来描述参照图1所述的技术,但是应理解,所述技术也适用于存储指令的高速缓存。
[0020]高速缓存104至106和存储器150 —起形成用于电子装置100的存储器层次结构145。存储器150位于存储器层次结构145的最低级别上,并且高速缓存104至106各自位于存储器层次结构145的不同对应级别上。因此,在图1的所示实施例中,高速缓存104位于层次结构的最高级别上,所以被称为Ll( “一级”)高速缓存104。高速缓存105位于存储器层次结构145中的下一更高级别上,并且被称为L2( “二级”)高速缓存105。处理器102的其它高速缓存位于存储器层次结构145的其它级别上,其中高速缓存106处于第N个级别上并且称为LN高速缓存106。在一些实施方案中,存储器层次结构145的每个相继更高的级别相继更小(具有更小的容量来存储数据)。从而,例如,LI高速缓存104容量小于L2高速缓存105的容量。然而,如下文进一步描述的,处理器102通常经由LI高速缓存104存储数据以及从存储器层次结构145检索数据,并且不会直接存储数据或从存储器层次结构145的其它级别检索数据。因此,通过使数据穿过存储器层次结构145的每个级别直到其到达LI高速缓存104,将位于存储器层次结构145的更低级别上的数据提供给处理器102。在存储器层次结构145中数据所穿过的每个级别,响应于来自处理器102的存取请求而引入额外延时。因此,处理器102请求的数据在存储器层次结构145中所位于的级别越高,数据的处理效率便越高(并且处理器102接收数据的延时便越低)。
[0021]高速缓存104至106中的每一个高速缓存包括控制器和存储阵列。用于高速缓存104至106中的每个高速缓存的存储阵列为一组被配置来存储数据的存储元件,如位单元。用于高速缓存104至106中的每个高速缓存的控制器被配置来管理其对应存储阵列上的数据存储和检索。在所示出的实施例中,LI高速缓存104包括控制器115和存储阵列116,L2高速缓存105包括控制器125和存储列阵126,并且LN高速缓存106包括控制器135和存储阵列136。
[0022]处理器核心110包括加载/存储单元111,以便响应于特定指令而生成存储器存取请求。出于说明目的,在一些实施方案中,加载/存储单元111位于处理器核心110的指令流水线的执行级上。指令流水线的解码级会解码特定指令来生成相应操作,以便从存储器层次结构145检索数据(加载操作)或者将数据存储在存储器层次结构145上(存储操作)。加载操作和存储操作在本文中共同称为存储器存取请求。每个存储器存取请求包括识别由存储器存取请求所存取的数据的位置的存储器地址。
[0023]响应于存储器存取请求,加载/存储单元111生成对存储器层次结构145的请求,本文称为需求请求。需求请求被提供给LI高速缓存104。控制器115分析用于需求请求的存储器地址,并且确定存储阵列116是否存储与存储器地址关联的数据。如果确定存储阵列116存储所述数据,那么在需求请求用于加载操作的情况下,控制器115便会通过将与存储器地址关联的数据提供给加载/存储单元111来满足需求请求,或者在需求请求为存储操作的情况下,控制器115便会通过将新数据存储在对应于存储器地址的位置上来满足需求请求。如果控制器115确定存储阵列116并未存储与存储器地址关联的数据,那么其便指示高速缓存未命中并且将需求请求提供给L2高速缓存105。
[0024]响应于需求请求,控制器125分析用于需求请求的存储器地址,并且确定存储器阵列126是否存储与存储器地址关联的数据。如果确定存储器阵列126存储所述数据,那么控制器125便将数据提供给LI高速缓存104,以便存储在存储阵列
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1