computer memory barrier ?
computer memory barrier ?
Ok, I know that a 32bit computer has a max memory limit of 4GB (2^32).
I am wondering why though microsoft os's can only use 3 or 3.5 GB of the 4GB max.
I know that their was a 1MB barrier in memory that was over come by using the A20 line.
But I cann't see where any other memory issues would arise and why?
Curious if anybody knows what is causing this I am assuming something that has to do with paging or virtual memory?
And wondering if any of the Linux distro are effected by this problem?
I am wondering why though microsoft os's can only use 3 or 3.5 GB of the 4GB max.
I know that their was a 1MB barrier in memory that was over come by using the A20 line.
But I cann't see where any other memory issues would arise and why?
Curious if anybody knows what is causing this I am assuming something that has to do with paging or virtual memory?
And wondering if any of the Linux distro are effected by this problem?
Re: computer memory barrier ?
Memory reserved for kernel, memory mapped hardware, and many more, thats it.
Re: computer memory barrier ?
Yes primarily memory mapped hardware. Especially the video card takes a good share of the 4 GB memory space.
Re: computer memory barrier ?
The other posters are correct. A machine that has 4GB of physical mem often has a portion of it above the 4GB line because of holes for various reasons. If the processor or OS cannot use PAE then there is no way to map the memory above 4GB and it is just wasted.
If a trainstation is where trains stop, what is a workstation ?
Re: computer memory barrier ?
Wait currently I have an old computer that has only 512MB and it runs windows xp.memory mapped hardware....etc etc
I know the graphics card/vga memory gets mapped to
Code: Select all
* 00 -- A0000h-BFFFFh -- 128K
* 01 -- A0000h-AFFFFh -- 64K
* 10 -- B0000h-B7FFFh -- 32K
* 11 -- B8000h-BFFFFh -- 32K
total = 256K (not anywhere near 1GB)
I don't think the windows kernel's that get loaded into memory are more then a few MB even if they where something ridiculous like 20MB
It still wouldn't come close to 1GB and that would be a really big stretch even for windows 7 kernel?
Maybe I am missing something or overlooking something about the structure of memory?
Huh, a 32bit computer can't have no more then 2^32 bytes = 4294967296 bytes = 4GB of memoryThe other posters are correct. A machine that has 4GB of physical mem often has a portion of it above the 4GB line because of holes for various reasons. If the processor or OS cannot use PAE then there is no way to map the memory above 4GB and it is just wasted.
unless you are defining 4GB not equal to 2^32 bytes?
If you are defining it as 4GB == 4000000000 Bytes then I agree that you still have 294967296 left over.
But this is not answering my question of what is consuming all the memory and making it so you cann't access 1/2 to 1GB???
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: computer memory barrier ?
Look on the box of your 3D card (for intel integrated, you'll usually find the amount as a BIOS option) and read out how much VRAM it actually comes with. The answer is nominally between 64MB and several GB. The first 256k is just reused for VGA emulation.total = 256K (not anywhere near 1GB)
Some BIOS configurations keep it simple (and stupid) and will just keep the 3G-4G range free for devices and firmware without actually checking if that much is needed.
Last edited by Combuster on Tue Aug 16, 2011 1:40 am, edited 1 time in total.
- xenos
- Member
- Posts: 1121
- Joined: Thu Aug 11, 2005 11:00 pm
- Libera.chat IRC: xenos1984
- Location: Tartu, Estonia
- Contact:
Re: computer memory barrier ?
Typically there is a "memory hole" near the top of the physical 4 GB, which holds things such as memory mapped I/O devices (graphics cards, PCI devices, a copy of the BIOS and so on), so the uppermost 512 MB or 1 GB of the physical address space do not contain any physical RAM. If you have 4 GB of physical RAM installed, a modern BIOS will detect this and "shift" part of it above the 4 GB mark. To access and use this memory, you either need a 64 bit architecture, or a 32 bit OS that supports "page address extensions" (PAE), a special page translation mode of x86 CPUs. This is certainly supported by Linux and by several Windows variants (it requires a specialized "hardware abstraction layer" (HAL) to be installed at setup time).
Just to give you an example: My notebook has 4 GB RAM (in a few days it will be 8 GB) which the BIOS maps to 0x00000000-0xBFFFFFFF and 0x100000000-0x13FFFFFFF, so there is a 1 GB memory hole below the 4 GB mark, and these 1 GB are shifted just above 4 GB.
Just to give you an example: My notebook has 4 GB RAM (in a few days it will be 8 GB) which the BIOS maps to 0x00000000-0xBFFFFFFF and 0x100000000-0x13FFFFFFF, so there is a 1 GB memory hole below the 4 GB mark, and these 1 GB are shifted just above 4 GB.
Re: computer memory barrier ?
Ok, But why did the BIOS programmers do this? And reserve so much memory for devices ,...etc and not check to see how much is really needed to reserve.
Also why can't an OS access this memory? --> program-wise you can create a pointer to any place in memory I thought?
Maybe I don't understand virtual addressing /page table stuff as good as I thought?
This is my spec's for the computer I am talking about
4GB+ memory addressing (Physical Address Extension)
Also why can't an OS access this memory? --> program-wise you can create a pointer to any place in memory I thought?
Maybe I don't understand virtual addressing /page table stuff as good as I thought?
This is my spec's for the computer I am talking about
Code: Select all
product: Intel(R) Pentium(R) 4 CPU 2.40GHz
vendor: Intel Corp.
bus info: cpu@0
version: 15.2.9
size: 2400MHz
width: 32 bits
capabilities:
mathematical co-processor,
FPU exceptions reporting,
wp,
virtual mode extensions,
debugging extensions,
page size extensions,
time stamp counter,
model-specific registers,
4GB+ memory addressing (Physical Address Extension)
machine check exceptions,
compare and exchange 8-byte,
on-chip advanced programmable interrupt controller (APIC),
memory type range registers,
page global enable,
machine check architecture,
conditional move instruction,
page attribute table,
36-bit page size extensions,
clflush,
debug trace and EMON store MSRs,
thermal control (ACPI),
multimedia extensions (MMX),
fast floating point save/restore,
streaming SIMD extensions (SSE),
streaming SIMD extensions (SSE2),
self-snoop,
HyperThreading,
thermal interrupt and status,
pending break event,
up,
pebs,
bts,
cid,
xtpr
configuration:
id: 0
Re: computer memory barrier ?
OSes do use that memory, but it's not usable by you as a programmer, you can't put a program in there.
You can reuse that space as an OS, but for you it's just merely garbage.
And BIOS programmers don't reserve them, usually a device itself reserves it.
You can reuse that space as an OS, but for you it's just merely garbage.
And BIOS programmers don't reserve them, usually a device itself reserves it.
Re: computer memory barrier ?
Ok, so I guess my questions is
1) if put more then 3GB in this computer (i.e max it out to 4GB)
I will not have user programs able to access the 3-4GB range but the os kernel , and devices will have all that range to play around with freeing up the other 3GB for user programs. Correct me if I am wrong?
So it still would be beneficial to have that 1 GB just not for user level programs.
2)
Is their a site /link that anybody knows about that you can specify the chip set or motherboard model ,...etc and it will list all compatible
cpu's that you can use with that mobo ? ( also like to beable to go in reverse specify a cpu/microprocessor chip and get a list of all supported motherboards for that particular chip )
I have found good sites that let you specify the computer make/model ,...etc and it will give you the chip set , and all the types of memory that can be used with this computer.
Like http://www.memorystock.com/dell-memory.htm or this http://www.crucial.com
1) if put more then 3GB in this computer (i.e max it out to 4GB)
I will not have user programs able to access the 3-4GB range but the os kernel , and devices will have all that range to play around with freeing up the other 3GB for user programs. Correct me if I am wrong?
So it still would be beneficial to have that 1 GB just not for user level programs.
2)
Is their a site /link that anybody knows about that you can specify the chip set or motherboard model ,...etc and it will list all compatible
cpu's that you can use with that mobo ? ( also like to beable to go in reverse specify a cpu/microprocessor chip and get a list of all supported motherboards for that particular chip )
I have found good sites that let you specify the computer make/model ,...etc and it will give you the chip set , and all the types of memory that can be used with this computer.
Like http://www.memorystock.com/dell-memory.htm or this http://www.crucial.com
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: computer memory barrier ?
If you put 4G of ram in a modern computer, you end up with 3G of ram between 0 and 3G, you have the video card from 3G to 3.5G, other hardware at intervals between 3.5G to 3.9G, and the bios stored from 3.9G to 4G. From 4G to to 5G you get the last bit of your RAM. If your OS is designed properly (and note here that consumer 32-bit windows is not designed properly), all applications can use any part of that 4GB of ram you installed. if your OS is 32-bits it usually means that a single application can not use more than 3G at a time (because the kernel requires the remaining 1GB of the virtual address space which is smaller than the physical address space), but you can have two applications each using 2G without problems.Sam111 wrote:1) if put more then 3GB in this computer (i.e max it out to 4GB)
I will not have user programs able to access the 3-4GB range but the os kernel , and devices will have all that range to play around with freeing up the other 3GB for user programs. Correct me if I am wrong?
If you need an public index like that, sort by CPU socket. A good online hardware seller will provide you with a computer builder that checks for conflicts and such. I could point you to my favourite one but you (and most others here) probably won't be able to cross the language barrier, but it does make it quite likely a system like that exists in English.Is their a site /link that anybody knows about that you can specify the chip set or motherboard model ,...etc and it will list all compatible cpu's that you can use with that mobo?
In general, a processor speaks a certain protocol, and the chipset speaks a certain protocol, and you can change either end as long as the protocol does not change. But the public does not need those details and sticks to socket numbering instead, with the occasional broken implementation thereof.
Re: computer memory barrier ?
I get that but the protocol is specific for a group of chips and chip-sets.In general, a processor speaks a certain protocol, and the chipset speaks a certain protocol, and you can change either end as long as the protocol does not change. But the public does not need those details and sticks to socket numbering instead, with the occasional broken implementation thereof.
Basically when you buy a specific motherboard you can't change the protocol used with it. So that will narrow the selection of the cpu.
So I was just wondering if their was a site out their that allowed you to easily look up what cpu's where supported by a given mobo and the reverse.
correct me if I am wrong, when you buy a motherboard it contains the chip set chip on it which means you can't change the chip set of the motherboard unless you physically do something crazy like desolder the chip which most likely will destroy the mobo?
So chip-set and protocol are fix for a given mobo.
Re: computer memory barrier ?
That is correct. But generally speaking, a chip set family goes hand-in-hand with a specific CPU socket. Rather seldom does one type of CPU sockets support more than one chip set / CPU family.
And as Combuster said, every half-baked hardware reseller offers a "PC Builder" function: You select the mobo, your selection of CPUs gets narrowed down to compatible ones. Or vice versa, you select the CPU, the selection of mobos gets narrowed down.
Alternate is one such page in German. I don't know about any US / english language vendors, but there are bound to be several.
And as Combuster said, every half-baked hardware reseller offers a "PC Builder" function: You select the mobo, your selection of CPUs gets narrowed down to compatible ones. Or vice versa, you select the CPU, the selection of mobos gets narrowed down.
Alternate is one such page in German. I don't know about any US / english language vendors, but there are bound to be several.
Every good solution is obvious once you've found it.
Re: computer memory barrier ?
Hi,
There's this link from AMD which allows you to sho compatible mobo's by chipset and processor, but perhaps not a very easy format for what you are trying to achieve.
Also, as Solar says, there are definitely several "system configuration tools" available at several hardware vendors in the UK.
With either of these options, unfortunately you wont get a complete list, though - the former only provides a list of hardware tested by AMD and the latter will only provide you with whatever the reseller has in stock.
Cheers,
Adam
There's this link from AMD which allows you to sho compatible mobo's by chipset and processor, but perhaps not a very easy format for what you are trying to achieve.
Also, as Solar says, there are definitely several "system configuration tools" available at several hardware vendors in the UK.
With either of these options, unfortunately you wont get a complete list, though - the former only provides a list of hardware tested by AMD and the latter will only provide you with whatever the reseller has in stock.
Cheers,
Adam