• ベストアンサー

32bit = 4GB(バイト)?

32bitマシンは理論的に4GByteまでメモリが管理できるとよく耳にするのですが。よく分かりません。概念が。 2^32 = 4294967296で4GByteのメモリを管理でる? えっと2^8つまり8bit=1byteなら32bitで4byteなのではないのでしょうか? あれでも32bitつまり2^32=4,294,967,296通りで1byte=256通りだからbyteに直すと16777216byteでさらにkbyteにすると16384kbyteでmbyteになおすと16mbyteになるの? ん?  あれ4GByteにならないじゃんって…… ちょっと頭が相当重症にこんがらっています。 一応ここhttp://okwave.jp/qa3063088.htmlを見て理解しようと尽くしたりしたのですがよく理解できません。どう質問していいかも分からず文章めちゃくちゃになってしまいましたが。どうか分かりやすい説明をどなたかお願いいたします。

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

  • ベストアンサー
  • chiezo2005
  • ベストアンサー率41% (634/1537)
回答No.4

>32bitマシンは理論的に4GByteまでメモリが管理できるとよく耳にするのですが。よく分かりません。概念が。 よくわからなくて正解です。 >32bitマシンは理論的に4GByteまでメモリが管理できる。 この表現が間違いで, 32bitマシンは4G個のアドレスをアドレスレジスタで直接管理できる。 というのが少し正しい表現。 32ビットマシンというのは内部レジスタ(特にアドレスレジスタ)が32bitのマシンと言う意味です。 32bitであらわせる数字は4294967296=4G個(これは個数であってバイトでもビットでもありません)。 したがって,もしそのCPUなりOSがアドレスレジスタのひとつの数字に対してメモリ1バイトを示すように設計されている場合には 4G個×1バイト=4ギガバイトのメモリを管理できるということになります。 今時のCPUはアドレスレジスタひとつに対して1バイトなんてもったいないアクセスはしませんので,実際に扱えるメモリーはこの何倍にもなります。

eruketeiso
質問者

お礼

>32bitマシンは4G個のアドレスをアドレスレジスタで直接管理できる。 この表現で要約理解できました。 本当にありがとうございました。

その他の回答 (4)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.5

32bitだと、 2^32 = 4294967296個の区別ができるといっているのです。メモリにこれだけの番地がつけられるということです。メモリの構成とは別です。 8部屋ずつの建物が4294967296棟あれば、0番地から4294967295番地まで番地をつけられるということです。いいかえれば、それぞれの番地にたどり着く道が用意されているということです。この道と部屋数とは直接関係はないのですが、歴史的に8部屋の家にしたということでしょう。 アクセス単位が8bit=1byteのメモリで4GBを構成するなら、94967295 * 8bitのメモリセルが必要です。上の例の総部屋数に相当します。

noname#61010
noname#61010
回答No.3

だから、メモリー空間のアドレスを4GB分管理できると言うだけ。 かなり簡単に言うと、メモリー空間は1バイトごとに1つのアドレスを持っている。2^32個のアドレスを管理できる。よって4GB分管理できる。 64bitのCPUなら2^64個のアドレスを管理できるから、2^64バイト管理できる。

  • u-bot
  • ベストアンサー率58% (1736/2988)
回答No.2

「2^32 = 4294967296で4GByteのメモリを管理でる」 の考えで合っています。 32ビットあれば4GBの空間にユニークなアドレス(個別の番地)を割り振れるから管理できるわけです。 「あれでも32bitつまり2^32=4,294,967,296通りで・・・16mbyteになるの?」 計算自体は間違っていませんが、最後の16MByteは管理できるメモリ容量を示しているわけではないのです。 Byte単位に変換するからメモリ容量のように誤解されているだけです。 1Byteが表現するアドレスは256個ですから、16MBx256=4GB通りとなり、結局4GBのアドレスを表現できる結論となります。 問題は文章中の「1byte=256通りだからbyteに直すと」の部分です。 「通り」を「Byte」という単位に変換するのがおかしいのです。 例えていうなら「1000通り」を「千円札1枚分」と言うぐらいに変なのです。

eruketeiso
質問者

お礼

>「通り」を「Byte」という単位に変換するのがおかしいのです。 確かにそうですね。 要約理解できました。 ご回答ありがとうございます。

  • kaZho_em
  • ベストアンサー率50% (2950/5879)
回答No.1

> あれでも32bitつまり2^32=4,294,967,296通りで ここまでは良い。この後は余計な事考えすぎ。 4,294,967,296通りというのは、4,294,967,296個の番地が表せるという事。 1個の番地で1バイトを扱うので、4,294,967,296バイトに番地を割り振れる、 つまり 4,294,967,296バイト=4GB が扱える。 ということなのですが、納得できませんか?

eruketeiso
質問者

お礼

要約分かりました。なんか大きな勘違いをしていたみたいです。 回答ありがとうございました。

関連するQ&A

  • NEC VY22X/RF-M ノートパソコン メモリ

    今、NECのノートパソコン(タイトル通りVY22X/RF-M)を使っています。 そのパソコンにメモリを増設しようと考えています。 発売当時の資料を見る限りでは、1Gbyte迄メモリが増設(512Mbyte×2)出来るとなっていますが それ以上には増やせないのでしょうか? 例えば、1Gbyte×2とかで問題無く動作するなら、そうしたいのですが 試した方が居ましたら、是非、教えてください。

  • K7Mで大容量HDDやAGP4Xは動くでしょうか?

    現在K7Mを利用しております。 少しばかり癖があるマザーボードのような気がしますが 頑張って利用しております。つきましては以下の点に おきまして成功例などがありましたら、教えてください。 ・DMA100 80Gbyte (IBM)製のHDDを利用することはできるでしょうか? ・GeForce4 440MX を利用することはできるでしょうか? ちなみに私のマシンのスペックは以下のとおりです。 CPU Athron750MHz メモリ 128Mbyte マザーボード K7M HDD 現在40Gbyte+30Gbyte(共にDMA66) CD-ROM 32倍速 サウンドカード SoundBlaster Value グラフィックボード Voodoo Banshee OS Windows98 Second Edition

  • H2testwでのSDカードチェック結果について

    某フリマサイトからHuaweiの512GBのSDカードを購入しました。 後々ネットでみたら容量偽装のSDカードが多数販売されているようで、H2testwでチェックして見た結果です。(時間がかかり過ぎ途中でやめました) Warning: Only 511981 of 511983 MByte tested. The media is likely to be defective. 14.6 GByte OK (30637623 sectors) 100.5 GByte DATA LOST (210964937 sectors) Details:0 KByte overwritten (0 sectors) 0 KByte slightly changed (< 8 bit/sector, 0 sectors) 100.5 GByte corrupted (210964937 sectors) 0 KByte aliased memory (0 sectors) First error at offset: 0x00000003a6fc6e00 Expected: 0x00000003a6fc6e00 Found: 0xd401025c8b655fff H2testw version 1.3 このSDカードは偽装商品ですか? チェック結果中に 14.6 GByte OK (30637623 sectors) 100.5 GByte DATA LOST (210964937 sectors) 100.5 GByte corrupted (210964937 sectors)と直接容量を示すような数字がありますが、このSDカードは何GB何でしょうか? 14.6GBだと思い、試しに25.7GBのフォルダファイルを該当SDカードにコピーして見たら、元ファイル25.7GBのフォルダファイル中コピーが終わったら、該当SDカードに24.9GBのフォルダファイルがコピー出来ておりますが、一部、破損しているファイルもありました。H2testwチェック結果が誤りで、SDカード自体は512GBあるものなのでしょうか?OSのディスク管理でもプライマリーパーテーションとして500GBで認識されております。 宜しくお願いします。

  • VirtualBox上でWindowsXpを起動

    VirtualBox上でWindowsXpを起動すると、真っ黒な画面が表示されます。 マウスを動かすと、動かした部分のみ画面が表示されます。 ちなみにマシンは以下の通りです。 MacBookPro(2010モデル15inch corei7 メモリ6GByte) VirtualBox4.0.4 WindowsXpProSP3(32bit) ※MacBookProを32bitで起動した場合はWindowsXpは問題なく起動し、動作します。  MacBookProを64bitで起動した場合に上記障害が発生します。 以上、よろしくお願いいたします

  • Windows7(64bit)でpainter11、メモリを4GB以上

    Windows7(64bit)でpainter11、メモリを4GB以上は認識するのか? こんにちは。いつも利用させていただいています。 質問の内容は上記のとおりWindows7(64bit)マシンでメモリを4GB以上積んだ場合、 Corel Painter 11はそのメモリを認識し使用することができるかどうかです。 Corelのホームページでは ・Painter11はWindows7には対応している。 ・vista64bit版では32ビットモードで動作する。 と書いてあります。 32bitWidowsOSがシステム的にメモリを4GBまでしか認識しないようですが、 64bitOSで32bitモードでプログラムを起動した場合はどうなのでしょうか。 このごろWindows7でメモリを多く積んだPCを自作しようと思っているので質問させていただきました。

  • 32bit = 4GB(バイト)?

    32bit = 4GB(バイト) という表現をよく見るのですが 32bit = 10bit(1Kbit) X 10bit(1Kbit) X 10bit(1Kbit) X 4bit = 1Gbit X 4bit = 4Gbit(ビット)ではないでしょうか? なぜ4GB(バイト)になるか分かりません。教えてください

  • 64bit Linux上で32bitアプリケーションを使って共有メモリアクセス

    64bit Linux と共有メモリとの関係についてどなたか教えて いただけないでしょうか。  (現段階では、マシンもOSも64bitのものは無く、導入前での   検討段階です) 使いたいと思っているのは Red Hat Enterprise Linux 3.0 です。 現在動かしているアプリケーションが使っている共有メモリの サイズが大きくなってきたために64bitのLinuxを検討しています。 ただし、プログラム移行の手間を最小限にするめ、64bit環境上で 32bitライブラリにリンクしてmakeし直す程度の対応で済ませたいと 思っています(言語はCです)。 このような32bitアプリケーションが発行する共有メモリ関係の API‥たとえば、shmget()とかshmat()‥の呼び出しは、どこかの レイヤで最終的に64bit化されて動くと想像しています。 そうすると、32bit用のインターフェースに破綻を来たさない限りは、 総量で4GB超の共有メモリをアクセス可能(具体的には、総量として 4GBを越えて取得でき、参照時にはマッピングサイズが小さければ、 それらのいずれの部分もマッピングできる)と想像しているのですが そのような理解で良いでしょうか。 ちなみに、4GB超の大きなメモリを1つ使うわけではなく、100個前後 に分散した取得/マッピングをしています。つまり個々のブロックは 小さなサイズです。 よろしくお願いします。

  • Windows XP 32bit版の最大メモリ

    Windows XP 32bit版の最大メモリに関する質問に対する、この回答は合っているのでしょうか? 間違ってたり曖昧な点があれば教えて下さい。 特に 『OSが起動する以前のPCのシステムが、約700MB程使用します』 『OSが起動しようとする時は、既にシステムが700MB程使用しています』 ここで言及している『システム』とは何のことなのかが曖昧で説明が危うく感じます。 --- ●質問 Windows XP 32bit版のメインメモリの上限の理由は? メモリ空間が2^32で4,294,967,296 なので4,294,967,296バイトのメインメモリを管理できそうです。 しかし実際には3GB位の制限があるそうですが、理由は何ですか? ●回答 32bitのWindowsが起動した直後では、3.2GB程のメモリー量となりますが、OSが起動する以前のPCのシステムが、約700MB程使用しますので、OSが起動した直後では、約700MBを差し引いた値の3.2GB程になるのです。 だから実際には、トータルで4GB認識できているのです。 これは、32bitのメモリー空間が、4GBしか扱えない為・・32Bitで扱える上限が4GBなのです。 ●補足質問 『OSが起動する以前のPCのシステム』 ということはOSの管理外のメモリーということになりますよね。 なら、OSが起動した時点で、残りの物理メモリが4GB以上あれば4GBまでは認識しても良さそうですけど、その辺はどうでしょうか? ●補足回答 いいえ、4GBの管理下のメモリーから使用されます。 だから、OSが起動しようとする時は、既にシステムが700MB程使用していますから、OS上では、3.2GB程なのです。 ついでに、このシステムが使用するメモリー量は、オンボードデバイスの量で若干変動します。 つまり、オンボードデバイスが多ければ多いだけ、使用するメモリー量も増えるのです。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1192121361

  • 回線速度が遅い

    無線LANから有線LANに変えたので、速度を測ってみたところ、 下りの速度は期待通り速くなっていたのですが、上りの速度がイマイチな結果になります。 プロバイダとの契約では光回線の100Mbpsとなっていました。 計測結果は、 下り70.80Mbps (8.850MByte/sec) 上り5.138Mbps (642.2kByte/sec) という結果でした。 やはり上り速度だけが妙に遅い気がするのですが、どうすれば速くなるのでしょうか? 計測に使ったサイトはここです http://netspeed.studio-radish.com/index.html OSはwindows7 HP 32bitです。

  • 最近よくPCがフリーズして困っています

    最近よくアプリケーションで新しいウインドーを開くと開く途中でPCがフリーズしてしまいます。仕方が無くctrl+alt+deleteで強制終了しています。 その時マイコンピュータのプロパティを見ると中に書かれている内容が文字化けを起こしている事に気づきました。 過去にシステムリソースの残りが少なくなるとこの様な現象になると聞いたことがあったので確認した所、その時のシステムリソースの残りは43%でした。それほど少なくないような気がします。 どなたか同じような経験をされた解決された方は居ませんでしょうか?お願いします。当方のPCのSPECは次の通りです。 1.本体:EPSON DIRECT Endeavor Pro-600L 2.CPU:Pentium(3)733MHz 3.メモリ:128MByte 4.HDD:20GByte(空き12.9GByte) 5.OS:Windows98SECOND EDITION