2
votes

What is the realistic data transfer rate over a 32-bit/33MHz PCI bus? We need to transfer 32K 32-bit samples from a PCI card to an Intel CPU running Windows. I would think the block would transfer in 1msec but it is taking 40msec. The PCI board has a PLX PCI-9056. We are accessing card memory with a virtual address, but our CPU is bricked-out which make me think the data rate is being held up by CPU involvement. If we go to DMA, will we transfer in closer to 1msec? The reason I have my doubts is the PXI SDK User Manual states:

"BAR space memory read/write is generally slow in relative terms. Reads are typically only 2-4MB/s."

1
Is the transfer using PIO? If so, I found with a PCI bus analyzer, on an intel system, that the bus was only utilized about 1/8th of the time. On an AMD-equivalent, no such limitation was found. With that said, the CPU utilization sounds like the bottleneck. DMA should help then - even if the CPU utilization is not related to the transfer itself.ash
A bus-master device should get the best performance. Is that an option?ash
Another thought - if the CPU is pegged, it most likely is not sitting on I/O instructions. Might be something else going on there worth looking at.ash
The transfer now is "direct slave" without DMA, I assume it must be PIO? The processor is a Celeron. Yes, the 9056 does support bus mastering. My question is centered around what data rate I should expect going to DMA.BenYL
I understand. My understanding of PCI and DMA doesn't exist. I did find discussions that seem to indicate there really is no DMA - not from the Host side; only bus-matering. Bus mastering theoretically will transfer at the bus rate. Since the writes go directly to the memory controller, bypassing the CPU, and PCI is slower than memory, bus mastering should be able to reach the bus theoretical limit. Anyway - I hope someone more knowledgable answers.ash

1 Answers

2
votes

You should check if you can enable burst mode and continuous burst, such that multiple DWords can be transmitted without new address cycles. This makes things much faster. The PLX PCI9056 supports this option, but it must be set by SW accordingly. We have data rates up to 90 MB/s with DMA Master Transfer on our custom designed frame grabber card.