CN104331377B - 一种多核处理器系统的目录缓存管理方法 - Google Patents
一种多核处理器系统的目录缓存管理方法 Download PDFInfo
- Publication number
- CN104331377B CN104331377B CN201410645205.5A CN201410645205A CN104331377B CN 104331377 B CN104331377 B CN 104331377B CN 201410645205 A CN201410645205 A CN 201410645205A CN 104331377 B CN104331377 B CN 104331377B
- Authority
- CN
- China
- Prior art keywords
- directory caching
- directory
- caching
- cache blocks
- capacity
- 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.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims description 22
- 230000009194 climbing Effects 0.000 claims description 7
- 238000005192 partition Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000002955 isolation Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种多核处理器系统的目录缓存管理方法,包括以下步骤:利用内存地址的缓存块索引位对目录缓存进行划分;于系统物理内存分配时,通过为不同并行单元的数据分配不同的缓存块索引位,控制所述并行单元所占用的目录缓存容量。本发明公开的多核处理器系统的目录缓存管理方法,能够解决由于目录缓存的容量有限,不同并行单元的数据在目录缓存中的冲突造成系统性能降低的问题。
Description
技术领域
本发明涉及多核处理器系统,尤其涉及一种多核处理器系统的目录缓存管理方法。
背景技术
随着半导体工艺技术的进步,片上晶体管的数目依旧符合摩尔定律,每36个月翻一番。然而受限于处理器散热与封装技术的限制,商业串行处理器已经遇到了进一步提升性能的瓶颈。为了获得更好的性能面积比与性能功耗比,依靠挖掘线程级并行的片上多处理器与多核处理器成为目前的主流的架构。
其中,私有缓存是提升多核处理器性能的重要组件,维护私有缓存数据的一致性是多核处理器设计中的重点与难点。基于侦听的协议与基于目录的协议是目前最常用的两种缓存一致性协议。基于侦听的协议,设计简单,通过广播的方式通知所有的私有数据备份来维护数据一致性,但是广播的网络开销巨大,使其不具备可扩展性。基于目录的协议,通过集中式的目录记录所有的内存块在私有缓存中的备份情况,避免了广播的开销,更适合大规模的并行系统。
在基于目录的缓存一致性协议中,为了维护私有数据的一致性,处理器每次内存访问都首先要访问目录,因此其访问延迟对多核处理器的性能极为重要。为了降低访问延迟,研究人员采用了片上目录缓存来维护一致性。与目录记录整个内存的备份情况不同,片上目录缓存仅记录处理器内部私有缓存中的数据备份情况,片上目录缓存的容量对执行负载程序的性能极为关键。
图1所示多核处理器系统的结构示意图。图2所示为图1所示处理器一次访存流程图。如图1所示,多核处理器例如由四个Tile组成,每个Tile包括一个处理器核、一个L1Cache与一个L2Cache,每个Tile通过内部网络共享L3Cache。目录缓存(DirectoryCache)与L3Cache同层用来维护该处理器内部的一致性。处理器通过外部网络与内存(DDR)以及其他处理器相连。如图2所示,处理器核执行访存指令,经过流水线通过访存部件发到L1Cache,如果L1Cache命中则返回数据,如果L1Cache缺失则将数据请求发往L2Cache。请求在L2Cache查找,如果L2Cache命中则返回数据,如果L2Cache缺失则发往目录缓存。在目录缓存中查找,如果命中则根据缓存一致性协议维护私有缓存的数据一致性,如果缺失,则在目录缓存中寻找一个空闲位置,如果没有空闲位置,则执行替换,执行替换过程中需要使无效私有缓存中的数据备份。最后,从L3Cache或者DDR中获取数据并返回。
由于片上目录缓存的容量问题是随着处理器内部的核数快速增长而出现的,目前相关研究尚处于起步阶段,主要的研究工作集中在降低目录缓存的面积、避免组内冲突、避免私有数据的使无效消息等。然而,针对目录缓存的数据隔离与容量控制的研究工作,目前仍是空白。
发明内容
本发明提供一种多核处理器系统的目录缓存管理方法,用来解决由于目录缓存的容量有限,不同并行单元的数据在目录缓存中的冲突造成系统性能降低的问题。
为了解决上述技术问题,本发明提供一种多核处理器系统的目录缓存管理方法,包括以下步骤:利用内存地址的缓存块索引位对目录缓存进行划分;于系统物理内存分配时,通过为不同并行单元的数据分配不同的缓存块索引位,控制所述并行单元所占用的目录缓存容量。
进一步地,所述利用内存地址的缓存块索引位对目录缓存进行划分的过程包括:在目录缓存中,将内存地址分成Tag-Index-Offset三段,其中,Tag是内存地址的标签,用来决定所述内存地址是否在目录缓存中命中,Index是一组缓存块的索引位,Offset是缓存块的偏移。
进一步地,于系统物理内存分配时,通过为不同并行单元的数据分配不同的缓存块索引位,控制所述并行单元所占用的目录缓存容量的过程包括:在物理内存中,内存地址分成PageNumber-PageOffset两段,其中PageNumber是物理页号,PageOffset是页内偏移,所述缓存块的索引位与所述物理页号有重合部分,通过对物理页号的管理控制数据在目录缓存中的位置,其中,所述缓存块的索引位与所述物理页号重合部分定义为页着色位。
进一步地,同一并行单元的数据分配在页着色位相同的物理内存页中。
进一步地,本发明提供的多核处理器系统的目录缓存管理方法,还包括以下步骤:利用爬山法动态调整不同并行单元的数据所占用的目录缓存容量,寻找最优解。
进一步地,所述利用爬山法动态调整不同并行单元的数据所占用的目录缓存容量,寻找最优解的过程包括:S1:为每个并行单元分配容量有限的目录缓存块;S2:增加分配给所述并行单元的目录缓存块容量,统计性能监控寄存器(PMC)的执行状态;S3:判断所述并行单元的性能是否获得提升,若所述并行单元可以获得性能提升,则返回S2,若所述并行单元的性能不再提升,则当前为所述并行单元分配的目录缓存容量即为最优解。
进一步地,所述并行单元为不同进程或同一进程中的不同线程。
本发明提供的多核处理器系统的目录缓存管理方法,通过页着色的方法,在片上目录缓存中隔离不同并行单元的数据,并基于爬山法调整并行单元占用目录缓存的容量,获取系统的最大性能。
附图说明
图1所示为多核处理器系统的结构示意图;
图2所示为图1所示处理器一次访存流程图;
图3所示为本发明较佳实施例提供的目录缓存的索引方式示意图;
图4所示为本发明较佳实施例提供的物理页号划分目录缓存示意图;
图5所示为本发明较佳实施例提供的爬山法的流程图。
具体实施方式
下面结合附图及实施例对本发明作进一步详细说明。
图3所示为目录缓存的索引方式,图3所示的是一个四路组相联的目录缓存。在访问目录缓存的过程中,访存地址被划分成了三段Tag-Index-Offset。其中,Tag是地址的标签,用来决定地址是否在目录缓存中命中;Index是一组缓存块的索引位,用来索引每一路(Way)中的某个缓存块,对于1MB容量的四路组相联结构,Index需要12Bits;Offset是缓存块的块内偏移,由缓存块的大小决定,对于64字节的缓存块,Offset是6Bits。
图4所示为根据物理页号划分目录缓存的示意图。如图4所示,上半部分展示了内存管理算法对内存地址的组织,内存的物理地址被分成了物理页号(PageNumber)与页内偏移(PageOffset)两段。其中,物理页号用来索引物理页。下半部分给出了目录缓存对内存地址的组织,内存的物理地址被分成了三段标签(Tag)、块索引(Index)以及块内偏移(Offset),其中块索引用来查找缓存块。在一个1MB容量的四路组相联目录缓存中(块长度为64字节),物理页号与块索引有6Bits的数据位重叠,在此,定义为页着色位。在操作系统的物理内存分配当中,可以将同一个并行单元的数据分配在页着色位相同的物理内存当中。如此,该并行单元的数据在目录缓存中会占用固定的几组缓存块,通过对物理页号的管理,可以控制数据在目录缓存中的位置,从而实现不同并行单元之间的目录缓存数据隔离。
在实际的执行系统中,不同程序对目录缓存的需求不同。部分程序,对目录容量不敏感,这类程序对数据访问呈数据流式(Stream),局部性很差,但是数据集很大。部分程序,对目录容量敏感,分配更多的目录缓存可以取得相应的性能提升。为了最大化系统性能,本发明基于爬山法动态调整每个并行单元占用的目录缓存容量,需找最优解。图5所示为本发明较佳实施例的爬山法的流程图。如图5所示,首先,为每个并行单元分配固定容量的目录缓存块(如步骤S1);然后,如步骤S2,增加分配给并行单元的目录缓存容量,统计性能监控寄存器(PMC)的执行状态,具体而言,抽样并行单元的L1-cache-miss、L2-cache-miss等PMC寄存器统计程序的执行状态;接着,判断并行单元的性能是否提升(如步骤S3),若并行单元有性能提升,则返回步骤S2,即进一步增加为其分配的目录缓存容量,若没有性能提升,则当前为并行单元分配的目录缓存容量即为最优解(如步骤S4)。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
Claims (5)
1.一种多核处理器系统的目录缓存管理方法,其特征在于,包括以下步骤:
利用内存地址的缓存块索引位对目录缓存进行划分;
于系统物理内存分配时,通过为不同并行单元的数据分配不同的缓存块索引位,控制所述并行单元所占用的目录缓存容量;
还包括以下步骤:利用爬山法动态调整不同并行单元的数据所占用的目录缓存容量,寻找最优解,包括:
S1:为每个并行单元分配容量有限的目录缓存块;
S2:增加分配给所述并行单元的目录缓存块容量,统计性能监控寄存器PMC的执行状态;
S3:判断所述并行单元的性能是否获得提升,若所述并行单元可以获得性能提升,则返回S2,若所述并行单元的性能不再提升,则当前为所述并行单元分配的目录缓存容量即为最优解。
2.如权利要求1所述的多核处理器系统的目录缓存管理方法,其特征在于,所述利用内存地址的缓存块索引位对目录缓存进行划分的过程包括:在目录缓存中,将内存地址分成Tag-Index-Offset三段,其中,Tag是内存地址的标签,用来决定所述内存地址是否在目录缓存中命中,Index是一组缓存块的索引位,Offset是缓存块的偏移。
3.如权利要求2所述的多核处理器系统的目录缓存管理方法,其特征在于,于系统物理内存分配时,通过为不同并行单元的数据分配不同的缓存块索引位,控制所述并行单元所占用的目录缓存容量的过程包括:在物理内存中,内存地址分成PageNumber-PageOffset两段,其中PageNumber是物理页号,PageOffset是页内偏移,所述缓存块的索引位与所述物理页号有重合部分,通过对物理页号的管理控制数据在目录缓存中的位置,其中,所述缓存块的索引位与所述物理页号重合部分定义为页着色位。
4.如权利要求3所述的多核处理器系统的目录缓存管理方法,其特征在于:同一并行单元的数据分配在页着色位相同的物理内存页中。
5.如权利要求1、3、4任一所述的多核处理器系统的目录缓存管理方法,其特征在于:所述并行单元为不同进程或同一进程中的不同线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410645205.5A CN104331377B (zh) | 2014-11-12 | 2014-11-12 | 一种多核处理器系统的目录缓存管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410645205.5A CN104331377B (zh) | 2014-11-12 | 2014-11-12 | 一种多核处理器系统的目录缓存管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104331377A CN104331377A (zh) | 2015-02-04 |
CN104331377B true CN104331377B (zh) | 2018-06-26 |
Family
ID=52406109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410645205.5A Active CN104331377B (zh) | 2014-11-12 | 2014-11-12 | 一种多核处理器系统的目录缓存管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104331377B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11782848B2 (en) | 2017-12-15 | 2023-10-10 | Advanced Micro Devices, Inc. | Home agent based cache transfer acceleration scheme |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701246B (zh) * | 2023-05-23 | 2024-05-07 | 合芯科技有限公司 | 一种提升缓存带宽的方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008146237A (ja) * | 2006-12-07 | 2008-06-26 | Toshiba Microelectronics Corp | キャッシュスヌープ制御装置およびキャッシュスヌープ処理方法 |
CN101464900A (zh) * | 2009-01-15 | 2009-06-24 | 上海交通大学 | Ntfs文件系统下轻量级文件隐藏方法 |
TW201015334A (en) * | 2008-07-22 | 2010-04-16 | Ibm | Enhanced coherency tracking with implementation of region victim hash for region coherence arrays |
US8019920B2 (en) * | 2008-10-01 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Method to improve operating performance of a computing device |
CN103076992A (zh) * | 2012-12-27 | 2013-05-01 | 杭州华为数字技术有限公司 | 一种内存数据缓冲方法及装置 |
CN103108047A (zh) * | 2013-02-06 | 2013-05-15 | 浪潮电子信息产业股份有限公司 | 一种对象存储系统元数据缓存的优化方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766419B1 (en) * | 2000-03-31 | 2004-07-20 | Intel Corporation | Optimization of cache evictions through software hints |
JP4848771B2 (ja) * | 2006-01-04 | 2011-12-28 | 株式会社日立製作所 | キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム |
CN101315602B (zh) * | 2008-05-09 | 2011-01-26 | 浙江大学 | 硬件化的进程内存管理核的方法 |
US20100217937A1 (en) * | 2009-02-20 | 2010-08-26 | Arm Limited | Data processing apparatus and method |
US8255629B2 (en) * | 2009-06-22 | 2012-08-28 | Arm Limited | Method and apparatus with data storage protocols for maintaining consistencies in parallel translation lookaside buffers |
US20120117335A1 (en) * | 2010-11-10 | 2012-05-10 | Advanced Micro Devices, Inc. | Load ordering queue |
US8812786B2 (en) * | 2011-10-18 | 2014-08-19 | Advanced Micro Devices, Inc. | Dual-granularity state tracking for directory-based cache coherence |
CN102663115B (zh) * | 2012-04-16 | 2015-01-14 | 中国人民大学 | 基于页面染色技术的内存数据库访问优化方法 |
-
2014
- 2014-11-12 CN CN201410645205.5A patent/CN104331377B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008146237A (ja) * | 2006-12-07 | 2008-06-26 | Toshiba Microelectronics Corp | キャッシュスヌープ制御装置およびキャッシュスヌープ処理方法 |
TW201015334A (en) * | 2008-07-22 | 2010-04-16 | Ibm | Enhanced coherency tracking with implementation of region victim hash for region coherence arrays |
US8019920B2 (en) * | 2008-10-01 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Method to improve operating performance of a computing device |
CN101464900A (zh) * | 2009-01-15 | 2009-06-24 | 上海交通大学 | Ntfs文件系统下轻量级文件隐藏方法 |
CN103076992A (zh) * | 2012-12-27 | 2013-05-01 | 杭州华为数字技术有限公司 | 一种内存数据缓冲方法及装置 |
CN103108047A (zh) * | 2013-02-06 | 2013-05-15 | 浪潮电子信息产业股份有限公司 | 一种对象存储系统元数据缓存的优化方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11782848B2 (en) | 2017-12-15 | 2023-10-10 | Advanced Micro Devices, Inc. | Home agent based cache transfer acceleration scheme |
Also Published As
Publication number | Publication date |
---|---|
CN104331377A (zh) | 2015-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jevdjic et al. | Unison cache: A scalable and effective die-stacked DRAM cache | |
CN107077453B (zh) | 用于使用集群缓存进行数据库查询的并行优化的系统和方法 | |
CN107193960B (zh) | 一种分布式爬虫系统及周期性增量抓取方法 | |
CN104508639B (zh) | 使用一致性域表的一致性管理 | |
US8812786B2 (en) | Dual-granularity state tracking for directory-based cache coherence | |
US20120072656A1 (en) | Multi-tier caching | |
US9734059B2 (en) | Methods and apparatus for data cache way prediction based on classification as stack data | |
CN103530387A (zh) | 一种hdfs针对小文件的改进方法 | |
CN102486753B (zh) | 构建及允许访问高速缓存的方法、设备及存储系统 | |
US20190042470A1 (en) | Method of dirty cache line eviction | |
CN106294205A (zh) | 缓存数据处理方法及装置 | |
CN104951462A (zh) | 用于管理数据库的方法和系统 | |
CN113934651A (zh) | 自适应地址跟踪 | |
US20160170896A1 (en) | N-ary tree for mapping a virtual memory space | |
CN104331377B (zh) | 一种多核处理器系统的目录缓存管理方法 | |
US10901639B2 (en) | Memory allocation in multi-core processors | |
Patrou et al. | DISTIL: A distributed in-memory data processing system for location-based services | |
Schuchhardt et al. | The impact of dynamic directories on multicore interconnects | |
Guz et al. | Utilizing shared data in chip multiprocessors with the Nahalal architecture | |
Liu et al. | FLAP: Flash-aware prefetching for improving SSD-based disk cache | |
Zhang et al. | Redis++: A high performance in-memory database based on segmented memory management and two-level hash index | |
Han et al. | A survey on cache coherence for tiled many-core processor | |
Jin et al. | Optimizing B+-tree for hybrid memory with in-node hotspot cache and eADR awareness | |
US11934307B2 (en) | Apparatus and method for providing coherence data for use when implementing a cache coherency protocol | |
Das et al. | A framework for block placement, migration, and fast searching in tiled-DNUCA architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |