Teemu Pudas wrote:Because individual bits aren't addressible.
But why not?
By definition of the term "byte". A byte is defined as the unit of memory addressing. These days people tend to believe that a "byte" means 8 bits, because most widely used CPUs today have 8-bit bytes. In the past, there used to be computers with smaller or bigger bytes.
That the standard byte size has ended up being exactly 8 bits is probably just a historical accident.
Teemu Pudas wrote:Because individual bits aren't addressible.
But why not?
By definition of the term "byte". A byte is defined as the unit of memory addressing. These days people tend to believe that a "byte" means 8 bits, because most widely used CPUs today have 8-bit bytes. In the past, there used to be computers with smaller or bigger bytes.
That the standard byte size has ended up being exactly 8 bits is probably just a historical accident.
Just to drive you all further down the bitroad of insanity I hear that AMD is coming out with a new chip called Bulldozer which will be 128bits!
If you use a 64 bit address space (no processor today does this yet) then with 64 bits, you have numbers between 0 and 2^64 - 1, which is a total of 2^64 bytes. Not sure exactly what you are looking for here. Today's 64 bit processors are using a 40 bit physical address space, which is only 1 terabyte of ram.
Why don't they create 64bit address space?
Lots of reasons. Makes the TAG for cache entries longer. 24 bits longer in fact. Which would reduce the size of the cache significantly and increase the width of the data path inside the cache in order to move around longer tags.
You can't even buy a 1TB PC today. If you used 4gb DIMMS, you need 256 of them. They will be so far from the processor that memory cycle time will go up dramatically.
bob wrote:Today's 64 bit processors are using a 40 bit physical address space, which is only 1 terabyte of ram.
Why don't they create 64bit address space?
It would cost more, and possibly be a little slower. If almost no one wants to use all the address lines then it's a waste.
A quick search with Google suggests that the AMD Phenom supports 48 bits of physical address. I didn't check the Intel chips.
I have not looked at this carefully, but most I have examined support 48 bit virtual address space, but only 40 bit physical. They might have stretched this a bit, I'll try to investigate.
bob wrote:If you use a 64 bit address space (no processor today does this yet) then with 64 bits, you have numbers between 0 and 2^64 - 1, which is a total of 2^64 bytes.
But how did you arrive at 2^64 bytes?
Simple math. If you use a 2 bit address space, you can only address 2^2 bytes (4, 00, 01, 10, 11).
This is an architectural detail of X86. There you can only address bytes. On the older Crays, we addressed 64 bit words, there was no way to address a single byte. On the older machines like CDC, we addressed words that could have been 30 bits, 32 bits 36 bits, or even 60 bits. It was defined by the architecture as the machine was designed. For the PC, memory is byte-addressible...