For everyone this is a nice Article about AMD64 Architecture http://www.bit-tech.net/bits/2007/10...just_the_ram/1
64bit means pointers are all 64-bit wide - that means many datastructures grow significantly -> applications use more memory for same data -> less data fits in cache -> more stress on memory subsystem.
Thats the price we have to pay with 64-bit.
After all, the performance improvements in some benchmarks are often not because 64-bit arithemtic operations (SSE2 already does the same), but because there are now 16 instead of 8 registers and PC-relative adressing is now supported.
The only flaw I can see in 64 bit is ndiswrapper for wireless drivers - some of these windows drivers did not come out in a 64 bit verions
If the software already uses SSE(2) there's nothing to gain here, so the improvements are reduced to 64-bit integer scalar math stuff and more registers.
The article is horrible. Its full of half-wishdom and wrong conclusions/assumptions:
1. Why should what crash? The autor seems to mix&match descriptions about pic-code, pdc-code and pc-relative adressing.1. This type of programming can be very inefficient, as it requires an absolute understanding of which addresses and registers are free at the time. If that for some reason was already full or was otherwise unable to be written, the program would crash due to a general protection fault. It also meant that little program pieces were strewn about free memory addresses and registers rather than intelligently organised.
2. Linux/Unix/BSD users are given a whole different choice. The 'nix universe has developed kernels designed specifically to run only 64-bit
Last edited by Linuxhippy; 11-09-2008 at 06:59 AM.
The biggest issue I see with Linux 64-bit is that you can't choose between 32-bit and 64-bit libraries by default. That is, you only have one "/usr/lib" and in a 64-bit installation, they're all 64-bit libs. If you have a 32-bit program requiring a lib in /usr/lib, you're screwed.
Solaris for example requires both 32-bit and 64-bit binaries for drivers and libs to be installed together (i.e. the 64-bit version in under the "amd64" or "64" subdir and the system takes care of choosing the right version).
Now, that is an annoying thing - even when you have a statically linked 32bit binary, if your system is 100% 64-bit (meaning 64-bit libs in /lib and /usr/lib), it won't run because it can't find a 32-bit /lib/ld-linux.so.2.