Jump to content

Recommended Posts

Posted

If I remember correctly there is no actual "reason" for this, in terms of physical laws. The amount of memory space that a CPU can address is just whatever the chip's designer says it is. By convention that number is 2^X, where X is the size of the instruction word. There have been exceptions (the usual example is the Apple II and C64 chip (MOS 6502) that used 8-bit instructions but addressed 16-bit memory spaces), but that's generally how it works. Most chips today don't actually have the ability to address 2^64, but they could in theory if their motherboards (and the chip sets that run them) supported it.

 

That number (2^64) is 16 "exbibytes", by the way. It's a number type you don't hear very often, and an odd one to say out loud. It means that a 64-bit computer can, in theory, have a billion gigabytes of RAM, as opposed to the two or four gigabytes that's typical today. Guess we'll be working on that one for a while, huh? :)

Posted
If I remember correctly there is no actual "reason" for this, in terms of physical laws. The amount of memory space that a CPU can address is just whatever the chip's designer says it is. By convention that number is 2^X, where X is the size of the instruction word.

 

But what does the "2" stand for?

Posted
But what does the "2" stand for?

 

A binary digit (i.e. a bit) which can be 0 or 1. With 64-bits you have 64 of them, so it's 2^64.

Posted

yes, 2^64 is the number of distinct addresses. and as RAM is addressed in byte sized blocks this means you can assign a unique address to 2^64 bytes of RAM.

Posted

if we ignore the control lines, you`ll see a ram chip has address and data lines, the Data lines in a 1 byte wide chip has 8 lines and can represent any number from 0 to 255.

the address lines are like little storage boxes, and each box you can put in any number between 0 and 255 (data), a bit like the old pigeon holes or the way mail used to be sorted, one box for all the letters going to an address.

 

to 2^64 is is simple too, take the number 2 and then double it, you get 4, double that you get 8, 16, 32, 64, 128 etc...

in your chip, you have to keep doubling it 64 times, that`s a Massive number!

 

think about it, a chess board has 64 squares, put a small piece of paper with any number between 0 and 255 writen on it, on square number 1, then 2 peices on sqr 2, 4 on sqr 3, 8 on 4, 16 on 5 etc...

by the time you get to sqr 64, you`ll be an old man, have used up several pens, and have a pile of paper probably bigger than the empire state building! :D

Posted

With one bit I can adress two locations, one called "0" and the other called "1".

With another bit I can addres 4 places "00", "01", "01" and "11"

Another bit lets me put a "0 or "1" on the start of those 4 names so I get twice as many adresses again.

Each bit of address length doubles the number of possible combinations and, therefore, the size of the memory that can be addressed.

The total number of possiblilities is 2^n for n bits so an n bit adress can uniquely identify 2^n possible adresses. Each one hold one byte so it can address 2^n bytes.

 

That's not an arbitrary convention on the maker's part; its a limitation of the bus design. You could do more with a different number base but virtually nobody does that .

Posted

I think it is out of question that with N digits 0 and 1 I one can form 2^N different combinations. I would like to emphasize that still no one forces me to use a 32-bit integer to address memory just because I am on a 32-bit machine (at least in theory, in practice that is how they address their memory nowadays) - this is also what Pangloss meant, I think. Popular counter-examples:

- My 1st computer was a C64: 8-bit registers, 2 registers for addressing the memory => 64 kB addressable memory.

- Pretty much all 16 bit home PCs had by default a 1 MB addressable memory range (due to some completely moronic addressing system), more (called EMS and XMS, iirc) was accessible with loading special libraries.

 

That number (2^64) is 16 "exbibytes", by the way. It's a number type you don't hear very often, and an odd one to say out loud. It means that a 64-bit computer can, in theory, have a billion gigabytes of RAM, as opposed to the two or four gigabytes that's typical today. Guess we'll be working on that one for a while, huh? :)

The 1MB limit mentioned above was, at least according to common belief, introduced because the designer foresaw that no computer will ever need more than 1MB of RAM. Considering scientific problems there is no limit of RAM that you could fill if you wanted to (provided you have the computing power to make use of the additional data).

Posted

well, with the use of registers in that way you can do what`s called Polling, and if you don`t mind using a few extra clock cycles to do this, you can have Several banks of 64k if you like, the C= 128 did this.

and the Zilog Z80 specifically incorporated this fuction in its architecture as well as boasting 16 bit internal registers (the 1`st 8 bit CPU to do this).

oh yeah, and for the record the C= 64`s cpu was only BASED on the 6502, it wasn`t an actual 6502.

Posted

Whatever size word you use, with n lines you can address 2^n of them (at a time).

If the 64 bit system that the OP asks about is 64 bit (ie uses 8 byte words) then the capacity given is wrong, it should be 8 times more.

Posted
Pretty much all 16 bit home PCs had by default a 1 MB addressable memory range (due to some completely moronic addressing system), more (called EMS and XMS, iirc) was accessible with loading special libraries.

 

"640k is good enough for anyone" LOL

 

Yes fortunately the 386 added an MMU and with it we got all the benefits of virtual memory, such as not having to worry about the balance of XMS vs EMS vs conventional memory.

Posted

Well I'm going on record right now: No computer will ever need more than one billion gigabytes of RAM!

 

(Now the question is whether or not I will still be alive when I'm proven wrong!)

Posted
Well I'm going on record right now: No computer will ever need more than one billion gigabytes of RAM!

 

Otherwise known as one exabyte.

 

(Now the question is whether or not I will still be alive when I'm proven wrong!)

 

Maybe not... I think you'll see CPU caches eventually replaced with general purpose RAM... and an individual CPU given a not so gigantic amount of RAM (but still way more than we have today) and massive numbers of CPU cores (billions, trillions, quadrillions)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.