linux驱动的时序的作用,ARM Linux内核驱动程序中的关键时序

本文讨论了IMX25上的ARM缓存配置,16KB L1缓存性能,以及Linux在处理TLB未命中、数据中止等问题上的挑战。作者提出通过IRAM和FIQ避免争用,并强调了ETB响应速度。关键词包括ARM缓存、Linux问题、TLB、DMA、FIQ中断和IRAM优化。
摘要由CSDN通过智能技术生成

IMX25(ARM926)上的ARM缓存是16K代码,16K数据L1,长度为32byte或8条指令. DDR-SDRAM控制器运行在133Mhz和16位总线,传输速率约为300MB / s.缓存填充应该只需要大约100nS,而不是9uS;这大约是100倍.

但是,Linux还有其他四个问题.

> TLB未命中和页面表行走.

>数据中止.

> DMA主人窃取.

> FIQ中断.

除非你有一个巨大的显示屏,否则LCD主机不太可能窃取足够的带宽.您的显示器是否大于1 / 4VGA?如果没有,这只是内存带宽的10%,这将与处理器一起流水线.你有以太网或USB有效吗?这些外设具有更高的数据速率,并且可能导致与SDRAM的这种类型的争用.

所有这些问题都可以通过编写相关的toggler PC并将其复制到IRAM来避免.见:iram_alloc.c;此文件应该可以移植到旧版本的Linux. XBAR开关允许同时从SDRAM和IRAM提取. IRAM仍然可以成为其他DMA主设备的目标.如果您真的被按下,请将代码移动到ETB缓冲区,系统中没有其他主机可以访问.

TLB未命中实际上可能非常陡峭,因为它可能需要运行几个单拍SDRAM周期;仍然应该在1uS以下.您尚未发布代码,因此变量和/或其他可能导致数据故障无法屏蔽.

如果您有任何使用FIQ的驱动程序,即使您屏蔽了正常的IRQ中断,它们仍可能仍在运行.例如,该系统的ALSA驱动程序通常使用FIQ.

ETB和IRAM都是32位数据路径和低等待状态.任何一个都可能比DDR-SDRAM提供更好的响应.

我们通过使用FIQ和IRAM在IMX258上使用其他协议使用位冲击来切换GPIO,从而实现了亚微秒级响应.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值