書き込み回数より怖い揮発性

気になる「自然蒸発」と「セル寿命」:USBメモリーは10年もつか

なぜ消えるのか、劣化するのか フラッシュメモリーの技術をひも解く


PC Online様に非常にすばらしい記事があったのでご紹介。
要点をまとめると、
・書き込み回数はフラッシュメモリの微小化ととともに減っている
・不揮発性能は今や10年もない(あるものもある。業務用途でも5年とかもある)

つまり、ついうっかり適当なフラッシュ製品を採用すると、寿命が先か揮発するのが先か・・・5年と持たないということになる。ウェアレベリングも最近では、サンディスクの消去をしない(イレースしないので寿命が来ないとうたっている)SSD(10年保証らしい)とかもあるけど、揮発性能は変わらない訳で、3〜4年に一回は再インストールをしたほうがよさそうだ。

ただ、気をつけなければいけないのは、フォーマットを行うとCFやSSDの全領域をOSに握られてしまい、ウェアレベリングができなくなってバッファ領域に寿命がきてしまうので、フォーマットは絶対に行ってはならないことかな。

サンディスクの10年保証はちょっと面白いですね。うまくいくといいなあ。

Windows Embededd

菱洋エレクトロ株式会社/マイクロソフト社Embedded製品/Windows Embedded Standard 2009!


菱洋エレクトロニクスさんのHPで”5分でわかるEmbedded”という動画が公開されています。大変わかりやすいのでご紹介を。動画は3っつあるんですが、これだけ見てるとまた混乱するので一度おさらいを。

Windows Embedded Standard 2009・・・Windwso Embedded(XPベース)の後継で、違いはSP3ベース
Windows XP Pro for Embedded・・・・Windows XP Proベースというかほとんど同じもの。

Windows7にもエンタープライズというのがありますが、あれが市販のWindows7とほぼ同じものということになります。ややこしいわ!!

私がWindows XP Pro for Embeddedと市販のWindowsXP Proとの違いで発見したのは、普通IDEのHDDで通信をしくじるとPIOモードになるのが市販品の動作ですが、どうやらこのエンベは上から順番にウルトラDMAを試していって、結果通信できたところに落ち着くという仕様があるようです。その他にも違いはありそうですね。ドライバとか。


また、Embeddedには専用のアンチウイルスがあまりないのですが、Mcafeeにそれらしいものがありました。東京エレクトロンさんが提供しているようです。

http://esg.teldevice.co.jp/product/mcafee/index.html

このページだとわかりにくいですが、ホワイトリストを使って登録したアプリだけを許すというような設定があるようです。詳しくわかったらまた記事にするかもです。

Windows Embedded の今後

【PC Watch】 マイクロソフト、Windows Embedded記者発表会を開催

今年から来年のQ2までに動きがあるようですね。
PC Watchさんの記事を読むとややこしくなってきたので、この際まとめておきましょう。

WindowsCE → WindowsCE6.0 R3 発売中 → Windows Embedded Compact 2010年第二クオーター発売
従来のWindows Embedded → Windows Embedded Standard 2011 組み込み機器向け(Windows7ベース) 2010年第二クオーター発売
Windows OEM FULL Embedded → Windows Embedded Enterprise(中身はほぼWindows7Windows7と同時発売

ややこしいですがちょっと補足を。
WindowsCEはコンシューマー向けと描いてありますが、いわゆるMIDなどのエンドユーザーが手にとって扱うデバイス向け。ご存知のとおりハードスペックは最も低くなります。Windows EmbeddedSSDで話題のEWFを搭載し、必要なコンポーネントを選択して構築する組み込み機器向け用OS。以前はXPベースでしたがWindows7ベースになるようです。今までのEmbeddedがいつまでサポートされるかが大きな問題でしょう。Windows OEM FULL Embeddedは私が便宜上勝手に名前つけましたが、XPでもDSP版のような商品がありました。業界ではFULL Embededdとか呼ばれてました。これも私の勝手な予想ですが、これが置き換わりEnterpriseになるのかなと。(Embeddedは少量生産にはライセンスの都合で向かないため、組み込み用途向けに売られていたOSです。中身はほぼDSP版と同じですが、細かいバージョンなどがあり、多少違うようです。ベースはEmbededdなのかXPなのかわかりません)
すべてにおいてWindows7ベースとなるため、組み込み用途として本格的なOSの移行が必要になってきたかなと感じますね。

しかし、アプリケーションから見るとこれは全部違うOSです。いやはやOSの移行のための簡単なツールでも出してほしいと心底願いますよ。(実際はアプリケーションによって環境がすべて違うので・・・・まあ・・・・無理・・・・かな?)

SSDの寿命

http://pc.watch.impress.co.jp/docs/column/hot/20090420_127747.html
いよいよ本格的に普及してきた感のあるSSD。そのデバイスであるフラッシュROMの仕組みをPC WATCHで分かりやすく説明しているので、ここでも要点をまとめておきます。また、私の実験で寿命がくるまでSSDを酷使した時、一体どうなってしまうのか?を行ったので、簡単ではありますが、記載しておきます。

1.フラッシュROMの構造
フラッシュROMの構造というか、いわゆるEEPROMの構造についても元麻布さんの記事にありましたので、ご紹介。


図1はNANDフラッシュチップの構造だが、左の「POLY1 FLOATING GATE」と呼ばれる部分に電子を注入したり、抜いたりすることでデータを保持する。FLOATING GATEに電子がない状態が1、電子を注入した状態が0だ。注入した電子は、Tunnel Oxideと呼ばれる酸化膜(絶縁膜)により、電源を落としても保持される。ところが、FLOATING GATEに電子の注入と抜き取りを繰り返すと、このTunnel Oxideが劣化していく。そして、ついには注入した電子を保持できなくなる。これが書き換え可能回数に上限が生じる理由だ。


要するにFETのゲート電極に絶縁体で挟まれた電極を用意し、書き込む時そこに電荷を注入することで(その時電子が絶縁体を通過する程度の電圧を加える。通常の読み出し時では通過できないので一度注入された電子は保持される)”1”を書き込むことができる。電子を同じ容量で抜き取れば”0”となる。この絶縁体に電子が何度か通過するたびに絶縁性が劣化することで寿命がやってくる。

よく寿命は何回とか言っているが、実は書き込み時にここの部分を何回書き込んだことかで決まるわけだが、フラッシュROM全体として見た場合、そう簡単ではないらしい。


2.書き込みとイレース方法

この書き換え可能回数の問題をさらにややこしくするのは、ERASEとPROGRAMでその単位が異なることだ。NANDフラッシュでは基本的に ERASEはブロック単位、PROGRAMはページ単位となる。実際のページサイズやブロックサイズはNANDフラッシュチップの容量、種類等によって異なるが、一番シンプルな例として2GbitのSLC NANDフラッシュチップを例にとると、ページサイズは2KB(2,048bytesのデータエリアと64bytesのスペアエリアで計 2,112bytes)、ブロックサイズは64ページ(2,112bytes×64)、1チップが2,048ブロックで構成されており 2Gb(64×2,048=131,072ページ)ということになる(図2)。

データをPROGRAMする場合は1ページ2KBが最小単位、ERASEする場合は64ページが最小単になるわけだ。一般にSLCチップの書き換え可能回数は10万回、MLCチップの書き換え可能回数は1万回と言われる。ブロックを消去して書き込むというサイクルを行なうごとに、1回づつ書き換え可能回数が減っていくと考えられる。


この話誤解しそうなので、もうちょっとスマートにしますと、つまりプログラムからライトしようとする単位は2KBなんだけど、実際にフラッシュROMにデータを書き込む時は必ずイレースする必要があるので、一度書き込もうとすれば上記例だと64ページ分、約128kbyteを一度に書き込むことになります。


たとえば1度データを書き込んだことのあるブロックのページ1とページ2を書き換える場合、必要な2ページ分だけを更新するだけでは済まない。書き換えが行なわれない残りの62ページ分のデータを1度コントローラ上のバッファ等に読み込み(図3)



更新する2ページ分のデータを組み合わせて、新しい1ブロック分のデータを作成、その後当該のブロックをERASEして、バッファ上のデータをERASE済みのブロックにPROGRAMするという手順を踏まねばならない(図4)。この例の場合、2ページを書き込むのに32倍の64ページを書き込む必要があったことになる。

要はプログラム上では小さなファイルを書いているつもりでも、フラッシュROMの上ではごっそりと書き換わっていて、確実に寿命が減っていくというような仕組みとなっているのである。このイレースするのに必要なページが小さければ小さい程寿命が伸びると言える。

この32という数字をWrite Amplificationと呼ぶ。1ページの書き込みに32ページの書き込みが必要になる(つまり32倍の速度で書き込み可能回数が減っていく)というわけだ。一般には書き込む単位が小さければ小さいほど、Write Amplificationの数字は大きくなり、それだけNANDフラッシュの書き換え可能回数が減っていく。

また、チップセットのメーカーによってちらし具合を工夫しているものもある。

Intelは自社のMainstream SSDをモバイル用途に用いた場合のWrite Amplificationを1.1、ウェアレベリングアルゴリズムの効率を1.04とする(図5)。従来の他社製SSDのWrite Amplificationを10、ウェアレベリングアルゴリズムの効率を5としており、MLCであってもIntelのMainstream SSDの寿命は、従来型のSLCタイプSSDの4.3倍に達するとしている。

さて、元麻布さんがSSDを長持ちさせるにはどうしたらいいかといった記事も書いているので、ここに貼っておきます。

http://pc.watch.impress.co.jp/docs/column/hot/20090423_152989.html

フラッシュROMにおいてイレースとは全てに”1”を書き込むこと。らしいのですが、では寿命がきてしまったブロックはどうなるのでしょうか?先程電荷をためた状態を”1”といいましたが、どうも寿命を迎えると”その値から書き換わらないROMになる”みたいです。つまり、一度イレースして寿命がくると、そのブロックには”1”が書かれたROMとなるというわけです。つまりDATAファイルで寿命が来て、これを読み出すと、”FF”とか”99”とかようは最大値の値になっている可能性が高い。というわけです。もちろんビットマップや動画データで全て”1”などは自然界ではないので、ベタな白とか壊れた画像とかになっているんではないかと思います。
また、こうなってしまっても、Windowsから見ればちゃんとエラーなく読み出せます。まあつまりエラーとして検出できないというわけです。何を書いたか、読み出したデータが等しいか、それを検証しないと寿命が来たことはOSには認識できません。OSの構成ファイルで書き換えを行わないようなシステムファイルは壊れないままですから、OSが起動できなくなるといった不具合も殆ど発生しないようです。ただし、レジストリを常に更新するような使い方だと壊れてしまう可能性があります。
このあたりが問題をやっかいにしているのかもしれません。

次世代(次々世代か?)Intel CPU "SandyBridge"

http://northwood.blog60.fc2.com/blog-entry-2952.html

画像ソース>Intel’s Sandy Bridge CPU Architecture Unveiled

IntelCore2Duoの後継となるといったら間違っていますが、顧客側から見たら正にあの時のあの衝撃をもう一度といった感じのCPUが出ています。ぱっと見は一つのダイにCPU×4、GPU×1(グラフィック)、L3キャッシュ、ノースブリッジ(高速用のI/Fコントローラー)がSoC(システムオンチップ)で乗っかっています。まあつまりこれとメモリさえあればPCが出来てしまうということですヨ。
ですが、今のCoreiシリーズでも似たようなものなのでこのCPUが注目されるポイントにはなりません。Core2Duoを作ったイスラエルチームはそのアーキテクチャに定評があり、今回のサンデーブリッジも中身がすごいのではないかと期待されています。新命令AVXとか。それと、元々モバイル系が得意なチームだけに、消費電力は少ないんではないかというのがポイントですね。スタートはTDP85Wということですが、ここからクロックは上がっていき、TDPは下がっていくんだと思います。今のCorei7は下手をすると180Wを超えるらしいですからねえ。

次のOSWindows7で64bit化が進み、それに適応したCPUが売れるという構造は今からでも容易に想像できますね。

Tegraに進捗。いよいよ発売か

http://pc.watch.impress.co.jp/docs/news/event/20090603_212273.html

nVIDIATegraに少し進展があったようです。
ベンダーの名前にAdobeや日本のキャリアーが加わったみたいですね。

Tegraとは、nVIDIAが提唱したARMベースのPCアーキテクチャで、特徴はGPUを搭載しつつ低価格で低消費電力であること、GPUを3Dゲームを目的としたものではなくて、HD動画の再生や各種アプリケーションのサポート用(CUDA)を考えたものである、ということです。


NVIDIAが1万円以下で高性能なモバイル端末を実現できるプラットフォームを発表、HD動画も再生可能に

NVIDIA Tegraベースのネットブック elan、重さ836gでHD動画10時間再生

これがどのくらいインパクトがあるかというと。。。

売りの低消費電力は一般的な利用で50mW、動画再生で150mW (「市場にあるほとんどデバイスの数分の一」)。あるいはHD動画の連続再生で5 〜 10時間、ディスプレイを消した状態での音楽連続再生ならば最大で24日 (!)という単位を間違えたような数字が挙げられています。

150mW.....す、すごい。
しかもポイントはAdobe前面協力によるFlashの最適化です。
今のx86系PCのGPUを使った動画アクセラレートは動画再生をフルスクリーンにしないと使えないなどといった制約があり、いくらネットブックに9400や3200を搭載したところでブラウザ上の動画はサポートしてくれません。(Youtubeなどでフルスクリーンにすると効きます)
ところがTegraFlashそのものをアクセラレートするようで、最初のリンクにある通り、フルスクリーン化していないYoutubeのHD動画を難なく動かしているようです。


気がつくとサブノートは全てTegraになっていたなんてことは....ないですか、そうですか(笑)
でも、家電に組み込むにはいいかもですね〜

Windows 7に「Windows XPモード」、仮想環境で提供

http://internet.watch.impress.co.jp/cda/news/2009/04/27/23290.html

何かと話題のWindows7ですが、その機能の中でWindowsXPモードを追加するそうです。但し仮想環境とのことで、仮想環境ソフト「Windows Virtual PC」のもとで動作するWindows XP環境として提供されるとのこと。つまりヴァーチャルPCを走らせた上で動作ということになりそうですね。ただ単に互換性の問題だけでマシンスペックを要求しないのであれば、これでもいいのかもですね。

Microsoftでは、Windows 7 ProfessionalとWindows 7 Ultimate向けのWindows XPモードとWindows Virtual PCのベータ版を近々公開する予定だとしている。

実用性あるのかなあ.....