Windows Vista Tips

Windows Vista Tips > Newsgroups > Windows Vista Drivers > maxinum of memory can i allocate for fast read of 2GByate/s

Reply
Thread Tools Display Modes

maxinum of memory can i allocate for fast read of 2GByate/s

 
 
pascal
Guest
Posts: n/a

 
      08-18-2010
i have question and looking for help.

the situation: the appliction needs to read from the driver/Board (PCIe)
data rate of about ~2GByte/s to the pc first save it to memory then to buffer
it to loacal drive for later process.

question: who will allocate the memory the appliction from the user mode and
pass it to the driver? can the driver allocate that memory from the kernel?
(OS x64)
what can of design patten should i used for example? any advice?


 
Reply With Quote
 
 
 
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      08-18-2010
> question: who will allocate the memory the appliction from the user mode and
> pass it to the driver?


Better to do this, so that there will be no extra memcpy().

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

 
Reply With Quote
 
Tim Roberts
Guest
Posts: n/a

 
      08-19-2010
pascal <> wrote:
>
>i have question and looking for help.
>
>the situation: the appliction needs to read from the driver/Board (PCIe)
>data rate of about ~2GByte/s to the pc first save it to memory then to buffer
>it to loacal drive for later process.


For how long? Hot drives can save about 40MB/s, so you will need to store
it all in memory.
--
Tim Roberts,
Providenza & Boekelheide, Inc.
 
Reply With Quote
 
pascal
Guest
Posts: n/a

 
      08-19-2010
if i need to store in all data in memory for example 6 GByte all in memory
(64bit OS), the question is what memory? Virtual /physical VirtualAlloc can
reserve 6 GByte in the Virtual memory page file but will that will be too
slow? i mean that windows memory manger may could not stand up to the rate of
data needed to writen to the page file.
or use physical memory, what is the best way/practice ?

Thanks

"Tim Roberts" wrote:

> pascal <> wrote:
> >
> >i have question and looking for help.
> >
> >the situation: the appliction needs to read from the driver/Board (PCIe)
> >data rate of about ~2GByte/s to the pc first save it to memory then to buffer
> >it to loacal drive for later process.

>
> For how long? Hot drives can save about 40MB/s, so you will need to store
> it all in memory.
> --
> Tim Roberts,
> Providenza & Boekelheide, Inc.
> .
>

 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      08-19-2010
> For how long? Hot drives can save about 40MB/s

More. 80 is real, but... after ~30 sec of such writing, some drives do the internal recalibration, which means that all next writes are stopped for 10s or such.

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

 
Reply With Quote
 
Tim Roberts
Guest
Posts: n/a

 
      08-22-2010
pascal <> wrote:
>
>if i need to store in all data in memory for example 6 GByte all in memory
>(64bit OS), the question is what memory? Virtual /physical VirtualAlloc can
>reserve 6 GByte in the Virtual memory page file but will that will be too
>slow? i mean that windows memory manger may could not stand up to the rate of
>data needed to writen to the page file.


I already told you, disks can't handle it. Doesn't matter whether you're
writing it directly or letting the page manager write it. It's still the
same disk. You will have to allocate virtual memory to hold the whole
thing, grab 2 or 3 seconds worth, then stop gathering for 3 minutes while
you flush it out to the disk.

>> >the situation: the appliction needs to read from the driver/Board (PCIe)
>> >data rate of about ~2GByte/s to the pc first save it to memory then to buffer
>> >it to loacal drive for later process.


You do realize that it's going to require a 16-lane PCIExpress board to
transfer 2GB/s, right? You are designing it as 16-lane from the beginning?
And are you quite sure your memory subsystem can sustain 2GB/s?
--
Tim Roberts,
Providenza & Boekelheide, Inc.
 
Reply With Quote
 
pascal
Guest
Posts: n/a

 
      08-23-2010

Hi thanks for the help:

from the information i gathered my plan is:

1. try to alloc virutal memory about 4GByte for 2sec properly using
VirtualAlloc and VirutalLock API function to lock all memory in to the
physical memory to avoid paging out of memory to the disk. (are VirtualAlloc
and VirutalLock do work? i saw alot poeple had problem with those function
when trying to lock alot of memory?)

2. pass the memory pointer to the driver using IOCTL command or when using
the ReadFile() IOREAD routine.

3. when the transfer and IO is complete, save data to the Hard drive.

4. the platform used is winXP x64 with 6GByte memory and the target board is
the xilinx PCIe core that current support up to 10Gbit/s (1.25GByte) using x8
lanes, but the plan is to support 2GByte later on.

what to you think ? is that plan practicable/feasible?


 
Reply With Quote
 
Tim Roberts
Guest
Posts: n/a

 
      08-24-2010
pascal <> wrote:
>
>3. when the transfer and IO is complete, save data to the Hard drive.
>
>4. the platform used is winXP x64 with 6GByte memory and the target board is
>the xilinx PCIe core that current support up to 10Gbit/s (1.25GByte) using x8
>lanes, but the plan is to support 2GByte later on.


1.25GB/s is a stretch for an 8-lane device

>what to you think ? is that plan practicable/feasible?


As long as you never need to capture more than you can hold in memory,
sure.
--
Tim Roberts,
Providenza & Boekelheide, Inc.
 
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
No network drive mapping after joining Active Directory ? Patrick Active Directory 29 05-05-2010 12:21 PM
Windows - Application Error - The memory could not be read! 10000lakes Windows Vista Games 1 01-27-2010 06:38 PM
Inefficient use of memory? Robert Miles Windows Vista Performance 8 01-18-2010 08:52 AM
Vista 32bit does not recognise 4GB memory GreatGuruMemsahib Windows Vista Installation 10 03-06-2007 12:15 PM
referenced memory at 0x00000000. The memory could not be read. GaryC357 ActiveSync 1 11-23-2004 01:27 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