Windows Vista Tips

Windows Vista Tips > Newsgroups > Windows Vista Drivers > PCIe Driver read problem

Reply
Thread Tools Display Modes

PCIe Driver read problem

 
 
Alexander Grigoriev
Guest
Posts: n/a

 
      11-21-2009
So from the processor issuing the read request to PCIe, and the device
sending the completion to the processor, it might take 400-600-900 ns? No
surprise you're getting only 4MB/s. This is even slower than 33 MHz 32 bit
PCI.

"Charles Gardiner" <> wrote in message
news:he9nr2$rf$00$...
> Alexander Grigoriev schrieb:
>
>>
>> Do you mean 600-900 ns is your FPGA's roundtrip time? Do you have PCIe
>> analyser? It would come very handy to debus such issues.
>>
>>

> The figures are:
> - roughly 450 ns for the first few packets, i.e. buffers empty plenty of
> credits
> - typical 600 ns, DMA traffic but no credit stalls
> - worst 900 ns, heavy DMA and some credit stalls
>
> With the round-trip time, I mean first header DWORD into PCIe core in
> requestor to last DWORD of completion packet arriving at requestor. This
> was measured in simulation with two identical PCIe cores connected
> back-to-back (Aldec VHDL/Verilog simulator, Lattice ECP2M FPGA). i.e.
> this is the time that user logic in the PCIe end-point would see if the
> completer was a pure hardware implementation and could deliver data as
> soon as the request had been received.
>
> Packet transmission is normally pretty fast. It's the reception that's
> slow since the packet has to be checked by the data-link layer before
> passing it on to the user/application logic. Switches in the path often
> use transparent mode i.e. the data layer checks on the fly and issues a
> 'nullify' if it unexpectedly detects a link CRC error.
>
> The assumption here is of course that all chips have much the same
> overhead in the data-link/physical layers. From the figures I have from
> different chips or heard from people on different projects, this is the
> case. In PCIe Gen 1.x, your byte time is 4 ns (UI 400 ps).



 
Reply With Quote
 
 
 
 
shingo
Guest
Posts: n/a

 
      11-22-2009
Thank for all you guys.
I have learned a lot from your disscussion, since I'm a rookie in windows
driver development.
My project is mostly like Charles says, except that the FPGA only attatched
DDR RAM without a DMA adapter.
Do you guys means that it is no possible to accelerate the read speed
withourt DMA involved?
Do I have to persuade the hardware designer to add a DMA adapter on the
board?or the FPGA can implement the function of a DMA adapter?

--
shingo for windows driving & winCE driving


"Alexander Grigoriev" wrote:

> So from the processor issuing the read request to PCIe, and the device
> sending the completion to the processor, it might take 400-600-900 ns? No
> surprise you're getting only 4MB/s. This is even slower than 33 MHz 32 bit
> PCI.
>
> "Charles Gardiner" <> wrote in message
> news:he9nr2$rf$00$...
> > Alexander Grigoriev schrieb:
> >
> >>
> >> Do you mean 600-900 ns is your FPGA's roundtrip time? Do you have PCIe
> >> analyser? It would come very handy to debus such issues.
> >>
> >>

> > The figures are:
> > - roughly 450 ns for the first few packets, i.e. buffers empty plenty of
> > credits
> > - typical 600 ns, DMA traffic but no credit stalls
> > - worst 900 ns, heavy DMA and some credit stalls
> >
> > With the round-trip time, I mean first header DWORD into PCIe core in
> > requestor to last DWORD of completion packet arriving at requestor. This
> > was measured in simulation with two identical PCIe cores connected
> > back-to-back (Aldec VHDL/Verilog simulator, Lattice ECP2M FPGA). i.e.
> > this is the time that user logic in the PCIe end-point would see if the
> > completer was a pure hardware implementation and could deliver data as
> > soon as the request had been received.
> >
> > Packet transmission is normally pretty fast. It's the reception that's
> > slow since the packet has to be checked by the data-link layer before
> > passing it on to the user/application logic. Switches in the path often
> > use transparent mode i.e. the data layer checks on the fly and issues a
> > 'nullify' if it unexpectedly detects a link CRC error.
> >
> > The assumption here is of course that all chips have much the same
> > overhead in the data-link/physical layers. From the figures I have from
> > different chips or heard from people on different projects, this is the
> > case. In PCIe Gen 1.x, your byte time is 4 ns (UI 400 ps).

>
>
> .
>

 
Reply With Quote
 
Charles Gardiner
Guest
Posts: n/a

 
      11-22-2009
shingo schrieb:

> Do you guys means that it is no possible to accelerate the read speed
> withourt DMA involved?


Yes, unfortunately you will not get any decent transfer rates without DMA.

> Do I have to persuade the hardware designer to add a DMA adapter on the
> board?or the FPGA can implement the function of a DMA adapter?
>

I'd put the DMA controller in the FPGA.
I'm sure nearly every FPGA manufacturer has some DMA controller in his
IP-library, some are probably even free. It's not the most complicated
piece of logic to do yourself either. Essentially, your driver must feed
the DMA controller with the scatter/gather lists describing your IRP
buffer. The PciDrv and PLX9xxx examples in the WDK are great for getting
started.
 
Reply With Quote
 
shingo
Guest
Posts: n/a

 
      11-23-2009
Thanks
I will add DMA function in my FPGA as soon as possible.
It is glad to learn so much things from you guys.
I appreciate all your help sincerely.
--
shingo for windows driving & winCE driving
 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
WLM Get faultcode: Windows Live Communication Platform has stoped working Masse Borglund Windows Live Messenger 21 03-28-2010 02:41 AM
Vista install problem - Failed to add driver package into driver s zigner Windows Vista Installation 2 03-28-2007 02:59 AM
problem in dxdiag Peewee64 Windows Vista Games 0 02-14-2007 10:49 PM
Vista auto-reboot after install OrangeGuy Windows Vista Installation 4 02-07-2007 03:05 AM
Re: No Matter What Installations Won't Boot On My Laptop Richard Urban Windows Vista Installation 1 01-06-2007 06:08 AM



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59