需求评估当把Wi-Fi协议栈及无线报文处理放到一个独立的CPU核上的时候,对CPU的主频要求,本文档根据数据处理的使用指令数在理论指令总数中的占比,给出一个经验模型来对CPU的频率要求做一个粗略的评估。该模型还需要进一步的验证完善。
计算公式
当CPU仅用做Wi-Fi报文处理时,可以用以下公式来计算CPU的理论占用情况,反过来也可以用该公式推演在达到极限吞吐量的情况下,已知DMIPS的CPU需要的工作频率。
α = RTP ÷ ((DMIPS × CPUFREQ ÷ PerPkt_Instruction_Num) × PerPkt_size × 8) |
α: 报文处理指令的CPU指令占用率,一般在单核上用单线程系统处理报文的时候,理想状态下满载是,系统指令的CPU占用率的经验值是5%左右,所以α的极限值应该在95%左右
RTP: 期望(或实测)的Throughput(Mbps)
DMIPS: CPU data sheet 提供的CPU DMIPS值
CPUFREQ: 当前CPU工作主频
PerPkt_Instruction_Num 报文处理流程中完成每笔包处理需要的总CPU指令数,64Byte小包的经验值是4000条指令,1500Byte大包的经验值是8000条指令
PerPkt_size: 每笔报文大小(MSDU)
模型验证
以Quantenna的ARC600架构的单核产品来验证上述模型
RTP: 1500Mbps (QTN该产品实测UDP TX Throughput)
DMIPS: 1.7 (ARC600 Datasheet)
CPUFREQ: 550MHZ (ARC600 Datasheet)
PerPkt_size: 1518 Byte(测试环境设定)
PerPkt_Instruction_Num: 7200(QTN profiling value)
代入公式可得 α= 95.1%
该结果比较符合模型预期及经验数值,但该产品有极少部分报文会offloading到其他core,所以实际α值应该略低于95%
代入ARMS推演
以Cortex-M0作为推演对象
RTP: 产品规划100Mbps
DMIPS: 0.87 (CPU Datasheet)
CPUFREQ: 待推演
PerPkt_size: 1518 Byte
PerPkt_Instruction_Num: 8000(experience value)
α: 90% (保守以90%计算)
代入公式,可以得出CPUFREQ = 84.13MHZ
假设CPU还需要保留30%的CPU带宽供APP使用,则CPUFREQ = 84.13 ÷ 0.7 = 120.18MHZ
以Cortex-M33作为推演对象
DMIPS: 1.5 (CPU Datasheet)
代入公式,可以得出CPUFREQ = 48.80MHZ
假设CPU还需要保留30%的CPU带宽供APP使用,则CPUFREQ = 48.80 ÷ 0.7 = 69.71MHZ
Notes
* 多核协作处理报文的情况下,DMIPS 需要乘以核心数。
* 在单核单线程系统的情况下,评估只需要考虑TX/RX单方向,取系统负载较重的一个方向即可。
* Arm Cortex-M Comparison Table