一种基于数据对象感知的内存库划分方法和装置制造方法及图纸

技术编号:15690698 阅读:45 留言:0更新日期:2017-06-24 03:18
本发明专利技术公开了一种基于数据对象感知的内存库划分方法和装置,所述方法包括:根据数据对象的规模标识待分析的数据对象;根据获取的子数据流,从待分析的数据对象中标识被并行访问的数据对象,并结合性能监视单元PMU分析被并行访问的数据对象的访存冲突开销,确定冲突源,并量化冲突源对性能的负面影响;根据伪缺页异常的分析,获取在多个时间片段内密集访问主存的数据对象组合,通过操作系统调整已经标识出的被并行访问的数据对象在主存中的分布。本发明专利技术利用缺页异常在真实机器上评估应用在各执行阶段的访存行为并指导内存分配,能够准确地获取访存踪迹,可以获得更高的真实性和精确性。

Method and device for dividing memory base based on data object perception

The invention discloses a data object perception memory partition based method and device, the method comprises the following steps: according to the data object data object to be analyzed according to the scale identification; data acquisition flow of data objects from the data object to be analyzed is identified in the parallel access, and combined with the analysis of the performance monitoring unit PMU the data objects are parallel access memory overhead to determine the source of conflict, conflict, and the negative effect of quantization on the performance of the source of conflict; according to the analysis of pseudo page fault exception, acquiring dense access memory in multiple time segment data on like combination, distribution is parallel access data objects through operating system adjustments have been identified the in memory. The invention utilizes the page fault exception to evaluate the access behavior of the application in the execution phase of the real machine, and guides the memory allocation, and can accurately obtain the traces of the visit, so as to obtain higher authenticity and accuracy.

【技术实现步骤摘要】
一种基于数据对象感知的内存库划分方法和装置
本专利技术涉及一种内存库划分技术,尤其涉及一种基于数据对象感知的内存库划分方法和装置。
技术介绍
在对存储性能进行分析评测时,往往需要获取数据流或指令流。然而,用来获取的数据流或指令流的传统工具或模拟器存在多种问题。首先,模拟器不能提供真实的运行环境,因此无法严格保证数据的真实性和精确性,特别是时间的准确性无法严格保证。其次,传统工具可能需要对应用或硬件进行修改,才能获取所需的数据流或指令流,而这种方法在很多种情况下是不适用的。主存由多个内存库(bank)组成,例如主流的单条DDR2/3内存条会包含8或16个bank。bank数量会随主存的容量同步增长。每个bank是一个二位矩阵,包含多个行,每个行又划分为多列。在bank内部又包含一个独立的行缓存结构,用于保存最近一次被访问的整行数据。采用上述结构的主存能同时利用并行性和局部性来提高访存性能。访存并行性是指主存能够利用多bank结构同时响应多个访存请求,而多个访存请求重叠执行,能够隐藏部分访存延迟。访存局部性是指处理器能直接从行缓冲器(rowbuffer)读取之前被缓存的数据,避免额外的预充电、行选以及列选等操作。一旦多个访存请求同时访问相同的bank,产生的访存冲突会导致两方面的负面影响。首先,bank冲突会使并行的访存请求串行执行,使访存延迟成倍增长。其次,行缓存冲突使得原本空间局部性较强的数据回写阵列,而频繁的换行操作会进一步增加访存的延迟,使处理器的访存性能恶化。单芯片多处理器(Chipmultiprocessors,CMP,也指多核心)通过复用传统的单核处理器设计,利用并行的方式进一步推进计算机系统的性能提升。但是,一旦CMP发起的并行访存操作争抢共享bank资源,会导致访存冲突并降低访存性能。相关研究工作在进程间对bank进行划分,缓解线程级并行(ThreadLevelParallelism,TLP)导致的访存冲突。但该类方法忽视了指令级并行(InstructionLevelParallelism,ILP)引入的访存冲突。当单个进程中共享bank资源的数据对象被同时访问时,仍然会产生访存冲突。除处理器外,计算机系统中还存在多种访存设备(例如:显卡,磁盘和网卡等)。虽然这些设备的访存行为不仅存在巨大的差异,但访存设备之间都会共享主存。因此,这更需要通过操作系统来灵活调整数据布局,在达到性能优化的同时,兼顾通用性、灵活性和准确性。
技术实现思路
本专利技术涉及计算机系统的内存管理技术,特别是涉及在不修改硬件和应用的前提下,利用缺页异常在真实机器上准确地获取访存踪迹的方法,评估应用在各执行阶段的访存行为,并指导内存分配。本专利技术所要解决的技术问题是克服目前在进程间对bank进行划分缓解线程级并行访存冲突时所忽视的指令级并行所引入的访存冲突的不足。为了解决上述技术问题,本专利技术提供了一种基于数据对象感知的内存库划分方法,包括:根据数据对象的规模标识待分析的数据对象;根据获取的子数据流,从待分析的数据对象中标识被并行访问的数据对象,并结合性能监视单元PMU分析被并行访问的数据对象的访存冲突开销,确定冲突源,并量化冲突源对性能的负面影响;根据伪缺页异常的分析,获取在多个时间片段内密集访问主存的数据对象组合,通过操作系统调整已经标识出的被并行访问的数据对象在主存中的分布。优选地,获取子数据流包括:利用伪缺页异常机制捕获所述子数据流。优选地,利用伪缺页异常机制捕获所述子数据流之后还包括:利用伪缺页异常机制分析所述子数据流。优选地,利用伪缺页异常机制捕获所述子数据流,包括以下至少之一:进程创建阶段,通过未分配物理内存获得所述子数据流;通过数据对象内存初始化分配获得所述子数据流;设置伪缺页状态,通过标记待分析的数据对象获得所述子数据流;通过触发伪缺页异常获得所述子数据流;通过无异常数据访问获得所述子数据流。优选地,利用伪缺页异常机制分析所述子数据流包括:收集伪缺缺页异常产生的异常地址;结合PMU分析当前代码片段所访问的数据对象对性能的负面影响采用瞬时的主存访问频度和/或次数和/或时间跨度判断访存的性能。优选地,所述数据对象包括静态数据对象或动态数据对象;通过读取编译器生成的符号表来获取所述静态数据对象的规模,通过捕获操作系统的动态内存分配操作来获取所述动态数据对象的规模。优选地,标识待分析的数据对象,包括:保存所述待分析的数据对象的起始地址和结束地址。为了解决上述技术问题,本专利技术还提供了一种基于数据对象感知的内存库划分装置,包括:标识模块,设置为根据数据对象的规模标识待分析的数据对象;数据流模块,设置为根据获取的子数据流,从待分析的数据对象中标识被并行访问的数据对象,并结合PMU分析被并行访问的数据对象的访存冲突开销,确定冲突源,并量化冲突源对性能的负面影响;划分模块,设置为根据伪缺页异常的分析,获取在多个时间片段内密集访问主存的数据对象组合,通过操作系统调整已经标识出的被并行访问的数据对象在主存中的分布。优选地,所述数据流模块还设置为利用伪缺页异常机制捕获所述子数据流。优选地,所述数据流模块还设置为利用伪缺页异常机制分析所述子数据流。优选地,所述数据流模块利用伪缺页异常机制捕获所述子数据流,包括以下至少之一:进程创建阶段,通过未分配物理内存获得所述子数据流;通过数据对象内存初始化分配获得所述子数据流;设置伪缺页状态,通过标记待分析的数据对象获得所述子数据流;通过触发伪缺页异常获得所述子数据流;通过无异常数据访问获得所述子数据流。优选地,所述数据流模块利用伪缺页异常机制分析所述子数据流包括:收集伪缺缺页异常产生的异常地址;结合PMU分析当前代码片段所访问的数据对象对性能的负面影响采用瞬时的主存访问频度和/或次数和/或时间跨度判断访存的性能。优选地,所述标识模块通过读取编译器生成的符号表来获取所述静态数据对象的规模,通过捕获操作系统的动态内存分配操作来获取所述动态数据对象的规模。与现有技术相比,本申请的实施例不修改硬件和应用,利用缺页异常在真实机器上评估应用在各执行阶段的访存行为并指导内存分配,能够准确地获取访存踪迹,可以获得更高的真实性和精确性。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本专利技术的技术方案,并不构成对本专利技术技术方案的限制。图1是本专利技术实施例的基于数据对象感知的bank划分方法的流程图;图2是本专利技术实施例的基于数据对象感知的bank划分装置的结构示意图;图3是本专利技术实施例使用伪缺页异常获取子数据流,并标识被并行访问数据对象的方法的示意图;图4是本专利技术实施例的基于数据对象感知的bank划分装置实例的结构示意图。具体实施方式以下将结合附图及实施例来详细说明本专利技术的实施方式,借此对本专利技术如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征在不相冲突前提下的相互结合,均在本专利技术的保护范围之内。另外,在附本文档来自技高网
...
一种基于数据对象感知的内存库划分方法和装置

【技术保护点】
一种基于数据对象感知的内存库划分方法,其特征在于,包括:根据数据对象的规模标识待分析的数据对象;根据获取的子数据流,从待分析的数据对象中标识被并行访问的数据对象,并结合性能监视单元PMU分析被并行访问的数据对象的访存冲突开销,确定冲突源,并量化冲突源对性能的负面影响;根据伪缺页异常的分析,获取在多个时间片段内密集访问主存的数据对象组合,通过操作系统调整已经标识出的被并行访问的数据对象在主存中的分布。

【技术特征摘要】
1.一种基于数据对象感知的内存库划分方法,其特征在于,包括:根据数据对象的规模标识待分析的数据对象;根据获取的子数据流,从待分析的数据对象中标识被并行访问的数据对象,并结合性能监视单元PMU分析被并行访问的数据对象的访存冲突开销,确定冲突源,并量化冲突源对性能的负面影响;根据伪缺页异常的分析,获取在多个时间片段内密集访问主存的数据对象组合,通过操作系统调整已经标识出的被并行访问的数据对象在主存中的分布。2.根据权利要求1所述的方法,其特征在于,获取子数据流包括:利用伪缺页异常机制捕获所述子数据流。3.根据权利要求2所述的方法,其特征在于,利用伪缺页异常机制捕获所述子数据流之后还包括:利用伪缺页异常机制分析所述子数据流。4.根据权利要求2所述的方法,其特征在于,利用伪缺页异常机制捕获所述子数据流,包括以下至少之一:进程创建阶段,通过未分配物理内存获得所述子数据流;通过数据对象内存初始化分配获得所述子数据流;设置伪缺页状态,通过标记待分析的数据对象获得所述子数据流;通过触发伪缺页异常获得所述子数据流;通过无异常数据访问获得所述子数据流。5.根据权利要求3所述的方法,其特征在于,利用伪缺页异常机制分析所述子数据流包括:收集伪缺缺页异常产生的异常地址;结合PMU分析当前代码片段所访问的数据对象对性能的负面影响采用瞬时的主存访问频度和/或次数和/或时间跨度判断访存的性能。6.根据权利要求1所述的方法,其特征在于:所述数据对象包括静态数据对象或动态数据对象;通过读取编译器生成的符号表来获取所述静态数据对象的规模,通过捕获操作系统的动态内存分配操作来获取所述动态数据对象的规模。7.根据权利要求1所述的方法,其特征在于:标识待分析的数据对象,包括:...

【专利技术属性】
技术研发人员:程旭钟祺王晶管雪涛刘国莅
申请(专利权)人:北京北大众志微系统科技有限责任公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1