对于Qos_generator 的regulator模式来说可以配置的寄存器如下表:
因为我们没有使用external的clk来做count,也没有使用外部的threshold,所以都是使用的internal的时钟。
根据文档讲解的概念Bandwidth设置为下:
Urgency使用来源如下:
当SocketQosEn不开启且register mode bypass时,直接使用上游IP传来的QoS映射的urgency值。Register mode不是bypass的时候,会使用qos generator产生的urgency值。(这里理解为qos generator内部是有默认值的,它的功能机制有可能是常开的,即只有SocketQosEn=0 Register Mode=Bypass的时候Qos generator是没有作用的)。
当SocketQosEn开启的时候会使用qos generator和Socket QoS中最大的那个QoS值。
Saturation设置为
因为在软件界面处也会配置saturation的配置,在实际使用的时候可能当SocketQoSEn开启的时候会使用register value,当没开启的时候使用的就是一开始软件配置的默认值。
根据training 文档可知regulator 的counter计数是按照如下规则:
当一笔request的最后一个response回来的时候,增加这笔request传输的总bytes数,然后按照设置的bandwidth 需求来每个cycle减少相应的bytes,便会出现上图中的楼梯型图像。
所以根据这个含义可以认为寄存器中设置的bandwidth就是每个cycle减少的bytes数量,saturation就是设置的上图中红线的阈值。
Saturation的设置 training文档中的指导如下:
Window time of regulation就是下图中的react window time。
分析认为指导意见是当IP发出的最大带宽超过了我们设置的最大带宽时,设计者希望多久之后将urgency的等级降下来,如果希望很快那么saturation相应较少,如果可以多容忍一段时间,那saturation相应可以设置的较大。
文档也给出了一些场景如下: