Kon de 64 bit processor van Intel niet emuleren? Als ik het me goed herrinner functioneerde dat niet bepaald goed, maar het kon dacht ik wel...
Alle details weet ik er echter niet van. In ieder geval zullen vrijwel alle applicaties prima werken op een 64 bits processor als deze opnieuw gecompileerd zijn met een compiler voor deze architectuur. Hercompilatie lost al deze problemen dus op, maar daar heb je natuurlijk niet zoveel aan als je leverancier alleen gecompileerde code levert. GNU systemen zijn wat dat betreft enorm in het voordeel, omdat je daar vaak de applicatie moet compileren tijdens het installeren.
De compiler heeft bij deze nieuwe architectuur van Intel trouwens nogal wat interessante (RISC achtige) taken tov de IA32 architectuur en hierdoor zal een goed optimaliserende compiler een grote invloed op de performance kunnen hebben.
Een paar quotes:
Itanium(TM) is Intel's new 64-bit architecture. It is based on the EPIC (Explicitly Parallel Instruction Computing) concept which exploits the high level of Instruction Level Parallelism (ILP) found in application software. To accomplish this goal, Itanium provides a powerful set of features such as control and data speculation, predication, register rotation, loop branches, and a large register file. By using these features, the compiler plays a crucial role in achieving the overall performance of an Itanium platform.
en hier vandaan:
http://www.devx.com/itanium/art_Perform.asp
dit:
The Itanium processor owes a lot of its boosted performance capability to the fact that the CPU, like a RISC processor, has few supervisor circuits to slow it down with the need to detect resource conflicts; that job becomes the responsibility of the compiler. While most other CPUs in general use do parallel processing behind the programmer's back, so to speak, Intel and Hewlett-Packard make use of what Intel calls "explicitly parallel instruction computing," or EPIC. With EPIC architecture, the instruction set relies on the compiler (or programmer) to provide "hints" about branch optimization, loop optimization, and memory access. This means fewer transistors expended on cycle-consuming "supervisors," which means more transistors on the chip to do more actual processing. And that means smaller, cooler CPU chips in your computer. The savings on transistors comes at a price: The development environment in general, and the compiler in particular, is more complicated than letting the CPU analyze the code during execution. The benefit, though, is that the compiler can take all the time it needs to determine the best way to tune the program, using the results of instrumented runs of the program to fine-tune everything and, arguably, generate big gains in performance and throughput.
Je ziet dus dat de compiler een belangrijkere rol gaat spelen bij deze architectuur. De keuze van de gebruikte compiler kan hierdoor weleens erg veel verschil gaan uitmaken.
Daarnaast is het misschien nog interessant om de runtimes te noemen.... Het Java Platform en Microsoft .NET kunnen uitermate goed profiteren van de overgang naar een nieuwe architectuur. De applicaties zijn daar namelijk 'gecompileerd' naar een soort intermediate language, die onafhankelijk is van een processor-architectuur. Just in time wordt dit gecompileerd door een compiler naar de architectuur waar de VM op draait. Als de just in time compiler in de Virual Machine geoptimaliseerd wordt voor het 64 bits platform profiteren gelijk alle applicaties die op deze VM draaien hiervan. Hierdoor kunnen alle Java en .NET applicaties volop profiteren van de nieuwe architectuur, zonder opnieuw gecompileerd te worden. Uiteraard voorkomt dit ook voor een groot deel een mogelijk chaos.
IBM heeft al een Java Virtual Machine ontwikkeld van de Itanium en ook Sun heeft nu JVMs die de architectuur van de Itanium benutten (zie het rijtje
hier. Ik neem aan dat ook Microsoft hiermee bezig is, of dit al op de plank heeft liggen omdat dit natuurlijk ook zeer wenselijk is voor .NET.