CN109491785A - 内存访问调度方法、装置及设备 - Google Patents
内存访问调度方法、装置及设备 Download PDFInfo
- Publication number
- CN109491785A CN109491785A CN201811242355.6A CN201811242355A CN109491785A CN 109491785 A CN109491785 A CN 109491785A CN 201811242355 A CN201811242355 A CN 201811242355A CN 109491785 A CN109491785 A CN 109491785A
- Authority
- CN
- China
- Prior art keywords
- kernel
- access
- core
- memory bank
- target
- 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.)
- Granted
Links
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
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种内存访问调度方法、装置及设备,该方法包括:一种内存访问调度方法,其特征在于,包括:当至少两个知识产权IP核同时请求访问第一存储体中的不同页时,在至少两个IP核中确定正在访问所述第一存储体的第一IP核;根据第一IP核对应的、第一存储体的访问信息,在至少两个IP核中确定目标IP核,并调度目标IP核访问第一存储体;其中,访问信息包括第一IP核的需求带宽、第一IP核的实际带宽、第一IP核的访问时长或至少一个第二IP核的剩余待处理数据量中的至少一种,至少一个第二IP核为至少两个IP核中除第一IP核之外的IP核。提高了内存访问调度的可靠性。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种内存访问调度方法、装置及设备。
背景技术
目前,多种设备(电脑、手机等)中设置有内存和知识产权(intellectualproperty,简称IP)核,内存通常包括多个存储体(bank),IP核可以包括处理器、输入/输出(Input/Output,简称I/O)设备、加速器、网卡等。
一个存储体中包括多个页(row),若多个IP核在同一时刻请求对同一存储体中的不同页进行访问,则该多个IP核对该存储体的访问出现冲突。在现有技术中,若多个IP核对同一存储体的访问出现冲突,则在访问序列中该多个访问之间插入其它访问,以使该多个冲突的访问在时间上错开,进而避免产生冲突。然而,由于对内存的访问具有随机性,当发生冲突的访问的数量较多时,通过上述方法无法保证可以完全避免冲突的发生,导致内存访问调度的可靠性较低。
发明内容
本发明实施例提供一种内存访问调度方法、装置及设备,提高了内存访问调度的可靠性。
第一方面,本发明实施例提供一种内存访问调度方法,包括:
当至少两个知识产权IP核同时请求访问第一存储体中的不同页时,确定正在访问所述第一存储体的第一IP核,所述第一IP核为所述至少两个IP核中的任意一个;
根据所述第一IP核对应的、第一存储体的访问信息,在所述至少两个IP核中确定目标IP核,并调度所述目标IP核访问所述第一存储体;其中,所述访问信息包括第一IP核的需求带宽、所述第一IP核的实际带宽、所述第一IP核的访问时长或至少一个第二IP核的剩余待处理数据量中的至少一种,所述至少一个第二IP核为所述至少两个IP核中除所述第一IP核之外的IP核。
在一种可能的实施方式中,所述根据所述第一存储体的访问信息,在所述至少两个IP核中确定目标IP核,包括:
判断所述至少一个第二IP核中是否存在剩余待处理数据量小于或等于预设数据量的第三IP核;
若是,则将所述第三IP核确定为所述目标IP核;
若否,则根据第一IP核的需求带宽、所述第一IP核的实际带宽或所述第一IP核的访问时长中的至少一种,确定所述目标IP核。
在另一种可能的实施方式中,所述根据第一IP核的需求带宽、所述第一IP核的实际带宽或所述第一IP核的访问时长中的至少一种,确定所述目标IP核,包括:
在所述第一IP核的需求带宽与所述第一IP核的实际带宽的差值小于或等于预设阈值内,或者,所述第一IP核的访问时长大于或等于预设时长时,在所述至少一个第二IP核中确定所述目标IP核;
在所述第一IP核的需求带宽与所述第一IP核的实际带宽的差值在大于所述预设阈值,且所述第一IP核的访问时长小于所述预设时长时,将所述第一IP核确定为所述目标IP核。
在另一种可能的实施方式中,所述在所述至少一个第二IP核中确定所述目标IP核,包括:
根据所述至少一个第二IP核的剩余待处理数据量,在所述至少一个第二IP核中确定所述目标IP核;或者,
根据预设访问次序,在所述至少一个第二IP核中确定所述目标IP核;或者,
将所述至少一个第二IP核中的任意一个IP核确定为所述目标IP核。
在另一种可能的实施方式中,所述至少两个IP核用于请求访问所述第一存储体中地址连续的内容。
第二方面,本发明实施例提供一种内存访问调度装置,包括第一确定模块、第二确定模块和调度模块,其中,
所述第一确定模块用于,当至少两个知识产权IP核同时请求访问第一存储体中的不同页时,确定正在访问所述第一存储体的第一IP核,所述第一IP核为所述至少两个IP核中的任意一个;
所述第二确定模块用于,根据所述第一IP核对应的、第一存储体的访问信息,在所述至少两个IP核中确定目标IP核,其中,所述访问信息包括第一IP核的需求带宽、所述第一IP核的实际带宽、所述第一IP核的访问时长或至少一个第二IP核的剩余待处理数据量中的至少一种,所述至少一个第二IP核为所述至少两个IP核中除所述第一IP核之外的IP核;
所述调度模块用于,调度所述目标IP核访问所述第一存储体。
在一种可能的实施方式中,所述第二确定模块具体用于:
判断所述至少一个第二IP核中是否存在剩余待处理数据量小于或等于预设数据量的第三IP核;
若是,则将所述第三IP核确定为所述目标IP核;
若否,则根据第一IP核的需求带宽、所述第一IP核的实际带宽或所述第一IP核的访问时长中的至少一种,确定所述目标IP核。
在另一种可能的实施方式中,所述第二确定模块具体用于:
在所述第一IP核的需求带宽与所述第一IP核的实际带宽的差值小于或等于预设阈值内,或者,所述第一IP核的访问时长大于或等于预设时长时,在所述至少一个第二IP核中确定所述目标IP核;
在所述第一IP核的需求带宽与所述第一IP核的实际带宽的差值在大于所述预设阈值,且所述第一IP核的访问时长小于所述预设时长时,将所述第一IP核确定为所述目标IP核。
在另一种可能的实施方式中,所述第二确定模块具体用于:
根据所述至少一个第二IP核的剩余待处理数据量,在所述至少一个第二IP核中确定所述目标IP核;或者,
根据预设访问次序,在所述至少一个第二IP核中确定所述目标IP核;或者,
将所述至少一个第二IP核中的任意一个IP核确定为所述目标IP核。
在另一种可能的实施方式中,所述至少两个IP核用于请求访问所述第一存储体中地址连续的内容。
第三方面,本发明实施例提供一种内存访问调度器,包括:状态记录表、IP软件配置寄存器、访问请求仲裁器和辅助寄存器,所述访问请求仲裁器分别与所述状态记录表、IP软件配置寄存器和所述辅助寄存器连接,其中,
所述状态记录中用于记录访问第一存储体的知识产权IP核的标识、及所述IP核请求访问的第一存储体中的页的标识;
所述IP软件配置寄存器用于存储所述IP核的需求带宽;
所述辅助寄存器用于存储所述IP核的剩余待处理数据量;
所述访问请求仲裁器用于,从所述状态记录表、IP软件配置寄存器和所述辅助寄存器中获取数据,并根据获取得到的数据执行上述第一方面任一项所述的内存访问调度方法。
第四方面,本发明实施例提供一种可读存储介质,包括程序或指令,当所述程序或指令在计算机上运行时,上述第一方面任一项所述的内存访问调度方法被执行。
本发明实施例提供的内存访问调度方法、装置及设备,当至少两个IP核同时请求访问第一存储体中不同的页时,先确定当前正在访问第一存储体的IP核为第一IP核,根据第一IP核的需求带宽、实际带宽、访问时长,以及至少一个第二IP核(至少两个IP核中除第一IP核之外的IP核)的剩余待处理数据量中的至少一种,确定目标IP核,并调度目标IP核访问第一存储体。这样,在保证该至少两个IP核均可以正常访问第一存储体的基础上,可以有效防止该至少两个核对第一存储体的访问出现冲突,进而提高内存访问调度的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的内存访问调度的架构图;
图2为本发明实施例提供的内存访问调度方法的流程示意图;
图3为本发明实施例提供的确定目标IP核方法的流程示意图;
图4为本发明实施例提供的内存访问调度装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的内存访问调度的架构图。请参见图1,包括多个IP核(IP核1-IP核M)、内存访问调度器、内存控制器和内存。其中,内存访问调度器包括状态记录表、IP软件配置寄存器、访问请求仲裁器、和辅助寄存器。内存中包括多个存储体(bank),每个存储体中包括多个页(row)。内存数据存储在每个页中。
可选的,状态记录表用于记录每个存储体当前被访问的页的标识、以及访问该页的IP核的标识。IP软件配置寄存器用于存储每个IP核的需求带宽、访问周期等参数等。可选的,辅助寄存器用于存储每个IP核的先进先出FIFO(First In First Out,简称FIFO)队列中剩余待处理数据量。
在实际应用过程中,当IP核需要访问内存时,IP核向访问请求仲裁器发送第一访问请求,访问请求仲裁器根据状态记录表、IP软件配置寄存器、辅助寄存器中的数据,确定是否调度该IP核访问内存。在确定调度该IP核访问内存时,将该第一访问请求发送给内存控制器,由内存控制器根据第一访问请求读取内存中的数据。
在本申请中,当至少两个IP核同时请求访问第一存储体中不同的页时,先确定当前正在访问第一存储体的IP核为第一IP核,根据第一IP核的需求带宽、实际带宽、访问时长,以及至少一个第二IP核(至少两个IP核中除第一IP核之外的IP核)的剩余待处理数据量中的至少一种,确定目标IP核,并调度目标IP核访问第一存储体。这样,在保证该至少两个IP核均可以正常访问第一存储体的基础上,可以有效防止该至少两个IP核对第一存储体的访问出现冲突,进而提高内存访问调度的可靠性。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行重复说明。
图2为本发明实施例提供的一种内存访问调度方法的流程示意图。请参见图2,该方法可以包括:
S201、当至少两个IP核同时请求访问第一存储体中的不同页时,确定正在访问第一存储体的第一IP核,第一IP核为至少两个IP核中的任意一个。
本发明实施例的执行主体可以为内存访问调度装置。例如,该内存访问调度装置可以为图1实施例中的内存访问调度器。
可选的,IP核可以为处理器I/O设备、加速器、网卡等。
当然,IP核还可以为其它,本发明实施例对此不作具体限定。
可选的,第一存储体是指至少两个IP核请求访问的存储体。
可选的,可以在图1实施例所示的状态记录表中获取第一存储体的状态记录信息,并根据第一存储体的状态记录信息判断是否存在至少两个IP核同时请求访问第一存储体中的不同页。
可选的,第一存储体的状态记录信息包括请求访问第一存储体的IP核的标识、以及各IP核请求访问的第一存储体中的页的标识。
例如,第一存储体的状态记录信息可以如表1所示:
表1
由表1可知,IP核1和IP核2均请求访问第一存储体,其中,IP核1请求访问第一存储体的页1,IP核2请求访问第一存储体的页2。
需要说明的是,在一个IP核对第一存储的访问结束时,则在第一存储体的状态记录信息中删除该IP核的标识和该IP核的标识对应的页的标识。例如,请参见表1,当IP核1对第一存储体的访问结束时,则在表1所示的状态记录信息中删除IP核1和页1。
还需要说明的是,当一个IP核请求访问第一存储体时(第一存储体的状态记录信息中不包括该IP核的标识),则在第一存储体的状态记录信息中增加该IP核的标识和该IP核请求访问的第一存储体中页的标识。
可选的,若第一存储体的状态记录表中存在至少两个IP核,且该至少两个IP核请求访问的第一存储体中的页不同,则确定存在至少两个IP核同时请求访问第一存储体中的不同页。
可选的,当至少两个IP核同时请求访问第一存储体中的不同页时,为了避免访问冲突,在同一时刻,只有一个IP核正在访问第一存储体,其它IP核则在等候访问第一存储体。
可选的,至少两个IP核用于请求访问第一存储体中地址连续的内容。
在实际应用过程中,IP核发送的对存储体的每个访问请求均用于请求访问存储体中一个页中一个地址的数据,若IP核发送的多个访问请求用于请求访问同一存储体中、同一页中地址连续的数据,则该IP核用于请求访问存储体中地址连续的内容。
可选的,地址连续是指相邻的两个地址之间的差值相同。
例如,该差值可以为1、2、3等,当然,在实际应用过程中,可以根据实际需要设置该差值,本发明实施例对此不作具体限定。
例如,若多个访问请求依次请求访问同一存储体的同一页中地址1、地址2、地址3中的数据,则确定该多个访问请求用于请求访问地址连续的内容。若多个访问请求依次请求访问同一存储体的同一页中地址1、地址3、地址5中的数据,则确定该多个访问请求用于请求访问地址连续的内容。
S203、根据第一IP核对应的、第一存储体的访问信息,在至少两个IP核中确定目标IP核。
其中,第一IP核对应的、第一存储体的访问信息包括第一IP核的需求带宽、第一IP核的实际带宽、第一IP核的访问时长或至少一个第二IP核的剩余待处理数据量中的至少一种,至少一个第二IP核为至少两个IP核中除第一IP核之外的IP核。
需要说明的是,访问信息还可以包括其它,在实际应用过程中,可以根据实际需要确定访问信息中包括的内容,本发明实施例对此不作具体限定。
可选的,第一IP核的需求带宽是指第一IP核在正常工作时访问内存的带宽。
可选的,第一IP核的需求带宽通常为第一IP核的最大带宽。
可选的,第一IP核的实际带宽是指第一IP核实际访问内存时的带宽。
可选的,本发明实施例所示的IP核的带宽是指,IP核在单位时间内发出第一访问请求的个数,或者,单位时间内IP核的第一访问请求被处理的个数。
可选的,可以在图1实施例所示的IP软件配置寄存器中获取第一IP核的需求带宽。
可选的,可以在第一IP核单独访问一个存储体时,采集第一IP核的带宽,将采集得到的第一IP核的带宽确定为第一IP核的需求带宽,并将第一IP核的需求带宽存储至IP软件配置寄存器中。
例如,可以将第一IP核最近一次单独访问一个存储体时,第一IP核的带宽确定为第一IP核的需求带宽。
可选的,可以周期性的更新IP软件配置寄存器中第一IP核的需求带宽。
可选的,第一IP核的访问时长是指第一IP核该次访问第一存储体的时长。
可选的,第二IP核的剩余待处理数据量可以为第二IP核中FIFO队列中未处理的数据量。
可选的,目标IP核为下一个调度访问第一存储体的IP核。
需要说明的是,在图3所示的实施例中对确定目标IP核的过程进行详细说明,此处不再进行赘述。
S203、调度目标IP核访问第一存储体。
可选的,可以先暂停第一IP核访问第一存储体,并调度目标IP核访问第一存储体。
本发明实施例提供的内存访问调度方法,当至少两个IP核同时请求访问第一存储体中不同的页时,先确定当前正在访问第一存储体的IP核为第一IP核,根据第一IP核的需求带宽、实际带宽、访问时长,以及至少一个第二IP核(至少两个IP核中除第一IP核之外的IP核)的剩余待处理数据量中的至少一种,确定目标IP核,并调度目标IP核访问第一存储体。这样,在保证该至少两个IP核均可以正常访问第一存储体的基础上,可以有效防止该至少两个核对第一存储体的访问出现冲突,进而提高内存访问调度的可靠性。
在图2所示实施例的基础上,下面,通过图3所示的实施例对确定目标IP核的过程(图2实施例中的S202)进行详细说明。
图3为本发明实施例提供的确定目标IP核方法的流程示意图。请参见图3,该方法可以包括:
S301、判断至少一个第二IP核中是否存在剩余待处理数据量小于或等于预设数据量的第三IP核。
若是,则执行S302。
若否,则执行S303。
需要说明的是,当前正在访问第一存储体的IP核为第一IP核,至少一个第二IP核为同时请求访问第一存储体中的不同页的至少两个IP核中除第一IP核之外的其它IP核。
S302、将第三IP核确定为目标IP核。
S303、根据第一IP核的实际带宽、需求带宽和访问时长,判断第一条件和第二条件中是否存在一个条件被满足。
若是,则执行S304。
若否,则执行S305。
可选的,第一条件为:第一IP核的需求带宽与第一IP核的实际带宽的差值小于或等于预设阈值。
可选的,可以将上一个调度周期内第一IP核发出的第一访问请求的个数与上一个调度周期的时长的比值确定为第一IP核的实际带宽。
可选的,调度周期是指,调度多个存在访问冲突的IP核访问一遍存储体的时长。
例如,假设IP核1和IP核2访问存储体1存在冲突,且IP核1和IP核2轮换访问存储体1,则调度周期是指IP核1一次访问存储体1的时长与IP核2一次访问存储体1的时长之和。
当第一IP核的需求带宽与第一IP核的实际带宽的差值小于或等于预设阈值,则第一IP核的实际带宽与第一IP核的需求带宽近似相同,说明第一IP核已经获取得到足够的待处理数据。
在实际应用过程中,可以根据实际需要设置该预设阈值,本发明实施例对此不作具体限定。
可选的,第二条件为:第一IP核的访问时长大于或等于预设时长。
可选的,预设时长可以为IP软件配置器中存储的第一IP核的访问周期。
若第一IP核的访问时长大于或等于预设时长,则说明第一IP核对第一存储体的访问时长已经足够长,若继续调度第一IP核访问第一存储体,则可能会对其它IP核对第一存储体的访问造成影响。
需要说明的是,第一IP核的访问周期反映的是访存调度的粒度,若该访问周期设置较大值,则可以使得第一IP核获得较长时间的内存权限,更好的利用空间局部性,但是很可能会使得其它访问同一存储体的IP核出现饥饿状态(没有数据进行处理)问题。若该访问周期设置较小值,则可以加速访存冲突的IP核的轮转,进而可以有效避免IP核出现饥饿状态问题,但是对访存的空间局部性有一定损害。
S304、在至少一个第二IP核中确定目标IP核。
可选的,可以通过如下至少三种可行的实现方式确定目标IP核。
一种可行的实现方式:
根据至少一个第二IP核的剩余待处理数据量,在至少一个第二IP核中确定目标IP核。
可选的,IP核的剩余待处理数据量越少,说明该IP核的饥饿程度越严重,则该IP核越急需对内存进行访问。因此,可以将剩余待处理数据量最少的一个第二IP核确定为目标IP核。这样,可以有效降低IP核出现饥饿状态的可能性。
另一种可行的实现方式:
根据预设访问次序,在至少一个第二IP核中确定目标IP核。
可选的,可以将预设访问次序中第一IP核的下一个IP核确定为目标IP核。
再一种可行的实现方式:
将至少一个第二IP核中的任意一个IP核确定为目标IP核。
S305、将第一IP核确定为目标IP核。
在图3所示的实施例中,在确定目标IP核时,若至少一个第二IP核中存在剩余待处理数据量小于或等于预设数据量的第三IP核,则说明第三IP核即将处于饥饿状态,为了避免第三IP核处于饥饿状态,则将第三IP核确定为目标IP核,以调度第三IP核访问第一存储体。若至少一个第二IP核中不存在剩余待处理数据量小于或等于预设数据量的第三IP核,则说明各个第二IP核均有足够的数据进行处理,则判断第一IP核是否已经获取得到足够的数据(第一条件被满足)、或者第一IP核对第一存储体的访问时长已经足够长(第二条件被满足),若第一条件和第二条件均没有被满足,则说明第一IP核需要继续访问第一存储体,为了避免频繁的调度,则将第一IP核确定为目标IP核,以使第一IP核继续访问第一存储体。若第一条件和第二条件中的任意一个条件被满足,则说明第一IP核不能继续访问第一存储体,则在至少一个第二IP核中确定目标IP核,调度至少一个第二IP核中的目标IP核访问第一存储体。在上述的内存访问调度过程中,不但可以避免所有的IP核出现饥饿状态,还可以避免由于IP核对第一存储体进行过度访问而导致其它IP核对第一存储体访问造成的影响的问题,进而提高了内存访问调度的可靠性。
在上述任意一个实施例的基础上,下面,通过具体示例,对上述方法实施例所示的技术方案进行详细说明。
示例性的,假设存储体1的状态记录信息如表2所示:
表2
由表2可知,IP核1、IP核2和IP核3同时请求访问存储体1中的不同页。
假设当前IP核1正在访问存储体1中的页1,则获取IP核2和IP核3的剩余待处理数据量,若IP核2的剩余待处理数据量小于预设数据量,则说明IP核2即将处于饥饿状态,为了避免IP核2处于饥饿状态,则暂停IP核1访问存储体1,并调度IP核2访问存储体1。
在IP核2访问存储体1的过程中,获取IP核1和IP核3的剩余待处理数据量,若IP核1和IP核3的剩余待处理数据量均大于预设数据量,则说明IP核1和IP核3均有足够的数据进行处理,则获取IP核2的实际带宽、需求带宽和访问时长,若IP核2的实际带宽与需求带宽的差值大于预设阈值且IP核2的访问时长小于预设时长,则说明IP核2还需要继续访问存储体1,则继续调度IP核2访问存储体1。
在IP核2继续访问存储体1的过程中,假设IP核2对存储体1的访问时长大于预设时长,则需要调度其它IP核访问存储体1,则获取IP核1和IP核3的剩余待处理数据量,假设IP核1的剩余待处理数据量小于IP核3的剩余待处理数据量,则暂停IP核2访问存储体1,并调度IP核1访问存储体1。
图4为本发明实施例提供的内存访问调度装置的结构示意图。请参见图4,该内存访问调度装置10可以包括第一确定模块11、第二确定模块12和调度模块13,其中,
所述第一确定模块11用于,当至少两个IP核同时请求访问第一存储体中的不同页时,在所述至少两个IP核中确定正在访问所述第一存储体的第一IP核;
所述第二确定模块12用于,根据所述第一IP核对应的、第一存储体的访问信息,在所述至少两个IP核中确定目标IP核,其中,所述访问信息包括第一IP核的需求带宽、所述第一IP核的实际带宽、所述第一IP核的访问时长或至少一个第二IP核的剩余待处理数据量中的至少一种,所述至少一个第二IP核为所述至少两个IP核中除所述第一IP核之外的IP核;
所述调度模块13用于,调度所述目标IP核访问所述第一存储体。
本发明实施例提供的内存访问调度装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述第二确定模块12具体用于:
判断所述至少一个第二IP核中是否存在剩余待处理数据量小于或等于预设数据量的第三IP核;
若是,则将所述第三IP核确定为所述目标IP核;
若否,则根据第一IP核的需求带宽、所述第一IP核的实际带宽或所述第一IP核的访问时长中的至少一种,确定所述目标IP核。
在另一种可能的实施方式中,所述第二确定模块12具体用于:
在所述第一IP核的需求带宽与所述第一IP核的实际带宽的差值小于或等于预设阈值内,或者,所述第一IP核的访问时长大于或等于预设时长时,在所述至少一个第二IP核中确定所述目标IP核;
在所述第一IP核的需求带宽与所述第一IP核的实际带宽的差值在大于所述预设阈值,且所述第一IP核的访问时长小于所述预设时长时,将所述第一IP核确定为所述目标IP核。
在另一种可能的实施方式中,所述第二确定模块12具体用于:
根据所述至少一个第二IP核的剩余待处理数据量,在所述至少一个第二IP核中确定所述目标IP核;或者,
根据预设访问次序,在所述至少一个第二IP核中确定所述目标IP核;或者,
将所述至少一个第二IP核中的任意一个IP核确定为所述目标IP核。
在另一种可能的实施方式中,所述至少两个IP核用于请求访问所述第一存储体中地址连续的内容。
本发明实施例还提供一种内存访问调度器,包括:状态记录表、IP软件配置寄存器、访问请求仲裁器和辅助寄存器,所述访问请求仲裁器分别与所述状态记录表、IP软件配置寄存器和所述辅助寄存器连接,其中,
所述状态记录中用于记录访问第一存储体的知识产权IP核的标识、及所述IP核请求访问的第一存储体中的页的标识;
所述IP软件配置寄存器用于存储所述IP核的需求带宽;
所述辅助寄存器用于存储所述IP核的剩余待处理数据量;
所述访问请求仲裁器用于,从所述状态记录表、IP软件配置寄存器和所述辅助寄存器中获取数据,并根据获取得到的数据执行上述任一方法实施例所示的内存访问调度方法。
需要说明的是,本发明实施例提供的内存访问调度器的结构可以参见图1,此处不再进行赘述。
本发明实施例提供一种可读存储介质,包括程序或指令,当所述程序或指令在计算机上运行时,如上述任意方法实施例所述的内存访问调度方法被执行。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例方案的范围。
Claims (12)
1.一种内存访问调度方法,其特征在于,包括:
当至少两个知识产权IP核同时请求访问第一存储体中的不同页时,在所述至少两个IP核中确定正在访问所述第一存储体的第一IP核;
根据所述第一IP核对应的、第一存储体的访问信息,在所述至少两个IP核中确定目标IP核,并调度所述目标IP核访问所述第一存储体;其中,所述访问信息包括第一IP核的需求带宽、所述第一IP核的实际带宽、所述第一IP核的访问时长或至少一个第二IP核的剩余待处理数据量中的至少一种,所述至少一个第二IP核为所述至少两个IP核中除所述第一IP核之外的IP核。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一存储体的访问信息,在所述至少两个IP核中确定目标IP核,包括:
判断所述至少一个第二IP核中是否存在剩余待处理数据量小于或等于预设数据量的第三IP核;
若是,则将所述第三IP核确定为所述目标IP核;
若否,则根据第一IP核的需求带宽、所述第一IP核的实际带宽或所述第一IP核的访问时长中的至少一种,确定所述目标IP核。
3.根据权利要求2所述的方法,其特征在于,所述根据第一IP核的需求带宽、所述第一IP核的实际带宽或所述第一IP核的访问时长中的至少一种,确定所述目标IP核,包括:
在所述第一IP核的需求带宽与所述第一IP核的实际带宽的差值小于或等于预设阈值内,或者,所述第一IP核的访问时长大于或等于预设时长时,在所述至少一个第二IP核中确定所述目标IP核;
在所述第一IP核的需求带宽与所述第一IP核的实际带宽的差值在大于所述预设阈值,且所述第一IP核的访问时长小于所述预设时长时,将所述第一IP核确定为所述目标IP核。
4.根据权利要求3所述的方法,其特征在于,所述在所述至少一个第二IP核中确定所述目标IP核,包括:
根据所述至少一个第二IP核的剩余待处理数据量,在所述至少一个第二IP核中确定所述目标IP核;或者,
根据预设访问次序,在所述至少一个第二IP核中确定所述目标IP核;或者,
将所述至少一个第二IP核中的任意一个IP核确定为所述目标IP核。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述至少两个IP核用于请求访问所述第一存储体中地址连续的内容。
6.一种内存访问调度装置,其特征在于,包括第一确定模块、第二确定模块和调度模块,其中,
所述第一确定模块用于,当至少两个知识产权IP核同时请求访问第一存储体中的不同页时,在所述至少两个IP核中确定正在访问所述第一存储体的第一IP核;
所述第二确定模块用于,根据所述第一IP核对应的、第一存储体的访问信息,在所述至少两个IP核中确定目标IP核,其中,所述访问信息包括第一IP核的需求带宽、所述第一IP核的实际带宽、所述第一IP核的访问时长或至少一个第二IP核的剩余待处理数据量中的至少一种,所述至少一个第二IP核为所述至少两个IP核中除所述第一IP核之外的IP核;
所述调度模块用于,调度所述目标IP核访问所述第一存储体。
7.根据权利要求6所述的装置,其特征在于,所述第二确定模块具体用于:
判断所述至少一个第二IP核中是否存在剩余待处理数据量小于或等于预设数据量的第三IP核;
若是,则将所述第三IP核确定为所述目标IP核;
若否,则根据第一IP核的需求带宽、所述第一IP核的实际带宽或所述第一IP核的访问时长中的至少一种,确定所述目标IP核。
8.根据权利要求7所述的装置,其特征在于,所述第二确定模块具体用于:
在所述第一IP核的需求带宽与所述第一IP核的实际带宽的差值小于或等于预设阈值内,或者,所述第一IP核的访问时长大于或等于预设时长时,在所述至少一个第二IP核中确定所述目标IP核;
在所述第一IP核的需求带宽与所述第一IP核的实际带宽的差值在大于所述预设阈值,且所述第一IP核的访问时长小于所述预设时长时,将所述第一IP核确定为所述目标IP核。
9.根据权利要求8所述的装置,其特征在于,所述第二确定模块具体用于:
根据所述至少一个第二IP核的剩余待处理数据量,在所述至少一个第二IP核中确定所述目标IP核;或者,
根据预设访问次序,在所述至少一个第二IP核中确定所述目标IP核;或者,
将所述至少一个第二IP核中的任意一个IP核确定为所述目标IP核。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述至少两个IP核用于请求访问所述第一存储体中地址连续的内容。
11.一种内存访问调度器,其特征在于,包括:状态记录表、IP软件配置寄存器、访问请求仲裁器和辅助寄存器,所述访问请求仲裁器分别与所述状态记录表、IP软件配置寄存器和所述辅助寄存器连接,其中,
所述状态记录中用于记录访问第一存储体的知识产权IP核的标识、及所述IP核请求访问的第一存储体中的页的标识;
所述IP软件配置寄存器用于存储所述IP核的需求带宽;
所述辅助寄存器用于存储所述IP核的剩余待处理数据量;
所述访问请求仲裁器用于,从所述状态记录表、IP软件配置寄存器和所述辅助寄存器中获取数据,并根据获取得到的数据执行上述权利要求1-5任一项所述的内存访问调度方法。
12.一种可读存储介质,其特征在于,包括程序或指令,当所述程序或指令在计算机上运行时,权利要求1-5任一项所述的内存访问调度方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811242355.6A CN109491785B (zh) | 2018-10-24 | 2018-10-24 | 内存访问调度方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811242355.6A CN109491785B (zh) | 2018-10-24 | 2018-10-24 | 内存访问调度方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109491785A true CN109491785A (zh) | 2019-03-19 |
CN109491785B CN109491785B (zh) | 2021-01-26 |
Family
ID=65692672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811242355.6A Active CN109491785B (zh) | 2018-10-24 | 2018-10-24 | 内存访问调度方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109491785B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399219A (zh) * | 2019-07-18 | 2019-11-01 | 深圳云天励飞技术有限公司 | 内存访问方法、dmc及存储介质 |
CN111756802A (zh) * | 2020-05-26 | 2020-10-09 | 深圳大学 | 一种数据流任务在numa平台上的调度方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001025921A1 (en) * | 1999-10-01 | 2001-04-12 | Sun Microsystems, Inc. | An arbitration protocol for a shared data cache |
CN1452745A (zh) * | 2000-04-03 | 2003-10-29 | 先进微装置公司 | 包含具有改良存储器请求仲裁机制的存储器控制器的总线桥 |
CN1667597A (zh) * | 2004-03-12 | 2005-09-14 | 松下电器产业株式会社 | 资源管理装置 |
CN1913477A (zh) * | 2005-08-10 | 2007-02-14 | 三星电子株式会社 | 仲裁对共享资源的访问的系统、方法和计算机程序产品 |
CN100354851C (zh) * | 2002-06-19 | 2007-12-12 | 阿尔卡塔尔加拿大公司 | 有共享程序存储器的多处理器计算设备及存储器访问方法 |
CN106484531A (zh) * | 2016-09-18 | 2017-03-08 | 上海顺久电子科技有限公司 | 内存访问仲裁方法、电路及装置 |
-
2018
- 2018-10-24 CN CN201811242355.6A patent/CN109491785B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001025921A1 (en) * | 1999-10-01 | 2001-04-12 | Sun Microsystems, Inc. | An arbitration protocol for a shared data cache |
CN1452745A (zh) * | 2000-04-03 | 2003-10-29 | 先进微装置公司 | 包含具有改良存储器请求仲裁机制的存储器控制器的总线桥 |
CN100354851C (zh) * | 2002-06-19 | 2007-12-12 | 阿尔卡塔尔加拿大公司 | 有共享程序存储器的多处理器计算设备及存储器访问方法 |
CN1667597A (zh) * | 2004-03-12 | 2005-09-14 | 松下电器产业株式会社 | 资源管理装置 |
CN1913477A (zh) * | 2005-08-10 | 2007-02-14 | 三星电子株式会社 | 仲裁对共享资源的访问的系统、方法和计算机程序产品 |
CN106484531A (zh) * | 2016-09-18 | 2017-03-08 | 上海顺久电子科技有限公司 | 内存访问仲裁方法、电路及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399219A (zh) * | 2019-07-18 | 2019-11-01 | 深圳云天励飞技术有限公司 | 内存访问方法、dmc及存储介质 |
CN111756802A (zh) * | 2020-05-26 | 2020-10-09 | 深圳大学 | 一种数据流任务在numa平台上的调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109491785B (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220027210A1 (en) | Work Stealing in Heterogeneous Computing Systems | |
EP3132355B1 (en) | Fine-grained bandwidth provisioning in a memory controller | |
CN107526546B (zh) | 一种Spark分布式计算数据处理方法及系统 | |
CN105579959B (zh) | 硬件加速器虚拟化 | |
CN102073461B (zh) | 输入输出请求调度方法、相关装置和存储阵列 | |
TW200917042A (en) | Fairness in memory systems | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
CN113590508B (zh) | 动态可重构的内存地址映射方法及装置 | |
CN107870732A (zh) | 从固态存储设备冲刷页面的方法和设备 | |
CN108549574A (zh) | 线程调度管理方法、装置、计算机设备和存储介质 | |
US20140109100A1 (en) | Scheduling method and system | |
US20200272512A1 (en) | Hardware for supporting os driven observation and anticipation based on more granular, variable sized observation units | |
CN110275681A (zh) | 一种数据存储方法及数据存储系统 | |
CN104040506B (zh) | 均衡使用共享的存储器系统的多个请求器的带宽 | |
US20120317376A1 (en) | Row buffer register file | |
CN109491785A (zh) | 内存访问调度方法、装置及设备 | |
EP3991097A1 (en) | Managing workloads of a deep neural network processor | |
US20210097396A1 (en) | Neural network training in a distributed system | |
KR20150101870A (ko) | 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치 | |
CN107615246A (zh) | 线程弹性负载平衡的内核负载知识 | |
US20120297131A1 (en) | Scheduling-Policy-Aware DRAM Page Management Mechanism | |
CN117215491A (zh) | 一种快速数据访问方法、快速数据访问装置及光模块 | |
US20200097297A1 (en) | System and method for dynamic determination of a number of parallel threads for a request | |
CN108572930A (zh) | 缓存控制方法及装置 | |
CN109522102A (zh) | 一种基于i/o调度的多任务外存模式图处理方法 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |