NIC总线-AHB2AXI转换性能问题

NIC总线-AHB2AXI转换性能分析

最近工作遇到NIC总线中AHB2AXI转换性能问题,记录一下。

  • 现象

        如下图所示,M1为AHB Master,数据位宽32bit,时钟频率100MHZ。NIC总线主时钟200MHZ,AXI协议。S0为AXI Slave,数据宽度64bit,时钟频率是200MHZ与总线时钟同步。M1时钟与总线时钟1:2同步。M1发出AHB交易到AXI交易的转换在NIC_BUS中进行。

M1是带宽敏感master,需要在一定时间读取一定size的数据,有一定的性能需求。在系统级性能测试中,M1发出AHB INCR transactions,发现NIC总线通过拉低hready_in(M1输入信号)反压M1,将M1发出INCR BURST交易转换为AXI SINGLE交易,等待S0返回数据后,拉高hready_in,M1才能发出下一交易。当总线的req和rsp路径延迟较大,M1的读数据性能收到很大限制,不满足设计需求。

  • 问题分析

        AHB协议中burst支持INCR不定长传输,定长INCR4/INCR8/INCR16传输。NIC总线在进行AHB2AXI协议转换时,对于INCR类型AHB burst,由于不定长,总线会将AHB INCR BURST转换成AXI Single交易。

对于定长INCR4/INCR8/INCR16,总线会将交易转换成AXI LEN=4/LEN=8/LEN16的INCR交易。

  •  解决办法

  1. 为了提高M1性能,M1 AHB接口能力可以设计成支持INCR4/INCR8/INCR16定长BURST特性,如果数据量不满足定长size,最后剩余数据使用INCR传输,这样对总体性能有很大提升。
  2. AHB总线支持Early Write Response,在NIC_BUS配置过程中,AHB接口配置成支持Early Write Response,配合HPROT[3]=1(cacheable),可以提升AHB INCR BURST性能。
    1. AHB-Lite Read INCR bursts with HPROT[3] = 1,被转换成AXI INCR4 Bursts
    2. AHB-Lite Write INCR bursts with HPROT[3] = 1,被转换成AXI INCR4 Bursts,此时会数据未到达Slave便会提前返回Response。如上图所示,总线不会等待S0返回Bvalid便会提前返回response给M1。

四.测试验证

  1. M1 INCR W, HPROT[3] = 0

  1. M1 INCR R, HPROT[3] = 0

  1. M1 INCR4 W, HPROT[3] = 0

  1. M1 INCR4 R, HPROT[3] = 0

  1. M1 INCR8 W, HPROT[3] = 0

  1. M1 INCR8 R, HPROT[3] = 0

  1. M1 INCR W, HPROT[3] = 1

  1. M1 INCR R, HPROT[3] = 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值