Re: physical RAM limit under WinCE 6.0



alexquisi@xxxxxxxxxxxx wrote in
news:1168367090.651575.93770@xxxxxxxxxxxxxxxxxxxxxxxxxxx:

Hi Valter,

unfortunately I cannot tell you a good technical reason to use
more than the 512 MB of DRAM. It is basically a costumer's
requeriment because he will use our board to run simultaneally
several applications that will consume a lot of memory (video
streaming, Flash player, several serial ports, etc). So he wants
to be sure that he won't face performance problems.

I saw very few CE devices with more that 128MB of RAM and 32 or 64MB
are the amount of RAM provided for PocketPCs or Windows Mobile devices
that usually handle the kinds of thing you talked about (not so many
serial ports but a GPRS connection or a GSM phone...).
If your customer is used to the memory requirements of XP, explain him
that CE is a different OS!
And increasing RAM in CE don't increase performances as it does in XP.
In XP adding more RAM usually prevent swapping, but on CE there is no
swap memory and everything runs in physical RAM (or flash) unless the
application provides a swap mechanism of its own.
The mechanism I suggested is not transparent for application, so the
extra memory will be available only for applications that know how to
access the extra RAM and it may be difficult to integrate this into
applications that usually handle "flat" memory (ex: porting a Win32
application that allocate a huge amount of data in RAM counting on swap
to "hide" caching).

The use of NKCreateStaticMapping/NKDeleteStaticMapping seems
interesting for the video streaming application. I was checking
the API but I am not sure how I should access the memory area in
User's mode. I see that the API return a pointer to that area, I
suppost that it would be a global variable in the kernel. Should I
implement IOCTRLs to access it in User mode?

Another solution, if you need to access that RAM from a single app is
to use MmMapIoSpace to map and MmUnmapIoSpace to unmap the pages you
needs inside your own process. This will work only on CE 5.0 since on
CE 6 only kernel or user mode driver can map addresses in this way.
In CE 6 you may need to copy data from and to that memory.

I also read (it was an old post) that these APIs do not work well
with some architectures (ARM and SH, I think), in my case I am
using MIPS.

I don't know about that.

I'm also not sure when I should call NKDeleteStaticMapping. My
board only has cold boot.

In the "window" approach you should call it to unmap some memory and
then map another physical region to the same address space.


The filesystem option sounds interesting, may you give me an idea
how it could be implemented? I am not sure if there is such RAM
filesystem driver in the sample code of PB...

In PB there is a RAMDISK sample that uses a "flat" memory block IIRC.
You should implement a slighly different approach, mapping each block
you need to access each time you need to read/write it.
This may give some very fast "mass storage" space to your applications
but won't improve performances.

--
Valter Minute
(the reply address of this message is invalid)
(l'indirizzo di reply di questo messaggio non è valido)
.



Relevant Pages

  • Re: Steve Jobs demos Macintosh in 1984
    ... Woody wrote: ... Stop annoying the fucking hell out of me, ... For sure not much computer memory had been made in 1948 - but it could ... For sure you got a bit more RAM to use in the Speccy - ...
    (uk.comp.sys.mac)
  • Re: Windows uses 4 GB? Really?
    ... I bought 4 GB of RAM because I thought it would speed up my system a bit. ... Some info that is posted here as reference seems to suggest that it is a Windows issue, but others seem to suggest that it is also a hardware issue. ... "I have install total 4GB memory on my motherboard. ... On a SLI system, since PCI-Ex graphic cards will occupy around 256MB, another 256MB will be occupied after you install a 2nd PCI-Ex graphic card. ...
    (microsoft.public.windowsxp.general)
  • Re: Computer wont boot up after installing new RAM
    ... I even took a look at an old Gigabyte motherboard ... DDR2 memory stick, the notch does not line up. ... "To install the memory module, ... into the motherboard RAM slots. ...
    (microsoft.public.windowsxp.hardware)
  • Re: Random Restarts - Please Help
    ... I upgraded my BIOS a long time ago ... Beginners Guides: Diagnosing Bad Memory ... How to diagnose bad RAM ...
    (microsoft.public.windowsxp.help_and_support)
  • Re: Alocated Memory Error (SQLSERVR)
    ... but my understanding is that the MSDE instances are designed to ... and you don't want it grabbing all that RAM. ... running but non ever going about 200mb of memory usage. ... Server 2000 SP4, ...
    (microsoft.public.windows.server.sbs)