Fast Booting Translation

瞬間起動に関する一考察

はじめに Introduction
近年、デジタル情報機器の普及に伴い、 In recent years, with the spread of digital information equipment, 起動時間の大幅な短縮に関する研究が行われております. research is being conducted to drastically reduce the startup time of products. 最近の高機能化競争に伴い、起動時間は非常に長くなっているので、 Startup time is very long...(recent performance race??) その短縮が重要なのは当然です. Short course is very important. さらに、最近は、MRAMなどをつかい、 Moreover, recently, MRAM (has recently been introduced) まったく瞬間的に起動する技術もあります. This technology does not start instantaneously. これは、単に起動が高速になるだけではなく、 this is not just simply a fast start 高速な起動により、こまめな電源切断の負担を減らすため、 It is a fast start, while frequently cutting power to reduce the burden とりわけ、モバイル型デジタル情報機器にとっては、 In particular, mobile devices for digital information 消費電力の削減になります. need reduced power consumption. また、据え置き型の場合でも、待機電力の削減にも The deferred-type cases, the reduction of standy-by power 結びつきます. (???) 以上を考えれば、 Given the above 利便性と地球環境の双方により and the convenience of both the global environment 重要な研究課題といえます. this is an important research topic.

手法１ スリープモード 1. Sleep techniques
常に電流を流しておく方法を、仮にスリープモードと呼びます. One method of faster starting is to always keep the current flowing, even if sleep is called. この手法は、ビデオデッキなどでは一般的です. This technique is used for appliances such as VCRs. この場合、起動は非常に高速になりますが、欠点が二つあります. In this case, there is a very fast start, but there are two drawbacks: １. 待機電力が増える. 1. Standby power utilization is increased. ２. リブートは高速化されない. 2. A full reboot of the product is still slow.

手法２ サスペンド 2. Suspend methods
固定的なサスペンドイメージを用い、高速に起動させる. This method consists of using a permanent suspended image, with a fast start. ・・・って、サスペンド法で用語はいいのか？ Is suspend (the law?) a good term? スナップショット法、とかの呼び方もあるでしょうが、 This is sometimes referred to as snapshot boot. どうしましょうか. How is this done? で、このML的には、ソニーの神長氏がやってますし、 The ML, however, Sony seems to be doing this OK. 商用では、トライピークス社がやっています. 欠点は以下. The following are drawbacks: １. ブートのたびに、同じ状態に戻ってしまう. 1. Every time you boot, you return to the same state ２. 同一ハードでないと動かない. 2. And not the same hard work (??)

[２] の欠点のため、通常のPC等には不向きで、 情報家電向け手法といえます. This drawback makes this technique unsuitable for PCs and consumer electronics devices.

手法３ CD-ROM ブートの高速化 3. An approach for faster booting of CD-ROM
手法はいろいろあります. There are lots of techniques. 手前味噌ですが、弊社の MACH BOOTが最速でしょう. The fastest one we know of, which our company wrote, is MACH BOOT. ちなみに、もっと高速化できるんですが、 Incidentally, there is more speed 皆さんの反応からすると、 but the reaction from folks 高速化よりも機能性などの追及のほうが重要っぽいです. 利点： ・ほぼ完璧なPnPを瞬間的に実行. ・CD-ROMなので、プレスによる大量配布が可能.

手法４ 不揮発性メモリの利用
MRAM/FeRAM などとロジック回路を組み合わせ、 突然電源を落としても今までの状態が保てるようにする. 最近出てきた方法. というか、これの実用化の可能性が見えてきたので この駄文を書いている. ただし、その結論は、「あまり意味はない」となるんですが.

瞬間起動の使用状況
ここで、「使用状況」という用語を使うのが正しいかわかりませんが、 ようは、どういったときにどういった連中が何のために使っているか、 というような極めてマーケティング的な話です. で、これ、マーケティング用語として正しいんでしょうか. とりあえず正しいとして話を続けます. とにかく、このマーケティング的な話が重要なんです.

瞬間起動の使用状況 デジカメ編
たとえば、デジカメを考えます. シャッターチャンスを逃さないためにも、瞬間起動は重要だと思います. でも、べつに0.01秒で起動する必要性はないわけですよ. すくなくとも、全機能が0.01秒で起動する必要性はない. デジカメの場合、CCDの出力がファインダー液晶に写るようになる （なんていうんだ？）までの時間は早ければ早いほどいい. 0.01秒とかなら最高. でも、マスコミの記者とか、特殊な職業じゃないかぎり、 シャッターを押せるまでの時間がそこまで短い必要性はない. 1秒かかってもOK. ましてや、全機能が瞬間的に使える必要性なんて全然ない. コンフィグのメニューなんて、起動に10秒かかってもOK. ようは、ファインダー出力の部分だけ瞬間的に起動するようにすればいい. で、これだけど、たとえその部分に何らかのマイコン制御を掛けていても、 その起動なんてすげぇ簡単だから、 瞬間起動なんて誰でも実装できる. ようは、実際の使用状況における瞬間起動は、 ぜんぜん難しくないんだ.

瞬間起動の使用状況 HDDレコーダー編
いま、もっとも瞬間起動が求められているのはこれかも. ようは、いまのHDDレコーダーって、実は、 Linux内蔵のある種のマルチメディアパソコン（笑い）なんだけど、 とにかく起動が遅い. 1分とか掛かるんだよ、信じられない. 原理的には、お皿の回転待ちとかを考えても、 VHSのローディングより高速にできるだろ？ 第一さ、HDDレコーダーってのは、 決定的瞬間を逃さず録画できる. 見たいシーンがすぐ見れる. そういったことがもともとウリだったんだから. じゃあ、何秒で起動させればいいか. 1秒か2秒でしょう. これ以上高速化しても、あまり意味はない. それとも、0.01秒起動だけど3割高い、 というHDDレコーダを買いますか？.

情報家電
ここでいう情報家電というのは、 たとえば、フラッシュROMに独自Linuxデスクトップ、Firefox、OpenOffice などがプレインストールされているIBM-PCであり、 そのプレインストールソフトでの利用しか前提とされていない点を除けば、 通常のIBM-PCと（ほぼ）同等のものをさします. 別の言い方をすると、昔のワープロ専用機の進化系です. まあ、企画案だけはどこのメーカーでも出まくってるんでしょう、多分. で、これなんですが、1秒か2秒でブートすれば十分でしょう. むしろ重要なのは、電源OFFにかかる時間で、 1秒でサスペンド（ハイバネ）して電源OFFとかだとおいしいですな. ようは、文書の保存とか考えなくても、 極端な話、いきなりコンセントを引き抜いても、 キャパシタで1秒間持たせて、そのあいだにサスペンドするとかさ. これはウケるよ.

PDA
ザウルスとかiPhone みたいなのね. これも、1秒か2秒で十分. 細かいことを言うと、 画面のレジュームだけは先にやるといいかも. ようは、前回電源OFFのときの画面が、 電源ONの瞬間に戻るとそれはそれでいいかも. なお、やり方はいろいろあるけど、 突然電源が切れるようにしてくれ！. しかも、電源ボタン長押しとかじゃイヤだ. スライドスイッチでオンオフできるようにしてくれ！！！. スライドスイッチをやたらカチャカチャさせても 何の問題もないようなやつがいい. 当然、文書作成中に電源を切っても、 作成中の文書は消えないのは当然. できれば、すべての状況がサスペンドされているようなやつね.

携帯電話
これもやはり1秒か2秒. 本当は、受け待ち状態への移行が瞬間的だと 省電力とかとも絡んで面白いんだけど、 電波を掴むのに必要な時間も考えると、 OSのブートとはあまり関係のない話. ただし、電話番号の入力だけは瞬間的にできるといいかも. 電源オンの0.01秒後から入力可能、みたいなのね.

すべてを高速化する必要性はない
以上の議論でわかるように、 0.01秒などの瞬間起動がすべての場合で必要なわけではない. どの程度の起動速度が必要なのかは、 ユーザニーズとコストのバランスを睨みながら 慎重に決定するとともに、 同じ起動速度をすべての部分に適用するのではなく、 部分部分で起動速度の目標を個別に設定する.

起動速度の高速化の限界
もちろん、MRAMなどを使えば、まったく瞬間なのだが、 たとえば、サスペンド法などを使っても、 実質的には非常に高速に起動させることは可能. なぜなら、サスペンド法を使った場合の起動時間は、 以下の３つに使われている. １、ハードウェアの安定化 ２、ハードウェアの初期化 ３、サスペンドイメージのロード [１]は、ようは、コンデンサがチャージされて パワーオンリセットされて、、、という時間ね. （これ、なんていうんだ？）. ここに関しては、べつにMRAMを使っても同じ時間はかかる. [２]だが、これをほぼゼロにすることは問題ない. 単に、設定レジスタに適当に値を入れていくだけ. IBM-PCとかでこれが妙に時間がかかるのは、 PnPがあるうえに、奇妙なワークアランドの関係で 意味不明のウェイトを入れまくってるから. そのあたりを無視し、 特定ロットだけ動けばOK、とばかりにウェイトを外せば、 いまでも非常に速くなる. [３]だけど、これだっていくらでも高速化可能. 正直、たとえば、 いまのIBM-PC＋いまのCD-ROMドライブでも、 たとえば、Windowsデスクトップを5秒以内に 起動することは実は可能. それも、たとえば Vistaだって起動可能. というか、いまのOSの起動は遅すぎる. ましてや、ちょっとH/Wをイジるとともに、 ブートデバイスをフラッシュROMにすれば、1秒以内で起動できる. Windowsが1秒で起動だよ. これ、遅いかな？

スリープモード
確かに、スリープモードは待機電力を使う、という問題点がある. しかし、極限まで待機電力を少なくした素子を開発することは可能. MRAMを使った瞬間起動可能素子の開発と比較し、 どちらが容易かは議論がある. もし、待機電力が実質ゼロの素子があれば、 MRAM方式はよりいっそう意味を失う.

MRAMを用いた瞬間起動
確かに、この方法は、実質的にまったくゼロ時間での 電源ONおよび電源OFFを可能にし、 これは、たとえば、電源スイッチのないノートPC、 といったまったく新しい商品の招来すら可能で、 非常に興味深い技術といえる. しかし、この技術を利用することは、 新技術に基づく、 低機能かつ高価な部品を利用することになる. この傾向は、いかにMRAM技術が進化しても、 ほぼ永遠に変わらないものと思われる. また、当面の間、技術的に不安定であって、 量産上の問題点などが予期される.

そのような問題点を差し置いてでも利用すべきか 否かであるが、筆者（岡島）は非常に否定的な意見を持っている.

理由は、MRAMを利用しないと達成できないような 起動速度が要求されている部分が、実際の使用においては ごく一部に過ぎないことである. そして、その部分も、MRAMの利用だけが唯一の対応策ではなく、 そのほかの策でも高速化が可能な場合がほとんどだと思われる.

よって、MRAMによる高速化は、現在の時点での予測としては、 非常に小規模な利用にとどまると思われる.

なお、もし、逆に、MRAMによる瞬間起動が大規模に利用されるとすれば、 これを前提とした、画期的機器が現れたときであろう. 具体的には、上でも述べたが、そもそも電源スイッチという概念の存在しない ノートPCなどである. しかし、そのためには、内部の素子だけでなく、 液晶もメモリー性がありなおかつ反応速度が速くなおかつ高コントラスト、、 みたいなまったく新しいものが必要であるし、 また、そもそも、OSのスケジューリングもアプリの内部構造も、 そしてユーザインターフェースも・・・ すべてを変えないといけない. ようは、あまりにも大規模な開発であって 正直にいえば非現実的としか思えない. 多分、なにかには応用されるだろうが、 もっと小規模なニッチ的商品ではないのか？

まとめ
サスペンド法などの従来手法による高速化だけでも、 十分な速度が得られる. MRAMなどによる高速化は、非常に特殊な場合のみにとどまるであろう.

- Further reading: Check Nikkei Electronics (magazine) Jul 31 2006 issue. 以上の話は、日経エレクトロニクス2006年7月31日号(931号）にも 載っています. 例の台湾大手EMS、ホンハイの特集号なんで、 そういった観点からも面白いかも.