• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

How much memory can a n-bit system address?

RapidSnail

Diamond Member
I've been doing some wiki reading about computer topics (logic gates, architechture, programming, etc.) and something's confusing me about addressable memory. On the wiki page about 32-bit systems, it says that such systems have the ability to address 4 GB of physical memory:

"The range of integer values that can be stored in 32 bits is 0 through 4,294,967,295 or -2,147,483,648 through 2,147,483,647 using two's complement encoding. Hence, a processor with 32-bit memory addresses can directly access 4 GB of byte-addressable memory."

This follows from 2^32 = 4 294 967 296 bits of data. However, the article says 4 GB, or gigibytes, of memory; a byte traditionally defined as an 8-bit word. So it would seem as if the maximum amount of byte-addressable memory would be 536 870 912 bytes (2^32 ÷ 8). Which doesn't make much sense, since 32-bit systems can address 4 GB of RAM.

?
 
Each address is used to address one byte, rather than one bit. So with 32 addressing bits, you can address 2^32 memory locations, each of which is one byte (8 bits) in size. So 4 GiB.
 
Originally posted by: Aluvus
Each address is used to address one byte, rather than one bit. So with 32 addressing bits, you can address 2^32 memory locations, each of which is one byte (8 bits) in size. So 4 GiB.

1) So a memory address in a 32-bit system is a 32-bit integer mapped to one byte of memory located in system RAM? (The total amount of bytes addressable is therefore 2^32 bytes.)

2) Why use byte-addressing instead of larger sizes of word-addressing? Is the issue how small the data chunks can be rather than how large?

3) Could you increase the amount of addressable memory in 32-bit systems by creating memory sticks with, say, 4-byte word sizes instead of single byte?

4) Is the amount of data addressable in one operation limited by the bus width? (i.e. Only 32 bits or 4 bytes or data can be transferred in one operation on a 32-bit system.)
 
They actually do not use byte addressing. A 32-bit system addresses dwords, and a 64-bit system addresses quadwords. A byte is the smallest piece of memory that can be assigned a unit address. On a 32-bit system addresses like 0, 4, 8, 12 are dword alligned and can be accessed at the lowest cost; there is some cost for addressing, say, byte 5 or 9. I used to know a lot more about this than I do now, but I think that's the gist of it.
 
Back
Top