OracleGuy





Remember me

[Register]

Previous Posts By Category

View Blog

You are viewing one specific blog entry. If you'd like to view the latest 6 entries, click here.

Don't Play With Dead Snakes

The CEO of Netscape in the 90s would often quote the phrase used as the title for this post. It is a proverb about not revisiting old decisions.

So, as was in the tech news not too long ago, one of the fixes coming in Vista SP1 is a fix for the 4GB memory problem in 32-bit versions of Windows Vista. The article on TechNet about it: here but Iíll just quote the part I'm referring to:

"With SP1, Windows Vista will report the amount of system memory installed rather than report the amount of system memory available to the OS. Therefore 32-bit systems equipped with 4GB of RAM will report all 4BG [sic] in many places throughout the OS, such as the System Control Panel. However, this behavior is dependent on having a compatible BIOS, so not all users may notice this change."

Now it is my understanding that the reason this is happening is that some manufacturers are starting to ship laptops and desktops with 4GB of RAM and users are experiencing the problem where they see around 3GB of RAM available to the OS. This is normally remedied by using a 64-bit operating system. However most computer manufacturers aren't shipping 64-bit OSes on laptops or desktops (except enterprise level stuff).

I also heard that most mobile chipsets currently don't support more than 4GB of memory at present but Iím not certain if that is true.

But in case you aren't familiar the whole situation with 4GB of memory has to do with how the motherboardís chipset is designed. Technically speaking a 32-bit processor can address 4GB of memory. But on the motherboard the upper 500-1024MB of that 4GB range is used for I/O devices. This particular method of using I/O devices is called memory mapped I/O. The benefit is that you can interact with different I/O devices just like they are memory and don't have to use different assembly instructions. For example, getting to use MOV instead of IN and OUT on x86 architecture to read and write data to an I/O device. The downside to memory mapped I/O though is that it uses up address space that could be used for RAM. However back when the decision to do this on the 32-bit x86 architecture, no one was using anywhere near 4GB of RAM so it wasnít a problem.

In the case of a 64-bit processor though, there is 16 exabytes of memory address space, a significant increase over 4GB. However to take advantage of this, the OS has to be 64-bit.

However since most consumer computers that have 64-bit processors aren't being sold with 64-bit operating systems, this problem is still around. The reason most likely is for compatibility issues. But by "fixing" the 4GB problem in 32-bit OSes instead of fixing the issues people have with running a 64-bit OS, they are focusing on delaying the inevitable. And in reality, I'd imagine a lot of people that are buying new computers arenít going to have that many problems with a 64-bit OS. This only applies to consumer computers being sold with Windows; those of us running 64-bit Linux are way more along on the transition.

2GB is starting to become the standard amount of memory in a computer with 4GB being the nice high end amount. I'd say by 2010, 4GB is going to be way more common. The move to 64-bit is going to happen eventually, it is better to embrace it sooner rather than later.

So as an industry, we shouldn't revisit the decision to use memory mapped I/O in the upper 4GB of memory and focus on eliminating the problem (for now anyways) by going to 64-bit.

Posted on: Jan 7, 2008 at 8:18 pm - (0) comments.

View past entries - OracleBlog Version 1.0.005