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 칩셋이 있습니다.
uname -a
말은?
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 칩셋이 있습니다.
uname -a
말은?
답변:
이것은 랩탑 의 모바일 인텔 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 메모리 컨트롤러는 이해하기에는 너무 게으른 것 같습니다.
제 대답은 BIOS 디자이너가 조잡했기 때문일 것입니다.
긴 대답은 다음과 같습니다.
4GB RAM이 설치되어 있지만 Intel 945GM 칩셋에서 4GB의 사용 가능한 RAM을 사용할 수는 없습니다. 이것은 칩셋 한계입니다. 칩셋 사양에서이를 알 수 있습니다.
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 디자이너 작업을 단순화합니다.
psusi가 옳다.
나는 여기에 같은 상황이 있습니다.
"64 비트 CPU"라고 부르더라도 4GB 이상의 메모리를 처리 할 수없는 경우가 많습니다.
대부분의 오래된 마더 보드에는 주소에 대해 32 비트 만 있으며이 풀에서 그래픽 카드도 주소를 가져와야합니다.
= 4GB-그래픽 카드 메모리 (1GB) = 3GB
펌웨어를 패치하거나 업그레이드하여이 문제를 해결할 가능성이없는 것 같습니다.
자세한 내용은 물리적 주소 확장을 권장합니다.
uname -a
.의 출력, 출력을free -m
보고하고 dmidecode를보고 3GB 이상의 램이 활성화되어 있는지 확인할 수 있습니다.