阅读:1321回复:11
紧急!!!usb在主板的问题
usb数据传输接入主板时,运用什么技术尽量不占用cpu时间???它和内存的数据交换是采用DMA吗???我看到说主板的主控制器是接入PCI总线和PC总线相连,请大虾赐教详解,欢迎大家讨论!谢谢!!!
|
|
沙发#
发布于:2004-02-27 14:47
主板usb主控制器和usb设备是主从式结构,数据传输时必然耗费cpu资源,它不是DMA方式。数据量越大,占用主板cpu时间越多。我们在上位机采用windows多线程编程,以免同时运行其他大程序时速度变慢。以上是一点愚见。
请大虾们赐教!!! :D :D |
|
板凳#
发布于:2004-02-27 15:33
我看到有些usb芯片介绍有 高速的DMA接口,不太明白。通常是在主板上外部和内存数据交换实施DMA,我想请教:是不是主板usb主控制器选用高速的DMA接口的芯片,就可以和usb外设实现DMA?????
|
|
地板#
发布于:2004-02-27 16:45
大虾们快进来呀,
:( :( :(, 请问usb芯片的 高速DMA接口的应用情况??? 它的FIFO可以和MCU/DSP直接相连,DMA用在那些接口呀??? 请大家帮忙呀!!!谢谢!!! |
|
地下室#
发布于:2004-02-27 17:13
强烈恳求大师们前来灌水!!!
:( :( :( :( :( |
|
5楼#
发布于:2004-03-04 09:31
:(很遗憾呀,由于USB2.0数据采集卡比较占用CPU时间,我的赛羊2G被耗掉接近40%的资源,加上显示就快60%了,而我还要同时在后台实时处理其它任务,这样势必导致整个系统的实时性不好,老板决定暂缓USB,采用PCI采集卡,请大家帮我想想办法,运用USB有啥法子解决实时性的难题???谢谢了!!!
我对USB技术一片痴情呀。 |
|
6楼#
发布于:2004-03-05 23:42
DMA接口是为了能够让外设不经CPU干预(实际上是少量干预),就能将数据转到内存中去,并通知CPU操作结果(是否成功等)。CPU不干这个事,那得有别人干。谁呀?DMA控制器。虽然CPU闲着了,可以做一些运算或与被释放总线无关的事情,但在很多时候它也无事可做。所以如果CPU的CACHE越大越好,因为这时它可以关起门来在CACHE上忙活。
上面说的是PC上面的。可见与主板(一方面硬件,一方面BIOS)和CPU的关联很大。建议搞一个双CPU的主板试试,如果银子足的话:) 在设备方面,如果有条件也可以采用DMA控制器。但最好MCU或DSP片内有足够大的内存做缓存。这样数据可以预先备好。IN流程会是这样: 1。MCU忙着准备数据在片内RAM,同时DMA控制器忙着给USB芯片灌数据(从片外RAM),此时USB芯片也在发数据。 2。MCU忙着把片内数据倒到片外,同时USB芯片忙着往外发。 3。又回到1。 要想充分发挥USB的带宽,必须保证MCU和DMA控制器足够快,以使得在1。的阶段USB还在发数据。 这就是INTEL它们那些做CPU的所谓LINE(流水线处理)。完全资本主义呀,不让人休息啊! |
|
|
7楼#
发布于:2004-03-06 12:39
laoda,usb芯片在这里是指host上的呢,还是设备上的呢?
ths! |
|
8楼#
发布于:2004-03-06 13:55
zmwk说得有道理,
我现在遇到的是pc机处理usb外设传来的数据,因为比较耗费CPU的问题,我用usb2.0采集卡传输速度能达到30M左右,主要是进入PC机后,由于不是采用DMA,比较耗CPU资源而导致失时性的难题。 我在想,如果主板上的USB主控制器能利用上DMA,是不是就可以和内存实施DMA,如果不是,那么有些USB微处理器带的DMA接口是不是只能在外设电路中运用?还是其他呢?请指点迷津,谢谢!!! :( |
|
9楼#
发布于:2004-03-06 14:07
usb中的dma主要是指设备芯片,如果要想在上位机上用dma,其实就是用dma的方式来转存数据!
设备方的数据必须经过host controller,你获得数据后可以有多种方法处理,最常用的方法就是从驱动返回到应用程序再写到文件里,这样速度越高占用cpu时间越多,而且像你那样达到30M的(是B还是b?),硬盘已经吃不消了,因此不光是usb的问题。 我想你可以开一个很大的虚拟内存(我知道pci上经常这么做),从驱动来的数据直接放到内存里去,这样i/o管理器会把数据直接写到里面,省掉了一次拷贝和写硬盘这两个过程,效率很提高不少。 |
|
10楼#
发布于:2004-03-06 17:28
jinghuiren分析得不错,我的问题不出在传输速度上,而在于PC进行数据处理时,耗费CPU的资源比较多,使我的整个系统(不光是处理USB数据)的实时性不好,
jinghuiren说的PCI可以开虚拟内存,我想是因为PCI本身的硬件机制的原因吧,它可以通过编写驱动程序来实现吗?还是其他呢?? 谢谢! |
|
11楼#
发布于:2004-03-08 19:58
关于usb主从式的协议架构,占用PC机CPU资源问题,我想是不是协议本身有改进的余地(不能光是传输速度的提高),或者USB主控制器硬件机制有完善的地方,因为和上位机采用DMA方式,就可以更好地节省CPU资源,在某些应用场合,是很有现实意义吧,请大家来讨论。
:) |
|