特定のハードウェアで使用できるRAMの最大量はいくらですか


26

i5-2430M CPUを搭載したAsus U31SDノートブックを使用してます。Asusのサイトでは、最大RAMは8 GBですが、Intelは、私のCPUは16 GBをサポートしていると言っています。Ubuntuでこのシステムで使用できる最大RAMはいくつですか?


3
みんなの言っていることを要約すると、マザーボードの制限により、ノートブックは8GBのRAMしか使用できません。これを確認するには、次の質問をご覧ください
reverendj1

みなさんに、メモリ作成会社「corsair」には、システムで使用できるRAMの最大量を一般的に伝えることができるメモリロケーターがあることを指摘したいと思います。オンラインで検索して、モデルシステムのテクニカルシートを読むこともできます。使用できる最大RAMがわかります。
トーマスウォード

@The Lord of Time:リンクはありますか?
0xC0000022L

質問で参照されているシステムのCorsair Memory Finder / Configurator:www2.corsair.com/configurator/… || Corsair Memory Finder(スタートページ):corsair.com/us/learn_n_explore (彼らは製品を宣伝しますが、これをmax-memoryの準正確な仕様を見つけるための一般的なベースとして使用できます
Thomas Ward

回答:


29

実際の制限は、ハードウェア(マザーボードのメモリサポートとそのスロットの量)とUbuntuのバージョン(32ビット、32ビット+ PAE、x32ABI、64ビット)の間にあります

最大4GBをサポートするマザーボードをお持ちの場合、4ビットのハードウェア制限があるため、32ビット、32ビットPAE、または64ビットのいずれを使用してもかまいません。

しかし、より多くのメモリをサポートするマザーボードを購入した場合、次の最大サポートメモリを備えたUbuntuのバージョンを試すことができます。

Ubuntu 32ビット -4GB RAM

Ubuntu 32ビット+ PAE(物理アドレス拡張) -64GB RAM

Ubuntu x32ABI -4GB RAM(これは、64ビットハードウェア上で実行される64ビット拡張で修正された32ビットアーキテクチャ用です。まだ利用できません。)

Ubuntu 64ビット -たくさん!(実際には2 ^ 64)しかし、ハードウェアの制限と実際のコンピューターのため、制限は約1TB(1024GB RAM)です。

したがって、4GBを超えるRAMを使用している場合は、メモリ制限に関する質問を使用する必要があります。この場合、本当に大きなメモリサイズをサポートする32ビットPAEまたは64ビットが必要になります。

また、たとえば現在4GBを持っている場合、16GBのRAMを購入すると、Ubuntuを再インストールしたり、変更したりする必要はありません。思い出を変えるだけで、Ubuntuはすぐに読んで動作するはずです。設定は必要ありません。32 GBの4 GB RAMがあり、16 GBまたはRAMをインストールすると、Ubuntuは32ビットから32ビットPAEに自動的に変更されます。今年の初めに4 GBから16 GBに移行したので、これを保証できます。

32/64のメモリに関するUbuntuの非常に良い説明へのリンクは次のとおりです。https : //help.ubuntu.com/community/32bit_and_64bit#Memory

更新 -一部のマザーボードには、サポートされる最大メモリを有効化、修正、または強化するBIOS更新があることを追加するのを忘れていました。たとえば、過去の一部のIntelマザーボードでは、サポートされている最大数での動作に問題がありました。BIOSアップデートによりこれが修正されました。BIOSの問題のため、他のマザーボードは4GBをサポートしていましたが、アップグレード後は4GB以上をサポートしていました。

また、CPUとマザーボードでサポートされる最大メモリを比較すると、保持できる最大値はそれらの最小値です。たとえば、次のとおりです。

ケース1
CPUサポートされる最大メモリ-16GB
マザーボードサポートされる最大メモリ-8GB
サポートされる最大メモリ-8GB(CPUとマザーボード間の最小値であるため)

CASE 2
CPUサポートされる最大メモリ- 16ギガバイト
マザーボードサポートされる最大メモリ- 32ギガバイト
あなたのサポートされる最大メモリ- 16ギガバイト(CPUとマザーボードの間で最も低い値であるため)

ケース3
CPUサポートされる最大メモリ-16GB
マザーボードサポートされる最大メモリ-64GB
サポートされる最大メモリ-16GB(CPUとマザーボード間の最小値であるため)

CPUとこのメモリ制限の関係の背後にある理由は、最新のコアCPUを搭載したIntelによる技術的な変更によるものです。

したがって、あなたの場合、8GBをサポートするマザーボードと16GBをサポートするCPUがあります。つまり、使用できる最大容量は8GBであり、マザーボードのスロットの量に応じて使用できます。そのAsusには2つのスロットがあります。つまり、最大8GBを完了するために2つの4GBのRAMを使用できます。

x32abiに関する詳細情報:

KernelNewbies - http: //kernelnewbies.org/Linux_3.4#head-039c9d273884c9639937c10d68b4a3214869eb4b

LWN - https: //lwn.net/Articles/456731/(メモリ制限についてのわかりやすい説明のためにコメントを読むことをお勧めします)

Google - http://sites.google.com/site/x32abi/

最後に、Ubuntu 12.04以降、Ubuntuのすべての32ビットバージョンにはデフォルトでPAEが有効になっているため、すべての32ビットは最大64 GBのRAMをサポートします。12.04+を使用していて、使用するアーキテクチャを知りたい場合は、いくつかの推奨事項に従う限り、いずれのアーキテクチャも使用できることがわかります。

  • 512 MB以下のRAMがある場合は、32ビットを使用することを強くお勧めします

  • RAMが4 GB未満で512 MBを超える場合は、32ビットを使用することをお勧めします(ただし、64ビットを使用できます)

  • 4 GBのRAMがある場合、32ビットを使用することをお勧めします(ただし、64ビットを使用できます)

  • 4 GBまたはRAMと64 GBのRAMがある場合は、32ビットまたは64ビットを使用できますが、64ビットを使用することをお勧めします。

  • 64 GBを超えるRAMがある場合は、64ビットを使用する必要があります


ルイスx32の4 GBの制限は確かですか?これは悲しいでしょう。x32が4 GB以上をサポートしているという記事(ドイツの雑誌)を読みました。また、PAEについてはどうですか?
ターボ

@turbo-見つけるのに時間がかかった非常に良い質問です。「x32abiとは」の説明のこの部分のために、4GBで答えます。X32ABIでは、32ビットポインターを使用して64ビットモードでプログラムを実行できます。32ビットポインターで動作するため、実際に動作するために使用できる最大メモリは4GBです。もちろん、x32abi PAEモードがあるかどうかはわかりませんが、タスクに2倍のRAMを使用せずに32ビットプログラムを実行して64ビットの利点を活用する方法であるため、32ビットに制限されていると結論付けました4GBのRAMに。
ルイスアルバラード

1
実際には、64ビットの制限は2 ^ 48バイトで、x32は同じです。x32プロセスの場合、プロセスあたり 4 GBに制限されています。x32は64ビットカーネルを実行するため、完全な64ビットプログラムを実行できますが、x32はほとんどのプログラムを32ビットのみを使用するようにビルドします。
-psusi

6

32ビットの場合、理論上の制限は2 ^ 32 = 4096 MBですが、PAE(物理アドレス拡張)のUbuntu 12.04からは、デフォルトで2 ^ 36 = 64 GBの制限でオンになります。

64ビットの場合、理論的には2 ^ 64 = 16 777 216 TB(はい、テラバイト)です。実際には、RAMの量は2 ^ 48、つまり256 TBのRAMに制限されています。

通常のラップトップでは理論的な制限に実際には到達できないため、実際の制限はノートブックのメモリスロットの量(通常1〜2)とチップセットによるサポートです。8 GBモジュールに多額のお金を払っても構わない場合、8〜16 GBが現実的です。


だから私は安全に2x 8GBモジュールを購入し、それらが動作することを期待できますか?(私は現在64ビットRAMで64ビットを実行しています)
crond

安全に...; P Intel HM65 Expressチップを搭載した他のノートブックは16 GB(Asus G74SX-TZ293V)をサポートしているので、はい。
ターボ

6

U31SDに追加する8GBを追加購入しました。合計12GBです。Asusの仕様ページには8GBが制限であると書かれていますが、これは正常に機能します。memtest86を渡し、64ビットUbuntuに表示されます。

最新のBIOSアップデートがインストールされていますが、それが違いを生むかどうかはわかりません。

参考までに、の出力はをsudo dmidecode -t 16示しますMaximum Capacity: 16 GB


1

これは、CPUではなくマザーボードの制限です。CPUは最大16GBをサポートできる場合がありますが、マザーボードが8GBしか使用できない場合はそれが制限です。

Ubuntuでは、32ビットを実行している場合、制限は4GBであり、64ビットを実行している場合、はるかに高くなります(確かに思い出せませんが、16GBをはるかに超えています)。

ただし、ハードウェアによって常に制限されます。マザーボードの制限とCPUの制限を常に比較し、PCの制限として最も低い値を取る必要があります。


0

特定のケースでは、8 GBはマザーボードがそれ以上のRAMをサポートしていないことが原因です。

ただし、Ubuntu自体は、32ビットで最大4 GB、32ビットPAEで64 GB、64ビットで128 GBをサポートします(理論的には、64ビットの上限ははるかに高くなります)。


0

ポインターのサイズを決定する多くの質問がありました。基本的に、これはプロセッサアーキテクチャであると言えます。

x86 -> 4 bytes pointer -> can address 4,294,967,296 locations = 4GB (it is the limit)

x64 -> 8 bytes pointer -> can address 1.84467440737e+19 locations (it is the limit, big, eh)

8GBのRAMをアドレスするには、8,589,934,592のマッピングが必要であり、サイズ4バイトのポインターはすべての可能な値をアドレスできません。そのため、x86アーキテクチャで4GB以上のRAMを使用することはできません。

ただし、他にもいくつかの可能性があります。

RAMの量は、アーキテクチャ(32ビットまたは64ビット)によって制限されません。アーキテクチャは、OSとその上で実行されているプログラムによって、一度にどれだけのメモリをアドレスできるかを決定します。32ビットマシン、つまり32ビット幅のメモリバスを備えたマシンでは、OSとプログラムは4 GBのメモリしか「見る」ことができません。しかし、それはRAMが4 GBしかないという意味ではありません。製造元から提供されている場合は、16 GBまたは4x4 GBのRAMを搭載できます。その場合、さらに2つの「隠された」アドレス行があり、それらの2行のレベルを決定するハードコードされたロジックがあり、利用可能な4 GB RAM-00 01 10 11のいずれかを選択します。これらの「非表示」アドレスビットはソフトウェアレイヤーでは使用されないため、これらのレイヤーでは4バイトポインターのみを使用できます。これらの「隠された」数

これはほんの一例です。ベンダー、追加RAMを提供する方法によって異なります。

こちらもご覧ください:

通常の場合、ポインタはシステム内のメモリの単位よりも多くのアドレスを保持するのに十分な大きさです。これにより、十分なメモリがインストールされていない(使用可能なメモリの範囲を超えている)か、アーキテクチャがそのようなアドレスをサポートしていないため、プログラムがメモリの単位に対応しないアドレスにアクセスしようとする可能性が生じます。最初のケースは、Intel x86アーキテクチャなどの特定のプラットフォームでは、セグメンテーションフォールト(セグメンテーション違反)と呼ばれる場合があります。2番目のケースは、ポインターが64ビット長でアドレスが48ビットまでしか拡張されていないAMD64の現在の実装で可能です。そこで、ポインターは特定の規則(標準アドレス)に準拠する必要があるため、非標準ポインターが逆参照されると、プロセッサーは一般保護違反を発生させます。

一方、一部のシステムには、アドレスよりも多くのメモリ単位があります。この場合、メモリのセグメンテーションやページングなどのより複雑なスキームを使用して、メモリの異なる部分を異なる時間に使用します。x86アーキテクチャの最後の化身は、PAEページングメカニズムを介して32ビットのリニアアドレス空間にマッピングされた最大36ビットの物理メモリアドレスをサポートします。したがって、一度にアクセスできるメモリの合計は1/16だけです。同じコンピューターファミリの別の例として、80286プロセッサの16ビット保護モードがありました。これは、16 MiBの物理メモリのみをサポートしますが、最大1 GiBの仮想メモリにアクセスできますが、16ビットアドレスとセグメントの組み合わせレジスタにより、1つのデータ構造で64 KiBを超えるアクセスが面倒になりました。

一貫性のあるインターフェイスを提供するために、一部のアーキテクチャはメモリマップドI / Oを提供します。これにより、一部のアドレスはメモリの単位を参照でき、他のアドレスはコンピュータ内の他のデバイスのデバイスレジスタを参照できます。他の種類のオブジェクトのアドレスと同じ目的のいくつかを果たす、ファイルオフセット、配列インデックス、リモートオブジェクト参照などの類似の概念があります。

(詳細はこちら

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.