利用片上缓存记录访存地址序列的方法及数据处理装置制造方法及图纸

技术编号:38369286 阅读:14 留言:0更新日期:2023-08-05 17:34
本发明专利技术提出一种利用片上缓存记录访存地址序列的方法,包括:于内存控制器内设置第一缓冲区,并于最后一级缓存内设置第二缓冲区;当处理器核发出访存请求后,根据该访存请求生成访存记录,并将该访存记录暂存至该第一缓冲区;当该第一缓冲区内暂存的访存记录的数量达到暂存阈值时,将该第一缓冲区内的访存记录写入该第二缓冲区;运行于该处理器的程序通过直接读取该第二缓冲区以获取并处理该访存记录。本发明专利技术还提出一种数据处理装置,采用如前所述的利用片上缓存记录访存地址序列的方法进行程序运行,该数据处理装置包括:内存;内存控制器,包括访存记录与控制单元和第一缓冲区;处理器,其最后一级缓存中设置有第二缓冲区。其最后一级缓存中设置有第二缓冲区。其最后一级缓存中设置有第二缓冲区。

【技术实现步骤摘要】
利用片上缓存记录访存地址序列的方法及数据处理装置


[0001]本专利技术属于计算机硬件
,特别是涉及一种利用片上高速缓存记录访存地址序列的方法及系统。

技术介绍

[0002]近些年来,网络的速度与带宽不断接近内存,基于网络的远端内存系统的受到了广泛关注,而操作系统中的虚拟内存子系统在远端内存系统中扮演着重要角色。虚拟内存子系统主要负责关键通路上对慢速设备(如:网络远端的介质、磁盘(SSD、HDD))的读取、预取以及本地页面缓存的替换。这个过程涉及到多次访问内存和I/O操作。图1展示了一种典型的服务器结构图。其中最后一级缓存(LLC)、内存控制器与PCIe控制器通过片上总线相互连接。每当缓存缺失(LLCMISS)发生时,内存控制器会收到一个带有地址的数据请求包,然后内存控制器通过片外内存总线(如DDR4)向内存发起读/写请求。PCIe控制器收到处理器核通过片上总线上传来的IO请求后,会通过PCIe总线向IO设备发起读/写请求,并通过内存控制器向内存发起直接内存访问(DMA)请求。为了让处理器更快的访问到I/O数据,减少数据访问延迟,PCIe控制器在收到IO设备传回的数据后,也可直接利用片上总线协议,将数据直接写到缓存中(如:IntelDDIO技术,DatadirectI/OcharacterizationforfutureI/Osystemexploration(AlianM,YuanY,ZhangJ,etal.),Reexaminingdirectcacheaccesstooptimize I/Ointensiveapplicationsformulti

hundred

gigabitnetworks(FarshinA,Roozbeh A,MaguireJrGQ,etal.)),从而让处理器核可以直接从缓存中读取数据。
[0003]然而,现有的操作系统的虚存管理机制有很大的局限性,导致对内存页面的预取与替换不准确。这种局限性的根本原因是操作系统无法感知应用实时访问内存的页面地址。在现有的体系结构中,操作系统有两种方式来感知应用运行位置:
[0004](1)通过页表项(pagetableentry,PTE)的访问位(accessbit)确定应用访问过的内存页面。应用程序每个页表项第12位是页面状态信息标记位,其中有一位是存在位(accessbit),每当页面被访问时,这个页面对应的PTE的accessbit就会被置1。操作系统通过定时(每隔时间T)对应用的accessbit进行清除与检查,来确定应用是否在时间T范围内访问对应页面。这种方式对应用性能影响低,不需要修改现有硬件即可完成。
[0005]但这种方式存在粗粒度、延迟高、开销大的问题。1)粗粒度。操作系统只能知道一段时间内应用是否访问对应页面,但是不知道页面访问的具体次数,不利于操作系统做更加细粒度的决策。2)延迟高。遍历大数据应用的所有页表项需要的时间过长,如:平均检查一个访问位所需时间位20纳秒,那么检查一个10GB的大数据应用的所有页表项的访问位需要大约52毫秒。3)开销大。为了实时对访问位进行监控,需要周期性的对所有页表项的访问位进行清零与检查,为了更加及时的获取应用访问情况,需要增加对访问位的检查频率,这样会带来更大的开销。
[0006](2)通过缺页的方式确定应用运行位置。应用通过修改页面对应PTE中的状态位,使得应用在访问对应页面时,触发缺页异常。操作系统在缺页异常处理流程中可以获取发
生缺页的进程号与地址,从而确定应用实时运行的位置。这种方式会极大降低应用性能,由于缺页异常会引起上下文切换,增加不必要的内核开销,不适用于操作系统感知应用访问位置。

技术实现思路

[0007]针对上述问题,本专利技术提出一种利用片上高速缓存记录访存地址序列的方法,包括:于内存控制器内设置第一缓冲区,并于处理器的最后一级缓存内设置第二缓冲区;当该处理器的任一处理器核发出访存请求后,根据该访存请求生成访存记录,并将该访存记录暂存至该第一缓冲区;当该第一缓冲区内暂存的访存记录的数量达到暂存阈值时,将该第一缓冲区内的访存记录通过片上总线写入该第二缓冲区;运行于该处理器的程序通过直接读取该第二缓冲区以获取并处理该访存记录。
[0008]本专利技术所述的利用片上缓存记录访存地址序列的方法,将该第一缓冲区内的访存记录写入该第二缓冲区时,将该第二缓冲区内的第二写指针的值更新为与该第一缓冲区的第一写指针的值一致。
[0009]本专利技术所述的利用片上缓存记录访存地址序列的方法,该程序通过监控该第二缓冲区内的写指针和读指针,判断该第二缓冲区是否出现新的访存记录,并在判断出现新访存记录后,对该新访存记录进行读取操作后,更新该第二缓冲区的读指针。
[0010]本专利技术所述的利用片上缓存记录访存地址序列的方法,设置该第一缓冲区和该第二缓冲区为环形缓冲区。
[0011]本专利技术所述的利用片上缓存记录访存地址序列的方法,通过内存控制器的配置接口写入预留信息对该第二缓冲区进行配置;该预留信息包括缓冲区首地址和缓冲区长度。
[0012]本专利技术所述的利用片上缓存记录访存地址序列的方法,该访存记录包括该访存请求的请求地址、读写类型与访问时间。
[0013]本专利技术所述的利用片上缓存记录访存地址序列的方法,将该第一缓冲区内的访存记录写入该第二缓冲区时,首先根据预设的过滤规则对该访存记录进行过滤。
[0014]本专利技术还提出一种数据处理装置,采用如前所述的利用片上高速缓存记录访存地址序列的方法运行至少一个程序,该数据处理装置包括:内存及内存控制器,该内存控制器设置有访存记录与控制单元和第一缓冲区,该访存记录与控制单元用于根据处理器发出的访存请求生成访存信息,该第一缓冲区用于缓存该访存信息;处理器,具有最后一级缓存和至少一个处理器核;其中,该最后一级缓存中设置有第二缓冲区,该第二缓冲区用于缓存由该第一缓冲区发送来的访存信息,该程序通过直接读取该第二缓冲区以获取并处理该访存记录;该第一缓冲区和该第二缓冲区均为环形缓冲区;该程序通过该内存控制器的配置接口对该第二缓冲区进行配置。
附图说明
[0015]图1是现有技术的服务器结构层次示意图。
[0016]图2是本专利技术的软硬件架构示意图。
[0017]图3本专利技术的总线数据包与trace格式示意图。
[0018]图4是本专利技术的反向页表结构示意图。
[0019]图5是本专利技术的整体结构图。
[0020]图6是本专利技术的软件配置流程图。
[0021]图7是本专利技术的软件处理Trace流程图。
[0022]图8是本专利技术的访存控制单元运行流程图。
具体实施方式
[0023]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进一步详细说明。应当理解,此处所描述的具体实施方法仅仅用以解释本专利技术,并不用于限定本专利技术。
[0024]本专利技术的目的是解决操作系统无法低开销地感知应用实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种利用片上缓存记录访存地址序列的方法,其特征在于,包括:于内存控制器内设置第一缓冲区,并于处理器的最后一级缓存内设置第二缓冲区;当该处理器的任一处理器核发出访存请求后,根据该访存请求生成访存记录,并将该访存记录暂存至该第一缓冲区;当该第一缓冲区内暂存的访存记录的数量达到暂存阈值时,将该第一缓冲区内的访存记录通过片上总线写入该第二缓冲区;运行于该处理器的程序通过直接读取该第二缓冲区以获取并处理该访存记录。2.如权利要求1所述的利用片上缓存记录访存地址序列的方法,其特征在于,将该第一缓冲区内的访存记录写入该第二缓冲区时,将该第二缓冲区内的第二写指针的值更新为与该第一缓冲区的第一写指针的值一致。3.如权利要求1所述的利用片上缓存记录访存地址序列的方法,其特征在于,该程序通过监控该第二缓冲区内的写指针和读指针,判断该第二缓冲区是否出现新的访存记录,并在判断出现新访存记录后,对该新访存记录进行读取操作后,更新该第二缓冲区的读指针。4.如权利要求1所述的利用片上缓存记录访存地址序列的方法,其特征在于,设置该第一缓冲区和该第二缓冲区为环形缓冲区。5.如权利要求1所述的利用片上缓存记录访存地址序列的方法,其特征在于,通过内存控制器的配置接口写入预留信息对该...

【专利技术属性】
技术研发人员:卢天越李海锋陈明宇
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

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

1