PC World put a story (with yesterdays date) on 32-bit vs 64-bit Window (and bit more, and a bit less)
By a bit more I mean that they cut short on the 32-bit vs 64-bit Windows part and went LONG on the and Personalize your OS sections. They also gave a link to a Microsoft Web Site related to the 32-bit vs 64-bit Windows question:
Both of these seemed a bit LONG on the comfy chair home user its OK to Use 64-bit Windows theme and a bit short on the technical matter that I like. It’s true that its ok to run, these days, a 64-bit version of Windows. With Windows 7 this seems to be quite stable and quite capable of running 32-bit software programs as well. But what does 32-bit CPU and 64-bit CPU really mean? And what does 32-bit Windows and 64-bit Windows really mean?http://en.wikipedia.org/wiki/32-bit
A video from YouTube (not mine) about 32-bit vs 64-bit
In computer architecture, 32-bit integers, memory addresses, or other data units are those that are at most 32 bits (4 octets) wide. Also, 32-bit CPU and ALU architectures are those that are based on registers, address buses, or data buses of that size. 32-bit is also a term given to a generation of computers in which 32-bit processors were the norm.The range of integer values that can be stored in 32 bits is 0 through 4,294,967,295 or -2,147,483,648 through 2,147,483,647 using twos complement encoding. Hence, a processor with 32-bit memory addresses can directly access 4 GB of byte-addressable memory.The external address and data buses are often wider than 32 bits but both of these are stored and manipulated internally in the processor as 32-bit quantities. For example, the Pentium Pro processor is a 32-bit machine, but the external address bus is 36 bits wide, and the external data bus is 64 bits wide.
* The Wikipedia article on 64-bit was NOT quite as nice along the explanation line
I thought it would be similar to the 32-bit one.
Visually viewing a concept very often helps it make more sense to us than just reading words about it. Look at this picture:
16-bits on an Imsai 8080 8-bit computer
This is an old 1970s to 1980s era 8-bit computer – but the address space was 16-bits. You can see it! Look at the 3rd row of LED lights on the panel. There are 16 led lights numbered from 15 through 0, or zero.So if you look at this as if its bandwidth, or how wide a chunk of something could be to be processed, then that might be instructive. Grant it this is an 8-bit computer which handles only 8-bits at a time
it was the best example that I had to show you what a 16-bit chunk of memory space would look like – if it hit you in the face
So imagine a computer with both 16-bits of address space and a 16-bit CPU chip, which equates to 64 K by the way, and then lets get better than that! If we had twice that space it would be 16 x 2 = 32-bit.
* A 32-bit computer and address space might look like two of these panels side by side acting as one. But that would NOT just double our processing and memory space by simple addition or multiplying 64K times two as it might seem at first.
Imagine 32 binary digits – 1s or 0s
If we put that in our Windows Calculator in: View > Programmer mode we get the following translation into base 10 or decimal: 4,294,967,295 – thats roughly 4 Gigabytes of address space and 4 Gigabytes of processing chunks capability for a 32-bit system.
Now imagine if we had 4 of these panels side by side with an equally capable 64-bit CPU in our computer. It wouldnt be just 4 times 64 K. It would be
FFFFFFFFFFFFFFFF in Hexadecimal or 64-bits in a row in binary
And again in our programmers calculator this would be oh shhhh Windows Calc wont even do that!!!! It can’t go that high of a number in decimal.
* I had to go find a calculator online to do this:
FFFFFFFFFFFFFFFF, in base 16, is 18,446,744,073,709,552,000 in decimal. Actually I think that online calculator made an error on that as well. it should be: 18,446,744,073,709,551,615. That mathwarehouse.com calculator must have overflowed and rounded the result off as well.
Does any body know what that number is? I might need help myself from some information that I keep at the bottom of:
* By the way, I just want to say that Gcalc in Linux rocks!!!! It did the above calculation that Windows Calc failed to do perfectly.
Gcalc Tool in Ubuntu Linux “doing the math” that Windows Calc cannot do.
Gcalc shot #2 – you can it did the calculation correctly!
Gcalc – and into Binary as well…
And here is Windows Calc having a meltdown converting 64-bits, all “1”‘s or FFFFFFFFFFFFFFFF, into Decimal
But its enough to say that a 64-bit CPU with a 64-bit memory space can address quite a bit more memory than a 32-bit one. Some of that address space would be much slower hard drive swap space in all operating systems. The following page gives some more technical details on this:
Windows x86-64 editions of Microsoft Windows client and server, Windows XP Professional x64 Edition and Windows Server 2003 x64 Edition were released in March 2005.Internally they are actually the same build (5.2.3790.1830 SP1), as they share the same source base and operating system binaries, so even system updates are released in unified packages, much in the manner as Windows 2000 Professional and Server editions for x86.
Windows Vista, which also has many different editions, was released in January 2007. Windows Server 2008 R2 and later versions will only available as x86-64 versions.
Windows for x86-64 has the following characteristics:
8 TB of user mode virtual address space per process. A 64-bit program can use all of this, subject of course to backing store limits on the system, and provided it is linked with the large address aware option.This is a 4096-fold increase over the default 2 GB user-mode virtual address space offered by 32-bit Windows.
8 TB of kernel mode virtual address space for the operating system. As with the user mode address space,, this is a 4096-fold increase over 32-bit Windows versions. The increased space is primarily of benefit to the file system cache and kernel mode heaps (non-paged pool and paged pool).
Windows only uses a total of 16 TB out of the 256 TB implemented by the processors because early AMD64 processors lacked a CMPXCHG16B instruction.Ability to run existing 32-bit applications (.exes) and dynamic link libraries (.dlls).
Furthermore, a 32-bit program, if it was linked with the large address aware option, can use up to 4 GB of virtual address space in 64-bit Windows, instead of the default 2 GB (optional 3 GB with /3GB boot option and large address aware link option) offered by 32-bit Windows. Unlike the use of the /3GB boot option on x86, this does not reduce the kernel mode virtual address space available to the operating system. 32-bit applications can therefore benefit from running on x64 Windows even if they are not recompiled for x86-64.
Both 32- and 64-bit applications, if not linked with large address aware, are limited to 2 GB of virtual address space.
Ability to use up to 128 GB (Windows XP/Vista), 192 GB (Windows 7), 1 TB (Windows Server 2003), or 2 TB (Windows Server 2008) of random access memory (RAM).
* So that gives you some more information about the memory and memory addressing capabilities with a 64-bit CPU and 64-bit Windows Operating System.
* Speaking of Windows Im using the IE9 Beta and IE9 Beta keeps killing itself while I edit this post. Theres something about this Blog Software and its editor that MS IE9 does not like. It keeps crashing the tab that Im working in while editing this post. Im just trying to break some paragraph areas of some pasted content in this post and the browser tab crashes. So now I am in Google Chrome trying to get this thing finished. Imagine that?
* Anyway along the same lines as this article post – The other day I ran a utility from SysInternals Suite (now owned by Microsoft) – called RamMap and came up with the following information on my system here running Windows 7 64-bit with 6 Gigabytes of Ram Memory:
That actually looks like Im only up to about 36-bits of memory space usage full capacity on my computer in Physical Chip Ram Memory. The actual maximum amount of Ram Memory that I could install could actually be hardware (memory slots) and BIOS (The computers Setup program built into ROM chip) dependent. But anyway I thought this was all interesting. I hope someone else does also.
* On the programmers calculator:
9B000 – 1000 = 9A000 (In Decimal: 630,784) 630784 / 1024 = 616 K
CFFA0000 – 100000 = CFEA0000 (In Decimal: 3,488,219,136) 3488219136 / 1024 = 3,406,464 K
1B0000000 – 100000000 = B0000000 (In Decimal: 2,952,790,016) 2952790016 / 1024 = 2,883,584 K