一种高速缓存分区域性能监视方法及监视器的制作方法

文档序号:6386550阅读:198来源:国知局
专利名称:一种高速缓存分区域性能监视方法及监视器的制作方法
技术领域
本发明涉及计算机系统技术领域,尤其涉及一种高速缓存分区域性能监视方法及监视器。
背景技术
目前,处理器广泛采用多级高速缓存结构的存储器,用以加快访存指令的执行速度。随着处理器和存储器之间速度差距的不断扩大,高速缓存尤其是末级高速缓存失效产生的系统开销逐渐增大,成为制约计算机整体性能提高的重要瓶颈之一。如何降低末级高速缓存失效是当前计算机软硬件设计人员普遍关心的问题之一。当前计算机系统普遍采用虚拟存储系统,由操作系统为应用程序分配物理内存,以页为单位建立虚拟地址和物理地址之间的映射关系。根据局部性原理,虚拟地址相邻的数据具有相似的访存行为。已有相关末级高速缓存优化技术通常将大片连续的虚拟地址组成一个数据区域,作为调整末级高速缓存管理策略的基本单位。但是,由于缺少性能监视器的支持,现有末级高速缓存优化技术难以在程序运行阶段获得不同虚拟地址区域的末级高速缓存访问信息,从而无法确定其访存行为和局部性强度,因此也难以在线调整末级高速缓存管理策略。此外,现有技术中还存在如下问题或不足虽然利用比较器可以确定单个地址所在的区域范围。但是,由于末级高速缓存通常采用物理地址寻址、物理地址索引结构。在程序运行过程中,操作系统已经为虚拟页分配了相应的物理页框。区域中的数据被分散到各个不连续的物理页框中,使得处理器难以在末级高速缓存访问过程中判断单个物理地址所属的数据区域。

发明内容
本发明解决的技术问题是提供一种高速缓存分区域性能监视方法及监视器,克服现有技术中末级高速缓存技术缺少性能监视等技术缺陷。为解决上述技术问题,本发明提供了一种高速缓存分区域性能监视方法,应用于采用多级高速缓存结构的处理器,所述方法包括将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;所述处理器的一级高速缓存失效后,所述处理器依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。其中,所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址;所述处理器的一级高速缓存失效后,所述处理器将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域。
其中,所述处理器在运行过程中,通过比较单次访存操作的虚拟地址与所述区域信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。其中,上述方法还包括在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数信息和/或末级高速缓存命中计数信息。其中,上述方法还包括所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。其中,所述处理器依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。本发明还提供了一种高速缓存分区域性能监视器,应用于采用多级高速缓存结构的处理器,包括信息管理单元,用于将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;控制单元,用于当处理器的一级高速缓存失效后,依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。其中,所述控制单元,通过将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域;其中,所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址。其中,所述控制单元还用于,在运行过程中,通过比较单次访存操作的虚拟地址与所述区域信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。其中,所述信息管理单元还用于,在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数息和/或末级闻速缓存命中计数息。其中,所述控制单元还用于,当所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。其中,所述控制单元用于,依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。与现有技术相比较,本发明至少具有如下有益效果I)本发明一个实施例中,通过添加区域信息表和分区域末级高速缓存性能监视表,将每次末级高速缓存访问操作所涉及的物理地址自动翻译成对应的虚拟地址区域空间,并根据其访问状态更新失效或命中计数;2)本发明一个实施例中,提供的区域信息表和分区域末级高速缓存性能监视表均不在末级高速缓存访问的关键路径上,可以和末级高速缓存访问并发执行,因此,本发明不增加末级高速缓存访问时延;采用本发明实施例提供的方案,仅需要添加少量的存储空间和简单的比较逻辑就可以实现对应用程序内虚拟地址空间数据区域的末级高速缓存访问性能监视机制;同时,本发明提供的方案实现简单,具有较低的硬件开销,且使用本发明提供的不同虚拟地址区域的末级高速缓存访问信息具有实际的应用需求和广阔的应用前景。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是本发明实施例的末级高速缓存分区域性能监视方法的示意图;图2是本发明实施例的区域信息表结构图;图3是本发明实施例的分区域末级高速缓存性能监视表结构示意图。
具体实施例方式本实施方式提供一种高速缓存分区域性能监视方法,在程序运行时刻记录每个数据区域的末级高速缓存访问计数,为运行时刻末级高速缓存管理策略调整方案提供支持。本实施方式提供一种高速缓存分区域性能监视方法,具体包括如下主要内容分别建立区域信息表和分区域末级高速缓存性能监视表;在开始阶段根据程序工作集大小和虚拟地址空间中的数据分布确定每个数据区域的范围并在区域信息表中建立相应表项;在实际运行过程中,一级高速缓存失效后会将虚拟地址发送到区域信息表中,查询该地址所在的区域编号,并将区域编号和物理地址同时发送到下一级高速缓存中。区域编号用于访问分区域末级高速缓存性能监视表,使能其中的单个表项用于记录末级高速缓存访问信息,包括访问失效或命中计数。更具体地说,首先,本实施方式在处理器一级高速缓存附近设计区域信息表。区域信息表由若干数据行组成,每个数据行表示一个虚拟地址数据区域。软件设计人员可以通过相应接口设置需要监控数据区域的虚拟地址范围和区域编号。单个数据区域的虚拟地址范围包括开始地址和结束地址两部分。一级高速缓存失效后,处理器会采用失效的虚拟地址查询区域信息表,通过比较该地址同每个表项的开始地址和数据地址的大小,确定该地址所属的区域。一旦查找到失效地址对应的表项,就将其区域编号读出,并同物理地址一起发送到下一级高速缓存中。下一级高速缓存失效后会继续将区域编号传递,直到末级高速缓存。其次,本实施方式在末级高速缓存同一级别设计分区域末级高速缓存性能监视表。该表内包括多个数据行,每个数据行包括区域编号、末级高速缓存失效计数和末级高速缓存命中计数三部分组成。当物理地址访问末级高速缓存时,相应的区域编号同时被发送到分区域末级高速缓存性能监视表中。通过比较每个数据行的区域编号,可以使能对应的数据行表项。处理器会根据本次访问的结果更新分区域末级高速缓存性能监视表对应表项的计数。如本次访问命中,则将对应表项的命中计数器加I ;否则,更新对应表项的失效技术器,使其加I。
为了便于阐述本发明,以下将结合附图及具体实施例对本发明技术方案的实施作进一步详细描述。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。如图1所示的工作流程示意图中,处理器发出虚拟地址访问一级高速缓存的同时会访问区域信息表,读取出该次访存操作所在的虚拟地址区域编号。其中TLB用于存放将虚拟地址映射至物理地址的标签页表条目。当一级高速缓存失效后,物理地址和区域编号会发送到总线分别传输到末级高速缓存和分区域末级高速缓存性能监视表。采用区域编号查询分区域末级高速缓存性能监视表,可以使能所在区域的对应表项;此外还可以根据此次访问结果更新对应表项的命中计数或失效计数。本发明实施例提供的区域信息表结构如图2所示,其中每个表项由开始地址、结束地址和区域编号三部分组成。虚拟地址同时比较开始地址和结束地址,判断是否属于该虚拟地址数据区域,如果属于,则将该数据行的区域编号读出,发送到分区域末级高速缓存性能监视表。本发明实施例提供的分区域末级高速缓存性能监视表结构如图3所示,其中,每个表项由区域编号、命中计数和失效计数三部分组成。通过比较区域编号,可以查到该区域所在的数据行。根据末级高速缓存访问状态,可以更新该行的命中计数或失效计数。每次更新操作是将对应的计数器加I。本发明采用64位计数器设计,在现有应用程序运行过程中不会发生溢出现象。同时,软件可以重新配置该系列计数器,在每次重新设置区域时将其清零。此外,本发明实施例中还提供了一种末级高速缓存性能监视器,可以应用于采用多级高速缓存结构的处理器,其具体可包括如下功能模块/单元信息管理单元,用于将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;控制单元,用于当处理器的一级高速缓存失效后,依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。其中,所述控制单元,通过将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域;其中,所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址。其中,所述控制单元还用于,在运行过程中,通过比较单次访存操作的虚拟地址与所述区域信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。其中,所述信息管理单元还用于,在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数息和/或末级闻速缓存命中计数息。其中,所述控制单元还用于,当所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。其中,所述控制单元用于,依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。以上说明书中描述的只是本发明的具体实施方式
,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式
做修改或变形,而不背离发明的实质和范围,但这些相应的修改和变形都应属于本发明所附的权利要求的保护范围。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
权利要求
1.一种高速缓存分区域性能监视方法,应用于采用多级高速缓存结构的处理器,所述方法包括:将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;所述处理器的一级高速缓存失效后,所述处理器依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。
2.如权利要求1所述的方法,其中:所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址;所述处理器的一级高速缓存失效后,所述处理器将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域。
3.如权利要求1所述的方法,其中:所述处理器在运行过程中,通过比较单次访存操作的虚拟地址与所述区域信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。
4.如权利要求1、2或3所述的方法,还包括:在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数信息和/或末级高速缓存命中计数信息。
5.如权利要求4所述的方法,还包括:所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。
6.如权利要求5所述的方法,其中:所述处理器依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。
7.一种高速缓存分区域性能监视器,应用于采用多级高速缓存结构的处理器,包括:信息管理单元,用于将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;控制单元,用于当处理器的一级高速缓存失效后,依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。
8.如权利要求7所述的高速缓存分区域性能监视器,其中:所述控制单元,通过将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域;其中,所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址。
9.如权利要求7所述的高速缓存分区域性能监视器,其中: 所述控制单元还用于,在运行过程中,通过比较单次访存操作的虚拟地址与所述区域信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。
10.如权利要求7、8或9所述的高速缓存分区域性能监视器,其中:所述信息管理单元还用于,在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数信息和/或末级高速缓存命中计数信息。
11.如权利要求10所述的高速缓存分区域性能监视器,其中:所述控制单元还用于,当所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。
12.如权利要求11所述的高速缓存分区域性能监视器,其中:所述控制单元用于,依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中 对应的虚拟地址数据区域。
全文摘要
一种高速缓存分区域性能监视方法及监视器,应用于采用多级高速缓存结构的处理器,其方法包括将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;处理器的一级高速缓存失效后,处理器依据失效的虚拟地址查询区域信息表,确定虚拟地址所属的虚拟地址数据区域,并将虚拟地址数据区域的区域编号传递给下一级高速缓存。本发明克服了现有技术中末级高速缓存技术缺少性能监视等技术缺陷,实现了对应用程序内虚拟地址空间数据区域的末级高速缓存访问性能监视机制。
文档编号G06F12/08GK103077131SQ20121059400
公开日2013年5月1日 申请日期2012年12月31日 优先权日2012年12月31日
发明者程旭, 黄涛, 王晶, 管雪涛 申请人:北京北大众志微系统科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1