全く同じタイプで全く同じ容量、全く同じチップで出来てるメモリでも片面タイプと両面タイプがありますよね?
あれって何か他に違いがあるんでしょうか?店の人には「ただ片面にチップが乗ってるか両面に乗ってるかだけの違いですよ」って言われたんですけどそれなら別にどっちかの種類だけでも良いのでは?どうなんでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (5件)

片面、両面かなり違いがありますよ



例えば片面の256MBのメモリだとチップの数が
256ビット(32MB)×8となりますが
両面256MBのメモリの場合は128ビット(16MB)×16
となります。つまり同じ容量で片面と両面ではメモリに
搭載されているチップの数と容量が違うのです。
マザーボードによっては256ビット(32MB)のメモリは
認識されないとかありますので購入する際は
自分を使っているマザーボードの種類を確認してから
購入するとよいと思いますよ
(ちなみに440BX系のマザーボードでは
256ビットメモリは使えませんので
もし256MBのメモリを増設する際は両面の1チップ
128ビット(16MB)のメモリを選んで購入すると
よいかと)

参考URL:http://plaza13.mbn.or.jp/~uzuneko/bangai20010410 …
    • good
    • 2
この回答へのお礼

遅くなり申し訳ないです。」
両面と片面になると一枚あたりのチップの容量が違うのはさすがに分かりますけど(笑)
440BXのマザーは片面タイプは受け付けることが出来ず、ビックリしました。もっと早く知っておけばと後悔しました。とにかくありがとうございます。

お礼日時:2001/08/16 10:45

簡単な答


同じチップではありません 同じチップで容量一緒だとついているだけ無駄になるからですね
マザーボードによりチップの数の制限・1チップの容量制限等がありこの辺で区別を付けなければなりません
どちらも使用できる場合は1チップ容量が大きいチップ数の少ない方を購入することをお勧めします
体感できるほどではないしせよパソコンの中の処理は速くなっています
    • good
    • 0
この回答へのお礼

さすがに片面と両面で1チップあたりの容量が違うのはわかりますど(笑)ここで質問していろいろと勉強になりましたありがとうございます。

お礼日時:2001/08/16 10:53

下の方々が違いについては説明していらっしゃるので、私は実用上参考になれば良いと思うことについて答えます。

もしマザーボードが両方のメモリを認識できるのであれば、チップの数が少ないほうを選ぶことをお勧めします。
最近のパソコンはかなりの電気食いになってきているので、HDDの増設や周辺機器、CPUのアップグレードなどをしている場合、電源容量が足りなくなる可能性があります。電源を高容量のものに変えれば問題ないのですが、メーカー製省スペースパソコンなどの場合難しいこともあるので、少ないチップのものを選ぶに越したことは無いです。
    • good
    • 1
この回答へのお礼

遅くなり申し訳ないです。僕のマザーは両面しか認識しないため、知らずに片面を買ってしまい後悔するはめになりました、色々とあるものですね勉強になりました。ありがとうございます。

お礼日時:2001/08/16 10:50

違いはありますね。


基本的に両面が使えない機種もありますからね。
基板二積層設計(両面)では、使っている最小単位のメモリチップ容量が小さいこと。(片面の1/2の容量を2倍実装して容量を同じにする)
逆に、片面(現在は大半がこれ)は最少構成単位容量が両面の2倍あるわけです。

使える場合も多いのですが、面の数が異なるわけですから、基板二積層の場合、3スロットの空きがあって、ワンスロットを基板二積層がワンスロットを通常のメモリが占有してその後に増設しようとするとメモリを認識しない、誤動作するなどの不具合が発生したり、機種によっては基板二積層メモリ自体を認識しないこともあります。
すなわち、3スロット=三面までしか認識しないことなり片面が1枚と両面が二枚なら既に三面を使っておりそれ以上認識しないことがあるってことです。そこで空きスロットに追加メモリを増設しても認識しません。
また、最初に述べたとおり、最少構成ビット数(容量)が異なるため機種によっては相性問題の原因になることもあります。

分かりにくいですね。とりあえず、こんなものです。
分からないところがあれば、補足要求をお願いします。
    • good
    • 2
この回答へのお礼

遅くなり申し訳ないです、色々とあるものですね、勉強になりました。ありがとうございます。

お礼日時:2001/08/16 10:48

メモリチップの供給の状態や値段などによってメモリボードに使用できるメモリチップは変化します。


そのために片面で済む場合と両面必要な場合が出てくるんですね。
メモリ容量の大きなチップは量通し始めたときは高いですので。

特に気にする必要性はないと思います。
    • good
    • 0
この回答へのお礼

送れまして申し訳ないです、ありがとうございました。

お礼日時:2001/08/16 10:43

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qメモリに余裕があるのにヒープが確保できないです。

趣味のプログラムなので切実な問題ではないのですが、
1秒間隔に処理を行うプロセスを-Xmx64Mの指定で6つ起動しようとするのですが、
6つ目でヒープが確保できなくて処理が走りません。
スレッドは1プロセスあたり15くらいです。
OSはWindowsXPでCPUはPentium Dual-core E2140で
メモリは2GBつんでいるのですが、
タスクマネージャでみると1GB強しかつかってません。
できれば6つ同時に走らせたいのですが、方法はありますでしょうか?

Aベストアンサー

ヒープエリアはたしか全プロセスで共通に使われるはずです。
-Xmx64M を -Xmx128M 等に変更して動かしてみて下さい。

Qメモリの片面換装と両面換装とは?

最近PCのメモリを変えようかなと思いPCショップで色々なメモリを模索していると、メモリ自体にチップが付いていますが、そのチップが片面だけ付いているタイプと両面に付いているタイプがありますが、
性能の差はあるのでしょうか?間違っていたらすみませんが、片面にしか付いていないタイプは金額的にも安い様な気がしますが、性能的には片面より両面にチップが付いている方が良いのでしょうか?
皆さんの意見をお聞かせ下さい、よろしくお願い致します。

Aベストアンサー

 メモリチップにより1つあたりの容量が定まっており、メモリモジュールに搭載させる容量や規格によって両面実装か片面実装かが決まってきます。
 技術的な進歩により、同じ容量であっても、片面実装で十分な製品が登場してきます。当然。チップの数が少ないので、価格は抑えられるわけです。チップあたりの容量が大きくなっているだけで、基本的な性能はそれほど変わらないはずです。つまり、一般的にいえば同じ規格・容量であれば、片面実装の方が新しい製品、ということになります。
 容量の大きいチップを使えば、それだけモジュールあたりの容量も大きくできます。そして、マザーボードに搭載できるメモリモジュールは、容量以外にもこの実装する面の数(これをバンク数という)の制限もあります。
 例えば、搭載できるメモリの容量が2GB、バンク数が4の場合、1GBの両面実装型モジュールならば2枚まで搭載できる訳ですが、そのような製品がまだなかった頃は、実際に搭載できるメモリ容量が小さくなってしまうことがあります(これは私の経験)。その後メモリモジュールの容量が拡大して、ようやく最大容量を満足できるようになった、なんてことがあります。
 メモリモジュールに関しては、性能云々よりも信頼性を重視するべきでしょう。ノンブランド品は以前に比べれば信頼性が上がっているようですが、それでも注意は必要です。使っているチップなどはメジャー品と同じですが(チップそのものの製造元がおなじ)、チップやモジュールの検査はそれぞれのモジュールメーカーが行っていて、チップの製造元の検査は通ってません。使用する場合は、その点を割り引いて考える必要があります。

 メモリチップにより1つあたりの容量が定まっており、メモリモジュールに搭載させる容量や規格によって両面実装か片面実装かが決まってきます。
 技術的な進歩により、同じ容量であっても、片面実装で十分な製品が登場してきます。当然。チップの数が少ないので、価格は抑えられるわけです。チップあたりの容量が大きくなっているだけで、基本的な性能はそれほど変わらないはずです。つまり、一般的にいえば同じ規格・容量であれば、片面実装の方が新しい製品、ということになります。
 容量の大きいチップ...続きを読む

QC/C++言語のメモリについて

C言語でメモリを2種類?に分けると、スタックとヒープがあります。
ヒープは mallocなどで確保し、freeで解放しますがスタックは解放する必要がありません。
そのスタックは通常、何バイトまで可能なのでしょうか?

あと関数外のファイルの先頭に int[1000000];とした場合、このメモリはmallocで確保していませんが、
どこに作られるのでしょうか?

私のパソコンはメモリが2GBでWindows2000ですが、CやC++で最大、何バイトまでメモリが使えますか?
また、一番多くメモリを確保できるなら、OSはなんでも構いません。

解釈等も間違っていたらご指摘していただきたいです。

Aベストアンサー

マイコン向けのプログラムを書いてます、Interestと申します。

> C言語でメモリを2種類?に分けると、スタックとヒープがあります。

間違いではありませんが、ちょっと足りません。プログラムで使用するメモリはもう少し細かく見ると、次のようになっています。

(P) 実行される命令(ProgramとかCodeと呼ばれます)
(C) 定数など変更されないデータ
(D) 初期化されるデータ
(B) 初期化されないデータ
(H) プログラムから動的に割り当てられるメモリプール(これがヒープです)
(S) ローカル変数、関数の引数、呼び出し元関数へのリンクに使用する比較的短命なものに使用するメモリプール(これがスタックです)

> そのスタックは通常、何バイトまで可能なのでしょうか?

開発環境によって初期値が決まっているようで、どれだけ割り当てるか変更できるようです。OSには依存しません。Visual C++ 6.0の場合、スタックサイズの初期値は1MBだそうです。
参考 http://okwave.jp/qa2645032.html

> あと関数外のファイルの先頭に int[1000000];とした場合、
> このメモリはmallocで確保していませんが、どこに作られる
> のでしょうか?

最初に説明した内容に照らすと、一般に外部変数は0で初期化されますから、(D) 初期化されるデータ の領域に確保されることがわかります。

> 私のパソコンはメモリが2GBでWindows2000ですが

WindowsなどのOSは物理メモリが足りなければハードディスク上の仮想メモリも使用しますので、単純に何バイトまで使えます、とはお答えできません。

> 一番多くメモリを確保できるなら、OSはなんでも構いません。

どのようなプログラムを組もうとしているのですか?

マイコン向けのプログラムを書いてます、Interestと申します。

> C言語でメモリを2種類?に分けると、スタックとヒープがあります。

間違いではありませんが、ちょっと足りません。プログラムで使用するメモリはもう少し細かく見ると、次のようになっています。

(P) 実行される命令(ProgramとかCodeと呼ばれます)
(C) 定数など変更されないデータ
(D) 初期化されるデータ
(B) 初期化されないデータ
(H) プログラムから動的に割り当てられるメモリプール(これがヒープです)
(S) ローカル変数、関...続きを読む

Qメモリ DDR 片面/両面実装の違いについて

GIGABITE GA-K8NS Ultra-939のメモリを512MB(256 片面x2)から、512MBx4(片面か両面か不明)を購入しようとしています。
OS:Windows XP SP3
CPU:AMD Athlon64 939 3000+ Winchester
HDD:IDE160GB
片面と両面で認識する容量や、DUALチャンネルの認識などありますか?

Aベストアンサー

こんばんは、別に問題無く認識できます。最高4GjまでOK

下記に日本語マニュアルがダウンロード出来るから、読んどいたら、


http://www.gigabyte.co.jp/Support/Motherboard/Manual_DownloadFile.aspx?FileType=Manual&FileID=16233

参考URL:http://www.gigabyte.co.jp/Support/Motherboard/Manual_DownloadFile.aspx?FileType=Manual&FileID=16233

Qヒープ領域の限界値設定

大量にメモリを消費するアプリケーションを下記環境で動作させようとしています。
WindowsXP SP2, 1GB RAM
タスクマネージャの物理メモリの利用可能 674,500K位
この状態でヒープ領域をレジストリで変更しようと思っているのですが
限界値が不明です。
徐々に3071⇒4096⇒8192と上げていっているのですが、限界値を超してしまうとOS自体が起動できなくなる恐れがあるので怖いです。
アドバイスください。

Aベストアンサー

回答No.1に挙げた「デスクトップ ヒープ」で用いている「ヒープ」という用語は、グラフィックサブシステムで使用するためにWindowsのグラフィックサブシステムがあらかじめ確保して自分自身のために使用するメモリ領域のことを指しています。

また「mallocが使用するヒープ領域」という場合の「ヒープ」という用語は、ライブラリ関数mallocがWindows APIを使用して確保するメモリ領域のことを指しています。

ですので、「デスクトップ ヒープ」と「mallocが使用するヒープ領域」は違うものです。


「mallocが使用するヒープ領域」がどこから来るのかは、コンパイルに使用した言語環境のライブラリ関数mallocの動作内容に依存します。

仮にMicrosoft Visual C++(VC++ Version 6.0以降)を使用してコンパイルし、ライブラリ関数は標準添付のものを使用したとすると、mallocはWindows APIのHeapAllocで取得したメモリ領域をライブラリ内で細分(サブアロケート)して返します。またこの場合、HeapAllocで取得できるメモリ領域の量に固定の上限はなく、PCのメモリ実装量、Windowsのスワップ領域の大きさ、それとアプリケーションプロセスのメモリマップが許す限り、いくらでもHeapAllocはメモリを割り当てて返すことができます。

ですので上記の場合、mallocも同様に「PCのメモリ実装量、Windowsのスワップ領域の大きさ、それとアプリケーションプロセスのメモリマップが許す限りいくらでも」メモリを割り当てて返すことができます。

なお、上記動作はライブラリのソースコードを見て確認したものですので、使用しているコンパイラがVC++ではない、あるいはVC++でもVersion 6.0より古い場合、mallocが「いくらでもメモリを割り当てて返すことができる」かどうかは分かりません。(しかし、返すメモリ領域が「デスクトップ ヒープ」と違うものであることだけは変わりません。)

回答No.1に挙げた「デスクトップ ヒープ」で用いている「ヒープ」という用語は、グラフィックサブシステムで使用するためにWindowsのグラフィックサブシステムがあらかじめ確保して自分自身のために使用するメモリ領域のことを指しています。

また「mallocが使用するヒープ領域」という場合の「ヒープ」という用語は、ライブラリ関数mallocがWindows APIを使用して確保するメモリ領域のことを指しています。

ですので、「デスクトップ ヒープ」と「mallocが使用するヒープ領域」は違うものです。


「mal...続きを読む

Q増設するメモリーは片面、両面どちらでもいいのでしょうか?

SOTECのPC STATION PJ732B(http://pc-support.jp.onkyo.com/pds/spec_list.aspx?pc=0300280000051)を使っています。
1Gのメモリーを増設したいと思っています。
古いパソコンのため中古でPC3200 400MHz DDR SDRAM 184pin DIMM 1GBを通販で購入しようと思っているのですが、通販サイトには片面実装、両面実装を選択することはできませんと記載されています。
片面、両面どちらを購入しても問題ないのでしょうか?

Aベストアンサー

 メモリの実装面の数をバンクといい、片面実装は1バンク、両面実装だと2バンクとなります。
 そして、マザーボードに取り付けられているチップセットにより使用できる最大バンク数の制限があります。

http://wincustomizing.client.jp/memory-buy.html

 例えば845PEの場合は最大4バンクですから、両面実装タイプならば2枚まで、片面実装ならば4枚までとなります。実際はこのチップの場合、メモリスロットが3つというのが普通なので、片面実装のみだと3枚しか取り付けられません。ですから、片面2枚+両面1枚というのが最大です。その範囲内で最大メモリ容量までが搭載できます。

 お使いのPCのチップセットがどのタイプか判りませんが、大抵はマニュアルなどに記載があるかと思います。850ならば制限はありません。

Qメモリをたくさん使うテストプログラム

Linuxで、メモリをたくさん使うようなテストプログラムを作りたいのです。
メモリといっても、プログラムコードの入っているテキスト領域、データの入っているデータ領域、ヒープ領域などがあると思いますが、
これらのいずれかのみをたくさん使うようなプログラムを作りたいのです。
例えば、サイズの大きなプログラムであれば、テキスト領域が大きくなったり、
大容量の文字列を扱ったりすると、データ領域が大きくなったりするんでしょうか?
関数とメモリ使用量の関係があまり分かっていません。
どうか教えてください。

Aベストアンサー

#1です。
>テキスト領域を大量に確保するには、無駄に長いプログラムを書けばいいのでしょうか?
はい、その通りです。
>mallocした領域にデータを書き込むと、今度はデータ領域がたくさん使われるのでしょうか?
いいえ、mallocした領域は、ヒープ領域であり、ヒープ領域にデータを書き込んだからといって、データ領域が増える訳ではありません。

コーディングでは、以下のようになります。
-----------------
#include ....ヘッダファイル
char data1[256];  ・・・・データ領域
main()
{
data data2[256];  ・・・・スタック領域
if (・・・){    ・・・・テキスト領域
・・・
}
malloc(3000)    ・・・ヒープ領域へ確保
}

main等の関数の外側で確保した領域は、データ領域に取られます。
main等の関数の内側で確保した領域は、スタック領域に取られます。(static指定を除く)
実際に命令(if文など)は、テキスト領域にとられます。
mallocで確保したメモリはヒープ領域に取られます。
(但し、テキスト領域の言葉は正しいかどうか不明です。参考URLを参照下さい)
ところで、どうして、メモリをたくさん使うようなテストプログラムを作りたいのですか、よかったら教えて下さい。そのほうに興味があります。

参考URL:http://www1.cts.ne.jp/~clab/hsample/Point/Point19.html

#1です。
>テキスト領域を大量に確保するには、無駄に長いプログラムを書けばいいのでしょうか?
はい、その通りです。
>mallocした領域にデータを書き込むと、今度はデータ領域がたくさん使われるのでしょうか?
いいえ、mallocした領域は、ヒープ領域であり、ヒープ領域にデータを書き込んだからといって、データ領域が増える訳ではありません。

コーディングでは、以下のようになります。
-----------------
#include ....ヘッダファイル
char data1[256];  ・・・・データ領域
main()
{
data...続きを読む

Qメモリ 両面実装と片面実装の違い?!

ヤフオクやジャンクパーツショップなどで、
「両面実装」などと謳っているメモリがありますが、
片面実装の製品と比べて、メリットなどはあるのでしょうか?
*なぜか両面実装というのを売り文句にしている感じがしましたので...

参考までに、SDRAM(DDRではない)と言った古い規格のメモリで、特に多く謳っている気がしました。

私のような素人の考えでは、

片面実装の方が両面実装と比べて、同容量ではチップ数が少ない

ということは各チップの集積率が高い

発熱も少なく、動作も速い

片面実装の方がいい?

と勝手に思っているのですが...

Aベストアンサー

片面実装と両面実装ではバンク数が違います。
通常は
片面実装=1バンクタイプ
両面実装=2バンクタイプ
です。(稀に片面実装で2バンクタイプがあったりしますが…)

メモリコントローラー側では、このバンク数によって扱えるメモリモジュールの枚数が決まってきます。
例えば、メモリコントローラーが4バンクまで扱えて、M/B上にメモリスロットが4本あった場合
1バンクタイプ=4枚
2バンクタイプ=2枚
といった具合です。

また、体感できる差ではありませんが、容量の少ないメモリを多く挿すよりも、大容量のメモリを挿した方が電気的なロスが少なくなります。

後は皆さんも言ってるように、古いマザーのメモリコントローラーだと、大容量チップを認識できないこともあって、片面の大容量メモリは使えなかったりします。

Qjava string 配列の使用メモリ

String[][][] arg = = new String[x][x][x];
でxが638の時にjava.lang.OutOfMemoryErrorになってしまいます。
VM起動時のヒープ最大値は1GBまで試しましたがダメでした。

このときargオブジェクトはどれだけのメモリを必要とするのでしょうか?

Aベストアンサー

このnewで作られるオブジェクトは、配列オブジェクトだけです。Stringオブジェクト自体は作られません。
なので、オブジェクトのサイズとしては、配列オブジェクトのサイズだけを考えればよいことになります。
(ちなみに、メソッド本体はクラスに1つあるだけで、作成したオブジェクトの数だけできるわけではないですから、オブジェクトを作ると、新たにメソッドの分のメモリが必要になるわけではありません)

さて、argオブジェクトのサイズですが、1つのオブジェクトへの参照を保持するのにまず何バイトが必要か考える必要があります。
32bitのJavaだったら、たぶん32bit=4バイトでしょう。
この配列の要素数はx^3個ですので、1つあたりが4バイトとなると、x^3 * 4 バイトのメモリが最低限必要ということになります。
もちろん、他にも多少メモリが必要でしょうが、xが大きいときのことを考えるわけですし、無視しても問題ないでしょう。

x=638の場合を計算してみると、638^3 * 4 = 1038776288 となります。
これは約990MB で、だいたい1GBです。
ヒープの最大値を1GBで試したということですので、計算と合っているのではないでしょうか。

このnewで作られるオブジェクトは、配列オブジェクトだけです。Stringオブジェクト自体は作られません。
なので、オブジェクトのサイズとしては、配列オブジェクトのサイズだけを考えればよいことになります。
(ちなみに、メソッド本体はクラスに1つあるだけで、作成したオブジェクトの数だけできるわけではないですから、オブジェクトを作ると、新たにメソッドの分のメモリが必要になるわけではありません)

さて、argオブジェクトのサイズですが、1つのオブジェクトへの参照を保持するのにまず何バイト...続きを読む

Q片面実装と両面実装の違いは?

メモリー増設したいと、思っているんですけど、【PC133】【SDRAM】
【256M】【CL3】【メジャーチップ】の片面実装と両面実装の違いは、
なんでしょうか。詳しい人がいましたら、教えてください。 

Aベストアンサー

>片面実装と両面実装の違い
メモリチップの数の違いです。
そして通常、片面だと1バンク、両面実装だと2バンクになります。

チップセットにはバンク制限が有る場合があり、例えば4バンク迄しか使えない場合、メモリスロットが4つ有っても、両面実装2バンクのメモリは2枚しか使えない事になります。

http://www.atmarkit.co.jp/fpc/pcmainterepair/pcmr003/pcmr003_03.html

http://wincustomizing.client.jp/memory-buy.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング