首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Poulsbo系统控制器集线器(US15W)中LPC总线的配置寄存器

Poulsbo系统控制器集线器(US15W)中LPC总线的配置寄存器
EN

Stack Overflow用户
提问于 2013-09-28 21:20:22
回答 1查看 1.1K关注 0票数 11

我们有一个基于Atom Z 510/Intel SCH US15W Q7卡的系统(运行Debian )。我们需要从低针计数总线上的设备中传输数据块。据我所知,这个芯片组不提供DMA设备,这意味着处理器必须在软件循环中一次读取一个字节的数据。(设备驱动程序实际上使用"rep“x86指令实现了这一点,因此如果我正确理解的话,循环实际上是由CPU实现的。)

这远远不是最优的,但应该有可能达到14 4Mb/s的传输速率。相反,我们几乎无法管理4MB/s的事务,总线上的事务距离不超过2us,尽管对从设备的每次读取都在560 is内完成。我不认为公共汽车上的其他车辆是罪魁祸首,但仍在调查中。

我的问题是:

是否知道SCH上是否有可能影响LPC总线定时的配置寄存器? 我在Intel网站上找不到设备上的任何有用信息,也没有在Linux内核代码中发现任何似乎在篡改此类寄存器的信息(但当涉及到Linux内核时,我是个菜鸟)。

我不是x86的专家,所以任何其他可能起作用的因素,或者任何其他与这个设备有关的“战争故事”,也是很好的了解。

编辑:,我找到了数据表。我没有看到任何解释这种行为的东西,但我正在研究将我们的设备映射为固件设备的可能性,因为固件总线周期似乎没有同样的延迟。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-26 00:23:29

为了记录在案,解决方案是修改FPGA固件,使芯片的数据输入/输出寄存器映射到四个相邻地址,驱动程序修改为执行32位inb/outb指令。虽然SCH没有实现32位的LPC读写操作,但结果是4个背对背的8位操作,然后是与我以前使用单个字节时相同的死时间,这意味着它平均每个字节大约1U。不太理想,但吞吐量仍然是两倍。

事实证明,固件周期更快,因为SCH从固件闪存一次传输64个字节-在64字节之后有相同的1.4us间隙,表明这是设备的每事务延迟。利用这一点可能比上面的解决方案要快一些,但是折衷的是,它仅限于64个字节块,而且由于读取固件所需的额外周期,每个字节需要更长的时间(680 is )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19071793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档