AMD64を使用しているときに3 GBを超えるRAMが認識されないのはなぜですか?


8

Ubuntu 10.10 amd64(Maverick Meerkat)が3 GB以上のRAMに対応しないのはなぜですか?

私のマシンはToshiba P205-S6287 Intel Centrino Duo 64ビットプロセッサーと667 MHzの4 GB RAMです。

詳細な仕様によると、ノートブックは64ビットCore 2 Duo T5300プロセッサを実行し、945GM Expressチップセットを備えています。


3
それはあなたがの出力報告することができ、謎だuname -a、の出力をfree -mしても、あなたのdmidecodeのを見て、ラムアクティブの3ギガバイト以上持っていることを確認してください。
Martin Owens -doctormo-

1
そして、あなたは64ビットバージョンのUbuntuを持っていますか?何てuname -a言うの?
Vojtech Trefny、2011年

同じ問題、optiplex gx620 5 Gb Ram

回答:


16

これは、ラップトップのモバイルインテル945GM Expressが原因です。

同じチップセットを使用するThinkpad T60を所有しています。Core2Duo 64ビットCPU向けのIntelの最初のノースブリッジの1つでした。彼らはそれを設計することに失敗しました。

チップセットは理論的には4GBのRAMしかアドレスできませんが、他のハードウェア(I / Oメモリ)もアドレスする必要があります。それのために上位1GBのメモリ範囲を予約します。メインボードとノースブリッジはCPUへの32ビットの物理アドレスバスしか提供しないため、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設計者がずさんなためです。

長いアンサーは:

4 GBのRAMがインストールされていますが、Intel 945GMチップセットで4 GBの使用可能なRAMが利用できるとは期待できません。これはチップセットの制限です。これは、チップセットの仕様からわかります。

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

セクション9.2からの引用: " MエモリーC ontroller Hの UBSは、最大4 GB DRAMアドレスデコード空間を提供ザMCHがリマップAPICまたはPCI Expressメモリ空間ないこの手段物理メモリの量がシステムに到達に取り込まれるようになります。。 4 GB、物理メモリは存在しますが、アドレス指定ができないため、システムで使用できません。

BIOSは、BIOS自体、PCIおよびPCI Expressメモリマップスペース、内部グラフィックス、APICメモリスペース、およびI / Oアクセス用の他のメモリウィンドウなど、いくつかのリソースのアドレス範囲を予約する必要があります。これらのアドレス範囲はすべて4GBのアドレススペース内にある必要があり、システムメモリで使用できないアドレス範囲を占有します。これらのリソースは物理RAMメモリ空間を「盗む」と言えます。

そうは言っても、4 GBがインストールされている場合は、3 GBを超えるシステムメモリが利用できると予想できます

システムで使用できる物理メモリの量は、BIOS設計者がこれらのアドレス範囲の配置に費やす労力に依存します。たとえば、BIOSは各リソースに必要な最小量を割り当てることができます。または、システムでのPCI Expressデバイスの使用状況に応じて、PCI Expressのアドレス割り当てを無効化または制限することもできます。

システムのBIOS設計者は、4 GBをインストールした場合でも、使用可能なRAMの上限を静的な最大3 GBに設定している可能性があります。このアプローチは、BIOSデザイナーに1GBの静的アドレスウィンドウを提供するため、BIOSデザイナーのタスクを簡素化して、リソースのアドレス範囲を割り当て、他のアドレス範囲と競合しないようにします。


1

考えられる理由はいくつかあります。

1つは、実際にはamd64ビルドを実行していないことです。もう1つは、マザーボードやBIOSが壊れており、正しいRAM容量が報告されていないことです。

もう1つは、メモリの3〜4 GBの領域を占めるビデオメモリとその他のハードウェアリソースがあり、マザーボード/ BIOSがシャドウRAMをより高いアドレスに引き上げてアクセスできないことです。

あなたのdmesg出力を見ることを必要とするものを理解する。


0

psusiは正しいです。

私も同じ状況です:

彼らはそれを「64ビットCPU」と呼んでいますが、4 GB以上のメモリをアドレス指定できないことがよくあります。

ほとんどの古いマザーボードはアドレス用に32ビットしか持っておらず、このプールからグラフィックカードもアドレスを取得する必要があります。

= 4 GB-グラフィックカードメモリ(1 GB)= 3 GB。

何かのファームウェアにパッチを当てたり、アップグレードしたりすることでこれを修正する可能性はないと私は恐れています。

詳細に興味がある場合は、以下をお勧めします:物理アドレス拡張


また、可能であれば、通常の32ビットインストーラーは必要に応じて自動的に物理アドレス拡張カーネルを有効にし、すべてのメモリを使用できるようにします。
ステファノパラッツォ

@StefanoPalazzoなどから通知されているため、PAEカーネルをインストールすると問題が解決しますシナプスパッケージマネージャーでPAEカーネルを検索してインストールするだけです:hailubuntu.blogspot.com/2010/09/ubuntu-detecting-less-ram.html
wisemonkey

1
@wisemonkey:PAEカーネルでは、4GB全体を使用できません。私はすでに64ビットカーネルを使用しており、BIOSレポートも使用しています。合計4GB-> 3.2GB使用可能です。
aatdark

@aatdark:BIOSセットアップに「共有ビデオメモリ」フィールドがありますか?はいの場合は無効にできます(ディスクリートグラフィックカードを使用している場合にのみ推奨されます)が、以前のコンピューターの場合、完全なメモリはアドレス指定できません。
wisemonkey 2012

1
「インテルインテル®945ベースのチップセットは最大4GBのアドレス空間を提供し、メモリの再マッピングをサポートしていません。そのアドレスの一部を他のデバイス用に予約する必要があるため、3.2GBを超えるシステムメモリを使用することはできません。現在のシステム構成。BIOSアップデートや64ビットオペレーティングシステムによって変更されることはありません。これは、ボードやBIOSの制限ではなく、チップセットです。」
aatdark
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.