在多线程处理器中的高速缓存器操作制造技术

技术编号:13925112 阅读:108 留言:0更新日期:2016-10-28 05:26
描述了在多线程处理器中的高速缓存器操作。提供被称为路启用表的小存储器结构,其存储对n路组相联高速缓存器的索引。路启用表针对在n路组相联高速缓存器中的每个条目包括一个条目,且在路启用表中的每个条目被布置成存储线程ID。在路启用表中的条目中的线程ID是与被存储在n路组相联高速缓存器中的相应的条目中的数据项相关的线程的ID。在从n路组相联高速缓存器读取由索引参数识别的条目之前,在高速缓存器中的路基于当前线程ID和被存储在路启用表中的由同一索引参数识别的条目中的线程ID的比较而被选择性地启用。

【技术实现步骤摘要】
背景图1是2路组相联高速缓存器100的示意图。在高速缓存器中的每个索引位置或行101(例如在图1中所示的表示中的每行)包括两个条目,在每个路102、103中有一个条目。路的每个条目包括数据字段104、106和高速缓存器标记字段108、110。在高速缓存器100用于高速缓存来自较大的存储器设备的值(即高速缓存器是数据高速缓存器)的场合,给定的存储器位置可被映射到两个可能的位置(即:在路0中的条目或在路1中的条目),其中索引常常相应于存储器位置的最低有效位且高速缓存器标记(其被存储在条目中)相应于存储器位置的最高有效位。当将数据存储在高速缓存器100中时,如果在所需索引处的条目之一是空的,则那个条目被使用,但如果两个条目都被填充,则这两个条目之一被重写。例如“最近最少使用”(LRU)的置换算法可例如用于确定要重写哪个条目。当从这样的高速缓存器100读取数据时,来自高速缓存器的所有路的数据都可以被在同一时钟周期中读取,且然后高速缓存器标记于是被检查以确定哪个条目包含所需的数据项,且其它数据项被丢弃。可选地,(来自高速缓存器的所有路的)所有标记可被在第一时钟周期中读取,且然后来自具有匹配标记的条目的数据被在第二时钟周期中读取。下面所述的实施方式仅被通过示例的方式来提供并且不是对解决已知的高速缓存器布置的缺点中的任何或所有缺点的实施以及操作在多线程处理器中的高速缓存器的方法的限制。概述本概述被提供来以简化的形式介绍一系列概念,其在下面在详细描述中被进一步描述。本概述不旨在识别所要求保护的主题的关键特征或必要
特征,也不旨在用作在确定所要求保护的主题的范围时的帮助。描述了在多线程处理器中的高速缓存器操作。提供被称为路启用表(way enable table)的小存储器结构,其存储到n路组相联高速缓存器的索引。路启用表针对在n路组相联高速缓存器中的每个条目包括一个条目,且在路启用表中的每个条目被布置成存储线程ID。在路启用表中的条目中的线程ID是与被存储在n路组相联高速缓存器中的相应条目中的数据项相关的线程的ID。在从n路组相联高速缓存器读取由索引参数识别的条目之前,在高速缓存器中的路基于当前线程ID和被存储在路启用表中的由同一索引参数识别的条目中的线程ID的比较而被选择性地启用。第一方面提供多线程处理器,其包括:组相联高速缓存器,其包括被布置在多个路中的多个高速缓存条目,每个高速缓存条目包括数据字段和标记字段;路启用表,其包括多个路启用表条目,每个路启用表条目相应于在组相联高速缓存器中的高速缓存条目并包括被布置成存储线程的线程ID的线程ID字段,该线程与被存储在相应的高速缓存条目的数据字段中的数据项相关;以及硬件逻辑,其被布置成至少部分地基于当前线程ID和被存储在由索引参数识别的路启用表条目中的线程ID的比较来选择性地启用在组相联高速缓存器中的路。第二方面提供访问在多线程处理器中的组相联高速缓存器的方法,组相联高速缓存器包括被布置在多个路中的多个高速缓存条目,且每个高速缓存条目包括数据字段和标记字段,该方法包括:访问在路启用表中的由索引参数识别的两个或多于两个路启用表条目,每个路启用表条目相应于在组相联高速缓存器中的高速缓存条目并包括被布置成存储线程的线程ID的线程ID字段,该线程与被存储在相应的高速缓存条目的数据字段中的数据项相关;对于每个被访问的路启用表条目,将所存储的线程ID与当前线程ID进行比较;以及响应于所述比较识别出在当前线程ID与在路启用表条目中的所存储的线程ID之间的匹配,启用在包含相应的高速缓存条目的组相联高速缓存器中的路。第三方面提供在其上存储有用于产生多线程处理器的计算机可读程序代码的计算机可读存储介质,多线程处理器包括:组相联高速缓存器,
其包括被布置在多个路中的多个高速缓存条目,每个高速缓存条目包括数据字段和标记字段;路启用表,其包括多个路启用表条目,每个路启用表条目相应于在组相联高速缓存器中的高速缓存条目并包括被布置成存储线程的线程ID的线程ID字段,该线程与被存储在相应的高速缓存条目的数据字段中的数据项相关;以及硬件逻辑,其被布置成至少部分地基于当前线程ID和被存储在由索引参数识别的路启用表条目中的线程ID的比较来选择性地启用在组相联高速缓存器中的路。第四方面提供其上编码有用于产生被配置成执行访问在多线程处理器中的组相联高速缓存器的方法的处理器的计算机可读程序代码的计算机可读存储介质,组相联高速缓存器包括被布置在多个路中的多个高速缓存条目,且每个高速缓存条目包括数据字段和标记字段,该方法包括:访问在路启用表中的由索引参数识别的两个或多于两个路启用表条目,每个路启用表条目相应于在组相联高速缓存器中的高速缓存条目并包括被布置成存储线程的线程ID的线程ID字段,该线程与被存储在相应的高速缓存条目的数据字段中的数据项相关;对于每个所访问的路启用表条目,将所存储的线程ID与当前线程ID进行比较;以及响应于所述比较识别出在当前线程ID与在路启用表条目中的所存储的线程ID之间的匹配,启用在包含相应的高速缓存条目的组相联高速缓存器中的路。优选的特征可被酌情组合,如对技术人员将明显的,并可与本专利技术的任何方面进行组合。附图简述将参考下面的附图通过示例的方式来描述本专利技术的实施方式,在附图中:图1是2路组相联高速缓存器的示意图;图2是改进的高速缓存布置的示意图;图3是图2中所示的改进的高速缓存布置的操作的示例方法的流程图;图4示出示例多线程无序处理器的示意图;图5示出在多线程处理器内的基本管线的示意图;图6示出对指令高速缓存器使用选择性路启用的多线程处理器的操作;图7示出包括跳转寄存器高速缓存器的多线程处理器的操作;图8示出对跳转寄存器高速缓存器使用选择性路启用的多线程处理器的操作;图9是示出图8中所示的方法的更详细的示例的示意图;以及图10示出对指令高速缓存器和跳转寄存器高速缓存器两者使用选择性路启用的多线程处理器的操作。共同的参考数字被在全部附图中使用以指示相似的特征。详细描述下面仅通过示例的方式来描述本专利技术的实施方式。这些示例代表申请人当前已知的实施本专利技术的最佳方式,尽管它们不是其中本专利技术可以被实现的仅有的方式。该描述阐述示例的功能和用于构造和操作示例的步骤的顺序。然而,相同或等效的功能和顺序可由不同的示例完成。对于多线程处理器,被存储在n路组相联高速缓存器(例如跳转寄存器高速缓存器或指令高速缓存器)中的数据项可以特定于特定的线程,且由于用于确定新数据项被存储在高速缓存器中哪里的置换算法,在特定的路和特定的线程之间可以没有固定映射。因此,在高速缓存器中的每个条目(即在高速缓存器中的每个路中的每个条目)包括线程标识符(或线程ID)。线程ID可被合并为标记的部分或可被在单独的字段中提供。在高速缓存条目中的线程ID是数据所属的线程的标识符,即它是请求/需要数据项的线程(例如当高速缓存条目被写入时被提取的线程)。当从包括很多个路的高速缓存器(例如n路组相联高速缓存器)读取时,来自高速缓存器的所有路的条目被提取,且然后标记和线程ID被检查以确定哪个条目包含所需的数据项(其中如上所述,在一些实现中,线程ID可被包含在标记字段内而不是作为单独的字段)。这对于基于RAM的高速缓存本文档来自技高网
...

【技术保护点】
一种多线程处理器,包括:组相联高速缓存器(202),其包括被布置在多个路(206)中的多个高速缓存条目(205),每个高速缓存条目包括数据字段和标记字段;路启用表(210),其包括多个路启用表条目(212),每个路启用表条目相应于在所述组相联高速缓存器中的高速缓存条目并包括被布置成存储线程的线程ID的线程ID字段,所述线程与被存储在相应的高速缓存条目的所述数据字段中的数据项相关;以及硬件逻辑(214),其被布置成至少部分地基于当前线程ID和被存储在由索引参数识别的路启用表条目中的线程ID的比较来选择性地启用在所述组相联高速缓存器中的路。

【技术特征摘要】
2015.04.09 GB 1506062.71.一种多线程处理器,包括:组相联高速缓存器(202),其包括被布置在多个路(206)中的多个高速缓存条目(205),每个高速缓存条目包括数据字段和标记字段;路启用表(210),其包括多个路启用表条目(212),每个路启用表条目相应于在所述组相联高速缓存器中的高速缓存条目并包括被布置成存储线程的线程ID的线程ID字段,所述线程与被存储在相应的高速缓存条目的所述数据字段中的数据项相关;以及硬件逻辑(214),其被布置成至少部分地基于当前线程ID和被存储在由索引参数识别的路启用表条目中的线程ID的比较来选择性地启用在所述组相联高速缓存器中的路。2.根据权利要求1所述的多线程处理器,还包括:硬件逻辑(216),其被布置成读取在所述组相联高速缓存器中的被启用的路中的由所述索引参数识别的高速缓存条目并且将在被读取的每个高速缓存条目中的所述标记字段与参考值进行比较。3.根据权利要求2所述的多线程处理器,其中所述参考值是程序计数器。4.根据权利要求1所述的多线程处理器,其中与被存储在所述相应的高速缓存条目的所述数据字段中的数据项相关的线程包括在当所述数据项被存储在所述相应的高速缓存条目的所述数据字段中时的当前线程ID。5.根据权利要求1所述的多线程处理器,其中所述组相联高速缓存器被在第一类型的存储器中实现,且所述路启用表被在第二类型的存储器中实现。6.根据权利要求5所述的多线程处理器,其中所述组相联高速缓存器是基于RAM的高速缓存器,且所述路启用表被在寄存器中实现。7.根据权利要求1所述的多线程处理器,其中索引值识别在所述组相联高速缓存器中的每个路中的一个高速缓存条目,且所述索引值还识别所述路启用表条目的子集,在所述子集中的每个路启用表条目相应于被识别的高速缓存条目之一。8.根据权利要求1所述的多线程处理器,其中所述组相联高速缓存器是指令高速缓存器。9.根据权利要求1-7中的任一项所述的多线程处理器,其中所述组相联高速缓存器是跳转寄存器高速缓存器。10.根据权利要求1-7中的任一项所述的多线程处理器,所述处理器还包括:第二组相联高速缓存器(202),其包括被布置在第二多个路(206)中的第二多个高...

【专利技术属性】
技术研发人员:菲利普·戴
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:英国;GB

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利