《一种多核处理器系统的目录缓存管理方法.pdf》由会员分享,可在线阅读,更多相关《一种多核处理器系统的目录缓存管理方法.pdf(8页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104331377 A (43)申请公布日 2015.02.04 CN 104331377 A (21)申请号 201410645205.5 (22)申请日 2014.11.12 G06F 12/08(2006.01) (71)申请人 浪潮 (北京) 电子信息产业有限公司 地址 100085 北京市海淀区上地信息路 2 号 2-1 号 C 栋 1 层 (72)发明人 唐士斌 陈继承 王洪伟 倪璠 (74)专利代理机构 北京安信方达知识产权代理 有限公司 11262 代理人 王丹 李丹 (54) 发明名称 一种多核处理器系统的目录缓存管理方法 (57) 摘要 本发明公开。
2、了一种多核处理器系统的目录缓 存管理方法, 包括以下步骤 : 利用内存地址的缓 存块索引位对目录缓存进行划分 ; 于系统物理内 存分配时, 通过为不同并行单元的数据分配不同 的缓存块索引位, 控制所述并行单元所占用的目 录缓存容量。本发明公开的多核处理器系统的目 录缓存管理方法, 能够解决由于目录缓存的容量 有限, 不同并行单元的数据在目录缓存中的冲突 造成系统性能降低的问题。 (51)Int.Cl. 权利要求书 1 页 说明书 3 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书3页 附图3页 (10)申请公布号 CN 104331377 。
3、A CN 104331377 A 1/1 页 2 1. 一种多核处理器系统的目录缓存管理方法, 其特征在于, 包括以下步骤 : 利用内存地址的缓存块索引位对目录缓存进行划分 ; 于系统物理内存分配时, 通过为不同并行单元的数据分配不同的缓存块索引位, 控制 所述并行单元所占用的目录缓存容量。 2. 如权利要求 1 所述的多核处理器系统的目录缓存管理方法, 其特征在于, 所述利用 内存地址的缓存块索引位对目录缓存进行划分的过程包括 : 在目录缓存中, 将内存地址分 成 Tag-Index-Offset 三段, 其中, Tag 是内存地址的标签, 用来决定所述内存地址是否在目 录缓存中命中, In。
4、dex 是一组缓存块的索引位, Offset 是缓存块的偏移。 3. 如权利要求 2 所述的多核处理器系统的目录缓存管理方法, 其特征在于, 于系统物 理内存分配时, 通过为不同并行单元的数据分配不同的缓存块索引位, 控制所述并行单元 所占用的目录缓存容量的过程包括 : 在物理内存中, 内存地址分成PageNumber-PageOffset 两段, 其中 PageNumber 是物理页号, PageOffset 是页内偏移, 所述缓存块的索引位与所述 物理页号有重合部分, 通过对物理页号的管理控制数据在目录缓存中的位置, 其中, 所述缓 存块的索引位与所述物理页号重合部分定义为页着色位。 4.。
5、 如权利要求 3 所述的多核处理器系统的目录缓存管理方法, 其特征在于 : 同一并行 单元的数据分配在页着色位相同的物理内存页中。 5. 如权利要求 1 所述的多核处理器系统的目录缓存管理方法, 其特征在于, 还包括以 下步骤 : 利用爬山法动态调整不同并行单元的数据所占用的目录缓存容量, 寻找最优解。 6. 如权利要求 5 所述的多核处理器系统的目录缓存管理方法, 其特征在于, 所述利用 爬山法动态调整不同并行单元的数据所占用的目录缓存容量, 寻找最优解的过程包括 : S1 : 为每个并行单元分配容量有限的目录缓存块 ; S2 : 增加分配给所述并行单元的目录缓存块容量, 统计性能监控寄存器。
6、 (PMC) 的执行 状态 ; S3 : 判断所述并行单元的性能是否获得提升, 若所述并行单元可以获得性能提升, 则返 回 S2, 若所述并行单元的性能不再提升, 则当前为所述并行单元分配的目录缓存容量即为 最优解。 7.如权利要求1、 3、 4、 5或6所述的多核处理器系统的目录缓存管理方法, 其特征在于 : 所述并行单元为不同进程或同一进程中的不同线程。 权 利 要 求 书 CN 104331377 A 2 1/3 页 3 一种多核处理器系统的目录缓存管理方法 技术领域 0001 本发明涉及多核处理器系统, 尤其涉及一种多核处理器系统的目录缓存管理方 法。 背景技术 0002 随着半导体工。
7、艺技术的进步, 片上晶体管的数目依旧符合摩尔定律, 每 36 个月翻 一番。然而受限于处理器散热与封装技术的限制, 商业串行处理器已经遇到了进一步提升 性能的瓶颈。为了获得更好的性能面积比与性能功耗比, 依靠挖掘线程级并行的片上多处 理器与多核处理器成为目前的主流的架构。 0003 其中, 私有缓存是提升多核处理器性能的重要组件, 维护私有缓存数据的一致性 是多核处理器设计中的重点与难点。 基于侦听的协议与基于目录的协议是目前最常用的两 种缓存一致性协议。 基于侦听的协议, 设计简单, 通过广播的方式通知所有的私有数据备份 来维护数据一致性, 但是广播的网络开销巨大, 使其不具备可扩展性。基于。
8、目录的协议, 通 过集中式的目录记录所有的内存块在私有缓存中的备份情况, 避免了广播的开销, 更适合 大规模的并行系统。 0004 在基于目录的缓存一致性协议中, 为了维护私有数据的一致性, 处理器每次内存 访问都首先要访问目录, 因此其访问延迟对多核处理器的性能极为重要。为了降低访问延 迟, 研究人员采用了片上目录缓存来维护一致性。 与目录记录整个内存的备份情况不同, 片 上目录缓存仅记录处理器内部私有缓存中的数据备份情况, 片上目录缓存的容量对执行负 载程序的性能极为关键。 0005 图 1 所示多核处理器系统的结构示意图。图 2 所示为图 1 所示处理器一次访存 流程图。如图 1 所示,。
9、 多核处理器例如由四个 Tile 组成, 每个 Tile 包括一个处理器核、 一 个 L1Cache 与一个 L2Cache, 每个 Tile 通过内部网络共享 L3Cache。目录缓存 (Directory Cache) 与 L3Cache 同层用来维护该处理器内部的一致性。处理器通过外部网络与内存 (DDR) 以及其他处理器相连。如图 2 所示, 处理器核执行访存指令, 经过流水线通过访存 部件发到 L1Cache, 如果 L1Cache 命中则返回数据, 如果 L1Cache 缺失则将数据请求发往 L2Cache。请求在 L2Cache 查找, 如果 L2Cache 命中则返回数据, 如。
10、果 L2Cache 缺失则发往 目录缓存。在目录缓存中查找, 如果命中则根据缓存一致性协议维护私有缓存的数据一致 性, 如果缺失, 则在目录缓存中寻找一个空闲位置, 如果没有空闲位置, 则执行替换, 执行替 换过程中需要使无效私有缓存中的数据备份。最后, 从 L3Cache 或者 DDR 中获取数据并返 回。 0006 由于片上目录缓存的容量问题是随着处理器内部的核数快速增长而出现的, 目前 相关研究尚处于起步阶段, 主要的研究工作集中在降低目录缓存的面积、 避免组内冲突、 避 免私有数据的使无效消息等。 然而, 针对目录缓存的数据隔离与容量控制的研究工作, 目前 仍是空白。 说 明 书 CN。
11、 104331377 A 3 2/3 页 4 发明内容 0007 本发明提供一种多核处理器系统的目录缓存管理方法, 用来解决由于目录缓存的 容量有限, 不同并行单元的数据在目录缓存中的冲突造成系统性能降低的问题。 0008 为了解决上述技术问题, 本发明提供一种多核处理器系统的目录缓存管理方法, 包括以下步骤 : 利用内存地址的缓存块索引位对目录缓存进行划分 ; 于系统物理内存分配 时, 通过为不同并行单元的数据分配不同的缓存块索引位, 控制所述并行单元所占用的目 录缓存容量。 0009 进一步地, 所述利用内存地址的缓存块索引位对目录缓存进行划分的过程包括 : 在目录缓存中, 将内存地址分成。
12、 Tag-Index-Offset 三段, 其中, Tag 是内存地址的标签, 用 来决定所述内存地址是否在目录缓存中命中, Index 是一组缓存块的索引位, Offset 是缓 存块的偏移。 0010 进一步地, 于系统物理内存分配时, 通过为不同并行单元的数据分配不同的缓存 块索引位, 控制所述并行单元所占用的目录缓存容量的过程包括 : 在物理内存中, 内存地址 分成PageNumber-PageOffset两段, 其中PageNumber是物理页号, PageOffset是页内偏移, 所述缓存块的索引位与所述物理页号有重合部分, 通过对物理页号的管理控制数据在目录 缓存中的位置, 其中。
13、, 所述缓存块的索引位与所述物理页号重合部分定义为页着色位。 0011 进一步地, 同一并行单元的数据分配在页着色位相同的物理内存页中。 0012 进一步地, 本发明提供的多核处理器系统的目录缓存管理方法, 还包括以下步骤 : 利用爬山法动态调整不同并行单元的数据所占用的目录缓存容量, 寻找最优解。 0013 进一步地, 所述利用爬山法动态调整不同并行单元的数据所占用的目录缓存容 量, 寻找最优解的过程包括 : S1 : 为每个并行单元分配容量有限的目录缓存块 ; S2 : 增加分 配给所述并行单元的目录缓存块容量, 统计性能监控寄存器 (PMC) 的执行状态 ; S3 : 判断所 述并行单元。
14、的性能是否获得提升, 若所述并行单元可以获得性能提升, 则返回 S2, 若所述并 行单元的性能不再提升, 则当前为所述并行单元分配的目录缓存容量即为最优解。 0014 进一步地, 所述并行单元为不同进程或同一进程中的不同线程。 0015 本发明提供的多核处理器系统的目录缓存管理方法, 通过页着色的方法, 在片上 目录缓存中隔离不同并行单元的数据, 并基于爬山法调整并行单元占用目录缓存的容量, 获取系统的最大性能。 附图说明 0016 图 1 所示为多核处理器系统的结构示意图 ; 0017 图 2 所示为图 1 所示处理器一次访存流程图 ; 0018 图 3 所示为本发明较佳实施例提供的目录缓存。
15、的索引方式示意图 ; 0019 图 4 所示为本发明较佳实施例提供的物理页号划分目录缓存示意图 ; 0020 图 5 所示为本发明较佳实施例提供的爬山法的流程图。 具体实施方式 0021 下面结合附图及实施例对本发明作进一步详细说明。 0022 图 3 所示为目录缓存的索引方式, 图 3 所示的是一个四路组相联的目录缓存。在 说 明 书 CN 104331377 A 4 3/3 页 5 访问目录缓存的过程中, 访存地址被划分成了三段 Tag-Index-Offset。其中, Tag 是地址的 标签, 用来决定地址是否在目录缓存中命中 ; Index 是一组缓存块的索引位, 用来索引每一 路 (。
16、Way) 中的某个缓存块, 对于 1MB 容量的四路组相联结构, Index 需要 12Bits ; Offset 是 缓存块的块内偏移, 由缓存块的大小决定, 对于 64 字节的缓存块, Offset 是 6Bits。 0023 图 4 所示为根据物理页号划分目录缓存的示意图。如图 4 所示, 上半部分展示了 内存管理算法对内存地址的组织, 内存的物理地址被分成了物理页号 (PageNumber) 与页 内偏移 (PageOffset) 两段。其中, 物理页号用来索引物理页。下半部分给出了目录缓存对 内存地址的组织, 内存的物理地址被分成了三段标签 (Tag)、 块索引 (Index) 以及。
17、块内偏移 (Offset), 其中块索引用来查找缓存块。 在一个1MB容量的四路组相联目录缓存中(块长度 为 64 字节 ), 物理页号与块索引有 6Bits 的数据位重叠, 在此, 定义为页着色位。在操作系 统的物理内存分配当中, 可以将同一个并行单元的数据分配在页着色位相同的物理内存当 中。 如此, 该并行单元的数据在目录缓存中会占用固定的几组缓存块, 通过对物理页号的管 理, 可以控制数据在目录缓存中的位置, 从而实现不同并行单元之间的目录缓存数据隔离。 0024 在实际的执行系统中, 不同程序对目录缓存的需求不同。 部分程序, 对目录容量不 敏感, 这类程序对数据访问呈数据流式(Str。
18、eam), 局部性很差, 但是数据集很大。 部分程序, 对目录容量敏感, 分配更多的目录缓存可以取得相应的性能提升。 为了最大化系统性能, 本 发明基于爬山法动态调整每个并行单元占用的目录缓存容量, 需找最优解。图 5 所示为本 发明较佳实施例的爬山法的流程图。如图 5 所示, 首先, 为每个并行单元分配固定容量的目 录缓存块 ( 如步骤 S1) ; 然后, 如步骤 S2, 增加分配给并行单元的目录缓存容量, 统计性能 监控寄存器 (PMC) 的执行状态, 具体而言, 抽样并行单元的 L1-cache-miss、 L2-cache-miss 等 PMC 寄存器统计程序的执行状态 ; 接着, 判。
19、断并行单元的性能是否提升 ( 如步骤 S3), 若 并行单元有性能提升, 则返回步骤 S2, 即进一步增加为其分配的目录缓存容量, 若没有性能 提升, 则当前为并行单元分配的目录缓存容量即为最优解 ( 如步骤 S4)。 0025 以上显示和描述了本发明的基本原理和主要特征和本发明的优点。 本发明不受上 述实施例的限制, 上述实施例和说明书中描述的只是说明本发明的原理, 在不脱离本发明 精神和范围的前提下, 本发明还会有各种变化和改进, 这些变化和改进都落入要求保护的 本发明范围内。 说 明 书 CN 104331377 A 5 1/3 页 6 图 1 图 2 说 明 书 附 图 CN 104331377 A 6 2/3 页 7 图 3 图 4 说 明 书 附 图 CN 104331377 A 7 3/3 页 8 图 5 说 明 书 附 图 CN 104331377 A 8 。