I'm sorry if it's been asked, but I have a questiong reguarding 32 and 64 bit processors...

Woolong

Member
Apr 2, 2005
182
0
0
Ok, so I started up Steam about 10 minutes ago and it said that Half Life 2 and Counter Strike Source are now capable of being run with 64 bit processors under those settings. What does this mean? Does it just mean that, since it's a larger bit processor, it can, well, process more than a 32 bit? Meaning, it can go through more data in the games and give you a better performance?

Yeah, that's it. Also, why is it a multiple of 32? Why that number?

I never understood why computers use such awkward numbers...

Now I feel stupid. Great.
 

Screech

Golden Member
Oct 20, 2004
1,203
7
81
The 64 bit part only comes into play under a 64 bit operation system, which I assume you don't have. If you don't know if it is 64 bit windows you are running, it isn't.

I'm pretty sure it has to do with multiples of 2 but I don't know the techie stuff behind all that.
 

Targon

Junior Member
Jun 28, 2000
16
0
0
After AMD implemented the AMD64 instruction set(otherwise refered to as x86-64 or EM64T), it took a while for Microsoft to release a version of Windows that supports the extra features available. In order to run a 64 bit application, the operating system MUST be a 64 bit operating system.

In a 32 bit processor, applications are limited to 4 gigabytes of memory. There are workarounds to this limitation, but there is a performance penalty. Going to a 64 bit processor increases the addressable memory theoretically into the exabyte range(which is above the terabyte range which is above the gigabyte range if you didn't know), but is a bit below that due to implementation.

The AMD64 instruction set adds a number of registers as well, which if used properly, can help run applications better. Think in terms of reducing the number of steps in a calculation. If you need to shift information from register to register, pushing information to the stack, then popping it back because there arn't enough registers, adding registers would reduce or eliminate a bit of this.

Now, 64 bit also goes into how information gets moved around. Take a single byte(8 bits), two bytes(16 bits), four bytes(32 bits), or eight bytes(64 bits). If you are working with data and objects that take eight bytes, such as image processing, or compression, instead of needing to send two chunks of 32 bits worth of data, you can now manipulate the full eight bytes all at once. Considering how fast a computer is, while this may not seem like a big deal, with all the things going on at once, it will/would improve the performance in certain situations.

Don't get the wrong idea that jumping to 64 bit will improve the performance of everything out there. First, compilers are needed that understand how to make proper use of the AMD64 instruction set. If a compiler doesn't know how to generate GOOD 64 bit code, it won't be any better than 32 bit, and could even be a little slower. It's going to take some time on that front, but progress is being made. Things like compression(zip, RAR, and other formats) see a good improvement from the jump to 64 bit. Image processing, and other complex tasks will see more and more of an improvement as developers start to focus on ways to use the extra registers. Yes, there are already some improvements, but it will take some time. If a program is written with the majority of end users out there, then an application will work with 32 bits of information at once. A compiler may help tweak performance, but unless the program is changed so it will work with 64 bits at once on a 64 bit platform and 32 bits on a 32 bit platform, there will be a limited if any improvement.

These new versions of Source based games may very well have gotten some more tweaking than just running them through a compiler. I expect there wouldn't be a 64 bit release like this if there wasn't a notable improvement in performance as a result.
 

SexyK

Golden Member
Jul 30, 2001
1,343
4
76
Actually, the binary system is based on powers of 2, not multiples of 2 (although all powers of 2 will obviously be a multipe of 2 as well...)

2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32

So, this means a 4-bit binary number can have 16 different values, a 5-bit can have 32, etc etc...