Windows Embedded テクニカルセミナー

Microsoft主催のセミナーに参加してきた。
会場は目黒雅叙園。いろいろと無駄に豪華だ…


セミナーは4パート。
Windows Embedded CE 製品概要」
「BSP開発:ブートローダーからドライバ開発まで」
Windows Embedded CE 6.0 R2 での新しい機能を動かす」
「CE 6.0のシステムパフォーマンス最適化ノウハウ」


技術的には最後のが一番面白かった。まあ大体の内容は知ってるので復習になるわけだが…。Call Profilerだけは使ったことがなかったので今度機会があったら使ってみようと思う。
全体的にプレゼンもすばらしかったのだが、ただ1点だけ残念だったのは物理メモリが最大512MBまで搭載できるような(誤解を与えかねない)説明だったこと。説明としてはウソはついていないのだが、あの説明では詳しくない人が聞いたらWindows CEではメモリが512MBまで積めると勘違いしてしまいかねない。



Windows CEで物理空間は512MB Maxというのは正しい。これはCE 5.0以前から同じであり、CE 6.0でも変わっていない。この制限は、Windows CE物理アドレス−仮想アドレスの静的マップ用の仮想アドレス帯として 0x80000000〜0xA0000000 の512MBしか管理できないことに起因する。


但し、これはRAMが512MB Maxという意味ではない。この物理空間には、RAMの他、CPUのI/O空間やROM領域など全てを収めなければならない。デバイスとして動作を行うためにはI/O空間やROMが必須となるわけで、これらを最小限にしたとしても64MBくらいは必要だろう。PDAのような高機能デバイスを想定した場合は更に必要で、128MBとか256MBがI/O空間として必要になる。そうすると、RAMのために空けられる領域はせいぜい256MB〜最大でも384MBくらいだ。


講師のレベルから考えてこれは知っているはずであり、もうちょっと誤解のない説明にして欲しかったところ。
たぶん、物理メモリ⇔物理アドレス(物理メモリ空間)、仮想メモリ⇔仮想アドレス(仮想メモリ空間)の用語の使い分けがあいまいだったことが原因だろう。メモリという言葉を使ってしまうとどうしてもRAMに結びついてしまう。RAMに限定されないという意味でアドレスという言葉を使ったほうが誤解がなかっただろう。