階層化するメモリ

http://pc.watch.impress.co.jp/docs/2007/0904/kaigai383.htm
 フラッシュメモリがHDDディスクとの間にキャッシュとして入るというのだけど、どうかな?と思う。他のキャッシュと違い、フラッシュメモリでは部品数を増やす必要がある。よほど効果がないと標準化しないと思うけど、現在はベンチマークで差が見られない。Vistaにはアクセス頻度のたかいデータをメモリに載せておく機能があるためだ。
4G程度のメモリは安価に入手できるので、20G以上くらいの容量がないと効果がないだろう。そうするとHDDが1T超えるくらいで、隅々までアクセスすれば効果があるかもしれない。サーバーなら効果がありそう。
 と、ここまではシングルタスクの話。タスクが複数が走るようになってキャッシュの意味が変わってきたのかな。シングルタスクのキャッシュではレイテンシを減らすことが重要だった。しかし、マルチCPU、マルチタスクになると低帯域の装置にアクセスが集中するのを避けることが目的となるようだ。例えばCPUの3rdキャッシュはメモリの半分くらいのレイテンシがある。シングルタスクなら大容量であったとしても、さほど効果が望めない。そういう意味では広帯域、大容量のキャッシュが望まれているのかな。
 フラッシュメモリは、レイテンシが低いけど帯域はHDDと大きく変わらない。それと、読み込みのみ機能しているんい加えて、(公開されて無いけど)フラッシュメモリとHDD同時にアクセスされていると帯域削減にならない。キャッシュとして理想的ではないかもしれない。

http://pc.watch.impress.co.jp/docs/2007/0910/kaigai384.htm
 自分は64bitOSが普及することを前提にしていた。ところが、上記の文では32bitOS(<3GB windows), 1TBのHDDを想定しているようだ。32bitOSということなので、家庭用/事務用のPCの事だろう。ここから見えるのは、古いプログラムを使い続けている実態だ。プログラムがHDDへの書き込み、読み出しを非同期に変更されていれば、ここまで問題が拡大することはなかっただろう(MS Office)。機能的に新しくならなければ、ユーザーは新しいソフトを買わないので、0から作り直すのが難しいということじゃないかな。独自フォーマットのものも多いので、他社の製品も使い難い。PCのソフト資産の新陳代謝が低下し、徐々に古びてきていることを暗示しているようだ。
 こうなると未完で終わったVistaスクリプト言語ができていたら、アーキテクチャの変更にも対応しやすかったかも。新しくプログラムを作ることになるし、生産性が(特にプログラムアーキの大胆な変更が)可能だったかも。IronRuby+GUIライブラリと手もあるが、商用には使い難い。
 このままだと、新しく作られたwebアプリケーションの方が使いやすくなるという逆転現象が起こるかもしれない。仮に記憶媒体の利用を現代風にが非同期に行うとしても、手持ちのHDDもwebにアクセスも大差がなくなる。こうなるとユーザー側はwebアプリケーションと区別がしなくなり、ハードをアップデートする理由が少なくなるだろう。このあたりは、もう起きている現象なのかもしれない。そのうち計算もwebに移行するのが当然に思えてくる。
 まとめると、PCのイメージが間違っているとおもう。

  1. フラッシュの載せて1-2万円値段が高くなるなら、有料のwebアプリケーションを契約したほうがよい。
  2. 1TのHDDは普通の家庭ではいらない。必要な容量を考えて64GくらいのSDDが安ければ、こちらのほうが人気でそう。
  3. 未完で終わったVistaスクリプト言語ができていたら、アーキテクチャの変更にも対応しやすかったかも。
  4. Macの方が過去のしがらみが少ない分、性能が良くなったりするかも。