AMD64를 사용할 때 왜 3GB 이상의 RAM이 인식되지 않습니까?


8

Ubuntu 10.10 amd64 (Maverick Meerkat)가 3GB 이상의 RAM을 처리하지 않는 이유는 무엇입니까?

내 컴퓨터는 Toshiba P205-S6287 Intel Centrino Duo 64 비트 프로세서 및 667MHz에서 4GB RAM입니다.

자세한 사양 에 따르면 노트북은 64 비트 Core 2 Duo T5300 프로세서를 실행하며 945GM Express 칩셋이 있습니다.


3
그것은 미스터리입니다 uname -a.의 출력, 출력을 free -m보고하고 dmidecode를보고 3GB 이상의 램이 활성화되어 있는지 확인할 수 있습니다.
Martin Owens -doctormo-

1
그리고 64 비트 버전의 Ubuntu가 있는지 확인하십시오. 무엇합니까 uname -a말은?
Vojtech Trefny

같은 문제, optiplex gx620 5 Gb Ram

답변:


16

이것은 랩탑 의 모바일 인텔 945GM 익스프레스 때문 입니다.

동일한 칩셋을 사용하는 Thinkpad T60을 소유하고 있습니다. Core2Duo 64 비트 CPU를위한 인텔의 첫 노스 브릿지 중 하나였습니다. 그들은 그것을 설계하지 못했습니다.

이 칩셋은 이론적으로 4GB의 RAM 만 처리 할 수있을뿐 아니라 다른 하드웨어 (I / O 메모리)도 처리해야합니다. 이를 위해 상위 1GB 메모리 범위를 예약합니다. 메인 보드와 노스 브릿지는 32 비트 물리적 주소 버스 만 CPU에 제공하기 때문에 Linux 커널에서 64 비트 논리 메모리 주소 지원은 도움이되지 않습니다. 그리고 해결 방법이 없습니다.
http://forums.lenovo.com/t5/T61-and-prior-T-series-ThinkPad/Thinkpad-s-and-N100-sw-945PM-chipset-can-t-address-gt-3G-Ram/ mp / 2730

메모리 뱅크 스위칭을 고안하는 이론적 인 옵션이 있습니다. 그러나 커널은이를 지원하지 않으며 x86 아키텍처에서도 의미가 없습니다. 945GM의 i810 메모리 컨트롤러는 이해하기에는 너무 게으른 것 같습니다.


1

제 대답은 BIOS 디자이너가 조잡했기 때문일 것입니다.

긴 대답은 다음과 같습니다.

4GB RAM이 설치되어 있지만 Intel 945GM 칩셋에서 4GB의 사용 가능한 RAM을 사용할 수는 없습니다. 이것은 칩셋 한계입니다. 칩셋 사양에서이를 알 수 있습니다.

http://www.intel.com/content/www/us/en/intelligent-systems/navy-pier/mobile-945-express-chipset-datasheet.html

9.2 인용 " M의 모리 C ontroller 시간 . UBS 4GB의 MCH의 최대 DRAM 어드레스 디코드 공간을 제공하지 않습니다 리맵 APIC 또는 PCI 익스프레스 메모리 공간이 수단은 물리적 메모리의 크기는 시스템에 도달 채워져있다. 4GB에는 실제 메모리가 있지만 주소를 지정할 수 없으므로 시스템에서 사용할 수 없습니다. "

BIOS는 여러 리소스, 즉 BIOS 자체, PCI 및 PCI Express 메모리 매핑 공간, 내부 그래픽, APIC 메모리 공간 및 I / O 액세스를위한 기타 메모리 창에 대한 주소 범위를 예약해야합니다. 이러한 모든 주소 범위는 4GB 주소 공간 내에 있어야하며 더 이상 시스템 메모리에서 사용할 수없는 주소 범위를 차지해야합니다. 이러한 리소스는 실제 RAM 메모리 공간을 "훔친다"고 말할 수 있습니다.

즉, 4GB를 설치 한 경우 3GB 이상의 시스템 메모리를 사용할 수 있습니다 .

시스템에서 사용 가능한 물리적 메모리의 양은 BIOS 디자이너가 이러한 주소 범위를 배열하는 데 얼마나 많은 노력을 기울이 느냐에 달려 있습니다. 예를 들어, BIOS는 각 리소스에 필요한 최소량을 할당 할 수 있습니다. 또는 시스템의 PCI Express 장치 사용에 따라 PCI Express의 주소 할당을 비활성화하거나 제한 할 수 있습니다.

시스템의 BIOS 디자이너는 4GB를 설치했지만 사용 가능한 RAM의 상한을 정적 최대 3GB로 설정했을 수 있습니다. 이 방법은 BIOS 디자이너에게 1GB의 고정 주소 창을 제공하므로 다른 주소 범위와 충돌하지 않도록 리소스에 대한 주소 범위를 할당하는 BIOS 디자이너 작업을 단순화합니다.


1

몇 가지 가능한 이유가 있습니다.

하나는 실제로 amd64 빌드를 실행하고 있지 않다는 것입니다. 또 하나는 마더 보드 및 / 또는 BIOS가 손상되어 올바른 양의 RAM을보고하지 않는 것입니다.

다른 하나는 비디오 메모리 및 기타 하드웨어 리소스가 3-4GB의 메모리 영역에서 공간을 차지하고 있으며 마더 보드 / BIOS는 섀도우 RAM을 높은 주소로 끌어 올려 액세스 할 수 없다는 것입니다.

출력을 살펴볼 필요가 있는지 파악하십시오 dmesg.


0

psusi가 옳다.

나는 여기에 같은 상황이 있습니다.

"64 비트 CPU"라고 부르더라도 4GB 이상의 메모리를 처리 할 수없는 경우가 많습니다.

대부분의 오래된 마더 보드에는 주소에 대해 32 비트 만 있으며이 풀에서 그래픽 카드도 주소를 가져와야합니다.

= 4GB-그래픽 카드 메모리 (1GB) = 3GB

펌웨어를 패치하거나 업그레이드하여이 문제를 해결할 가능성이없는 것 같습니다.

자세한 내용은 물리적 주소 확장을 권장합니다.


또한 가능한 경우 일반 32 비트 설치 프로그램이 필요한 경우 실제 주소 확장 커널을 자동으로 활성화하여 모든 메모리를 사용할 수 있습니다.
Stefano Palazzo

@StefanoPalazzo 및 다른 사람들이 PAE 커널을 설치하면 문제가 해결됩니다. 시냅틱 패키지 관리자에서 PAE 커널을 검색하여 설치하십시오. hailubuntu.blogspot.com/2010/09/ubuntu-detecting-less-ram.html
wisemonkey

1
@wisemonkey : PAE 커널이 전체 4GB를 제공하지 않습니다. 이미 64 비트 커널과 심지어 바이오스 보고서를 사용하기 때문에 총 4GB-> 3.2GB 사용 가능.
aatdark

@aatdark : BIOS 설정에 "공유 비디오 메모리"필드가 있습니까? 그렇다면, 당신은 그것을 비활성화 할 수 있습니다 (별도의 그래픽 카드가있는 경우에만 권장)하지만 이전 컴퓨터의 경우 전체 메모리를 처리 할 수 ​​없다고 말한 것처럼 다시.
wisemonkey

1
"인텔 ® 945베이스 칩셋은 최대 4GB의 주소 공간을 제공하며 메모리 재 매핑을 지원하지 않습니다. 해당 주소의 일부를 다른 장치 용으로 예약해야하므로 3.2GB 이상의 시스템 메모리를 사용할 수 없습니다. BIOS 업데이트 또는 64 비트 운영 체제는이를 변경하지 않습니다. 이는 보드 나 BIOS 제한이 아니라 칩셋입니다. "
aatdark
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.