アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日々是ハック也 -- あるハードコアバイナリアン
今の今まで知らなかったorz (スコア:0)
というかそもそも積めるようにもなってない、
…と今の今まで思い込んでいました orz
CPU側にもPC側にも色々あって、32bit以上を積めれる奴もあるんですね。なるほど。めもめも。
あと似たような話として先日知ったのが、
スワップファイルのサイズは32bitぶんを超えれないんですね。
てっきり認識できるディスクの範囲なら際限なく殖やせるんかと思ってた。
(つまり十分高速なRAMディスクがあれば際限なくウハウハだと)
Re: (スコア:3, 参考になる)
# BSDでどうなっているかは、今動くマシン持ってないので不明。でも多分同じ様な設定はあるでしょう。
たしかx86にはセグメント:オフセットの様な方式でシステム全体で扱えるメモリサイズを増やせるモードがあって、上記の設定はコレを使うようにしているはずなんだけど、このRAMDISKドライバもそこら辺をうまく使えるようにしているのかな?
ここは自由の殿堂だ。床につばを吐こうが猫を海賊呼ばわりしようが自由だ。- A.バートラム・チャンドラー 銀河辺境シリーズより
Re: (スコア:2, 参考になる)
歴史的には(16ビット時代)x86は16ビットのレジスタ二つを4ビットずらして加算することで20ビットのアドレッシングを可能にしていましたよね。(4ビットずらして加算する方がセグメントレジスタ、アセンブリだとCS:とかDS:とかES:とか書くやつ)。それがそのまま32ビットになったので、IA32のアドレッシングは、32ビットのレジスタを4ビットずらして加算することで36ビットが可能で、アドレッシング可能な空間は36ビット = 64GBな訳です。
Best regards, でぃーすけ
Re: (スコア:0)
Re: (スコア:0)
Z80しか知らない私にはどこがでたらめかよく分からないので
正しい事実が知りたいです。
Re:今の今まで知らなかったorz (スコア:2, 参考になる)
IA32はアーキテクチャ上の、ソフトウェア側から見たメモリアドレス空間は4GBしかありませんが、
MMUによってこの仮想メモリ空間と、実際のメモリアドレスとの対応を取るようにしています。
たとえば、12345678 番地へのメモリアクセスをしようとした場合、
上位20ビットがページ番号で、下位12ビット(4kバイト)がページ内のアドレスになります。
つまり、これは「ページ12345」の「678番地」へのアクセスです。
もし、ページテーブル12345番の値が9abcdだったとしたら、ソフトウェアから見た「12345678番地」へのメモリアクセスは
実メモリ「9abcd678番地」へのアクセスとなります。これがMMUの仕組み。
元々のIA32では、このページテーブルは20ビットのデータしか持ってませんでしたが、
ページテーブルが20ビットより多くのデータを持つようになっていれば、実メモリは4GB以上にアクセスできるわけです。
IA32にそういう仕様拡張を施したのがPAEです。
PAEの場合、ページテーブルのデータが52ビットに増えているので、MMU変換後の実アドレスとしては52bit+12bit=64bit=16エクサバイトのアドレスが指定できます。実際には、そこまでの大きさのメモリを管理できるだけのページテーブルを作ることができませんし、そもそもCPUから出ているアドレスバスが36bit=64GB分しかありませんけど、アーキテクチャ的にはそこまで拡張されてるってことです。
Z80時代の人なら、MB-S1 とか、MZ-2500 を想像すれば分かりやすいかな。
CPU自体はソフトウェアアーキテクチャ的に64KBしかアクセスできませんが、
MMUを通すことで512KBもの広大な実メモリ空間を実現しています。
Re: (スコア:0)
Re: (スコア:0)