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

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

Info

Publication number
CN102609312B
CN102609312B CN201210005511.3A CN201210005511A CN102609312B CN 102609312 B CN102609312 B CN 102609312B CN 201210005511 A CN201210005511 A CN 201210005511A CN 102609312 B CN102609312 B CN 102609312B
Authority
CN
China
Prior art keywords
thread
request
memory
memory access
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210005511.3A
Other languages
English (en)
Other versions
CN102609312A (zh
Inventor
吴俊敏
金瑛棋
蒋楠
赵小雨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Institute for Advanced Study USTC
Original Assignee
Suzhou Institute for Advanced Study USTC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Institute for Advanced Study USTC filed Critical Suzhou Institute for Advanced Study USTC
Priority to CN201210005511.3A priority Critical patent/CN102609312B/zh
Publication of CN102609312A publication Critical patent/CN102609312A/zh
Application granted granted Critical
Publication of CN102609312B publication Critical patent/CN102609312B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种公平性考虑的短作业优先内存请求调度方法(FAR-SJFS),用于片上多核处理器(CMP)访问共享内存资源时,内存控制器调度各线程访问请求,所述方法考虑了多线程访问内存时的公平性,减少请求平均等待时间,维护各线程本身固有的并行性。该方法对访存请求进行等待时间计数,通过实验设定请求最大等待时间阈值Tmax来保证各线程公平性。通过短作业优先策略,让请求少的线程尽快完成访存,从而使线程平均等待时间最短。在内存各Bank体之间对各线程设置统一优先级,让同一线程在不同Bank上的请求同时得到服务,实现内存级别并行性(MLP)。本发明保证了内存系统的吞吐率,又全面提升整体系统性能。

Description

基于公平性考虑的短作业优先内存请求调度方法
技术领域
本发明属于信息处理系统的多核处理器内存控制器请求调度技术领域,具体涉及一种考虑各线程访存公平性、平均等待时间最短并且维护线程本身固有并行性的策略。
背景技术
半导体集成电路的发展符合摩尔定律,即每隔18个月集成电路的集成规模会增加一倍。然而,随着处理器设计越来越复杂,散热、功耗等问题成为了追求单核处理器性能不断提高的瓶颈。于是,片上多核处理器成为了发展的必然趋势,并且已经取得了相当不错的成绩。
在计算机系统结构中,内存系统是最重要的一级共享存储层次。随着处理器计算速度越来越快,内存存取速度增长却慢了很多。此外,多核处理器多线程应用同时访问共享的内存资源,请求集中存于内存控制器缓冲中,造成内存资源竞争,这些都让“内存墙”现象也越来越明显。所谓内存墙,指的是内存性能严重限制CPU性能发挥的现象。
传统单核体系结构下,内存控制器的行缓冲优先(FR-FCFS)调度策略优先服务命中行缓冲的访存请求,充分地利用线程的数据局部性,提高了内存系统的吞吐率,从而使全系统性能最优。然而,在多核处理器系统结构下,它缺乏考虑线程间的公平性访问和线程本身固有的并行性,单纯地追求内存系统的吞吐率,忽略了计算机整体性能。行缓冲优先(FR-FCFS)调度策略的这些限制表现在,存在某些访存稀疏型或数据局部性差的线程饿死的现象,简单地同等看待所有线程请求使平均等待时间长,没有能够利用线程本身的并行性达到内存访问并行化。
公平性考虑的短作业优先调度策略(FAR-SJFS),通过设定访存请求最长等待时间阈值来保证各线程访问内存时的公平性,通过短作业优先策略来缩短访存请求的平均等待时间,使访存请求在内存不同内存体(Bank)间具有统一的优先级,从而保证了线程本身的并行性,从而同一线程对不同Bank的访问可以同时得到服务,实现了访存时间重叠,达到了内存访问并行化(MLP)的目的。
现代的SDRAM内存系统(图1)包含了一个(或几个)内存控制器,实现处理器访存请求缓存,请求调度,地址转化等功能(图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 Id、Col Id几项,当然在更加复杂的情况下,存在多内存控制器的情况下,还会分解成ChannelId。每一次的内存访问首先通过Rank Id找到相应的Rank,再通过Bank Id找到相应的Bank,注意Bank是横跨Rank内所有设备,然后再通过给出Row Id进行行激活操作,即把请求的整行数据从二维阵列取到相应的缓冲中,再给出Col Id进行读写操作,读写操作的粒度根据块大小的设定、总线传输能力等决定。
每次内存请求操作的完成时间依靠行缓冲的状态,可以分为以下三类:1、行命中:访存请求访问的Bank处于行激活状态并且行缓冲中的数据正好是请求所要访问的行数据。于是内存控制器只需要发出一个列读取或写入命令即可。第1种的访问的延迟时间是Tcl。2、行关闭:请求访问的Bank行缓冲没有数据。此时首先由内存控制器发送一个行激活命令把相应行数据取到行缓冲中,然后再发送列读取或写入命令。第2种的访问延迟时间是Trcd+Tcl。3、行冲突:请求访问的Bank行缓冲中存在数据,但是却不是请求所要访问的行。内存控制器需要先发送充电命令,然后再发送行激活命令,最后再发送列读取或写入命令。第3种的访问延迟是Trp+Trcd+Tcl
内存控制器含有缓存队列,用来缓存访存的所有处理器请求。这些请求等待内存控制器调度。调度请求时需要考虑Bank的状态和总线的状态。一个请求可以被调度,必须保证它不能引起共享资源(比如Bank和地址、数据、命令总线)的竞争,同时也不能违反任何内存体的物理时序限制。
因为命中行缓冲的请求只需要发送一个列读取或写入的命令就可以完成访存操作。所以工业的内存控制器都是采用行缓冲优先(FR-FCFS)的请求调度策略。这种策略比先来先服务(FCFS)策略充分利用了行缓冲的数据局部性,取得了很大的性能提升。本发明因此而来。
发明内容
本发明目的在于解决现代流行的虚拟机系统中通信效率和资源共享的问题。
为了解决现有技术中的这些问题,本发明提供的技术方案是:
一种基于公平性考虑的短作业优先内存请求调度方法,用于片上多核处理器访问共享内存资源时,内存控制器调度各线程访存请求;其特征在于所述方法中内存控制器设定CPU访存线程的最大等待时间Tmax、时间窗口Twin,计数每个CPU访存线程的等待时间和每个CPU访存线程在Twin时间内的访存次数Cthread;所述操作系统按照以下步骤进行调度CPU访存线程对缓存进行访问:
(1)内存控制器判断CPU访存线程列表中是否存在某个CPU访存线程的等待时间达到或者超过Tmax;如果判断结果肯定,则出现该情况的CPU访存线程为最高优先级的访存线程;否则进行步骤(2);
(2)内存控制器判断CPU访存线程列表中是否存在行缓冲命中的CPU访存线程请求;如果判断结果肯定,则出现该情况的CPU访存线程为次优先级的访存线程;否则进行步骤(3);
(3)内存控制器判断CPU访存线程列表中请求访问的CPU访存线程是否是Cthread最小的线程请求;如果判断结果肯定,则出现该情况的CPU访存线程为下一优先级的访存线程;否则进行步骤(4);
(4)内存控制器调度CPU访存线程列表中所有CPU访存线程按照先来先服务(FCFS)策略进行对缓存进行访问。
优选的,所述方法中当CPU访存线程请求进入内存控制器缓存时,内存控制器开始对CPU访存线程的请求打一个时间戳TimeAdded,CPU访存线程轮转每个内存时钟周期时,当前时间减去TimeAdded即为请求的等待时间。
本发明称为公平性考虑的短作业优先内存请求调度策略,目的在于(1)各线程公平性访问内存资源(2)降低平均等待时间以求高吞吐率访问(3)实现内存级别访问并行化(MLP)
为了实现以上目的,采取以下方法。(1)通过在内存控制器中设定CPU访存请求最大等待时间Tmax,对每个请求进行等待时间计时,并对等待时间达到或超过Tmax的请求优先处理来保证各线程公平性(2)通过短作业优先策略来优先处理早完成的请求,使请求的平均等待时间最短,从而提高系统性能(3)通过上一步对线程优先级的设定,使同一线程可以在不同Bank间并行访问,维护了线程本身的并行性,从而加快了访存时间。
1、访存请求最大等待时间阈值Tmax的确定
根据多次实验结果可以测得,内存请求的访问时间大概在200个处理器时钟周期左右。这里采取经验值方法在内存控制器里设定Tmax为800个处理器时钟周期。当然根据各线程负载情况以及内存配置情况,Tmax的最优值可能会发生变化,需要动态调整,这里只是一种启发式的策略,争取达到最优情况。在后来的实验方法中只需要要在仿真器里设定Tmax为时间常量800即可。
2、内存请求等待时间的计时方法
如图2所示,内存系统框图中主要部分有内存控制器和内存体,其中内存控制器又包含了请求缓存单元、地址映射单元、请求调度单元。处理器来的请求首先缓存在请求缓存单元里,每个请求包含了以下数据结构
其中,core表示线程号,type标志是读写请求,address表示物理地址,timeAdded为时间戳,当然请求进入到内存控制器时记录一个时钟周期,当请求完成时用当前时间减去记录时间就是该请求完成的时间。其中请求调度单元每个时钟周期都会从请求缓存中选择一个请求进行服务,所以都个时钟周期需要计算请求等待时间,即当前时钟周期减去记录时间即为请求等待时间。
3、短作业优先判定
本策略采用短作业优先策略。即优先尽可能早完成的线程请求。通过记录各个线程在时间窗口Twin内接受到的请求,来预测该线程的请求多少。其中Twin时间窗口大小也由经验值确定为常量2W个处理器时钟周期,即在2W个处理器时钟周期内,通过数据结构Cthread来记录每个线程在这段时间范围内发出的请求个数。其中Cthread最小的为最短作业。当时间窗口达到2W个处理器时钟周期时,Cthread重新清0重新记录。在访真器里实现由一个全局的变量Twin来记录时间窗口大小,当Twin达到2W时,Twin清0并且对Cthread清0重新记数。
4、行缓冲命中判定
内存控制器中的地址映射单元会把每个请求的物理地址转换成Rank号、Bank号、行号、列号,请求调度单元会查看每个请求对应的Bank中的行缓冲数据是否是请求需要的数据,如果是则行缓冲命中,否则未命中。
5、请求调度策略方案
完成了以上等待时间Tmax设置,请求等待时间记录,Twin时间窗口内线程请求数记录后,最后内存控制器每个时钟周期要选择一个请求进行服务。采取FAR-SJFS策略如表1。
完整的公平性考虑的短作业优先内存请求调度策略用流程图如图4。
理论分析一下FAR-SJFS策略:首先,对访存请求进行等待时间计数,通过实验设定请求最大等待时间阈值Tmax来保证各线程公平性。其次,通过短作业优先策略,让请求少的线程尽快完成访存,从而使线程平均等待时间最短。最后,在内存各Bank体之间对各线程设置统一优先级,让同一线程在不同Bank上的请求同时得到服务,实现内存级别并行性(MLP)。本发明保证了内存系统的吞吐率,又全面提升整体系统性能。
本发明所提出的公平性考虑短作业优先策略方法包括如下三个核心部分:
1、设置访存请求最大等待时间阈值Tmax
在多核多线程情况下,内存是最重要的一级共享资源,当线程个数增加时,访存请求就是相应增加。内存系统的吞吐率是有限的,这些需要把不能立即服务的请求缓存起来。因为FR-FCFS策略是优先服务命中行缓冲的请求,那么当多线程中有一个线程的访存行为非常密集并且数据局部性很好的情况下,内存控制器就会很长时间内优先这个线程的访存请求。与此同时,有些线程是计算密集型,它的访存行为主要体现在取指令与很少的数据。但是由于另一线程频繁地命中行缓冲,导致此线程饿死,严重影响性能。于是,在这里对内存控制器中的每一个请求进行等待时间计时Treq,如果等待时间超过一定阈值Tmax,此请求具有最高的优先级获得服务,从而保证了线程间公平性,避免了饿死现象。
2、短作业优先(SJP)提高全系统性能
操作系统中调度进程采取短作业优先策略,即知道各任务总量的情况下,优先处理短作业,这样会使全部的等待时间最短,这是一种最优化的思想。在线程访存行为中,无法预先知道各线程访存的总量,但是可以通过以往的时间区间内线程访存的计数统计来预测线程的访存行为。之前一定时间区间内,线程获得的服务越少,那么这个线程很大可能尽快完成其余访存请求。相关学者也有人曾作过实验验证了这一思想,即线程的访存行为符合Pareto分布。在以上分析后,对于多核多线程的访存调度可以采取优先处理短作业。这里的短作业确定是通过之前Twin时间内线程获得服务数量确定的。
3关注内存级别并行性(MLP)
无论是先来先服务策略,还是行缓冲优先策略都没有考虑到线程本身固有的并行性。即处理器为了达到访存时间重叠的目的,通过指令调度,让访问内存不同Bank的访存指令在同一时间发出,因为访问于内存不同Bank的请求可以同时得到服务,就相当于减少了单次请求服务时间,从而提高IPC等性能。但是传统内存调度策略并没有考虑到这一点。短作业优先策略,在内存不同Bank之间设置了统一的线程优先级,使同一线程不同Bank的请求可以同一时间得到服务,从而实现在内存级别的并行性(MLP)。
所述方法中对同等条件下的缓存请求,采用短作业优先策略进行调度。通过设置Cthread记录过去一段时间内线程的访存密集程度,这里假设过去一定时间内访存次数少的线程很大可能尽快结束访存,并且通过实验结果证实了这一假设。优先服务短作业可以减少线程的平均等待时间。
相对于现有技术中的方案,本发明的优点是:
所述方法中对内存控制器的缓存请求进行时间记录,并且通过设定请求最大等待时间阈值Tmax来保证各线程访存请求能够公平性访问,避免了“饿死”的现象。所述方法中对同等条件下的缓存请求,采用短作业优先策略进行调度。通过设置Cthread记录过去一段时间内线程的访存密集程度,这里假设过去一定时间内访存次数少的线程很大可能尽快结束访存,并且通过实验结果证实了这一假设。优先服务短作业可以减少线程的平均等待时间。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为片上多核处理器及内存系统框图
图2为内存控制器框图
图3为SDRAM内存系统主要结构,包括内存控制器和内存体
图4为FAR-SJFS流程图
图5为Benchmark单独运行时的访存密集程度(X-程序Y-访存次数/M条指令)
图6为Benchmark单独运行时的行缓冲命中率(X-程序Y-命中率)
图7为混合运行时各Benchmark时访存延迟(X-程序Y-平均延迟周期)
图8为混合运行时各Benchmark IPC(X-程序Y-指令条数/周期)
图9为混合运行时FR-FCFS和FAR-SJFS策略下Benchmark IPC(X-程序Y-指令每周期/测试程序的Mix两种策略比较)。
具体实施方式
以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
实施例 基于公平性考虑的短作业优先调度实施例
需要强调的是本发明是一种内存请求调度策略,其策略实施主体在于内存控制器。其中多核计算机系统框图如图1,内存系统框图如图2所示。片上多核处理器芯片是目前比较常见的各核的一级缓存私有,二级缓存共享方案,每个线程运行在一个处理器核上,各个线程通过总线独立并发访问共享内存资源。其中内存系统中的内存控制器负责请求的缓存、调度、地址映射等问题。
本实施例基于公平性考虑的短作业优先调度策略(FAR-SJFS)具体规则如表1。
表1 FAR-SJFS调度规则
本实施例基于公平性考虑的短作业优先内存请求调度方法,用于片上多核处理器访问共享内存资源时,内存控制器调度各线程访存请求;所述方法中操作系统设定CPU访存线程的最大等待时间Tmax、时间窗口Twin,计数每个CPU访存线程的等待时间Treq和每个CPU访存线程在Twin时间内的访存次数Cthread;所述内存控制器按照以下步骤进行调度CPU访存线程对缓存进行访问:
(1)内存控制器判断CPU访存线程列表中是否存在某个CPU访存线程的等待时间Treq达到或者超过Tmax;如果判断结果肯定,则出现该情况的CPU访存线程为最高优先级的访存线程;否则进行步骤(2);
(2)内存控制器判断CPU访存线程列表中是否存在行缓冲命中的CPU访存线程请求;如果判断结果肯定,则出现该情况的CPU访存线程为次优先级的访存线程;否则进行步骤(3);
(3)内存控制器判断CPU访存线程列表中请求访问的CPU访存线程是否是Cthread最小的线程请求;如果判断结果肯定,则出现该情况的CPU访存线程为下一优先级的访存线程;否则进行步骤(4);
(4)内存控制器调度CPU访存线程列表中所有CPU访存线程按照先来先服务(FCFS)策略进行对缓存进行访问。
方法中当CPU访存线程请求进入内存控制器缓存时,操作系统开始对CPU访存线程的等待时间Treq进行记录请求进入时间,CPU访存线程轮转每个内存时钟周期时,都用当前时间减去进入时间得到请求等待时间。
1、在PendingReadTransaction与PendingWriteTransaction队列设置计时器
内存控制器是负责缓存处理器发出的访存指令、对访存指令进行调度的重要部件。公平性考虑的短作业优先调度策略设置了请求最大等待时间Tmax。并且对存在于请求缓冲队列PendingReadTransaction与PendingWriteTransaction的每个请求加入一个计数器。当请求进入队列的时候,打上一个时间戳,然后每个周期检查这些请求的等待时间。如果等待时间达到或者超过最大等待时间阈值,那么优先处理这个请求,以此来保证多核处理器下多线程的公平性访问。在这里,根据实验数据得到,最大等待时间阈值设为800个时钟周期比较合适。通过这一方式各线程公平性访问,不会出现某些线程“饿死”的情况,提高了计算机系统整体的性能。
2、记录每个核访存密集程度来预测短作业优先(SJP)
短作业优先策略,即知道各个任务总量的情况下,优先处理短作业,这样会使全部的等待时间最短,这是一种最优化的思想。在线程访存行为中,无法预先知道各线程访存的总量,但是可以通过以往的时间区间内线程访存的计数统计来预测线程的访存行为。之前一定时间区间内,线程获得的服务越少,那么这个线程很大可能尽快完成其余访存请求。所以设置计数器,记录每个处理器核之前Twin时间内访存的次数。并且用这个记录数据来预测每个线程未来需要获得的内存资源。短作业优先思想,其实是一种最优化思想,即优先处理短的任务,可以使整体的平均等待时间最短,从而达到最佳性能。本实验中Twin预设为2W个处理器时钟周期,并且用Cthread记录每个线程在最近时间窗口内发出内存请求的个数。
3保证各核在内存的不同Bank上具有相同的优先级
无论是先来先服务策略,还是行缓冲优先策略都没有考虑到线程本身固有的并行性。即处理器为了达到访存时间重叠的目的,通过指令调度,让访问内存不同Bank的访存指令在同一时间发出,因为访问于内存不同Bank的请求可以同时得到服务,就相当于减少了单次请求服务时间,从而提高IPC等性能。但是传统内存调度策略并没有考虑到这一点。
短作业优先策略,在内存不同Bank之间设置了统一的线程优先级,使同一线程不同Bank的请求可以同一时间得到服务,从而实现在内存级别的并行性(MLP)。
以下是本发明的具体实施方式及实验结果验证分析。
本发明的实验平台在Linux系统下,采用多核系统仿真器Multi2sim和内存时钟精确仿真器DRAMSim仿真器。其中Multi2sim与DRAMSim仿真器设置参数如下。测试程序集选取的是工业程序集CPU SPEC2006。其中Tmax设置为800cycle,Twin设置为2Wcycles。Multi2sim可以自由配置Cache与总线,达到不同的系统结构。这里采用每个核一级Cache私有并且数据、指令Cache分开,二级Cache核间共享。一级Cache、二级Cache之间总线连接。DRAMSim内存时钟精确仿真器是标准的SDRAM结构,一个内存控制器。测试程序设置最大指令数为500M。其中仿真器参数设定如表2,按照如图4的方式运行。
表2仿真器参数
首先,在各Benchmark单独运行行时,测试结果如下。图5为各Benchmark单独运行每执行M指令时,发送访问内存请求的个数。图6为各Benchmark单独运行时行缓冲的命中率。从结果中可以看出462.libquantum到447.dealII这六个程序属于访存密集型,并且行缓冲的命中率也比较高,而464.h264ref到444.namd这六个程序集属于计算密集型,大部分行缓冲命中率也偏低。
其次,根据上面对12个Benchmark的分析,得到了6个访存密集型程序和6个计算密集型程序。这里将程序分组,462.libquantum和444.namd一组,400.perlbench和999.specrand一组,按照一个访存密集型程序和一个计算密集型程序分成6组进行实验。分别测试各程序在单独运行、FR-FCFS策略、FAR-SJFS策略下的访存平均时间、IPC性能指标。实验结果如图7、图8、图9所示。
然后,分析实验结果。图7为在Benchmak单独运行、FR-FCFS策略、FAR-SJFS策略下的访存平均时间。可以看到在FR-FCFS下,访集密集型程序访存平均等待时间比单独运行时增加很少,只有462.libquantum从138cycle变成300cycle,而计算密集型程序平均等待时间却增加非常多,比如444.namd从81cycle增长到589cycle,增长了9倍。正是由于这种原因,可以看到图8中各Benchmark的IPC变化,其中访存密集型程序IPC变化减少很小,而计算密集型程序如458.sjeng减少了30%。
最后,观察FR-FCFS策略下与FAR-SJFS策略下访存平均等待时间与IPC变化发现,由于采取了最大时间阈值、短作业优先策略,使访问共享内存资源更加公平,计算密集型程序不会出现饿死现象。图9显示在两种策略下全系统IPC的变化。由图中结果发现,在运行混合Benchmark时,FAR-SJFS策略结果优于FR-FCFS策略,其中最高性能提升在462.libquantum和444.namd组合中达到43%。
从实验结果看,本发明在运行混合测试程序时,尤其是访存密集型程序与计算密集型程序组合,公平性考虑的短作业优先策略(FAR-SJFS)优于行缓冲优先策略(FR-FCFS)。不仅保持了内存系统的吞吐率,而且使各线程能够公平访问,避免了“饿死”现象,并且使访存请求平均等待时间缩短,提高了系统整体性能。
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。

Claims (1)

1.一种基于公平性考虑的短作业优先内存请求调度方法,用于片上多核处理器访问共享内存资源时,内存控制器调度各线程访存请求;其特征在于所述方法中内存控制器设定CPU访存线程的最大等待时间Tmax、时间窗口Twin,计数每个CPU访存线程的等待时间和每个CPU访存线程在Twin时间内的访存次数Cthread;操作系统按照以下步骤调度CPU访存线程对缓存进行访问:
(1)内存控制器判断CPU访存线程列表中是否存在某个CPU访存线程的等待时间达到或者超过Tmax;如果判断结果肯定,则出现该情况的CPU访存线程为最高优先级的访存线程;否则进行步骤(2);
(2)内存控制器判断CPU访存线程列表中是否存在行缓冲命中的CPU访存线程请求;
如果判断结果肯定,则出现该情况的CPU访存线程为次优先级的访存线程;否则进行步骤(3);
(3)内存控制器判断CPU访存线程列表中请求访问的CPU访存线程是否是Cthread最小的线程请求;如果判断结果肯定,则出现该情况的CPU访存线程为下一优先级的访存线程;
否则进行步骤(4);
(4)内存控制器调度CPU访存线程列表中所有CPU访存线程按照先来先服务(FCFS)策略对缓存进行访问;
所述方法中当CPU访存线程请求进入内存控制器缓存时,内存控制器开始对CPU访存线程请求打一个时间戳TimeAdded,CPU访存线程轮转每个内存时钟周期时,当前时间减去TimeAdded即为请求的等待时间。
CN201210005511.3A 2012-01-10 2012-01-10 基于公平性考虑的短作业优先内存请求调度方法 Expired - Fee Related CN102609312B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210005511.3A CN102609312B (zh) 2012-01-10 2012-01-10 基于公平性考虑的短作业优先内存请求调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210005511.3A CN102609312B (zh) 2012-01-10 2012-01-10 基于公平性考虑的短作业优先内存请求调度方法

Publications (2)

Publication Number Publication Date
CN102609312A CN102609312A (zh) 2012-07-25
CN102609312B true CN102609312B (zh) 2015-08-19

Family

ID=46526705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210005511.3A Expired - Fee Related CN102609312B (zh) 2012-01-10 2012-01-10 基于公平性考虑的短作业优先内存请求调度方法

Country Status (1)

Country Link
CN (1) CN102609312B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9632822B2 (en) 2012-09-21 2017-04-25 Htc Corporation Multi-core device and multi-thread scheduling method thereof
CN103677997B (zh) * 2012-09-21 2017-04-12 宏达国际电子股份有限公司 多核心装置以及其多线程调度方法
CN104166596B (zh) * 2013-05-17 2018-06-26 华为技术有限公司 一种内存分配方法及节点
US9335934B2 (en) * 2014-04-29 2016-05-10 Futurewei Technologies, Inc. Shared memory controller and method of using same
GB2528318A (en) 2014-07-18 2016-01-20 Ibm Measuring delay
CN105637475B (zh) * 2014-09-16 2019-08-20 华为技术有限公司 并行访问方法及系统
US10353747B2 (en) * 2015-07-13 2019-07-16 Futurewei Technologies, Inc. Shared memory controller and method of using same
CN105808335A (zh) * 2016-03-04 2016-07-27 北京奇虎科技有限公司 动态调度方法及装置
CN107958526A (zh) * 2017-11-20 2018-04-24 中国银行股份有限公司 一种排队处理方法及装置
CN108279981A (zh) * 2018-01-30 2018-07-13 东华理工大学 基于访存优先级的gpgpu性能优化方法
CN108345763A (zh) * 2018-04-02 2018-07-31 东南大学 乱序处理器Cache缺失服务时间的评估方法
CN109308190B (zh) * 2018-07-09 2023-03-14 北京中科睿芯科技集团有限公司 基于3d堆栈内存架构的共享行缓冲系统及共享行缓冲器
CN109213583B (zh) * 2018-07-25 2022-03-29 中国科学院计算技术研究所 一种通过软硬件协同支持读写性能隔离的i/o调度器
CN109309720B (zh) * 2018-10-11 2021-10-15 郑州云海信息技术有限公司 一种基于nfs协议处理文件访问请求的方法及系统
CN110806900B (zh) * 2019-04-30 2021-07-09 成都海光微电子技术有限公司 一种访存指令处理方法及处理器
CN111045800A (zh) * 2019-11-14 2020-04-21 武汉纺织大学 一种基于短作业优先的优化gpu性能的方法及系统
CN111461868B (zh) * 2020-04-01 2023-09-22 中国银行股份有限公司 网点排队方法、装置、计算机设备及可读存储介质
CN111444024B (zh) * 2020-04-13 2024-04-12 维沃移动通信有限公司 请求响应方法、电子设备及存储介质
CN114139684A (zh) * 2021-12-02 2022-03-04 脸萌有限公司 图神经网络生成方法、装置、系统、介质以及电子设备
CN116166575B (zh) * 2023-02-03 2024-01-23 摩尔线程智能科技(北京)有限责任公司 访存段长度的配置方法、装置、设备、介质和程序产品
CN115827498A (zh) * 2023-02-20 2023-03-21 创云融达信息技术(天津)股份有限公司 一种软件程序的压力测试分配方法及系统
CN117076081A (zh) * 2023-08-22 2023-11-17 上海合芯数字科技有限公司 存储器训练方法、设备、存储介质及程序产品

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Onur Mutlu 等.Parallelism-Aware Batch Scheduling: Enabling High-Performance and Fair Shared Memory Controllers.《Micro,IEEE》.2009,第22-32页. *
Parallelism-Aware Batch Scheduling: Enhancing both Performance and Fairness of Shared DRAM Systems;Onur Mutlu 等;《ISCA "08 Proceedings of the 35th Annual International Symposium on Computer Architecture》;20081231;第63-74页 *
Stall-Time Fair Memory Access Scheduling for Chip Multiprocessors;Onur Mutlu 等;《Proc. of International Symposium on Microarchitecture》;20071231;全文 *
基于等待时间的多任务调度算法的研究与设计;李其昌;《计算机与数字工程》;20111231;第39卷(第12期);第23-26段 *

Also Published As

Publication number Publication date
CN102609312A (zh) 2012-07-25

Similar Documents

Publication Publication Date Title
CN102609312B (zh) 基于公平性考虑的短作业优先内存请求调度方法
Tavakkol et al. FLIN: Enabling fairness and enhancing performance in modern NVMe solid state drives
Ausavarungnirun et al. Staged memory scheduling: Achieving high performance and scalability in heterogeneous systems
CN109564556B (zh) 具有条纹和读取/写入事务管理的存储器控制器仲裁器
Subramanian et al. The blacklisting memory scheduler: Achieving high performance and fairness at low cost
Hassan et al. Bounding dram interference in cots heterogeneous mpsocs for mixed criticality systems
Subramanian et al. BLISS: Balancing performance, fairness and complexity in memory access scheduling
CN110729006B (zh) 存储器控制器中的刷新方案
Zheng et al. Decoupled DIMM: building high-bandwidth memory system using low-speed DRAM devices
US20210073152A1 (en) Dynamic page state aware scheduling of read/write burst transactions
US20190065243A1 (en) Dynamic memory power capping with criticality awareness
CN105068940B (zh) 一种基于Bank划分的自适应页策略确定方法
US8412870B2 (en) Optimized arbiter using multi-level arbitration
Li et al. A performance & power comparison of modern high-speed dram architectures
EP2686774B1 (en) Memory interface
Fang et al. Memory architecture for integrating emerging memory technologies
Guo et al. A requests bundling DRAM controller for mixed-criticality systems
Xie et al. Page policy control with memory partitioning for DRAM performance and power efficiency
Zhang et al. Heterogeneous multi-channel: Fine-grained dram control for both system performance and power efficiency
Li et al. Architecture and analysis of a dynamically-scheduled real-time memory controller
Usui et al. Squash: Simple qos-aware high-performance memory scheduler for heterogeneous systems with hardware accelerators
Ausavarungnirun Techniques for shared resource management in systems with throughput processors
Subramanian et al. Predictable performance and fairness through accurate slowdown estimation in shared main memory systems
Chen et al. MIMS: Towards a message interface based memory system
Fang et al. Thread-fair memory request reordering

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150819

Termination date: 20200110

CF01 Termination of patent right due to non-payment of annual fee