SoC常见问题 - axi deadlock

最近多个项目并行,实在是没有时间分享了,今天在评论区看到了一个非常有意义的问题,同样也是社招,校招最常见的问题。那就是axi协议怎么避免死锁呢?
两种死锁场景分别是乱序读和写交织,有的人更熟悉英文,那就是out of order和interleaving。下面我们分析原因。
乱序读:我们知道axi协议支持乱序读,那么为什么能实现呢?这也是常见面试题目,那就是因为axi(现在单指axi3)每个通路都有相应的id,通过请求和响应id的一致来将打乱的顺序恢复。
现在假设m1发给s1的请求id可以是1,2,3,m1发给s2的id可以是3,4,5。现在m1分别发起了两组outstanding传输给s1和s2,rid是随机的,也就是arid_s1和arid_s2存在都是3的可能。并且如图,s1/s2响应的时间是不同的,所以也就存在s1和s2 rid=3的响应顺序是不确定的,例如m1>s2先发出id=3的请求,长度为16,又发出m1>s1的id=3的请求,长度为8,但是由于s2响应慢,m1会先拿到s1的响应,那么m1收到id为3的响应时该怎么区分呢?答案是无法区分,所以这种场景会造成m1工作异常(接到全部数据的时候没有rlast信号,此时正处于s2响应的中间,并没有rlast会导致m1认为传输错误)。具体解决方案是per slave per id,m0发起访问时,会判断已经发出去的id,保证每个slave收到的id是唯一的,所以我们设计axi master时也要这样,当然,我们也可以投机取巧,固定值。
想必一定有熟悉coreconsulatant和arm nic的同学,配置的时候有两个参数,那就是每组outstanding可以使用的id个数,以及每个id对应的指令个数,两者相乘就是outstanding能力,所以为了避免死锁我们会将id个数配置为1(当然仅限第一级矩阵,也就是和自研axi_m连接的地方,这样太暴力),这样master就很容易区分不同slave设备的响应了,但是缺点也很明显,那就是会降低性能,不同id的请求会被矩阵master反压,所以我们设置的需要合理。怎么算合理呢?首先如果大家看过cpu文档,会发现id个数以及不同id的含义是有明确定义的,所以我们配置时要考虑master的id个数,但是master cpu访问我们时限制不了的,所以我们会在那里下手呢?那就是矩阵,需要做remap,nic和noc都有这种设计,实时保证id的唯一性。
乱序读死锁常见结构
交织写:axi3协议支持交织写,原因就是容易造成总线死锁,其实并不是交织写容易造成死锁,而是某些场景容易出现(矩阵配置不合理,或者不同路径delay分析不正确)。我们分析一下原因。
如下图,假设m1对s1地址发起多次burst传输,并且因为矩阵支持交织写,会把m1访问的顺序打乱(原因是master的数据也是由上级传递过来的,顺序可能不同)。如果不好理解的话,可以抽象将m1和m2认为是一个master,都在访问s1,矩阵的interleaving深度是>1的,也就是s1出口会将写的顺序打乱,导致waddr和wdata的顺序改变,那么结果是什么呢?那就是驴头不对马嘴,想写a1,但是数据却写到了a2地址,但是控制通路已经规定了burst长度,如果wlast出现的时候数据不够,或者多了,当然会让slave出现问题喽。
这也是为什么axi4取消了wid的主要原因。
交织写死锁常见结构
交织读为什么不容易死锁呢?
如果是m1访问s1,根本不会出现交织,这个场景安全。
如果m1同时访问s1和s2,因为矩阵延迟的不同,很有可能发生交织,但是由于arid和rid不同,也不会造成死锁。也是安全的。
但是当然存在不安全的场景,那就是master不支持交织,矩阵支持交织,同样会导致总线异常,所以我们配置矩阵ip时,一定要充分了解所有的master设备和slave设备。主要参数如下:outstanding能力,read interleaving深度,master id宽度,master个数,slave id宽度(矩阵slave口id宽度会受master个数影响,id一定不能截位,但是可以remap)等。

泰克推出带KTE V7.1软件的S530参数测试系统,加速半导体芯片生产
几家区块链初创企业进行大规模收购,将掀起区块链行业的并购浪潮?
迈来芯增强型单线CAN收发器应用解决方案
可以开始让人成为电子改造人了吗
基于Atmega8的实用车载空调控制器电路
SoC常见问题 - axi deadlock
Bosch联网大会秀自动停车技术 展现完全无人驾驶操作
机器视觉光学基础知识
浅谈Verilog-95、Verilog-2001与System Verilog之间的区别
LED驱动电源CE认证要求是什么?
不同场景适合用到AI测温机器人
闻泰科技12英寸车规级半导体晶圆制造中心项目正式开工
图像测量仪应用之精密冲压件尺寸测量
6大主流SSD齐聚铁人三项深度测试,谁会站到最后
电动汽车日常使用中燃烧风险的预防和处理方法
浅析永磁同步电机(PMSM)的FOC闭环控制
单通道差分输入模数转换器MS5196T/MS5197T
基于三轴台式工业机器人平台的通用性控制软件
易云维®产业电商APP供应西门子QFM9160风管式温湿度传感器
摩托罗拉One Zoom拍照评分87,历史最佳?