一种QoS控制方法、总线系统、计算装置和存储介质

文档序号:115478 发布日期:2021-10-19 浏览:46次 >En<

阅读说明:本技术 一种QoS控制方法、总线系统、计算装置和存储介质 (QoS control method, bus system, computing device and storage medium ) 是由 刘弋波 陈哲 郭晨光 颜伟成 匡双鸽 于 2020-04-09 设计创作,主要内容包括:本发明提出了一种QoS控制方法、总线系统、计算装置和存储介质,用于保证实时设备能够从总线系统,DDR持续稳定的获得需要的带宽,避免出现响应延迟过大等影响用户体验的情况出现。QoS控制方法中,根据DDR控制器的并发处理能力,为实时命令预留部分接收能力;所述方法,包括:接收各发送端口发送的待处理命令,所述待处理命令中携带有设备标识;根据所述设备标识,分别统计已经发往DDR控制器但未完成对DDR颗粒访问的实时命令数量和非实时命令数量;根据统计的实时命令数量、非实时命令数量以及预留的部分接收能力和剩余接收能力,确定QoS控制策略;根据确定出的QoS控制策略,向DDR控制器下发所述待处理命令。(The invention provides a QoS control method, a bus system, a computing device and a storage medium, which are used for ensuring that real-time equipment can continuously and stably obtain required bandwidth from the bus system and DDR (double data rate), and avoiding the occurrence of the condition that the response delay is too large and the like affects the user experience. In the QoS control method, according to the concurrent processing capacity of a DDR controller, partial receiving capacity is reserved for a real-time command; the method comprises the following steps: receiving a to-be-processed command sent by each sending port, wherein the to-be-processed command carries an equipment identifier; respectively counting the number of real-time commands and the number of non-real-time commands which are sent to the DDR controller but do not complete access to the DDR particles according to the equipment identification; determining a QoS control strategy according to the counted real-time command number, the counted non-real-time command number, and the reserved partial receiving capacity and the reserved residual receiving capacity; and issuing the command to be processed to the DDR controller according to the determined QoS control strategy.)

一种QoS控制方法、总线系统、计算装置和存储介质

技术领域

本发明涉及总线系统技术领域,尤其涉及一种QoS控制方法、总线系统、计算装置和存储介质。

背景技术

SOC(System on Chip,系统级芯片)芯片中需要通过总线访问内存的主设备往往具备不同的特性,比如对路径上的延迟敏感的CPU(中央处理器),对带宽需求大的视频编解码引擎和AI(人工智能)加速器,还有一种具备实时特性的设备,比如显示播放引擎和CSI(相机串行接口)模块,其必须在访问内存时一直不间断,持续稳定的获得需要的带宽,否则可能会出现严重影响用户体验的情况。

一般SOC上的总线上都提供了通用的QOS(Quality ofService,服务质量)机制,来满足不同主设备对带宽和延迟等差异化的需求,比如命令的优先级设置,带宽限制或调节器。通过QoS机制可以调高实时性设备发出的实时性命令的优先级,让其更容易在同其他设备访问内存的仲裁竞争中获取优势,尽可能满足实时性需求。其中部分总线还提供了紧急机制(urgency),在实时性主设备因为某一时间段带宽获取不足快要出现饿死(starvation)时,将整个访问内存通路中该设备命令的优先级紧急提高来解决问题。

但是,提高实时性命令优先级的方法在一定程度上能够满足实时性设备的需求,但是,在某些极端情况下,例如,在某一时间段内,大量来自非实时性设备的低优先级命令已经事先发出并挤满了内存控制器中的命令队列和整个通道上的其他buffer(缓存)空间。这些处在pending(等待)状态的非实时性命令会较长时间占据访问内存的通道,这时,即使实时设备开始发出高优先级的实时性命令请求也只能在后面慢慢排队,从而导致实时设备无法及时获得其需求的带宽以及产生过大响应延迟等影响用户体验的情况。

发明内容

本发明实施例提供一种QoS控制方法、总线系统、计算装置和存储介质,用于保证实时设备能够从总线系统持续稳定的获得需要的带宽,避免响应延迟过大等影响用户体验的情况出现。

第一方面,提供一种QoS控制方法,所述服务质量QoS控制方法应用于总线系统中,根据双倍速率同步动态随机存储器DDR控制器的并发处理能力,为实时命令预留部分接收能力,其中,预留的部分接收能力用于处理所述实时命令,剩余接收能力用于处理实时命令或者非实时命令;

所述方法,包括:

接收各发送端口发送的待处理命令,所述待处理命令中携带有设备标识;

根据所述设备标识,分别统计已经发往DDR控制器但未完成对DDR颗粒访问(pending状态)的实时命令数量和非实时命令数量;

根据统计的实时命令数量、非实时命令数量以及预留的部分接收能力和剩余接收能力,确定QoS控制策略;

根据确定出的QoS控制策略,向DDR控制器下发所述待处理命令。

在一种实施方式中,根据统计的实时命令数量、非实时命令数量以及预留的部分接收能力和剩余接收能力,确定QoS控制策略,具体包括:

根据所述实时命令数量和非实时命令数量,如果所述实时命令数量不超过预留的部分接收能力以及非实时命令数量不超过剩余接收能力时,则确定利用预留的部分接收能力处理所述待处理实时命令,利用剩余接收能力处理所述待处理非实时命令;

根据所述实时命令数量和非实时命令数量,如果所述实时命令数量超过预留的部分接收能力以及非实时命令数量不超过剩余接收能力时,则确定利用剩余接收能力处理所述待处理实时命令和非实时命令;

根据所述实时命令数量和非实时命令数量,如果所述实时命令数量不超过预留的部分接收能力以及非实时命令数量超过剩余接收能力时,则确定利用预留的部分接收能力处理所述待处理实时命令,控制所述待处理非实时命令处于等待状态,直至剩余接收能力出现空闲。

在一种实施方式中,在接收各发送端口发送的待处理命令之前,还可选包括:

获取总线带宽占用信息;以及

根据所述总线带宽占用信息,确定总线带宽占用率大于预设阈值时,开启QoS控制方法。

在一种实施方式中,所述待处理命令中还携带有命令优先级信息,其中,所述实时命令对应的优先级信息通常不低于所述非实时命令对应的优先级。

第二方面,提供一种总线系统,包括:

控制寄存器,用于根据双倍速率同步动态随机存储器DDR控制器的并发处理能力,预先配置为实时命令所预留的部分接收能力的大小,其中,预留的部分接收能力用于处理所述实时命令,剩余接收能力用于处理实时命令或者非实时命令;

仲裁器,用于接收各发送端口发送的待处理命令,所述待处理命令中携带有设备标识;以及根据计数器统计的实时命令数量、非实时命令数量以及预留的部分接收能力和剩余接收能力,确定服务质量QoS控制策略;根据确定出的QoS控制策略,向DDR控制器下发所述待处理命令;

计数器,用于根据所述设备标识,分别统计已经发往DDR控制器但未完成对DDR颗粒访问的实时命令数量和非实时命令数量。

在一种实施方式中,所述仲裁器,具体用于根据所述实时命令数量和非实时命令数量,如果所述实时命令数量不超过预留的部分接收能力以及非实时命令数量不超过剩余接收能力时,则确定利用预留的部分接收能力处理所述待处理实时命令,利用剩余接收能力处理所述待处理非实时命令;根据所述实时命令数量和非实时命令数量,如果所述实时命令数量超过预留的部分接收能力以及非实时命令数量不超过剩余接收能力时,则确定利用剩余接收能力处理所述待处理实时命令和非实时命令;根据所述实时命令数量和非实时命令数量,如果所述实时命令数量不超过预留的部分接收能力以及非实时命令数量超过剩余接收能力时,则确定利用预留的部分接收能力处理所述待处理实时命令,控制所述待处理非实时命令处于等待状态,直至剩余接收能力出现空闲。

在一种实施方式中,本发明实施例提供的总线系统,还包括可选的带宽监视器,其中:

所述带宽监视器,用于获取在所述仲裁器接收各发送端口发送的待处理命令之前,获取总线带宽占用信息;

所述控制寄存器,具体用于根据所述总线带宽占用信息,确定总线带宽占用率大于预设阈值时,开启QoS控制方法。

在一种实施方式中,所述待处理命令中还携带有命令优先级信息,其中,所述实时命令对应的优先级信息通常不低于所述非实时命令对应的优先级。

第三方面,提供一种计算装置,所述计算装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一QoS控制方法所述的步骤。

第四方面他,提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一QoS控制方法所述的步骤。

采用上述技术方案,本发明至少具有下列优点:

本发明所述的QoS控制方法、总线系统、计算装置和存储介质,通过预先为实时命令预留DDR控制器的部分接收能力,预留的部分接收能力专门用于处理实时命令,而且剩余接收能力也可以用于实时命令的处理,这样,可以避免非实时命令在一些极端情况下,由于非实时性命令挤满DDR控制器中的命令队列和整个通道上的其他buffer空间,保证实时设备能够从总线系统持续稳定的获得需要的带宽,避免响应延迟过大等影响用户体验的情况出现。

附图说明

图1为根据本发明实施例的设备通过总线访问内存的示意图;

图2为根据本发明实施例的QoS控制方法流程图;

图3a为根据本发明实施例的第一种使用绝对数量预留部分接收能力的示意图;

图3b为根据本发明实施例的第二种使用绝对数量预留部分接收能力的示意图;

图3c为根据本发明实施例的第三种使用绝对数量预留部分接收能力的示意图;

图3d为为根据本发明实施例的第四种使用绝对数量预留部分接收能力的示意图;

图4a为根据本发明实施例的第一种使用相对数量预留部分接收能力的示意图;

图4b为根据本发明实施例的第二种使用相对数量预留部分接收能力的示意图;

图4c为根据本发明实施例的第三种使用相对数量预留部分接收能力的示意图;

图5为根据本发明实施例的总线系统的结构示意图。

具体实施方式

为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。

需要说明的是,本发明实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。

在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

DDR内存颗粒本身的特性决定了对其访问必须密切关注效率问题,比如DDR命令以及数据间各种timing(latency,延迟)的存在,DDR控制器在设计上除了满足DDR本身的协议和时序要求外,还需要充分考虑带宽的利用效率。一般来说,DDR控制器内部会有一个一定深度的命令队列,通过一套策略对命令进行scheduling(调度)或者reordering(重排序),来达到提升效率的目的。另外,在总线内部的各个节点,也会存在缓冲器(buffer)和节拍器(pipeline),它们也能在堵塞情况下缓存一定数量的命令。

如图1所示,其为设备通过总线访问内存的示意图,各路设备(包括实时设备和非实时设备)连接总线,其发出的实时命令和非实时命令经过总线中的仲裁器仲裁后,将访问内存的命令发往DDR(双倍速率同步动态随机存储器)控制器,应当理解,图1仅为设备通过总线访问内存的示意,实际应用中,芯片的总线拓扑结构更加复杂。

总线经过仲裁后,可以将多个pending(等待)的命令一起送往DDR控制器,本发明实施例中,为了便于描述,将DDR控制器的最大接收数量称为并发接收能力(outstandingacceptance ability,本发明实施例中中简称OAA),OAA的大小取决于总线和DDR控制器中的队列和buffer的总容量。即DDR控制器内部命令队列和总线通路上buffer的存在,决定了OAA的来由和大小。

本发明实施例中,为了让保证实时设备能够持续稳定访问内存,根据DDR控制器的并发处理能力,为实时命令预留部分接收能力,其中,预留的部分接收能力用于处理实时命令,剩余接收能力用于处理实时命令或者非实时命令。

例如,以DDR控制器的并发接收能力为24个命令为例,具体实施时,可以为实时命令预留8个命令的接收能力,剩余的16个命令的接收能力为实时命令和非实时命令共享,仲裁器可以根据实际情况确定出不同的QoS控制策略。

需要说明的是,本发明实施例中,将实时设备发送的命令称为实时命令,将非实时设备发送的命令称为非实时命令。

如图2所示,其为本发明实施例提供的QoS控制方法的实施流程示意图,包括以下步骤:

S21、接收各发送端口发送的待处理命令。

具体实施时,总线中的仲裁器接收总线所连接的各路设备通过相应的输入端口发送的待处理命令。在接收到的待处理命令中携带有发送该待处理命令的设备的设备标识,根据设备标识,仲裁器可以判断接收到的待处理命令为实时命令还是为非实时命令。

S22、根据设备标识,分别统计已经发往DDR控制器但未完成对DDR颗粒访问的实时命令数量和非实时命令数量。

具体实施时,在总线中可以增加计数器,分别统计已经发往DDR控制器的实时命令数量和非实时命令的数量。

S23、根据统计的实时命令数量、非实时命令数量以及预留的部分接收能力和剩余接收能力,确定QoS控制策略。

本步骤中,仲裁器根据计数器的统计结果,确定相应的QoS控制策略。

在一个实施例中,仲裁器可以根据计数器统计的实时命令数量和非实时命令数量,如果实时命令数量不超过预留的部分接收能力以及非实时命令数量不超过剩余接收能力时,则确定利用预留的部分接收能力处理所述待处理实时命令,利用剩余接收能力处理所述待处理非实时命令。

仍然以DDR控制器的并发接收能力为24个命令为例,其中,为实时命令预留8个接收能力,剩余16个接收能力为实时命令和非实时命令共享。根据本发明实施例,当接收到的待处理命令通过仲裁器仲裁且下发给DDR控制器后,计数器根据待处理命令的类型为相应命令类型对应的计数加1,当DDR控制器返回数据响应后,表示这个待处理命令已经被处理完,不再是pending状态,计数器根据待处理命令的类型为相应命令类型对应的计数减1,初始时,实时命令只能占用预留的部分接收能力,非实时命令只能占用剩余接收能力,实时命令对应的计数达到预留的部分接收能力时,本例中,即达到8个时,实时命令可以占用剩余接收能力。

为了更好理解本发明的实施过程,图3a-图3d中用球和筐来代表将24个OAA中的8个预留给实时性命令来独占使用,剩下的16个给实时性命令和非实时性命令来共用。

图3a中有左右两个筐,一共可以放下24个球,代表24个OAA,其中左边的筐可以容纳的球的数量是16个,可以分配给实时和非实时命令使用,右边的筐可以容量的数量是8个,只能分配给实时性命令。

图3b中,用黑球代表实时性命令,白球代表非实时性命令,当命令通过仲裁器仲裁并且下发后就给这个命令分配相应的球,并放入对应的框中。当DDR颗粒返回数据响应后,代表这个命令已经被处理完不再是pending的状态,需要从筐中取出相应的球。一开始代表实时性命令的黑球只能放入右边的筐中,代表非实时性命令的白球只能放到左边的筐中。

在另一实施例中,仲裁器根据实时命令数量和非实时命令数量,如果所述实时命令数量超过预留的部分接收能力以及非实时命令数量不超过剩余接收能力时,则确定利用剩余接收能力处理所述待处理实时命令和非实时命令。

如图3c表示等右边的筐装满后,新来的黑球也可以放入左边的筐中。

在另一实施例中,仲裁器根据所述实时命令数量和非实时命令数量,如果所述实时命令数量不超过预留的部分接收能力以及非实时命令数量超过剩余接收能力时,则确定利用预留的部分接收能力处理所述待处理实时命令,控制所述待处理非实时命令处于等待状态,直至剩余接收能力出现空闲。

图3d表示白球永远只能放入左边的筐中,即使右边的筐没满。这种情况下,仲裁器只能允许实时性命令通过并下发,非实时性命令只能在仲裁器的入口等待,直到左边的“筐”回到未满的状态。

在硬件设计实现时,可以通过计数器来统计两种“筐”中黑白“球”的实际数量,仲裁器根据计数器统计的结果来协助仲裁决策。计数器针对实时命令和非实时命令的计数可以从0开始累加,也可以根据预留的部分接收能力的大小从最大值开始递减,这种实施方式中,根据计数器的数量可以判断出实时命令和非实时命令的剩余可用资源有多少。

需要说明的是,图3a-图3d是一种按照绝对数量预留OAA的方法,在某些总线的设计或配置上,访问DDR通路上可收纳的待处理命令数量可能非常大,使用绝对数量控制方法实际效果会下降。

有鉴于此,本发明实施例中还提供了一种相对数量控制的方法,分别如图4a-图4c所示,每一层“筐”放入“球”的规则和图3a-图3d完全相同,只有在下一层的“筐”全部装满“球”的情况,才能将新来的“球”放入上一层相应的筐中,如果不能满足条件,仲裁器将阻止任何命令下发直到规定的条件得以满足才能放行。相比图3a-图3d,图4a-图4c实现了对OAA相对数量控制的机制,在计数器和仲裁器的设计上也更复杂一些。

S24、根据确定出的QoS控制策略,向DDR控制器下发待处理命令。

具体实施时,为了提高带宽利用效率,本发明实施例中,还可以在总线中增加带宽监视器,用于获取带宽占用信息,根据带宽占用信息确定带宽占用率,当带宽占用率超过预设阈值时,开启本发明实施例提供的QoS控制方法,否则,实时命令和实时命令可以共享DDR控制器的并发接收能力,从而实现自适应动态调节带宽的功能。这如同道路上的公交车专用车道,可以只在上下班高峰时期限定使用范围,其他时间普通车辆也可以在公交车专用车道上行驶。

需要说明的是,仲裁器最基础的决策策略依然是基于命令间优先级比较大小决定哪个输入通道的命令胜出,在最大优先级命令同时存在的数量不止一个的情况下可以对端口进行轮询,或者根据等待时间的长短来做出仲裁决定。本发明是在现有仲裁机制基础上引入新的策略,协助仲裁器做出更优的决策。本发明实施例中的计数器可以用来对已经通过仲裁器下发且依旧处于pending状态的实时和非实时命令的数量进行统计,并将结果反馈给仲裁器协助做出仲裁决策。

基于此,步骤S21中接收到的待处理命令中还可以携带有命令优先级信息,其中,实时命令对应的优先级信息通常不低于非实时命令对应的优先级。

本发明实施例提供的QoS控制方法中,将DDR控制器的并发接收能力中的一部分预留给实时命令专用,剩下的给实时设备和非实时设备共用,其设计实现简单,且几乎不会带来面积和延迟的增加,避免响应延迟过大等影响用户体验的情况出现。

基于相同的技术构思,本发明实施例还提供了一种总线系统,如图5所示,包括:

控制寄存器51,用于根据双倍速率同步动态随机存储器DDR控制器的并发处理能力,预先配置为实时命令所预留的部分接收能力的大小,其中,预留的部分接收能力用于处理所述实时命令,剩余接收能力用于处理实时命令或者非实时命令;

仲裁器52,用于接收各发送端口发送的待处理命令,所述待处理命令中携带有设备标识;以及根据计数器统计的实时命令数量、非实时命令数量以及预留的部分接收能力和剩余接收能力,确定服务质量QoS控制策略;根据确定出的QoS控制策略,向DDR控制器下发所述待处理命令;

计数器53,用于根据所述设备标识,分别统计已经发往DDR控制器但未完成对DDR颗粒访问的实时命令数量和非实时命令数量。

图5中用黑球代表访问内存的实时性命令,白球代表非实时性命令,它们经过总线的仲裁器仲裁后往下游的DDR控制器发送。

在一种实施方式中,所述仲裁器52,具体用于根据所述实时命令数量和非实时命令数量,如果所述实时命令数量不超过预留的部分接收能力以及非实时命令数量不超过剩余接收能力时,则确定利用预留的部分接收能力处理所述待处理实时命令,利用剩余接收能力处理所述待处理非实时命令;根据所述实时命令数量和非实时命令数量,如果所述实时命令数量超过预留的部分接收能力以及非实时命令数量不超过剩余接收能力时,则确定利用剩余接收能力处理所述待处理实时命令;根据所述实时命令数量和非实时命令数量,如果所述实时命令数量不超过预留的部分接收能力以及非实时命令数量超过剩余接收能力时,则确定利用预留的部分接收能力处理所述待处理实时命令,控制所述待处理非实时命令处于等待状态,直至剩余接收能力出现空闲。

在一种实施方式中,本发明实施例提供的总线系统,还包括带宽监视器54,其中:

所述带宽监视器54,用于获取在所述仲裁器接收各发送端口发送的待处理命令之前,获取总线带宽占用信息;

所述控制寄存器51,具体用于根据所述总线带宽占用信息,确定总线带宽占用率大于预设阈值时,开启QoS控制方法。

在一种实施方式中,所述待处理命令中还携带有命令优先级信息,其中,所述实时命令对应的优先级信息通常不低于所述非实时命令对应的优先级。

基于相同的技术构思,本发明实施例还提供了一种计算装置,所述计算装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一QoS控制方法所述的步骤。

基于相同的技术构思,本发明实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一QoS控制方法所述的步骤。

通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据处理装置、方法、计算机设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!