Many years ago, I used to program 8-bit computers. The first thing to know about them is that they were 16-bit computers. Sort of. The Z80 inside the ZX Spectrum had 16-bit registers (the things that actually do the work inside the processor), and a 16-bit address bus. A 16-bit address bus means you can specify any one of 65536 RAM (memory) locations to store or retrieve a number. 65536 is commonly approximated and abbreviated to 64K. Hence the name of the Commodore 64.
Similarly, 16 bit registers mean you can work with numbers (integers) in the range 0-65535. This is a very useful range of numbers for most things you'd want to count.
But then along came 32-bit processors, allowing a number range of up to 4 billion. Not many calculations need to use numbers that big. (And anyway, FPUs came in about the same time allowing you to do calculations with non-integers for things like calculating the national debt down to the last penny.) 32 bit processors can access 4 billion memory locations, today known as 4 Gigabytes. Smartphones like the iPhone5S currently have less than 4GBytes of RAM anyway, so 64-bit addressing is irrelevant.
But people have more memory than that in desktop computers, so the next step up was to go with 64 bits. Which is really overkill for almost everything. (48 bits would have done the trick for real-world amounts of RAM.)
As far as the registers in the processor go, there's not a lot you can do with 64 bits that you couldn't do with 32. Unless you can swap the high and low ends around. Which effectively gives you more registers. This is a good thing because the more registers in the CPU, the less you have to access memory. Memory access is slow, which is bad.
So Apples's new A7 processor basically has twice the CPU internal memory of the A6. Which makes it faster. If it's used. Which it probably won't be. Unless...
No comments:
Post a Comment