阅读:2052回复:7
pci数据卡设计如此方案是否可行?
我有一个朋友,用irp排队,应用层不断的writefile,使irp队列不空,从而成功得到连续码流。但他的速率不能超过30Mbit/s,很郁闷。
我现在做一块类似的东西,我打算不使用irp排队,采用deviceiocontrol和驱动通信,在驱动中设4个事件,开辟4块内存作为循环dma buffer,当一个dma完成的中断请求到来后,该块内存则由主机继续填充。 当初有个人做vxd时大体就是这种思想。这样就避免了irp排队,不知 是否比irp排队的方法好?应该注意什么? |
|
|
沙发#
发布于:2001-06-23 21:49
能解释一下IRP排队吗?
|
|
|
板凳#
发布于:2001-07-06 08:58
除了软件驱动中用Double buffer或是4缓冲外,可能还要考虑是否需要在硬件上加以缓冲。不知你用什么硬件,要考虑PCI总线的Latency,可能会造成丢数据。
|
|
|
地板#
发布于:2001-12-10 08:41
你的朋友也做码流,可以交流一下。
|
|
|
地下室#
发布于:2001-12-10 09:33
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2001-12-10 13:26
What is \"SCATTER/GATHER\"..
I study the Block Device Driver and UMSS Sample.... It uses the old way to ctrl Mass Storage. My friend says it realted to SCSI or RAID????? can any one tell me clearly. thx |
|
|
6楼#
发布于:2001-12-10 17:41
用共享缓冲区(驱动程序和用户程序之间)是否会好一些?
|
|
7楼#
发布于:2001-12-11 08:39
回复一下nouk的问题:
s/g模式是针对现有ia体系计算机存储器管理中线性地址连续,而物理地址不连续的问题导致dma传输困难而产生的一种dma传输方法,具体表现是将线性连续的分页内存的物理地址以链表的方式存储于系统存储器或local bus(你自己设计的系统上的总线),支持s/g模式的dma引擎只需要你提供该链表的首地址(当然是物理地址),以后每完成一页,自动取得下一页的物理地址.该方式相对于block transfer,软件设计上优越很多 |
|
|