今回は、コンピュータの仮想化技術に関する発明を紹介します。今日も一緒に勉強しましょう。
従来、CPU上で動作するモニタを更新・無効化できない問題があります。
この発明では、CPU上でOSが動作する状態から、モニタ上でOSが動作する状態にすることができます。これにより、CPU上で動作するモニタを更新・無効化できるようにします。
CPU上で動作するモニタを更新・無効化できない問題
従来、情報処理装置(コンピュータ)の仮想化技術が知られています。仮想化技術を用いると、1台の情報処理装置の上で複数のオペレーティングシステム(OS)を動作させることができます。
仮想化技術では、バーチャルマシン(モニタまたはハイパーバイザともいう)という仕組みが使われます。仮想化技術には、プロセッサ(CPU)上で直接にモニタが動作するタイプ(タイプ1)と、OS上のアプリケーションとしてモニタが動作するタイプ(タイプ2)とがあります。
タイプ1のモニタは、OSが動作する前に起動するので、タイプ1のモニタを更新したり無効化したりすることができないという問題があります。
CPU上でOSが動作する状態から、モニタ上でOSが動作する状態にする
この発明のドライブ装置(デバイスドライバ)は、プロセッサ上で直接にOSを動作させた状態から、プロセッサ上でモニタを動作させてそのモニタ上に複数のOSを動作させた状態にすることができます。(TrustZoneなどのセキュリティ技術を前提としています)
まず、プロセッサは、ブート後に汎用OSモジュールを実行することで、汎用OSを動作させます。このとき、プロセッサは、セキュアワールドで動作しています。
次に、デバイスドライバは、セキュアワールドのメモリマップのコピーを、ノーマルワールドのメモリマップとして設定します。また、デバイスドライバは、セキュアワールドの割込先アドレスのコピーを、ノーマルワールドの割込先アドレスとして設定します。
このようにすることで、ドライブ装置(デバイスドライバ)は、メモリマップと割込先アドレスをコピーすることで、プロセッサ上で直接にOSを動作させた状態から、プロセッサ上でモニタを動作させてそのモニタ上に複数のOSを動作させた状態にすることができます。
その結果、タイプ1のモニタを更新したり無効化したりすることもできるようになると思われます。
特許第6462540号 株式会社東芝
出願日:2015年9月8日 登録日:2019年1月11日
第1オペレーティングシステムをプロセッサ上で直接動作させ、その後に、プロセッサ上でモニタを直接動作させるとともに、モニタ上で第1オペレーティングシステムおよび第2オペレーティングシステムを動作させた状態に移行する。
【請求項1】
第1ワールドと第2ワールドとで異なるメモリマップを用いてメインメモリにアクセスするプロセッサがドライバモジュールを実行することにより動作するドライバ装置であって、
前記プロセッサは、ブート後において、第1ワールドで、第1OSモジュールを実行することにより第1オペレーティングシステムとして動作し、
前記ドライバ装置は、前記第1オペレーティングシステムの管理の下で動作し、
前記ドライバ装置は、
メモリ管理ユニットにより管理されている第1ワールドのメモリマップをコピーして、第2ワールドのメモリマップとしてメモリ管理ユニットに設定する第1メモリマップ設定部と、
割込制御ユニットにより管理されている第1ワールドの割込先アドレスをコピーして、第2ワールドの割込先アドレスとしてメモリ管理ユニットに設定する第1割込設定部と、
を備えるドライバ装置。
今日のみどころ
CPUのセキュリティ技術もいろいろと進化しています。前提となる技術が難しいので、技術のコアの部分だけを請求項に表現すると、とても抽象的でわかりにくい記載になってしまいます。
この記事で紹介したものも、一見、わかりにくいと感じる人も多いと思います。
そういうときは、明細書の中で請求項の表現と同じような言い方を使っている箇所を検索して、その前の部分を読むと理解できることが多いです。
短時間でだいたいの内容というか、雰囲気をつかむことができるようになれれば、仕事も効率よく進みますね。