当前位置: 首页 > 专利查询>罗伯特专利>正文

用于动态分派内存带宽的方法技术

技术编号:33643243 阅读:37 留言:0更新日期:2022-06-02 20:19
本发明专利技术涉及:一种用于将内存带宽动态分派给多个处理器单元的方法,所述多个处理器单元经由数据连接与共同的存储单元连接,其中在初始化阶段(200),向所述多个处理器单元分别分派可用内存带宽的初始值(U

【技术实现步骤摘要】
IEEE 19th Real

Time and Embedded Technology and Applications Symposium (RTAS) (RTAS '13). IEEE Computer Society, Washington, DC, USA, 55

64”公知一种机制或方法,其中为CPU集群内的不同CPU内核确保了最小内存带宽。这通过如下方式来发挥作用:向内核分派预算、即用于使用整个供支配的内存带宽的特定值或份额,而且在调节间隔期内监控最后一层的高速缓存错误并且当在调节间隔期内超出该预算时将该内核停止。该方法还提供了基于以前的使用历史来动态分派内存带宽的可能性。然而,预测总是考虑以前的间隔期并且不受事件控制。假定为每个内核静态分派预算并且接着重新分配未使用的预算。
[0007]内存有意识规划的另一种可能性是例如事先通过规划器来规定应在特定时间点在不同内核上共同被执行的任务,使得内存限制无法被扩展。也可以将应用程序整理成存储和计算阶段,而且可以规划在不同内核上的应用程序的不同存储阶段。然而,如下方案是值得期望的,该方案独立于规划逻辑并且应用程序行为不发生变化。
[0008]在硬件侧,嵌入式高性能平台例如越来越多地提供用于在主机(例如CPU、GPU、DMA)与主内存之间的连接的QoS模块。在此,“QoS”代表“服务质量(Quality of Service)”,而且是服务质量与要求的匹配程度。这些QoS模块有助于基于像挂起事务那样的不同参数对数据流量的调整、速率调整或者基于延迟的调整。例如,在连接上的寄存器可以被配置为使得例如为GPU规定针对挂起事务的限制,以便该连接不被内存事务所淹没。接着,一旦超过该限制,该连接就限制来自GPU的传入的数据流量,使得其它主机可以访问内存。通常,这种模块能通过寄存器来编程并且控制与该连接有连接的主要组件。
[0009]然而,这种QoS模块有缺点。一方面,QoS模块将整个内存集群视为唯一的主机,因为整个集群在唯一的端口或唯一的接口处与该连接进行连接。借此,QoS模块必要时只提供在集群层面上的调整,并且可能无法在不同的内核之间进行区分,这没有解决跨内核竞争的问题。另一方面,调节参数的静态配置可能不足以高效使用共同的内存。因而,附加地提出了一种软件机制,该软件机制考虑应用程序的不断变化的内存使用模式并且可以在QoS模块中对这些调节参数进行重新配置。
[0010]本专利技术提出了如下可能性:还在连接层面上动态调整用于不同主机的内存带宽——这些主机不仅可以是各个处理器单元而且可以是这些处理器单元(或内核)的组,而且附加地在一组处理器单元之内、即在主机之内调整在这些内核之间的内存带宽。
[0011]为此,本专利技术提出:在初始化阶段,向多个处理器单元分别分派可用内存带宽的初始值;而且为内存带宽的平均使用确定容许范围。该容许范围例如可以通过用于使用内存带宽的下极限值和上极限值来规定。在此,例如对于上极限值来说,可以选择最大可能利用率减去对于实时处理器单元来说强制需要的利用率(如随后还更详细地描述的那样)。对于下极限值来说,例如可以选择用于上极限值的值和非实时处理器单元的平均利用率中的最小值。根据情况可以改变这些极限值。此外,优选地在初始化阶段例如为用于所述多个处理器单元中的至少一个处理器单元的QoS模块指定至少一个质量参数。适宜地,该初始化阶段发生在(具有处理器单元和存储单元的)整个系统正常运行之前。如果该初始化阶段使用基于在运行时对内存访问的监控的分配机制,则例如可以预先配置这种初始化阶段的时长。
[0012]对可用内存带宽——即一种预算——的这些初始值的指定或确定例如可以通过如下方式实现:尤其是利用附加的缓冲区,向被用于实时计算的这种处理器单元分别分派
最大所需值,作为可用内存带宽的初始值。为此,可以在初始化阶段的框架内进行一种校准,在该校准期间,这些处理器单元独立运行并且在此这些处理器单元的所需的内存带宽——即一种内存访问规范——被确定。能够适宜的是:针对实时处理器单元(所谓的real time core,RTC)执行针对最坏情况(worst case)的内存规范创建,其方式是将该内存规范创建与内存密集型基准一起在其它处理器单元上实施。借此,最终应该实现:这种处理器单元总是被提供所需的内存带宽,以便可以实时工作。在这一点上应提及:实时处理器单元应被理解成处理器单元,该处理器单元(尤其是只)被用于实时计算;然而,该处理器单元的硬件可以与其它处理器单元的那个硬件相同。
[0013]另一方面,可以向不被用于实时计算的处理器单元分别分派平均所需值,作为可用内存带宽的初始值。同样可以用所提及的类型的校准来确定该平均所需值,在该校准期间,这些处理器单元独立运行并且在此这些处理器单元的所需的内存带宽被确定。但是,也可设想的是:以其它方式分派这些初始值,例如通过经验值来分派这些初始值。
[0014]也可设想的是:使用如截止期限或者在截止期限与响应时间(response time)之间的差(laxity(松弛))那样的渡越时间参数,以便确定初始值,并且必要时也以便检查所分派的值是否足够。截止期限在实时处理中发挥作用,其中在硬截止期限、也就是说在截止期限之后的结果没用与软截止期限、也就是说质量在该截止期限之后下降之间有区别。接着,初始值可以在初始化阶段期间例如反复地被更新,更确切地说直至所有处理器单元的错过的截止期限(missed deadlines)的数目低于预先确定的阈值为止。
[0015]然后、即在初始化阶段结束之后并且借此尤其是在具有处理器单元和存储单元的系统运行期间,所分派的内存带宽反复地被检查并且在需要时被适配。这例如可以在彼此交替的监控和调整阶段的框架内进行。为此,确定多个处理器单元对内存带宽的平均使用的当前值——即平均内存利用率,而且如果该当前值处于该容许范围之外,则使所述多个处理器单元中的至少一部分的可用内存带宽的值适配。即,这可以称为调整阶段。在此,所述多个处理器单元的该部分(即对其来说使可用内存带宽的值适配的那些处理器单元)尤其包括不被用于实时计算的处理器单元。而在用于实时计算的处理器单元的情况下,可以省去适配,以便实时应用可以继续可靠地被实施。
[0016]如果平均值低于下极限值,则可以提高可用内存带宽的值。而如果平均值超过上极限值,则可以降低可用内存带宽的值。借此,可以动态地适配内存带宽并且尽可能高效地利用该内存带宽。
[0017]如已经提及的那样,尤其是当所述多个处理器单元中的至少两个处理器单元是处理器单元组的部分并且通过公共接口与数据连接进行连接时,该做法也能应用且优选。借此,该处理器单元组形成了已经被寻址的主机,例如在处理器单元的意义上具有多个处理器内核的CPU或CPU集群。接着,同样可以将所述多个处理器单元中的至少一个其它的处理器单元经由接口与数据连接单独连接,即独立地形成主机,诸如在GPU的情况下。
[0018]此外,例如基于首先确定的用于使用内存带宽的指标,确定每个处理器单元对内存带宽的使本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于将内存带宽动态分派给多个处理器单元(122、124、126、128、130)的方法,所述多个处理器单元经由数据连接(140)与共同的存储单元(142)连接,所述方法具有如下步骤:在初始化阶段(200),向所述多个处理器单元(122、124、126、128、130)分别分派可用内存带宽的初始值(U
I
),并且为内存带宽的平均使用确定容许范围(U
min
、U
max
),随后反复检查所分派的内存带宽并且在需要时使所分派的内存带宽适配,其包括:确定所述多个处理器单元(122、124、126、128、130)对内存带宽的平均使用的当前值(U
m
),而且当所述当前值在所述容许范围(U
min
、U
max
)之外时,使所述多个处理器单元(126、128、130)中的至少一部分的可用内存带宽的值适配。2.根据权利要求1所述的方法,其中所述多个处理器单元中的至少两个处理器单元(122、124、126、128)是处理器单元组(120)的部分并且经由共同的接口(121)与所述数据连接(140)连接。3.根据权利要求2所述的方法,其中所述多个处理器单元中的至少一个其它的处理器单元(130)单独地经由接口(131)与所述数据连接(140)连接。4.根据上述权利要求中任一项所述的方法,所述方法还包括:在检查内存带宽的框架内,确定每个处理器单元(122、124、126、128、130)对内存带宽的使用的当前值(U
A
),而且当处理器单元(122、124、126、128、130)对内存带宽的使用的当前值(U
A
)超过所述初始值(U
I
)时并且当处理器单元(126、128、130)不被用于实时计算时,使...

【专利技术属性】
技术研发人员:A
申请(专利权)人:罗伯特
类型:发明
国别省市:

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

1