61 / 273
Mar 2007

I’m in the same boat as Graham, well not exactly, I can’t even find all the proper drivers for 32 bit Vista. So it’s a waiting game to first get all the necessary drivers for my hardware then for the applications I require to be compatible.

Nobody will ever need more than 4 X 10^24 exabytes of memory…

Gee, I wonder what the equivalent neural capacity of the brain is…

Oops, were comparing apples to kiwis, or should I say analog to digital.

If there is one thing that I’ve learned, if you offer more hardware capacity it will be used.
“Is your name Sahra O’Conner?”

Here’s a nickel, kid. Go buy yourself a real computer.

nitrogen:~# cat /proc/meminfo
MemTotal: 4051648 kB
MemFree: 66600 kB
Buffers: 360016 kB
Cached: 2215200 kB
SwapCached: 12 kB
Active: 818808 kB
Inactive: 2175504 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 4051648 kB
LowFree: 66600 kB
SwapTotal: 9823672 kB
SwapFree: 9823244 kB
Dirty: 272 kB
Writeback: 0 kB
Mapped: 449972 kB
Slab: 970272 kB
CommitLimit: 11849496 kB
Committed_AS: 799204 kB
PageTables: 4424 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 5024 kB
VmallocChunk: 34359733327 kB

I ran into the exact same problem on my Vista 32-bit box… the memory showed up properly in the BIOS, but not in System Information. It turns out that Microsoft recently released a KB article to describe the problem (although they didn’t go into the level of depth that you did… great job!)

http://support.microsoft.com/kb/929605/en-us

The system memory that is reported in the System Information dialog box in Windows Vista is less than you expect if 4 GB of RAM is installed

Ian, what 64 bit chipset uses 32 bit addressing ? That is by definition not a 64 bit chipset then, sounds very strange to me but it wouldn’t suprise me if you are correct that some do (probably Intel).

Go with AMD64 which was the orginal inventor of the EM64 extensions that Intel then “stole” (yes I know they can with the patent agreement from -94) and you’ll most likely be safe from such issues.

As for the prople coming here posting some printouts from various *nix systems, you really need to read the article again, this is NOT a Windows issue, my good, you are embarrasing.

I’m currently running an Intel Core Duo that is about a year old and it simply isn’t x64 capable. This is in response to the poster who “wished Microsoft had only released an x64 version of Vista”. They would have left a lot of us out in the cold.

With that said, you can see why many hardware manufacturers haven’t been too quick to come on board. x64 Win XP has only been used by a select few to date because you would have had to buy fairly high end processors to even run it. Only now are mass consumers finally being offered processors that can support the x64 OS’s (at least for Intel).

bah, Eugene, here’s a real system:

root@/proc# cat cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 6
model name : Intel Celeron (“GenuineIntel” 686-class, 128KB L2 cache)
stepping : 5
cpu MHz : 501
fdiv_bug : no
fpu : yes
fpu_exception: : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr

root@/proc# cat meminfo
total: used: free: shared: buffers: cached:
Mem: 257118208 62099456 195018752 0 0 0
Swap: 511995904 0 511995904
MemTotal: 251092 kB
MemFree: 190448 kB
MemShared: 0 kB
Buffers: 0 kB
Cached: 0 kB
SwapTotal: 499996 kB
SwapFree: 499996 kB
cat: meminfo: Invalid argument

“Could be raining!”

I just watched that movie last night, and I read this blog post directly afterwords. What are the odds?

You know what’s funny? I am running 4GB of physical RAM on 64bit hardware, but I don’t have a 64-bit version of my O/S. I really should upgrade, but since I get to see 3.4 GB of it anyway, there’s not much incentive…

Matt, I disagree that only now are consumers getting x64 CPUs. Athlon64s have been available since late 2003. I built my current PC in September 2005 and I specced it with an Athlon 64 X2 3800+ which wasn’t unusually expensive or “high-end” even back then.

Look at a major manufacturer like Dell and even some of the cheapest amd most basic systems they offer use 64-bit capable CPUs.

Okay, perhaps it is too much to expect Microsoft to exclude 32-bit completely, but why is it the default? It currently isn’t possible to buy a retail version of Vista 64. Instead you buy the 32-bit version and then follow the instructions inside to send off for the 64-bit one!

Given my experiences with XP x64, I don’t find that approach very comforting.

On the whole 64-bit / x86 that was mentioned earlier in the comments…

I avoided 64-bit carefully for a number of reasons. First, X32 is the supported standard, and I knew that Intel was coming out with multi-core processors. I figured, and I think I may have figured correctly, that people were going to be more willing to figure out multi-threading than they were going to be willing to figure out X64 architecture. I sort of saw this coming when Apple began releasing dual-processor G5s several years ago.

Much as I think the whole concept of “more processors equals better computer” argument is rather silly, it is the way the industry tends to trend. I mean, it took years for all the die-hard Apple fans to swap from Motorola to PowerPC chipsets, and they only did that because they more or less had to for speed purposes. Apple continued to support FAT applications right up the the release of OS X.

To this point, most PCs since the industry really got off the ground with the 8086 have all been based on that exact architecture. S’why we call 'em X86. Of course, I never knew if “286” was short-hand for 8286, or if it literally went 8086, 268, 386, 486, Pentium, Pentium II, Pentium III, Pentium 4, Intel Core Duo, etc. I’m sure I’ve missed one or two iterations in there.

I’m hoping they’re going to have the quad-cores available for purchase this summer when I’ll be trolling for yet another new computer. If they don’t, I’ll probably just max out a dual core system. It’s something, anyway.

@Josh,

Last I checked, the machine addresses memory in bytes, not bits…

I did have a point in there: adoption will be slow, but it WILL happen, eventually.

My curiosity is that since I never really studied 64-bit, what is its relationship to X86?

Ian, using /PAE to address memory 4 GB on 32-bit systems has its own problematic issues, according to Microsoft. There’s a performance penalty because I/O requests from 32-bit devices must be double-buffered, and some devices might not work at all, depending on the driver. I wouldn’t want to recommend THAT to a general audience, either!

"Ian, what 64 bit chipset uses 32 bit addressing ? That is by definition not a 64 bit chipset then, sounds very strange to me but it wouldn’t suprise me if you are correct that some do (probably Intel)."
By the logic of the chipset/motherboard manufacturers supporting stuff that customers are unlikely to use is pointless, and thus it’s unusual for motherboards to support the full address range of the CPUs they have. After all how many customers are going to have more than 2gb of memory?

@Brandon: I didn’t say Apple is(n’t) 64bit. I was replying to your statement saying Apple’s “behind the times technology-wise” - I even said that was what I was replying to.
If any mainstream OS is behind the times technology-wise, it’s obviously Microsoft’s.

Okay, I just checked… my XP SP2 Pro system has PAE enabled (comes automatically with DEP). So for shits and giggles I enabled memory remapping in the BIOS and rebooted Windows. I know from MemTest that 2 out of my 4 gigs will now appear in the 4-6 GB range.

Yet Windows tells me that it has only 2 GB total! Total available memory, according to Task Manager: 6 GB = 2 GB RAM + 4 GB page file.

Exactly where is that magical PAE memory supposed to appear?

Charles: Mac OS has always been a little ahead of the curve in what sizes it will handle, both in RAM and Hard Drive capacity.

I seem to recall Macs handling the GB threshold more easily than did PCs.

To be perfectly clear, this isn’t a Windows problem-- it’s an x86 hardware problem

Indeed. The latest Intel Core Duo-based iMacs have the same issue. You can put 4GB in them, but they’ll never be able to use more than 3 GB.

“It’s the final solution, at least for the lifetime of everyone reading this blog post today.”

Are you serious? I was a kid when we were still in the world of kilobytes, and now we’re tossing around gigabytes like candy. We could very well be fooling around with petabytes before I’m dead, though we probably wouldn’t be doing it on Vista.

“Suffice it to say that we won’t be running out of physical or virtual address space on 64-bit operating systems for the forseeable future. It’s the final solution, at least for the lifetime of everyone reading this blog post today”.

Wrong statement. I’m not yet in my 30, and I’ve seen how addressing has grown from 640k to 4GB and then became short. That’s a x6250 factor!! 4GB to 8TB it’s only a x2000 factor, and HD video and photorealistic games didn’t come yet.

So if I really want everything I get out of my memory, don’t I want 3x 1GB sticks, AND 1x 512MB stick?

Thanks for an interesting post. I’ll have to look into it some more because I’m faced with this same issue right now.

I have a ASUS A8N32-SLI Delux mobo with 4 gigs or RAM. (4 * 1GB - Dual sided). When I go into the bios, it tells me that there is 4GB installed but only 3.38 Avail for use. Now I’m not sure if this is a bios issue or a mobo issue but if anyone has any clue, I’d love to hear it. (I’m planning an upgrade to my bios sometime this weekend - maybe that might work?).

I also have Vista 64 bit installed with VPC 2007 (The reason for my 4gb is so I can run an XP image with ease).

Most of this went over my head, but I have a brand new intel core 2 with 4gb of ram, only 3070mb showing in windows. Dell support showed me in the bios that 4gb was there.

The issue is, I also had it installed with Office 2007 and what a memory hog it is! Right now I have Outlook 2007 open, along with a browser and I’m running at 55% of memory used.

I wondered if adding more memory was an option…guess not. :frowning:

Good read…thx for the info.

Ron

64-bit processors have been around, but not everyone buys or feels comfortable buying AMD. There are the hardheaded people that use what they grew up with and that’s Intel. However, it seems like EVERY system I see advertised either has a Intel 64bit or AMD 64bit processor in it. To all those people I say “your welcome” as I have been running my AMD FX55 since the thing came out. I tried XP 64-bit when it came out, and not only did I have driver issues, I had software issues getting Flash to run in IE, etc.

Now I am running Vista Business 64-bit edition and I must say there is great 64-bit driver support. If the company has a 32-bit Vista driver chances are they have the 64-bit edition too. Some companies like HP don’t have Vista drivers yet for all their printers, their short term resolution is to use the USB cable instead of the Network connection for things like Fax/Scanning. Other companies like Razer don’t even have Vista drivers yet.

This leads me to my point, how long have these companies known Vista was coming? You can truly see which companies are dedicated to ensuring there products work with any OS and those companies that are just too small to spend the time developing drivers for every OS. Logitech Razer, etc. Suprisingly about the only Vista driver Razer does have is for the Habu mouse they make for Microsoft.

But for those of you thinking about upgrading to 64-bit OS, do it! There is no distinguishable issues that I have run into outside of the lack of general Vista (32bit and 64bit) driver support for some of my devices. I am able to run IE, Firefox, Adobe CS2, Unreal Tournament 2004, Open Office, Office 2007, etc without issue. To me after I disabled all the extra stuff (Defender, Firewall, System Restore), I swear Vista boots faster then my old XP install.

And the Vista GA release doesn’t crash like the RC1 version did either. There is a good availability of virus software out there, personally I use Kasperky. If you bought or are thinking about buying a new system that has a 64bit CPU, you paided for it, might as well use it!

CrashCat had a good point.

“It’s the final solution, at least for the lifetime of everyone reading this blog post today.”

Note that you’re talking about problems addressing 4GB in 2007, and also quote Ian Griffiths mentioning how the 8086 (designed in 1976) had to carve up 1MB. If that growth rate were to continue, we’d be looking at addressing 16TB in another 31 years. Of course we won’t be using Vista then. (We aren’t really using it now but that’s another topic.)

I suspect it will be a lot less than 31 years until we see wide consumer adoption of some kind of terabyte-level optical memory or something else that leaves Moore’s Law in the dust.

Mac Pro handles up to 16GB of RAM and 3TB of disk space.

Kind of academic, since OS X itself is not fully 64-bit.

http://arstechnica.com/reviews/os/macosx-10.4.ars/4

So if I were you I’d qualify your recommendation before you get a horde of angry people beating a path to your door… Make it clear that you need to have a suitable chipset [to use 4 GB+ of physical memory]

Ian, good point, will do.

Exactly where is that magical PAE memory supposed to appear?

It’ll only “appear” in apps that explicitly code to support the AWE (address windowing extensions) API, which makes use of the PAE extensions in the CPU. I don’t think the base OS does this, but applications might.

When I go into the bios, it tells me that there is 4GB installed but only 3.38 Avail for use [and I am running a 64-bit OS]

As Ian pointed out, this is due to the BIOS; check your BIOS for an option that remaps IO memory above 4GB.

Well, you guys keep worrying about your need for 4GB RAM. Personally, my max RAM is 512MB, and since I run Linux, not WinDoZe, my systems run the latest software just fine with between 256 and 512MB RAM. My older Dell P3/Xeon can have 2GB RAM, but I only have 512MB, and even tho I looked at upgrading, I can’t see the point. My newer Dell Xeon 2.67Ghz only has 256MB RAM, and only because I had to use 2 sticks for the dual channel memory speed. It’s a server without even a GUI, so again, why do I need 4GB RAM? Oh yeah, you guys run that spy-ware, ad-ware, virus infested, buggy, full of holes and backdoors thing called WinDoZe. Well, like SpongeBob said to Plankton: Good luck with that!

I’ll stick with my Linux…

Not really knowing what the 32-bit Windows can or can not do, probably it does not know how to use memory at above 4 GB physical address, and you are stuck to 3 GB plus some. (Which for a salvaged memory is not too expensive…)

My current home computer is ASUS A8N-SLI Deluxe with AMD X2 (stepping 02) processor, and it definitely can use all 4 GB of installed memory.
However original BIOS didn’t setup the “memory hoisting” correctly, and the end result was rather horrible crash if I tried to “hoist” and to use the memory above that limit. Then very recently there came out a new BIOS release that did it correct, and I am happy big memory spender…

So, if the motherboard BIOS setup has “memory hoisting” buried somewhere in the advanced menus, turning it on may help - or maybe not.
Then running your 32-bit operating system with /PAE enabled may let your operating system to use all 4 GB, permitting more big programs to run simultaneously without resorting to swapping.

By the way, for performance reasons I do prefer to run 64-bit operating systems, and 32-bit applications.
This is equally true for SPARCs running Solaris, as well as PC hardware running whatever.
Very few applications do benefit from 64-bit pointers, but operating system core is usually a different story, especially if you do have more memory than fits inside the first 4 GB.

the real problem is that everybody keeps just going bigger with memory, meanwhile memory access time is only getting slower, not faster, instead of focusing efforts on speeding up processing power someone needs to get on top of that memory speed curve and push the limits a bit, if you could double your memory access speed you could exponentially increase the available address space for total memory because you could double-clock memory accesses. there are lots of smaller and single-purpose sdram chips that do this already, currently i’m using one because i’m designing an FPGA system with limited I/O pins and i’m sending video frames through ethernet from a submarine to a console. granted it’s much more feasible because my FPGA’s clocking at 50 MHz, so double-clocking the 133 MHz sdram isn’t a problem, but still…anyone who wants to set a market trend, there’s your place.

Maybe all programs in near future comes in a usb-memory-like device that holds its own memory usage? Even its own cpu… Would be nice.

Moving memory handling to the program instead of bios/OS… Every program runs in its own world (virtual machine) with pipelines in and out to communicate with the host OS.
The real machines memory mapping will be to handle those pipes.

Yeah, why mess with Windows when there are dozens of Linux distros with thousands of precompiled packages for the x64 architecture?

the behavior of the PAE switch on workstation versions of Windows changed beginning with SP2 for XP. Too many drivers were choking when handed addresses outside the 32-bit address range limit and MS was tired of being blamed for the resulting problems, so in SP2 they removed the portion of the PAE switch’s behavior that remapped otherwise-inaccessible RAM below the 4G boundary to above the boundary.

“Linux?”

umm Linux has the EXACT SAME PROBLEM so I’m not sure what this is in reference to. This is purely a hardware issue and has nothing to do with the OS. It is so funny to see how many people have absolutely zero idea how their system works… but are quick to recommend things like Linux to fix the problem rofl.

Reminds me of my first 60 GB hard drive.

Took me a while to realize why I was trashing the FAT table/drive every time I wrote beyond 32GB.

Why doesn’t 32-bit Windows support PAE correctly?

Here’s linux:

Linux 2.4.x does support greater then 4GB of physical memory (ie. RAM)

It does this by supporting Intel’s PAE (Physical Address Extension) features which are in all Pentium Pro and newer CPU’s.

It does this via indirect pointers to the higher memory locations, so there is a CPU and RAM hit for using this.

Benchmarks seem to indicated around 3-6% CPU hit just for using the PAE extensions (ie. it applies regardless of whether you are actually accessing memory locations greater then 4GB).

The PAE extensions allow up to a maximum of 64GB of physical memory that the CPU (not a process) can address.

PAE does not increase Linux’s ability for single processes to see greater then 3GB of RAM (see below).