Hello all
we have a 16-bit pcmcia card that has 2 memory windows - one Attribute
and one Common memory. Attribute memory is 8-bit access whereas common
memory is 16 bit. Access time reported in the tuples is 200ns. All
memory window accesses are done using a "mapped" memory window
(returned using MmMapIoSpace)

If the driver uses the PCMCIA_INTERFACE_STANDARD->ModifyMemoryWindow
command to change the common memory access timing and also set the
common memory window access to 16bit -things seems to speed up ~2X.
However the common memory accesses still dont seem to be "truly"
16-bit as per the hardware engineer who reports seeing 2 8-bit
accesses.

Further, the speed improvement is only seen in XP platforms but not on
Server2003 platforms. I did try the debug pcmcia.sys and WinDbg to see
if any additional information regarding the accesses was printed ..
but nothing stood out.


So my question is :
1. What if anything does PCMCIA.sys do with the AccessTime reported in
the device tuples (if no ModifyMemoryWindow is called or the inf
changed to report 16-bit Common memory window).

2. What does ModifyMemory window do with regard to -
a. pcmcia.sys behavior
b. PCMCIA Adapter driver/hardware

3. Why do we not see the same performance improvement with Server2003
platforms ?

4. Is there a way to guarantee the card access time to be close to the
200ns that we need ?


Thanks in advance
--rr

RE: PCMCIA memory window access question by pavel_a

pavel_a
Wed Nov 10 10:40:04 CST 2004

Have you tried instead of ModifyMemoryWindow, an INF resource override with
explicit zero waitstates and proper memory width?

--PA

"RR" wrote:

> Hello all
> we have a 16-bit pcmcia card that has 2 memory windows - one Attribute
> and one Common memory. Attribute memory is 8-bit access whereas common
> memory is 16 bit. Access time reported in the tuples is 200ns. All
> memory window accesses are done using a "mapped" memory window
> (returned using MmMapIoSpace)
>
> If the driver uses the PCMCIA_INTERFACE_STANDARD->ModifyMemoryWindow
> command to change the common memory access timing and also set the
> common memory window access to 16bit -things seems to speed up ~2X.
> However the common memory accesses still dont seem to be "truly"
> 16-bit as per the hardware engineer who reports seeing 2 8-bit
> accesses.
>
> Further, the speed improvement is only seen in XP platforms but not on
> Server2003 platforms. I did try the debug pcmcia.sys and WinDbg to see
> if any additional information regarding the accesses was printed ..
> but nothing stood out.
>
>
> So my question is :
> 1. What if anything does PCMCIA.sys do with the AccessTime reported in
> the device tuples (if no ModifyMemoryWindow is called or the inf
> changed to report 16-bit Common memory window).
>
> 2. What does ModifyMemory window do with regard to -
> a. pcmcia.sys behavior
> b. PCMCIA Adapter driver/hardware
>
> 3. Why do we not see the same performance improvement with Server2003
> platforms ?
>
> 4. Is there a way to guarantee the card access time to be close to the
> 200ns that we need ?
>
>
> Thanks in advance
> --rr
>

Re: PCMCIA memory window access question by RR

RR
Wed Nov 10 17:45:40 CST 2004

Thanks for your response -
I have tried that ... but I think I tried it on XP only. I dont think I
tried the inf solution on Server2003.

With XP
- with an inf only solution there is a slight performance improvement.
- with the ModifyMemory window the performance is even better.
- with an inf+ModifyMemoryWindow the performance seems to be the same as
with an inf only

I'm curious to know which one is driving the performance improvement. And
why doesnt the same method work with Server2003. What does pcmcia.sys use
for default states/access times etc., because it doesnt seem to be making
use of what the card reports back in the tuples as I had assumed it would
:-(
Further what role do the PCMCIA adapters themselves have to play in this
?

--rr



"Pavel A." <pavel_a@NOwritemeNO.com> wrote in message
news:D2000DBC-4956-47C2-9A74-C81614537D03@microsoft.com...
> Have you tried instead of ModifyMemoryWindow, an INF resource override
with
> explicit zero waitstates and proper memory width?
>
> --PA
>
> "RR" wrote:
>
> > Hello all
> > we have a 16-bit pcmcia card that has 2 memory windows - one Attribute
> > and one Common memory. Attribute memory is 8-bit access whereas common
> > memory is 16 bit. Access time reported in the tuples is 200ns. All
> > memory window accesses are done using a "mapped" memory window
> > (returned using MmMapIoSpace)
> >
> > If the driver uses the PCMCIA_INTERFACE_STANDARD->ModifyMemoryWindow
> > command to change the common memory access timing and also set the
> > common memory window access to 16bit -things seems to speed up ~2X.
> > However the common memory accesses still dont seem to be "truly"
> > 16-bit as per the hardware engineer who reports seeing 2 8-bit
> > accesses.
> >
> > Further, the speed improvement is only seen in XP platforms but not on
> > Server2003 platforms. I did try the debug pcmcia.sys and WinDbg to see
> > if any additional information regarding the accesses was printed ..
> > but nothing stood out.
> >
> >
> > So my question is :
> > 1. What if anything does PCMCIA.sys do with the AccessTime reported in
> > the device tuples (if no ModifyMemoryWindow is called or the inf
> > changed to report 16-bit Common memory window).
> >
> > 2. What does ModifyMemory window do with regard to -
> > a. pcmcia.sys behavior
> > b. PCMCIA Adapter driver/hardware
> >
> > 3. Why do we not see the same performance improvement with Server2003
> > platforms ?
> >
> > 4. Is there a way to guarantee the card access time to be close to the
> > 200ns that we need ?
> >
> >
> > Thanks in advance
> > --rr
> >
>



Re: PCMCIA memory window access question by pavel_a

pavel_a
Thu Nov 11 09:23:01 CST 2004

"RR" wrote:
> Thanks for your response -
> I have tried that ... but I think I tried it on XP only. I dont think I
> tried the inf solution on Server2003.
>
> With XP
> - with an inf only solution there is a slight performance improvement.
> - with the ModifyMemory window the performance is even better.
> - with an inf+ModifyMemoryWindow the performance seems to be the same as
> with an inf only
>
> I'm curious to know which one is driving the performance improvement. And
> why doesnt the same method work with Server2003. What does pcmcia.sys use
> for default states/access times etc., because it doesnt seem to be making
> use of what the card reports back in the tuples as I had assumed it would
> :-(
> Further what role do the PCMCIA adapters themselves have to play in this ?

The last question is very interesting indeed...
Are your XP and server03 running on *same* machine?
What is version of your pcmcia.sys? (service packs, KB patches ??)
What is the host adapter: 16 bit or Cardbus? which model?
You may want to get a logic and check signals passing between the card
and host controller (are memory cycles 16 or 8 bit etc).

Regards,
--PA