以下、添付図面を参照しながら、例示する実施形態にかかる情報処理装置、表示制御装置、半導体チップ、表示装置の制御方法およびそのプログラムを詳細に説明する。
たとえば、書換データ自体の加工処理(たとえばデータ変換処理であり、前処理部113のデータ変換処理部113aで実行される)では、カラー画像データをグレースケール表示の電子ペーパで表示できるように、画像データをグレースケールや白黒(2値)の画像データに変換する処理や、白黒画像データを白黒反転する処理や、電子ペーパのディスプレイサイズや電子ペーパを部分的に書換える際の書換領域の大きさに合わせて画像データを拡大または縮小する処理などが実行される。
また、書換制御情報の選択処理(たとえば選択処理であり、前処理部113の選択処理部113bで実行される)では、無駄な電力や時間を消費せずに意図する書換処理を行うことを可能にする適切な書換制御情報を選択するために、書換データのデータ解析などを行う必要がある。この選択処理は、適切な書換制御情報を選択できなかった場合、情報処理装置にかかる負荷が増大するため、非常に重要な処理である。
書換制御情報とは、電子ペーパの各ピクセルやその集合を所望のグレースケール値へ書換えたり、カラー表示が可能な電子ペーパの場合は各画素を所望の色へ書き換えたりするための電圧のかけ方などが記述された情報であり、Waveformなどと呼ばれるものである。書換制御情報は、電圧値や電圧をかける時間やそのペアをどのような順番で変化させながら適用するかなどの情報を含んでいてもよい。
書換制御情報は、情報処理装置上に複数用意されており、電子ペーパの書換方法などに応じて適切に使い分ける必要がある。たとえば、書換元の画像データの階調数や、これをヒストグラム化し解析して得られる画像の特徴や、書換方法の違い(例えば、書換速度は遅いが書換後に書換前の文字などが残る残像が少ない書換方法や逆に書換速度は速いが残像が残り易い書換方法、または、書き換え速度は遅いが書換過程で所望の色と違う色が見えにくい書換方法や逆に書き換え速度は速いが所望の色と違う色が見え易い書換方法など)、周辺温度の違いなどに応じて複数の書換制御情報の中からから目的に合致するものが選択されて利用されることが必要になる。そのため、同じ書換データに対して異なる書換制御情報を状況に応じて使い分けることで、書換処理を行う場合も多い。
電子ペーパへの描画処理は、以上のような前処理を行って、前処理済書換データと書換制御情報選択情報とのペアを生成することで可能となる。この前処理は、上述したように、比較的大きな消費電力と処理時間とを必要とする。また、カラーの電子ペーパなどでは、電圧値を変えながら電圧をかけるシーケンスが複雑化したりや、書換データの色の並び方が影響して書換シーケンスが複雑化したりなど、書換制御情報が複雑になる場合がある。その場合、前処理における選択処理も、画像解析や特徴抽出に要する処理がさらに複雑化し、その結果、消費電力や処理時間がさらに大きくなる場合がある。
そこで、以下の実施形態では、電子ペーパ用の前処理で必要となる消費電力や処理時間を削減することが可能な情報処理装置、表示制御装置、半導体チップ、表示装置の制御方法およびそのプログラムを例示する。
(実施形態1)
まず、実施形態1にかかる情報処理装置、表示制御装置、半導体チップ、表示装置の制御方法およびそのプログラムについて、図面を参照して詳細に説明する。
図1は、実施形態1にかかる情報処理装置の概略構成を示すブロック図である。図1に示すように、情報処理装置1は、SoC(System On a Chip)100、メインメモリ120、メモリ性のある表示装置としてのEPD140、電源制御装置150Aおよび150B、および、入力デバイス130から構成される。
メモリ性のある表示装置140は、たとえば電子ペーパ(EPD:Electronic Paper Display)である。電子ペーパの方式は、電気泳動方式、電子粉流体方式、コレステリック液晶方式など、様々な方式であってよい。
入力デバイス130は、EPD140の表面に設けられたポインティングデバイスとして機能するタッチパネルより構成される。なお、情報処理装置1は、キーボードやマウスなどの他の入力デバイスを備えていてもよい。
メインメモリ120は、MRAM(Magnetoresistive Random Access Memory)などの不揮発メモリである。メインメモリ120上には、EPD140に表示する書換データと、前処理における選択処理で選択候補となる1つ以上の書換制御情報とが格納されている。また、実施形態1では、前処理における加工処理によって得られた前処理済書換データと、同じく前処理における選択処理によって生成された書換制御情報選択ID(書換制御情報選択IDとは、たとえば書換制御情報識別子のことであり、以降の実施例についても同様である)とのペアから構成される前処理キャッシュも、メインメモリ120上に格納される。
電源制御装置150Aは、メインメモリ120とSoC100とに給電しており、電源制御装置150Bは、EPD140に給電している。電源制御装置150Aおよび150Bは、それぞれPMIC(Power Management Integrated Circuit)などである。
情報処理装置1は、太陽電池とキャパシタなどの蓄電部とを備え、太陽電池で発電した電力で動作してもよい。その場合、蓄電部は、アイドル時等に太陽電池で発電した余剰電力を蓄えておく。電源制御装置150Aおよび150Bは、アクティブ時等のピークの消費電力を蓄電部に蓄積している電力と太陽電池が発電した電力との両方でまかなうように、情報処理装置1の各部に電力を供給する電源制御を行う。このように、以下で例示する実施形態は、非常に少ない電力でも情報処理装置が動作できるようにすることを目的の一つしている。そのための基本方針は、情報処理装置の各モジュールを積極的に消費電力が低い待機状態や低消費電力モードへ遷移させ消費電力を削減することである。そのため、前処理自体に必要な電力削減だけが重要なわけではない。前処理時間が長いと、情報処理装置のアイドル時(ユーザからの応答待ちの時間や情報処理装置を利用していない場合)に積極的に消費電力が低い待機状態へ遷移させ消費電力を削減しようとした際に、アクティブ時(情報処理装置が何らかの処理をしている場合)の時間が長くなり、その効果が得られ難くなる。また、前処理にかかる処理時間が長いと情報処理装置の応答性にも影響するので、情報処理装置のユーザの使い勝手も大きく損なうことになってしまう。そのため、前処理の処理時間を小さくすることも非常に重要である。これは、以降の実施形態についても同様である。
SoC100は、CPU(Central Processing Unit)101、メモリコントローラ103、EPDコントローラ105、前処理に使用する前処理用アクセラレータ102、内部メモリ104、および、無線LANコントローラ106などの通信インタフェースで構成され、これらはバス107で接続されている。
SoC100は、消費電力が低い待機状態になるように、待機状態の消費電力と待機状態への遷移と復帰に必要なコストが異なる複数の種類の待機状態を提供していてもよい。
EPDコントローラ105は、メインメモリ120をワーキングメモリとして利用し、このメインメモリ120上から前処理済書換データと、書換制御情報選択IDに対応する書換制御情報とを読み出して、EPD140に対する描画処理を実行する。なお、EPDコントローラ105は、EPD140の複数の部分領域を並列に更新することができる。
図2は、実施形態1にかかるEPD書換制御部の概略構成を示すブロック図である。図2に示すように、EPD書換制御部110は、CPU101上で動作するオペレーティングシステム(以降、OSという)のEPDコントローラ105のデバイスドライバなどである。EPD書換制御部110は、電源管理部115、前処理部113、キャッシュ判定部112、書換処理部114およびキャッシュ管理部111(管理部ともいう)から構成される。前処理部113とは、図4に示すように、データ変換処理部113aと選択処理部113bとから構成される。
EPD書換制御部110は、情報処理装置1上で動作するアプリケーションやミドルウェアやOSなどからEPD140の一部の領域あるいは全体を書換えるように指示されると、電源管理部115、前処理部113、キャッシュ判定部112、書換処理部114およびキャッシュ管理部111を連携して動作させることで、同じ書換データで同じ書換制御情報を使った書換処理の前処理の結果がメインメモリ120上の前処理キャッシュにキャッシュヒットするか否か確認し、キャッシュヒットしている場合は前処理キャッシュ上のデータを再利用してEPD140の描画処理を行う。これにより、前処理にかかる消費電力と処理時間とを削減することができる。また、前処理に要する時間(以下、前処理時間という)を削減したことにより、MRAMで構成されるメインメモリ120の電源をオフにできる時間を長くすることが可能となるため、より消費電力を削減することができる。
さらに、一般に、SoC100を消費電力のより低い待機状態へ遷移させた場合、この待機状態から復帰させるには、より大きな消費電力と処理時間とが必要になる。そのため、トータルでの消費電力を削減するためには、待機状態から復帰する際に要する消費電力に見合うだけのアイドル時間が必要になる。そこで、実施形態1では、上述したように、前処理時間を削減することが可能となるため、アイドル時間をより長くして消費電力が低い待機状態を利用する機会を高めることができ、その結果、さらなる省電力化を図ることが可能になる。
図4は、図1のメインメモリ上に保持される前処理キャッシュの構成例を示す図である。この前処理キャッシュは、図2に示すEPD書換制御部110のキャッシュ管理部111によって管理される。
図4に示すように、前処理キャッシュは、複数のキャッシュエントリから構成される。図4の例では、前処理キャッシュとして6個のキャッシュエントリが登録されている。各キャッシュエントリは、タグ部と前処理キャッシュデータ部とのペアから構成される。
タグ部は、書換データIDと書換方法タグとのペアと、VALIDビットとから構成される。アプリケーションやミドルウエアなどによって発行されるEPDの書換要求は、書換データを区別する書換データIDと、どのような書換を行うかを表す書換方法タグとのペアを付加して発行される。このような書換要求を受信したキャッシュ判定部112は、キャッシュヒットの判定を行う。キャッシュヒットの判定では、タグ部を検索することで、書換データIDと書換方法タグとのペアが一致し、且つ、キャッシュエントリのデータが有効(VALID)か無効(INVALID)か示すVALIDビットが有効(VALID)になっているエントリが存在するか否かが判定される。
書換データIDは、書換データを一意に識別するための情報である。例えばアプリケーションやミドルウエアが書換データと書換データIDを関連づけて管理し、同じ書換データを用いる書換処理の際は、同一の書換データIDを書換要求に付加してEPD書換制御部110に通知する。図4に示す例では、書換データは‘1’〜‘4’の4種類ある。
書換方法タグは、書換方法を指定するために書換要求に付加される情報である。書換方法タグでは、例えば、データを2値化して書き換えを行うこと、データを2値化したものをさらに反転して書き換えを行うこと、グレースケールで残像が残りづらい書き換えを行うこと、書換速度は速いが残像が残り易い書き換えを行うこと、それらのうちの2つ以上の組み合わせなどが指定される。図4に示す例では、書換データIDが‘1’および‘2’の書換データについては、それぞれ‘B’と‘W’の2種類の書換方法が過去に指定されて前処理キャッシュにエントリされており、また、書換データIDが‘3’および‘4’の書換データについては、‘G’の1種類の書換方法が過去に指定されて前処理キャッシュにエントリされている。
なお、書換方法‘B’は例えば書換データを2値化して書き換えることであり、書換方法‘W’は例えば書換データを2値化してさらに白黒反転させることであり、書換方法‘G’は例えば書換データをグレースケールに変換することである。グレースケールに変換する書換方法‘G’では、書換データが8階調だと解析されると8階調で書換える書換制御情報が選択される。その場合、16階調での書換制御情報を使うまでもなく、16階調と同等の画質を短い書換時間や低い消費電力で得ることができる。
なお、アプリケーションやミドルウエアなどによって発行されるEPD140の書換要求には、書換データIDと書換方法タグとのペアの代わりに、書換データIDと書換方法タグとのペアを一意に識別するためのIDが付加されてもよい。例えば図4の場合、<1,B>のIDを‘1’、<1,W>のIDを‘2’、<2,B>のIDを‘3’、<2,W>のIDを‘4’、<3,G>のIDを‘5’、<4,G>のIDを‘6’としてもよい。その場合、タグ部の<書換データID,書換方法タグ>には、ペアを識別するためのIDが代わりに格納される。これは、以降のすべての実施形態についても同様である。
前処理キャッシュデータ部は、書換制御情報選択IDと前処理済書換データとのペアから構成される。
書換制御情報選択IDは、情報処理装置1が保持する複数の書換制御情報の中からいずれか1つを特定するための情報である。書換処理部114がEPDコントローラ105に対して、図4における書換制御情報選択IDが‘34’のエントリを利用してEPD140の書換処理を実行するように指示すると、EPDコントローラ105は、メインメモリ120上に配列されている34番目の書換制御情報を読み出し、この書換制御情報を用いて書換処理を実行する。
前処理済書換データには、前処理済書換データのコンテンツデータ(内容)の他、データサイズも格納されている。
図5は、実施形態1にかかる書換処理の一例を示すフローチャートである。図5に示す例では、EPD書換制御部110が前処理キャッシュ上のデータを再利用することで、書換処理を省電力化および高速化する例を示す。図5に示す処理は、アプリケーションやミドルウエアやOSなどから、メインメモリ120上のフレームバッファなどに配置された書換データを用いてEPD140を書き換えるようにEPD書換制御部110に書換要求が発行されると開始される。
図5に示すように、書換処理では、EPD書換制御部110が書換要求を受信すると、EPD書換制御部110の電源管理部115が、積極的な省電力化のためにメインメモリ120の電源がオフになっているか否かを確認し(ステップS101)、オフになっている場合(ステップS101;YES)、電源制御装置150Aを利用してメインメモリ120の電源をオンにして(ステップS102)、ステップS103へ進む。これにより、メインメモリ120へのアクセスが可能な状態になる。メインメモリ120は、MRAMなどの不揮発メモリなので、メインメモリ120上に構成されている前処理キャッシュの内容は保持されている。一方、メインメモリ120の電源がオンである場合(ステップS101;NO)、EPD書換制御部110はそのままステップS103へ進む。
ステップS103では、EPD書換制御部110のキャッシュ判定部112が、書換要求に付加されている書換データIDと書換方法タグとのペアに一致するものが前処理キャッシュに存在するか否かをチェック(キャッシュ判定)し(ステップS103)、キャッシュヒットした場合(ステップS103;YES)、ステップS107へ進む。一方、キャッシュヒットしない場合(ステップS103;NO)、EPD書換制御部110のキャッシュ管理部111は、前処理結果を格納するキャッシュエントリを決定する(ステップS104)。この際、キャッシュエントリが一杯な場合は、LRU(Least Recently Used)などの置き換えるべきキャッシュエントリを判定するアルゴリズムを用いてキャッシュエントリを決定する。つづいて、EPD書換制御部110の前処理部113が、前処理用アクセラレータ102へ前処理を指示する(ステップS105)。
前処理用アクセラレータ102は、前処理部113からの指示に応じて、メインメモリ120上の書換データをもとに前述の加工処理と選択処理とを含む前処理を行う。その後、前処理用アクセラレータ102は、前処理の結果である処理済書換データを、決定されたキャッシュエントリに書き戻す(ステップS106)。また、キャッシュ管理部111が、前処理の他の結果である書換制御情報選択IDを同キャッシュエントリに格納する(ステップS106)。その際、キャッシュ管理部111は、タグ部の書換データIDと書換方法タグとVALIDビット(VALID)との情報も併せて同キャッシュエントリに格納する(ステップS106)。その後、EPD書換制御部110は、ステップS107へ進む。
ステップS107では、EPD書換制御部110の書換処理部114が、前処理キャッシュに格納されているデータを利用してEPD140への描画処理を行うように、EPDコントローラ105へ要求する(ステップS107)。これに対し、EPDコントローラ105は、前処理キャッシュに格納されている書換制御情報選択IDに対応する書換制御情報をメインメモリ120上から読み出すとともに、同キャッシュに格納されている前処理済書換データを読み出して、EPD140への描画処理を実行する(ステップS108)。その後、EPD書換制御部110は、書換処理が終了するまで待機する(ステップS109;NO)。割り込みなどで書換処理の終了が通知されると(ステップS109;YES)、EPD書換制御部110の電源管理部115は、電源制御装置150Aを利用して、メインメモリ120の電源をオフにする(ステップS110)。これにより、消費電力が削減される。その後、EPD書換制御部110は、本動作を終了する。
以上のように、前処理結果を前処理キャッシュとして保持しておくことで、メインメモリ120へのメモリアクセスを大幅に削減することができる。その結果、消費電力および処理時間を大幅に削減することが可能となる。
なお、実施形態1では、前処理結果の1つである書換制御情報選択IDを前処理キャッシュに格納していたが、書換制御情報選択IDに代えて書換制御情報そのものを前処理キャッシュに格納してもよい。その場合、書換制御情報選択IDから書換制御情報を読み出す処理が、前処理結果をキャッシュエントリに格納する処理(ステップS106)の前に入る。これは、以降の実施形態についても同様である。
実施形態1では、メインメモリ120が不揮発メモリである例を示したが、これに限らず、メインメモリ120が揮発性のDRAMなどのメモリであってもよい。その場合、EPD140への描画処理などの処理を行っていないアイドル時には、消費電力の削減を図りつつ前処理キャッシュ上のデータも保持できるように、DRAMのセルフリフレッシュモードなど、データを保持しつつ消費電力を削減できる省電力モードを利用するように、DRAMコントローラを設定してもよい。これは、以降の実施形態についても同様である。
EPD140への描画処理終了後のアイドル時には、EPD140への電力供給停止を電源制御装置150Bに指示するとともに、電源制御装置150B自体も低消費電力モードとなるように設定してもよい。また、EPDコントローラ105などのSoC100内モジュールのパワーゲーティングを行ったり、クロック供給を停止したりしてもよい。これは、以降の実施形態についても同様である。なお、前処理用アクセラレータ102を備えない構成であっても、本構成を適用することができる。
実施形態1では、前処理用アクセラレータ102が前処理を行ったが、これに限らず、CPU101やEPDコントローラ105が行ってもよいし、これらが処理を分担して実行してもよい。これは、以降の実施形態についても同様である。
前処理キャッシュのエントリを格納する処理は、上記の方法に限定されるものではなく、前処理用アクセラレータ102がすべてを行ってもよいし、CPU101や前処理用アクセラレータ102が分担して行ってもよい。これは、以降の実施形態についても同様である。
また、実施形態1では、EPDコントローラ105がSoC100に内蔵されていたが、これに限らず、SoC100に対して外付けのEPDコントローラを用いてもよい。
図4は、前処理キャッシュのキャッシュエントリの構成の一例を示したものであり、この構成に限定されるものではない。EPD140の表示領域を部分的に書換られるという構成上、前処理キャッシュデータ部にキャッシュされる前処理済書換データのサイズはエントリ毎に異なるケースが存在する。
具体的に、書換データには、例えば電子書籍アプリケーションの1ページ分のデータのようなデータサイズが大きいものから、現在表示されているページのページ番号を表すデータや、アプリケーションが情報処理装置1のユーザにタッチパネルでポインティングさせるためにEPD140に表示するソフトウエアのボタンや、メニューやリストなどのユーザインタフェースにおけるそれぞれの選択項目の画像データなど、データサイズが小さいものまである。そのため、図4の各エントリにおける前処理済書換データを格納する領域には、前処理済書換データの代わりに、C言語などのポインタや別領域へのアドレス情報などが格納されてもよい。その場合、実際に前処理済書換データを格納する領域は、ポインタやアドレス情報が指し示す別の領域となる。なお、部分的に書き換えられるEPD140の特性を活かして、前処理キャッシュは画面全体の前処理済書換データを保持する必要はなく、書換対象となる部分的な前処理済書換データを保持していればそれだけで画面を書き換えることができる。この点は、EPD用前処理キャッシュの重要な特徴の一つである。これは、以降の実施形態でも同様である。
実施形態1では、ユーザインタフェースとしてEPD140に表示するボタンのようなデータサイズの小さい画像の書換ついても前処理でキャッシュする。この構成によれば、EPD140やEPDコントローラ105の特性などにより、書換データのデータサイズ(以下、書換サイズという)によって書換時間(EPDコントローラ105が実際の書換処理を開始してからEPDコントローラ105が処理を終えるまでの時間)が大きく変化しない場合もあるため、書換終了後に情報処理装置1を消費電力が低い待機状態に遷移して消費電力を削減する場合においては、書き換えサイズが小さくて一見効果は小さそうでも書換サイズが大きい場合と同等の省電力効果を得ることができる。このため、データサイズの小さい書き換えについても前処理キャッシュでキャッシュすることが極めて重要である。また、ボタンあるいはソフトウエアキーボードの各キーなどは、応答性のユーザへ与える影響が大きく、ユーザへ与える利便性を向上することが可能となる。
実施形態1では、一度前処理を行った書換データに関して、その前処理結果を前処理キャッシュに保持したが、これに限るものではない。たとえば、情報処理装置1を起動した際のホーム画面、メニューやリスト、ソフトウエアキーボードの各キーボタンの画像、1つ以上のアプリケーションで共用できるソフトウエア部品など、比較的頻繁に利用することが予め分かっている書換データについては、予め前処理を実行しておき、その前処理結果を事前に情報処理装置1に格納しておいてもよい。なお、事前とは、出荷時やインストール時やソフトウエアアップデート時などであってよい。事前に格納された前処理結果は、情報処理装置1の起動時やコールドブート時やアプリケーションの起動時などに前処理キャッシュに格納される。これにより、特定の書換データに関しては、一番最初に書換処理を行う際の消費電力を削減することが可能となる。これは、以降の実施形態についても同様である。
実施形態1では、電源制御装置150Aはメインメモリ120とSoC100とに給電し、電源制御装置150BはEPD140に給電しているが、これに限るものではない。例えば、電源制御装置150Aがメインメモリ120とSoC100とEPD140とに給電してもよい。これは、以降の実施形態についても同じである。
実施形態1では、前処理における加工処理には、PDFデータやウェブブラウザにおけるレンダリング処理など、GPUなどのアクセラレータやCPU101などで書換データ自体を作成する処理が含まれていてもよい。これは、以降の実施形態についても同じである。
(実施形態2)
つぎに、実施形態2にかかる情報処理装置、表示制御装置、半導体チップ、表示装置の制御方法およびそのプログラムについて、図面を参照して詳細に説明する。なお、以下の説明において、上述した実施形態と同様の構成については、同一の符号を付し、その重複する説明を省略する。
図6は、実施形態2にかかる情報処理装置の概略構成を示すブロック図である。図6に示すように、情報処理装置2は、SoC200、メインメモリ120、EPD140、EPDコントローラ210、EPD専用メモリ220、電源制御装置150A、電源制御装置150Bおよび入力デバイス130から構成される。このように、情報処理装置2は、実施形態1にかかる情報処理装置1と同様の構成において、EPDコントローラ210がSoC200に対して外付けされ、EPDコントローラ210に書換処理用のデータを格納するEPD専用メモリ220が設けられた構成を備える。
電源制御装置150Bは、EPD140に加え、EPDコントローラ210とEPD専用メモリ220と電力を供給する。EPDコントローラ210などへの電源供給は、メインメモリ120やSoC200などへの給電を行う電源制御装置150Aが行うようにしてもよい。
メインメモリ120は、実施形態1と同様に、MRAMなどの不揮発メモリである。メインメモリ120上には、EPD140に表示するための書換データが載っている。この書換データは、書換処理を実行するにあたってその前にEPD専用メモリ220へデータ転送される。
EPD専用メモリ220は、MRAMなどの不揮発メモリであってよい。このEPD専用メモリ220は、EPDコントローラ210がワーキングメモリとして利用することができる。
SoC200は、バス107、CPU101、メモリコントローラ103、無線LANコントローラ106などから構成される。また、SoC200は、実施形態1のように前処理用アクセラレータ102を備えてもよい。
実施形態2では、実施形態1と異なり、EPDコントローラ210が前処理と描画処理とを実行する。すなわち、実施形態2では、EPDコントローラ210がEPD書換制御部を実現する。EPDコントローラ210は、不揮発性のMRAMなどの内部メモリ211を備えている。内部メモリ211には、前処理済書換データと書換制御情報選択IDとのペアから構成される前処理キャッシュが格納されている。また、書換制御情報が内部メモリ211上に置かれていてもよい。
実施形態2にかかるEPD書換制御部の基本的な構成は、実施形態1にかかるEPD書換制御部110(図2参照)と同様である。図7にEPDコントローラ210におけるEPD書換制御部110の一例を示す。EPD書換制御部110は、情報処理装置2上で動作するアプリケーションやミドルウエアやOSなどからEPD140の一部の領域あるいは全体を書き換える書換要求を受信すると、同じ書換データで同じ書換制御情報を利用した書換処理の前処理の結果がEPDコントローラ210の内部メモリ211上に構成される前処理キャッシュにキャッシュヒットするか否か確認し、キャッシュヒットしている場合は前処理キャッシュ上のデータを再利用することでEPD140の書換処理をEPD描画部213に指示して行う。これにより、前処理に要する消費電力と処理時間とを削減することが可能となる。また、前処理を省略することで、EPD専用メモリ220の電源をオフにしたままにできるため、その分の省電力効果も得ることが可能になる。なお、EPDコントローラ210の内部メモリ211上に保持される前処理キャッシュの構成は実施形態1で例示した前処理キャッシュ(図4参照)と同様である。
図8は、実施形態2にかかる書換処理の一例を示すフローチャートである。図8に示す動作は、アプリケーションやミドルウエアやOSなどから、メインメモリ120上の書換データでEPD140を書換えるようにEPDコントローラ210のデバイスドライバへ書換要求が発行されると、積極的な省電力化のためにEPDコントローラ210とEPD専用メモリ220とメインメモリ120とへの電力供給が停止していた場合には、EPDコントローラ210のデバイスドライバなどによって電源制御装置150Bおよび150AにEPDコントローラ210とEPD専用メモリ220とメインメモリ120とへの電力供給の再開を指示し、さらにメインメモリ120からEPD専用メモリ220へ書き換えデータを転送した後にEPDコントローラ210のデバイスドライバの指示により開始される。すでにデータがEPD専用メモリ220に存在する場合はデータ転送は必要なく、メインメモリ120への電力供給は必要なく、EPD専用メモリ220への電力供給もこの時点では必要ない。EPD専用メモリ220へ転送された後でメインメモリ120への電源供給の停止を電源制御装置150Aに指示してもよい。なお、EPDコントローラ210上の内部メモリ211は、MRAMなどの不揮発メモリなので、内部メモリ211上に構成されている前処理キャッシュの内容は保持されている。
図8に示すように、書換処理では、書換要求を受信してEPDコントローラ210への電力供給が再開されると、EPD書換制御部110のキャッシュ判定部112が書換要求に付加されている書換データIDと書換方法タグとのペアに一致するものが前処理キャッシュに存在するか否かをチェック(キャッシュ判定)し(ステップS201)、キャッシュヒットした場合(ステップS201;YES)、ステップS210へ進む。一方、キャッシュヒットしない場合(ステップS201;NO)、EPD書換制御部110の電源管理部115が、積極的な省電力化のためにEPD専用メモリ220の電源がオフになっているか否かを確認し(ステップS202)、オフになっている場合(ステップS202;YES)、電源制御装置150Bを利用してEPD専用メモリ220の電源をオンにして(ステップS203)、ステップS206へ進む。これにより、EPD専用メモリ220へのアクセスが可能な状態になる。一方、EPD専用メモリ220の電源がオンである場合(ステップS202;NO)、EPD書換制御部110はそのままステップS206へ進む。
ステップS206では、EPD書換制御部110のキャッシュ管理部111は、前処理結果を格納するキャッシュエントリを決定する(ステップS206)。この際、キャッシュエントリが一杯な場合は、LRUなどの置き換えるべきキャッシュエントリを判定するアルゴリズムを用いてキャッシュエントリを決定する。つづいて、EPD書換制御部110の前処理部113のデータ変換処理部113aと選択処理部113bとが前処理を実行し(ステップS207)、この前処理の結果である前処理済書換データを、決定されたキャッシュエントリに書きこむ(ステップS208)。また、キャッシュ管理部111が、前処理の他の結果である書換制御情報選択IDを同キャッシュエントリに格納する(ステップS208)。その際、キャッシュ管理部111は、タグ部の書換データIDと書換方法タグとVALIDビット(VALID)との情報も併せて同キャッシュエントリに格納する(ステップS208)。なお、前処理アクセラレータ102を設けた場合には、前処理部113が前処理アクセラレータ102へ前処理の指示を発行し、前処理アクセラレータ102において前処理が実行されてもよい。
つぎに、EPD書換制御部110の電源管理部115が、使い終わったEPD専用メモリ220の電源をオフにし(ステップS209)、ステップS210へ進む。
ステップS210では、EPD書換制御部110の書換処理部114が、前処理キャッシュに格納されているデータを利用してEPD140への描画処理を行う(ステップS210)。その後、EPD書換制御部110は、書換処理が終了するまで待機する(ステップS211;NO)。割り込みなどで書換処理の終了が通知されると(ステップS211;YES)、EPD書換制御部110の電源管理部115は、電源制御装置150Bを利用して、EPD140およびEPDコントローラ210の電源をオフにする(ステップS212)。これにより、消費電力が削減される。内部メモリ211は不揮発メモリであるため、EPDコントローラ210の電源をオフにしても、内部メモリ211にキャッシュされているデータは保持される。また、EPD140は不揮発性のディスプレイであるため、EPD140に描画された画像は保持され続ける。その後、EPD書換制御部110は、本動作を終了する。
以上のように、前処理結果を前処理キャッシュとして保持しておくことで、EPD専用メモリ220へのメモリアクセスを大幅に削減することができる。その結果、消費電力および処理時間を大幅に削減することが可能となる。
なお、本実施形態2では、EPDコントローラ210の内部メモリ211に前処理キャッシュを保持していたが、EPD専用メモリ220に保持してもよいし、内部メモリ211とEPD専用メモリ220との両方に保持してもよい。その際、内部メモリ211には、頻繁に利用される前処理キャッシュが格納されてもよい。また、実施形態2では、書換制御情報の全体を内部メモリ211に保持していたが、書換制御情報の全てあるいは一部をEPD専用メモリ220に保持してもよい。その際、内部メモリ211には、頻繁に利用される書換制御情報が格納されてもよい。これらは、以降の実施形態についても同様である。
実施形態2では、メインメモリ120に加え、EPD専用メモリ220やEPDコントローラ210の内部メモリ211が不揮発メモリである例を示したが、これに限らず、EPD専用メモリ220やEPDコントローラ210の内部メモリ211が揮発性のメモリであってもよい。その場合、EPD140への描画処理などの処理を行っていないアイドル時には、消費電力の削減を図りつつ前処理キャッシュ上のデータも保持できるように、DRAMのセルフリフレッシュモードのようなデータを保持しつつ消費電力を削減できる省電力モードを利用したり、EPDコントローラ210の内部メモリ211だけに電力を供給するようにすればよい。これは、以降の実施形態についても同様である。
また、上述したように、SoC200に対してEPDコントローラ210を外付けした構成に限らず、実施形態1のSoC100のEPDコントローラ105が、実施形態2のEPDコントローラ210と同様の動作をするようにも構成することができる。その場合、EPDコントローラ105が内部メモリ211を備えてもよいし、内部メモリ211の代わりに内部メモリ104を使用してもよい。
また、前処理キャッシュデータ部の前処理済書換データは、例で示したように、EPD140がディスプレイを部分的に更新できるという性質上キャッシュされるデータのサイズはエントリ毎に異なる場合も多い。そのため、図4の各キャッシュエントリの前処理済書換データを格納する領域は、実際にデータを格納する別の領域へのアドレス情報が入っている構成でもよい。これも以降の実施例についても同様である。
(実施形態3)
つぎに、実施形態3にかかる情報処理装置、表示制御装置、半導体チップ、表示装置の制御方法およびそのプログラムについて、図面を参照して詳細に説明する。なお、以下の説明において、上述した実施形態と同様の構成については、同一の符号を付し、その重複する説明を省略する。
実施形態3にかかる情報処理装置は、たとえば実施形態1にかかる情報処理装置1(図1参照)と同様の構成であってよい。ただし、実施形態3では、前処理キャッシュをSoC100が備える不揮発性の内部メモリ104に構成する。前処理キャッシュをSoC100の内部メモリ104に配置することにより、キャッシュヒットする場合は不揮発メモリを利用するメインメモリ120にアクセスする必要がなくなるため、メインメモリ120の電源をオフにしたままEPD140を書き換えることが可能になる。その結果、メインメモリ120の電源オフ時間を長くすることができ、さらなる省電力化を図ることが可能になる。また、SoC100の内部メモリ104はオンチップであるため、メインメモリ120より高速にアクセスできる。それにより、書換処理の処理時間を短縮することができ、その結果、さらなる消費電力と処理時間との削減が可能となる。
実施形態3にかかるSoC100は、消費電力が低い待機状態で、タッチパネルやキーボードや情報処理装置2に付いている特定の処理に特化したボタンやキーなどの入力デバイス130からの割り込みを受信することができる。
内部メモリ104は、MRAMなどの不揮発性のメモリである。実施形態3では、内部メモリ104に、前処理済書換データと書換制御情報選択IDとのペアから構成される前処理キャッシュが格納される。前処理キャッシュの基本的な構成は、図4に示す前処理キャッシュと同様であってよい。また、書換制御情報も、内部メモリ104上に置かれる。さらに、割り込みベクタテーブルと割り込みベクタテーブルに格納される書換処理をEPDコントローラ210のデバイスドライバなどに書換要求するEPD書換用割り込みハンドラなども内部メモリ104上に配置される。メインメモリ120上には、実施形態1と同様に、EPD140に表示する書換データが載っている。
実施形態3にかかるEPD書換制御部の基本的な構成は、図2に示す実施形態1にかかるEPD書換制御部110と同様である。キャッシュ判定部112は、EPD書換用割り込みハンドラの処理で内部メモリ104上に配置されている。前処理部113、書換処理部114、キャッシュ管理部111および電源管理部115は、EPDコントローラ210のデバイスドライバの処理の一部であり、内部メモリ104上に配置されている。なお、これらの構成のうち、一部はメインメモリ120上に配置されてもよい。
図9は、実施形態3にかかる情報処理装置の概略構成を示すブロック図である。図9に示すように、情報処理装置3には、たとえばBACKキー301と、SELECTキー302と、NEXTキー303とが設けられる。情報処理装置3のEPD140には、選択項目が3つあるメニュー340がソフトウエアで表示されている。実施形態3において、書換処理は、情報処理装置3のユーザがキーボードのキーや特定の処理に特化したキーを入力することによりSoC100へ割り込みが発生し、これにより内部メモリ104上のEPD用割り込みハンドラが起動すると開始される。なお、前提として、EPD書換用割り込みハンドラは、例えば特定のキーに対応付けられている。たとえば、EPD書換用割り込みハンドラは、アプリケーションがEPD140上に表示するメニュー340の前後の選択項目のフォーカスを移動させたり電子書籍アプリケーションの前後のページを表示させたりするためのNEXTキー303およびBACKキー301のそれぞれに割り当てられる。NEXTキー303は、アプリケーションやミドルウエアやOSなどで予約されている特定の書換データID=1000番が対応づけられている。なお、メニューの選択項目が3つあるため、NEXTキー303に割り当てられたEPD書換用割り込みハンドラは、‘0’から‘2’までの値を取り得る状態変数を持っているものとする。その場合、1000番から1002番までの書換データIDが予約されている。
図10は、実施形態3にかかる書換処理の一例を示すフローチャートである。図10に示す動作は、前処理キャッシュ上のデータを再利用することで書換処理を省電力化および高速化することを可能にするものであり、次のような手順によって実行される。すなわち、キーボードのキーが入力されてSoC100に対して割り込みが発生すると、対応するEPD書換用割り込みハンドラが起動する。EPD書換用割り込みハンドラでは、キャッシュ判定部112が予めそれぞれのキーに対して設定されている特定の書換データID(例えば1000番)と書換方法タグとをそのまま利用するか、あるいは、その書換データIDと状態変数とをベースに計算を行い、その結果を利用する。状態変数とは、例えばメニューのどの選択項目にフォーカスがあたっているか否かを示すもの(例えば3つ目なら2で、1000+2=1002番)である。また、計算とは、特定の書換データIDを例えばBACKキーの割り込の際にはディクリメントする(例えば1002−1=1001番)ことで、前の選択項目へフォーカスを移すための処理のことである。
図10に示す動作では、EPD書換制御部110のキャッシュ判定部112が、得られた書換データID(=1001番)と書換方法タグとのペアと一致するものが前処理キャッシュに存在するか否かをチェック(キャッシュ判定)し(ステップS301)、キャッシュヒットした場合(ステップS301;YES)、ステップS310へ進む。一方、キャッシュヒットしない場合(ステップS301;NO)、キャッシュ判定部112は、アプリケーションなどへキー入力イベントを通知する(ステップS302)。その後、EPD書換制御部110は、キー入力イベントに対応する処理がアプリケーションで行われて、アプリケーションから書換要求を受信するまで待機する(ステップS303;NO)。
アプリケーションから受信する書換要求には、予約されている書換データID(1000番から1002番)が付加されている。そのため、キャッシュ判定部112は、キャッシュ判定をするまでもなく、キャッシュミスだと判定することができる。したがって、アプリケーションから書換要求を受信すると(ステップS303;YES)、EPD書換制御部110のキャッシュ管理部111は、前処理結果を格納するキャッシュエントリを決定する(ステップS304)。この際、キャッシュエントリが一杯な場合は、LRUなどの置き換えるべきキャッシュエントリを判定するアルゴリズムを用いてキャッシュエントリを決定する。
つぎに、EPD書換制御部110の電源管理部115が、積極的な省電力化のためにメインメモリ120の電源がオフになっているか否かを確認し(ステップS305)、オフになっている場合(ステップS305;YES)、電源制御装置150Aを利用してメインメモリ120の電源をオンにして(ステップS306)、ステップS307へ進む。これにより、メインメモリ120へのアクセスが可能な状態になる。メインメモリ120は、MRAMなどの不揮発メモリなので、メインメモリ120上に構成されている前処理キャッシュの内容は保持されている。一方、メインメモリ120の電源がオンである場合(ステップS305;NO)、EPD書換制御部110はそのままステップS307へ進む。
ステップS307では、キャッシュ判定の結果が前処理キャッシュにキャッシュヒットしなかったので、EPD書換制御部110の前処理部113が、前処理用アクセラレータ102へ前処理を指示する(ステップS307)。
前処理用アクセラレータ102は、前処理部113からの指示に応じて、メインメモリ120上の書換データをもとに前述の加工処理と選択処理とを含む前処理を行う。その後、前処理用アクセラレータ102は、前処理の結果である処理済書換データを、決定されたキャッシュエントリに書き戻す(ステップS308)。また、キャッシュ管理部111が、前処理の他の結果である書換制御情報選択IDと、タグ部の書換データIDと、書換方法タグと、VALIDビット(VALID)との情報も併せて、同キャッシュエントリに格納する(ステップS308)。つづいて、EPD書換制御部110の電源管理部115が、電源制御装置150Aを利用して、メインメモリ120の電源をオフにし(ステップS309)、ステップS310へ進む。
ステップS310では、EPD書換制御部110の書換処理部114が、前処理キャッシュに格納されているデータを利用してEPD140への描画処理を行うように、EPDコントローラ105へ要求する(ステップS310)。これに対し、EPDコントローラ105は、前処理キャッシュに格納されている書換制御情報選択IDに対応する書換制御情報を内部メモリ104上から読み出すとともに、同キャッシュに格納されている前処理済書換データを読み出して、EPD140への描画処理を実行する(ステップS311)。その後、EPD書換制御部110は、本動作を終了する。
なお、実施形態3は、特定の割り込みに対してEPD書換用割り込みハンドラのキャッシュ判定部112で判定している前提があるため、ステップS304で発行される予約された書換データIDでの書換要求については判定結果をキャッシュミスとして固定して判定処理を省略したが、書換要求が通知されてからEPDコントローラ210のドライバに実装された他のキャッシュ判定部でもキャッシュ判定するように構成することで、特定の割り込み以外の割り込みについても、実施形態1と同様に、前処理を省略できる。その結果、更なる省電力化および高速化を図ることができる。
また、たとえばSoC100より電力が低いマイクロコントローラなどの制御装置が入力デバイス130とSoC100との間にあり、制御装置が電源制御装置150Aとは別のところから電力供給されていて、且つ、制御装置からSoC100と電源制御装置150Aとを制御可能である場合、ステップS311の書換処理終了後のアイドル時に、制御装置がSoC100への電力供給を停止し、電源制御装置150A自体も電源オフにするハイバネーションを実行することで、積極的な省電力化をすることもできる。その場合、SoC100の内部メモリ104が不揮発メモリなので、制御装置が主導する復帰処理後も、前処理キャッシュの内容は保持される。そのため、復帰後も高速にEPD140の書換処理を実行することができる。また、SoC100の内部メモリ104がSRAMなどの揮発性のメモリの場合には、内部メモリ104上の前処理キャッシュを不揮発性のメインメモリ120に退避してハイバネーションを実行すればよい。あるいは、SRAMなどの内部メモリ104のみ通電させておき、SoC100への電源供給を停止させてもよい。これらについては以降の実施形態についても同様である。
また、実施形態3では、割り込み対して特定のEPD書換割り込みハンドラや書換データIDと書換方法タグとが事前に設定されていたが、これらの対応関係は、アプリケーションの起動時などに動的に変更可能である。
実施形態3では、SoC100の内部メモリ104に前処理キャッシュをすべて持たせたが、全体を内部メモリ104上に持たせる必要はなく、一部をメインメモリ120上に配置してもよい。その場合、キャッシュエントリの使用頻度の高いものなどを優先的に内部メモリ104上に配置してメインメモリ120の電源をオンにする回数を抑制することで、消費電力と処理速度の最適化を図ることができる。
また、実施形態3では、書換制御情報の全体を内部メモリ104に保持していたが、一部はメインメモリ120に保持してもよい。その際、頻繁に利用する書換制御情報のキャッシュとして内部メモリ104を利用してもよい。
また、実施形態3では、EPDコントローラ210はSoC100に内蔵されていたが、外付けのEPDコントローラ210であってもよい。
また、メニュー画面のように、表示される内容が決定していて使用頻度が非常に高いものは、前処理の結果である書換制御情報選択IDと前処理済書換データとを内部メモリ104上の前処理キャッシュに事前に格納しておいてもよい。この場合、図10のステップS302〜S309の処理をスキップすることが可能となるため、高い省電力効果を得ることができる。なお、事前とは、アプリケーションの起動時や、情報処理装置3のコールドブート時や、出荷時などであってよい。
(実施形態4)
つぎに、実施形態4にかかる情報処理装置、表示制御装置、半導体チップ、表示装置の制御方法およびそのプログラムについて、図面を参照して詳細に説明する。なお、以下の説明において、上述した実施形態と同様の構成については、同一の符号を付し、その重複する説明を省略する。
実施形態4は、前処理キャッシュのタグ部をEPDコントローラ210の内部メモリ104に構成する実施形態2の情報処理装置2(図6参照)と同様の構成において、SoC200より消費電力が低い制御装置を、キーボードやタッチパネルなどの1つ以上の入力デバイス130とSoC200との間に配置させた構成を備える。制御装置は、電源制御装置150AおよびSoC200とは別のところから電力供給されていて、制御装置からSoC200と電源制御装置150Aとを制御可能になっている。
制御装置は、キーボードなどによる割り込み処理の要求を受信すると、当該割り込みに対応する書換処理の前処理キャッシュが存在するか否かを判定し、キャッシュヒットした場合には、EPDコントローラ210に書換要求を直接送信し、キャッシュミスした場合には、SoC200へ割り込みを送信し、必要に応じてSoC200から書換要求を発行させる。そのため、前処理キャッシュにキャッシュヒットする場合は、SoC200およびメインメモリ120の電源をオフにしたままの必要最低限の構成で書換処理を行うことが可能になり、それにより、消費電力を大幅に削減することができる。例えば、電子書籍アプリケーションのような場合、新たな電子書籍を開く場合はSoC200やメインメモリ120を含んだ構成で動作し、電子書籍閲覧時の単純なページ送りを繰り返す時間の大半の部分をSoC200やメインメモリ120を利用しない必要最低限の構成で動作させるようなことが可能である。
図11は、実施形態4にかかる情報処理装置の概略構成を示すブロック図である。図11に示すように、情報処理装置4は、SoC200、メインメモリ120、EPD140、EPD専用メモリ220、電源制御装置150A、電源制御装置150B、電源制御装置450、マイクロコントローラ400、および、1つ以上の入力デバイス130から構成される。
入力デバイス130は、キーボードやタッチパネルやネットワークなどである。これらの入力デバイス130による割り込み処理は、SoC200に直接送信されず、SoC200との間に配置されたマイクロコントローラ400に送信される。
マイクロコントローラ400は、消費電力がSoC200より低く、常に通電されている。マイクロコントローラ400は、内部メモリ401を持っており、内部メモリ401内に前処理キャッシュのタグ部が保持されている。
実施形態4では、実施形態2と同様に、EPDコントローラ210が前処理を実行する。EPDコントローラ210は、不揮発性のMRAMなどの内部メモリ211を持っている。内部メモリ211には、前処理済書換データと書換制御情報選択IDとのペアから構成される前処理キャッシュも格納されている。前処理キャッシュのタグ部は、EPDコントローラ210の内部メモリ211にも格納される。EPDコントローラ210の内部メモリ211内に保持された前処理キャッシュのタグ部と、マイクロコントローラ400の内部メモリ401に保持される前処理キャッシュのタグ部とは、一貫性が維持される。また、書換制御情報も、EPDコントローラ210の内部メモリ211上に置かれている。
EPD書換制御部の基本的な構成は、実施形態2と同様である。実施形態4でも、EPD書換制御部110は、EPDコントローラ210の中の処理である。ただし、キャッシュ判定部112と同様のキャッシュ判定部が、マイクロコントローラ400にも実装される。なお、SoC200の電源をオン/オフする電源管理部が、マイクロコントローラ400に実装されてもよい。また、EPDコントローラ210の内部メモリ211上に保持される前処理キャッシュの構成は実施形態1で例示した前処理キャッシュ(図4参照)と同様である。
図12は、実施形態4にかかる書換処理の一例を示すフローチャートである。図12に示す処理は、情報処理装置4のユーザがキーボードのキー入力などを行うことでマイクロコントローラ400へ割り込みが発生すると開始される。キーボードの特定のキーには、実施形態3と同様に、予め特定の書換データIDと書換方法タグとのペアなどが割り当てられている。
図12に示すように、書換処理では、マイクロコントローラ400上のキャッシュ判定部112が、マイクロコントローラ400の内部メモリ401上にある前処理キャッシュのタグ部を利用し、割り込み時に通知された書換データIDと書換方法タグとのペアに一致するものが前処理キャッシュに存在するかチェック(キャッシュ判定)し(ステップS401)、キャッシュヒットした場合(ステップS401;YES)、EPDコントローラ210への電力供給を電源制御装置150Bに指示してEPDコントローラ210を電源オンするとともに(ステップS414)、書換要求をEPDコントローラ210へ送信し(ステップS415)、ステップS411へ進む。一方、キャッシュヒットしない場合(ステップS401;NO)、マイクロコントローラ400上のキャッシュ判定部112は、SoC200へ割り込みを通知する。これにより、アプリケーションなどへキー入力イベントが通知され(ステップS402)、必要に応じてキー入力イベントに対応する処理がアプリケーションなどで実行される。その後、その結果として、EPDコントローラ210へ書換データIDと書換方法タグとのペアが付加された書換要求が発行される。なお、SoC200へ割り込みを通知する際、SoC200の電源がオフであれば、マイクロコントローラ400の電源管理部115は、電源制御装置150Aを利用してSoC200の電源をオンにし、その後、割り込みを通知する。また、キー入力イベントに対応する処理の結果として書換要求がEPDコントローラ210へ発行された後は、SoC200を消費電力が低い待機状態に遷移させてもよいし、マイクロコントローラ400上の電源管理部115がSoC200への電源供給を停止するように指示してもよい。
つぎに、EPDコントローラ210の処理である電源管理部115が、積極的な省電力化のためにEPD専用メモリ220の電源がオフになっているか否かを確認し(ステップS404)、オフになっている場合(ステップS404;YES)、電源制御装置150Bを利用してEPD専用メモリ220の電源をオンにして(ステップS405)、ステップS406へ進む。これにより、EPD専用メモリ220へのアクセスが可能な状態になる。一方、EPD専用メモリ220の電源がオンである場合(ステップS404;NO)、EPDコントローラ210はそのままステップS406へ進む。
つぎに、EPDコントローラ210の処理であるキャッシュ管理部111は、LRUなどの置き換えるべきキャッシュエントリを判定するアルゴリズムを用いてキャッシュエントリを決定する(ステップS406)。つづいて、EPDコントローラ210の処理である前処理部113がEPD専用メモリ220をワーキングメモリとして利用して前処理を実行し(ステップS407)、この前処理の結果を、決定されたキャッシュエントリに書きこむ(ステップS408)。
つぎに、EPDコントローラ210の処理である電源管理部115が、電源制御装置150Bを利用してEPD専用メモリ220の電源をオフにする(ステップS409)。つぎに、EPDコントローラ210のキャッシュ管理部111が、前処理キャッシュのタグ部の情報をマイクロコントローラ400へ送信し、マイクロコントローラ400側で同期をとるためにタグ部を更新する処理を実行することで、マイクロコントローラ400の内部メモリ401に保持されているタグ部とEPDコントローラ210の内部メモリ211にあるタグ部とを整合させて(ステップS410)、ステップS411へ進む。これにより、マイクロコントローラ400の内部メモリ401に保持されているタグ部とEPDコントローラ210の内部メモリ211にあるタグ部との間で一貫性が保持される。なお、このステップS410に示す処理は、SoC200を介して実行されてもよい。また、キャッシュする書換処理を特定の複数の書換処理書換データIDと書換方法タグとのペアのものに限定し、予め情報処理装置4に設定しておいた場合には、ステップS410の処理を省略することが可能である。
ステップS411では、EPDコントローラ210の処理である書換処理部114が、前処理キャッシュに格納されている書換制御情報選択IDに対応する書換制御情報を内部メモリ211から読み出し、キャッシュに格納されている前処理済書換データを読み出して、EPD140への描画処理を行う(ステップS411)。その後、EPDコントローラ210は、書換処理が終了するまで待機する(ステップS412;NO)。割り込みなどで書換処理の終了が通知されると(ステップS412;YES)、マイクロコントローラ400上の電源管理部115は、電源制御装置150Bを利用して、EPDコントローラ210の電源をオフにする(ステップS413)。なお、この処理はEPDコントローラ210の電源管理部が実行してもよい。これにより、EPDコントローラ210の消費電力も削減される。内部メモリ211は不揮発メモリであるため、EPDコントローラ210の電源をオフにしても、内部メモリ211にキャッシュされているデータは保持される。その後、EPDコントローラ210は、本動作を終了する。
(実施形態5)
上述した実施形態1〜4をさらに効率よく実施する方法として、前処理キャッシュに対してプレロードを実行する方法がある。ここで、プレロードとは、今後実行される可能性が高い書換処理の書換データに対する前処理を先に実行しておき、その結果を前処理キャッシュに登録しておくことである。このように、今後実行される可能性が高い書換処理が判る場合には、実際の書換要求が発行される前に、対象の書換データについて予め前処理を実行し、その結果を前処理キャッシュへ格納しておくプレロードを行うことで、最初の書換要求に対しても前処理キャッシュ上のデータを利用することが可能となる。その結果、書換時間を短縮することが可能になるため、情報処理装置の応答性の向上を図ることができる。また、書換時間を短くすることで、SoC200やメモリなどの電源をオフにできる時間が増加するため、さらなる省電力化が可能になる。
前処理キャッシュのプレロードは、実施形態1〜4のどの構成に対しても適用可能である。ここでは、SoC200の内部メモリ104をキャッシュに利用する実施形態3を前提に説明する。
また、前処理キャッシュのプレロードは、例えば、前出のメニューやリストや電子書籍アプリケーションで、それぞれ次の選択項目や次のページの書き換えを行う場合など、様々な用途に適用可能である。ここでは、一例として、かな漢字変換アプリケーションの例を示す。
図13は、かな漢字変換アプリケーションにおけるプレロードの概要を説明するための図である。かな漢字変換アプリケーションは、たとえばユーザにより入力したい単語の読み(例えば「しょう」)が入力され、変換キーが押されると、辞書などと呼ばれる読みと漢字との対応表を利用して複数の漢字の候補(例えば、「小」「省」「少」)が表示される。その後、ユーザにより変換キーが押されることで、フォーカスが順番に次の候補へ切り替えられる。まず、図13(a)に示すような、例えばカラーの元データが存在するとする。ユーザが変換キーを1回押すと、図13(b)に示す状態のように、漢字の候補「小」「省」「少」が3つ白黒でEPD140に表示される。具体的には左から順に、フォーカスがあたっている「小」が白抜き(背景が黒で文字が白)、フォーカスがあたっていない「省」と「少」とが黒抜きで表示される。次にユーザが変換キーを1回押すと、図13(c)に示すように、「省」にフォーカスが移り、「省」が白抜きで表示され、「小」と「少」とが黒抜きで表示される状態になる。さらに変換キーが1回押されると、図13(d)に示すように、「少」にフォーカスが移り、白抜きで表示され、「小」と「省」とが黒抜きで表示される状態になる。
図13(b)の状態を表示するためには、「小」に対する白抜き用の前処理<「小」,「W」>と、「省」と「少」に対する黒抜き用の前処理<「省」,「B」>および<「少」,「B」>との合計3回の前処理が実行される。また、図13(b)の状態から図13(c)の状態を表示するためには、さらに「小」を黒抜きに変更するための<「小」,「B」>と、フォーカスを移すための<「省」,「W」>との合計2回の前処理が実行される。同様に、図13(c)の状態から図13(d)の状態を表示するためには、「省」と「少」との表示を書き換える必要があるが、「省」については<「省」,「B」>の前処理キャッシュを再利用できるので、必要な前処理は<「少」,「B」>、の1回となる。
ユーザは、変換キーを押す度に高速にフォーカスが移動することを期待するが、押す度に前処理をしているとフォーカスの移動に時間がかかってしまうため、ユーザビリティを損う可能性がある。さらに、元データが配置されているメインメモリ120をその都度アクセスすることになるため、メインメモリ120の電源が頻繁にオンとオフとの切り替えを繰り返したり、電源をオフにすることができなくなってしまったりなど、不揮発メモリであることの利点を十分に活かせない可能性が生じる。
そのため、一連の処理で使う<「小」,「W」>、<「省」,「W」>、<「少」,「W」>、<「小」,「B」>、<「省」,「B」>および<「少」,「B」>の合計6つの前処理を予め一括して実行し、SoC200の内部メモリ104に構成される前処理キャッシュに格納しておくことで、フォーカスの移動を高速にすることができる。さらに、メインメモリ120を電源オンにするのが一回で済むので、消費電力を削減することもできる。ただし、6つの前処理を一括して行う処理時間がユーザビリティに影響する場合には、1回のEPD140の描画処理の処理時間が比較的長いという特性をうまく利用して、前処理の一部または全部の処理時間を描画処理に隠蔽してもよい。
図14は、かな漢字変換アプリケーションで前処理キャッシュへプレロードする際のアプリケーションの処理フローの一例を示すフローチャートである。図14に示す方法では、上記の6つの前処理を一括では実行していない。まず、キーボードなどの変換キーがユーザによって押されると、図13(b)の状態を表示するのに最低限必要な<「小」,「W」>、<「省」,「B」>および<「少」,「B」>の3つの書換要求をEPD書換制御部110に対して発行する(ステップS501〜S503)。それに対し、EPDコントローラ210は、これら3つの書換要求に対する前処理と描画処理とを3つ並列に実行する。この際、EPD書換制御部110は、SoC200の内部メモリ104の前処理キャッシュにキャッシュする処理を実行する。EPD140の描画処理が実行されている間に、かな漢字変換アプリケーションでは、図13(c)の状態と図13(d)の状態とを表示するために必要な残りの3つの前処理を行うように、EPD書換制御部110に対して指示する(ステップS504)。これにより、前処理キャッシュに6つすべての前処理の結果が格納されることになる。ただし、ステップS504では、3つの前処理結果に基づく描画処理は行われない。その後、再度、変換キーがユーザによって押されると、図13(c)の状態や図13(d)の状態を表示するために必要な書換処理が、前処理キャッシュのデータを利用して行われる。その際、メインメモリ120へのアクセスや前処理が発生しないため、消費電力を抑えることができ、フォーカスも高速に切り替えることができる。
図15は、図14に示す処理フローを実行した際の前処理と描画処理とのタイミングチャートの例を示す。図15(a)は、<「小」,「W」>、<「省」,「W」>、<「少」,「W」>、<「小」,「B」>、<「省」,「B」>および<「少」,「B」>の合計6つの前処理のタイミングチャートであり、図15(b)は、図13(b)の状態を表示するための<「小」,「W」>、<「省」,「W」>および<「少」,「W」>の3つの描画処理のタイミングチャートである。
図15から分かるように、図13(b)の状態を表示するための3つの前処理(S1)が実行された後、これらの前処理(S1)の結果を利用した3つの描画処理(S11)が並列に実行される裏で、図13(c)の状態や図13(d)の状態に必要な前処理(S2およびS3)が実行される。その結果、<「小」,「B」>、<「省」,「B」>および<「少」,「B」>に関する前処理(S2およびS3)の処理時間が描画処理(S11)で隠蔽されるため、図13(b)の状態を表示する時間に影響を与えずに、プレロード用の前処理(S2およびS3)を実行することができる。
ただし、プレロードしたデータを利用しない場合には、ブレロード用の前処理に要した電力は無駄になるため、かな漢字変換アプリケーションに候補の利用に関する履歴情報を保持させ、この履歴情報に基づいてどのタイミングでどこまでプレロードするとよいか決定してもよい。また、描画処理の時間と前処理のプレロードの時間を考慮して、いくつの候補のプレロードまでが描画時間に隠蔽されるかを計算してもよい。
また、情報処理装置が備える太陽電池で発電した余剰電力や蓄電部の残量に応じて、プレロードの積極性を制御してもよい。例えば、太陽電池で発電した余剰電力が多い場合や蓄電部の残量が多い場合には、積極的により多くのプレロードを行って情報処理装置の応答性を高め、太陽電池で発電した余剰電力が少ない場合や蓄電部の残量が少ない場合には、プレロードの回数を抑えるように構成することもできる。
(実施形態6)
実施形態1〜4の前処理キャッシュを利用するEPD書換制御部110と、実施形態5の前処理キャッシュのプレロードとを組み合わせてもよい。その場合、不揮発メモリへSoC200の状態などを退避しておくことで、SoC200やメモリやディスプレイの電源をオフにするハイバネーションを実行した際の消費電力が低い待機状態からの復帰処理を高速化することができる。
図16は、前処理キャッシュを行わない場合と行う場合とのハイバネーション時の動作例を示すタイミングチャートである。図16(a)は、EPDをディスプレイとして使う情報処理装置で前処理キャッシュを行わない場合のタイミングチャートを示し、図16(b)は、EPDをディスプレイとして使う情報処理装置で前処理キャッシュを行う場合のタイミングチャートを示す。
LCDなどをディスプレイとして使う情報処理装置では、ハイバネーションのサスペンド処理がなされた待機状態ではLCDの電源はオフになっており、ディスプレイには何も表示されていない。そのため、ユーザにとっての待機状態からの復帰処理は、キーボードの特定のキー入力や電源ボタンの入力などで開始され、サスペンド処理に入る直前の画面がディスプレイに表示されることで完了する(図16(a)ではS92〜S93)。ユーザにとっての応答性は、このサスペンド処理に入る直前の画面が表示されるまでの時間であると言える。
一方で、EPD140をディスプレイとして備える情報処理装置の場合は異なる。サスペンドされた待機状態でも、不揮発性のディスプレイであるEPD140には常にサスペンド直前の画面が表示されている。そのため、ユーザは特定のキー入力などでサスペンドされた待機状態から復帰するのではなく、待機状態の現在表示されている画面の内容に対するタッチパネルやキーボード入力で復帰が開始され、待機状態時に表示されていた画面の内容に対する処理が実行された後、その結果がEPD140に表示されるまで(S92〜S95)の時間(EPD140の表示が変化するまでの時間)がユーザにとっての応答時間となる。したがって、EPD140をディスプレイに用いた情報処理装置では、待機状態時に表示されていた画面の内容に対する処理の結果がEPD140に表示されるまでの時間を短縮しないと応答性が向上したとはいえない。
また、ユーザが情報処理装置の操作を終えてからサスペンド処理を開始するまでの時間がユーザにとっての応答性に与える影響は軽微である。そのため、S11に示すようにサスペンド処理を開始する前に、復帰後に予測される書換処理の前処理を行い、その結果を前処理キャッシュへプレロードしておいてもよい。その場合、復帰時に前処理キャッシュを利用することができるため、応答性を向上させることができる。ただし、ユーザにとっての復帰処理完了となる書換処理の選択肢が多い場合、それら全てに関してプレロードしておくことは、プレロードに要するコストが大きくなってしまう。そこで、例えば選択肢の数に基づいてプレロードを実行すべきか否かを判定してもよい。あるいは、復帰処理中であることを示す特定の画像データを決めておき、その画像データの前処理結果を前処理キャッシュに常に格納しておき、復帰処理が開始されるとまずこれをEPD140の特定の場所に表示してユーザに復帰処理が開始されていることをいち早く知らせてもよい。
図17は、電子書籍アプリケーション端末、インタラクティブな電子POPや電子カルテなどで実行されるハイバネーション時の処理フローの一例を示すフローチャートである。図17に示す例では、閲覧時にアプリケーション側で積極的にハイバネーションを利用して消費電力を低減することを想定する。また、サスペンド処理された待機状態の時に、キーボードのBACKキーかNEXTキーをトリガとして復帰処理を開始することを想定する。BACKキーが押下された場合には、現在表示されているページの前のページの書換を行い、NEXTキーが押下された場合には、次のページの書換を行う。
図17に示すように、ハイバネーション時の処理フローでは、まず、情報処理装置のOSは、アプリケーションでハイバネーションを実行するように指示する前に、復帰処理が完了となる書換処理の選択肢(プレロード項目)の数が閾値より大きいか否かをチェックする(ステップS601)。例えば閾値が1の場合、NEXTキーとBACKキーとで2つの選択肢があるが、BACKキーは前処理キャッシュにキャッシュヒットするのでプレロードが不要とみなして選択肢を1つと判断してもよい。
プレロード項目が閾値より大きい場合(ステップS601;YES)、OSは、ステップS603へ進む。一方、プレロード項目が閾値より小さい場合(ステップS601;NO)、OSは、NEXTキーが押された場合に書換える次のページの前処理の実行をEPD書換制御部110に指示し(ステップS602)、ステップS603へ進む。これにより、次のページが前処理キャッシュにプレロードされる。
ステップS603では、プレロードが完了後に、OSが、ハイバネーションを実行する(ステップS603)。その後、NEXTキーが押下されたことをトリガとして待機状態からの復帰処理を開始すると、次のページの書換要求がEPD書換制御部110に送られる。これに対し、EPD書換制御部110は、前処理キャッシュがキャッシュヒットするので、前処理キャッシュを用いた書換処理を実行する。これにより、サスペンドされた待機状態からの復帰を高速に行うことが可能となる。
なお、プレロード項目に対する閾値は、情報処理装置の太陽電池で発電した余剰電力や蓄電部の残量に応じて変化させてもよい。例えば、太陽電池で発電した余剰電力が多い場合や蓄電部の残量が多い場合には、閾値を大きくしてもよい。
ここでは、ハイバネーションを実行した場合の待機状態からの復帰処理の例について説明したが、情報処理装置が備えている消費電力が低い待機状態に対してでも適用可能であることは言うまでもない。
(実施形態7)
実施形態1〜4の前処理キャッシュ方式において、アプリケーションなどが持っている書換処理などに関する情報や知識などをヒント情報という形式でEPD書換制御部110に与えることで、より前処理キャッシュのキャッシュヒット率を高めることができる。また、必ず前処理キャッシュにキャッシュヒットする状況を保証することで、書換データをフレームバッファなどに用意するためのレンダリングなどのデータ生成処理と、生成された書換データをフレームバッファへ書き込む処理とをなくすことができ、それにより、より積極的な省電力化や高速化を図ることが可能になる。
EPD140の書換処理には、再び同じ書換処理を実行する確率が高いものと低いものがある。アプリケーションやミドルウエアなどが再び実行される確率の高い書換処理を特定できる場合、EPD書換制御部110に渡す書換処理に、再び実行される確率の高い書換処理であるか否かを示すヒント情報を付加することで、EPD書換制御部110のキャッシュ管理部111が前処理結果をキャッシュすべきか否かを判断する際に利用することが可能になる。結果として、キャッシュヒット率を高める、書換処理に要する平均的な消費電力および処理時間を削減することが可能になる。また、実施形態3のように、キャッシュを配置できるアクセス速度が異なるメモリがある場合には、どの書換処理の前処理結果をアクセスの速いメモリに配置すべきかの判断に利用することも可能になる。なお、ヒント情報としては、例えば、この書換処理の前処理結果をキャッシュしないように、この書換処理の前処理結果をできるだけキャッシュするように、および、メニューなどの頻繁に利用するデータの際は必ずキャッシュしてキャッシュから置換されないようにするなどが挙げられる。
図18および図19に、必ず前処理キャッシュにキャッシュして置換されないように指示するヒント情報を書換要求に付加して、必ず前処理キャッシュにキャッシュヒットする状況を保証することで、書換データをフレームバッファなどに用意するためのレンダリングなどのデータ生成処理と生成された書換データをフレームバッファへ書き込む処理をなくすことができる例の概要を示す。
また、図20に、前処理キャッシュのキャッシュエントリの例を示す。図20に示す例は、図4に示した前処理キャッシュにLOCKビットが追加された構成になっている。図20に示すように、必ずキャッシュして置換されないように指示するヒント情報が付加された場合、キャッシュ管理部111は、前処理キャッシュのLOCKビットを‘1’にする。LOCKビットが‘1’の場合、前処理キャッシュは、他のデータで置き換えられない。ただし、すべてのキャッシュエントリのLOCKビットが‘1’であり、且つ、これ以上キャッシュエントリを追加できない場合、次にこのヒント情報を受信した際には、キャッシュせずに書換処理を行うとともに、アプリケーションなどにこれ以上キャッシュできないことを通知して不要なLOCKビットを解除させるように構成してもよい。
図18に示す例は、最初の書換時などに、必ずキャッシュヒットすることを保証するヒント情報を付加して書換処理を行う場合の例である。図18に示すように、まず、CPU101やGPUなどのアクセラレータなどを利用して書換データを生成するためのレンダリング処理などを行うことで、書換データのもととなるデータ701から書換データ731を生成する。生成された書換データ731は、GPUなどでフレームバッファ703などの前処理用アクセラレータ102がアクセスするメモリ上へコピーされる。前処理部113は、前処理を前処理用アクセラレータ102に指示する。前処理用アクセラレータ102は、指示に応じて前処理を実行する。その際、キャッシュ判定部112によりキャッシュミスが判定されると、キャッシュ管理部111により前処理キャッシュのLOCKビットが‘1’に設定された前処理キャッシュがキャッシュされ、書換処理部114が前処理キャッシュ上のデータを利用した書換をEPDコントローラ105に指示する。なお、描画処理まで行わずに前処理キャッシュのプレロードをEPD書換制御部110に指示する際に当該ヒント情報を付加しても当然よい。
図19に示す例は、必ずキャッシュヒットすることが保証された状態での後続の書換処理を行う場合の例である。図19に示す例では、書換処理に必要な情報はすべて前処理キャッシュ上にあるので、フレームバッファ上に書換データがなくてもよい。書換データ731を生成する処理や書換データ731のフレームバッファ703への書き込みなどの処理を省略することができる。そのため、書換データ731を生成する部分も含めた書換処理部114が書換を指示するまでの一連の処理の時間を大幅に短縮することができる。その結果、情報処理装置の応答性を大幅に向上させることができ、情報処理装置が消費電力の低い待機状態でいる時間を長くできるので、その分の電力を削減することができる。また、書換データ731を生成する処理やフレームバッファ703への書き込みや前処理に必要な電力も削減することができるので、大幅に消費電力を削減することが可能になる。
図21は、実施形態7にかかるアプリケーションやミドルウエア側の処理フローの一例を示すフローチャートである。図21では、最初の書換時などに、必ずキャッシュヒットすることを保証するヒント情報を付加して書換処理を行う場合を例示する。まず、CPU101やGPUなどのアクセラレータなどが、書換データを生成するためのレンダリング処理などを行う(ステップS701)。つぎに、CPU101やGPUなどのアクセラレータが、生成した書換データ731をフレームバッファ703などの前処理用アクセラレータ102がアクセスするメモリ上へコピーする(ステップS702)。その後、EPDコントローラ210のドライバなどであるEPD書換制御部110へ、ヒント情報を含む書換要求を発行し(ステップS703)、処理を終了する。
図22は、必ずキャッシュヒットすることが保証された状態での後続の書換処理の一例を示すフローチャートである。図22に示す場合では、書換に必要な情報はすべて前処理キャッシュ上にあるので、アプリケーションやミドルウエアは、EPD書換制御部110に書換要求を発行する処理を行う(ステップS711)。このように、アプリケーション側では、フレームバッファ703への書き込み処理などの処理が不要になる。
なお、書換データ731を生成するための処理結果で再利用できるものは、アプリケーションやミドルウエアレベルでキャッシュしておく2レベルでのキャッシュを実現する構成でもよい。
また、実施形態7は、実施形態5の前処理キャッシュへのプレロードと組み合わせることも可能である。例えば、教育現場などにおける学習用途の試験を実施するアプリケーションやアンケートなどで全ページを順番に書換えることが決まっている場合、N番目のページを書換要求する際に、N+1番目のページを前処理キャッシュへプレロードするヒント情報を付加することで、N番目のページの書換処理とN+1番目の前処理とをオーバラップさせることが可能となる。その結果、より処理時間が短い方の処理時間を隠蔽することができる。
また、書換要求にその都度ヒント情報を付加する方法以外にも、例えばアプリケーションの起動時や一連の決まった処理を開始する直前などに、EPD書換制御部110にアプリケーションが持っている知識や情報をヒント情報として渡すように構成してもよい。これにより、例えば、比較的ページ数の少ない学術論文データや電子カルテなどを閲覧するような比較的ページを前後しながら閲覧することが多い場合には、閲覧の仕方と全ページ数とをヒント情報として通知しておくと、全ページキャッシュする方が効率がよいと判断することなどが可能になる。
(実施形態8)
実施形態1〜4の前処理キャッシュを利用して前処理時間を削減することで、後続の書換処理の開始タイミングを早めることができる。その結果、全体の書換処理の処理時間を短縮するこができるので、短時間でSoC100やメモリを消費電力が低い待機状態や電源オフにすることが可能となり、更なる省電力化を図ることができる。
なお、以下の説明では、明確化のため、実施形態1にかかる情報処理装置1(図1参照)の構成を前提に説明するが、実施形態1〜4のいずれの構成にも適用可能である。ただし、前提として、EPDコントローラ210が周期的に書換処理を開始可能な設計であるとする。この構成によれば、例えばNミリ秒ごとに書換開始可能なタイミングがおとずれ、その時点までに前処理が終わって描画することができる書換要求に対して、EPD140への実際の描画処理が行われる。
図23を用いて、説明に利用する画像ビューワーアプリケーションについて説明する。図23に示すように、画像ビューワーアプリケーションは、画像データを表示する領域810と、画像データを切り替えるBACKキー801およびNEXTキー803とが、EPD140にソフトウエアで表示されている。タッチパネルでBACKキー801を選択すると、ひとつ前の画像データが領域810に表示され、NEXTキー803を選択すると、次の画像データが領域810に表示される。この画像ビューワーアプリケーションにおいて、BACKキー801とNEXTキー803が選択された場合、選択されたことをユーザにフィードバックするために、当該キーの書換処理を行う。これらのキーは、画像ビューワーアプリケーションでは頻繁に書換が行われるため、前処理キャッシュにキャッシュヒットする可能性が高い。一方で、画像データは次々に切り替わるので、NEXTキー803を選択した場合にはキャッシュされていない画像データの書き換えが発生する。つまり、このアプリケーションでは、NEXTキー803が選択されると、前処理キャッシュにキャッシュヒットするNEXTキー803自体の書換処理と、前処理キャッシュにキャッシュヒットしない画像の書換処理との2つの書換処理が行われる。
図24は、EPDコントローラで並列処理される2つの書換処理の例を示すタイミングチャートである。図24(a)は、EPDコントローラ105で並列処理される2つの書換処理の前処理キャッシュがない場合のタイムチャートである。まず、時刻T0でNEXTキー803の前処理が開始され、書換開始タイミングの時刻T1にその処理が間に合うのでNEXTキー803の描画処理が時刻T1に開始される。図1の構成では、前処理を行う前処理用アクセラレータ102が一つしかないため、画像データの前処理は、NEXTキー803の前処理が終了する時刻T1からの開始となる。この前処理は、書換開始可能タイミングである時刻T2の少し前に終了してしまうので、時刻T2まで書換開始待ちが発生する。時刻T2になると、画像データの描画処理が開始される。時刻T4に描画処理が完了し、この時点ではじめてメインメモリ120やSoC100の電源をオフにしたり、消費電力が低い待機状態に遷移させたりすることができる。
一方、図24(b)は、前処理キャッシュを利用する場合のタイミングチャートである。まず、NEXTキー803は、前処理キャッシュでキャッシュヒットするためNEXTキー803の前処理は不要となる。そのため、前処理用アクセラレータ102は、すぐに画像データの前処理を実行することができる。NEXTキー803の描画処理は、書換開始可能タイミングの時刻T1まで開始されず、書換開始待ちとなる。画像データの前処理が時刻T1までに終わるので、画像データとNEXTキー803との描画処理が同時に開始されて並列実行され、時刻T4より早く描画処理が完了する。そのため、この終了時刻から時刻T4までの間も、メインメモリ120やSoC100の電源をオフにしたり消費電力が低い待機状態に遷移させたりすることができる。その結果、前処理キャッシュを利用しない場合と比較して消費電力を削減することが可能となる。
このように、前処理キャッシュを利用することで、前処理キャッシュが効かない書換処理が一連の書換処理に含まれる場合でも省電力効果を得ることができる。
(実施形態9)
上述した実施形態では、前処理キャッシュのタグ部に書換データを区別するための書換データIDを格納した。ただし、これに限らず、たとえば書換データIDを利用しない構成も可能である。その場合、図4に示した前処理キャッシュの構成における書換データIDの代わりに、書換データそのものを利用すればよい。その場合、書換データIDのフィールドがデータへのポインタになっていてもよい。このような構成とすることで、書換データIDが付加されていない書換要求が発行された場合でも、当該書換データと、前処理キャッシュに保存されている書換データとを比較することで、上述した実施形態で行われていた書換データIDが一致するか否かの判定と同様の判定を行うことができる。その場合、書換データ同士の比較となるので、書換データのデータサイズが小さければ処理量も少ないので、キャッシュや判定処理を行うという構成としてもよい。また、書換データのサイズとEPD140への表示位置とを書換データIDの代わりとして用いてもよい。
このような構成は、上述した実施形態のすべてで利用可能である。なお、書換データと前処理キャッシュに保存されている書換データとの比較は、ソフトウエアあるいはハードウエアで行うことができる。
(実施形態10)
上述した実施形態は、情報処理装置単体で前処理キャッシュを利用して省電力化を図る構成であったが、これに限らず、たとえば複数台の情報処理装置で共通の前処理を行うような場合に、その前処理をクラウド、サーバ、複合機、スマートフォン、タブレットPC、デジタルテレビなどにオフロードすることで、個々の情報処理装置での前処理を行わないようにすることも可能である。
図25は、実施形態10にかかるクラウドシステムの概略構成例を示すブロック図である。図25に示すように、クラウドシステム10は、複数の情報処理装置1A〜1Nと、クラウドサーバ1001とが、インターネットなどのネットワーク1000を介して接続された構成を備える。各情報処理装置1A〜1Nは、上述した実施形態のいずれの情報処理装置であってもよい。以下では、説明の簡略化のため、実施形態1にかかる情報処理装置1であるとする。クラウドサーバ1001は、SoC100内部の無線LANコントローラ106などを利用して通信可能な計算システムであり、書換データに対する前処理を実行して、得られた前処理結果を前処理キャッシュ1001A〜1001Nとして保持している。このクラウドサーバ1001は、例えばサーバ、クラウド、複合機、スマートフォン、タブレットPC、デジタルテレビなどであってよい。前処理キャッシュ1001A〜1001Nは、クラウドを構成する計算機上の不揮発性メモリ上で管理される。
クラウドサーバ1001側に設けられるEPD書換制御部は、実施形態1にかかるEPD書換制御部110(図2参照)と同様であってよい。ただし、書換処理部114が、情報処理装置1A〜1N側に配置される。
これらの情報処理装置1A〜1Nで、例えば同じ電子書籍を閲覧する場合、個々の情報処理装置で同じ前処理を行うことは消費電力の無駄である。そこで、前処理用のクラウドサーバ1001で共通の前処理を行い、その結果である前処理済書換データと書換制御情報選択IDのペアを、前処理キャッシュ1001A〜1001Nとしてクラウドサーバ1001側でキャッシュしておく。
図26に、実施形態10にかかるクラウドシステムの処理フローの一例を示す。図26に示すように、まず、各情報処理装置1A〜1Nで、特定の電子書籍の任意のページを表示する際、該当書換データの書換要求が、各情報処理装置1A〜1Nからクラウドサーバ1001上のEPD書換制御部110に、各情報処理装置1A〜1Nの無線LANコントローラ106を介して送信されて、クラウドサーバ1001のEPD書換制御部110におけるキャッシュ判定部112が呼ばれる(ステップS1001)。キャッシュ判定部112は、クラウドサーバ1001上の前処理キャッシュ1001A〜1001Nをチェックし、前処理キャッシュ1001A〜1001Nにキャッシュヒットするか否かを判定する(ステップS1002)。前処理キャッシュ1001A〜1001Nのいずれかにキャッシュヒットする場合(ステップS1002;YES)、クラウドサーバ1001のEPD書換制御部110は、ステップS1006に進む。一方、前処理キャッシュ1001A〜1001Nのいずれにもキャッシュヒットしない場合(ステップS1002;NO)は、クラウドサーバ1001のEPD書換制御部110におけるキャッシュ管理部111が、前処理結果を格納するキャッシュエントリを決定する(ステップS1003)。つぎに、クラウドサーバ1001のEPD書換制御部110における前処理部113が、クラウドサーバ1001上で当該ページの前処理を行い(ステップS1004)、決定した前処理キャッシュに前処理結果である書換制御情報選択IDや前処理済書換データを格納し(ステップS1005)、ステップS1006へ進む。
ステップS1006では、クラウドサーバ1001は、前処理キャッシュ上の書換制御情報選択IDや前処理済書換データのペアを情報処理装置1A〜1N側の書換処理部114に送信する(ステップS1006)。これに対し、情報処理装置1A〜1N側の書換処理部114は、受信した書換制御情報選択IDに対応する書換制御情報を情報処理装置1A〜1Nのメインメモリ120などからそれぞれ読み出し、受信した前処理済書換データを利用してEPD140への描画処理をEPDコントローラ105に指示し(ステップS1007)、処理を終了する。
なお、クラウドサーバ1001で作成される前処理キャッシュ1001A〜1001Nは、情報処理装置1A〜1Nのディスプレイの種類や大きさや解像度、書換制御情報のバージョン、あるいは温度などに応じて異なるものが作成されてもよい。
また、情報処理装置1A〜1N側で、EPD140の描画処理と次のページの受信処理とその先の書換要求(前処理のみを要求する前処理プレロードの要求であってもよい)の送信処理をオーバラップさせることで、情報処理装置1A〜1Nがアクティブな時間を短くすることができるため、消費電力を削減することが可能となる。また、電子書籍の一ページやウェブブラウザの一画面を表示するために、各情報処理装置1A〜1Nにおいて部分的な書換処理が複数必要な場合は、書換処理毎に送受信するのではなく、ページなどのまとまった単位で送受信することで、データの送受信にかかる消費電力や時間を削減することができる。また、情報処理装置1A〜1Nにおいて、まとまった単位のデータの送受信を描画処理と重ねることで、情報処理装置1A〜1Nにおいてアクティブ時間を短くすることもでき、消費電力が低い待機状態である時間を長くすることができ消費電力を削減することができる。
また、クラウドサーバ1001側での前処理を情報処理装置1A〜1Nからの書換要求のたびに実行するのではなく、情報処理装置1A〜1Nで実行する電子書籍アプリケーションの起動時などに電子書籍を特定する情報を送信させて、その電子書籍のすべてのページの前処理を一括してクラウドサーバ1001上で並列実行してもよい。
また、クラウドサーバ1001側から書換制御情報選択IDの代わりに書換制御情報を送信してもよい。その場合、情報処理装置1A〜1N側では書換制御情報を保持していなくてもよい。
情報処理装置1A〜1N側には、書換データを配置する必要なく、書換制御情報を配置すればよい。前処理を必ずクラウドサーバ1001上にオフロードする場合は、情報処理装置1A〜1Nには、前処理用アクセラレータ102が必要なくなるため、より低消費電力でコンパクトで軽量な情報処理装置1A〜1Nにすることができる。一方で、無線LANアクセスができないような場合を想定して、書換データは情報処理装置1A〜1N側にあってもよい。無線LANの送受信に必要な時間や消費電力が動的に変動し情報処理装置1A〜1N側で前処理するのに対して大きくなってしまう可能性があるような場合には、例えばアプリケーションの起動時や一定の時間間隔で、クラウドサーバ1001側で前処理を行う場合と、情報処理装置1A〜1N側で前処理を行う場合との双方を試して、処理時間や消費電力の小さい方に切り替えるようにしてもよい。
前処理キャッシュ1001A〜1001Nがクラウドサーバ1001を形成する計算機のMRAMなどの不揮発メモリ上に構成される場合は、電源管理部115はアイドル時にMRAMの電源をオフにすることで消費電力を削減することができる。
また、情報処理装置1A〜1Nの太陽電池で発電した余剰電力や蓄電部の残量に応じて送受信を制御してもよい。例えば、太陽電池で発電した余剰電力が多い場合や蓄電部の残量が多い場合には、これらが少なくなる場合に備えて、電子書籍の先々のページの前処理のオフロードと前処理結果の受信を実行しておいてもよい。
また、前処理をクラウドサーバ1001に実行させ、前処理キャッシュ1001A〜1001Nを、上述した実施形態と同じように、情報処理装置側で管理する構成でもよい。その場合、一度情報処理装置側でキャッシュしてしまえば、前処理することなく描画処理を行うことができ、書換処理を省電力化することが可能になる。
(実施形態11)
上述した実施形態において、ウェブブラウザやリストなどについているユーザインタフェースであるスクロールバーなど、同じ書換データで同じ書換制御情報を利用して電子ペーパの書換処理を連続的に行い、かつ、それらの書換領域に重なりがある場合、前処理キャッシュ上に差分のみをプレロードしておき、前処理キャッシュ上の差分を利用して繰り返し描画処理するように構成することも可能である。あるいは、上記書換データのキャッシュをプレロードしておきそこから差分を計算し、差分を利用して繰り返し描画処理するように構成することも可能である。これらの場合、データ処理量を減らし、情報処理装置のユーザがスクロールバーなどを操作した際にはすぐに描画処理を実行する(スクロールバーが移動する)ように構成することで、応答性を向上させ且つ消費電力を削減することができる。また、その際に、連続する書換処理を間引くことで、データ処理量が削減されるため、消費電力の削減を図ることができる。
ここで、EPD書換制御部にスクロールバー用に最適化された書換モードを用意しておき、それを利用して書換処理を実行する例を挙げる。図27は、スクロールバー用に最適化された書換モードを用いた書換処理の概要を説明するための図である。図27において、例示するスクロールバーは、白いレール状の背景と、現在EPD140に表示されている領域を示す黒いノブ(つまみ)とを有する。このようなスクロールバーは、2値のイメージデータで描画することができる。アプリケーションやミドルウエアは、図27における点線で囲まれた黒部分1103(ノブ)と、その上の矩形領域である白部分1102とをあわせた点線で囲まれた領域であるスクロールバー書換領域1101の書換処理を、書換A→書換B→書換C→書換D→書換Eの順にEPD書換制御部110に書換要求を発行する。その結果、スクロールバーの黒部分1103(ノブ)が下方向にずらしながら表示されるため、ノブが下方向にスライドしたように表現される。
スクロールバーの書換処理では、まず、アプリケーションの起動時など、ユーザによるスクロール処理が始まる前に、スクロールバー用の書換モードをアプリケーションで利用することと、その際のスクロールバー情報としてスクロールバー書換領域1101の書換要求を発行する際に使用する書換データID(例えば100番)とをEPD書換制御部110に事前に通知する。その際、スクロールバー書換領域1101のサイズ、白部分1102と黒部分1103とのサイズなどもEPD書換制御部110に通知する。EPD書換制御部110は、末尾部分(白部分1102)の残像が残りづらい書換制御情報を選ぶように前処理し、書換データID=100番で前処理キャッシュへプレロードする。黒部分1103については、移動距離の一単位(例えば書換A→書換B)を移動した前後の黒部分1103の重なり部分1103aと、残りの先頭部分1103bとに黒部分1103(ノブ)を分割する。先頭部分1103bの残像が残ったとしても、末尾部分(白部分1102)の書換時に消せばよいので、黒部分1103ができるだけはやくユーザに見えるような書換制御情報を選ぶようにして前処理を実行し、その結果を例えば次の書換データID=101番で前処理キャッシュへプレロードしておく。
なお、残像が残らないようにするための書換制御情報で書き換える際には、残像が残らないように書換処理の中間で一度黒く書換える際の黒が最もはやく見えるのであればその特性を活かしてその書換制御情報を用いてもよい。また、重なり部分1103aの前処理は不要である。
実際のユーザによるスクロール処理が開始され、書換データID=100番と、スクロールバー書換領域1101の位置(書換開始位置)とがEPD書換制御部110に次々に通知されると、前処理キャッシュの書換データID=100番はアプリケーション起動時に既にスクロールバー用の書換データIDであると分かっているので、書換データID=101番の前処理キャッシュも併せて検索し、スクロールバー情報に基づいて計算された所定の書換位置に、キャッシュされているデータを利用した書換処理を行う。具体的には、まず、書換処理部114が先頭部分1103bの書換を指示し、次に末尾部分(白部分1102)の書換を指示する。なお、先頭部分1103bの書換は、黒への変化がはやくユーザに見せられるような書換制御情報を使うので、ノブの移動がユーザのスクロール処理により追随してくるようにみせることができ、これにより、ユーザエクスペリエンスの向上を図ることができる。また、末尾部分(白部分1102)の書換で残像を消すようにしているので、スクロール処理で残像が残らない。
なお、ノブの移動距離の単位によっては、頻繁に書換が発生する場合が存在する。その場合、中間の書換を間引くことで、書き換え回数を減らすとよい。これにより、省電力化することができる。間引きの割合は、たとえば数回に1回の割合でもよい。例えば、図27の書換A〜書換Eのうち、一つおきの書換Bおよび書換Dを間引いてもよい。さらに、書き換え回数が多いとEPDコントローラ105が書換処理を並列処理できる数をオーバーしてしまい、オーバーしてしまった書換処理が先行書換処理の終了まで待たされてしまう場合が存在する。その場合は、書換時間間隔を調整することで、書き換え回数が並列処理できる数をオーバーしないように調整するとよい。たとえば、書換時間間隔をT、Rを矩形の書換処理に要する時間、Pを並列度の上限とすれば、R/PよりTが大きくなるように、中間の書換処理を間引くことで、書き換え回数が並列処理できる数をオーバーすることを回避できるため、オーバーしてしまった書換処理が先行書換処理の終了まで待たされることを防止できる。
図28に、図27で下向きにノブを移動させていたユーザが急にノブの移動方向を上向きに変更させた場合の書換処理の概要を示す。図28に示す例では、書換A〜書換Eの順で書換処理を行った後、書換e〜書換aの順でEPD書換制御部110へ書換要求が発行される。この場合、書換Eの末尾部分(白部分1102)の白への書換に時間がかかっていると、この書換が完了するまで、書換eの先頭部分1103bの黒への書換と、書換dの先頭部分1103bの下で書換eの先頭部分と同じ高さの領域の書換処理が待たされる。そのため、分割せずスクロールバー書換領域全体の書換処理をする場合、書換eと書換dとの書換処理全体が先行書換処理の完了待ちとなり、ユーザのスクロール処理にノブの移動が追随しない場合がある。そこで、先頭部分1103bと末尾部分(白部分1102)とを分割して書換処理を行うことで、書換dの先頭部分1103bの書換処理と、書換eおよび書換dにおける白に書換える書換処理とが先行書換処理に影響されず、先に書き換えられる。それにより、ユーザに対してノブが追随して移動しているように見せることができ、ユーザビリティを高めることができる。なお、書換eの先頭部分1103bの書換は、書換Eの末尾部分(白部分1102)の書換後に実行される。
(実施形態12)
つぎに、実施形態12にかかる情報処理装置、表示制御装置、半導体チップ、表示装置の制御方法およびそのプログラムについて、図面を参照して詳細に説明する。なお、以下の説明において、上述した実施形態と同様の構成については、同一の符号を付し、その重複する説明を省略する。
実施形態4のマイクロコントローラ400を利用して書換処理に必要最低限な部分を動作させる形態は、EPD140を搭載した情報処理装置4に限定されるものでなく、LCDなどの表示装置全般を搭載したスマートフォンやタブレットPCや携帯電話などに対しても適用可能である。この場合の前処理には、レンダリング処理や表示する画面の生成などの書換データの生成処理が含まれる。前処理キャッシュに格納される値は、その結果である表示装置が利用するフレームバッファの内容などとなる。
図29は、実施形態12にかかる情報処理装置の概略構成を示すブロック図である。図29に示すように、実施形態12にかかる情報処理装置12は、実施形態4にかかる情報処理装置4(図11参照)のEPD140をLCDなどの表示装置1240に、EPDコントローラ210をLCDコントローラなどの表示装置コントローラ1210に、EPD専用メモリ220を表示装置専用メモリ1220に、SoC100が前処理用アクセラレータ102を備えたSoC1200に、それぞれ置き換えた構成を備える。
マイクロコントローラ400は、キーボードなどによる割り込み処理の要求を受信すると、当該割り込みに対応する表示装置1240への書換処理の前処理キャッシュが存在するか否かを判定し、キャッシュヒットの場合には表示装置コントローラ1210に書換要求を直接送信し、キャッシュミスした場合にはSoC1200へ割り込みを送信し、必要に応じてSoC1200から表示装置1240へ書換要求を発行する。そのため、前処理キャッシュにキャッシュヒットする場合は、SoC1200の電源をオフのままに、メインメモリ120に供給される電力もメモリの内容を保持することができる通常の読み書き可能時よりも低い電力に遷移させたままとすることができるため、ページを書換える必要最低限の構成で書換処理を行うことが可能になり、それにより、消費電力を大幅に削減することができる。例えば、電子書籍アプリケーションのような場合、新たな電子書籍やその新たな章など開く場合は、SoC1200やメインメモリ120も含んだ構成で動作し、その後の電子書籍閲覧時の単純なページ送りを繰り返す時間の大半の部分をSoC1200やメインメモリ120を利用しない必要最低限の構成で動作させるようなことが可能になる。
情報処理装置12は、SoC1200と、メインメモリ120と、表示装置1240と、表示装置コントローラ1210と、表示装置専用メモリ1220と、電源制御装置150Aおよび150Bと、電源制御装置450と、マイクロコントローラ400と、1つ以上の入力デバイス130とから構成される。
マイクロコントローラ400は、消費電力がSoC1200より低く、常に通電されている。マイクロコントローラ400は、内部メモリ401を持っており、内部メモリ401内に前処理キャッシュのタグ部が保持されている。
表示装置コントローラ1210は、内部メモリ211を持っている。内部メモリ211には、複数の書換データから構成される前処理キャッシュが格納されている。前処理キャッシュのタグ部は、表示装置コントローラ1210の内部メモリ211にも格納される。表示装置コントローラ1210の内部メモリ211内に保持された前処理キャッシュのタグ部と、マイクロコントローラ400の内部メモリ401に保持される前処理キャッシュのタグ部とは、一貫性が維持される。
実施形態12では、表示装置書換制御部は、表示装置コントローラ1210の中の処理である。その構成は、たとえば図2に示したEPD書換制御部110と同様であってよい。ただし、キャッシュ判定部112は、マイクロコントローラ400にも実装される。なお、SoC1200の電源をオン/オフする電源管理部が、マイクロコントローラ400に実装されてもよい。前処理部113は、CPU101で動作するOSやミドルウエアやアプリケーションの処理であり、前処理用アクセラレータ102などを利用してもよい。
図30に、表示装置コントローラ1210上に保持される前処理キャッシュの構成例を示す。前処理キャッシュは、複数のキャッシュエントリから構成される。図30の例では、4個のエントリが存在する。各キャッシュエントリは、タグ部と前処理キャッシュデータ部とのペアから構成される。
タグ部は、前処理済書換データIDとVALIDビットとから構成される。アプリケーションなどによって発行される表示装置1240の書換要求は、前処理済書換データを区別する前処理済書換データIDを付加して発行される。このような書換要求を受信したキャッシュ判定部112は、キャッシュヒットするか否かの判定を行う。キャッシュ判定では、タグ部を検索することで、前処理済書換データIDが一致し、且つ、キャッシュエントリのデータが有効(VALID)か無効(INVALID)か示すVALIDビットが有効(VALID)になっているエントリが存在するか否かが判定される。
前処理済書換データIDは、前処理済書換データを一意に識別するための情報である。例えばアプリケーションやミドルウエアが前処理済書換データと前処理済書換データIDを関連づけて管理し、同じ前処理済書換データを用いる書換処理の際は、同一の前処理済書換データIDを書換要求に付加して表示装置書換制御部に通知する。
前処理キャッシュデータ部には、前処理済書換データが格納されている。前処理済書換データは、画面を書換えるデータを格納するフレームバッファのサイズなどで、この例ではそのデータサイズは同じである。
図31は、実施形態12にかかる書換処理の一例を示すフローチャートである。図31に示す例では、表示装置書換制御部が前処理済書換データをキャッシュする。この処理は、情報処理装置12のユーザがキーボードのキー入力などによりマイクロコントローラ400へ割り込みが発生すると開始される。実施形態3と同様に、キーボードの特定のキーには、予め特定の前処理済書換データIDが割り当てられている。
図31に示すように、書換処理では、マイクロコントローラ400上のキャッシュ判定部112が、マイクロコントローラ400の内部メモリ104上にある前処理キャッシュのタグ部を利用し、割り込み時に通知された前処理済書換データIDに一致するものが前処理キャッシュに存在するかチェック(キャッシュ判定)し(ステップS1201)、キャッシュヒットした場合(ステップS1201;YES)、表示装置コントローラ1210への電力供給を電源制御装置150Bに指示して表示装置コントローラ1210を電源オンするとともに(ステップS1212)、書換要求を表示装置コントローラ1210へ送信し(ステップS1213)、ステップS1211へ進む。一方、キャッシュヒットしない場合(ステップS1201;NO)、マイクロコントローラ400上のキャッシュ判定部112は、SoC1200へ割り込みを通知する。これにより、アプリケーションなどへキー入力イベントが通知され(ステップS1202)、必要に応じてキー入力イベントに対応する処理がアプリケーションなどで実行される。その結果として、前処理部113がGPUなどの前処理アクセラレータ102などを利用してレンダリングなどの前処理を実行し(ステップS1203)、得られた前処理結果を用いて、表示装置コントローラ1210へ前処理済書換データIDが付加された書換要求を発行する(ステップS1204)。なお、SoC1200へ割り込みを通知する際、SoC1200の電源がオフであれば、マイクロコントローラ400の電源管理部115は、電源制御装置150Aを利用してSoC1200の電源をオンにし、その後、割り込みを通知する。また、キー入力イベントに対応する処理の結果として書換要求が表示装置コントローラ1210へ発行された後は、SoC1200を消費電力が低い待機状態に遷移させてもよいし、マイクロコントローラ400上の電源管理部115がSoC1200への電源供給を停止するように指示してもよい。
つぎに、表示装置コントローラ1210の処理である電源管理部115が、表示装置専用メモリ1220の電源がオフ、または、消費電力の比較的低い省電力状態になっているか否かを確認し(ステップS1205)、電源がオフまたは省電力状態になっている場合(ステップS1205;YES)、電源制御装置150Bを利用して表示装置専用メモリ1220の電源をオン、または、読み書き可能な状態となるように省電力状態から復帰させて(ステップS1206)、ステップS1207へ進む。一方、表示装置専用メモリ1220の電源がオンである場合(ステップS1205;NO)、表示装置コントローラ1210はそのままステップS1207へ進む。
ステップS1207では、表示装置コントローラ1210の処理であるキャッシュ管理部111が、LRUなどの置き換えるべきキャッシュエントリを判定するアルゴリズムを用いてキャッシュエントリを決定する(ステップS1207)。つづいて、表示装置コントローラ1210の処理である前処理部113が、ステップS1203で実行した前処理の結果を、決定されたキャッシュエントリに書きこむ(ステップS1208)。
つぎに、表示装置コントローラ1210の処理である電源管理部115が、電源制御装置150Bを利用して表示装置専用メモリ1220の電源をオフ、または、省電力状態へ遷移させる(ステップS1209)。つぎに、表示装置コントローラ1210のキャッシュ管理部111が、前処理キャッシュのタグ部の情報をマイクロコントローラ400へ送信し、マイクロコントローラ400側で同期をとるためにタグ部を更新する処理を実行することで、マイクロコントローラ400の内部メモリ401に保持されているタグ部と表示装置コントローラ1210の内部メモリ211にあるタグ部とを整合させて(ステップS1210)、ステップS1211へ進む。これにより、マイクロコントローラ400の内部メモリ401に保持されているタグ部と表示装置コントローラ1210の内部メモリ211にあるタグ部との間で一貫性が保持される。なお、このステップS1210に示す処理は、SoC1200を介して実行されてもよい。
ステップS1211では、表示装置コントローラ1210の処理である書換処理部114が、前処理キャッシュに格納されている前処理済書換データを読み出し、表示装置1240の書換処理を行い(ステップS1211)、その後、本動作を終了する。
なお、書換処理終了後に、表示装置1240の表示を消して待機状態にする場合、電源管理部115は、電源制御装置150Bを利用して表示装置1240と表示装置コントローラ1210との電源をオフにする。表示装置コントローラ1210の内部メモリ211が不揮発性メモリを利用している場合、電源をオフにしてもキャッシュされたデータは保持される。揮発性のメモリを利用している場合は、内部メモリ211のデータを表示装置専用メモリ1220に書き出して表示装置専用メモリ1220をメモリの内容が保持できる省電力モードに設定してもよいし、表示装置コントローラ1210の内部メモリ211をメモリの内容が保持できる省電力モードに設定したり同内部メモリ211だけに通電したりするようにしてもよい。
実施形態12では、ステップS1210において、マイクロコントローラ400のタグ部と表示装置コントローラ1210のタグ部との一貫性を図っていたが、キャッシュする書換処理を特定の複数の前処理済書換データIDに限定した場合、予め情報処理装置12に設定しておくことで、ステップS1210を省略することができる。
(実施形態13)
実施形態12と同様に、実施形態3のSoC100の内部メモリ104を前処理キャッシュに利用する形態は、EPD140を搭載した情報処理装置4に限定されるものでなく、LCDなどの表示装置全般を搭載したスマートフォンやタブレットPCや携帯電話などに対しても適用可能である。この場合の前処理には、レンダリング処理や表示する画面の生成などの書換データの生成処理が含まれる。前処理キャッシュに格納される値は、その結果であるフレームバッファの内容などとなる。
図32は、実施形態13にかかる情報処理装置の概略構成を示すブロック図である。図32に示すように、実施形態13にかかる情報処理装置13は、実施形態1にかかる情報処理装置1(図1参照)のEPD140をLCDなどの表示装置1240に、EPDコントローラ105をLCDコントローラなどの表示装置コントローラ1305に、それぞれ置き換えた構成を備える。
(実施形態14)
また、実施形態13の構成において、実施形態6のように、ハイバネーションのサスペンド処理がなされた状態からの復帰を高速化することも可能である。その場合、消費電力が低い待機状態に入る前に、復帰後に表示する前処理済書換データを内部メモリ104の前処理キャッシュに保存すればよい。
(実施形態15)
また、上述した実施形態において、図33に示すように、前処理キャッシュのタグ部に、温度範囲のパラメータが追加されてもよい。すなわち、実施形態15では、情報処理装置が温度センサを備え、これが配置された空間の温度などに応じて、異なる書換制御情報が用いられるように構成される。
上記実施形態およびその変形例は本発明を実施するための例にすぎず、本発明はこれらに限定されるものではなく、仕様等に応じて種々変形することは本発明の範囲内であり、更に本発明の範囲内において、他の様々な実施形態が可能であることは上記記載から自明である。例えば実施形態に対して適宜例示した変形例は、他の実施形態と組み合わせることも可能であることは言うまでもない。