CN103559147B - 访存调度方法、装置和系统 - Google Patents
访存调度方法、装置和系统 Download PDFInfo
- Publication number
- CN103559147B CN103559147B CN201310557156.5A CN201310557156A CN103559147B CN 103559147 B CN103559147 B CN 103559147B CN 201310557156 A CN201310557156 A CN 201310557156A CN 103559147 B CN103559147 B CN 103559147B
- Authority
- CN
- China
- Prior art keywords
- memory access
- window
- module
- access window
- request
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种访存调度方法、装置和系统,包括:接收与各访存模块对应的各访存窗口信息;根据各访存窗口信息,确定各访存窗口在调度周期内的启闭时间,并在对应的启闭时间内开启各访存窗口;接收访存模块发送的访存请求,所述访存请求中携带所述访存模块的标识;根据所述访存模块的标识,确定与所述访存模块的标识对应的访存窗口是否处于开启状态;若所述访存模块的标识对应的访存窗口处于开启状态,则对所述访存请求进行访存调度。通过在调度周期对应的启闭时间内打开访存窗口,并仅对访存窗口开启的访存模块的访存请求进行访存调度,降低了多个访存模块同时进行访存请求,访存带宽发生冲突的概率,同时提高了访存性能和访存服务质量。
Description
技术领域
本发明涉及集成电路逻辑设计领域,尤其涉及一种访存调度方法、装置和系统。
背景技术
随着半导体技术的发展,越来越多的功能模块被集成到同一块芯片中。芯片内功能模块的增加使芯片的功能越来越强大,这就导致了芯片的访存压力越来越大。
通常,访存调度器用来处理访存模块的访存调度请求。访存调度器将访存模块分为带宽敏感型和延迟敏感型,对带宽敏感型的访存模块采用配置足够带宽的调度策略,对延迟敏感型的访存模块采用配置高优先级的调度策略,来保证各模块的访存服务质量。
上述访存调度方法中,随着访存压力的增大,多个访存模块同时发送访存请求,为各访存模块分配的访存带宽发生冲突的概率逐渐增加,访存的性能会逐渐降低,从而也就降低了访存的服务质量。
发明内容
本发明提供一种访存调度方法、装置和系统,用于解决访存压力较大时,访存带宽发生冲突的概率增加,访存性能和访存服务质量会降低的问题。
本发明提供一种访存调度方法,包括:
接收与各访存模块对应的各访存窗口信息,所述各访存窗口信息包括:各访存窗口的长度,所述各访存窗口的长度代表对应的各访存模块占用访存总线的时长;
根据所述各访存窗口信息,确定各访存窗口在调度周期内的启闭时间,并在对应的启闭时间内开启所述各访存窗口,所述调度周期指所有访存窗口各执行一次访存调度所需的时间;
接收访存模块发送的访存请求,所述访存请求中携带所述访存模块标识;
根据所述访存模块标识,确定与所述访存模块标识对应的访存窗口是否开启;
若所述访存模块标识对应的访存窗口已开启,则对所述访存请求进行访存调度。
本发明提供一种访存调度装置,包括:
第一接收单元,接收与各访存模块对应的各访存窗口信息,所述各访存窗口信息包括各访存窗口的长度,所述各访存窗口的长度代表对应的各访存模块占用访存总线的时长;
第一确定单元,根据所述各访存窗口信息,确定各访存窗口在调度周期内的启闭时间,并在对应的启闭时间内开启所述各访存窗口,所述调度周期指所有访存窗口各执行一次访存调度所需的时间;
第二接收单元,用于接收访存模块发送的访存请求,所述访存请求中携带所述访存模块标识;
第二确定单元,用于根据所述访存模块标识,确定与所述访存模块标识对应的访存窗口是否开启;
处理单元,用于若所述访存模块标识对应的访存窗口已开启,则对所述访存请求进行访存调度。
本发明提供一种访存调度系统,包括:访存模块和如上所述的访存调度装置。
本发明提供的访存调度方法、装置和系统,通过根据各访存模块对应的各访存窗口信息,在调度周期对应的启闭时间内打开访存窗口,并仅对访存窗口开启的访存模块的访存请求进行访存调度,降低了多个访存模块同时进行访存请求,访存带宽发生冲突的概率,优化了访存压力较大情况下的访存性能和服务质量。
附图说明
图1为本发明实施例提供的访存调度方法实施例一的流程示意图;
图2为本发明实施例提供的访存调度方法实施例二的流程示意图;
图3为本发明提供的访存调度装置实施例一结构示意图;
图4为本发明提供的访存调度装置实施例二结构示意图;
图5为本发明提供的访存调度装置实施例三结构示意图;
图6为本发明提供的访存调度系统实施例结构示意图。
具体实施方式
本发明中,为尽量减少访存调度占用的资源,根据访存模块的实际功能,为各访存模块配置对应的访存窗口,对属于同一访存模块的访存请求集中在该访存模块对应的访存窗口开启时处理,降低了多个访存模块同时进行访存请求,带宽发生冲突的概率,优化了访存压力较大情况下的访存性能和服务质量。
图1为本发明提供的一种访存调度方法流程示意图。如图1所示,该方法包括:
S100,接收与各访存模块对应的各访存窗口信息,所述各访存窗口信息包括各访存窗口的长度,所述各访存窗口的长度代表对应的各访存模块占用访存总线的时长。
本实施例访存调度方法是由本发明提供的访存调度装置中的仲裁模块执行的。其中,接收的与各访存模块对应的各访存窗口信息可以初始化配置时由中央处理器(CentralProcessing Unit,CPU)通过通信端口发送给该仲裁模块的,也可以是该访存调度装置中自适应模块返回给仲裁模块的各访存窗口信息,本实施例对此不做限定。
具体的,在访存调度装置初始化时,由CPU根据待处理的访存模块的访存需求,结合系统可提供的访存总线带宽为各访存模块配置对应的访存窗口,各访存模块在对应的访存窗口长度内可占用访存总线,对内存进行读出或写入操作。
其中,访存窗口信息还包括:访存模块标识、访存窗口标识。访存模块标识用来表示不同的访存模块,访存窗口标识用来表示不同的访存窗口,访存模块标识与访存窗口标识间一一对应,举例来说,若某系统中共有10个访存模块,则与各访存模块对应的访存窗口分别可用数字1~10进行标识,或者可以用不同的字母表示不同的访存窗口,或者可以根据对应的各访存模块的特征为各访存窗口进行个性化的标识。访存窗口的长度可以用时间长度标识,也可以利用系统的时钟周期标识,本实施例对此不做限定。访存模块标识、访存窗口标识与访存窗口长度一一对应,不同的访存窗口的访存窗口长度可能相同。
S110,根据所述访存窗口信息,确定各访存窗口在调度周期内的启闭时间,并在对应的启闭时间内开启各访存窗口,所述调度周期指所有访存窗口各执行一次访存调度所需的时间。
具体地,所述确定各访存窗口在调度周期内的启闭时间,包括:
根据所述各访存模块的优先级,确定各访存窗口在调度周期内的启闭时间。
各访存模块间有一定的优先级顺序,初始化时,CPU将各访存模块对应的访存窗口信息发给仲裁模块时,可以将各访存模块的优先级顺序同时发给仲裁模块,由仲裁模块依据各访存模块的优先级顺序确定各访存窗口的启闭时间,或者,CPU直接按各访存模块的优先级顺序将对应的各访存窗口信息依次发送给仲裁模块,使仲裁模块根据收到的访存窗口的先后顺序,依次确定各访存窗口在调度周期内的启闭时间。
其中,调度周期反映了访存调度的粒度。由于每个访存模块在一个调度周期内的访存请求集中于一个较短的窗口时间内,该访存模块的缓存(片内缓存或内存)大小需要保证其在调度周期内不产生数据饥饿。由于调度周期对所有访存模块都相同,所以调度周期确定时,必须满足缓存忍耐程度最低的访存模块的访存需求。在片上系统(System on aChip,简称SoC)设计中,设计者可以对各访存模块的缓存大小进行调整,使其在最坏状况下的忍耐程序接近,这样可以最大程度利用缓存空间。
通常,若调度周期以Soc内的时钟周期为单位进行划分,各访存窗口的长度也以时钟周期为单位,对应的,可用与Soc的时钟周期相同周期的第一计数器对各访存窗口的开启时间进行计数,假设某访存窗口的长度为100个时钟周期,则第一计数器对开启的访存窗口的开启时间进行计数,并在第一计数器计数为100时,关闭该访存窗口,本实施例中的第一计数器可以是加法计数器,也可以是减法计数器,本实施例对此不做限定。或者调度周期以时间为单位,则访存窗口的长度也以时间为单位表示。对应的,用计时器对各访存窗口的开启时间进行计时,假设某访存窗口的长度为100s,则计时器对开启的访存窗口的开启时间进行计时,并在计时器计时为100s时,关闭该访存窗口。
S120,接收访存模块发送的访存请求,所述访存请求中携带所述访存模块标识。
其中,访存模块发送的访存请求,可以是写入请求,也可以是读取请求。
S130,根据所述访存模块标识,确定与所述访存模块标识对应的访存窗口是否开启。
具体的,仲裁模块中保存了各访存窗口的启闭状态,在对应的开启时间开启该访存窗口后,将本地该访存窗口的启闭状态更新为开启,在对应的关闭时间关闭该访存窗口后,将本地该访存窗口的启闭状态更新为关闭。其中,各访存窗台的状态信息可以用数字或字符表示,例如,1表示开启,0表示关闭,或者OP表示开启,CL表示关闭等等,本实施例对此不做限定。
S140,若所述访存模块标识对应的访存窗口开启,则对所述访存请求进行访存调度。
具体的,还可将进行访存调度之后的访存请求发送给后级访存调度器进行进一步访存调度,达到更细致的访存调度效果;后级访存调度器可为通常使用的访存调度器,例如可以为轮转式访存调度器,也可以是其它方式的调度器,本实施例对此不做限定。
相应地,上述确定与所述访存模块标识对应的访存窗口是否开启之后,还包括:
若所述访存模块标识对应的访存窗口关闭,则阻塞所述访存请求,直至确定所述访存模块标识对应的访存窗口开启,再对所述访存请求进行访存调度。
进一步地,上述访存调度方法,还包括:接收数据请求,所述数据请求中携带访存模块标识;
判断所述数据请求的状态,若所述数据请求为有效状态,则开启与所述访存模块标识对应的访存窗口,且在所述数据请求变为无效状态时,关闭与所述访存模块标识对应的访存窗口。
其中,此处的数据请求是访存模块发送的。各访存模块的缓存区在该访存模块对应的访存窗口期,将从内存中读取的数据存入该缓存区,或者将该缓存区的数据写入系统内存中,在该调度周期的其它时间内,该访存模块利用其缓存区的数据进行数据处理。各访存模块可检测其缓存区数据的利用率,当其出现数据饥饿时,即可向访存调度器发起数据请求,仲裁模块收到访存模块发送的数据请求后,表明该访存模块出现了数据饥饿,仲裁模块随即打开该访存模块对应的访存窗口,使该访存模块可进行数据读取或写入。数据请求的状态为预先设定的表明数据请求是否有效的状态,举例来说,若访存模块的数据请求的状态为“0”,表明该数据请求无效,若访存模块的数据请求的状态为“1”,表明该数据请求有效,仲裁模块实时监控各访存模块对应的数据请求的状态,实时打开与数据请求有效状态对应的访存窗口,并在数据请求无效时,实时关闭对应的访存窗口。
具体地,所述访存模块为带宽敏感型访存模块,所述根据所述各访存窗口信息,确定各访存窗口在调度周期内的启闭时间,包括:
根据所述访存窗口信息,确定与所述访存模块对应的访存窗口在调度周期内独占的启闭时间;
或者,所述访存模块为延迟敏感型访存模块,所述根据所述访存窗口信息,确定各访存窗口在调度周期内的启闭时间,包括:
在调度周期内一直开启与所述访存模块对应的访存窗口。
其中,根据访存模块的访存特点,可将访存模块分为带宽敏感型和延迟敏感型。对带宽敏感型访存模块,访存带宽是决定该访存模块访存质量和性能的主要因素,对应延迟敏感型访存模块,访存延迟时间是决定该访存模块访存质量和性能的主要因素。
本实施例中考虑不同类型访存模块的要求,对不同的访存模块采用不同的访存窗口分配方法。对于带宽敏感型访存模块,根据该访存模块的访存带宽需求,结合访存系统的总带宽,为该类访存模块配置独占该访存系统带宽的访存窗口长度,在该访存窗口内,使该访存模块独自占有访存系统带宽。举例来说,若为该访存模块的带宽需求为Bn,访存系统的带宽为Bt,调度周期为Ts,则为该访存模块配置的访存窗口的长度Tw可按Tw=Ts×(Bn/Bt)计算,使该访存模块在调度周期Ts内独自占有访存系统带宽Tw的时间,仲裁模块收到该访存窗口的长度Tw后,根据访存模块优先级顺序确定该访存窗口在调度周期Ts内的启闭时间,在确定的开启时间开启该访存窗口,将该访存窗口的访存请求传送给后级访存调度器处理,经过Tw时间后,关闭该访存窗口,相应的打开另一访存窗口,开始处理另一访存窗口的访存请求。
相应的,对于延迟敏感性访存模块,为保证该类访存模块的访存请求无延时,配置该类访存模块对应的访存窗口在整个调度周期都是开启状态,使得该访存模块的访存请求在整个调度周期内,都可以无延时的直接传给后级访存调度器。
本实施例提供的访存调度方法,通过根据访存模块对应的访存窗口信息,在调度周期对应的启闭时间内打开访存窗口,并仅对访存窗口开启的访存请求进行访存调度,降低了多个访存模块同时进行访存请求时,带宽发生冲突的概率,访存性能和访存服务质量同时得到了提高。另外,通过为带宽敏感型访存模块分配独占访存总线的访存窗口,为延迟敏感型访存模块分配占用整个调度周期的访存窗口,使带宽敏感型和延迟敏感型访存模块的访存性能和访存服务质量同时得到了保证。
图2为本发明实施例提供的访存调度方法实施例二的流程示意图。如图2所示,在实施例1的基础上,该方法还包括:
S200,接收访存窗口的调整信息;
S210,根据所述访存窗口的调整信息调整所述访存窗口,确定所述访存窗口的信息。
本实施例提供的访存调度方法的执行主体为访存调度装置的回路反馈部分,本实施例称为自适应模块。
在本实施例一种可能的实现方式中,上述200,包括:
接收数据请求,所述数据请求中携带访存模块标识;
相应的,上述201包括:
根据所述访存模块标识,确定与所述访存模块标识对应的访存窗口;
查询本地存储的所述访存窗口所在总线的信息;
确定所述访存总线的空闲时间;
根据预设的第一规则从所述访存总线的空闲时间中为所述访存窗口分配占用访存总线的时长。
其中,此处的数据请求是访存模块发送的。各访存模块的缓存区在该访存模块对应的访存窗口时间内,从内存中读取数据,并存入本地,或者将本地的数据写入系统内存中,在该调度周期的其它时间内,该访存模块利用其缓存区的数据进行数据处理。各访存模块可检测其缓存区数据的利用率,当其出现数据饥饿时,即可向访存调度器发起数据请求,相应的,仲裁模块检测到该访存模块对应的数据请求为变为有效状态,则即刻打开与发起该数据请求的访存模块对应的访存窗口,然后根据该访存窗口所在访存总线的空闲时间将该访存模块对应的访存窗口的长度加长。
相应的,窗口自适应模块检测到有访存模块发来数据请求时,根据数据请求中的访存模块标识,确定该访存模块对应的访存窗口。自适应模块中保存各访存窗口及各访存窗口所在访存总线的信息,自适应模块根据上述信息确定该访存总线的空闲时间,然后根据预设的第一规则,将该空闲时间分配给发起数据请求的访存模块对应的访存窗口。举例来说,若自适应模块收到2个访存模块发来的数据请求,对应的访存总线的空闲时间为20个时钟周期,则可将该20个时钟周期平均分配给这两个访存模块,或者,可根据发起数据请求的访存模块的优先级,为优先级较高的访存模块分配15个时钟周期,为优先级较低的访存模块分配5个时钟周期等,本实施例对此不做限定。
在本实施例另一种可能的实现方式中,上述,S200包括:
接收检测出的访存总线上各访存窗口的状态。
具体的,自适应模块检测访存总线上各访存窗口的数据传输率确定该访存窗口是否包括空闲时间,若发现某访存窗口的数据传输率明显低于其他访存窗口,则确定该访存窗口包括空闲时间;或者自适应模块检测访存总线上各访存窗口的“outstanding”值,若在访存窗口关闭前该值已经等于“0”,则第二计数器开始计数,直到该访存窗口关闭为止,相应的,第二计数器的计数值即为该访存窗口的空闲时间,若该访存窗口关闭后,更新的该访存窗口的该值为“0”,则表示该访存窗口的长度合适。
相应的,上述S210,包括:
根据所述各访存窗口的状态确定包括空闲时间的访存窗口;
根据预设的第二规则缩小所述包括空闲时间的访存窗口的长度。
具体的,自适应模块确定包括空闲时间的访存窗口后,根据预设的第二规则缩小该访存窗口的窗口长度,所述预设的第二规则可以是按照空闲时间的一半进行缩小访存窗口长度,也可以是其他比例进行缩小。举例来说,若自适应模块检测到访存窗口包括的空闲时间长度为200个时钟周期,则可将下一调度周期内该访存窗口的长度缩小100个时钟周期,然后检测缩小访存窗口长度的下一调度周期内该访存窗口的状态,若发现仍有100个空闲时钟周期,则再次将该访存窗口的长度缩小50个时钟周期,直至确定到合适的访存窗口长度,或者,按上述过程,依此缩小该访存窗口空闲时间的1/5、1/4、1/3等,本实施例对此不做限定。相应的,若缩小后的访存窗口对应的访存模块出现数据饥饿,则可再次为该访存窗口增加窗口长度,直至合适。优选的,可以设定某一阈值,通过判断该访存模块对应的访存窗口的空闲时间与该阈值的比例,适当的缩小访存窗口的长度。
本实施例提供的访存调度方法,通过根据各访存窗口的调整信息,调整各访存窗口,提高了访存总线的带宽利用率,减小了访存压力增大时,访存带宽发生冲突的概率,提高了访存性能和访存服务质量。
图3为本发明提供的访存调度装置实施例一的结构示意图。如图3所示,该访存调度装置,包括:第一接收单元300、第一确定单元310、第二接收单元320、第二确定单元330、处理单元340,其中,第一接收单元300,用于接收与各访存模块对应的各访存窗口信息,所述各访存窗口信息包括各访存窗口的长度,所述各访存窗口的长度代表对应的各访存模块占用访存总线的时长;
第一确定单元310,用于根据所述各访存窗口信息,确定各访存窗口在调度周期内的启闭时间,并在对应的启闭时间内开启各访存窗口,所述调度周期指所有访存窗口各执行一次访存调度所需的时间;
第二接收单元320,用于接收访存模块发送的访存请求,所述访存请求中携带所述访存模块标识;
第二确定单元330,用于根据所述访存模块标识,确定与所述访存模块标识对应的访存窗口是否开启;
处理单元340,用于若所述访存模块标识对应的访存窗口开启,则对所述访存请求进行访存调度。
进一步地,所述处理单元,还用于:
若所述访存模块标识对应的访存窗口关闭,则阻塞所述访存请求,直至确定所述访存模块标识对应的访存窗口开启,再对所述访存请求进行访存调度。
进一步地,所述访存调度器,还包括:
第三接收单元,用于接收数据请求,所述数据请求中携带访存模块标识;
判断单元,用于判断所述数据请求的状态,若所述数据请求为有效状态,则开启与所述访存模块标识对应的访存窗口,且在所述数据请求变为无效状态时,关闭与所述访存模块标识对应的访存窗口。
具体的,所述访存模块为带宽敏感型访存模块,所述第一确定单元,具体用于:根据所述访存窗口信息,确定与所述访存模块对应的访存窗口在调度周期内独占的启闭时间;
或者,所述访存模块为延迟敏感型访存模块,所述第一确定单元,具体用于:确定在调度周期内一直开启与所述访存模块对应的访存窗口。
进一步地,上述第一确定单元,具体用于:
根据所述各访存模块的优先级,确定各访存窗口在调度周期内的启闭时间。
本实施例提供的访存调度装置各单元的具体功能和实现方式,可参照上述访存调度方法实施例一的详细说明,此处不再赘述。
本实施例提供的访存调度装置,通过根据各访存模块对应的访存窗口信息,在调度周期对应的启闭时间内打开访存窗口,并仅对访存窗口开启的访存请求进行访存调度,降低了多个访存模块同时进行访存请求时,带宽发生冲突的概率,使访存性能和访存服务质量同时得到了提高。另外,通过为带宽敏感型访存模块分配独占访存总线的访存窗口,为延迟敏感型访存模块分配占用整个调度周期的访存窗口,使带宽敏感型和延迟敏感型访存模块的访存性能和访存服务质量都能得到保证。
图4为本发明提供的访存调度装置实施例二结构示意图。如图4所示,在图3的基础上,该调度装置还包括:第四接收单元400、第三确定单元410,其中,第四接收单元400,用于接收访存窗口的调整信息;第三确定单元410,用于根据所述访存窗口的调整信息调整所述访存窗口,确定所述访存窗口的信息。
在一种可能的实现方式中,所述第四接收单元,具体用于:
接收数据请求,所述数据请求中携带访存模块标识;
所述第三确定单元,具体用于:
根据所述访存模块标识,确定与所述访存模块标识对应的访存窗口;
查询本地存储的所述访存窗口所在总线的信息;
确定所述访存总线的空闲时间;
根据预设的第一规则从所述访存总线的空闲时间中为所述访存窗口分配占用访存总线的时长。
在另一种可能的实现方式中,所述第四接收单元,具体用于:
接收检测的访存总线上访存窗口的状态;
所述第三确定单元,具体用于:
根据所述各访存窗口的状态确定包括空闲时间的访存窗口;
根据预设的第二规则缩小所述包括空闲时间的访存窗口的长度。
本实施例提供的访存调度装置各单元的具体功能和实现方式,可参照上述访存调度方法实施例二的详细说明,此处不再赘述。
本实施例提供的访存调度装置,通过根据各访存窗口的状态信息,调整各访存窗口的长度,提高了访存总线的带宽利用率,减小了访存压力增大时,访存带宽发生冲突的概率,提高了访存性能和访存服务质量。
图5为本发明提供的访存调度装置实施例三结构示意图。如图5所示,该访存调度装置包括,计数器500,调度周期寄存器510,仲裁器520,自适应模块530和总线状态监视器540;
其中,计数器500,用于记录当前开启的窗口的已开启时间;
调度周期寄存器510,用于存储预设的调度周期;
仲裁器520,用于执行如上述访存调度方法实施例一的访存调度方法;
自适应模块530和总线状态监视器540,用于执行如上述访存调度方法实施例二的访存调度方法。
本实施例提供的访存调度装置,根据各访存模块对应的各访存窗口的状态信息,为各访存模块确定访存窗口的在调度周期内的启闭时间,仅对访存窗口开启的访存请求进行访存调度,且根据各访存窗口的调整信息,调整各访存窗口的长度,提高了访存总线的带宽利用率,减小了访存压力增大时,访存带宽发生冲突的概率,提高了访存性能和访存服务质量。
图6为本发明提供的访存调度系统实施例结构示意图。如图6所示,该访存调度系统,包括:访存模块600~访存模块60n,和访存调度装置610,其中,访存调度装置包括如图6所示的,由单元300~单元340构成的仲裁模块611,由单元400~单元410构成的自适应模块612。
具体的,仲裁模块611,执行上述访存调度方法实施例一提供的访存调度步骤,自适应模块612,执行上述访存调度方法实施例二提供的访存调度步骤。此处不再赘述。
进一步地,该系统还包括访存调度器620,与访存调度装置610连接,用于接收所述访存调度装置610发送的访存请求,并对收到的访存请求进行访存调度。
本实施例中的,访存调度器620可为通常使用的访存调度器,例如可以为轮转式访存调度器,也可以是其它方式的调度器,本实施例对此不做限定。
本实施例提供的访存调度系统,访存调度装置根据各访存模块对应的各访存窗口的状态信息,为各访存模块确定访存窗口的在调度周期内的启闭时间,仅对访存窗口开启的访存请求进行访存调度,且根据各访存窗口的调整信息,调整各访存窗口的长度,提高了访存总线的带宽利用率,减小了访存压力增大时,访存带宽发生冲突的概率,提高了访存性能和访存服务质量。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种访存调度方法,其特征在于,包括:
接收与各访存模块对应的各访存窗口信息,所述各访存窗口信息包括各访存窗口的长度,所述各访存窗口的长度代表对应的各访存模块占用访存总线的时长;
根据所述各访存窗口信息中所包括的各访存窗口的长度,确定各访存窗口在调度周期内的启闭时间,并在对应的启闭时间内开启所述各访存窗口,所述调度周期指所有访存窗口各执行一次访存调度所需的时间;
接收访存模块发送的访存请求,所述访存请求中携带访存模块标识;
根据所述访存模块标识,确定与所述访存模块标识对应的访存窗口是否开启;
若所述访存模块标识对应的访存窗口已开启,则对所述访存请求进行访存调度;
所述接收与各访存模块对应的各访存窗口信息之前,还包括:
接收访存窗口的调整信息;
根据所述访存窗口的调整信息调整所述访存窗口,确定所述访存窗口信息;
其中,所述接收访存窗口的调整信息,包括:
接收数据请求,所述数据请求中携带访存模块标识;
所述根据所述访存窗口的调整信息调整所述访存窗口,包括:
根据所述访存模块标识,确定与所述访存模块标识对应的访存窗口;
查询本地存储的所述访存窗口所在访存总线的信息;
确定所述访存总线的空闲时间;
根据预设的第一规则从所述访存总线的空闲时间中为所述访存窗口分配占用访存总线的时长。
2.根据权利要求1所述的方法,其特征在于,所述确定与所述访存模块标识对应的访存窗口是否开启之后,还包括:
若所述访存模块标识对应的访存窗口关闭,则阻塞所述访存请求,直至确定所述访存模块标识对应的访存窗口开启,再对所述访存请求进行访存调度。
3.根据权利要求1所述的方法,其特征在于,还包括:
接收数据请求,所述数据请求中携带访存模块标识;
判断所述数据请求的状态,若所述数据请求为有效状态,则开启与所述访存模块标识对应的访存窗口,且在所述数据请求变为无效状态时,关闭与所述访存模块标识对应的访存窗口。
4.根据权利要求1所述的方法,其特征在于,所述访存模块为带宽敏感型访存模块,所述根据所述各访存窗口信息,确定各访存窗口在调度周期内的启闭时间,包括:
根据所述访存窗口信息,确定与所述访存模块对应的访存窗口在调度周期内独占的启闭时间;
或者,
所述访存模块为延迟敏感型访存模块,所述根据所述访存窗口信息,确定各访存窗口在调度周期内的启闭时间,包括:
在调度周期内一直开启与所述访存模块对应的访存窗口。
5.根据权利要求1~4任一所述的方法,其特征在于,所述确定各访存窗口在调度周期内的启闭时间,包括:
根据所述各访存模块的优先级,确定各访存窗口在调度周期内的启闭时间。
6.根据权利要求1所述的方法,其特征在于,所述接收访存窗口的调整信息,包括:
接收检测出的访存总线上各访存窗口的状态;
所述根据所述访存窗口的调整信息调整所述访存窗口,包括:
根据所述各访存窗口的状态确定包括空闲时间的访存窗口;
根据预设的第二规则缩小所述包括空闲时间的访存窗口的长度。
7.一种访存调度装置,其特征在于,包括:
第一接收单元,用于接收与各访存模块对应的各访存窗口信息,所述各访存窗口信息包括各访存窗口的长度,所述各访存窗口的长度代表对应的各访存模块占用访存总线的时长;
第一确定单元,用于根据所述各访存窗口信息中所包括的各访存窗口的长度,确定各访存窗口在调度周期内的启闭时间,并在对应的启闭时间内开启所述各访存窗口,所述调度周期指所有访存窗口各执行一次访存调度所需的时间;
第二接收单元,用于接收访存模块发送的访存请求,所述访存请求中携带所述访存模块标识;
第二确定单元,用于根据所述访存模块标识,确定与所述访存模块标识对应的访存窗口是否开启;
处理单元,用于若所述访存模块标识对应的访存窗口已开启,则对所述访存请求进行访存调度;
第四接收单元,用于接收访存窗口的调整信息;
第三确定单元,用于根据所述访存窗口的调整信息调整所述访存窗口,确定所述访存窗口的信息;
其中,所述第四接收单元,具体用于:
接收数据请求,所述数据请求中携带访存模块标识;
所述第三确定单元,具体用于:
根据所述访存模块标识,确定与所述访存模块标识对应的访存窗口;
查询本地存储的所述访存窗口所在访存总线的信息;
确定所述访存总线的空闲时间;
根据预设的第一规则从所述访存总线的空闲时间中为所述访存窗口分配占用访存总线的时长。
8.根据权利要求7所述的访存调度装置,其特征在于,所述处理单元,还用于:
若所述访存模块标识对应的访存窗口关闭,则阻塞所述访存请求,直至确定所述访存模块标识对应的访存窗口开启,再对所述访存请求进行访存调度。
9.根据权利要求7所述的访存调度装置,其特征在于,还包括:
第三接收单元,用于接收数据请求,所述数据请求中携带访存模块标识;
判断单元,用于判断所述数据请求的状态,若所述数据请求为有效状态,则开启与所述访存模块标识对应的访存窗口,且在所述数据请求变为无效状态时,关闭与所述访存模块标识对应的访存窗口。
10.根据权利要求7所述的访存调度装置,其特征在于,所述访存模块为带宽敏感型访存模块,所述第一确定单元,具体用于:
根据所述访存窗口信息,确定与所述访存模块对应的访存窗口在调度周期内独占的启闭时间;
或者,
所述访存模块为延迟敏感型访存模块,所述第一确定单元,具体用于:
确定在调度周期内一直开启与所述访存模块对应的访存窗口。
11.根据权利要求7~10任一所述的访存调度装置,其特征在于,第一确定单元,具体用于:
根据所述各访存模块的优先级,确定各访存窗口在调度周期内的启闭时间。
12.根据权利要求7所述的访存调度装置,其特征在于,所述第四接收单元,具体用于:
接收检测出的访存总线上各访存窗口的状态;
所述第三确定单元,具体用于:
根据所述各访存窗口的状态确定包括空闲时间的访存窗口;
根据预设的第二规则缩小所述包括空闲时间的访存窗口的长度。
13.一种访存调度系统,其特征在于,包括:访存模块和如权利要求7~12任一所述的访存调度装置。
14.根据权利要求13所述的访存调度系统,其特征在于,还包括:
访存调度器,与所述访存调度装置连接,用于接收所述访存调度装置发送的访存请求,并对收到的访存请求进行访存调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310557156.5A CN103559147B (zh) | 2013-11-11 | 2013-11-11 | 访存调度方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310557156.5A CN103559147B (zh) | 2013-11-11 | 2013-11-11 | 访存调度方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103559147A CN103559147A (zh) | 2014-02-05 |
CN103559147B true CN103559147B (zh) | 2017-02-08 |
Family
ID=50013398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310557156.5A Active CN103559147B (zh) | 2013-11-11 | 2013-11-11 | 访存调度方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103559147B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930819A (en) * | 1997-06-25 | 1999-07-27 | Sun Microsystems, Inc. | Method for performing in-line bank conflict detection and resolution in a multi-ported non-blocking cache |
CN101419579A (zh) * | 2008-12-10 | 2009-04-29 | 中国科学院计算技术研究所 | 一种在动态随机存储器上提供服务质量的装置和方法 |
CN101625887A (zh) * | 2009-08-14 | 2010-01-13 | 西北工业大学 | 访存请求调度装置以及用该装置进行访存请求调度的方法 |
CN101685427A (zh) * | 2009-09-02 | 2010-03-31 | 北京龙芯中科技术服务中心有限公司 | 一种根据应用的时间裕量对动态内存调度的装置及方法 |
US8314807B2 (en) * | 2010-09-16 | 2012-11-20 | Apple Inc. | Memory controller with QoS-aware scheduling |
CN103150216A (zh) * | 2013-02-27 | 2013-06-12 | 东南大学 | 一种SoC集成的多端口DDR2/3调度器及调度方法 |
-
2013
- 2013-11-11 CN CN201310557156.5A patent/CN103559147B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930819A (en) * | 1997-06-25 | 1999-07-27 | Sun Microsystems, Inc. | Method for performing in-line bank conflict detection and resolution in a multi-ported non-blocking cache |
CN101419579A (zh) * | 2008-12-10 | 2009-04-29 | 中国科学院计算技术研究所 | 一种在动态随机存储器上提供服务质量的装置和方法 |
CN101625887A (zh) * | 2009-08-14 | 2010-01-13 | 西北工业大学 | 访存请求调度装置以及用该装置进行访存请求调度的方法 |
CN101685427A (zh) * | 2009-09-02 | 2010-03-31 | 北京龙芯中科技术服务中心有限公司 | 一种根据应用的时间裕量对动态内存调度的装置及方法 |
US8314807B2 (en) * | 2010-09-16 | 2012-11-20 | Apple Inc. | Memory controller with QoS-aware scheduling |
CN103150216A (zh) * | 2013-02-27 | 2013-06-12 | 东南大学 | 一种SoC集成的多端口DDR2/3调度器及调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103559147A (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1839167B1 (en) | Method and apparatus of reducing transfer latency in an soc interconnect | |
EP3238083B1 (en) | Mitigating traffic steering inefficiencies in distributed uncore fabric | |
US6785793B2 (en) | Method and apparatus for memory access scheduling to reduce memory access latency | |
CN103543954B (zh) | 一种数据存储管理方法和装置 | |
US7765350B2 (en) | Method and system for bus arbitration | |
US9141568B2 (en) | Proportional memory operation throttling | |
EP1922629B1 (en) | Non-blocking address switch with shallow per agent queues | |
US8032809B2 (en) | Retransmission and delayed ACK timer management logic for TCP protocol | |
JP5610636B2 (ja) | トラフィッククラスと関連するポートをもつマルチポートのメモリコントローラ | |
EP2686774B1 (en) | Memory interface | |
US20120072678A1 (en) | Dynamic QoS upgrading | |
US20060010279A1 (en) | Apparatus for use in a computer systems | |
CN107003956A (zh) | 片上系统非核结构中的保证服务质量 | |
US20110197038A1 (en) | Servicing low-latency requests ahead of best-effort requests | |
US9971711B2 (en) | Tightly-coupled distributed uncore coherent fabric | |
US20120290810A1 (en) | Memory Access Latency Metering | |
JP2008544359A (ja) | メモリーコントローラ | |
CN103559147B (zh) | 访存调度方法、装置和系统 | |
CN113791892A (zh) | 数据通路仲裁方法、数据通路仲裁装置及芯片 | |
US9910812B2 (en) | Initiating multiple data transactions on a system bus | |
US20130054902A1 (en) | Accelerating blocking memory operations | |
CN112015527B (zh) | 管理从提交队列获取和执行命令 | |
CN112486871A (zh) | 一种用于片上总线的路由方法以及系统 | |
TWI819635B (zh) | 記憶體控制系統與記憶體控制方法 | |
CN114217918A (zh) | 一种报文调度方法及网络芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100190 No. 10 South Road, Haidian District Academy of Sciences, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CP03 | Change of name, title or address |