Quote:
Originally posted by Sassyass
......
All that means is that it will run a 32bit program at 32bit and a 64bit program at 64bit. This is one of the ways that the powers to be are making the transition to true 64 bit processing. YOU CANNOT RUN 32bit SOFTWARE on a 64bit MACHINE.
it's like loading a Commodore program on a P4 .. It just won't work.
|
This is bullshit. Do you know what "running a program at 64bit" means? No? Thought not.
Calling a CPU 8,16,32 or 64 bit is mostly a meaningless PR excercise. There are multiple different parts of a chip which might use different numbers of bits. The data path to memory might have one number of bits, the address path another, the registers yet another, the instruction set might have specific instructions for dealing with particular bit widths etc.
Few CPU's are 100% one bit width. A typical example is the M68000 family (the current incarnation is the Motorola ColdFire, the CPU used in some Palm devices). The M68000 had a 16 bit datapath, 24 address lines and 32 bit internal registers. The 68020 and newer had a 32 bit datapath, 32 address lines and 32 bit internal registers.
However even for the older M68k, the instruction set supported a full set of 32 bit instructions, so all software written for it instantly started taking advantage of the 32 bit datapath once moved to a fully 32 bit CPU.
One typical way a 64 bit architecture could speed up 32 bit programs would be simply by increasing the width of the data path, potentially significantly increasing memory bandwidth (= how quick you can get things to and from RAM).
Another would be by modularising the ALU's (the units doing arithmetic), so that two arithmetic instructions can be run in parallel if they're only operating on 32 bits.
As for running 32 bit software on a 64 bit machine, most architectures that have made the switch demonstrates you are wrong. The _only_ thing that have an impact on this is whether the old instruction set is still supported. The x86 family is the best proof of this. It started out with 16 bit and 8/16 bit CPU's (8 bit datapath and 16 bit internally), and moved to 32 bit without breaking binary compatibility. Just as AMD is keeping binary compatibility in their 64bit CPU's WITHOUT emulation.
The only reason for using emulation in some architectures is to simplify the chip core, not because it is somehow impossible, or even difficult, to make a 64bit CPU that will 32 bith code.
Since you brought up the Commodore 64, I'd like to point out that you can buy a 16 bit CPU for the C64. It still have no problem running 8 bit programs
