<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>What is Virtual Memory?</title><link>http://blogs.msdn.com/ce_base/archive/2006/10/30/What-is-Virtual-Memory.aspx</link><description>Posted by: Sue Loh This is really a generic topic, not something specific to Windows CE, but I’ve had to explain it to a few people so I thought it would be worth writing up. If you had asked me what virtual memory was several years ago, I’d have given</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Sue Loh explains Virtual Memory.</title><link>http://blogs.msdn.com/ce_base/archive/2006/10/30/What-is-Virtual-Memory.aspx#972118</link><pubDate>Sun, 05 Nov 2006 12:12:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:972118</guid><dc:creator>Mikehall's Embedded WEblog</dc:creator><description>&lt;p&gt;If you've wondered how virtual memory works, or why an operating system needs virtual memory then Sue&lt;/p&gt;
</description></item><item><title>re: What is Virtual Memory?</title><link>http://blogs.msdn.com/ce_base/archive/2006/10/30/What-is-Virtual-Memory.aspx#991869</link><pubDate>Mon, 06 Nov 2006 09:10:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:991869</guid><dc:creator>R W</dc:creator><description>&lt;p&gt;A very concise description. &amp;nbsp;Thank you!&lt;/p&gt;</description></item><item><title>re: What is Virtual Memory?</title><link>http://blogs.msdn.com/ce_base/archive/2006/10/30/What-is-Virtual-Memory.aspx#1086979</link><pubDate>Thu, 16 Nov 2006 18:43:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1086979</guid><dc:creator>Alex</dc:creator><description>&lt;p&gt;Great article! I have one question though. Why is page size 4KB and allocation granularity 64KB on CE systems? Is it just legacy from desktop OS or there was some other reason?&lt;/p&gt;</description></item><item><title>re: What is Virtual Memory?</title><link>http://blogs.msdn.com/ce_base/archive/2006/10/30/What-is-Virtual-Memory.aspx#1087195</link><pubDate>Thu, 16 Nov 2006 19:13:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1087195</guid><dc:creator>ce_base</dc:creator><description>&lt;p&gt;Thanks R W and Alex, and you're welcome.&lt;/p&gt;
&lt;p&gt;One thing I hinted at, but didn't say outright, is that pages and the page tables are actually defined by the processor specification. &amp;nbsp;The CPU itself is actually walking the page tables to look up addresses, so the page table format is defined by the hardware spec. &amp;nbsp;So, the 4KB page size is dictated by the processor. &amp;nbsp;All of the processors that CE runs on today use 4KB page sizes. &amp;nbsp;CE used to also support 1KB pages on the SH3 processor, but we don't support SH3 anymore. &amp;nbsp;Someday in the future, perhaps we'll support another processor with different page sizes.&lt;/p&gt;
&lt;p&gt;I don't have a clear answer about the 64KB virtual allocation granularity. &amp;nbsp;I think one part of it is that Win32 on desktop Windows had that restriction. &amp;nbsp;I suspect part of the answer is about cache coherency. &amp;nbsp;I know that if you try to point two virtual addresses at the same physical page, you'd better have that page at the same 64KB offset in both virtual addresses or make them both uncached, or risk caching problems. &amp;nbsp;e.g. If you copy the fifth page in one 64KB cluster to another virtual address, it has to be the fifth page of its destination 64KB cluster as well. &amp;nbsp;This too is dictated by hardware. &amp;nbsp;However I don't really have a clear way to link this page aliasing problem to &amp;quot;all allocations are 64KB aligned.&amp;quot; &amp;nbsp;Maybe it was just a Win32 implementation detail, that &amp;quot;big&amp;quot; Windows tracks virtual allocations in 64KB chunks.&lt;/p&gt;
&lt;p&gt;Sue&lt;/p&gt;
</description></item><item><title>re: What is Virtual Memory?</title><link>http://blogs.msdn.com/ce_base/archive/2006/10/30/What-is-Virtual-Memory.aspx#1088825</link><pubDate>Fri, 17 Nov 2006 00:17:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1088825</guid><dc:creator>Alex</dc:creator><description>&lt;p&gt;Hi Sue! Thanks for your reply. Regarding allocation granularity on the desktop there was an interesting blog post here: &lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/oldnewthing/archive/2003/10/08/55239.aspx"&gt;http://blogs.msdn.com/oldnewthing/archive/2003/10/08/55239.aspx&lt;/a&gt;. But it sounds like a story from old days. :)&lt;/p&gt;</description></item><item><title>re: What is Virtual Memory?</title><link>http://blogs.msdn.com/ce_base/archive/2006/10/30/What-is-Virtual-Memory.aspx#1205924</link><pubDate>Mon, 04 Dec 2006 18:39:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1205924</guid><dc:creator>ce_base</dc:creator><description>&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.windowsfordevices.com/articles/AT7967807599.html"&gt;http://www.windowsfordevices.com/articles/AT7967807599.html&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: What is Virtual Memory?</title><link>http://blogs.msdn.com/ce_base/archive/2006/10/30/What-is-Virtual-Memory.aspx#1228419</link><pubDate>Thu, 07 Dec 2006 05:26:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1228419</guid><dc:creator>Asang Dani</dc:creator><description>&lt;p&gt;Hello Sue,&lt;/p&gt;
&lt;p&gt; &amp;nbsp;Your comment about cache coherency inspired me to write a small article on my blog. For those who are interested, it's at:&lt;/p&gt;
&lt;p&gt; &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://goembedded.ksetindia.com/?p=69"&gt;http://goembedded.ksetindia.com/?p=69&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Paging and the Windows CE Paging Pool</title><link>http://blogs.msdn.com/ce_base/archive/2006/10/30/What-is-Virtual-Memory.aspx#7168525</link><pubDate>Sun, 20 Jan 2008 08:29:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7168525</guid><dc:creator>Windows CE Base Team Blog</dc:creator><description>&lt;p&gt;Posted by: Sue Loh I’d like to explain a little more about memory management in Windows CE. I already&lt;/p&gt;
</description></item><item><title>Paging and the Windows CE Paging Pool</title><link>http://blogs.msdn.com/ce_base/archive/2006/10/30/What-is-Virtual-Memory.aspx#7168711</link><pubDate>Sun, 20 Jan 2008 09:07:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7168711</guid><dc:creator>Noticias externas</dc:creator><description>&lt;p&gt;Posted by: Sue Loh I’d like to explain a little more about memory management in Windows CE. I already&lt;/p&gt;
</description></item></channel></rss>