基于公平性考虑的短作业优先内存请求调度方法

文档序号:6357274阅读:909来源:国知局
专利名称:基于公平性考虑的短作业优先内存请求调度方法
技术领域
本发明属于信息处理系统的多核处理器内存控制器请求调度技术领域,具体涉及一种考虑各线程访存公平性、平均等待时间最短并且维护线程本身固有并行性的策略。
背景技术
半导体集成电路的发展符合摩尔定律,即每隔18个月集成电路的集成规模会增加一倍。然而,随着处理器设计越来越复杂,散热、功耗等问题成为了追求单核处理器性能不断提高的瓶颈。于是,片上多核处理器成为了发展的必然趋势,并且已经取得了相当不错的成绩。在计算机系统结构中,内存系统是最重要的一级共享存储层次。随着处理器计算速度越来越快,内存存取速度增长却慢了很多。此外,多核处理器多线程应用同时访问共享的内存资源,请求集中存于内存控制器缓冲中,造成内存资源竞争,这些都让“内存墙”现象也越来越明显。所谓内存墙,指的是内存性能严重限制CPU性能发挥的现象。传统单核体系结构下,内存控制器的行缓冲优先(FR-FCFS)调度策略优先服务命中行缓冲的访存请求,充分地利用线程的数据局部性,提高了内存系统的吞吐率,从而使全系统性能最优。然而,在多核处理器系统结构下,它缺乏考虑线程间的公平性访问和线程本身固有的并行性,单纯地追求内存系统的吞吐率,忽略了计算机整体性能。行缓冲优先 (FR-FCFS)调度策略的这些限制表现在,存在某些访存稀疏型或数据局部性差的线程饿死的现象,简单地同等看待所有线程请求使平均等待时间长,没有能够利用线程本身的并行性达到内存访问并行化。公平性考虑的短作业优先调度策略(FAR-SJFS),通过设定访存请求最长等待时间阈值来保证各线程访问内存时的公平性,通过短作业优先策略来缩短访存请求的平均等待时间,使访存请求在内存不同内存体(Bank)间具有统一的优先级,从而保证了线程本身的并行性,从而同一线程对不同Bank的访问可以同时得到服务,实现了访存时间重叠,达到了内存访问并行化(MLP)的目的。现代的SDRAM内存系统(图I)包含了一个(或几个)内存控制器,实现处理器访存请求缓存,请求调度,地址转化等功能(图2)。内存控制器之外的部分是内存体,存储数据的记忆部件。内存体包含一个(或几个)Rank,每个Rank包含几个设备。这是由于处理器与内存之间的数据总线是64位(或128位),但是实际工艺由于封装、功耗等问题只会生产8位或16的内存设备,所以需要8个设备共同凑成64位数据总线的位数。一个Rank 内的各个设备并联在一起,使用相同的地址、命令总线。每个设备都是由多个二维存储芯片组成,于是一个Rank包含了多个Bank。每个Bank都是横跨一个Rank的所有设备。每个内存存储芯片直观上就是一个二维阵列,通过行选通、列选通,数据信息就存在行列地址交叉处。内存存取操作是首先都是将一个Bank中的一行数据全部取出,存放在叫做行缓冲(或者信号放大器)的硬件中,其次进行列读取或者列写入操作,最后,当读取或者写入操作完成后再将这一行数据全部写回到内存芯片。Bank的一行数据在1-4KB之间,具体大小对操作系统页框大小有影响。根据之前介绍的内存体的结构,处理器Load或Store指令在最后一级Cache缺失后,会进行内存访问操作。访问请求的物理地址被分解成Rank Id、Bank Id.Row IdXol Id几项,当然在更加复杂的情况下,存在多内存控制器的情况下,还会分解成Channel Id。每一次的内存访问首先通过Rank Id找到相应的Rank,再通过Bank Id找到相应的Bank,注意Bank是横跨Rank内所有设备,然后再通过给出Row Id进行行激活操作,即把请求的整行数据从二维阵列取到相应的缓冲中,再给出Col Id进行读写操作,读写操作的粒度根据块大小的设定、总线传输能力等决定。每次内存请求操作的完成时间依靠行缓冲的状态,可以分为以下三类1、行命中 访存请求访问的Bank处于行激活状态并且行缓冲中的数据正好是请求所要访问的行数据。于是内存控制器只需要发出一个列读取或写入命令即可。第I种的访问的延迟时间是 Tclo 2、行关闭请求访问的Bank行缓冲没有数据。此时首先由内存控制器发送一个行激活命令把相应行数据取到行缓冲中,然后再发送列读取或写入命令。第2种的访问延迟时间是T-+TW 3、行冲突请求访问的Bank行缓冲中存在数据,但是却不是请求所要访问的行。内存控制器需要先发送充电命令,然后再发送行激活命令,最后再发送列读取或写入命令。第3种的访问延迟是T11^UTcl。内存控制器含有缓存队列,用来缓存访存的所有处理器请求。这些请求等待内存控制器调度。调度请求时需要考虑Bank的状态和总线的状态。一个请求可以被调度,必须保证它不能引起共享资源(比如Bank和地址、数据、命令总线)的竞争,同时也不能违反任何内存体的物理时序限制。因为命中行缓冲的请求只需要发送一个列读取或写入的命令就可以完成访存操作。所以工业的内存控制器都是采用行缓冲优先(FR-FCFS)的请求调度策略。这种策略比先来先服务(FCFS)策略充分利用了行缓冲的数据局部性,取得了很大的性能提升。本发明因此而来。

发明内容
本发明目的在于解决现代流行的虚拟机系统中通信效率和资源共享的问题。为了解决现有技术中的这些问题,本发明提供的技术方案是一种基于公平性考虑的短作业优先内存请求调度方法,用于片上多核处理器访问共享内存资源时,内存控制器调度各线程访存请求;其特征在于所述方法中内存控制器设定CPU访存线程的最大等待时间Tmax、时间窗口 Twin,计数每个CPU访存线程的等待时间和每个CPU访存线程在Twin时间内的访存次数Cm ;所述操作系统按照以下步骤进行调度CPU 访存线程对缓存进行访问(I)内存控制器判断CPU访存线程列表中是否存在某个CPU访存线程的等待时间达到或者超过Tmax ;如果判断结果肯定,则出现该情况的CPU访存线程为最高优先级的访存线程;否则进行步骤(2);(2)内存控制器判断CPU访存线程列表中是否存在行缓冲命中的CPU访存线程请求;如果判断结果肯定,则出现该情况的CPU访存线程为次优先级的访存线程;否则进行步骤⑶;(3)内存控制器判断CPU访存线程列表中请求访问的CPU访存线程是否是Cttoead最小的线程请求;如果判断结果肯定,则出现该情况的CPU访存线程为下一优先级的访存线程;否则进行步骤(4);(4)内存控制器调度CPU访存线程列表中所有CPU访存线程按照先来先服务 (FCFS)策略进行对缓存进行访问。优选的,所述方法中当CPU访存线程请求进入内存控制器缓存时,内存控制器开始对CPU访存线程的请求打一个时间戳TimeAdded,CPU访存线程轮转每个内存时钟周期时,当前时间减去TimeAdded即为请求的等待时间。本发明称为公平性考虑的短作业优先内存请求调度策略,目的在于(I)各线程公平性访问内存资源(2)降低平均等待时间以求高吞吐率访问(3)实现内存级别访问并行化 (MLP)为了实现以上目的,采取以下方法。⑴通过在内存控制器中设定CPU访存请求最大等待时间Tmax,对每个请求进行等待时间计时,并对等待时间达到或超过Tmax的请求优先处理来保证各线程公平性(2)通过短作业优先策略来优先处理早完成的请求,使请求的平均等待时间最短,从而提高系统性能(3)通过上一步对线程优先级的设定,使同一线程可以在不同Bank间并行访问,维护了线程本身的并行性,从而加快了访存时间。I、访存请求最大等待时间阈值Tmax的确定根据多次实验结果可以测得,内存请求的访问时间大概在200个处理器时钟周期左右。这里采取经验值方法在内存控制器里设定Tmax为800个处理器时钟周期。当然根据各线程负载情况以及内存配置情况,Tmax的最优值可能会发生变化,需要动态调整,这里只是一种启发式的策略,争取达到最优情况。在后来的实验方法中只需要要在仿真器里设定Tmax为时间常量800即可。2、内存请求等待时间的计时方法如图2所示,内存系统框图中主要部分有内存控制器和内存体,其中内存控制器又包含了请求缓存单元、地址映射单元、请求调度单元。处理器来的请求首先缓存在请求缓存单元里,每个请求包含了以下数据结构
权利要求
1.一种基于公平性考虑的短作业优先内存请求调度方法,用于片上多核处理器访问共享内存资源时,内存控制器调度各线程访存请求;其特征在于所述方法中内存控制器设定CPU访存线程的最大等待时间Tmax、时间窗口 Twin,计数每个CPU访存线程的等待时间和每个CPU访存线程在Twin时间内的访存次数Cm ;所述操作系统按照以下步骤进行调度CPU 访存线程对缓存进行访问(1)内存控制器判断CPU访存线程列表中是否存在某个CPU访存线程的等待时间达到或者超过Tmax ;如果判断结果肯定,则出现该情况的CPU访存线程为最高优先级的访存线程;否则进行步骤(2);(2)内存控制器判断CPU访存线程列表中是否存在行缓冲命中的CPU访存线程请求; 如果判断结果肯定,则出现该情况的CPU访存线程为次优先级的访存线程;否则进行步骤(3);(3)内存控制器判断CPU访存线程列表中请求访问的CPU访存线程是否是Cthread最小的线程请求;如果判断结果肯定,则出现该情况的CPU访存线程为下一优先级的访存线程; 否则进行步骤(4);(4)内存控制器调度CPU访存线程列表中所有CPU访存线程按照先来先服务(FCFS)策略进行对缓存进行访问。
2.根据权利要求I所述的方法,其特征在于所述方法中当CPU访存线程请求进入内存控制器缓存时,内存控制器开始对CPU访存线程的请求打一个时间戳TimeAdded,CPU访存线程轮转每个内存时钟周期时,当前时间减去TimeAdded即为请求的等待时间。
全文摘要
本发明公开了一种公平性考虑的短作业优先内存请求调度方法(FAR-SJFS),用于片上多核处理器(CMP)访问共享内存资源时,内存控制器调度各线程访问请求,所述方法考虑了多线程访问内存时的公平性,减少请求平均等待时间,维护各线程本身固有的并行性。该方法对访存请求进行等待时间计数,通过实验设定请求最大等待时间阈值Tmax来保证各线程公平性。通过短作业优先策略,让请求少的线程尽快完成访存,从而使线程平均等待时间最短。在内存各Bank体之间对各线程设置统一优先级,让同一线程在不同Bank上的请求同时得到服务,实现内存级别并行性(MLP)。本发明保证了内存系统的吞吐率,又全面提升整体系统性能。
文档编号G06F9/50GK102609312SQ20121000551
公开日2012年7月25日 申请日期2012年1月10日 优先权日2012年1月10日
发明者吴俊敏, 蒋楠, 赵小雨, 金瑛棋 申请人:中国科学技术大学苏州研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1