3 ms·
A 64-bit instruction set is about more than just the size of a pointer. A 64-bit CPU has 64-bit general-purpose registers, and it has versions of arithmetic an
by mansr 17y ago
A 64-bit instruction set is about more than just the size of a pointer. A 64-bit CPU has 64-bit general-purpose registers, and it has versions of arithmetic and logic instructions operating on these. Because 32 bits is enough for most purposes, instructions must also have a variant operating only on the lower half of the registers, the upper half being either ignored or sign-extended from the lower as appropriate. This makes the CPU core a fair bit more complicated, meaning larger silicon footprint are higher power consumption. I agree a 64-bit ARM is unlikely in the immediate future.
Extending the physical address space beyond 4GB is possible without any changes to the instruction set. See x86 PAE for an example. In short, the MMU translates a 32-bit virtual address into a wider physical address. This allows running multiple processes with a total memory requirement of more than 4GB. As the vast majority of applications never need more than 4GB of virtual space anyway this isn't much of a restriction in practice. I reckon this kind of thing is something we might see in an ARM core relatively soon, at least if they keep growing in the netbook market.
- anamax 17y ago> This makes the CPU core a fair bit more complicated, meaning larger silicon footprint are higher power consumption. Is 5% a "fair bit"? I ask because the MIPS folks said that their 64 bit instruction set cost them less than 5%. And yes, their 64 bit CPUS supported both their 64 and 32 bit ISAs.
- koenigdavidmj 17y ago>A 64-bit instruction set is about more than just the size of a pointer. A 64-bit CPU has 64-bit general-purpose registers, and it has versions of arithmetic and logic instructions operating on these. No. x86_64 only has sixteen general purpose registers, and 64-bit MIPS still has 32 (one is hardwired to zero, so really 31). Registers in the instruction set are bit-mapped---with five bits you get 32 registers (25). The size of a register and the number of registers are completely independent.
- sparky 17y ago>> A 64-bit CPU has 64-bit general-purpose registers > No. x86_64 only has sixteen general purpose registers Right, but they're still 64 bits wide, like he said.