• ベストアンサー

何故4GB積んで初めて3.25GBのような表記になるのですか?

よろしくお願いいたします。 32bitOSにメモリー認識の4GB制限があることは存じているのですが、 何故4GB積んで初めて3.25GBと表記されてしまうのかがわかりません。 4GB積むと3~4GB帯アドレスにI/Oインターフェースを割り当ててるからということですが、 2GBのメモリーを搭載しているときもどこかのアドレス帯にI/Oを割り当ててメモリーを使っているのだから、結局少しはメモリー認識されない部分があるように思えるのですが・・・。 たとえば2GB積むと認識されるのは1.25みたいな具合にです。 何故なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ZENO888
  • ベストアンサー率49% (8944/18242)
回答No.3

>この図解が1Gのメモリーを積んだ場合でも理屈は同じですよね? メモリが1GBでも、I/Oは4GBの最後より確保されていくので、1GB全部認識されます。 0_____1_____2_____3_____4G [メモリ1G>_____________<各機器-] [メモリ2G------>_______<各機器-] [メモリ3G------------>_<各機器-] [メモリ4G-------------><各機器-] [メモリ4G--------------><各機器] [メモリ4G-----------><--各機器-] 尚、3GB前後というのは、あくまで一般的な値であって、機器構成によってメモリが認識される上限は変わります。 例えば、ビデオカードを2枚搭載すれば、3GB以下しか認識できない場合もあります。 逆にBIOSで普段使用しない機器を無効にすれば、認識できる上限が増える場合もあります。(例えばRS-232CとかIEEE1394とか)

yukky23
質問者

お礼

ZENO888さんありがとうございます。 メモリの搭載容量に関係なくメモリアドレスは使用されていて、 環境にもよるが3~4G帯が確保されるのですね。 なので3~4GBのメモリーを搭載して変化が出るのですね。 ありがとうございました。

その他の回答 (2)

  • kuronuko
  • ベストアンサー率35% (72/202)
回答No.2

32bitOS の場合 0~3.25GBメインメモリ  3.25~4GB拡張カード1・2 がわりあてられていると存じています。 もし、3.25以上メモリを積むのであれば64bitOSにする必要があります。 64bitOS homebasic8GB homepremium16GB business128GB前後 ultimate128GB前後

yukky23
質問者

補足

kuronukoさんありがとうございます。 認識されていない分は拡張カード類が割り当てられているのですね。 何が割り当てられているのか良く分からなかったので理解度が高まりました。 ちなみに、1GBのメモリー搭載PCであっても4GBメモリー搭載PCでも拡張カードのアドレスがどこかに割り当てられる理屈は同じですよね? でも4GB搭載したときのみ3.25GBになるのが不思議です。

  • ZENO888
  • ベストアンサー率49% (8944/18242)
回答No.1

32BIT版XPやVISTAでは、4GB迄しか物理アドレス空間がありません。 ビデオ機能やチップセット等の各機器が使用するアドレスを引いた分しかメモリとして認識できません。 原則的にメモリは先頭から割り当てられ、各機器は後から割り当てられます。 0________________________4G [--メモリ--->________<--各機器--] コンピュータの管理-デバイスマネージャーで、表示-リソース(種類別)-メモリ を見て下さい。 各種機器がメモリアドレスを使用しているのが確認出来ます。 その他参考 http://pc.watch.impress.co.jp/docs/2007/1207/hot518.htm

yukky23
質問者

補足

ZENO888さんありがとうございました。 メモリアドレスの割り当て方まで図解して頂きありがとうございます。 この図解が1Gのメモリーを積んだ場合でも理屈は同じですよね? 0________________________1G [--メモリ--->________<--各機器--] 実際私のPC(WindowsXPSP2)も1G積んでいるのですが タスクマネージャーやマイコンピューターのプロパティをみても、 実際に搭載しているメモリー容量の1GBが認識されています。 4GBの時のように差し引かれたメモリー容量(3.25GB)が表示されても良いと思うのですが。

関連するQ&A

  • 32bitOSの3GBの壁とMMIO

    こんばんわ。3GBの壁に関して調べています。 いろいろなページを見ていてだいたい理解したと思っているのですがMMIOについて教えてください。 インテルのページより引用 I/O インターフェイス用に確保されたアドレスと物理メモリーのアドレスが重複して使用されるとシステムに不具合が生じるため、I/O インターフェイス用に確保されたアドレス部分のメモリー領域は、物理メモリー側では使用されません。 これはMMIOが優先的に使うためOSではその残りの約3GBしか使えないということだと思うのですが、もし物理メモリが2GBだった場合、MMIOはどこにアドレスを確保するのでしょうか?素人考えだと、物理メモリが何GBであろうと、MMIOが確保する分はOSが使えないので、OS的には実際は1GBしか使えないんだと思うのですが・・・

  • MEMORYテーブルの制限

    MySQL5.1.46でFedora release 11なのですが、テーブルをMyISAMからMEMORYへ変更しているのですが、何個かのテーブルを変更した時点でOut of memoryエラーになってできなくなります、バッファサイズや色々見直したのですが同様です、テーブル単独のサイズでの制限はクリアしました。 メモリーは8GBなのですが32bitOSの2GBの制限に引っかかったのでしょうか?しかしFreeで見ると8GB認識しています、mysqldプロセス全体の制限ですがMEMORYテーブル全体の容量になるのでしょうか?64bitOSに入れ替えないと駄目なのでしょう、なにか設定や方法でアドバイスがあればよろしくお願いします。

  • --memory=12gb

    こんにちは、お世話になっています。 ちょっとdockerのオプションに関しての質問なんですが、 --memory=12gbというオプションがあるんですが、 これはメモリーの使用容量をそのコンテナ間で12GB制限するというオプションなんですが、これはどのようなコマンド表記で使えばよいですか? ご教示よろしくお願いします。

  • 2GB×2枚のデュアルチャンネル

    windowsXPのHOMEなど32bitOSの場合メモリは約3.25GBくらいしか認識されないと言われてますが、 この場合2GBのメモリを2枚搭載してデュアルチャンネル稼動って出来ないってことでしょうか? また1GBを4枚でも完全に2枚づつのメモリでのデュアルチャンネルは出来ないのでしょうか? 自分のパソコンの場合は1GB×4枚でCPU-Zなどで確認するとデュアル稼動してるっぽいのですが・・ お答えよろしくお願いします。

  • Windows xpにおける3GBの壁

    「32bitOSであるWindows xpではメモリを3GB以上は認識できない」 というのは以前から聞いていたのですが, 結局xpにおいて3GB以上のメモリを乗せることは,パフォーマンス上意味があるのでしょうか,無いのでしょうか?

  • 32bitOSにDualチャンネル対応のMemoryを4GBさしたときについて。

    あまりパソコンに詳しくないのですが… 今日DUALチャンネル対応のメモリーを1GB*2買ってきて 全部で4Gにしたんです。 うちのXPは32bitOSだから3GBまでしか認識しないのは知ってるんですが、 BIOSでも3GBまでしか認識してなかったんです。 だからいろいろ調べてみたら リマッピングとかいうやつをONにしてみたらよいと書いてあったのでやってみたんですが、そしたらBIOSでは4GBまで認識するのにOSでは2GBまでしか認識しませんでした。 (理由はいろいろかいてあったけど理解できませんでした) ので、リマッピングはOFFに戻しました。 そこで質問なんですが、この3GB分のメモリーはDUALチャンネルとして認識されてるんでしょうか… どうやってそういうの確認すればいいんでしょうか??

  • 32ビットWin7では、4GBメモリーも3GBちょいしか認識しない??

    最近パソコン雑誌を読んでいたら、32ビット版Windows7では、4GBのメモリーを搭載していても、3GBちょっとしか認識しないので注意!と書いてありました。私のPCはまさに4GBで、しかも、VistaからWin7の32ビットにアップグレードを考えていました。これは認識しないだけで、ちゃんと4GB分働いてくれるんでしょうか? それとも、やはり3GBちょっと分しかメモリーは働いてくれないんでしょうか? 64ビットだと問題なく認識するとあるんですが、64だとコア2だとかえって遅くなるとココのQ&Aにあったのですが・・。 初心者なのでスイマセン。どなたかご存じの方、教えて下さいませんか。お願いいたします。

  • 4GB MemoryがWindowsで認識出来ない

    FAQで 「これは32bit版OSの制限によるものです。 32bit版のWindows XPやWindows Vistaでは最大4GBのメモリ容量に対応しておりますが、I/Oデバイスに割り当てられる仮想メモリ容量を含めて最大4GBの認識となります。 この為、32bit版のWindowsが認識できるメモリの最大容量は、4GBから、I/Oデバイスに割り当てられた仮想メモリ容量を引いた値となります。 また、PCIスロットなどに増設をしている場合はI/Oデバイス割り当てられる仮想メモリが増加しますので、認識するメモリ容量はさらに減少します。 」 とありますが、私の場合3GBから4GBにしたのにWindows VistaのTask Managerで見るとキッカリ3GBと認識されて、3BG→4GBへ増設した意味が無いように見えます。 PCIカードを1枚増設していますが減るメモリ量は1GBになるのでしょうか? そうだとすると、今回の3GB→4GBの増設は意味があったのでしょうか?

  • 64bitOSPCで8GBメモリーが使用可能にならない

    Galleria XG 860 64bit モデル http://www.dospara.co.jp/5goods_pc/pc_detail.php?h=g&f=g&m=g&mc=1163&map=1 これを部分的にカスタマイズしたものなのですが、 システムの実装メモリ欄が8.00GB(3.99GB使用可能)となっており、64bitOSにも関わらず明らかに過小な表示になっています。システムに半分近く取られるとは思えません。 マザーボードはオンボードグラフィックを搭載しておらず、メモリー最大搭載量も16GBなので問題ないように思われます。問題があるように組まれても困りますが… タスクマネージャーから見える物理メモリは4087となっており、やはり全ては使用できないようです。 ちなみにカスタマイズ内容はOSをProfessionalへの変更、メモリを8GBへの変更、HDDの追加、SSDの追加、サウンドボードの追加 です。 BIOSは最新のバージョンのようであり、BIOS画面からメモリーを認識している事も確認しています。 思いつく限りの方法で情報を探してみたのですが、どうにも解決策が見つかりませんでした。 どうかお知恵を拝借させてはいただけませんでしょうか。

  • 4GBと認識されない

    NEC LL850/kですが、最初からPCに内蔵分が0.5GB、スロット分を使い2GB×2で4GB、計4.5GB搭載して居ます、32Bitから64Bitにしましたが実装メモリーは4.5GBと表示されていますが、使用分メモリーとして3.12GBとしか認識されません、そこでBIOS設定でMemory Remap Featureを自動としましたが変わりません、このPCのBIOS設定では1GB/3GB/自動としか無くそれ以上はさわり様がありません、3.12GBと言うのは32Bitの頃の認識と変わりなく、どうすれば実装メモリ分を認識させれるのでしょうか?通常であればMemory Remap Featureで有効とすれば64Bitでは実装メモリ分が認識されるはずなのですが・・そもそもメーカー製品のBIOSでは対応出来ないのでしょうか?・・どなたか分かる方、アドバイスを頂けないでしょうか、宜しくお願いします、尚、PCのシステムは問題ありません