LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

AccessHW is 5 times slower under XP than 2000

We are using the Port and Memory Utilities for Windows
(http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B45EACE3DEBD56A4E034080020E74861)
to get data from a legacy/custom piece of hardware that is memory
mapped on the ISA bus at 0xE0000.
Specifically, we are using ReadMemory16.vi from AccessHW.zip to read 2 bytes data samples
in a LabVIEW 7.1 application under Windows XP.

On a clean, dual boot (Windows 2000 and XP) system, the ReadMemory16.vi is
about 5.5 times faster when called under Windows 2000 than under Windows XP.
(100000 calls = 2.3 sec vs. 12.9 sec)
I see 2 possible reasons for this: the CVI code under the hood in AccessHW
is not optimized for XP, or XP is not optimized for memory-mapped devices on
the ISA bus.

Anyone have any ideas?

test program attached

mlewis
0 Kudos
Message 1 of 3
(2,264 Views)
Have you tried using the native In Port and Out Port functions that come with 7.1. As I understand it, you would only need the AccessHW if you wanted to do 32 bit access. I don't know if they'll run any faster under XP than 2K since I's still using 2K but it would be worth trying.
Message 2 of 3
(2,254 Views)
thanks for your response...

indeed, we are using the native LabVIEW 7.1 Outport.vi to control
a 3rd party PIO card. Unfortunately, the traditional memory-mapping space
for ISA devices was 0xD0000-0xEFFFF which cannot be accessed using 16 bit addressing.
That's why I am using ReadMemory16 to do the 32 bit access.

Since most legacy ISA buses are an expansion of the PCI bus, I'm wondering if XP handles
the crazy memory mapping differently. In essence, if no PCI card responds to a given address,
then the PCI bus expansion gets it, the so-called "if no one claims it, it must be yours" logic.

mlewis

Message Edited by mal11 on 04-20-2005 11:45 AM

0 Kudos
Message 3 of 3
(2,249 Views)