Jump to content

why is memory 2^x size?


Recommended Posts

To expand on that...

Memory is addressable by individual bytes. Each byte of memory has an "address" which is basically a binary number. If you have 20 address lines (wires) connected to the chip, you can have 2^20 (about a million) different addresses. I guess it wouldn't make much sense to have some of those addresses not connect to anything. You'd need 19 address line bits to access 0.5 MB, but still 20 bits for a 0.6 MB chip, which would be a waste.

 

 

 

Interestingly, it wasn't always so. In the days of 16-bit processors, they used paged memory, where 16 bits referred to a "page" and another 16 bits referred to a location in that 64k page. With the 8086 processor design, addresses above 640k were "reserved" for video memory and other stuff... essentially addresses *could* connect to nothing.

 

Page addresses were on 16 byte boundaries, so the chips could address 64k * 16 = 1 M of memory (much of it reserved). However, the highest page addresses go right up to the last 16 bytes of the 1 M limit but the page could still access the full 64k of addresses above that first byte. I think they called it "Extended Memory". So if you had the physical memory, old 16-bit software could address 640k + 64k-16 bytes. I'm sure hackers found ways to store a little more, like in the video memory.

 

 

I didn't bother to check sources, hopefully the details are close enough.

Link to comment
Share on other sites

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.