Maximum Memory on 32 bits architectures

0

My question is simple. On a 32 bits architecture, the maximum RAM is 4GB because the cpu can handle 32 bits addresses. So 2^32 is 4096. My question is why the unit is GB instead of Gb??. we are talking about bits. Thanks for your response.

John Doe

Posted 2016-10-01T23:04:15.020

Reputation: 11

3

Possible duplicate of What is the max. capacity of RAM in 32-bit machine? Why it is not 16GB?

– DavidPostill – 2016-10-01T23:17:26.603

4"So 2^32 is 4096." No. 2^32=4294967296. 4096=2^12. – Kamil Maciorowski – 2016-10-01T23:20:06.883

we could easilly call 32bit systems 4B systems if we wanted to. but we don't, because system byte size varies between hardware architectures (yes there are systems with 7-bit and 10-bit bytes historically). What a platform's bittedness really tells us is the "Word Size" for the CPU, which defines things like the size of registers, the width of buses, and the size of instruction operands. It is the width of the bus to and the register used by the MAR/MDR components of the memory management system that determine the max size of a memory address. – Frank Thomas – 2016-10-01T23:37:37.163

Answers

2

My question is why the unit is GB instead of Gb?

Each addressable location contains one byte.

If you can access $X bytes then the maxuimum addressable memory is $X bytes.
(Those 8/16/32/64/10 (10 on some old IBM Mainframes!) bits are read from a single address!)

Hennes

Posted 2016-10-01T23:04:15.020

Reputation: 60 739

An address doesn't "contain" a byte. Each addressable location is a byte. But addresses don't "contain" the data any more than a house number contains the house. To store a datum that needs more than one byte you use successive byte locations. If you, for example, address a 32-bit integer on at address 0x10000, the integer occupies bytes at addresses 0x10000 through 0x10003. – Jamie Hanrahan – 2016-10-03T04:40:14.847

You are right. I kept my answer very short, but making it better with only one word is a good thing. – Hennes – 2016-10-03T04:46:37.477

2

Normally, a processor with a 32-bit architecture can only address 4 GiB of physical memory at any given time (232 = 4294967296). Each byte of physical memory has its own address.

However, there are ways to expand the address space, such as PAE. Although this enables the processor to address more than 4 GiB of memory, applications running on a 32-bit processor use 32-bit variables to access data. This means that each application still cannot access more than 4 GiB of memory.

bwDraco

Posted 2016-10-01T23:04:15.020

Reputation: 41 701

+1 for the reference to PAE and how this allows the processor to address more than 4 GiB, and I wish I could give you another 99 points. – ChrisInEdmonton – 2016-10-03T18:54:39.330

1

To determine the ammount of memory that can be addressed we need to know three things.

  1. The size of the smallest addressable unit of memory. On pretty much all current general purpose computers this is the 8-bit byte. Computers do not generally address memory in bits.
  2. The usable size the phsyical address. This may be the same as the data word size of the processor but it often isn't.
  3. Whether any memory address ranges need to be used for things other than memory. Most systems place IO devices in the memory map reducing the ammount of space available for regular memory (sometimes significantly so).

plugwash

Posted 2016-10-01T23:04:15.020

Reputation: 4 587

0

Memory is addressed by byte number, not bit number. This is a compromise, with 8 bits the minimum size of a machine instruction.

It could be addressed by 32-bit words and thereby handle 16GB of memory, but then machine instructions would be at least 32 bits, program code would be much larger and text handling would require complex and inefficient processing, unless characters were stored as one per word.

Analogously, discs are addressed by 512-byte sector number, giving the partition size limit of 2TB on disc systems with 32-bit addressing.

AFH

Posted 2016-10-01T23:04:15.020

Reputation: 15 470

Thanks very much for your comment. It's good to find people with real knowledge. The address is in bits according to this diagram. Can you explain it? https://www.google.com/search?q=paging+segmentation&client=firefox-b&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjS5t3r5rrPAhXHS5AKHWKDDakQ_AUICCgB&biw=1920&bih=978#imgrc=wdel9nRYQHdRDM%3A

– John Doe – 2016-10-02T00:03:08.873

@JohnDoe - That reference is talking about the bits in the address, not the data. – AFH – 2016-10-02T00:08:14.787

2There is no partition size limit of 2 TB on 32-bit systems, unless the file system chooses to implement that. The 2 TB limit you're thinking of is due to the size of the entries in a partition table on an MFT-partitioned disk. However a disk using GPT partitioning can theoretically implement partitions of up to 2^64 sectors. 32-bit systems are perfectly capable of handling this. It is just a tiny bit of programming to deal with 64-integers even on a machine with 32-bit integer registers. – Jamie Hanrahan – 2016-10-03T04:35:53.367

@JamieHanrahan - Sorry. You are right of course: what I should have said was 32-bit disc systems, ie discs with a 32-bit addressing structure. Unfortunate phrasing - I stand corrected. – AFH – 2016-10-03T12:34:36.307

Ah... for want of a word! :) – Jamie Hanrahan – 2016-10-03T22:33:59.200