Bits, Bytes, and Words...

Gulshan Singh

Solid State Member
Messages
19
What does it mean when someone says a word can "address" 2^16 bytes of memory? I was reading an article on computer memory addresses, and they were saying that a while ago the largest registers were 16 bits, so only 2^16 bytes (64 kB) could be addressed. They also said that this meant that they couldn't run larger programs because of this, but I don't understand why... Why is this?
 
Well first off you probably have heard of byes before and have not realized it.
Lets think of memory in a computer ok?

In a computer to make sense of it all we scale memory in one thousands.
1 byte being the lowest.
1000 bytes is equal to one kilobyte..
1000 kilobytes is equal to one megabyte.
1000 megabytes is equal to one gigabyte.
1000 gigabytes is equal to one terabyte.

This is (for now) the highest you need to know on that scale.

Now I am going to get a bit technical ok so hold on to your pants.

In a computer there are switches, these are the way it finds information and process it. These are called bits, they can equal only one of two values.
1 or 0
Nothing else, now you may see that and say one and zero? huh? what does that mean.. Well when you think of zero what do you think of? nothing.. If you have zero apples you have no apples.. So if you said you had an apple, that would be (keyword-)false. But if you had one apple and said you had an apple. That would be (keyword-)true.
So to a computer 1 means true and 0 means false.

Now that we know a little bit (pardon the pun) lets look back at your question.


Lets quote you to get everything.
{What does it mean when someone says a word can "address" 2^16 bytes of memory? I was reading an article on computer memory addresses, and they were saying that a while ago the largest registers were 16 bits, so only 2^16 bytes (64 kB) could be addressed. They also said that this meant that they couldn't run larger programs because of this, but I don't understand why... Why is this?}

For a little side note 8 bits is equal to 1 byte.

So 2^16 meaning 2 raised to the 16th power.
Now that being said that equals 65536 bytes. (65KB)

Since 8 bites is 1 byte and the largest register is 16 bits that means we can process 2 bytes at one time. Got that or did I loose you? Hopefully you got that if not read it slowly a few times.
Now when they say addressed they mean "processed". Sorta like one office worker(register) takes one piece of paper(bit) and works(process) on it.

Basically it's saying they had(have) a 65KB ram card.
(extremely slow by today's standards)

So with that said I am not sure what that article means when it says it can address 64KBs at one time when it's a 16 bit register. With that theory it would take you about 546 and 1/3rd cycles.
Now if the article said it could process 2^16th it probably didn't mean just one 16 bit processor.



(All this info was based on just your small given amount of information)



edit: did a quick search on google.

"A 16-bit integer can store 216 (or 65536) unique values. In an unsigned representation, these values are the integers between 0 and 65535; using two's complement, possible values range from −32768 to 32767. Hence, a processor with 16-bit memory addresses can directly access 64 KiB of byte-addressable memory."
 
I understand when you say a 16 bit register can process two bytes at a time. But I don't understand what the information from the google search is about... it's basically the same thing the article said, and if I don't get the article I'm not going to to get that... Thanks for everything else you said! If anyone can clarify this it would be great.
 
Back
Top Bottom