当前位置: 首页 > 专利查询>清华大学专利>正文

多核间内存调度方法技术

技术编号:7473747 阅读:257 留言:0更新日期:2012-07-03 04:38
本发明专利技术涉及计算机及电子信息技术领域,公开了一种多核间内存调度方法,包括以下步骤:S1:获取来自多核的内存访问请求,在所述内存访问请求上贴上标签,然后将贴上标签的所述内存访问请求放置在缓冲区队列中;S2:从已经就绪的所述缓冲区队列中按照公平调度方法选择一个内存访问请求予以执行;S3:从bank缓冲区中选择等待时间最长的内存访问请求,将其提交至channel缓冲区;S4:从channel缓冲区中选择步骤S3中从bank缓冲区选中的请求的数据并提交至高速缓冲存储器cache中,并从cache中换出最长时间未被访问的行,并通知CPU获取所述数据。本发明专利技术能够解决多核间内存公平调度问题。

【技术实现步骤摘要】

本专利技术涉及计算机及电子信息
,特别涉及一种。技术背景近年来,计算机的发展已进入多核时代,CPU的多核技术得到了大力发展,在共享内存的多核体系结构中,多个处理器需要访问同一部分系统内存,因此内存调度的重要性日益明显,逐渐成为国内外的研究热点。在当前的多核体系结构中,仍然采用共享内存的形式,在计算机程序执行过程中, 需要访问内存,此时即会向内存控制器发出内存访问请求,内存控制器接收访问请求,通过控制内存内部的row、rank, bank、channel等缓冲区实现内存调度。在共享内存的计算机系统中,内存需要为多核处理器提供公平的服务。人们也希望通过设计较好的内存体系结构来解决处理器和内存之间的发展速率差,因此出现了各种内存调度方法,但是总体上,内存调度方法均主要立足于提高系统的吞吐率。在很多情况下,调度方法需要为应用程序提供较高的吞吐率,但是还需要保证提供QoS (Quality of krvice,服务质量),多核内存调度领域中,同样引人了公平性思想,但是方法大都基于请求来考虑。
技术实现思路
(一 )要解决的技术问题本专利技术所要解决的技术问题是如何解决多核间内存公平调度问题。( 二 )技术方案为解决上述技术问题,本专利技术提供了一种,包括以下步骤Sl 获取来自多核的内存访问请求,在所述内存访问请求上贴上标签,然后将贴上标签的所述内存访问请求放置在缓冲区队列中;S2:从已经就绪的所述缓冲区队列中按照公平调度方法选择一个内存访问请求予以执行;S3 从bank缓冲区中选择最长等待时间的内存访问请求,将其提交至channel缓冲区;S4 从channel缓冲区中选择步骤S3中从bank缓冲区选中的请求的数据提交至高速缓冲存储器cache中,并从cache中换出最长时间未被访问的行,并通知CPU获取所述数据。优选地,所述步骤Sl中,所述标签包括进入时刻、进程ID、CPU标签和读标记。优选地,所述步骤S2具体包括S21 若存在优先级不等的内存访问请求,则选择优先级最高的请求予以执行,并转至步骤S24,否则继续执行步骤S22 ;S22:计算各个内存访问请求的公平指标,若存在公平指标超出预设的公平容忍区间的内存访问请求则选中并执行,并转至步骤S24,否则继续执行步骤S23 ;S23 从所述缓冲区队列的访问点之后,找到数据已经在高速缓冲存储器cache的行缓冲区的内存访问请求并执行;S24 若cache没有空闲,则选择最长时间未被访问的行进行替换;访问完毕后将内存访问请求提交至bank缓冲区。优选地,步骤S22中所述公平指标为内存访问请求的等待时间和访问时间比值。优选地,S23若不存在数据已经在高速缓冲存储器cache的行缓冲区的内存访问请求,则按照就绪队列中先来先服务FCFS的策略选择一个内存访问请求予以执行。优选地,步骤Sl之前包括以下步骤A. CPU发出读取数据请求,通过内存管理单元计算得到内存访问请求的物理地址;B.判断所述物理地址对应的数据是否被cache命中,若命中则结束,否则继续执行步骤Si。(三)有益效果本专利技术能够为多核处理器提供公平的内存服务,在内存访问请求较少时,按照先来先服务方法运行,整个系统延迟均较小,当访问请求较多时,系统通过公平策略均衡各个请求的等待时间,防止个别请求出现过长的等待,同时还兼顾了优先级调度。附图说明图1是本专利技术的方法流程图。具体实施方式下面对于本专利技术所提出的一种,结合附图和实施例详细说明。公知地,内存的体系结构主体上包括内存row、bank、rank、channel,一个内存访问请求需要从row至channel依次访问。调度方法主要工作在于综合调度,然后将要执行的内存访问请求交由bank调度器对应执行,bank缓冲区执行完毕后由channel缓冲区完成最终的数据传输,其中,cache 指高速缓冲存储器。值得说明的是,本专利技术的设计仍基于传统的DDR2控制器,只是在请求进入内存控制器时,增加了一个贴标签操作,将请求的入队时间予以记录下来。作为公平调度,最为关心各个请求的平均等待时间,因此在进入队列时被添加的时序标签是调度方法能够完成公平调度的基础,同样,期待在保证公平性的条件下,内存的吞吐率尽量高。如图1所示,本专利技术实施例的对多核间内存调度的详细流程如下A.CPU发出读取数据请求,通过MMU(内存管理单元)计算得到访问请求的物理地址;B.判断物理地址对应的数据是否被cache命中,若命中则直接返回;C.获取来自多核的内存访问请求,在所述内存访问请求上贴上进入时刻、进程 ID、CPU标签和读标记标签,然后将贴上标签的所述内存访问请求放置在缓冲区队列中;D.若存在优先级不等的请求,从已经就绪的缓冲区队列选择优先级最高的请求予以执行,转至步骤G ;否则继续执行步骤E ;E.计算各个请求的公平指标(请求的等待时间和访问时间的比值),若存在公平指标超出设定的公平容忍区间的请求则选中予以执行,转至步骤G,否则继续执行步骤F;F.从队列访问点之后(若抵达队尾则转至队头),选中一个数据已经存在于行缓冲区中的访问请求,更新队列访问点;G.若cache没有空闲,则选中最长时间未被访问的行予以替换;访问完毕后将请求提交至bank缓冲区;H.从bank缓冲区中选择最长等待时间的请求,将其提交至channel缓冲区;I.从channel缓冲区中选择步骤H中从bank缓冲区选中请求的数据提交至cache 中,并从cache中换出最长时间未被访问的行,并通知CPU获取所述数据,若存在其它未执行的访问请求则转至步骤C。从上面的实施例中给出了一个访问请求的工作流程,需要注意的是每步针对的访问请求并不一定是同一个,并且在综合调度时会考虑bank缓冲区和channel缓冲区的承受能力,因此在bank缓冲区和channel缓冲区并没有对缓冲区队列做出规范,而是默认不会溢出。对于调度方法,若行缓冲区较大,则还存在较为关键的一项决策,即替换问题,需要选择一行用于新的内存请求换入。从以前的研究情况来看,LRU(最长时间未被使用算法,或称最近最少使用算法)在换出方面具有较好的性能,因此在本专利技术的方法中,选取替换最长时间未被使用的行。实际上,对于内存的读写请求均可以按照上述流程,只是写回数据请求在缓冲区中会标记为写请求,建立传送通道后,将会把cache中的数据写回至行缓冲区,然后再由 bank调度器将行缓冲区中的数据写回至内存的对应地址中。在本实施例中,对于虚拟内存并没有提及,实际上,虚拟内存的访问需要在步骤A 产生缺页中断,然后操作系统会将该页读入到内存中,之后流程和实施例中描述一致。以上实施方式仅用于说明本专利技术,而并非对本专利技术的限制,有关
的普通技术人员,在不脱离本专利技术的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本专利技术的范畴,本专利技术的专利保护范围应由权利要求限定。权利要求1.一种,其特征在于,包括以下步骤Sl 获取来自多核的内存访问请求,在所述内存访问请求上贴上标签,然后将贴上标签的所述内存访问请求放置在缓冲区队列中;S2:从已经就绪的所述缓冲区队列中按照公平调度方法选择一个内存访问请求予以执行;53从bank缓冲区中选择最长等待时间的内存访问请求,将其提交至channe本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王瑀屏刘虎球赵鹏
申请(专利权)人:清华大学
类型:发明
国别省市:

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

1
相关领域技术