[8869]  Ra20/N30の最大メモリー搭載量は?
投稿者:いーとん さん   2000-09-05 17:06:36
先日 128MB FP P有り SIMM の自作について報告しましたが、もう一組 EDO ECC 265MB(128MBx2) SIMM を自作しまして Ra20/N30 に搭載しました所、無事 512MB を認識しました。
☆440FX の仕様書上では 1GB をサポートしている事になっていますので、SIMMスロットを増設すれば更に行けるのか? と言う興味がありますねぇ(笑

気になる点)
128MBx2 を挿した時には Win98SE のシステムのプロパティで 256MB認識となっているのに 128MBx4 の時には 511MB認識となる事です。
128MBx2 + 64MBx2 = 384MB と認識されていますので 511MB以降の領域にはアクセスできないのか? 等とも考えていますが...私には良く解りません(爆
  1. SARAYA さん   2000-09-05 18:28:49
    >511MB認識となる事です

    16MBシステム空間の使用の有無はどうなんでしょうか?
    やっぱり”使用しない”でも511MBなのかなぁとかとか
  2. いーとん さん   2000-09-05 19:22:08
    > 16MBシステム空間の使用の有無はどうなんでしょうか?
    聞かれると思いました(笑
    128MBx2 の時は 256MB認識と書いた様に 16MBシステム空間は使用しない設定になっています。
  3. まりも さん   2000-09-05 19:45:25
    PnPによって割り当てられる、PCIデバイス(ビデオカードとか)のアドレスが、2000_0000hからというアルゴリズムなんですよね。この値は512MBですから、512MB以上に増設しても、そのようなPCIデバイスを再configurationしてやらないと、512MB以上の空間が使えなかったりするかもしれません。
  4. いーとん さん   2000-09-05 20:06:58
    > PnPによって割り当てられる、PCIデバイス(ビデオカードとか)のアドレスが、
    あ、ホントですね(汗
    メモリアドレスを実メモリ領域の何処に当たるかなんて普段考えていないものですから ←ダメダメ
    VDB16 は結構後ろのアドレスを使っていますねぇ。
  5. まりも さん   2000-09-05 20:27:27
    実はこの問題はPC/ATでも発生しているようです。あちゃらは一枚256MBのDIMMなんぞを4枚も載せられますからねぇ。マザーのPnPも考えてなかったほどのメモリを入れられるようになってしまったということです。
    ところでもう一つの問題、なぜ512MBでなく511MBなのかってのがやはりよく分からないです(汗。
  6. chiki さん   2000-09-05 23:20:45
    >なぜ512MBでなく511MBなのかってのがやはりよく分からないです(汗。
    0000_0000hから1FFF_FFFFhまでと言うことではないですか?
  7. いーとん さん   2000-09-06 00:43:55
    > 0000_0000hから1FFF_FFFFhまでと言うことではないですか?
    小数点以下が切り捨てになっていればそうですね。
    (切り上げは無理が有るから当たりのような気がしますね)
  8. まりも さん   2000-09-06 00:46:32
    しかしそれだったら128MBのときにも同じなので...ちゃんと128MBと出ますよね?
  9. いーとん さん   2000-09-06 01:33:31
    再度確認してみました。(うぅ、メモリカウントが遅い=512MB)
    512MB 実装の起動時メモリカウントは 640KB + 523264KB ですから 512MB を認識しています。
    それに対して Win98SE のシステムのプロパティは 511.0MB です。(小数点が有りますねぇ)
    試しに HDBENCH やその他の物でメモリ量を見ると 535814144Byte=510.992MB となっています。
    (384MB 実装時には 401735680Byte=383.125MB で 384MBと表示されています)
    ☆余計にわからなくなったような(笑
  10. たまちゃん さん   2000-09-06 01:35:33
    0000_0000h〜 1FFF_FFFFhで 2000_0000 Bytes です。
    (0〜Fは16個、00〜FFは256個ですから)
  11. たまちゃん さん   2000-09-06 02:21:48
    ちょっと訂正 2000_0000h Bytes でした !!( = 512MB)
    ゴミレスでした (^^;;
  12. まりも さん   2000-09-06 06:49:25
    512MBも入れているのに、たった1MBが気になってしまう我々(笑
  13. chiki さん   2000-09-06 12:42:16
    >0000_0000h〜 1FFF_FFFFhで 2000_0000h Bytes です。
    >(0〜Fは16個、00〜FFは256個ですから)
    はいそうですね。多分、98のメモリカウントもアドレス
    0000_0000hを1byteとカウントしているでしょう。
    ちょっと言葉が足りませんでしたが、自分はアドレスのつもり
    で0000_0000h〜1FFF_FFFFhと書きました。
    なので、128MB時は、98内部では128M+1byteとカウントが
    なっているのではないでしょうか?これと、Windowsの
    メモリ計算がメモリの存在しているアドレスを見ているとすれば
    128MB時等は正常で、512MB時はアドレス2000_0000hが他のもの
    に割り当てられているので、511MBなのではないでしょうか?
    小数点の関しては、端数を嫌う人と小数点が無い文句言う人が
    結構いるので、切り捨てて表示しているのではないでしょうか?
    (切り上げるとそれもまた問題になる)それに、そこまでの精
    度が必要とも思えませんし、1MB以下の端数が出るのはほとんど
    無いのではないでしょうか?
    >HDBENCH やその他の物
    これに関してはプログラマーによってアルゴリズムが違ってく
    るのでなんともいえないです。
    好き勝手に書いてますが、とりあえずこれが、私の推測です。
  14. muine さん   2000-09-06 21:56:55
    Rv20で64MBx8枚だとWin98(無印)のシステムのプロパティで
    普通に512.0MBと表示されています。
    何が原因で違うのかはさっぱりわかりませんけど、
    何だか気になります。
  15. まりも さん   2000-09-06 21:58:11
    メモリ量に関するWindowsAPI自体が、あいまいな値しか返さないという話を聞いたことがあるんですが、どうなのでしょうね。
  16. dtx さん   2000-09-06 23:18:26
    搭載されている物理メモリ量を取得するAPIはなくて(たしか不正確だとか。隠しや現在では、正確なものもあるかもしれませんが)、
    アロケート可能メモリ量と、現在使用中のメモリ量、スワップ量等から計算して物理メモリ実装量を算出している
    とか聞きました。そう考えると数値的には出てこない部分や、スワップしている量が動的なため不正確だったり、
    ページサイズで丸められたりしている部分で誤差が生まれているかと…
  17. まりも さん   2000-09-06 23:58:00
    config.sys中に ramdrive.sys なんぞを書いてRAMドライブのためにメモリを消費しておくと、案外その分だけ少ない容量を返しそうですね。結局搭載メモリ量をきちんと知っているのは、himem.sys起動以前のBIOSのワークエリアだけなのかも。
  18. いーとん さん   2000-09-07 00:45:58
    > Rv20で64MBx8枚だとWin98(無印)のシステムのプロパティで
    > 普通に512.0MBと表示されています。
    Win98 と SE で差が有るのかな?
    と言っても Win98 のパッケージが無いので入れようも無いのですが(笑

    > そう考えると数値的には出てこない部分や、スワップしている量が動的なため不正確だったり、
    > ページサイズで丸められたりしている部分で誤差が生まれているかと…
    可能性は有りますが HDBENCH 等で表示されるメモリー量は何時でも一定ですからねぇ。

    ☆この現象により何が有る訳でもないんですが...何となく気になります(笑
  19. にゃんきち さん   2000-09-07 15:02:42
    物理メモリ量を取得するものとしてWin32APIにGlobalMemoryStatusというのがあります。
    メモリ128MBでこれを実行すると、133578752バイト(16MB空間使用しない)、132534272バイト(16MB空間使用する)でした。
    これらに 655360バイト(640KB)を加算してMBを求めると正確な値になりますね。

    同APIを使ってメモリサイズを求めるものを作りましたのでよろしければ使ってみてください。
    http://www.ds.is.sci.toho-u.ac.jp/GetMemSize.zip
  20. いーとん さん   2000-09-07 17:21:31
    実行してみました>GetMemSize
    結果は同じで 535814144Byte の値が返されてきます。
  21. にゃんきち さん   2000-09-07 19:15:37
    だめでしたか...返される値もなんだか半端ですし謎ですね^^;