CN115357377A - 内存控制调度方法、装置、计算机设备及存储介质 - Google Patents
内存控制调度方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115357377A CN115357377A CN202210879337.9A CN202210879337A CN115357377A CN 115357377 A CN115357377 A CN 115357377A CN 202210879337 A CN202210879337 A CN 202210879337A CN 115357377 A CN115357377 A CN 115357377A
- Authority
- CN
- China
- Prior art keywords
- access request
- priority
- memory access
- memory
- request queue
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004590 computer program Methods 0.000 claims description 21
- 238000010586 diagram Methods 0.000 description 16
- 239000002699 waste material Substances 0.000 description 11
- 240000007320 Pinus strobus Species 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 239000008187 granular material Substances 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 239000008358 core component Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本申请实施例中公开了一种内存控制调度方法,该方法包括:获取与多个访存请求一一对应的多个优先级信息;基于所述多个优先级信息,对所述多个访存请求进行分类,得到优先级不同的多个访存请求队列;按优先级顺序执行所述多个访存请求队列中的访存请求。本申请实施例中同时公开了一种内存控制调度装置、计算机设备及存储介质。
Description
技术领域
本申请涉及内存控制技术领域,具体地,涉及一种内存控制调度方法、装置、计算机设备和存储介质。
背景技术
一般而言,访存调度单元是影响内存控制器性能的核心部件。该单元将一维系统地址信息翻译为SDRAM的三维地址,并将访存请求按照调度策略进行Reorder(重排序)操作,以达到行命中率和Bank级并行度的最大化。同时,访存调度单元还需要合理地处理读写访存请求的分配,以减少读写切换带来的带宽损失。
针对上述问题,本领域相关技术一般采用的方法是在内存控制器中加入顺序调度的策略,这就导致访问效率极差,很难满足高性能微处理器的性能需求;或是在内存控制器中加入轮询调度的策略,在读写操作之间进行简单的轮询调度,能在一定程度上缓解时序造成的带宽浪费,但内存访问效率依然不高;又或是在内存控制器中加入乱序调度的策略,对所有操作进行乱序调度,如此,不仅优化了时序造成的带宽浪费,而且还能减少读写换行的频率,可以进一步优化内存的访问效率,但会增加读写操作的延迟,在运行一些对读操作延迟比较敏感的应用时,会对其性能造成影响。
发明内容
本申请实施例中提供了一种内存控制调度方法、装置、计算机设备和存储介质。
本申请实施例的第一个方面,提供了一种内存控制调度方法,所述方法包括:
获取与多个访存请求一一对应的多个优先级信息;
基于所述多个优先级信息,对所述多个访存请求进行分类,得到优先级不同的多个访存请求队列;
按优先级顺序执行所述多个访存请求队列中的访存请求。
在本申请一个可选的实施例中,基于所述多个优先级信息,对所述多个访存请求进行分类,得到优先级不同的多个访存请求队列,包括:
将所述多个优先级信息中,优先级信息满足第一预设条件的访问请求确定为第一优先级访存请求队列,优先级信息满足第二预设条件的访问请求确定为第二优先级访存请求队列,得到优先级不同的多个访存请求队列。
在本申请一个可选的实施例中,所述第一预设条件包括:优先级信息对应的访存请求占用内存的百分比大于百分比阈值;所述第二预设条件包括:优先级信息对应的访存请求占用内存的百分比小于所述百分比阈值。
在本申请一个可选的实施例中,所述第一预设条件包括:优先级信息对应的访存请求受延迟影响的百分比大于百分比阈值;所述第二预设条件包括:优先级信息对应的访存请求受延迟影响的百分比小于所述百分比阈值。
在本申请一个可选的实施例中,按优先级顺序执行所述多个访存请求队列中的访存请求,包括:
执行所述第一优先级访存请求队列中的访存请求,直至所述第一优先级访存请求队列为空时,再执行所述第二优先级访存请求队列中的访存请求。
在本申请一个可选的实施例中,所述方法还包括:
获取执行所述第一优先级访存请求队列中的访存请求的第一有效次数,以及执行所述第二优先级访存请求队列中的访存请求的第二有效次数;
若所述第一有效次数超过次数阈值,且所述第一优先级访存请求队列不为空时,则暂停执行所述第一优先级访存请求队列中的访存请求,转换为执行所述第二优先级访存请求队列中的访存请求,直至所述第二优先级访存请求队列为空,或所述第二有效次数超过所述次数阈值。
在本申请一个可选的实施例中,所述方法还包括:
获取所述第一优先级访存请求队列中的访存请求执行失败的第一失效时间,以及所述第二优先级访存请求队列中的访存请求执行失败的第二有效时间;
若所述第一失效时间超过时间阈值,且所述第一优先级访存请求队列不为空时,则暂停执行所述第一优先级访存请求队列中的访存请求,转换为执行所述第二优先级访存请求队列中的访存请求,直至所述第二优先级访存请求队列为空,或所述第二失效时间超过所述时间阈值。
本申请实施例的第二个方面,提供了一种内存控制调度装置,该装置包括:获取模块、分类模块和执行模块;其中,
所述获取模块,用于获取与多个访存请求一一对应的多个优先级信息;
所述分类模块,用于基于所述多个优先级信息,对所述多个访存请求进行分类,得到优先级不同的多个访存请求队列;
所述执行模块,用于按优先级顺序执行所述多个访存请求队列中的访存请求。
本申请实施例的第三个方面,提供了一种计算机设备,包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上任一项方法的步骤。
本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一项的方法的步骤。
本申请实施例提供的内存控制调度方法,通过获取与多个访存请求一一对应的多个优先级信息;基于多个优先级信息,对多个访存请求进行分类,得到优先级不同的多个访存请求队列;按优先级顺序执行多个访存请求队列中的访存请求。如此,可以通过对访存请求的优先级进行划分,优先执行高优先级访存请求,可以减缓乱序调度策略产生的读延迟,降低乱序调度过程中读延迟的影响。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一个实施例提供内存控制调度方法中内存控制器的结构示意图;
图2为本申请一个实施例提供的内存控制调度方法中访存调度单元进行重排序的流程示意图;
图3为本申请一个实施例提供的内存控制调度方法中读操作的原理示意图;
图4为本申请一个实施例提供的内存控制调度方法中行选通到读写操作的间隔的时序图;
图5为本申请一个实施例提供的内存控制调度方法中预充电到行选通的间隔的时序图;
图6为本申请一个实施例提供的内存控制调度方法中写操作完成后到预充电的隔间的时序图;
图7为本申请一个实施例提供的内存控制调度方法中写操作到读操作的间隔的时序图;
图8为本申请一个实施例提供的内存控制调度方法中读操作到写操作的间隔的时序图;
图9为本申请一个实施例提供的内存控制调度方法的流程示意图;
图10为本申请一个实施例提供的内存控制调度方法中的架构示意图;
图11为本申请一个实施例提供的内存控制调度方法中优先级切换的流程示意图;
图12为本申请一个实施例提供的内存控制调度装置的结构示意图;
图13为本申请一个实施例提供的计算机设备结构示意图。
具体实施方式
在实现本申请的过程中,发明人发现,目前高性能微处理器的内存控制器主要由五个单元构成,如图1所示:
1、流缓存单元。流缓存单元的主要作用就是进行预取操作,用于监测已执行的访存请求,判断是否存在数据流的读取操作行为,然后以Cache(缓存)行作为单位对数据流的读操作行为进行预取操作,并存储预取到的读数据流。
2、访存调度单元。用于对访存请求进行重排序,并将一维的系统地址信息转换为DDR颗粒可识别的地址。
3、时序控制单元。用于将访存请求的相关操作按照时序规范进行处理之后,将具有正确时序的访存请求及其数据发送给物理控制单元。相应地,从物理控制单元读取命令和数据。
4、物理控制单元。用于确保发送给内存芯片的命令和数据的正确性,同时也将从内存颗粒读取到的数据发送给时序控制单元。
5、配置控制单元。SDRAM的时序参数多数是可调的,通过可配置的参数来保证内存控制器的兼容性。
一般而言,访存调度单元是影响内存控制器性能的核心部件。该单元将一维系统地址信息翻译为SDRAM的三维地址,并将访存请求按照调度策略进行Reorder(重排序)操作,以达到行命中率和Bank级并行度的最大化。同时,访存调度单元还需要合理地处理读写访存请求的分配,以减少读写切换带来的带宽损失。
如图2所示,访存请求在访存调度单元中经过以下三个步骤来完成重排序:
步骤201、进行地址映射处理,获得内存颗粒可识别的地址信息。
步骤202、根据读写访存请求的类型,将访存请求分别放入各自的命令队列中,在队列中进行分类。
步骤203、对访存请求进行读写裁决,并发送给时序控制单元。
除了传递访存请求和相应的数据之外,访存调度单元还需要对访存请求发出者进行请求反馈。只有接收到对应的反馈信息,处理器核才会认为该访存请求已经完成。对写访存请求而言,是向访存请求者发出写响应信息。读访存请求则是将读数据与其命令信息匹配后,一并发送给访存请求发出者。
但由于JEDEC协议对内存颗粒的映射转换做了严格的限制,这就导致在访问内存颗粒的时候,读写命令之间需要插入行选通和预充电命令,导致读写操作不连续,从而造成了一定的带宽损失,如图3所示,内存颗粒在完成初始化后首先会进入空闲的状态,如果需要对存储单位的某一行执行正常的读写操作,则需要根据读写访问的地址信息,先发送行选通命令,对访问的存储单元所在的行进行行激活,然后才能发送读写命令进行相应的读写操作。
当下一次读写访问的存储单位在另外一行的时候,则需要先发送预充电命令完成初始化,将之前激活的那一行关闭,然后再发送行选通命令,对当前访问的行进行行激活,最后才能进行相关的读写操作。所以在读写操作访问的地址空间需要频繁地换行时,就导致读写操作的不连续,从而造成内存访问带宽的浪费。
同时,DDR4 JEDEC协议还对内存颗粒的时序做了严格的限制,不同的命令之间会因为这些时序要求而产生大量的时间间隔,这也会导致内存访问带宽的浪费,具体的时序要求如表1所示。
下面结合表1和图4至图8对时序要求引起的带宽浪费进行说明。
如图4所示,读写操作访问的地址空间换行的时候,需要对新行发送行选通命令,行选通到读写操作的间隔(tRCD)会造成带宽浪费;
如图5所示,读写操作访问的地址空间换行的时候,需要对旧行发送预充电命令以关闭旧行,预充电到行选通的间隔(tRP)会造成带宽浪费;
如图6所示,写操作访问的地址空间换行的时候,需要对旧行发送预充电命令,写操作完成后到预充电的隔间(tWR)会造成带宽浪费;
如图7所示,从写操作切换到读操作时,写操作到读操作的间隔(tWTR)会造成带宽浪费;
如图8所示,从读操作切换到写操作时,读操作到写操作的间隔RL+tCCD+2*tCK-WL会造成带宽浪费。
参数 | 描述 |
CL | 读延迟 |
CWL | 写延迟 |
tRCD | 行选通到读或者写操作的间隔 |
tRP | 预充电的周期 |
tRAS | 行选通到预充电的间隔 |
tRC | 同一个Bank,行选通之间的间隔 |
tRRD_S | 不同的Bank group,行选通之间的间隔 |
tRRD_L | 相同的Bank group,行选通之间的间隔 |
tFAW | 连续4个行选通的窗口 |
tWR | 写恢复的周期 |
tWTR | 写操作到读操作的间隔 |
tCCD_S | 不同的Bank group,读操作或者写操作之间的间隔 |
tCCD_L | 相同的Bank group,读操作或者写操作之间的间隔 |
tRFC | 刷新的周期 |
NOP | 空命令 |
PRE | 预充电 |
表1
针对上述问题,本领域相关技术一般采用的方法是在内存控制器中加入顺序调度的策略,这就导致访问效率极差,很难满足高性能微处理器的性能需求;或是在内存控制器中加入轮询调度的策略,在读写操作之间进行简单的轮询调度,能在一定程度上缓解tWTR等时序造成的带宽浪费,但内存访问效率依然不高;又或是在内存控制器中加入乱序调度的策略,对所有操作进行乱序调度,如此,不仅优化了tWTR等时序造成的带宽浪费,而且还能减少读写换行的频率,可以进一步优化内存的访问效率,但会增加读写操作的延迟,在运行一些对读操作延迟比较敏感的应用时,会对其性能造成影响。
针对上述问题,本申请实施例中提供了一种内存控制调度方法,如图9所示,用以解决现有技术中存在的问题,该方法可以包括以下步骤:
步骤901、获取与多个访存请求一一对应的多个优先级信息;
步骤902、基于多个优先级信息,对多个访存请求进行分类,得到优先级不同的多个访存请求队列;
这里,内存控制器会在对访存请求进行预取操作时,监测待执行的访存请求,判断访存请求对处理器的性能影响的大小,根据影响的大小确定出每个访存请求的优先级信息,然后以Cache(缓存)行为单位对数据流进行分类,确定出优先级不同的访存请求队列。
需要说明的是,这里的优先级信息可以是访存请求受延迟影响的百分比大小,也可以是程序开发人员自定义的优先级信息。例如也可以根据操作指令占用内存大小来确定访存请求的优先级。本申请对优先级的划分规则不作具体限定。
步骤903、按优先级顺序执行多个访存请求队列中的访存请求。
这里,在确定了每个访存请求对应的优先级以后,会根据优先级大小,按优先级从高到低的顺序执行访存请求队列中的访存请求。如此,通过对访存请求的优先级进行划分,优先执行高优先级访存请求,可以减缓乱序调度策略产生的读延迟,降低乱序调度过程中的读延迟。
具体地,如图10所示,内存控制器会在对访存请求进行预取操作时,监测待执行的访存请求,判断访存请求对处理器的性能影响的大小,根据影响的大小确定出每个访存请求的优先级信息,然后以Cache(缓存)行为单位对数据流进行分类,确定出访存请求受延迟影响的百分比大小,然后按照优先级将访存请求分为高优先级访存请求队列和低优先级访存请求队列,将高优先级访存请求存入高优先级缓存,低优先级访存请求存入低优先级缓存,确定出不同的优先级队列。在确定了每个访存请求对应的优先级以后,会根据优先级大小,按优先级从高到低的顺序执行访存请求队列中的访存请求。如此,通过对访存请求的优先级进行划分,优先执行高优先级访存请求,可以减缓乱序调度策略产生的读延迟,降低乱序调度过程中读延迟的影响。
在本申请一个可选实施例中,步骤902中基于多个优先级信息,对多个访存请求进行分类,得到优先级不同的多个访存请求队列,具体可以包括:
步骤9021、将多个优先级信息中,优先级信息满足第一预设条件的访问请求确定为第一优先级访存请求队列,优先级信息满足第二预设条件的访问请求确定为第二优先级访存请求队列,得到优先级不同的多个访存请求队列。
这里,在确定了每个访存请求对应的优先级信息后,将优先级信息满足第一预设条件的访问请求确定为第一优先级访存请求队列,优先级信息满足第二预设条件的访问请求确定为第二优先级访存请求队列,得到优先级不同的多个访存请求队列。
这里的第一优先级访存请求队列可以是高优先级访存请求队列,第一预设条件可以是,优先级对应的访存请求受延迟影响的百分比大于某一特定值,也可以是优先级信息对应的访存请求占用内存的百分比大于内存百分比阈值,将满足第一预设条件的访存请求确定为高优先级。
这里的第二优先级访存请求队列可以是低优先级访存请求队列,第二预设条件可以是,优先级对应的访存请求受延迟影响的百分比大于某一特定值,也可以是优先级对应的访存请求占用内存的百分比小于内存百分比阈值,将满足第一预设条件的访存请求确定为高优先级。如此,通过设置不同的优先级,可以科学地将优先级不同的访存请求进行分类,根据需要优先执行高优先级的访存请求,减缓了乱序调度对读延迟的影响,提高请求执行的效率。
在本申请一个可选实施例中,第一预设条件包括:优先级信息对应的访存请求占用内存的百分比大于内存百分比阈值;第二预设条件包括:优先级信息对应的访存请求占用内存的百分比小于内存百分比阈值。
在本申请一个可选实施例中,第一预设条件包括:优先级信息对应的访存请求受延迟影响的百分比大于延迟百分比阈值;第二预设条件包括:优先级信息对应的访存请求受延迟影响的百分比小于延迟百分比阈值。
这里的第一优先级访存请求队列可以是高优先级访存请求队列,第一预设条件可以是,优先级对应的访存请求受延迟影响的百分比大于某一特定值,也可以是优先级信息对应的访存请求占用内存的百分比大于内存百分比阈值,将满足第一预设条件的访存请求确定为高优先级。
这里的第二优先级访存请求队列可以是低优先级访存请求队列,第二预设条件可以是,优先级对应的访存请求受延迟影响的百分比大于某一特定值,也可以是优先级对应的访存请求占用内存的百分比小于百分比阈值,将满足第一预设条件的访存请求确定为高优先级。如此,通过设置不同的优先级,可以科学地将优先级不同的访存请求进行分类,根据需要优先执行高优先级的访存请求,减缓了乱序调度对读延迟的影响,提高请求执行的效率。
在本申请一个可选实施例中,步骤903中按优先级顺序执行多个访存请求队列中的访存请求,可以包括:
步骤9031、执行第一优先级访存请求队列中的访存请求,直至第一优先级访存请求队列为空时,再执行第二优先级访存请求队列中的访存请求。
这里,在执行存请求队列中的访存请求时,优先执行第一优先级访存请求队列中的访存请求,直至第一优先级访存请求队列为空时,再执行第二优先级访存请求队列中的访存请求。如此,可以保证内存控制器优先执行受延迟影响的访存请求和占用内存较多的访存请求,可以有效地平衡乱序调度策略对内存访问效率和内存访问延迟的影响。
在本申请一个可选实施例中,该方法还可以包括:
步骤904、获取执行第一优先级访存请求队列中的访存请求的第一有效次数,以及执行第二优先级访存请求队列中的访存请求的第二有效次数;
步骤905、若第一有效次数超过次数阈值,且第一优先级访存请求队列不为空时,则暂停执行第一优先级访存请求队列中的访存请求,转换为执行第二优先级访存请求队列中的访存请求,直至第二优先级访存请求队列为空,或第二有效次数超过所述次数阈值。
在本申请一个可选实施例中,该方法还可以包括:
步骤906、获取第一优先级访存请求队列中的访存请求执行失败的第一失效时间,以及第二优先级访存请求队列中的访存请求执行失败的第二有效时间;
步骤907、若第一失效时间超过时间阈值,且第一优先级访存请求队列不为空时,则暂停执行第一优先级访存请求队列中的访存请求,转换为执行第二优先级访存请求队列中的访存请求,直至第二优先级访存请求队列为空,或第二失效时间超过所述时间阈值。
这里,参见图11,在根据优先级控制执行访存请求队列中的访存请求时,会出现卡死的现象,例如,系统在执行高优先级访存请求的次数过多,导致低优先级访存请求积压,增加了访存延迟;又或是系统在执行高优先级访存请求队列中的某一访存请求的时间过长,导致系统停滞卡死。因此,本申请实施例通过设置次数门限值和时间门限值,解决了系统卡死时,及时切换至低优先级的访存请求,保证系统能够高效地正常运作。
这里,通过流缓存单元中设置的全局状态控制器分别对高优先级读,低优先级读和写操作的调度情况进行记录,并根据限制调度连续未命中的次数对调度结果进行调整,其状态转换图11所示。结合图11,可见,当某种类型的操作,比如写操作,连续未命中的时间超过配置的时间门限,则写操作的状态控制会从正常状态跳转到紧急状态,全局状态控制器会立刻响应写操作的紧急状态,将写操作放在调度的最高优先级进行,这时全局状态控制器会连续命中写操作,当写操作连续命中的次数超过设定的次数门限或者写操作的缓存为空状态,则写操作的状态控制会从紧急状态跳转回正常状态,全局状态控制器将写操作的优先级恢复至正常优先级。
在DDR内存控制器的调度策略中加入优先级控制的方法,通过优先级来控制调度的权重比,从而优化乱序调度导致的读写延迟增大的问题。
本申请实施例提供的内存控制调度方法,通过获取与多个访存请求一一对应的多个优先级信息;基于多个优先级信息,对多个访存请求进行分类,得到优先级不同的多个访存请求队列;按优先级顺序执行多个访存请求队列中的访存请求。如此,可以通过对访存请求的优先级进行划分,优先执行高优先级访存请求,可以减缓乱序调度策略产生的读延迟,降低乱序调度过程中读延迟的影响;在内存控制器的调度策略中加入门限控制的方法,通过动态设置的门限值来控制调度的结果,从而可以动态的调整内存访问效率和内存访问延迟的影响。
本申请一个实施例提供了一种内存控制调度装置,请参见图12,该装置1200包括:获取模块1201、分类模块1202和执行模块1203;其中,
所述获取模块1201,用于获取与多个访存请求一一对应的多个优先级信息;
所述分类模块1202,用于基于所述多个优先级信息,对所述多个访存请求进行分类,得到优先级不同的多个访存请求队列;
所述执行模块1203,用于按优先级顺序执行所述多个访存请求队列中的访存请求。
在本申请一个可选实施例中,所述分类模块1202,具体用于将所述多个优先级信息中,优先级信息满足第一预设条件的访问请求确定为第一优先级访存请求队列,优先级信息满足第二预设条件的访问请求确定为第二优先级访存请求队列,得到优先级不同的多个访存请求队列。
在本申请一个可选实施例中,所述执行模块1203,具体用于执行所述第一优先级访存请求队列中的访存请求,直至所述第一优先级访存请求队列为空时,再执行所述第二优先级访存请求队列中的访存请求。
在本申请一个可选实施例中,该装置1200还可以包括:第一获取模块1204和第一转换模块1205,其中,
第一获取模块1204,用于获取执行所述第一优先级访存请求队列中的访存请求的第一有效次数,以及执行所述第二优先级访存请求队列中的访存请求的第二有效次数;
第一转换模块1205,用于若所述第一有效次数超过次数阈值,且所述第一优先级访存请求队列不为空时,则暂停执行所述第一优先级访存请求队列中的访存请求,转换为执行所述第二优先级访存请求队列中的访存请求,直至所述第二优先级访存请求队列为空,或所述第二有效次数超过所述次数阈值。
在本申请一个可选实施例中,该装置1200还可以包括:第二获取模块1206和第二转换模块1207,其中,
第二获取模块1204,用于获取所述第一优先级访存请求队列中的访存请求执行失败的第一失效时间,以及所述第二优先级访存请求队列中的访存请求执行失败的第二有效时间;
第二转换模块1205,用于若所述第一失效时间超过时间阈值,且所述第一优先级访存请求队列不为空时,则暂停执行所述第一优先级访存请求队列中的访存请求,转换为执行所述第二优先级访存请求队列中的访存请求,直至所述第二优先级访存请求队列为空,或所述第二失效时间超过所述时间阈值。
关于上述内存控制调度装置的具体限定可以参见上文中内存控制调度方法的限定,在此不再赘述。上述内存控制调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种内存控制调度方法。包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上车辆控制方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上车辆控制方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种内存控制调度方法,其特征在于,所述方法包括:
获取与多个访存请求一一对应的多个优先级信息;
基于所述多个优先级信息,对所述多个访存请求进行分类,得到优先级不同的多个访存请求队列;
按优先级顺序执行所述多个访存请求队列中的访存请求。
2.根据权利要求1所述的方法,其特征在于,基于所述多个优先级信息,对所述多个访存请求进行分类,得到优先级不同的多个访存请求队列,包括:
将所述多个优先级信息中,优先级信息满足第一预设条件的访问请求确定为第一优先级访存请求队列,优先级信息满足第二预设条件的访问请求确定为第二优先级访存请求队列,得到优先级不同的多个访存请求队列。
3.根据权利要求2所述的方法,其特征在于,所述第一预设条件包括:优先级信息对应的访存请求占用内存的百分比大于内存百分比阈值;所述第二预设条件包括:优先级信息对应的访存请求占用内存的百分比小于所述内存百分比阈值。
4.根据权利要求2所述的方法,其特征在于,所述第一预设条件包括:优先级信息对应的访存请求受延迟影响的百分比大于延迟百分比阈值;所述第二预设条件包括:优先级信息对应的访存请求受延迟影响的百分比小于所述延迟百分比阈值。
5.根据权利要求1-4中任一项所述的方法,其特征在于,按优先级顺序执行所述多个访存请求队列中的访存请求,包括:
执行所述第一优先级访存请求队列中的访存请求,直至所述第一优先级访存请求队列为空时,再执行所述第二优先级访存请求队列中的访存请求。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
获取执行所述第一优先级访存请求队列中的访存请求的第一有效次数,以及执行所述第二优先级访存请求队列中的访存请求的第二有效次数;
若所述第一有效次数超过次数阈值,且所述第一优先级访存请求队列不为空时,则暂停执行所述第一优先级访存请求队列中的访存请求,转换为执行所述第二优先级访存请求队列中的访存请求,直至所述第二优先级访存请求队列为空,或所述第二有效次数超过所述次数阈值。
7.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
获取所述第一优先级访存请求队列中的访存请求执行失败的第一失效时间,以及所述第二优先级访存请求队列中的访存请求执行失败的第二有效时间;
若所述第一失效时间超过时间阈值,且所述第一优先级访存请求队列不为空时,则暂停执行所述第一优先级访存请求队列中的访存请求,转换为执行所述第二优先级访存请求队列中的访存请求,直至所述第二优先级访存请求队列为空,或所述第二失效时间超过所述时间阈值。
8.一种内存控制调度装置,其特征在于,所述装置包括:获取模块、分类模块和执行模块;其中,
所述获取模块,用于获取与多个访存请求一一对应的多个优先级信息;
所述分类模块,用于基于所述多个优先级信息,对所述多个访存请求进行分类,得到优先级不同的多个访存请求队列;
所述执行模块,用于按优先级顺序执行所述多个访存请求队列中的访存请求。
9.一种计算机设备,包括:包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210879337.9A CN115357377A (zh) | 2022-07-25 | 2022-07-25 | 内存控制调度方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210879337.9A CN115357377A (zh) | 2022-07-25 | 2022-07-25 | 内存控制调度方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115357377A true CN115357377A (zh) | 2022-11-18 |
Family
ID=84032087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210879337.9A Pending CN115357377A (zh) | 2022-07-25 | 2022-07-25 | 内存控制调度方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357377A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302105A (zh) * | 2023-03-17 | 2023-06-23 | 平头哥(上海)半导体技术有限公司 | 访问指令调度方法、系统、硬盘及控制器、存储介质和程序产品 |
CN117312199A (zh) * | 2023-11-30 | 2023-12-29 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
CN117971501A (zh) * | 2024-03-28 | 2024-05-03 | 北京壁仞科技开发有限公司 | 一种数据访问方法、设备、存储介质及程序产品 |
CN118567869A (zh) * | 2024-08-01 | 2024-08-30 | 芯方舟(上海)集成电路有限公司 | 内存访问方法及装置 |
-
2022
- 2022-07-25 CN CN202210879337.9A patent/CN115357377A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302105A (zh) * | 2023-03-17 | 2023-06-23 | 平头哥(上海)半导体技术有限公司 | 访问指令调度方法、系统、硬盘及控制器、存储介质和程序产品 |
CN116302105B (zh) * | 2023-03-17 | 2024-03-12 | 平头哥(上海)半导体技术有限公司 | 访问指令调度方法、系统、硬盘及控制器、存储介质和程序产品 |
CN117312199A (zh) * | 2023-11-30 | 2023-12-29 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
CN117312199B (zh) * | 2023-11-30 | 2024-03-08 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
CN117971501A (zh) * | 2024-03-28 | 2024-05-03 | 北京壁仞科技开发有限公司 | 一种数据访问方法、设备、存储介质及程序产品 |
CN118567869A (zh) * | 2024-08-01 | 2024-08-30 | 芯方舟(上海)集成电路有限公司 | 内存访问方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115357377A (zh) | 内存控制调度方法、装置、计算机设备及存储介质 | |
KR101270848B1 (ko) | 트래픽 클래스들과 관련된 포트들을 갖는 다중 포트 메모리 제어기 | |
US7536530B2 (en) | Method and apparatus for determining a dynamic random access memory page management implementation | |
EP3729280B1 (en) | Dynamic per-bank and all-bank refresh | |
US20130054901A1 (en) | Proportional memory operation throttling | |
US8909874B2 (en) | Memory reorder queue biasing preceding high latency operations | |
US6792516B2 (en) | Memory arbiter with intelligent page gathering logic | |
US6088772A (en) | Method and apparatus for improving system performance when reordering commands | |
US10114560B2 (en) | Hybrid memory controller with command buffer for arbitrating access to volatile and non-volatile memories in a hybrid memory group | |
US8631213B2 (en) | Dynamic QoS upgrading | |
CN109801659B (zh) | Dram内存库激活管理 | |
CN107274926B (zh) | 具有自适应预充电策略的dram控制器 | |
CN101271435B (zh) | 一种访问外部存储器的方法 | |
US7461216B2 (en) | Memory controller | |
US10496577B2 (en) | Distribution of master device tasks among bus queues | |
US8706925B2 (en) | Accelerating memory operations blocked by ordering requirements and data not yet received | |
CN103810123A (zh) | 内存控制装置及方法 | |
CN113946435A (zh) | 内存管理技术及计算机系统 | |
WO2011090537A2 (en) | Adaptively time-multiplexing memory references from multiple processor cores | |
CN112965816B (zh) | 内存管理技术及计算机系统 | |
CN108763116B (zh) | 一种基于贪婪式算法的多通道ddr控制器 | |
Modgil et al. | Energy-efficient fairness-aware memory access scheduling | |
WO2016193658A1 (en) | An apparatus and method for controlling access to a memory device | |
GB2426841A (en) | Providing a plurality of copies of program data in memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |