《一种高速缓存分区域性能监视方法及监视器.pdf》由会员分享,可在线阅读,更多相关《一种高速缓存分区域性能监视方法及监视器.pdf(10页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103077131 A(43)申请公布日 2013.05.01CN103077131A*CN103077131A*(21)申请号 201210594001.4(22)申请日 2012.12.31G06F 12/08(2006.01)(71)申请人北京北大众志微系统科技有限责任公司地址 100080 北京市海淀区中关村北大街151号资源大厦11层(72)发明人程旭 黄涛 王晶 管雪涛(74)专利代理机构北京安信方达知识产权代理有限公司 11262代理人栗若木 曲鹏(54) 发明名称一种高速缓存分区域性能监视方法及监视器(57) 摘要一种高速缓存分区域性能监视方法及监视器。
2、,应用于采用多级高速缓存结构的处理器,其方法包括:将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;处理器的一级高速缓存失效后,处理器依据失效的虚拟地址查询区域信息表,确定虚拟地址所属的虚拟地址数据区域,并将虚拟地址数据区域的区域编号传递给下一级高速缓存。本发明克服了现有技术中末级高速缓存技术缺少性能监视等技术缺陷,实现了对应用程序内虚拟地址空间数据区域的末级高速缓存访问性能监视机制。(51)Int.Cl.权利要求书2页 说明书5页 附图2页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书。
3、2页 说明书5页 附图2页(10)申请公布号 CN 103077131 ACN 103077131 A1/2页21.一种高速缓存分区域性能监视方法,应用于采用多级高速缓存结构的处理器,所述方法包括:将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;所述处理器的一级高速缓存失效后,所述处理器依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。2.如权利要求1所述的方法,其中:所述虚拟地址数据区域的虚拟地址范围包括开始地址和结。
4、束地址;所述处理器的一级高速缓存失效后,所述处理器将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域。3.如权利要求1所述的方法,其中:所述处理器在运行过程中,通过比较单次访存操作的虚拟地址与所述区域信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。4.如权利要求1、2或3所述的方法,还包括:在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数信息和/或末级高速缓存命中。
5、计数信息。5.如权利要求4所述的方法,还包括:所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。6.如权利要求5所述的方法,其中:所述处理器依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。7.一种高速缓存分区域性能监视器,应用于采用多级高速缓存结构的处理器,包括:信息管理单元,用于将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;控制单元,用于当处理器的一级高速。
6、缓存失效后,依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。8.如权利要求7所述的高速缓存分区域性能监视器,其中:所述控制单元,通过将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域;其中,所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址。9.如权利要求7所述的高速缓存分区域性能监视器,其中:所述控制单元还用于,在运行过程中,通过比较单次访存操作的虚拟地址与所述区域权 利 要 求 书CN 103077131 A2/2页3信息表中的虚拟地址范围。
7、,确定本次访存操作的虚拟地址数据区域的区域编号。10.如权利要求7、8或9所述的高速缓存分区域性能监视器,其中:所述信息管理单元还用于,在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数信息和/或末级高速缓存命中计数信息。11.如权利要求10所述的高速缓存分区域性能监视器,其中:所述控制单元还用于,当所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。12.。
8、如权利要求11所述的高速缓存分区域性能监视器,其中:所述控制单元用于,依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。权 利 要 求 书CN 103077131 A1/5页4一种高速缓存分区域性能监视方法及监视器技术领域0001 本发明涉及计算机系统技术领域,尤其涉及一种高速缓存分区域性能监视方法及监视器。背景技术0002 目前,处理器广泛采用多级高速缓存结构的存储器,用以加快访存指令的执行速度。随着处理器和存储器之间速度差距的不断扩大,高速缓存尤其是末级高速缓存失效产生的系统开销逐渐增大,成为制约计算机整体性能提高的重要瓶颈之一。如何降低末。
9、级高速缓存失效是当前计算机软硬件设计人员普遍关心的问题之一。0003 当前计算机系统普遍采用虚拟存储系统,由操作系统为应用程序分配物理内存,以页为单位建立虚拟地址和物理地址之间的映射关系。根据局部性原理,虚拟地址相邻的数据具有相似的访存行为。已有相关末级高速缓存优化技术通常将大片连续的虚拟地址组成一个数据区域,作为调整末级高速缓存管理策略的基本单位。但是,由于缺少性能监视器的支持,现有末级高速缓存优化技术难以在程序运行阶段获得不同虚拟地址区域的末级高速缓存访问信息,从而无法确定其访存行为和局部性强度,因此也难以在线调整末级高速缓存管理策略。0004 此外,现有技术中还存在如下问题或不足:虽然利。
10、用比较器可以确定单个地址所在的区域范围。但是,由于末级高速缓存通常采用物理地址寻址、物理地址索引结构。在程序运行过程中,操作系统已经为虚拟页分配了相应的物理页框。区域中的数据被分散到各个不连续的物理页框中,使得处理器难以在末级高速缓存访问过程中判断单个物理地址所属的数据区域。发明内容0005 本发明解决的技术问题是提供一种高速缓存分区域性能监视方法及监视器,克服现有技术中末级高速缓存技术缺少性能监视等技术缺陷。0006 为解决上述技术问题,本发明提供了一种高速缓存分区域性能监视方法,应用于采用多级高速缓存结构的处理器,所述方法包括:0007 将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级。
11、高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;0008 所述处理器的一级高速缓存失效后,所述处理器依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。0009 其中,所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址;0010 所述处理器的一级高速缓存失效后,所述处理器将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域。说 明 书CN 103077131 A2/5页50011 其中,所述处理器在运行过程中。
12、,通过比较单次访存操作的虚拟地址与所述区域信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。0012 其中,上述方法还包括:0013 在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数信息和/或末级高速缓存命中计数信息。0014 其中,上述方法还包括:0015 所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。0016 其中,所述处理器。
13、依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。0017 本发明还提供了一种高速缓存分区域性能监视器,应用于采用多级高速缓存结构的处理器,包括:0018 信息管理单元,用于将虚拟地址空间分为多个虚拟地址数据区域,在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;0019 控制单元,用于当处理器的一级高速缓存失效后,依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。0020 其中,所述控制单元,通过将所述失效的。
14、虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域;0021 其中,所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址。0022 其中,所述控制单元还用于,在运行过程中,通过比较单次访存操作的虚拟地址与所述区域信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。0023 其中,所述信息管理单元还用于,在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数信息和/或末级高速缓存命中。
15、计数信息。0024 其中,所述控制单元还用于,当所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地址数据区域的访问信息。0025 其中,所述控制单元用于,依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。0026 与现有技术相比较,本发明至少具有如下有益效果:0027 1)本发明一个实施例中,通过添加区域信息表和分区域末级高速缓存性能监视表,将每次末级高速缓存访问操作所涉及的物理地址自动翻译成对应的虚拟地址区域空间,并根据其访问状态更新失效或命中计数;0028 2)本发明一个。
16、实施例中,提供的区域信息表和分区域末级高速缓存性能监视表均说 明 书CN 103077131 A3/5页6不在末级高速缓存访问的关键路径上,可以和末级高速缓存访问并发执行,因此,本发明不增加末级高速缓存访问时延;0029 采用本发明实施例提供的方案,仅需要添加少量的存储空间和简单的比较逻辑就可以实现对应用程序内虚拟地址空间数据区域的末级高速缓存访问性能监视机制;同时,本发明提供的方案实现简单,具有较低的硬件开销,且使用本发明提供的不同虚拟地址区域的末级高速缓存访问信息具有实际的应用需求和广阔的应用前景。附图说明0030 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的。
17、示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:0031 图1是本发明实施例的末级高速缓存分区域性能监视方法的示意图;0032 图2是本发明实施例的区域信息表结构图;0033 图3是本发明实施例的分区域末级高速缓存性能监视表结构示意图。具体实施方式0034 本实施方式提供一种高速缓存分区域性能监视方法,在程序运行时刻记录每个数据区域的末级高速缓存访问计数,为运行时刻末级高速缓存管理策略调整方案提供支持。0035 本实施方式提供一种高速缓存分区域性能监视方法,具体包括如下主要内容:0036 分别建立区域信息表和分区域末级高速缓存性能监视表;在开始阶段根据程序工作集大小和。
18、虚拟地址空间中的数据分布确定每个数据区域的范围并在区域信息表中建立相应表项;在实际运行过程中,一级高速缓存失效后会将虚拟地址发送到区域信息表中,查询该地址所在的区域编号,并将区域编号和物理地址同时发送到下一级高速缓存中。区域编号用于访问分区域末级高速缓存性能监视表,使能其中的单个表项用于记录末级高速缓存访问信息,包括访问失效或命中计数。0037 更具体地说,首先,本实施方式在处理器一级高速缓存附近设计区域信息表。区域信息表由若干数据行组成,每个数据行表示一个虚拟地址数据区域。软件设计人员可以通过相应接口设置需要监控数据区域的虚拟地址范围和区域编号。单个数据区域的虚拟地址范围包括开始地址和结束地。
19、址两部分。一级高速缓存失效后,处理器会采用失效的虚拟地址查询区域信息表,通过比较该地址同每个表项的开始地址和数据地址的大小,确定该地址所属的区域。一旦查找到失效地址对应的表项,就将其区域编号读出,并同物理地址一起发送到下一级高速缓存中。下一级高速缓存失效后会继续将区域编号传递,直到末级高速缓存。0038 其次,本实施方式在末级高速缓存同一级别设计分区域末级高速缓存性能监视表。该表内包括多个数据行,每个数据行包括区域编号、末级高速缓存失效计数和末级高速缓存命中计数三部分组成。当物理地址访问末级高速缓存时,相应的区域编号同时被发送到分区域末级高速缓存性能监视表中。通过比较每个数据行的区域编号,可以。
20、使能对应的数据行表项。处理器会根据本次访问的结果更新分区域末级高速缓存性能监视表对应表项的计数。如本次访问命中,则将对应表项的命中计数器加1;否则,更新对应表项的失效技术器,使其加1。说 明 书CN 103077131 A4/5页70039 为了便于阐述本发明,以下将结合附图及具体实施例对本发明技术方案的实施作进一步详细描述。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。0040 如图1所示的工作流程示意图中,处理器发出虚拟地址访问一级高速缓存的同时会访问区域信息表,。
21、读取出该次访存操作所在的虚拟地址区域编号。其中TLB用于存放将虚拟地址映射至物理地址的标签页表条目。当一级高速缓存失效后,物理地址和区域编号会发送到总线分别传输到末级高速缓存和分区域末级高速缓存性能监视表。采用区域编号查询分区域末级高速缓存性能监视表,可以使能所在区域的对应表项;此外还可以根据此次访问结果更新对应表项的命中计数或失效计数。0041 本发明实施例提供的区域信息表结构如图2所示,其中每个表项由开始地址、结束地址和区域编号三部分组成。虚拟地址同时比较开始地址和结束地址,判断是否属于该虚拟地址数据区域,如果属于,则将该数据行的区域编号读出,发送到分区域末级高速缓存性能监视表。0042 。
22、本发明实施例提供的分区域末级高速缓存性能监视表结构如图3所示,其中,每个表项由区域编号、命中计数和失效计数三部分组成。通过比较区域编号,可以查到该区域所在的数据行。根据末级高速缓存访问状态,可以更新该行的命中计数或失效计数。每次更新操作是将对应的计数器加1。本发明采用64位计数器设计,在现有应用程序运行过程中不会发生溢出现象。同时,软件可以重新配置该系列计数器,在每次重新设置区域时将其清零。0043 此外,本发明实施例中还提供了一种末级高速缓存性能监视器,可以应用于采用多级高速缓存结构的处理器,其具体可包括如下功能模块/单元:0044 信息管理单元,用于将虚拟地址空间分为多个虚拟地址数据区域,。
23、在处理器一级高速缓存层建立区域信息表,所述区域信息表中存放各虚拟地址数据区域的区域编号和虚拟地址范围;0045 控制单元,用于当处理器的一级高速缓存失效后,依据失效的虚拟地址查询所述区域信息表,确定所述虚拟地址所属的虚拟地址数据区域,并将所述虚拟地址数据区域的区域编号传递给下一级高速缓存。0046 其中,所述控制单元,通过将所述失效的虚拟地址逐个与所述虚拟地址范围的开始地址和结束地址进行比较,确定所述虚拟地址所属的虚拟地址数据区域;0047 其中,所述虚拟地址数据区域的虚拟地址范围包括开始地址和结束地址。0048 其中,所述控制单元还用于,在运行过程中,通过比较单次访存操作的虚拟地址与所述区域。
24、信息表中的虚拟地址范围,确定本次访存操作的虚拟地址数据区域的区域编号。0049 其中,所述信息管理单元还用于,在所述处理器的末级高速缓存层建立分区域末级高速缓存性能监视表,所述分区域末级高速缓存性能监视表中包括所述虚拟地址数据区域的区域编号和访问信息,其中所述虚拟地址数据区域的访问信息包括末级高速缓存失效计数信息和/或末级高速缓存命中计数信息。0050 其中,所述控制单元还用于,当所述处理器访问所述末级高速缓存时,根据本次末级高速缓存访问操作的操作结果更新所述分区域末级高速缓存性能监视表中对应虚拟地说 明 书CN 103077131 A5/5页8址数据区域的访问信息。0051 其中,所述控制单。
25、元用于,依据所述末级高速缓存访问操作的区域编号确定所述分区域末级高速缓存性能监视表中对应的虚拟地址数据区域。0052 以上说明书中描述的只是本发明的具体实施方式,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式做修改或变形,而不背离发明的实质和范围,但这些相应的修改和变形都应属于本发明所附的权利要求的保护范围。0053 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。说 明 书CN 103077131 A1/2页9图1图2说 明 书 附 图CN 103077131 A2/2页10图3说 明 书 附 图CN 103077131 A10。