Why does 64-bit address space equal 2^64 bytes of RAM?

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

F. Bluemers
Posts: 880
Joined: Thu Mar 09, 2006 11:21 pm
Location: Nederland

Re: Why does 64-bit address space equal 2^64 bytes of RAM?

Post by F. Bluemers »

Uri wrote:
Teemu Pudas wrote:2^64 addresses = 2^64 bytes can be addressed. 64 bits leads to 2^64 addresses.
But if 1 byte is 8 bits so shouldn't 2^64 bits equal 2.3 x 10^18 bytes?
A line can be 0 or 1,so with 64 of them you can generate 2^64 adresses.
Best
Fonzy
Teemu Pudas
Posts: 88
Joined: Wed Mar 25, 2009 12:49 pm

Re: Why does 64-bit address space equal 2^64 bytes of RAM?

Post by Teemu Pudas »

Uri wrote:
Teemu Pudas wrote:2^64 addresses = 2^64 bytes can be addressed. 64 bits leads to 2^64 addresses.
But if 1 byte is 8 bits so shouldn't 2^64 bits equal 2.3 x 10^18 bytes?
Because individual bits aren't addressible.
Uri
Posts: 507
Joined: Thu Dec 27, 2007 9:34 pm

Re: Why does 64-bit address space equal 2^64 bytes of RAM?

Post by Uri »

Teemu Pudas wrote:Because individual bits aren't addressible.
But why not?

An address is simply a binary number according to your definition.

According to Wikipedia an address is a binary number from a finite monotonically ordered sequence that uniquely describes the memory itself.

http://en.wikipedia.org/wiki/Memory_address
Last edited by Uri on Tue May 26, 2009 7:31 pm, edited 1 time in total.
Gian-Carlo Pascutto
Posts: 1260
Joined: Sat Dec 13, 2008 7:00 pm

Re: Why does 64-bit address space equal 2^64 bytes of RAM?

Post by Gian-Carlo Pascutto »

Arbitrary design decision.
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Why does 64-bit address space equal 2^64 bytes of RAM?

Post by Tord Romstad »

Uri wrote:
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.
Terry McCracken
Posts: 16465
Joined: Wed Aug 01, 2007 4:16 am
Location: Canada

Re: Why does 64-bit address space equal 2^64 bytes of RAM?

Post by Terry McCracken »

Tord Romstad wrote:
Uri wrote:
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! :D
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Why does 64-bit address space equal 2^64 bytes of RAM?

Post by bob »

Terry McCracken wrote:
bob wrote:
Uri wrote:I read on HowStuffWorks that 64-bit RAM address space equals 2^64 bytes of RAM.

http://computer.howstuffworks.com/microprocessor6.htm

Why is that?
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
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Why does 64-bit address space equal 2^64 bytes of RAM?

Post by bob »

Dirt wrote:
Terry McCracken wrote:
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
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Why does 64-bit address space equal 2^64 bytes of RAM?

Post by bob »

Uri wrote:
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).

64 bits gives you addresses from 0 to 2^64-1
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Why does 64-bit address space equal 2^64 bytes of RAM?

Post by bob »

Uri wrote:
Teemu Pudas wrote:Because individual bits aren't addressible.
But why not?

An address is simply a binary number according to your definition.

According to Wikipedia an address is a binary number from a finite monotonically ordered sequence that uniquely describes the memory itself.

http://en.wikipedia.org/wiki/Memory_address
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...