プロが教える店舗&オフィスのセキュリティ対策術

一般に販売されているPCのメモリ容量は
4GBとか8GB、(昔だと256MBとか512MBとか)など、
なぜ2^Nにしているのですか?
アドレスマップが16進数で表現されるのが関係しそうですが
中途半端な値でも目一杯な容量にしたほうが合理的な気がするのですが
キリよく2^Nにする意味は何かあるのでしょうか?

A 回答 (12件中1~10件)

メモリモジュールら辺の話はさんざん出ているようなので割愛します。



>また以前に512MBのノートPCに256MBメモリを1枚追加して
>総容量768MB(2^Nでない中途半端な容量)で運用した結果
>メモリを追加する前より体感的に処理スピードが向上したのが分かりました。

それってメモリ不足でスワッピング多発していたのがメモリ増設によって
解消されただけですね。

>ナゼ電気屋さんで売られているPCには768MBメモリのものが
>売られていないのかがよく解りません。

PCが本来持っている性能を出し切れなくなるためです。
最近のPCにはデュアルチャネルやクアッドチャネルと呼ばれる技術によって
メモリモジュールを2枚差しや4枚差しすることでアクセス速度が2倍化、
4倍化させることができます。
ただし、この技術には制約事項が有り、2枚あるいは4枚の組で使用する
メモリはすべて同じ規格、同じ容量である必要があります。

故に「電気屋さんで売られているPC」では、768MBのように中途半端なものはありません。
    • good
    • 0

私の中での一般的なPCは、標準的なメモリモジュールを1枚または2枚搭載しているものという考えなので、搭載メモリ量の話は、メモリモジュールの容量に帰着すると思うのですがね。


全く無関係とまでは思いません。

ただ、ノートPCやタブレットPCでは、オンボードでメモリを搭載しているものがあるので、ちょっと違うかもしれません。

また、「中途半端な値でも目一杯な容量にしたほうが」という書き込み内容から、質問者は「100MBのメモリチップを21個使ってるけど、容量は2^Nに合わせて2GB」みたいなことをしていると考えているのかなと思ったことも、今回の回答の一因です。

#「電気屋さん」というと、電力会社を指しそうな気がするのは私だけ?
    • good
    • 0

「メモリ基板」の話と「PC の搭載メモリ」の話は全く関係ありません. 混同しないでください.



メモリ基板についていえば「どう作るのが最も合理的か」というだけ. 例えば 768 MB のメモリ基板があったとして, それをどう制御しますか? 768 MB のメモリ基板を単体で使うだけを考えるのではなく, 「さらに 2048 MB のメモリ基板を増設したらどうなるのか」も含めてじっくり考えてください.

「電気屋さんで売られているPC」は単にラインナップの問題. メーカー直販だと実際に「768 MB メモリ」ってのもあった.

余談: メモリチップの (ビット単位での) 容量ではデータバス幅も影響するので, 常に「ビット数が 2 のべき」とは限らない. まぁ今だとそんなの知ってる人間の方が少数派だとは思うけど.
    • good
    • 0

ちなみに、メモリチップも同様の理由から2^Nの容量で作成されています(単位はビットですが)。

そのチップを8個とか16個とか搭載してメモリモジュールを作成するため、結果的に容量が2^Nになります。
    • good
    • 0

アドレスバス(アドレスを指定する信号線)がON/OFFで示されるため、2進数と考えることができます。


容量が2^Nであれば、使用するアドレスバスの本数はN本で、しかもどのアドレスにもメモリが存在します。
容量が2^N+2^(N-1)のようになると、使用するアドレスバスはN+1本ですが、その範囲であらわされるアドレスの中にメモリが割り当てられていない部分が存在してしまいます。その分、制御が複雑になります。
    • good
    • 0

まあ, 「max 144 GB」なんてマザーボードもあるけどね.

    • good
    • 0

> アドレスマップが16進数で表現されるのが関係しそうですが



おしい!
16進数は表現の問題で、2進数だと桁数が長くなり過ぎるため、
2進数の4桁単位で表現するから16進数表現ですが、それは2進数の
ことです。
ですから、2^nの単位になるのが合理的なのです。

ただ、Intelでメモリのトリプルチャンネルでは6GBとか12GBとか
メモリ1枚は2^nですが、3枚のメモリを付けるのでx3が出ましたけど。
    • good
    • 0

合理的ですか・・・。

まあ、これは「あ」が何ビットまたはバイトなのかということを理解しているかどうかの問題の延長線上にあります。

最初に答えを言えば、
計算の単位が2のべき乗(端的に言えばデジタル)だからです。
要は、bit/Byte単位で切りがよいのが、2のべき乗であり、それを細かく突き詰めると、2のべき乗でメモリも提供した方が効率が良くなります。ちなみに、2の2乗はいくつでしょうか?
2の16乗は、2の32乗は?

32乗は、32bitプロセッサがアドレス空間拡張機能(PSE、PAE)を備えていない場合、上限とする容量です。正確な数値は、4294967296です。ソフトウェアがどれだけ使うかは、この計算の限りではありませんが、2147483648(31乗)と、32乗の間の容量が例えばメーカーが開発できるメモリの上限だったとしたら・・・その容量は綺麗に使うことが出来るかというのが、この質問における答えです。

たしかに、ソフトの組み合わせによっては、使える可能性はあります。しかし、214783649だったら、その1という容量差を埋めるソフトは作れるでしょうか?

31bitのプロセッサがあると仮定すれば、2147483649だと、1が溢れてしまい認識されません。しかも、ここでいう49と48の差は、使えるか使えないかを明確に左右する物となります。ソフトウェアの設計上、1単位で処理するものは基本的にはないのです。

要は、ソフトの開発思想として、2のべき乗がもっとも効率的に運用できる単位なのです。
即ち上記の31bitでは1が無駄となるのです。2のべき乗または8のべき乗にするのは、計算単位(Byte/Bit換算)において効率が極めて良いからです。そのべき乗演算で尚かつCPUやOSが提供するメモリアドレス空間理論から外れた場合は、使えなくなり効率が悪くなるのです。
特に、複数のメモリを増強できる環境下では、その影響は計り知れないほど大きくなることもあります。

以上のようになります。即ち、合理的な数値として、2のべき乗が使われます。尚、1バイトは8bitです。
その点で分かると思いますが、最低でも8bitのべき乗にしないと、端数が情報処理における効率的なメモリ利用において悪影響を与えます。これは、NANDなどの半導体フラッシュメモリでも同様です。まあ、一部には製造上や認識上の効率面での理由もあります。


ちなみに、メモリバンク(1チップ)は、一般にはビット換算で提供されしかも、2のべき乗です。
もっと言えば、市販のメインメモリは、チップ単位での販売ではなくメモリチップが4から8個(デスク向けデュアルバンクは16)集まったモジュールとなっています。即ち、1チップは、4Gbit(512MB)などのバンクで構成され、それを4枚合わせて、2GB、8枚で4GBとします。

尚、アドレス空間の表現は、別に16進に限定されているわけではありません。
厳密には、2進、32bitでも2進64bitでも構わないのです。もっと言えば、10bitでも、40bitでも良いでしょう。これは、あくまで便宜上それが見やすいからそう言う記述が使われるOSやメモリ管理ソフトがあるというだけであり、表現はあくまで表現に過ぎないのです。
ちなみに、現在の64bitプロセッサ(x64の場合)におけるアドレッシングは、48bit(256TB)のアドレス空間をサポートします。
    • good
    • 1

基本は2進数だから、最も効率よく使うのにメモリは2の乗数になっている。



>中途半端な値でも目一杯な容量にしたほうが合理的な気がするのですが

中途半端な値って...何の値の事?

DRAMチップはシリコンウェハ上に網の目のように作り、1枚から最も多くのチップを採れるように縦横比を決める。メモリに必要以上の余りの領域なんて作ったら、無駄なだけ。うまく縦横比を調整すれば同じウェハから多くのチップが取れるかもしれない。そうなれば利益につながる。

メーカー側からすれば、何も考えずに余った領域を全部メモリにするなんて合理的でもなんでもなく、ものすごい無駄。そんなことするなら余った領域分チップを小さくして小型化したほうがずっと利益につながる。
    • good
    • 0

 それはアクセスするためにバスの関係からですね




 http://itpro.nikkeibp.co.jp/article/lecture/2007 …


 8ビット  64Kbまで可能
 16ビット 
 32ビット メモリ4Mまでアクセスできる
 64ビット


 


 
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!