up vote 1 down vote favorite
1
share [g+] share [fb]

You may feel this is not a programming question and want to move it to superuser.com but itdoes belong to SO.com

I just started learning assembly.

My laptop specification says:

Microprocessor: Intel Core Duo processor T2300

Microprocessor Cache: 2MB L2 Cache

Memory Max: 2048MB

Memory: 1024MB 667MHz DDR2 System Memory (2 Dimm)

"Intel Core Duo processor T2300" specification says:

instruction Set : 32-bit

1- I think now I can assume that the data bus is also at least 32 bit. So mimimum addresssible memory should be 4GB. right?

Moreover CPU specs also mention the Memory Specification

Physical Address Extensions 32-bit

2- Doesn't this mean It can address 64GB of memory?

3- So, given only 2 memory slots on motherboard. my laptop can support 2x 2GB memory sticks == (4GB) memory. right?

I guess the laptop guys assumed that there won't be 2GB sticks, so they might have mentioned Memory Max: 2048MB

If I'm right. Learning assembly language really paid off!! I can upgrade to 4GB memory :D

link|improve this question
feedback

migrated from stackoverflow.com Dec 27 '09 at 13:42

This question came from our site for professional and enthusiast programmers.

4 Answers

Addressable memory for a 32-bit system is 4GB, physical memory is whatever's installed. Your operating system manages the later to give running programs the illusion of the former. Its a good deal more complicated than that, but that's the gist of it.

PAE increases the amount of physical memory that a machine can use, not the addressable memory. Pointers remain 32-bit, so addressable memory is still restricted to 4GB.

Memory capacity on a machine is dictated by more than just what the CPU is capable of. Don't assume your machine can support 4GB.

link|improve this answer
feedback

There are many factors beyond the memory address space that controls how much memory a computer can address. For instance, my wife's Mac Book PRo can only support 3GB, and if you put two 2GB memory sticks, it still only addresses 3GB of it.

By the way, 32 bits means the chip can theoretically address 4GB of memory. Where did you ge that 64GB number?

link|improve this answer
feedback

There are a number of factors in play here. With a 32 bit architecture the OS is be able to address 4 GB of memory. However, all of this may not be available for applications. For instance a Windows machine with 4 GB of memory will usually not be able to use more than roughly 3,5 GB for OS and applications as some of the address space is used to map hardware.

Also, Windows splits the 32 bit memory address space into two: 2 GB for kernel memory used by the OS and 2 GB for user space applications. I.e. per default each application will only be able to access 2 GB of memory. Windows can be configured to use 1 GB for kernel and 3 GB for user.

On top of that the actual hardware may set certain limitations. When your laptop specification says maximum memory is 2 GB it is most likely because that is the maximum the motherboard will support. It doesn't matter how much the OS is able to address. If the hardware will only recognize 2 GB then that is the limit on physical memory for the machine.

link|improve this answer
feedback

i suggest you read 32-bit section in wikipedia

link|improve this answer
feedback

Your Answer

 
or
required, but never shown