一种处理器及其运行方法技术

技术编号:7682480 阅读:154 留言:0更新日期:2012-08-16 05:50
本发明专利技术提供一种处理器及其运行方法,该处理器包括有循环检测单元和循环缓冲器,循环检测单元用于从所述指令解码单元的输出的解码指令中检测出循环体,并且,至少将该循环体对应的解码指令和数据高速缓存的关联通路信息存储至循环缓冲器;在该循环体的迭代运行过程中,循环检测单元中止指令提取单元和/或指令解码单元的运行,循环缓冲器基于其存储的关联通路信息为数据高速缓存提供通路预测。该处理器的高速数据缓存、指令提取单元和指令解码单元的功耗减少,整体功耗低。

【技术实现步骤摘要】

本专利技术属于处理器
,涉及带有能为数据高速缓存(Data Cache)提供通路预测(Way-prediction)的循环检测单元和循环缓冲器的处理器及其运行方法
技术介绍
在当前微处理器的中,高速缓存存储器(cache,简称为“高速缓存”)是其必不可少的部件,其设置在主存储器(memory,简称“主存储器”)和CPU之间,以便减少指令的等待处理时间。可以预测到,到2014年,高速缓存占用处理器的芯片面积可以达到94%。由于位线的充电和放电、灵敏放大和标签比较的功能,高性能的高速缓存消耗非常多的开关功耗量。据报道,Intel Pentium Pro处理器中,高速缓存的功耗大概占到33%。并且,最新研发的Niagara处理器中,数据高速缓存子系统消耗芯片总功耗的约15%。当前微处理器的架构中,一般使用两个高速缓存子系统数据高速缓存和指令高速缓存。在数据高速缓存中,其可以采用组-关联高速缓存(set-associative cache)来降低缓存存储器中数据缺失率,并且,组-关联高速缓存中普遍地执行并行访问方案(parallel access scheme)。在并行访问方案中,数据高速缓存的数据阵列(data array)和地址标记阵列(tag array)同时被访问。例如,在4通路组-关联高速缓存中,数据阵列的4通路同时被访问以提取相应4块数据,根据地址标记阵列的输出结果,4块数据中至多只有一个被选择输出。这种方案的执行可以获得较高性能。但是,也可以观察到,由于额外访问了没有被输出的块数据对应通路的组-关联高速缓存(例如3路),需要消耗大量的额外功耗。并行访问方案之外,还有一种顺序访问方案(sequential access scheme)。在顺序访问方案中,数据阵列访问被延期到直至得知地址标记阵列的输出结果,因此,在该方案中,只需要访问数据阵列的I通路并最终将其数据输出。顺序访问方案虽然可以节省功耗,但是,其大大增加了高速缓存延迟,这导致这种方案仅限于在低功耗低性能的设计中应用。
技术实现思路
本专利技术的目的之一,降低处理器中的高速数据缓存的功耗并且基本不增加高速数据缓存的延迟。本专利技术的还一目的在于,降低处理器中的指令提取单元和/或指令解码单元的功耗。为实现以上目的或者其他目的,本专利技术提供以下技术方案。按照本公开的一方面,提供一种处理器,包括指令高速缓存、指令提取单元、指令解码单元、重新数列缓冲器、保留站、执行单元和数据读取存储单元;其特征在于,所述数据读取存储单元中的数据高速缓存为n通路的组-关联数据高速缓存;该处理器还包括 循环检测单元,和 循环缓冲器;其中,所述循环检测单元用于从所述指令解码单元的输出的解码指令中检测出循环体,并且,至少将该循环体对应的解码指令和所述数据高速缓存的关联通路信息存储至所述循环缓冲器; 在该循环体的迭代运行过程中,所述循环检测单元中止所述指令提取单元和/或指令解码单元的运行,所述循环缓冲器基于其存储的所述关联通路信息为所述数据高速缓存提供通路预测; n为大于或等于2的整数。按照本专利技术一实施例的处理器,其中,在该循环体的迭代运行过程中,所述循环缓冲器将其存储的所述解码指令输出至所述重新数列缓冲器,所述解码指令为微操作。按照本专利技术一实施例的处理器,其中,所述数据高速缓存包括地址标签阵列和数据阵列; 在所述循环检测单元未检测出所述循环体时,所述地址标签阵列用于控制数据阵列的n个数据通路的访问的选择输出; 在该循环体的迭代运行过程中,所述循环检测单元中止所述地址标签阵列的运行。具体地,所述数据读取存储单元中设置有多路选择器。优选地,所述处理器为服务器中的处理器。按照本公开的又一方面,提供一种以上所述处理器的运行方法,其包括步骤 循环检测单元从所述指令解码单元的输出的解码指令中检测是否为循环体; 如果检测为循环体并且该循环体为新循环体,至少将该循环体对应的解码指令和所述数据高速缓存的关联通路信息存储至所述循环缓冲器; 如果检测为循环体并且该循环体为正迭代运行的循环体,所述循环检测单元中止所述指令提取单元和/或指令解码单元的运行,所述循环缓冲器基于其存储的所述关联通路信息为所述数据高速缓存提供通路预测。按照本专利技术一实施例的运行方法,其中,所述循环检测单元中止所述指令提取单元和/或指令解码单元的运行时,所述循环缓冲器将其存储的所述解码指令输出至所述重新数列缓冲器。按照本专利技术一实施例的运行方法,其中,所述循环缓冲器基于其存储的所述关联通路信息为所述数据高速缓存提供通路预测时,所述循环检测单元中止所述地址标签阵列的运行。按照本专利技术一实施例的运行方法,其中,如果检测不是为循环体,基于所述地址标签阵列控制数据阵列的n个数据通路的访问的选择输出。按照本专利技术一实施例的运行方法,其中,所述检测步骤中,循环堆栈被用来检测当前阶段执行的所有循环体,在该循环堆栈中,循环体被标记为,其中,T为目标指令的程序计数指令指针,B为跳转目标程序指令指针; 所述检测步骤包括以下步骤 检测所述循环堆栈结构是否为“空”; 如果判断为“是”,其表示当前执行的指令属于该循环堆栈中的正迭代运行的循环体; 如果判断为“否”,其进一步判断该指令是否为改变程序指令指针的分支或跳转指令; 如果是分支或跳转指令,通过将目标地址T记录并将其与当前循环堆栈的条目作比较,判断目标地址T是否存在于当前循环堆栈中,以判断是否为新循环体。本专利技术的技术效果是,通过循环检测单元检测出循环体,并存储该循环体的相关信息,在该循环体的迭代运行过程中,循环检测单元可以中止指令提取单元和/或指令解码单元的运行,并且为数据高速缓存提供通路预测,因此,可以降低处理器中的高速数据缓存的功耗并且基本不增加高速数据缓存的延迟,指令提取单元和/或指令解码单元运行时间减少、功耗降低,处理器整体功耗小。附图说明 从结合附图的以下详细说明中,将会使本专利技术的上述和其他目的及优点更加完全清楚,其中,相同或相似的要素采用相同的标号表示。图I是现有的处理器的微架构示意图。图2是按照本专利技术一实施例的处理器的微架构示意图。图3是循环检测单元检测循环体的流程示意图。具体实施例方式下面介绍的是本专利技术的多个可能实施例中的一些,旨在提供对本专利技术的基本了解,并不旨在确认本专利技术的关键或决定性的要素或限定所要保护的范围。容易理解,根据本专利技术的技术方案,在不变更本专利技术的实质精神下,本领域的一般技术人员可以提出可相互替换的其他实现方式。因此,以下具体实施方式以及附图仅是对本专利技术的技术方案的示例性说明,而不应当视为本专利技术的全部或者视为对本专利技术技术方案的限定或限制。下面的描述中,为描述的清楚和简明,并没有对图中所示的所有多个部件进行描述。附图中示出的多个部件提供了本领域普通技术人员完全能够实现本专利技术的公开内容。图I所示为现有的处理器的微架构示意图。如图I所示,处理器100中,指令提取(Instruction Fetch)单元110首先从高速缓存中的指令高速缓存190提取目标指令代码,进一步,通过指令提取单元110和指令解码单元120,将该指令代码解码成微操作(micro-operation)(例如微指令)。该微操作进一步被分派至队列重排缓冲器(ReorderBuff本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:丁立陈祺恺
申请(专利权)人:山东极芯电子科技有限公司
类型:发明
国别省市:

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

1