CN103077131A - 一种高速缓存分区域性能监视方法及监视器 - Google Patents
一种高速缓存分区域性能监视方法及监视器 Download PDFInfo
- Publication number
- CN103077131A CN103077131A CN2012105940014A CN201210594001A CN103077131A CN 103077131 A CN103077131 A CN 103077131A CN 2012105940014 A CN2012105940014 A CN 2012105940014A CN 201210594001 A CN201210594001 A CN 201210594001A CN 103077131 A CN103077131 A CN 103077131A
- Authority
- CN
- China
- Prior art keywords
- virtual address
- cache
- data area
- last level
- level cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000007547 defect Effects 0.000 abstract 1
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000005574 cross-species transmission Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种高速缓存分区域性能监视方法及监视器,应用于采用多级高速缓存结构的处理器,其方法包括:将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;处理器的一级高速缓存失效后,处理器依据失效的虚拟地址查询区域信息表,确定虚拟地址所属的虚拟地址数据区域,并将虚拟地址数据区域的区域编号传递给下一级高速缓存。本发明克服了现有技术中末级高速缓存技术缺少性能监视等技术缺陷,实现了对应用程序内虚拟地址空间数据区域的末级高速缓存访问性能监视机制。
Description
技术领域
本发明涉及计算机系统技术领域,尤其涉及一种高速缓存分区域性能监视方法及监视器。
背景技术
目前,处理器广泛采用多级高速缓存结构的存储器,用以加快访存指令的执行速度。随着处理器和存储器之间速度差距的不断扩大,高速缓存尤其是末级高速缓存失效产生的系统开销逐渐增大,成为制约计算机整体性能提高的重要瓶颈之一。如何降低末级高速缓存失效是当前计算机软硬件设计人员普遍关心的问题之一。
当前计算机系统普遍采用虚拟存储系统,由操作系统为应用程序分配物理内存,以页为单位建立虚拟地址和物理地址之间的映射关系。根据局部性原理,虚拟地址相邻的数据具有相似的访存行为。已有相关末级高速缓存优化技术通常将大片连续的虚拟地址组成一个数据区域,作为调整末级高速缓存管理策略的基本单位。但是,由于缺少性能监视器的支持,现有末级高速缓存优化技术难以在程序运行阶段获得不同虚拟地址区域的末级高速缓存访问信息,从而无法确定其访存行为和局部性强度,因此也难以在线调整末级高速缓存管理策略。
此外,现有技术中还存在如下问题或不足:虽然利用比较器可以确定单个地址所在的区域范围。但是,由于末级高速缓存通常采用物理地址寻址、物理地址索引结构。在程序运行过程中,操作系统已经为虚拟页分配了相应的物理页框。区域中的数据被分散到各个不连续的物理页框中,使得处理器难以在末级高速缓存访问过程中判断单个物理地址所属的数据区域。
发明内容
本发明解决的技术问题是提供一种高速缓存分区域性能监视方法及监视器,克服现有技术中末级高速缓存技术缺少性能监视等技术缺陷。
为解决上述技术问题,本发明提供了一种高速缓存分区域性能监视方法,应用于采用多级高速缓存结构的处理器,所述方法包括:
将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;
所述处理器的一级高速缓存失效后,所述处理器依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。
其中,所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址;
所述处理器的一级高速缓存失效后,所述处理器将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域。
其中,所述处理器在运行过程中,通过比较单次访存操作的虚拟地址与所述区域信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。
其中,上述方法还包括:
在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数信息和/或末级高速缓存命中计数信息。
其中,上述方法还包括:
所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。
其中,所述处理器依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。
本发明还提供了一种高速缓存分区域性能监视器,应用于采用多级高速缓存结构的处理器,包括:
信息管理单元,用于将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;
控制单元,用于当处理器的一级高速缓存失效后,依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。
其中,所述控制单元,通过将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域;
其中,所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址。
其中,所述控制单元还用于,在运行过程中,通过比较单次访存操作的虚拟地址与所述区域信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。
其中,所述信息管理单元还用于,在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数信息和/或末级高速缓存命中计数信息。
其中,所述控制单元还用于,当所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。
其中,所述控制单元用于,依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。
与现有技术相比较,本发明至少具有如下有益效果:
1)本发明一个实施例中,通过添加区域信息表和分区域末级高速缓存性能监视表,将每次末级高速缓存访问操作所涉及的物理地址自动翻译成对应的虚拟地址区域空间,并根据其访问状态更新失效或命中计数;
2)本发明一个实施例中,提供的区域信息表和分区域末级高速缓存性能监视表均不在末级高速缓存访问的关键路径上,可以和末级高速缓存访问并发执行,因此,本发明不增加末级高速缓存访问时延;
采用本发明实施例提供的方案,仅需要添加少量的存储空间和简单的比较逻辑就可以实现对应用程序内虚拟地址空间数据区域的末级高速缓存访问性能监视机制;同时,本发明提供的方案实现简单,具有较低的硬件开销,且使用本发明提供的不同虚拟地址区域的末级高速缓存访问信息具有实际的应用需求和广阔的应用前景。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的末级高速缓存分区域性能监视方法的示意图;
图2是本发明实施例的区域信息表结构图;
图3是本发明实施例的分区域末级高速缓存性能监视表结构示意图。
具体实施方式
本实施方式提供一种高速缓存分区域性能监视方法,在程序运行时刻记录每个数据区域的末级高速缓存访问计数,为运行时刻末级高速缓存管理策略调整方案提供支持。
本实施方式提供一种高速缓存分区域性能监视方法,具体包括如下主要内容:
分别建立区域信息表和分区域末级高速缓存性能监视表;在开始阶段根据程序工作集大小和虚拟地址空间中的数据分布确定每个数据区域的范围并在区域信息表中建立相应表项;在实际运行过程中,一级高速缓存失效后会将虚拟地址发送到区域信息表中,查询该地址所在的区域编号,并将区域编号和物理地址同时发送到下一级高速缓存中。区域编号用于访问分区域末级高速缓存性能监视表,使能其中的单个表项用于记录末级高速缓存访问信息,包括访问失效或命中计数。
更具体地说,首先,本实施方式在处理器一级高速缓存附近设计区域信息表。区域信息表由若干数据行组成,每个数据行表示一个虚拟地址数据区域。软件设计人员可以通过相应接口设置需要监控数据区域的虚拟地址范围和区域编号。单个数据区域的虚拟地址范围包括开始地址和结束地址两部分。一级高速缓存失效后,处理器会采用失效的虚拟地址查询区域信息表,通过比较该地址同每个表项的开始地址和数据地址的大小,确定该地址所属的区域。一旦查找到失效地址对应的表项,就将其区域编号读出,并同物理地址一起发送到下一级高速缓存中。下一级高速缓存失效后会继续将区域编号传递,直到末级高速缓存。
其次,本实施方式在末级高速缓存同一级别设计分区域末级高速缓存性能监视表。该表内包括多个数据行,每个数据行包括区域编号、末级高速缓存失效计数和末级高速缓存命中计数三部分组成。当物理地址访问末级高速缓存时,相应的区域编号同时被发送到分区域末级高速缓存性能监视表中。通过比较每个数据行的区域编号,可以使能对应的数据行表项。处理器会根据本次访问的结果更新分区域末级高速缓存性能监视表对应表项的计数。如本次访问命中,则将对应表项的命中计数器加1;否则,更新对应表项的失效技术器,使其加1。
为了便于阐述本发明,以下将结合附图及具体实施例对本发明技术方案的实施作进一步详细描述。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示的工作流程示意图中,处理器发出虚拟地址访问一级高速缓存的同时会访问区域信息表,读取出该次访存操作所在的虚拟地址区域编号。其中TLB用于存放将虚拟地址映射至物理地址的标签页表条目。当一级高速缓存失效后,物理地址和区域编号会发送到总线分别传输到末级高速缓存和分区域末级高速缓存性能监视表。采用区域编号查询分区域末级高速缓存性能监视表,可以使能所在区域的对应表项;此外还可以根据此次访问结果更新对应表项的命中计数或失效计数。
本发明实施例提供的区域信息表结构如图2所示,其中每个表项由开始地址、结束地址和区域编号三部分组成。虚拟地址同时比较开始地址和结束地址,判断是否属于该虚拟地址数据区域,如果属于,则将该数据行的区域编号读出,发送到分区域末级高速缓存性能监视表。
本发明实施例提供的分区域末级高速缓存性能监视表结构如图3所示,其中,每个表项由区域编号、命中计数和失效计数三部分组成。通过比较区域编号,可以查到该区域所在的数据行。根据末级高速缓存访问状态,可以更新该行的命中计数或失效计数。每次更新操作是将对应的计数器加1。本发明采用64位计数器设计,在现有应用程序运行过程中不会发生溢出现象。同时,软件可以重新配置该系列计数器,在每次重新设置区域时将其清零。
此外,本发明实施例中还提供了一种末级高速缓存性能监视器,可以应用于采用多级高速缓存结构的处理器,其具体可包括如下功能模块/单元:
信息管理单元,用于将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;
控制单元,用于当处理器的一级高速缓存失效后,依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。
其中,所述控制单元,通过将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域;
其中,所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址。
其中,所述控制单元还用于,在运行过程中,通过比较单次访存操作的虚拟地址与所述区域信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。
其中,所述信息管理单元还用于,在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数信息和/或末级高速缓存命中计数信息。
其中,所述控制单元还用于,当所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。
其中,所述控制单元用于,依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。
以上说明书中描述的只是本发明的具体实施方式,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式做修改或变形,而不背离发明的实质和范围,但这些相应的修改和变形都应属于本发明所附的权利要求的保护范围。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
Claims (12)
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所述的高速缓存分区域性能监视器,其中:
所述控制单元用于,依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105940014A CN103077131A (zh) | 2012-12-31 | 2012-12-31 | 一种高速缓存分区域性能监视方法及监视器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105940014A CN103077131A (zh) | 2012-12-31 | 2012-12-31 | 一种高速缓存分区域性能监视方法及监视器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103077131A true CN103077131A (zh) | 2013-05-01 |
Family
ID=48153663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105940014A Pending CN103077131A (zh) | 2012-12-31 | 2012-12-31 | 一种高速缓存分区域性能监视方法及监视器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103077131A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015014302A1 (zh) * | 2013-07-31 | 2015-02-05 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机系统 |
-
2012
- 2012-12-31 CN CN2012105940014A patent/CN103077131A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015014302A1 (zh) * | 2013-07-31 | 2015-02-05 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机系统 |
US9864696B2 (en) | 2013-07-31 | 2018-01-09 | Huawei Technologies Co., Ltd. | Multilevel cache-based data read/write method and apparatus, and computer system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10176057B2 (en) | Multi-lock caches | |
Sarkar et al. | Efficient cooperative caching using hints | |
CN103677759B (zh) | 一种用于信息系统性能提升的对象化并行计算方法及系统 | |
US11169927B2 (en) | Efficient cache management | |
US20040143707A1 (en) | Dynamic cache partitioning | |
US9229869B1 (en) | Multi-lock caches | |
CN110069419A (zh) | 多级缓存系统及其访问控制方法、设备和存储介质 | |
US10366010B1 (en) | Cache memory data management using relative access frequency | |
CN103885728A (zh) | 一种基于固态盘的磁盘缓存系统 | |
CN105917318A (zh) | 用于实现基于ssd的i/o高速缓存的系统和方法 | |
CN105917319A (zh) | 存储器单元和方法 | |
CN104679594B (zh) | 一种中间件分布式计算方法 | |
CN108932150A (zh) | 基于ssd和磁盘混合存储的缓存方法、装置及介质 | |
CN105446889B (zh) | 一种内存管理方法、装置以及内存控制器 | |
CN107018172A (zh) | 用于在分布式缓存存储器中自适应分区的系统和方法 | |
US11263270B1 (en) | Heat balancing in a distributed time-series database | |
CN102110073B (zh) | 一种片上共享高速缓存的替换装置和方法以及相应处理器 | |
CN104111898A (zh) | 基于多维数据相似性的混合存储系统及数据管理方法 | |
CN106844232A (zh) | 一种面向多核处理器的共享末级高速缓存访存方法和装置 | |
Xu et al. | Rethink the storage of virtual machine images in clouds | |
CN106126434B (zh) | 中央处理器的缓存区的缓存行的替换方法及其装置 | |
US9699254B2 (en) | Computer system, cache management method, and computer | |
CN104714898B (zh) | 一种Cache的分配方法和装置 | |
Guo et al. | HP-mapper: A high performance storage driver for docker containers | |
CN102323909A (zh) | 实现使用大容量高速缓存的内存管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130501 |