一种主存bank划分方法及装置制造方法及图纸

技术编号:15690699 阅读:79 留言:0更新日期:2017-06-24 03:18
一种主存bank划分方法及装置,包括:周期性地统计各个应用运行时的访存特征,根据各个应用的访存特征将应用分类,根据各类应用占所有应用的比例选择相应的主存bank划分策略,根据主存bank划分策略为每种类型的每个应用分配相应数量的bank。与现有技术相比,本发明专利技术提供的主存bank划分的技术方案,根据应用的访存密集度和行局部性动态调整bank划分策略,从而满足了各应用对bank数量的需求,增加了应用bank级别的并行性,提升了主存访问效率。

Main memory bank division method and device

A bank memory division method and device, including: periodic statistics of each application runtime memory access characteristics, according to each application access features will be applied according to the classification, various applications accounted for all the proportion of applications select main memory bank partitioning strategy accordingly, according to the bank memory partitioning strategy for each application of each type of distribution the corresponding number of bank. Compared with the prior art, the invention provides the main bank division of the technical scheme, according to the application of memory intensive degree and local dynamic adjustment of bank allocation strategy, so as to meet the demand for the number of Bank of each application, increase the parallel application of bank level, enhance the main memory access efficiency.

【技术实现步骤摘要】
一种主存bank划分方法及装置
本专利技术涉及现代微处理器主存控制器的设计领域,具体涉及一种主存bank划分方法及装置。
技术介绍
现代DRAM(DynamicRandomAccessMemory动态随机存取存储器)主存系统的组织结构中,主存系统通常包含一个或者多个通道channel,对不同channel的访存请求能并行处理。一个channel包含一个或者多个rank,多个rank共享地址、数据和命令总线。一个rank又包含多个bank(如DDR3,每个rank通常包含8个bank)。每个bank又有一个独立的行缓冲,用来缓存DRAM主存一行的数据。如果访存请求命令中行缓冲中缓存的DRAM主存行,主存控制器只需要发起列访问操作读/写数据;否则,发生行冲突,主存控制器要发起三个操作命令,分别为预充电操作(预充电打开的行)、行激活操作(激活新的一行)和列访问操作来完成行冲突的访存请求。开发主存的行局部性能可以大大提升主存访问的效率,DRAM主存多bank的结构,使得对不同bank的访存请求能够并行执行(受共享地址/数据/命令总线的限制)。开发bank级别的并行性能隐藏访存延时,提升主存访问的性能,对于行局部性低的访存密集型应用,增加bank级别的并行性能可以大幅提升访存性能。存储墙问题的普遍存在以及片上多核处理器系统(chipmultiprocessor,CMP)的广泛普及使得主存成为多核系统的主要共享资源。主存性能逐渐成为制约系统性能的关键因素,也是计算机系统结构设计者关心的主要问题之一。CMP系统中多核共享主存系统,多个应用同时运行同时访问主存,竞争有限的主存资源。多个应用同时访问主存,各应用的访存请求相互交错、相互干扰,破坏单个应用访存序列原有的空间局部性(行局部性),引发额外的行冲突、以及共享资源如地址/数据总线等的冲突,从而大幅降低系统性能。另外,多个应用访存请求之间相互影响,会降低单个应用原有的bank级别的并行性,影响主存访问的性能。为了解决上述问题,现有的主存调度策略通过对访存请求进行重新排序提升系统的吞吐率和公平性。主存调度策略能在一定程度上恢复应用原有的空间局部性,但其恢复能力有限,不能从根本上解决各应用访存请求之间相互干扰的问题。首先,这些调度策略的首要设计目标不是恢复空间局部性;其次,恢复空间局部性的能力受到调度缓存尺寸大小的限制;另外,同一应用发出的相邻访存请求存在时间间隔(通常间隔较大),影响调度能力。随着片上多核处理器系统核数量的增加,多核对有限主存资源竞争加剧,各应用访存交易之间的相互干扰也加剧。此为,现有的主存划分方法通过为应用划分主存资源降低各应用访存交易之间的相互影响。Channel划分方法将计算密集型应用的访存请求和访存密集型应用的访存请求映射到不同的channel,降低不同类型应用访存请求间的相互干扰;这种划分方法同时能保证计算密集型应用的访存请求能够快速响应。Channel划分方法能提升系统的吞吐率,但是由于在计算密集型应用与访存密集型应用之间划分channel资源,造成主存资源划分不均,加剧访存密集型应用对主存资源的竞争以及其访存交易之间的相互干扰,导致访存密集型应用的访存延时增大,同时系统的不公平性也增大。此为,现有的Bank划分方法使用操作系统的页着色方法,基于页着色的bank划分方法在进行物理地址到DRAM主存地址映射时,将物理地址与DRAM主存rank和bank地址域重合的位标示为颜色位(Colors),如图1所示。操作系统在进行页分配时,将不同的颜色分配给不同的处理器核,为不同的应用分配不同的主存bank资源来隔离各个应用的访存请求,从而消除各应用访存请求间的相互干扰。Bank划分方法从根本上消除了各应用访存请求之间的相互干扰,提高了主存访问性能,从而提升系统性能。但是,现有的bank划分方法为每个处理器核分配数量相等的bank,而不考虑应用的访存序列对bank级别并行性的需求。在某些情况下,等份bank划分方法限制单个应用的bank数量,降低单个应用的bank级别并行性,因此会大幅降低系统性能。
技术实现思路
本专利技术需要解决的技术问题是提供一种主存bank划分方法及装置,满足各应用对bank数量的需求,增加应用bank级别的并行性,提升主存访问效率。为了解决上述技术问题,本专利技术提供了一种主存bank划分方法,包括:周期性地统计各个应用运行时的访存特征;根据各个应用的访存特征将所述应用分类;根据各类应用占所有应用的比例选择相应的主存bank划分策略,根据所述主存bank划分策略为每种类型的每个应用分配相应数量的bank。可选地,所述主存bank划分方法还包括:所述应用运行时的访存特征包括:访存密集度和访存序列的行局部性;所述访存密集度指每个周期内该应用的访存次数;所述行局部性指每个周期内该应用的行命中率;所述周期性地统计各个应用运行时的访存特征包括:周期性地统计并更新每个应用的访存次数和行命中率。可选地,所述周期性地统计并更新每个应用的访存次数和行命中率,包括:对于每个应用,在每个中bank设置一个对应与所述应用的行地址寄存器记录所述应用访问所述bank的上一个访存请求的行地址,然后用所述应用访问所述bank的新访存请求的行地址与记录的行地址进行比较,如果两个地址相同,则记为一个行命中交易,对一个周期内行命中交易的个数进行计数;同时为每个应用设置一个访存次数计数器记录所述应用在一个周期内的访存次数;使用所述应用一个周期内行命中交易的个数除以所述应用的访存次数得到所述应用一个周期内的行命中率。可选地,所述根据各个应用的访存特征将所述应用分类,包括:设置访存次数阈值,将一个周期内的访存次数小于所述访存次数阈值的应用分为计算密集型应用,将一个周期内的访存次数大于或等于所述访存次数阈值的应用分为访存密集型应用;和/或,设置行命中率阈值,将一个周期内的行命中率小于所述行命中率阈值的应用分为行局部性低的应用,将一个周期内的行命中率大于或等于所述行命中率阈值的应用分为行局部性高的应用。可选地,所述根据各类应用占所有应用的比例选择相应的主存bank划分策略,根据所述主存bank划分策略为每种类型的每个应用分配相应数量的bank,包括:当多核处理器系统内的所有应用均为计算密集型应用时,将主存bank资源平均分配给各个应用;当多核处理器系统内的所有应用中部分应用为计算密集型应用,另一部分为访存密集型应用时,不分配专门的bank给该部分计算密集型应用,且令该部分计算密集型应用访问所有主存bank;当多核处理器系统内的所有应用中部分应用为计算密集型应用,另一部分为访存密集型应用时,或者,当多核处理器系统内的所有应用均为访存密集型应用时,对于行局部性高的访存密集型应用,为每个应用分配最小划分单元MPU个bank;对于行局部性低的访存密集型应用,每两个应用共享2×MPU个bank。可选地,所述最小划分单元MPU=(Nrank·Nbank)/(Ncore·MI),其中,Ncore为处理器核的数目,Nrank为Ncore核处理器动态随机存取存储器DRAM主存系统rank的数目,Nbank为每个rank中bank的数目,MI为访存密集型应用占Ncore核处理器上总应用的比例,值本文档来自技高网
...
一种主存bank划分方法及装置

【技术保护点】
一种主存bank划分方法,包括:周期性地统计各个应用运行时的访存特征;根据各个应用的访存特征将所述应用分类;根据各类应用占所有应用的比例选择相应的主存bank划分策略,根据所述主存bank划分策略为每种类型的每个应用分配相应数量的bank。

【技术特征摘要】
1.一种主存bank划分方法,包括:周期性地统计各个应用运行时的访存特征;根据各个应用的访存特征将所述应用分类;根据各类应用占所有应用的比例选择相应的主存bank划分策略,根据所述主存bank划分策略为每种类型的每个应用分配相应数量的bank。2.如权利要求1所述的方法,其特征在于:所述应用运行时的访存特征包括:访存密集度和访存序列的行局部性;所述访存密集度指每个周期内该应用的访存次数;所述行局部性指每个周期内该应用的行命中率;所述周期性地统计各个应用运行时的访存特征包括:周期性地统计并更新每个应用的访存次数和行命中率。3.如权利要求2所述的方法,其特征在于:所述周期性地统计并更新每个应用的访存次数和行命中率,包括:对于每个应用,在每个中bank设置一个对应与所述应用的行地址寄存器记录所述应用访问所述bank的上一个访存请求的行地址,然后用所述应用访问所述bank的新访存请求的行地址与记录的行地址进行比较,如果两个地址相同,则记为一个行命中交易,对一个周期内行命中交易的个数进行计数;同时为每个应用设置一个访存次数计数器记录所述应用在一个周期内的访存次数;使用所述应用一个周期内行命中交易的个数除以所述应用的访存次数得到所述应用一个周期内的行命中率。4.如权利要求2所述的方法,其特征在于:所述根据各个应用的访存特征将所述应用分类,包括:设置访存次数阈值,将一个周期内的访存次数小于所述访存次数阈值的应用分为计算密集型应用,将一个周期内的访存次数大于或等于所述访存次数阈值的应用分为访存密集型应用;和/或,设置行命中率阈值,将一个周期内的行命中率小于所述行命中率阈值的应用分为行局部性低的应用,将一个周期内的行命中率大于或等于所述行命中率阈值的应用分为行局部性高的应用。5.如权利要求4所述的方法,其特征在于:所述根据各类应用占所有应用的比例选择相应的主存bank划分策略,根据所述主存bank划分策略为每种类型的每个应用分配相应数量的bank,包括:当多核处理器系统内的所有应用均为计算密集型应用时,将主存bank资源平均分配给各个应用;当多核处理器系统内的所有应用中部分应用为计算密集型应用,另一部分为访存密集型应用时,不分配专门的bank给该部分计算密集型应用,且令该部分计算密集型应用访问所有主存bank;当多核处理器系统内的所有应用中部分应用为计算密集型应用,另一部分为访存密集型应用时,或者,当多核处理器系统内的所有应用均为访存密集型应用时,对于行局部性高的访存密集型应用,为每个应用分配最小划分单元MPU个bank;对于行局部性低的访存密集型应用,每两个应用共享2×MPU个bank。6.如权利要求5所述的方法,其特征在于:所述最小划分单元MPU=(Nrank·Nbank)/(Ncore·MI),其中,Ncore为处理器核的数目,Nrank为Ncore核处理器动态随机存取存储器DRAM主存系统rank的数目,Nbank为每个rank中bank的数目,MI为访存密集型应用占Ncore核处理器上总应用的比例,值为0到1。7.一种主存bank划分装置,包括:统计模块,用于周期性地统计各个应用运行时的访存特...

【专利技术属性】
技术研发人员:程旭谢明利佟冬黄侃
申请(专利权)人:北京北大众志微系统科技有限责任公司
类型:发明
国别省市:北京,11

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

1