アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ソースを見ろ -- ある4桁UID
我々はまだ32bitをしゃぶり尽くしていない (スコア:2, 参考になる)
漏れはそれがイヤで、FM-TOWNSという迷機を買って、High-Cという迷コンパイラで32bit環境を楽しん
Re:我々はまだ32bitをしゃぶり尽くしていない (スコア:1)
すぐに限界を見せてくれるアプリケーションが登場して、移行を促すようになると思います。
Windows XP Pro x64 の仮想メモリページサイズは 4KB? (スコア:4, 興味深い)
Platform SDK の ドキュメント [microsoft.com] を読むと、x64/Windows は互換性を重視して仮想メモリのページサイズは 4KB / page で行くようです。 広いメモリ空間をじゃかじゃか使うプログラムを書くと TLB ミスが足を引っ張って性能の出し切るのが難しそうですね。
# 4KB/page は細かすぎるよ。
IA-64 の Windows 2003 はデフォルトが 8KB/page で、Advanced Server (AS) 以上では 16MB/page への変更が可能でした。おそらく x64 でもページサイズの変更が可能になるのは、2003 AS 以上になるのではないでしょうか?
コンタミは発見の母
スワップしたら負け、の時代じゃないのですか? (スコア:1)
HPC でもスワップしないようにとか。
ギガのメモリモジュールでいっぱいに。
Re:スワップしたら負け、の時代じゃないのですか? (スコア:2, 興味深い)
触りだけを簡単に言うと、
仮想メモリのページサイズは論理アドレス空間に物理メモリを何バイトづつ割り当てるかという単位です。ページサイズが小さくなると同じサイズのメモリも細かく分割することになり、ページ数が増えます。
ページ数が増えると論理アドレスから物理アドレスへの変換表が大きくなります。アドレス変換表はメインメモリ上に構成されるのですが、CPU は TLB と呼ばれる機構に変換表の一部をキャッシュします。IA-32 系の CPU だと TLB は 64 ~ 512 エントリぐらいです (1エントリが1ページ分の変換ルールを記憶できる)。ページサイズが小さいと扱うページ数が増え、TLB ミスが増大します。そして、TLB のミスヒットは、メモリキャッシュのミスヒットよりもペナルティが大きいです。
広大な実メモリを積んだシステム、たとえば 64GB のメモリがある場合、ページサイズが 4KB/page なら 16,777,216 ページあります(しかもプロセス毎に変換表はある)。TLB はミスしまくりは必至です。これが仮想メモリのページサイズが 16MB/page ぐらいになると、ページ数は 4,096 ページと減り、TLB もヒットしやすくなります。
無論、仮想メモリを使わなければこのオーバーヘッドは解決すると思いますが、HPC 分野でも仮想メモリを使わないというのは難しいのではないでしょうか?
# 通信ライブラリの内部とか例外チェックの効率化とかで仮想メモリの仕組みを使っているかもしれない。
<おふとぴ>MacOS 9 の仮想メモリは 論理アドレス空間がシステムに 1 つしかなく、プロセス(インスタンス?)単位のメモリ保護がない機構だったはず。</おふとぴ>
コンタミは発見の母
Re:スワップしたら負け、の時代じゃないのですか? (スコア:0)
Re:スワップしたら負け、の時代じゃないのですか? (スコア:0)
でしたっけ?>Mac(System7 の頃からだっけ?>仮想メモリ)
# OSX でも off に出来るのかなぁ?
Re:スワップしたら負け、の時代じゃないのですか? (スコア:0)
MacOSXではoffにできません。
#コメントへのフォローの上にそれだけなのでAC
Re:Windows XP Pro x64 の仮想メモリページサイズは 4 (スコア:0)
Windows XP みたいなインタラクティブ向け OS だと、絶対性能が高くなったとしても印象悪いんじゃないかなあ。
Re:Windows XP Pro x64 の仮想メモリページサイズは 4 (スコア:2, 興味深い)
1. 同じメモリサイズを少ないページ数で割り当てられるので、ページ割り当て・解放の回数が減る。
2. TLB に対するプレッシャーが減り、TLB ミスが減る。
現在の Windows には仮想メモリを 10 MB 以上使うようなプログラムはざらにあります。
# 今、ここを見ている Netscaspe は 27MB も消費しています。単純計算で 4KB/page だと 27MB は 6912 ページです。
さすがに 16MB/page はコンシューマー用途では無駄が多いと思いますが、ページサイズを 16KB/page ~ 512KB/page ぐらいにすると IA-32/Windows でも高速化が期待できるのではないでしょうか?
コンタミは発見の母
Re:Windows XP Pro x64 の仮想メモリページサイズは 4 (スコア:0)
キャッシュミスのペナルティがむちゃくちゃでかいのね(^^;
冗談抜きで、大きくするなら2次キャッシュもできれば3次キャッシュも大きくしてね。
Re:Windows XP Pro x64 の仮想メモリページサイズは 4 (スコア:2, 参考になる)
x86/Windows は仮想メモリのページサイズは 4,096 バイト。
キャッシュのラインサイズは Pentium Pro 系が 32 バイト、Pentium4 が 128 バイト。
コンタミは発見の母
ページサイズ (スコア:0)
>ページサイズを 16KB/page ~ 512KB/page ぐらいにすると IA-32/Windows でも高速化が期待できるのではないでしょうか?
Solarisのはなしですが、Solaris9からページサイズ可変
Re:Windows XP Pro x64 の仮想メモリページサイズは 4 (スコア:0)