[发明专利]基于公平性考虑的短作业优先内存请求调度方法有效
申请号: | 201210005511.3 | 申请日: | 2012-01-10 |
公开(公告)号: | CN102609312A | 公开(公告)日: | 2012-07-25 |
发明(设计)人: | 吴俊敏;金瑛棋;蒋楠;赵小雨 | 申请(专利权)人: | 中国科学技术大学苏州研究院 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 范晴 |
地址: | 215123 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 公平性 考虑 作业 优先 内存 请求 调度 方法 | ||
技术领域
本发明属于信息处理系统的多核处理器内存控制器请求调度技术领域,具体涉及一种考虑各线程访存公平性、平均等待时间最短并且维护线程本身固有并行性的策略。
背景技术
半导体集成电路的发展符合摩尔定律,即每隔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几项,当然在更加复杂的情况下,存在多内存控制器的情况下,还会分解成Channel Id。每一次的内存访问首先通过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。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学苏州研究院,未经中国科学技术大学苏州研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210005511.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种具有导流塔的汽车排气管
- 下一篇:秸秆排水体