System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 异构内存情境下软硬件协同设计的内存优化方法及系统技术方案_技高网
当前位置: 首页 > 专利查询>北京大学专利>正文

异构内存情境下软硬件协同设计的内存优化方法及系统技术方案

技术编号:40963712 阅读:10 留言:0更新日期:2024-04-18 20:43
本发明专利技术公布了一种异构内存情境下软硬件协同设计的内存优化方法及系统,在硬件设备端的内存控制器中集成内存访问分析单元;在操作系统端即软件端实现内存分层守护进程;内存分层守护进程利用内存访问分析单元提供的信息,将内存中的热页面迁移到速度快的CPU本地内存中,从而实现内存优化。本发明专利技术基于高速计算互联协议CXL原生的内存分层,采用硬件与操作系统的协同设计,能够大大提升系统计算性能。

【技术实现步骤摘要】

本专利技术涉及计算系统的异构内存优化技术,具体涉及一种异构内存情境下软硬件协同设计的内存优化方法及系统


技术介绍

1、随着数据中心和高性能计算的快速发展,对于更高效、更灵活的内存管理方案的需求日益增加。在众多解决方案中,高速计算互联协议(cxl)技术因其在处理器(cpu)与外部设备之间提供一种一致性、字节可寻址的互连方式而脱颖而出。特别地,利用cxl技术进行的内存扩展(简称cxl内存)在近年来逐渐成为焦点,它允许服务器轻松集成多种内存设备,以扩展内存容量和带宽,而无需对cpu端进行硬件修改。

2、cxl内存在扩展服务器内存容量和带宽方面具有显著优势,但也面临着访问延迟较高的问题。特别是当将较慢的内存媒体如pcm和reram通过cxl与cpu集成时,这一问题更为突出。因此,产生了基于cxl的分层内存系统,旨在通过将频繁访问的“热”页面放置在快速numa节点中,而将“冷”页面放置在慢速节点中,以优化系统性能。这种技术被称为内存分层技术。

3、然而,现有的内存分层技术在应用于基于cxl的分层内存系统时遇到了显著的挑战。这些挑战主要源于缺乏一种有效、低开销的内存访问分析方法。与基于rdma的内存分离技术不同,cxl内存允许cpu直接访问,而操作系统无法感知访问模式,因此需要特殊的分析方法来区分“热”页面和“冷”页面。

4、传统的内存访问分析方法包括软件方法和硬件方法,分别存在以下不足:

5、(1)纯软件方法包括基于页表标记的方法和基于缺页中断的方法。它们都需要定期地扫描内存地址空间,而这会造成较大的cpu计算开销,同时也会导致内存分析的及时性和精确性较低。

6、(2)传统的硬件方法是在cpu侧加入硬件计数器来对内存访问进行分析。但是这与cpu生产厂商定义的规范有关,难以做到跨平台支持。同时使用cpu侧的计数器也会对cpu造成较大的性能开销。而为了降低性能开销而减少采样频次又会降低内存分析的精确程度。

7、综上所述,传统的内存访问分析方法难以实时、精确地提供内存访问信息。


技术实现思路

1、为了克服上述现有技术的不足,本专利技术提出了一种异构内存情境下软硬件协同设计的内存优化方法及系统,是一种基于高速计算互联协议(cxl)原生的内存分层解决方案,采用硬件与操作系统的协同设计,基于高速计算互联协议cxl设计异构内存优化,即通过使用高速计算互联协议(cxl)来拓展内存,并使用操作系统与硬件协同设计的方法来优化内存管理。

2、本专利技术设计了内存访问分析单元(或称为专用硬件分析器)并在内存控制器(内存设备端)中集成了内存访问分析单元。该内存访问分析单元能够有效分析cxl内存(利用cxl技术进行的内存扩展)的最后一级缓存(llc)缺失,并向操作系统提供关键信息,如页面热度、内存带宽利用率、读/写比率及访问频率分布等。同时,在操作系统端,我们实现了一种先进的内存分层策略,利用内存访问分析单元的洞察进行有效的热页面提升,可将热页面迁移到更快速的本地内存,从而实现内存优化。

3、本专利技术的技术方案如下:

4、本专利技术提供了一种异构内存情境下软硬件协同设计的内存优化方法,通过在内存硬件(设备端)控制器中集成内存访问分析单元;在操作系统端实现内存分层守护进程(异构内存优化系统守护进程);内存分层守护进程利用内存访问分析单元提供的信息,将内存中的热页面迁移到速度较快的cpu本地内存中。

5、本专利技术的工作流程包括如下步骤:

6、1)在系统硬件(设备端)控制器中集成内存访问分析单元,用于支持高效的内存访问分析,包括:检测慢速内存中的热页面和监控运行时状态;

7、本专利技术采用基于cxl的内存分层技术,系统硬件支持任意数量的内存层级,包括快速内存层级和慢速内存层级;不同的内存层级通过linux操作系统的numa(non-uniformmemory access,非一致性内存访问)接口进行管理;

8、在cxl内存侧的内存访问分析单元截取cpu对cxl内存的内存访问地址;

9、内存访问分析单元记录内存访问地址,分析设备侧的状态,并将内存访问地址送入到异步的fifo中;

10、本专利技术可在现场可编程门阵列(fpga)或专用集成电路(asic)上实现。具体实施时,本专利技术在fpga上实现,使用异步的先进先出队列(fifo)来进行跨时钟域的处理;然后,异步的fifo将状态和页面地址送入到内存访问分析单元进行记录;内存访问分析单元负责和cpu进行交互,即主机向内存访问分析单元发送指令,内存访问分析单元向主机发送数据;具体是通过内存映射输入输出(mmio)来实现交互的;

11、通过在内存访问分析单元内使用概略算法控制器,大大缩减内存的地址空间代价;通过硬件实现概略算法控制器,将被访问次数大于某一个阈值的页面地址寻找出,经过去重后送至缓存中;cpu只需从缓存中读取信息即可获得cxl内存中被经常访问的页面;

12、设计用于分析概略统计数据结构误差的系统,该系统同样位于内存访问分析单元中,用于从概略算法控制器中读取出内存页面访问的频率分布;根据该分布可计算出概略算法控制器中的误差上界,从而为用户态程序提供关于硬件误差的相关信息。

13、2)设计并实现与内存访问分析单元交互的异构内存优化系统守护进程,用于收集运行时统计数据,可在用户态进行参数化的配置和管理热页面的提升,并遵循在用户空间指定的迁移策略;在分析热页面信息后,异构内存优化系统守护进程会将热页面从cxl内存提升至cpu本地内存中,即进行热页面的提升。热页面分析仅要求设备端修改,即与任何支持cxl的服务器平台兼容;

14、3)设计迁移策略,为守护进程提供内存分析和迁移的指导;迁移策略发生在用户空间,允许用户进行定制和调整;

15、通过调度算法,根据硬件提供的信息进行页面迁移策略,实现热页提升的动态调节;策略包括:

16、31)策略的主体由一个持续运行的循环体组成;循环体的启动与停止可以在操作系统的用户态进行控制;

17、32)在每次循环中,用户态策略程序首先从硬件提供的mmio接口中读取出cxl内存访问的相关信息,包括:cxl内存的页面访问频率分布f,cxl内存的带宽占用率b,热页提升准度x和概略误差e;

18、33)在每次循环中提升识别出的热页;热页的阈值采用cxl内存页面访问频率的百分位数p,即cxl内存页面访问频率前p分位的页面为应被提升的热页;

19、34)通过概略算法控制器计算当前误差,设置概略误差的阈值,判断当前误差大小是否大于概略误差的阈值e_max;概略误差的阈值e_max等于p分位的cxl内存页面的访问频率。

20、如果大于,则将百分位数p减小;否则根据cxl内存的带宽占用率b和热页提升准度x动态调节百分位数p的值。

21、通过不断动态调节,可显著地提升负载运行的性能;

22、35)通过内存映射本文档来自技高网...

【技术保护点】

1.一种异构内存情境下软硬件协同设计的内存优化方法,其特征是,在硬件设备端的内存控制器中集成内存访问分析单元;在操作系统端即软件端实现内存分层守护进程;内存分层守护进程利用内存访问分析单元提供的信息,将内存中的热页面迁移到速度快的CPU本地内存中,从而实现内存优化;包括如下步骤:

2.如权利要求1所述异构内存情境下软硬件协同设计的内存优化方法,其特征是,在现场可编程门阵列FPGA或专用集成电路ASIC上实现所述方法。

3.如权利要求2所述异构内存情境下软硬件协同设计的内存优化方法,其特征是,所述方法具体是使用异步的先进先出队列FIFO进行跨时钟域的处理;然后,异步的FIFO将状态和页面地址送入到内存访问分析单元进行记录;

4.如权利要求1所述异构内存情境下软硬件协同设计的内存优化方法,其特征是,具体是将直接连接CPU的DDR DRAM作为快速内存层级;将通过CXL连接的内存作为慢速内存层级。

5.如权利要求1所述异构内存情境下软硬件协同设计的内存优化方法,其特征是,具体是利用Linux内核中的LRU 2Q机制检测冷页面。

>6.如权利要求1所述异构内存情境下软硬件协同设计的内存优化方法,其特征是,在内存访问分析单元中通过硬件实现概略算法控制器,用于捕获CPU对CXL内存的访问,并经去重后送至缓存中。

7.如权利要求6所述异构内存情境下软硬件协同设计的内存优化方法,其特征是,通过概略算法控制器读取出内存页面访问的频率分布;根据该分布,进一步计算得到概略统计数据结构中的误差上界。

8.如权利要求1所述异构内存情境下软硬件协同设计的内存优化方法,其特征是,所述调度算法具体是在用户态实现热页提升的动态调节策略,用于为异构内存优化系统守护进程提供内存分析和迁移的指导。

9.一种采用权利要求1所述异构内存情境下软硬件协同设计的内存优化方法的异构内存优化系统,其特征是,包括内存设备中的内存访问分析单元以及Linux操作系统中的与内存访问分析单元交互的系统守护进程模块;其中:在内存硬件设备端控制器中集成内存访问分析单元;在操作系统端实现内存分层守护进程模块;

10.如权利要求9所述的异构内存优化系统,其特征是,系统支持任意数量的内存层级,其中,直接连接CPU的DDR DRAM为快速内存层级;通过CXL连接的内存为慢速内存层级。

...

【技术特征摘要】

1.一种异构内存情境下软硬件协同设计的内存优化方法,其特征是,在硬件设备端的内存控制器中集成内存访问分析单元;在操作系统端即软件端实现内存分层守护进程;内存分层守护进程利用内存访问分析单元提供的信息,将内存中的热页面迁移到速度快的cpu本地内存中,从而实现内存优化;包括如下步骤:

2.如权利要求1所述异构内存情境下软硬件协同设计的内存优化方法,其特征是,在现场可编程门阵列fpga或专用集成电路asic上实现所述方法。

3.如权利要求2所述异构内存情境下软硬件协同设计的内存优化方法,其特征是,所述方法具体是使用异步的先进先出队列fifo进行跨时钟域的处理;然后,异步的fifo将状态和页面地址送入到内存访问分析单元进行记录;

4.如权利要求1所述异构内存情境下软硬件协同设计的内存优化方法,其特征是,具体是将直接连接cpu的ddr dram作为快速内存层级;将通过cxl连接的内存作为慢速内存层级。

5.如权利要求1所述异构内存情境下软硬件协同设计的内存优化方法,其特征是,具体是利用linux内核中的lru 2q机制检测冷页面。

6.如权利要求1所述异构内存情...

【专利技术属性】
技术研发人员:孙广宇周哲陈奕奇
申请(专利权)人:北京大学
类型:发明
国别省市:

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

1