Tom's Hardware Forums » CPU & Components » CPUs » big Questions about 64bit and the Hammer
 

big Questions about 64bit and the Hammer




Word :   Username :  
 
Bottom
Author
 Thread : big Questions about 64bit and the Hammer
 
IIB
Profile: addict
More Information

* all you need to make a 64bit program is compiling it in a 64bit compiler?

* are such compilers hard to program? is it easer to make a 64bit compiler then make a compiler that is optimized for a certian CPU (such as pentium 4)?

* are such compilers avalible for common programing languages? do think they will by the time the hammer is out?

* as hammer gains market share - should we accpect 64bit
software for the hammer alone (it wont be able to run on IA32 cpu would it?) if all you need is to compile it diffrantly it should make sence...

* can 64bit apps run on windows xp in a hammer based computer? and if they can will windows xp be able to run 32bit and 64 bit apps simultansly?

* should a cpu gain alot of preformance runing 64bit? over 32bit...

All the big Questions... what do you think?

Related Product

Register or log in to remove.

Profile: Honorary Poster
More Information

1) True. That doesn't necessarily mean you'll see advantages in it though. Quite a lot of software just doesn't need to be 64-bit.

2) Not any more than a 32-bit compiler.

3) 64-bit compilers have been around in the UNIX world for a while now. gcc, a very popular freeware compiler collection, can compile 64-bit code, even if the compiler is running on a 32-bit machine. gcc includes compilers for FORTRAN77, C, C++, Java, Chill, and probably a few others I can't recall off the top of my head. It is freely available for Windows and for almost every UNIX variant in existence.

4) Only a few specialized applications can really benefit from 64-bit processing. It wouldn't make sense to recompile the rest of the applications unless the CPU's 32-bit emulation was just horrible (like the Itanium's).

5) Not at the moment, the Hammer isn't released yet. Microsoft hasn't divulged yet whether it plans to support the Hammer in 64-bit mode or not.

6) Only for certain applications. 64-bit mostly benefits applications that need more than 4GB of memory, or need the capability to crunch 64-bit integers in hardware.

Kelledin
[dave@discovery ~] kill -9 1
init: Just what do you think you're doing, Dave?

IIB
Profile: addict
More Information

OK Thanx!

but... dont you think that the fact that 64bit offers:
8 new 64-bit general purpose registers (GPRs) as well as 64-bit versions of the original 8 x86 GPRs
will translate into preformance? i've been doing very litle assembly in my time but i do remember that doing math through the register is alot faster then the use of memory... in genral micro opps with registers are done much faster. so isnt the increse in register count and addressability benefits preformance? i think it should
but how much...?

More Information

Of course more registers will allow for faster performance, but that has nothing to do with how big a word a CPU can operate on. So, sure, more registers are good, but for all processors not just 64 bit processors.

As has been pointed out before, there are ways around the 4GB limit of 32 bit address busses built into current CPU's, namely in the form of a special purpose register. My point here is the added addressability won't really add anything new (well OK memory performance for locations above 4GB could be slightly improved).

The move to 64 bit architecture by doubling register size and adding identical execution hardware in parallel to existing bits won't help performance any. All moving to 64 bit will get you is precision/accuracy/resolution.

Since everyone who is currently working on 64bit designs is doing more than merely cutting and pasting to a 64 bit design from a 32 bit design, ie adding more registers etc. then theoretically there will be performance changes on the new designs. The extra performance just won't be due to the change in word size per se. It is all the other new junk being added which will add performance.

Profile: newbie
More Information

1. Yes (A 64-bit compiler supporting your processor of course). If you make a progtram from scratch you will have no problem compiling it. As for recompiling old (32bit) source code I am not sure. I think it depends on the quality of the code. Take C for instance. What is an int in 64bit. a long int? a short int? The operand size doesn't matter as long as you only do calculations, but if you would like to store an integer on disk "knowning" that it will occupy 4 bytes, you will have a problem.

2. Writing compilers isn't easy, but the guys that write our compilers are good at what they are doing. 64 or 32 bit doesn't matter. A optimized compiler is harder to write than a non-optimized.

3. Most certainly.

4. I guess linux-users will recompile their programs as they see fit. I also belive companies like ID Software will release different versions of their programs. A company like squaresoft: nah...

5. On the hammer you cannot run 64bit code from a 32bit OS, but the opposite works.

6. With 64bits, repetive operations like anding, oring, clearing and moving arrays in the L1 cache is done twice as fast as with 32 bits. But SSE2 already does this, and at 128 bits too.

All things equal your code would need more memory, and use more memory bandwidth. It would miss in the cache more often too.

Question:
Why didn´t AMD make an IA-64 processor? Didn't intel want to give away a licence? I don't like the idea of one PC being incompatible with another.

IIB
Profile: addict
More Information

Coz unlike an IA64 CPU an x86-64 CPU is totaly compatible with x86-32 code... so you can run both 32bit and 64bit without suffering from any loss in preformance runing 32bit programs... the x86-64 is a netural exctention of x86-32... itanium for one preformes very poorly with 32bit x86 code... coz IA64 uses difrante code not x86...

Profile: newbie
More Information

I don't think that is why AMD chose to differentiate themselves from intel. It must have had something to do with licenceing issues.

Compability have to suffer at some time. The x86 compability is compability with a processor that was introduced 1980. Much have changed since then.

I mean, I don't think mac-users miss their 680x0 processors anymore. IA64 will last for at least another decade.

But, if AMD continues to release cheap high performing x86-processors, then IA64 will probably be a flop, intel will have to release a pentium64, and we will be stuck in x86-hell forever.

IIB
Profile: addict
More Information

well my hopes r that the hammer will make the transiton to 64bit and then when 64bit is solidly(?) implemnted both intel and amd will move to the same IAS

Profile: enthusiast
More Information

hi :)
I am totally ignorant of 16/32/64/128 bit platform differences.

That said how can this be possible

"6. But SSE2 already does this, and at 128 bits too."

how can you have a 32 bit platform that is also partly 128 bit?

ThanksIA. I'm just curious is all.

More Information

IA64 wouldnt make much sense for AMD. It would cost them an enormous ammount of R&D, that they really cant afford. Also, since IA64 is barely compatible with IA32 (performace issues with 32bit apps), IA64 system are targetted purely at the high end for very specific tasks. AMD has little or no support in that market (yet). Even Intel cant manage to sell any quantities of Itanium cpu's, let alone AMD could make money out of it. It just wouldnt make sense right now. x86-64 was quite cheap to develop (in comparison) and might be a golden opportunity for AMD.

So, if ever Itanium would become really adopted, AMD would still have plenty of time to start developping IA64 systems before they become mainstream on the desktop (which is many, many years from now).

Other than that; I really think AMD doubts the potential of IA64. And frankly, who doesnt ? Its not just a new 64 bit architecture, its a very, very strange beast. VLIW has been proven before to be inadequate for general purpose computing. So far, Itanium had not been able to prove us otherwise. Wait and see...

Conclusion: regardless of any licencing issues (which im not aware off), AMD did the sensible thing. If ever required, they'll drop x86-64 and go for some sort of IA64. Just like intel may eventually be forced to drop IA64 and go for some form of x86-64. We wont know for a few years at least.

= The views stated herein are my personal views, and not necessarily the views of my wife. =

Profile: addict
More Information

Yeah Microsoft have not offically stated if they will be bringing out a 64bit version on Windows XP for Hammer.

I think AMD might have a tough time getting Microsoft to support x86-64. The reason I say this is not because x86-64 is hard to code or is inferior, but because of the architectural features of the Hammer Platform (which I will talk about later )

If Microsoft to release a x86-64 version of Windows XP it will mainly be used in Hammer based 2-4 way servers and will not be avaliable to home users.

I fear enthustiasts like us will be stuck with Win XP (32 bit) and it will be highly unlikley that Microsoft will produce a x86-64 'Home Edtion' version of XP. A x86-64 'Professional Edtion' of Win XP with multiple CPU support is more likley.

Going back to the architecture of the Hammer. First and foremostly the Hammer architecture is very diffrent. AMD have decided to go for the ccNUMA architecture instead of the tradtional SMP that Intel have stuck to.

As far as I know Microsoft have had little experience of developing an OS for ccNUMA based systems so are likly to come across new challeges.

ccNUMA architecture with multiple processors will present a serious rethink in the way the OS manages system memory, because we are now dealing with 'local' and 'non-local' memory access. Ultimately the way the OS manages and allocates memory for programs will affect the speed of the system greatly.

In SMP configuration (what Microsoft OS's are used to) the memory is logically treated as one block therefore it matters little of where data is stored in memory since all the memory resources are 'local' to the CPUs.
In NUMA, access to 'local' memory will take less time that access to 'non-local' memory. The OS has to decide where to store data either 'locally' to CPU or 'non locally'. The choice will depend on which processor needs the data the most. If a processor is working on a thread that requests specfic program data all the time the OS should store the program data locally to that CPU and not to anothers CPU memory block. You can imagine how important this will become especially when you add more CPU's (i.e 4-8 way systems). It would to liitle justice if program data was scattered all over the system (we want to minimise the number of requests a CPU has to make to another for a piece of data). Hammer systems might face this problem if the program data cannot wholly fit into one location.
Another problem also comes into play that is 'Integrity of data'. If the same piece of data is stored twice so that each CPU ie. (CPU1 and CPU2) has a working copy it can work with (thus minimising requests) which will be treated as the orginal source ?..if an update is made by CPU2 to memory how will CPU3 decide which data to use ? The updated version stored in local memory to CPU2 or data stored locally in CPU1 ?

In a SMP system data integrity or cache coherency is achieved by the system bus.
<i>In Intel servers this is referred to as a "snoopy" bus, as the CPUs can "snoop" on each other and see each other's memory requests. This is how cache coherency is handled. If a CPU sees that another CPU is requesting a memory address that it owns (has the latest copy of the data), the CPU will respond to the request and deliver the data from its cache. A CPU will request ownership when it wishes to write to an address, and will keep it until it "ages" the written data out to the memory or until another CPU requests
ownership.</i> (Source: Cellular MultiProcessing and Uniform Memory Access, UNISYS, Dec 1999)

In general I am aware solutions to these NUMA problems have already been solved, the question is whether Microsoft wish to develop a OS that not only supports x86-64 but also a new system memory architecture.

I am not slating AMD Hammer systems, in fact I think they look quite promising. I am just wondering whether AMD have enough experience behind them to deliver a decent NUMA based server that will challege Intel and other server manufactuers. Microsoft just presents another can of worms, a simple recompile won't work, the code which handles memory allocation will need to be rewritten. However with normal applications a recompilation is feasible, providing it is designed to work on a single processor PC.

Please feel free to argue or add to my comments as I could be talking a load of shite...I am not a programmer or platform/cpu expert.

<font color=purple>~* K6-2 @ 333MHz *~
I don't need a 'Gigahertz' chip to surf the web just yet ;-)</font color=purple><P ID="edit"><FONT SIZE=-1><EM>Edited by mr_gobbledegook on 12/16/01 03:33 PM.</EM></FONT></P>

Era
Profile: addict
More Information

If Microsoft to release a x86-64 version of Windows XP it will mainly be used in Hammer based 2-4 way servers and will not be avaliable to home users

Why would M$$ release enything like that?There is no need for that!Not yet.
-------------------------------------------
Hammer will be an all-around proc that handels old and new apps,some slower
in 32 mode and the apps not yet here A LOT FASTER in 64 mode.
--------------------------------
In my mind Hammer is best thats happenned since 386.

Era
Profile: addict
More Information

Hello there!

Profile: addict
More Information

But SledgeHammer is mainly designed for servers ie. 2-4 way servers (just like SMP Xeon systems).

Windows XP Professional has muliprocessor support Windows XP Home Edition does not. Naturally server maufacturers will supply an OS that supports multi processors.

However because the Hammer also understands 32 bit code I am wondering if Microsoft will spend time and money to release a x86-64 OS for just single CPU Clawhammer (Windows XP Home Edtion for x86-64) desktop systems.

<font color=purple>~* K6-2 @ 333MHz *~
I don't need a 'Gigahertz' chip to surf the web just yet ;-)</font color=purple>

More Information

I hope that hammer will be released because i really want to buy one.

Profile: Faithful Poster
More Information

64bit machines are doing brute force work, and have no real application for home users currently. The Itanium is a very strong 64bit CPU shaving years off the schedule for complete mapping of the human genome (YEARS!). This breakthrough has already <A HREF="http://www.nytimes.com/thestandard/standard_28207.html?searchpv=thestandard" target="_new">found cures for birth decfects</A> and <A HREF="http://www.denverpost.com/Stories/0,1002,33~106699,00.html" target="_new">diseases</A> that were not treatable last year. why should companies wait till the end of next year when Itanium already does it better today? Oh I forgot, you wanted to run 32bit apps on your pseudo 64bit CPU! LOL

Also 64bit machines do the CFD for military, medical, and aerospace projects in record time, and thousand of other 64bit only applications run on the Itanium. If you cannot afford $10,000 for 64bit machine how can you buy the software that costs upwards and over $100,000? 64bit will not be proctical for a few more years for home users or even mid range servers.

Itanium is NOT made for 32 bit apps, so quit trying to complain how bad it is on 32bit apps. lets see how well your car runs on des