Quote:
|
Originally Posted by Jonathon Watkins
Quote:
|
Originally Posted by Talon
Plus if you halve the RAM you halve the power it takes. Not a big deal when the system is busy but a big factor on the standby life of the battery. With demand pageing now in PPC you can use NAND flash and only use up around 2MB more ram than if you were running from NOR flash. Expect to see more people using that.
|
Could you expand on that Talon? Why does NAND memory take up more space than NOR?
|
It is to do with the way the internals of the memory work. NAND flash is a serial based system. You read or write a block (normally 512 or 2k Bytes) at a time. You can't just jump to the exact point. Think of it like a CD with no fast forward. You can jump to the correct track but you have to play the whole track in order to listen to the end of it.
NOR flash is random access, you can access any location in memory just as easily and quickly as any other.
If you want to run a program you need to have random access to the memory that holds it. In other words you can run a program that is stored in NOR flash, you can't run a program that is stored in NAND flash.
So why use NAND? It's a lot cheaper. Plus SDRAM is faster than NOR flash so once you program has been coppied into RAM it will run faster.
If windows is stored in NAND then traditionally you have to copy the whole thing into RAM before you can run it. Windows mobile is around 30MBytes, so your 64MByte PDA only has 34MBytes free for the user to make use of.
This doesn't make people happy. Unfortunatly until WM2003 that was the only way of running with NAND flash.
If windows is in NOR then it can run from flash. Windows will use around 2MBytes for storing odds and ends (filesystem lookup tables etc.) but that leaves the bulk of your RAM free. The downside is you system is slower and more expensive.
Demand pageing is a bit like virtual memory on a desktop PC. The OS copies the bit of the windows OS that it is using into RAM and leaves the rest in the NAND flash. If it needs a new bit of the OS then it copies that section as a block from the NAND to RAM and throws away something that it hasn't used for a while. That is exactly what NAND flash is good for, reading a block at a time. A PPC system using demand paging will use the 2MB of RAM that windows needs anyway plus another 2M or so for the bit of the OS that it is using.
The performance hit of having to keep stopping to copy new blocks from NAND into RAM is balanced out by the faster speed of the OS when it is running from RAM so the overall performance is roughtly the same.
Does that answer your question?