Memory read thru PCI performance issue on modern motherboards

Discussion created by vitalyn on Mar 28, 2011

I'm hardware and software developer. Two years ago I'v developed PCI card. It reads data from RAM as Bus Master and transfers it to other hardware. For one task it is required to read 48 packs of data (6 words per pack, 32 bits per word). It is very important how many tasks per second can be performerd. 

We used different motherbords. Best result was achieved on ASUS M2N SLI motherboard (Athlon X2 2.6 GHz, nForce 570 chipset, DDR2 2x1GB) - more then 20 000 tasks per second (20 kHz). It is good result but now this model is not available. Also we've used Mini-ITX Intel D945GCLF2D motherboards (Atom 1 GHz, DDR2 2x1GB) - about 11 kHz. Bad. I've tested ASUS M4A88T-M  (Athlon II X2 3.1 GHz, AMD 880G/SB710 chipset, DDR3 2x2GB) - performance is 9.45 kHz. Very bad.

I've investigated this problem with oscilloscope. Approximately half of  transaction aborted by #STOP immediately after Memory Read command cycle.

Software runs under Linux. System has 2 GB of memory - 1GB is dedicated for use by my software and PCI board, other 1 GB is left for use by Linux. Software prepares data and puts them in dedicated memory. When all data is prepared and placed in RAM software starts PCI card to work. It works in Bus Mastering mode (DMA). When PCI card works it is nothing to do by software.

I've tried to install different number of memory modules, change all settings in BIOS setup... Nothing helps.

What modern motherboard or chipset can I use? I need good PCI performance (read from RAM). I'm developing new PCI-e card with 1GB memory onboard now but I need urgent solution for current hardware.