Low speed for PCI express driver
I am currently writing a PCI-express driver for a lab-PCIcard with a lots of memory on it. The driver should be used to access the memory and transport large amounts of data. My problem is that I cannot get good enough transfer speed on bus. I am using mmap in the driver and in my user application to map the PCI cards memory right up in userspace. Then I am using memcpy to read and write to the mmaped area. The transfer speed I get is 25Mb/s when writing from the PC to the PCIcard but only 2,5Mb/s when reading from the card to the PC. Why does it differ that much? Can any one give me some tips about how to increase the transfer speed? Can I do burst read/writes in any way? The PCI card do not have a DMA controler is it possible to use one from the motherboard if present?