(57)【特許請求の範囲】
【請求項１】
セキュア記憶領域を有するメモリと、当該メモリを利用する第１及び第２プロセッサとを備える計算機システムであって、
前記第１プロセッサと前記第２プロセッサとのうちの少なくとも一方が、前記メモリに格納されているプログラムを実行することにより実現される機能的な構成要素として、
前記第１プロセッサと前記第２プロセッサとで実行させる、複数のプログラム実行単位の実行制御を行う実行制御部と、
前記第１プロセッサによる、前記セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、前記セキュア記憶領域へのアクセスが開始されることを示すアクセス開始通知を受け付ける開始通知受付部とを有し、
前記実行制御部は、前記開始通知受付部によって前記アクセス開始通知が受け付けられた場合に、前記第２プロセッサによって実行されるプログラム実行単位が、前記アクセス許可種プログラム実行単位に限定されるように、前記実行制御を行う
ことを特徴とする計算機システム。
【請求項２】
前記第１プロセッサによる、前記セキュア記憶領域へのアクセスが終了されることを示すアクセス終了通知を受け付ける終了通知受付部を有し、
前記実行制御部は、前記限定的な実行制御を行っている場合において、前記終了通知受付部によって前記アクセス終了通知が受け付けられたときに、前記限定を解除して前記実行制御を行う
ことを特徴とする請求項１記載の計算機システム。
【請求項３】
前記アクセス許可種プログラム実行単位それぞれについての実行制御値を管理する実行制御値管理部を有し、
前記実行制御値管理部は、前記開始通知受付部によって前記アクセス開始通知が受け付けられた場合に、前記アクセス許可種プログラム実行単位のそれぞれについての実行制御値を所定値に設定し、前記アクセス許可種プログラム実行単位のそれぞれについての実行制御値が前記所定値に設定されている場合において、前記終了通知受付部によって前記アクセス終了通知が受け付けられたときに、前記アクセス許可種プログラム実行単位のそれぞれについての実行制御値を前記所定値以外のそれぞれの値に設定し、
前記実行制御部は、前記アクセス許可種プログラム実行単位のそれぞれについての実行制御値が前記所定値に設定されている期間に限って、前記第２プロセッサに実行させるプログラム実行単位を、前記アクセス許可種プログラム実行単位に限定することで、前記実行制御を行う
ことを特徴とする請求項２記載の計算機システム。
【請求項４】
前記プログラム実行単位のそれぞれは、一のオペレーティングシステムと、当該オペレーティングシステムによって実行制御されるプログラム群とを含み、
前記アクセス許可種プログラム実行単位のそれぞれは、含んでいるオペレーティングシステムが、前記セキュア記憶領域へのアクセスが許可されているアクセス許可種オペレーティングシステムのうちのいずれかである
ことを特徴とする請求項３記載の計算機システム。
【請求項５】
前記アクセス許可種オペレーティングシステムのそれぞれは、
自オペレーティングシステムを実行する前記第１プロセッサによる、前記セキュア記憶領域へのアクセスの開始を検知する開始検知部と、
前記開始検知部が前記セキュア記憶領域へのアクセスの開始を検知した場合に、前記開始通知受付部に前記アクセス開始通知を行う開始通知部と、
自オペレーティングシステムを実行する前記第１プロセッサによる、前記セキュア記憶領域へのアクセスの終了を検知する終了検知部と、
前記開始検知部が前記セキュア記憶領域へのアクセスの終了を検知した場合に、前記終了通知受付部に前記アクセス終了通知を行う終了通知部とを有する
ことを特徴とする請求項４記載の計算機システム。
【請求項６】
設定レジスタを有し、当該設定レジスタに所定のレジスタ値が設定されている設定期間に、前記第１プロセッサによる前記セキュア記憶領域へのアクセス、及び前記第２プロセッサによる前記セキュア記憶領域へのアクセスを許可し、前記設定期間以外の期間に、前記第１プロセッサによる前記セキュア記憶領域へのアクセス、及び前記第２プロセッサによる前記セキュア記憶領域へのアクセスを禁止するアクセス制御装置をさらに備え、
前記開始通知受付部によって前記アクセス開始通知が受け付けられた場合に、前記設定レジスタに前記所定のレジスタ値を設定し、前記設定レジスタに前記所定のレジスタ値が設定されている場合において、前記終了通知受付部によって前記アクセス終了通知が受け付けられたときに、前記設定レジスタに前記所定のレジスタ値以外のレジスタ値を設定するレジスタ設定部を有する
ことを特徴とする請求項３記載の計算機システム。
【請求項７】
前記アクセス制御装置は、さらに、前記設定期間以外の期間において、前記第１プロセッサによる前記セキュア記憶領域へのアクセス命令が発行された場合に、前記開始通知受付部に前記アクセス開始通知を行う
ことを特徴とする請求項６記載の計算機システム。
【請求項８】
セキュア記憶領域を有するメモリと、当該メモリを利用する第１及び第２プロセッサとを備える計算機システムであって、
前記第１プロセッサと前記第２プロセッサとのうちの少なくとも一方が、前記メモリに格納されているプログラムを実行することにより実現される機能的な構成要素として、
前記第１プロセッサと前記第２プロセッサとで実行させる、複数のプログラム実行単位の実行制御を行う実行制御部と、
前記第１プロセッサによる、前記セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、前記セキュア記憶領域へのアクセスが開始されることを示すアクセス開始通知を受け付ける開始通知受付部と、
前記第１プロセッサによる、前記セキュア記憶領域へのアクセスが終了されることを示すアクセス終了通知を受け付ける終了通知受付部とを有し、
前記実行制御部は、
前記開始通知受付部によって前記アクセス開始通知が受け付けられた場合に、前記第２プロセッサによって実行されるプログラム実行単位が、前記アクセス許可種プログラム実行単位に限定されるように、前記実行制御を行い、その後、前記終了通知受付部によって前記アクセス終了通知が受け付けられたときに、前記セキュア記憶領域へのアクセスが許可されているか否かにかかわらず、前記メモリに格納されているプログラム実行単位を前記第２プロセッサに実行させる
ことを特徴とする計算機システム。
【請求項９】
セキュア記憶領域を有するメモリと、当該メモリを利用する第１及び第２プロセッサとを備える計算機システムを制御する計算機システム制御方法であって、
前記第１プロセッサと前記第２プロセッサとで実行させる、複数のプログラム実行単位の実行制御を行う実行制御ステップと、
前記第１プロセッサによる、前記セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、前記セキュア記憶領域へのアクセスが開始されることを示すアクセス開始通知を受け付ける開始通知受付ステップとを有し、
前記実行制御ステップは、前記開始通知受付ステップによって前記アクセス開始通知が受け付けられた場合に、前記第２プロセッサによって実行されるプログラム実行単位が、前記アクセス許可種プログラム実行単位に限定されるように、前記実行制御を行う
ことを特徴とする計算機システム制御方法。
【請求項１０】
セキュア記憶領域を有するメモリと、当該メモリを利用する第１及び第２プロセッサとを備える計算機システムを備える計算機システムに、自システムを制御する計算機システム制御処理を実行させるための計算機システム制御プログラムであって、
前記計算機システム制御処理は、
前記第１プロセッサと前記第２プロセッサとで実行させる、複数のプログラム実行単位の実行制御を行う実行制御ステップと、
前記第１プロセッサによる、前記セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、前記セキュア記憶領域へのアクセスが開始されることを示すアクセス開始通知を受け付ける開始通知受付ステップとを有し、
前記実行制御ステップは、前記開始通知受付ステップによって前記アクセス開始通知が受け付けられた場合に、前記第２プロセッサによって実行されるプログラム実行単位が、前記アクセス許可種プログラム実行単位に限定されるように、前記実行制御を行う
ことを特徴とする計算機システム制御プログラム。
【請求項１１】
セキュア記憶領域を有するメモリと、当該メモリを利用する第１及び第２プロセッサとを備える集積回路であって、
前記第１プロセッサと前記第２プロセッサとのうちの少なくとも一方が、前記メモリに格納されているプログラムを実行することにより実現される機能的な構成要素として、
前記第１プロセッサと前記第２プロセッサとで実行させる、複数のプログラム実行単位の実行制御を行う実行制御部と、
前記第１プロセッサによる、前記セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、前記セキュア記憶領域へのアクセスが開始されることを示すアクセス開始通知を受け付ける開始通知受付部とを有し、
前記実行制御部は、前記開始通知受付部によって前記アクセス開始通知が受け付けられた場合に、前記第２プロセッサによって実行されるプログラム実行単位が、前記アクセス許可種プログラム実行単位に限定されるように、前記実行制御を行う
ことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを備える計算機システムに関する。
【背景技術】
【０００２】
秘匿すべき情報を取り扱う計算機システムにおいては、セキュリティ保護の観点から、その秘匿すべき情報が、信頼できる特定のプログラム（以下、「セキュアプログラム」と呼ぶ。）以外のプログラム（以下、「非セキュアプログラム」と呼ぶ。）によってアクセス（読み出し又は書き込み）されないように保護されることが望まれる。【０００３】
このため、計算機システムには、メモリの記憶領域のうちの、秘匿すべき情報を記憶する特定の記憶領域（以下、「セキュア領域」と呼ぶ。）へのアクセスを、所定のアクセス許可設定がなされている場合に限って許可するアクセス制御装置を備え、セキュアプログラムが実行される期間に限って、そのアクセス制御装置にアクセス許可設定を行うものがある。【０００４】
ところで、プログラムが実行される期間を制御する技術として、従来、複数のプロセッサを備える計算機システム（以下、「並列型計算機システム」と呼ぶ。）において、複数のプログラム実行単位を並列に実行することが知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０９−１２８３５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、前述した、特許文献１のような技術によりセキュアプログラムが実行される期間を制御し、その期間に限ってアクセス制御装置にアクセス許可設定を行うといった構成においては、セキュリティ保護を実現しつつ、さらなるプロセッサの利用効率の向上が求められていた。【０００７】
そこで、本発明は係る問題に鑑みてなされたものであり、少なくともセキュアプログラムからなるプログラム実行単位によってセキュア領域へアクセスが開始されるまでの期間において、プロセッサの利用効率が向上される可能性を高くする計算機システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明に係る計算機システムは、セキュア記憶領域を有するメモリと、当該メモリを利用する第１及び第２プロセッサとを備える計算機システムであって、前記第１プロセッサと前記第２プロセッサとのうちの少なくとも一方が、前記メモリに格納されているプログラムを実行することにより実現される機能的な構成要素として、前記第１プロセッサと前記第２プロセッサとで実行させる、複数のプログラム実行単位の実行制御を行う実行制御部と、前記第１プロセッサによる、前記セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、前記セキュア記憶領域へのアクセスが開始されることを示すアクセス開始通知を受け付ける開始通知受付部とを有し、前記実行制御部は、前記開始通知受付部によって前記アクセス開始通知が受け付けられた場合に、前記第２プロセッサによって実行されるプログラム実行単位が、前記アクセス許可種プログラム実行単位に限定されるように、前記実行制御を行うことを特徴とする。
【発明の効果】
【０００９】
上述の構成を備える本発明に係る計算機システムによると、セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、セキュア記憶領域へのアクセスが開始されるまで期間において、実行制御部は、複数のプログラム実行単位の実行制御を行う。このため、この期間において、一のプロセッサについて、一のプログラム実行単位の中に実行するプログラムがなくなった場合であっても、そのプロセッサは、他のプログラム実行単位のプログラムを実行し得る。このことにより、この計算機システムは、セキュアプログラムからなるプログラム実行単位がセキュア記憶領域へのアクセスを行っている期間に、非セキュアプログラムを含むプログラム実行単位が実行対象とならない計算機システムについて、少なくともセキュアプログラムからなるプログラム実行単位によってセキュア領域へアクセスが開始されるまでの期間において、ギャングスケジューリング方式で各プロセッサのスケジューリングが行われる従来の計算機システムよりも、プロセッサの利用効率が向上される可能性を高くすることができる。
【図面の簡単な説明】
【００１０】
【図１】計算機システム１００の主要なハードウエア構成を示すブロック図
【図２】制御レジスタ群１３１のデータ構成図
【図３】モジュール群３００の模式図
【図４】セキュア領域管理テーブル４００のデータ構成図
【図５】ＯＳＩＤ管理テーブル５００のデータ構成図
【図６】アクセス開始処理のフローチャート
【図７】再スケジューリング処理のフローチャート
【図８】セキュア領域設定処理のフローチャート
【図９】アクセス終了処理のフローチャート
【図１０】アクセス制御処理のフローチャート
【図１１】各ＣＰＵのタイミングチャート
【図１２】モジュール群１２００の模式図
【図１３】変形ＯＳＩＤ管理テーブル１３００のデータ構成図
【図１４】第１変形アクセス開始処理のフローチャート
【図１５】第１変形再スケジューリング処理のフローチャート
【図１６】第１変形セキュア領域設定処理のフローチャート
【図１７】第１変形アクセス終了処理のフローチャート
【図１８】計算機システム１８００の主要なハードウエア構成を示すブロック図
【図１９】モジュール群１９００の模式図
【図２０】第２変形アクセス開始処理のフローチャート
【図２１】第２変形アクセス終了処理のフローチャート
【図２２】モジュール群２２００の模式図
【図２３】変形セキュア領域管理テーブル２３００のデータ構成図
【図２４】ＰＧＩＤ管理テーブル２４００のデータ構成図
【図２５】第３変形アクセス開始処理のフローチャート
【図２６】第２変形再スケジューリング処理のフローチャート
【図２７】第２変形セキュア領域設定処理のフローチャート
【図２８】第３変形アクセス終了処理のフローチャート
【図２９】各ＣＰＵのタイミングチャート
【図３０】従来の計算機システムにおける、各プロセッサのタイミングチャート例
【図３１】変形例に係る計算機システム３１００の構成を示すブロック図
【発明を実施するための形態】
【００１１】
＜本発明に係る一形態を得るに至った経緯＞
本発明者は、前述した、特許文献１のような技術によりセキュアプログラムが実行される期間を制御し、その期間に限ってアクセス制御装置にアクセス許可設定を行う構成について詳細に検討した。
【００１２】
このような並列型計算機システムでは、例え、並列型計算機システムが上述のアクセス制御装置を備え、そのアクセス制御装置が、一のプロセッサにおいてセキュアプログラムが実行される期間にアクセス許可設定がなされるとしても、その期間に、他のプロセッサにおいて非セキュアプログラムが実行されると、秘匿すべき情報が、その非セキュアプログラムによってアクセスされてしまう恐れがある。
【００１３】
そこで、従来の並列型計算機システムには、任意の時刻において、全てのプロセッサがセキュア・非セキュアの点で同種のプログラム実行単位を実行対象とするように、各プロセッサが、互いに同期して、所定期間（以下、「クオンタム」と呼ぶ。）毎に実行対象となるプログラム実行単位を切り替えるギャングスケジューリング方式によってスケジューリングを行うものがある。そして、このことによって、セキュアプログラムと非セキュアプログラムとが、同時に実行されてしまうことを防いでいる。
【００１４】
図３０は、ＣＰＵＡ３００１とＣＰＵＢ３００２とＣＰＵＣ３００３との３つのプロセッサを備える従来の並列型計算機システムにおいて、ギャングスケジューリング方式で各プロセッサのスケジューリングが行われている場合における、各プロセッサのタイミングチャートの一例である。
【００１５】
同図に示されるように、ＣＰＵＡ３００１とＣＰＵＢ３００２とＣＰＵ３００３とは、互いに同期して、時刻ｑａ３０４１と時刻ｑｂ３０４２と時刻ｑｃ３０４３と時刻ｑｄ３０４４とのそれぞれの時刻に、実行対象となるプログラム実行単位を切り替える。
【００１６】
この例では、各プロセッサは、第Ｎ−１クオンタム３０１１の期間に、セキュアプログラムからなる第１プログラム実行単位を実行対象とし、第Ｎクオンタム３０１２の期間に、非セキュアプログラムを含む第２プログラム実行単位を実行対象とし、第Ｎ＋１クオンタム３０１３の期間に、再び第１プログラム実行単位を実行対象とする。
【００１７】
同図において、セキュア領域アクセス期間３０３１とセキュア領域アクセス期間３０３２とは、それぞれ、セキュアプログラムがセキュア記憶領域へアクセスを行っている期間を示し、破線部分は、対応するプロセッサがアイドル状態であることを示す。
【００１８】
このように、ギャングスケジューリング方式で各プロセッサのスケジューリングが行われる従来の並列型計算機システムでは、セキュアプログラムがセキュア記憶領域へのアクセスを行っている期間（図中のセキュア領域アクセス期間３０３１、セキュア領域アクセス期間３０３２等）に、非セキュアプログラムが実行されてしまうことを防ぐことができる。
【００１９】
一般に、計算機システムにおいて、プロセッサの利用効率が向上されることが望まれる。発明者は、プロセッサの利用効率に関して、前述した従来技術に基づく構成では、以下の問題があることを見出した。具体的には、ギャングスケジューリング方式で各プロセッサのスケジューリングが行われる計算機システムにおいては、一のクオンタム期間において、実行対象となるプログラム実行単位の中に実行すべきプログラムがなくなってしまうプロセッサがあっても、そのプロセッサは、他のクオンタム期間において実行対象となるプログラム実行単位のプログラムを実行することができない。そして、このことに起因して、一のプログラム実行単位を実行対象とする一のクオンタム期間中において、その期間の少なくとも一部の期間に、一部のプロセッサがアイドル状態となってしまうことがあるという問題がある。
【００２０】
そして、この点に関して、本発明者は検討を重ねた結果、セキュアプログラムからなるプログラム実行単位がセキュア記憶領域へのアクセスを行っている期間に、非セキュアプログラムを含むプログラム実行単位が実行対象とならないようにすることにより、ギャングスケジューリング方式で各プロセッサのスケジューリングが行われる従来の計算機システムよりも、プロセッサの利用効率が向上される可能性を高くする計算機システムを提供することが可能であることを見出し、本発明に至った。
＜実施の形態１＞
＜概要＞
以下、本発明に係る計算機システムの一実施形態として、秘匿すべき情報を記憶するセキュア領域を有するメモリと、メモリを利用する４つのプロセッサと、プロセッサによるセキュア領域へのアクセスを制御するアクセス制御装置とを備える計算機システムについて説明する。
【００２１】
この計算機システムでは、複数のオペレーティングシステムの実行制御を行うハイパバイザが実行されることで、複数のオペレーティングシステムが、互いに独立して実行される。
【００２２】
実行対象となるオペレーティングシステムの中には、セキュアプログラムに限って実行の制御を行うオペレーティングシステム（以下、「セキュアオペレーティングシステム」と呼ぶ。）が含まれる。
【００２３】
この計算機システムにおいて、ハイパバイザは、セキュアプログラムがセキュア領域へアクセスする期間に限って、実行されるオペレーティングシステムが、セキュアオペレーティングシステムに限定されるようにオペレーティングシステムの実行制御を行う。そして、セキュアプログラムがセキュア領域へアクセスする期間に限って、プロセッサによるセキュア領域へのアクセスが許可されるように、アクセス制御装置を制御する。
【００２４】
以下、本実施の形態１に係る計算機システムの構成について図面を参照しながら説明する。
【００２５】
＜構成＞
図１は、計算機システム１００の主要なハードウエア構成を示すブロック図である。
【００２６】
同図に示されるように、計算機システム１００は、ハードウエアとしてはコンピュータ装置であり、集積回路１１０と入力装置１９１と出力装置１９２とハードディスク装置１９３とから構成される。
【００２７】
集積回路１１０は、ＭＰＵ（Multi Processor Unit）１２０とアクセス制御装置１３０とメモリ１４０とバス１５０と第１インターフェース１６０と第２インターフェース１７０と第３インターフェース１８０とから構成される。そして、ＭＰＵ１２０は、ＣＰＵ（Central Processing Unit）Ａ１２１とＣＰＵＢ１２２とＣＰＵＣ１２３とＣＰＵＤ１２４と割込コントローラ１２５とから構成される。
【００２８】
メモリ１４０は、ＲＯＭ（Read Only Memory）とＲＡＭ（Random Access Memory）とから構成され、アクセス制御装置１３０に接続され、ＣＰＵＡ１２１〜ＣＰＵＤ１２４の動作を規定するプログラムと、ＣＰＵＡ１２１〜ＣＰＵＤ１２４が利用するデータとを記憶する。メモリ１４０の記憶領域のうちの一部の領域は、秘匿されるべきデータを記憶するためのセキュア領域１４１として定義されている。
【００２９】
秘匿されるべきデータとしては、例えば、コンテンツを復号するための暗号キー、個人情報を含む住所録等が考えられる。
【００３０】
アクセス制御装置１３０は、メモリ１４０とバス１５０と割込コントローラ１２５とに接続され、制御レジスタ群１３１を有し、以下の３つの機能を有する。
【００３１】
アクセス禁止機能：制御レジスタ群１３１に所定の値が設定されていない場合に、ＣＰＵＡ１２１〜ＣＰＵＤ１２４によるセキュア領域１４１へのアクセスを禁止する機能。
【００３２】
ここで、アクセスを禁止するとは、アクセスを行わないことである。
【００３３】
アクセス制限機能：制御レジスタ群１３１に所定の値が設定されている場合に、ＣＰＵＡ１２１〜ＣＰＵＤ１２４による、セキュア領域１４１のうちの、その設定値によって定められる記憶領域へのアクセスを許可し、ＣＰＵＡ１２１〜ＣＰＵＤ１２４による、セキュア領域のうちの、その設定値によって定められる記憶領域以外の記憶領域へのアクセスを禁止する機能。
【００３４】
ここで、アクセスを許可するとは、アクセスを行うことである。
【００３５】
図２は、制御レジスタ群１３１のデータ構成の一例を示すデータ構成図である。
【００３６】
同図に示されるように、制御レジスタ群１３１は、レジスタ番号２１０と開始アドレス２２０と終了アドレス２３０とアクセス権２４０とからなるレジスタがＮ本（例えば１６本）集まって構成される。
【００３７】
レジスタ番号２１０は、対応するレジスタを識別するための識別番号を記憶するための領域である。このレジスタ番号２１０は、対応するレジスタ毎に予め値が定められており、書き換え不可となっている。
【００３８】
開始アドレス２２０と終了アドレス２３０とは、それぞれ、セキュア領域に含まれる一の連続した記憶領域についての開始アドレスと終了アドレスとをそれぞれ記憶するための領域である。
【００３９】
アクセス権２４０は、対応する開始アドレス２２０と終了アドレス２３０とによって指定される連続した記憶領域へのアクセスの許可形態を示すアクセス形態情報を記憶するための領域である。
【００４０】
ここで、アクセス形態情報は、その論理値が“１”の場合に、読み出しと書き込みとの双方を許可することを示し、その論理値が“２”の場合に、読み出しのみ許可することを示し、その論理値が“３”の場合に、書き込みのみ許可することを示し、その論理値が“０”の場合に、読み出しと書き込みとの双方を許可しないことを示す。
【００４１】
なお、開始アドレス２２０と終了アドレス２３０とアクセス権２４０とは、それぞれ、初期状態において、初期論理値“０”が書き込まれるように設定されており、また、バス１５０を介して、ＣＰＵＡ１２１〜ＣＰＵＤ１２４によって値が書き換え可能となっている。
【００４２】
再び図１に戻って、アクセス制御装置１３０の有する機能の説明を続ける。
【００４３】
例外割込通知機能：アクセス制御装置１３０が、ＣＰＵＡ１２１〜ＣＰＵＤ１２４のうちのいずれかによる、メモリ１４０へのアクセスを禁止した場合に、メモリ１４０へのアクセスが禁止された旨を示すメモリアクセス例外割込要求信号を、割込コントローラ１２５に送る機能。
【００４４】
ここで、このメモリアクセス例外割込要求信号は、禁止対象となったメモリアクセスを試みたＣＰＵを特定する情報を含む。
【００４５】
割込コントローラ１２５は、アクセス制御装置１３０とＣＰＵＡ１２１とＣＰＵＢ１２２とＣＰＵＣ１２３とＣＰＵＤ１２４とに接続され、これら接続先デバイスから割込要求信号を受け付けて、受け付けた割込要求信号に応じた割り込みを、適切なＣＰＵに適切なタイミングで行う機能を有する。
【００４６】
バス１５０は、アクセス制御装置１３０とＣＰＵＡ１２１とＣＰＵＢ１２２とＣＰＵＣ１２３とＣＰＵＤ１２４と第１インターフェース１６０と第２インターフェース１７０と第３インターフェース１８０とに接続され、接続されるデバイス間の信号を伝達する機能を有する。
【００４７】
入力装置１９１は、キーボード、マウス等で構成され、第１インターフェース１６０に接続され、プログラムを実行するＣＰＵＡ１２１〜ＣＰＵＤ１２４によって制御され、キーボード、マウス等を通じてユーザからの操作コマンドを受け付ける機能を有する。
【００４８】
出力装置１９２は、ディスプレイ、スピーカー等で構成され、第２インターフェース１７０に接続され、プログラムを実行するＣＰＵＡ１２１〜ＣＰＵＤ１２４によって制御され、ディスプレイ、スピーカー等を用いて文字列、画像、音声等を出力する機能を有する。
【００４９】
第１インターフェース１６０と第２インターフェース１７０と第３インターフェース１８０とは、それぞれバス１５０に接続され、それぞれ、バス１５０と入力装置１９１との間の信号のやり取りを仲介する機能、バス１５０と出力装置１９２との間の信号のやり取りを仲介する機能、バス１５０とハードディスク装置１９３との間の信号のやり取りを仲介する機能を有する。
【００５０】
ＣＰＵＡ１２１とＣＰＵＢ１２２とＣＰＵＣ１２３とＣＰＵＤ１２４とは、互いに同様の機能を有するプロセッサである。よって、以下では、これらのＣＰＵを代表して、ＣＰＵＡ１２１について説明する。
【００５１】
ＣＰＵＡ１２１は、割込コントローラ１２５とバス１５０とに接続され、メモリ１４０に記憶されているプログラムを実行することで、他のＣＰＵと共同で、アクセス制御装置１３０とメモリ１４０と入力装置１９１と出力装置１９２とハードディスク装置１９３とを制御して、計算機システム１００を、コンピュータ装置として機能させる機能を有する。
【００５２】
なお、ＣＰＵＡ１２１は、メモリ１４０に記憶されているプログラムを実行することで、計算機システム１００を制御して、計算機システム１００に、その特徴的な動作である、アクセス開始処理と再スケジューリング処理とセキュア領域設定処理とアクセス終了処理とアクセス制御処理とを実現させる機能を有する。これら、アクセス開始処理と再スケジューリング処理とセキュア領域設定処理とアクセス終了処理とアクセス制御処理とについては、後程、フローチャートを用いて詳細に説明する。
【００５３】
また、ＣＰＵＡ１２１は、その動作モードとして、ユーザモードと、第１特権モードと、第１特権モードよりも上位の第２特権モードとを有している。
【００５４】
図３は、ＣＰＵＡ１２１〜ＣＰＵＤ１２４上で実行対象となるプログラムモジュール（以下、単に「モジュール」と呼ぶ。）群３００を模式的に示す模式図である。
【００５５】
同図に示されるように、ＣＰＵＡ１２１〜ＣＰＵＤ１２４上で実行対象となるモジュール群３００には、ユーザモード３１０で実行されるプロセスＡ３１１〜プロセスＰ３１２、プロセスＱ３１３〜プロセスＺ３１４と、第１特権モード３２０で実行されるＯＳ（Operating System）ａ３４０とＯＳｂ３５０と、第２特権モード３３０で実行されるハイパバイザ３６０とが含まれる。
【００５６】
ハイパバイザ３６０は、ＯＳａ３４０とＯＳｂ３５０とを実行制御する機能を有するハイパバイザモジュールであって、アクセスフラグ更新部３６１とＯＳＩＤ管理テーブル記憶部３６２とセキュア領域管理テーブル記憶部３６３とアクセス制御操作部３６４とスケジューラ３６５とＣＰＵ間通信制御部３６７とを含む。
【００５７】
ＯＳａ３４０は、プロセスＡ３１１〜プロセスＰ３１２を実行制御する機能を有するオペレーティングシステムモジュールであって、セキュア領域開始指示部３４１とセキュア領域終了指示部３４２とを含む。なお、ＯＳａ３４０は、自ＯＳであるＯＳａ３４０と、実行制御しているプロセスとからなるシステムを、一の仮想計算機として機能させる。
【００５８】
ＯＳｂ３５０は、プロセスＱ３１３〜プロセスＺ３１４を実行制御する機能を有するオペレーティングシステムモジュールであって、セキュア領域開始指示部３５１とセキュア領域終了指示部３５２とを含む。なお、ＯＳｂ３５０は、自ＯＳであるＯＳｂ３５０と、実行制御しているプロセスとからなるシステムを、一の仮想計算機として機能させる。
【００５９】
プロセスＡ３１１〜プロセスＰ３１２は、それぞれ、ＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかが、信頼できる特定のアプリケーションプログラム（以下、「セキュアアプリケーションプログラム」と呼ぶ。）を実行することで生成されるタスクである。これらプロセスＡ３１１〜プロセスＰ３１２は、セキュア領域１４１に記憶されているデータを不適切に利用することがないことが予め確認されている。
【００６０】
セキュアアプリケーションプログラムの一例として、暗号キーを利用してコンテンツを復号するコンテンツ復号プログラム、住所録を利用するメーラ等が考えられる。
【００６１】
以下、プロセスＡ３１１〜プロセスＰ３１２のことを、セキュアプロセスと呼ぶことがある。
【００６２】
プロセスＱ３１３〜プロセスＺ３１４は、それぞれ、ＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかが、信頼できる特定のアプリケーションプログラム以外のアプリケーションプログラム（以下、「非セキュアアプリケーションプログラム」と呼ぶ。）を実行することで生成されるタスクである。これらプロセスＱ３１３〜プロセスＰ３１２は、セキュア領域１４１に記憶されているデータを不適切に利用することがないことが予め確認されていない。以下、プロセスＱ３１３〜プロセスＺ３１４のことを、非セキュアプロセスと呼ぶことがある。
【００６３】
セキュア領域開始指示部３４１は、自モジュールを含むＯＳ（ここではＯＳａ３４０）によって実行制御されているプロセスによる、セキュア領域１４１へのアクセスが開始されることを検知して、セキュア領域１４１へのアクセスが開始されることを示すアクセス開始信号をアクセスフラグ更新部３６１へ送る機能を有する。ここでは、このアクセス開始信号は、自信号を送るＯＳを識別する識別子であるＯＳＩＤを含んでいる。
【００６４】
セキュア領域終了指示部３４２は、自モジュールを含むＯＳ（ここではＯＳａ３４０）によって実行制御されているプロセスによる、セキュア領域１４１へのアクセスが終了されることを検知して、セキュア領域１４１へのアクセスが終了されることを示すアクセス終了信号をアクセスフラグ更新部３６１へ送る機能を有する。ここでは、このアクセス終了信号は、自信号を送るＯＳを識別する識別子であるＯＳＩＤを含んでいる。
【００６５】
セキュア領域開始指示部３５１とセキュア領域終了指示部３５２とは、それぞれ、セキュア領域開始指示部３４１とセキュア領域終了指示部３４２と同等の機能を有する。よってここでは説明を省略する。
【００６６】
セキュア領域管理テーブル記憶部３６３は、セキュア領域管理テーブル４００を記憶する機能を有する。
【００６７】
図４は、セキュア領域管理テーブル４００のデータ構成の一例を示すデータ構成図である。
【００６８】
同図に示されるように、セキュア領域管理テーブル４００は、ＯＳＩＤ４１０と開始アドレス４２０と終了アドレス４３０とアクセス権４４０とが対応付けられて構成される。
【００６９】
ＯＳＩＤ４１０は、ＯＳを識別するための識別子であり、論理値“１”の場合に、識別されるＯＳがＯＳａ３４０であることを示し、論理値“２”の場合に、識別されるＯＳがＯＳｂ３５０であることを示す。
【００７０】
開始アドレス４２０と終了アドレス４３０とは、それぞれ、セキュア領域に含まれる一の連続した記憶領域についての開始アドレスと終了アドレスとである。
【００７１】
アクセス権４４０は、対応する開始アドレス４２０と終了アドレス４３０とによって指定される連続した記憶領域について、対応するＯＳＩＤ４１０によって識別されるＯＳからのアクセスの許可形態を示すアクセス形態情報である。
【００７２】
このアクセス形態情報は、アクセス権２４０におけるアクセス形態情報と同様のものである。よって説明を省略する。
【００７３】
ここで、このセキュア領域管理テーブル４００は、システム開発時において予め定められたテーブルであって、その内容が更新不可となっている。
【００７４】
なお、図４で示されるセキュア領域管理テーブル４００の例では、セキュア領域１４１のうちの、開始アドレスと論理アドレスとがそれぞれ、０ｘ８４００＿００００と０ｘ８４０２＿ＦＦＦＦとなる連続した記憶領域について、ＯＳａ３４０からの読み出しと書き込みとの双方が許可されていることを示している。
【００７５】
再び図３に戻って、モジュール群３００の説明を続ける。
【００７６】
ＯＳＩＤ管理テーブル記憶部３６２は、ＯＳＩＤ管理テーブル５００を記憶する機能を有する。
【００７７】
図５は、ＯＳＩＤ管理テーブル５００のデータ構成の一例を示すデータ構成図である。
【００７８】
同図に示されるように、ＯＳＩＤ管理テーブル５００は、ＯＳＩＤ５１０と優先度５２０とアクセスフラグ５３０とが対応付けられて構成される。
【００７９】
ＯＳＩＤ５１０は、ＯＳＩＤ４１０と同様の、ＯＳを識別するための識別子であり、論理値“１”の場合に、識別されるＯＳがＯＳａ３４０であることを示し、論理値“２”の場合に、識別されるＯＳがＯＳｂ３５０であることを示す。
【００８０】
優先度５２０は、ハイパバイザ３６０がＯＳの実行制御を行う場合における、対応するＯＳＩＤ５１０によって識別されるＯＳの実行優先度である。
【００８１】
ここでは、優先度５２０は、０〜９９までのいずれかの整数値を取り、より値の大き方が、より優先度が高くなっている。なお、この優先度５２０を利用した、ハイパバイザ３６０によるＯＳの実行制御については、後程、スケジューラ３６５の説明の部分で説明する。
【００８２】
アクセスフラグ５３０は、対応するＯＳＩＤ５１０によって識別されるＯＳによって、セキュア領域１４１へのアクセスが行われているか否かを示すフラグである。
【００８３】
ここで、アクセスフラグ５３０は、論理値“１”の場合にセキュア領域１４１へのアクセスが行われていることを示し、論理値“０”の場合にセキュア領域１４１へのアクセスが行われていないことを示す。
【００８４】
再び図３に戻って、モジュール群３００の説明を続ける。
【００８５】
アクセスフラグ更新部３６１は、以下の３つの機能を有する。
【００８６】
アクセスフラグ１更新機能：セキュア領域開始指示部３４１又はセキュア領域開始指示部３５１からアクセス開始信号を受けた場合において、そのアクセス開始信号の送信元のＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０によって識別されるＯＳに含まれているときに、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００の、送信元ＯＳを識別するＯＳＩＤ５１０に対応付けられているアクセスフラグ５３０を、論理値“１”に更新する機能。
【００８７】
アクセスフラグ０更新機能：セキュア領域終了指示部３４２又はセキュア領域終了指示部３５２からアクセス終了信号を受けた場合において、そのアクセス開始信号の送信元のＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０によって識別されるＯＳに含まれているときに、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００の、送信元ＯＳを識別するＯＳＩＤ５１０に対応付けられているアクセスフラグ５３０を、論理値“０”に更新する機能。
【００８８】
再スケジューリング要求機能：ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００のアクセスフラグ５３０を更新した場合に、スケジューラ３６５に、更新したＯＳＩＤ管理テーブル５００に基づく新たなスケジューリングの依頼を行う機能。
【００８９】
スケジューラ３６５は、以下の２つの機能を有する。
【００９０】
通常スケジューリング機能：ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００のアクセスフラグ５３０の論理値が全て“０”の場合に、各ＣＰＵについて、実行する各ＯＳの各実行時間の比率が、各ＯＳに対応する優先度５２０の比率となるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う機能。
【００９１】
限定スケジューリング機能：ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００のアクセスフラグ５３０の中に論理値が“１”となるものがある場合に、全てのＣＰＵにおいて、実行するＯＳが、その論理値が“１”となるアクセスフラグ５３０に対応するＯＳＩＤ５１０によって識別されるＯＳに限定されるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う機能。
【００９２】
実行制御部３６６は、スケジューラ３６５によってスケジューリングされた実行スケジュールに基づいて、各ＣＰＵについてのＯＳの実行制御を行う機能を有する。
【００９３】
この実行制御部３６６は、スケジューラ３６５がスケジューリングを行っている期間、全てのＯＳについての実行制御を一時的に中断する。
【００９４】
ＣＰＵ間通信制御部３６７は、一のＣＰＵから他のＣＰＵへの割込通知が必要となる場合に、適切な割込要求信号を生成して、割込コントローラ１２５へ送る機能と、割込コントローラ１２５から割り込みがなされた場合に、その割り込みにを受け付ける機能とを有する。
【００９５】
アクセス制御操作部３６４は、以下の２つの機能を有する。
【００９６】
セキュア領域設定機能：ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００のアクセスフラグ５３０の論理値が“１”へと更新された場合において、そのアクセスフラグ５３０に対応するＯＳＩＤ５１０と同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれているときに、そのＯＳＩＤ４１０に対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０とを読み出して、制御レジスタ群１３１に含まれるレジスタのうちの、初期値が書き込まれている一のレジスタに、開始アドレス２２０と終了アドレス２３０とアクセス権２４０とを書き込む機能。
【００９７】
セキュア領域解除機能：ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００のアクセスフラグ５３０の論理値が“０”へと更新された場合において、そのアクセスフラグ５３０に対応するＯＳＩＤ５１０と同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれているときに、そのＯＳＩＤ４１０に対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０との値が書き込まれている、制御レジスタ群１３１に含まれるレジスタについて、そのレジスタの開始アドレス２２０と終了アドレス２３０とアクセス権２４０との値を初期値である論理値“０”に書き換える機能。
【００９８】
以上のように構成される計算機システム１００の行う動作について、以下図面を参照しながら説明する。
【００９９】
＜動作＞
ここでは、計算機システム１００の行う動作のうち、特徴的な動作である、アクセス開始処理と再スケジューリング処理とセキュア領域設定処理とアクセス終了処理とアクセス制御処理とについて説明する。
【０１００】
＜アクセス開始処理＞
アクセス開始処理は、ハイパバイザ３６０が主体となって行う処理であって、ＯＳａ３４０又はＯＳｂ３５０から、セキュア領域１４１へのアクセスが開始される旨の通知を受けると、その通知に基づいて、実行するＯＳの再スケジューリングと制御レジスタ群１３１の設定とを行う処理である。
【０１０１】
図６はアクセス開始処理のフローチャートである。
【０１０２】
アクセス開始処理は、ＯＳａ３４０のセキュア領域開始指示部３４１又はＯＳｂ３５０のセキュア領域開始指示部３５１が、自モジュールを含むＯＳによって実行制御されているプロセスによる、セキュア領域１４１へのアクセスが開始されることを検知して、アクセス開始信号をアクセスフラグ更新部３６１へ送ることで開始される。
【０１０３】
アクセス開始処理が開始されると、アクセスフラグ更新部３６１は、送られたアクセス開始信号を受信する（ステップＳ６００）。
【０１０４】
アクセス開始信号を受信すると、アクセスフラグ更新部３６１は、受信したアクセス開始信号に含まれるＯＳＩＤを取得する（ステップＳ６１０）。そして、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれているか否かを調べることで、取得したＯＳＩＤによって識別されるＯＳに、セキュア領域１４１に含まれる一の連続した記憶領域へのアクセス権が設定されているか否かを調べる（ステップＳ６２０）。
【０１０５】
ステップＳ６２０の処理において、アクセス権が設定されている場合に（ステップＳ６２０：Ｙｅｓ）、すなわち、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれている場合に、アクセスフラグ更新部３６１は、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００の、取得したＯＳＩＤと同じ識別子のＯＳＩＤ５１０に対応付けられているアクセスフラグ５３０を、論理値“１”に更新する（ステップＳ６３０）。そして、スケジューラ３６５に、再スケジューリングを依頼する（ステップＳ６４０）
再スケジューリングを依頼されると、スケジューラ３６５は、後述の再スケジューリング処理を行うことで、各ＣＰＵの実行するＯＳが、その論理値が“１”となるアクセスフラグ５３０に対応するＯＳＩＤ５１０によって識別されるＯＳに限定されるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う。
【０１０６】
ここで、実行制御部３６６は、スケジューラ３６５がスケジューリングを開始すると、全てのＣＰＵについてのＯＳの実行制御を一時的に中断する。
【０１０７】
アクセス制御操作部３６４は、スケジューラ３６５が全てのＣＰＵについてのスケジューリングを完了するまで待機し（ステップＳ６５０：Ｎｏを繰り返し）た後に（ステップＳ６５０：Ｙｅｓ）、後述のセキュア領域設定処理を実行することで、アクセスフラグ更新部３６１が取得したＯＳＩＤに対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０とを、制御レジスタ群１３１に含まれるレジスタのうちの、初期値が書き込まれている一のレジスタに書き込む（ステップＳ６６０）。
【０１０８】
制御レジスタ群１３１の一のレジスタへの書き込みが終わると、アクセス制御操作部３６４は実行制御部３６６に、レジスタの書き込みが終了した旨の通知を行う。そして、実行制御部３６６は、一時的に中断していた、全てのＣＰＵについてのＯＳの実行制御を再開する（ステップＳ６７０）。
【０１０９】
ステップＳ６２０の処理において、アクセス権が設定されていない場合に（ステップＳ６２０：Ｎｏ）、すなわち、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれていない場合、又は、ステップＳ６７０の処理が終了した場合に、ハイパバイザ３６０は、そのアクセス開始処理を終了する。
【０１１０】
＜再スケジューリング処理＞
再スケジューリング処理は、スケジューラ３６５が行う処理であって、再スケジューリングが依頼された場合に、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００を参照して、各ＣＰＵにおける各ＯＳのスケジューリングを行う処理である。
【０１１１】
図７は、再スケジューリング処理のフローチャートである。
【０１１２】
再スケジューリング処理は、アクセスフラグ更新部３６１から、再スケジューリングを依頼されることで開始される。
【０１１３】
再スケジューリング処理が開始されると、スケジューラ３６５は、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００に、論理値が“１”となるアクセスフラグ５３０が存在するか否かを調べる（ステップＳ７００）。
【０１１４】
ステップＳ７００の処理において、論理値が“１”となるアクセスフラグ５３０が存在する場合に（ステップＳ７００：Ｙｅｓ）、スケジューラ３６５は、全てのＣＰＵにおいて、実行するＯＳが、そのアクセスフラグ５３０に対応付けられているＯＳＩＤ５１０によって識別されるＯＳに限定されるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う（ステップＳ７１０）。
【０１１５】
ステップＳ７００の処理において、論理値が“１”となるアクセスフラグ５３０が存在しない場合に（ステップＳ７００：Ｎｏ）、スケジューラ３６５は、各ＣＰＵについて、実行する各ＯＳの各実行時間の比率が、各ＯＳに対応する優先度５２０の比率となるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う（ステップＳ７２０）。
【０１１６】
ステップＳ７１０の処理が終わった場合、又は、ステップＳ７２０の処理が終わった場合に、スケジューラ３６５は、その再スケジューリング処理を終了する。
【０１１７】
＜セキュア領域設定処理＞
セキュア領域設定処理は、アクセス制御操作部３６４が行う処理であって、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００のアクセスフラグ５３０が更新された場合に、制御レジスタ群１３１に含まれるレジスタを更新する処理である。
【０１１８】
図８は、セキュア領域設定処理のフローチャートである。
【０１１９】
セキュア領域設定処理は、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００のアクセスフラグ５３０が更新されることで開始される。
【０１２０】
セキュア領域設定処理が開始されると、アクセス制御操作部３６４は、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００を参照して、更新されたアクセスフラグ５３０に対応するＯＳＩＤ５１０と同じ識別子のＯＳＩＤ４１０に対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０とを読み出す（ステップＳ８００）。そして、更新されたアクセスフラグ５３０の論理値が“１”であるか否かを調べる（ステップＳ８１０）。
【０１２１】
ステップＳ８１０の処理において、論理値が“１”である場合に（ステップＳ８１０：Ｙｅｓ）、アクセス制御操作部３６４は、制御レジスタ群１３１に含まれるレジスタのうちの、初期値が書き込まれている一のレジスタに、開始アドレス２２０と終了アドレス２３０とアクセス権２４０とを書き込む（ステップＳ８２０）。
【０１２２】
ステップＳ８１０の処理において、論理値が“０”である場合に（ステップＳ８１０：Ｎｏ）、アクセス制御操作部３６４は、更新されたアクセスフラグ５３０に対応するＯＳＩＤ５１０と同じ識別子のＯＳＩＤ４１０に対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０との値が書き込まれている、制御レジスタ群１３１に含まれるレジスタについて、そのレジスタの開始アドレス２２０と終了アドレス２３０とアクセス権２４０との値を初期値である論理値“０”に書き換える（ステップＳ８３０）。
【０１２３】
ステップＳ８２０の処理が終わった場合、又は、ステップＳ８３０の処理が終わった場合に、アクセス制御操作部３６４は、そのセキュア領域設定処理を終了する。
【０１２４】
＜アクセス終了処理＞
アクセス終了処理は、ハイパバイザ３６０が主体となって行う処理であって、ＯＳａ３４０又はＯＳｂ３５０から、セキュア領域１４１へのアクセスが終了される旨の通知を受けると、その通知に基づいて、実行するＯＳの再スケジューリングと制御レジスタ群１３１の設定とを行う処理である。
【０１２５】
図９は、アクセス終了処理のフローチャートである。
【０１２６】
アクセス終了処理は、ＯＳａ３４０のセキュア領域終了指示部３４２又はＯＳｂ３５０のセキュア領域終了指示部３５２が、自モジュールを含むＯＳによって実行制御されているプロセスによる、セキュア領域１４１へのアクセスが終了したことを検知して、アクセス終了信号をアクセスフラグ更新部３６１へ送ることで開始される。
【０１２７】
アクセス終了処理が開始されると、アクセスフラグ更新部３６１は、送られたアクセス終了信号を受信する（ステップＳ９００）。
【０１２８】
アクセス終了信号を受信すると、アクセスフラグ更新部３６１は、受信したアクセス終了信号に含まれるＯＳＩＤを取得する（ステップＳ９１０）。そして、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれているか否かを調べることで、取得したＯＳＩＤによって識別されるＯＳに、セキュア領域に含まれる一の連続した記憶領域へのアクセス権が設定されているか否かを調べる（ステップＳ９２０）。
【０１２９】
ステップＳ９２０の処理において、アクセス権が設定されている場合に（ステップＳ９２０：Ｙｅｓ）、すなわち、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれている場合に、アクセスフラグ更新部３６１は、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００の、取得したＯＳＩＤと同じ識別子のＯＳＩＤ５１０に対応付けられているアクセスフラグ５３０を、論理値“０”に更新する（ステップＳ９３０）。そして、スケジューラ３６５に、再スケジューリングを依頼する（ステップＳ９４０）。
【０１３０】
再スケジューリングを依頼されると、スケジューラ３６５は、前述の再スケジューリング処理を行うことで、各ＣＰＵについて、実行する各ＯＳの各実行時間の比率が、各ＯＳに対応する優先度５２０の比率となるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う。
【０１３１】
ここで、実行制御部３６６は、スケジューラ３６５がスケジューリングを開始すると、全てのＣＰＵについてのＯＳの実行制御を一時的に中断する。
【０１３２】
アクセス制御操作部３６４は、スケジューラ３６５が全てのＣＰＵについてのスケジューリングを完了するまで待機し（ステップＳ９５０：Ｎｏを繰り返し）た後に（ステップＳ９５０：Ｙｅｓ）、前述のセキュア領域設定処理を実行することで、更新されたアクセスフラグ５３０に対応するＯＳＩＤ５１０と同じ識別子のＯＳＩＤ４１０に対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０との値が書き込まれている、制御レジスタ群１３１に含まれるレジスタについて、そのレジスタの開始アドレス２２０と終了アドレス２３０とアクセス権２４０との値を初期値である論理値“０”に書き換える（ステップＳ９６０）。
【０１３３】
ステップＳ９６０の処理が終わると、アクセス制御操作部３６４は実行制御部３６６に、レジスタの書き込みが終了される旨の通知を行う。そして、実行制御部３６６は、一時的に中断していた、全てのＣＰＵについてのＯＳの実行制御を再開する（ステップＳ９７０）。
【０１３４】
ステップＳ９２０の処理において、アクセス権が設定されていない場合に（ステップＳ９２０：Ｎｏ）、すなわち、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれていない場合、又は、ステップＳ９７０の処理が終了した場合に、ハイパバイザ３６０は、そのアクセス終了処理を終了する。
【０１３５】
＜アクセス制御処理＞
アクセス制御処理は、アクセス制御装置１３０が行う処理であって、ＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかからメモリ１４０へのアクセスの要求がある場合において、所定の条件が満たされるときに、そのアクセスを禁止する処理である。
【０１３６】
図１０は、アクセス制御処理のフローチャートである。
【０１３７】
アクセス制御処理は、ＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかからメモリ１４０へのアクセスが要求されることで開始される。
【０１３８】
アクセス制御処理が開始されると、アクセス制御装置１３０は、メモリ１４０へのアクセス要求が、セキュア領域１４１以外の領域（以下、「非セキュア領域」と呼ぶ。）へのアクセスであるか否かを調べる（ステップＳ１０００）。
【０１３９】
ステップＳ１０００の処理において、非セキュア領域へのアクセスでない場合に（ステップＳ１０００：Ｎｏ）、アクセス制御装置１３０は、そのアクセスの領域が、制御レジスタ群１３１のうちのいずれかのレジスタにおいて、開始アドレス２２０と終了アドレス２３０とで示される領域に含まれるか否かを調べる（ステップＳ１０１０）。
【０１４０】
ステップＳ１０１０の処理において、そのアクセスの領域が、制御レジスタ群１３１のうちのいずれかのレジスタにおいて、開始アドレス２２０と終了アドレス２３０とで示される領域に含まれる場合（ステップＳ１０１０：Ｙｅｓ）と、ステップＳ１０００の処理において、非セキュア領域へのアクセスである場合（ステップＳ１０００：Ｙｅｓ）とに、アクセス制御装置１３０は、そのアクセスを禁止しない（ステップＳ１０２０）。
【０１４１】
ステップＳ１０１０の処理において、そのアクセスの領域が、制御レジスタ群１３１のうちのいずれかのレジスタにおいて、開始アドレス２２０と終了アドレス２３０とで示される領域に含まれない場合（ステップＳ１０１０：Ｎｏ）に、そのアクセスを禁止して、割込コントローラ１２５にメモリアクセス例外割込要求信号を送信する（ステップＳ１０３０）。
【０１４２】
ステップＳ１０２０の処理が終了した場合、又は、ステップＳ１０３０の処理が終了した場合には、アクセス制御装置１３０は、そのアクセス制御処理を終了する。
【０１４３】
＜考察＞
図１１は、上記構成の計算機システム１００における、各ＣＰＵのタイミングチャートの一例である。
【０１４４】
同図において、ＯＳａと記述された長方形のそれぞれは、対応するＣＰＵにおいて実行されているＯＳがＯＳａ３４０であることを示し、ＯＳｂと記述された長方形のそれぞれは、対応するＣＰＵにおいて実行されているＯＳがＯＳｂ３５０であることを示し、破線部分は、対応するＣＰＵがアイドル状態であることを示す。
【０１４５】
第１期間１１１０は、ＣＰＵＣ１２３で実行されているセキュアプロセスによるセキュア領域１４１へのアクセスが行われている期間を示し、第２期間１１２０は、ＣＰＵＢ１２２で実行されているセキュアプロセスによるセキュア領域１４１へのアクセスが行われている期間を示す。
【０１４６】
同図にも示されているように、計算機システム１００においては、いずれかのＣＰＵで実行されているセキュアプロセスによるセキュア領域１４１へのアクセスが行われている期間（例えば、第１期間１１１０と第２期間１１２０。以下、この期間を「セキュア領域アクセス期間」と呼ぶ。）に、いずれかのＣＰＵでＯＳｂ３５０が実行されることがない。従って、セキュア領域アクセス期間において、非セキュアプロセスが実行されることがない。
【０１４７】
また、同図にも示されているように、セキュア領域アクセス期間以外の期間においては、ＯＳａ３４０とＯＳｂ３５０とのいずれもが実行され得る。従って、セキュア領域アクセス期間以外の期間において、セキュアプロセスと非セキュアプロセスとのいずれもが実行され得る。
＜実施の形態２＞
＜概要＞
以下、本発明に係る計算機システムの一実施形態として、実施の形態１に係る計算機システム１００の一部を変形した第１変形計算機システムについて説明する。
【０１４８】
この第１変形計算機システムは、そのハードウエア構成が実施の形態１に係る計算機システム１００と同一のものであるが、メモリ１４０に記憶されているプログラムの一部が実施の形態１に係る計算機システム１００と異なっている。
【０１４９】
実施の形態１に係る計算機システム１００は、セキュアプロセスによるセキュア領域１４１へのアクセスが行われている期間に、アクセスフラグ５３０（図５参照）の論理値が“１”となる構成の例であった。これに対して、実施の形態２に係る第１変形計算機システムは、セキュアプロセスによるセキュア領域１４１へのアクセスが行われている期間に、ハイパバイザによるＯＳの実行優先度が所定値（最大値）となる構成の例である。
【０１５０】
以下、本実施の形態２に係る第１変形計算機システムの構成について、図面を参照しながら、実施の形態１に係る計算機システム１００との相違点を中心に説明する。
【０１５１】
＜構成＞
第１変形計算機システムのハードウエア構成は、実施の形態１に係る計算機システム１００と同一のものである。よって、ここではその説明を省略する。
【０１５２】
これに対して、メモリ１４０に記憶されているプログラムの一部が実施の形態１に係る計算機システム１００から変形されている。そして、このことによって、実施の形態１に係る計算機システム１００において、ＣＰＵＡ１２１〜ＣＰＵＤ１２４上で実行対象となるモジュール群の一部が変形されている。
【０１５３】
図１２は、第１変形計算機システムにおいて、ＣＰＵＡ１２１〜ＣＰＵＤ１２４上で実行対象となるモジュール群１２００を模式的に示す模式図である。
【０１５４】
同図に示されるように、モジュール群１２００は、実施の形態１に係るモジュール群３００から、アクセスフラグ更新部３６１がＯＳ優先度更新部１２６１に変形され、ＯＳＩＤ管理テーブル記憶部３６２が変形ＯＳＩＤ管理テーブル記憶部１２６２に変形され、スケジューラ３６５が変形スケジューラ１２６５に変形され、アクセス制御操作部３６４が変形アクセス制御操作部１２６４に変形されている。そしてこれらの変形に伴って、ハイパバイザ３６０がハイパバイザ１２６０に変形されている。
【０１５５】
変形ＯＳＩＤ管理テーブル記憶部１２６２は、変形ＯＳＩＤ管理テーブル１３００を記憶する機能を有する。
【０１５６】
図１３は、変形ＯＳＩＤ管理テーブル１３００のデータ構成の一例を示すデータ構成図である。
【０１５７】
同図に示されるように、変形ＯＳＩＤ管理テーブル１３００は、ＯＳＩＤ１３１０と優先度１３２０とが対応付けられて構成される。
【０１５８】
ＯＳＩＤ１３１０は、ＯＳＩＤ５１０と同様の、ＯＳを識別するための識別子である。
【０１５９】
優先度１３２０は、ハイパバイザ３６０がＯＳの実行制御を行う場合における、対応するＯＳＩＤ５１０によって識別されるＯＳの実行優先度である。
【０１６０】
ここでは、優先度１３２０は、０〜１００までのいずれかの整数値を取り、より値の大き方が、より優先度が高くなっている。この優先度１３２０は、所定の条件を満たす場合に限って、最大優先度値“１００”を取り、所定の条件を満たさない場合においては、０〜９９までのいずれかの整数値を取る。なお、この優先度１３２０を利用した、ハイパバイザ１２６０によるＯＳの実行制御については、後程、変形スケジューラ１２６５の説明の部分で説明する。
【０１６１】
再び図１２に戻って、モジュール群１２００の説明を続ける。
【０１６２】
ＯＳ優先度更新部１２６１は、以下の３つの機能を有する。
【０１６３】
最大優先度更新機能：セキュア領域開始指示部３４１又はセキュア領域開始指示部３５１からアクセス開始信号を受けた場合において、そのアクセス開始信号の送信元のＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０によって識別されるＯＳに含まれているときに、変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００の、送信元ＯＳを示すＯＳＩＤ１３１０に対応付けられている優先度１３２０を一時的に記憶した上で、最大優先度値“１００”に更新する機能。
【０１６４】
非最大優先度更新機能：セキュア領域終了指示部３４２又はセキュア領域終了指示部３５２からアクセス終了信号を受けた場合において、そのアクセス開始信号の送信元のＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０によって識別されるＯＳに含まれているときに、変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００の、送信元ＯＳを示すＯＳＩＤ１３１０に対応付けられている優先度を、一時的に記憶している値に更新する機能。
【０１６５】
変形再スケジューリング要求機能：変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００の優先度１３２０を更新した場合に、変形スケジューラ１２６５に、更新した変形ＯＳＩＤ管理テーブル１３００に基づく新たなスケジューリングの依頼を行う機能。
【０１６６】
変形スケジューラ１２６５は、以下の２つの機能を有する。
【０１６７】
第１変形通常スケジューリング機能：変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００の優先度１３２０の中に、値が“１００”となるものがない場合に、各ＣＰＵについて、実行する各ＯＳの各実行時間の比率が、各ＯＳに対応する優先度１３２０の比率となるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う機能。
【０１６８】
第１変形限定スケジューリング機能：変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００の優先度１３２０の中に、値が“１００”となるものがある場合に、全てのＣＰＵにおいて、実行するＯＳが、値が“１００”となる優先度１３２０に対応するＯＳＩＤ１３１０によって識別されるＯＳに限定されるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う機能。
【０１６９】
変形アクセス制御操作部１２６４は、以下の２つの機能を有する。
【０１７０】
第１変形セキュア領域設定機能：変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００の優先度１３２０の値が“１００”へと更新された場合において、その優先度１３２０に対応するＯＳＩＤ１３１０と同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれているときに、そのＯＳＩＤ４１０に対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０とを読み出して、制御レジスタ群１３１に含まれるレジスタのうちの、初期値が書き込まれている一のレジスタに、開始アドレス２２０と終了アドレス２３０とアクセス権２４０とを書き込む機能。
【０１７１】
第１変形セキュア領域解除機能：変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００の優先度１３２０の値が“１００”から“１００”以外へと更新された場合において、その優先度１３２０に対応するＯＳＩＤ１３１０と同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれているときに、そのＯＳＩＤ４１０に対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０との値が書き込まれている、制御レジスタ群１３１に含まれるレジスタについて、そのレジスタの開始アドレス２２０と終了アドレス２３０とアクセス権２４０との値を初期値である論理値“０”に書き換える機能。
【０１７２】
以上のように構成される第１変形計算機システムの行う動作について、以下図面を参照しながら説明する。
【０１７３】
＜動作＞
ここでは、第１変形計算機システムの行う動作のうち、特徴的な動作である、第１変形アクセス開始処理と第１変形再スケジューリング処理と第１変形セキュア領域設定処理と第１変形アクセス終了処理とについて説明する。
【０１７４】
＜第１変形アクセス開始処理＞
第１変形アクセス開始処理は、実施の形態１におけるアクセス開始処理（図６等参照）の一部が変形された処理であって、ハイパバイザ１２６０が主体となって行う処理であって、ＯＳａ３４０又はＯＳｂ３５０から、セキュア領域１４１へのアクセスが開始される旨の通知を受けると、その通知に基づいて、実行するＯＳの再スケジューリングと制御レジスタ群１３１の設定とを行う処理である。
【０１７５】
図１４は第１変形アクセス開始処理のフローチャートである。
【０１７６】
第１変形アクセス開始処理は、ＯＳａ３４０のセキュア領域開始指示部３４１又はＯＳｂ３５０のセキュア領域開始指示部３５１が、自モジュールを含むＯＳによって実行制御されているプロセスによる、セキュア領域１４１へのアクセスが開始されることを検知して、アクセス開始信号をＯＳ優先度更新部１２６１へ送ることで開始される。
【０１７７】
第１変形アクセス開始処理が開始されると、ＯＳ優先度更新部１２６１は、送られたアクセス開始信号を受信する（ステップＳ１４００）。
【０１７８】
アクセス開始信号を受信すると、ＯＳ優先度更新部１２６１は、受信したアクセス開始信号に含まれるＯＳＩＤを取得する（ステップＳ１４１０）。そして、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれているか否かを調べることで、取得したＯＳＩＤによって識別されるＯＳに、セキュア領域に含まれる一の連続した記憶領域へのアクセス権が設定されているか否かを調べる（ステップＳ１４２０）。
【０１７９】
ステップＳ１４２０の処理において、アクセス権が設定されている場合に（ステップＳ１４２０：Ｙｅｓ）、すなわち、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれている場合に、ＯＳ優先度更新部１２６１は、変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００の、取得したＯＳＩＤと同じ識別子のＯＳＩＤ１３１０に対応付けられている優先度１３２０を一時的に記憶して（ステップＳ１４２５）、最大優先度値“１００”に更新する（ステップＳ１４３０）。そして、変形スケジューラ１２６５に、再スケジューリングを依頼する（ステップＳ１４４０）
再スケジューリングを依頼されると、変形スケジューラ１２６５は、後述の第１変形再スケジューリング処理を行うことで、各ＣＰＵの実行するＯＳが、値が“１００”となる優先度１３２０に対応するＯＳＩＤ１３１０によって識別されるＯＳに限定されるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う。
【０１８０】
ここで、実行制御部３６６は、変形スケジューラ１２６５がスケジューリングを開始すると、全てのＣＰＵについてのＯＳの実行制御を一時的に中断する。
【０１８１】
変形アクセス制御操作部１２６４は、変形スケジューラ１２６５が全てのＣＰＵについてのスケジューリングを完了するまで待機し（ステップＳ１４５０：Ｎｏを繰り返し）た後に（ステップＳ１４５０：Ｙｅｓ）、後述の第１変形セキュア領域設定処理を実行することで、ＯＳ優先度更新部１２６１が取得したＯＳＩＤに対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０とを、制御レジスタ群１３１に含まれるレジスタのうちの、初期値が書き込まれている一のレジスタに書き込む（ステップＳ１４６０）。
【０１８２】
ステップＳ１４７０の処理は、実施の形態１におけるステップＳ６７０の処理（図６等参照）と同様の処理である。よって、ここでは説明を省略する。
【０１８３】
ステップＳ６２０の処理において、アクセス権が設定されていない場合に（ステップＳ１４２０：Ｎｏ）、すなわち、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれていない場合、又は、ステップＳ１４７０の処理が終了した場合に、ハイパバイザ１２６０は、そのアクセス開始処理を終了する。
【０１８４】
＜第１変形再スケジューリング処理＞
第１変形再スケジューリング処理は、実施の形態１における再スケジューリング処理（図７等参照）の一部が変形された処理であって、実施の形態１における再スケジューリング処理（図７等参照）の一部が変形された処理であって、変形スケジューラ１２６５が行う処理であって、再スケジューリングが依頼された場合に、変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００を参照して、各ＣＰＵにおける各ＯＳのスケジューリングを行う処理である。
【０１８５】
図１５は、第１変形再スケジューリング処理のフローチャートである。
【０１８６】
第１変形再スケジューリング処理は、ＯＳ優先度更新部１２６１から、再スケジューリングを依頼されることで開始される。
【０１８７】
第１変形再スケジューリング処理が開始されると、変形スケジューラ１２６５は、変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００に、値が“１００”となる優先度１３２０が存在するか否かを調べる（ステップＳ１５００）。
【０１８８】
ステップＳ１５００の処理において、値が“１００”となる優先度１３２０が存在する場合に（ステップＳ１５００：Ｙｅｓ）、変形スケジューラ１２６５は、全てのＣＰＵにおいて、実行するＯＳが、その値が“１００”となる優先度１３２０に対応するＯＳＩＤ１３１０によって識別されるＯＳに限定されるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う（ステップＳ１５１０）。
【０１８９】
ステップＳ１５００の処理において、値が“１００”となる優先度１３２０が存在する場合に（ステップＳ１５００：Ｎｏ）、変形スケジューラ１２６５は、各ＣＰＵについて、実行する各ＯＳの各実行時間の比率が、各ＯＳに対応する優先度１３２０の比率となるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う（ステップＳ１５２０）。
【０１９０】
ステップＳ１５１０の処理が終わった場合、又は、ステップＳ１５２０の処理が終わった場合に、変形スケジューラ１２６５は、その第１変形再スケジューリング処理を終了する。
【０１９１】
＜第１変形セキュア領域設定処理＞
第１変形セキュア領域設定処理は、実施の形態１におけるセキュア領域設定処理（図８等参照）の一部が変形された処理であって、変形アクセス制御操作部１２６４が行う処理であって、変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００の優先度１３２０が更新された場合に、制御レジスタ群１３１に含まれるレジスタを更新する処理である。
【０１９２】
図１６は、第１変形セキュア領域設定処理のフローチャートである。
【０１９３】
第１変形セキュア領域設定処理は、変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００の優先度１３２０の値が“１００”へと更新される、又は“１００”から“１００”以外へと更新されることで開始される。
【０１９４】
セキュア領域設定処理が開始されると、アクセス制御操作部３６４は、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００を参照して、更新された優先度１３２０に対応するＯＳＩＤ１３１０と同じ識別子のＯＳＩＤ４１０に対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０とを読み出す（ステップＳ１６００）。そして、更新された優先度１３２０の値が“１００”であるか否かを調べる（ステップＳ１６１０）。
【０１９５】
ステップＳ１６１０の処理において、更新された優先度１３２０の値が“１００”である場合に（ステップＳ１６１０：Ｙｅｓ）、変形アクセス制御操作部１２６４は、制御レジスタ群１３１に含まれるレジスタのうちの、初期値が書き込まれている一のレジスタに、開始アドレス２２０と終了アドレス２３０とアクセス権２４０とを書き込む（ステップＳ１６２０）。
【０１９６】
ステップＳ１６１０の処理において、更新された優先度１３２０の値が“１００”でない場合に（ステップＳ１６１０：Ｎｏ）、変形アクセス制御操作部１２６４は、更新された優先度１３２０に対応するＯＳＩＤ１３１０と同じ識別子のＯＳＩＤ４１０に対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０との値が書き込まれている、制御レジスタ群１３１に含まれるレジスタについて、そのレジスタの開始アドレス２２０と終了アドレス２３０とアクセス権２４０との値を初期値である論理値“０”に書き換える（ステップＳ１６３０）。
【０１９７】
ステップＳ１６２０の処理が終わった場合、又は、ステップＳ１６３０の処理が終わった場合に、変形アクセス制御操作部１２６４は、その第１変形セキュア領域設定処理を終了する。
【０１９８】
＜第１変形アクセス終了処理＞
第１変形アクセス開始処理は、実施の形態１におけるアクセス終了処理（図９等参照）の一部が変形された処理であって、ハイパバイザ１２６０が主体となって行う処理であって、ＯＳａ３４０又はＯＳｂ３５０から、セキュア領域１４１へのアクセスが終了される旨の通知を受けると、その通知に基づいて、実行するＯＳの再スケジューリングと制御レジスタ群１３１の設定とを行う処理である。
【０１９９】
図１７は第１変形アクセス終了処理のフローチャートである。
【０２００】
第１変形アクセス開始処理は、ＯＳａ３４０のセキュア領域終了指示部３４２又はＯＳｂ３５０のセキュア領域終了指示部３５２が、自モジュールを含むＯＳによって実行制御されているプロセスによる、セキュア領域１４１へのアクセスが終了されることを検知して、アクセス終了信号をＯＳ優先度更新部１２６１へ送ることで開始される。
【０２０１】
第１変形アクセス終了処理が開始されると、ＯＳ優先度更新部１２６１は、送られたアクセス終了信号を受信する（ステップＳ１７００）。
【０２０２】
アクセス終了信号を受信すると、ＯＳ優先度更新部１２６１は、受信したアクセス開始信号に含まれるＯＳＩＤを取得する（ステップＳ１７１０）。そして、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれているか否かを調べることで、取得したＯＳＩＤによって識別されるＯＳに、セキュア領域に含まれる一の連続した記憶領域へのアクセス権が設定されているか否かを調べる（ステップＳ１７２０）。
【０２０３】
ステップＳ１７２０の処理において、アクセス権が設定されている場合に（ステップＳ１７２０：Ｙｅｓ）、すなわち、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれている場合に、ＯＳ優先度更新部１２６１は、変形ＯＳＩＤ管理テーブル記憶部１２６２に記憶される変形ＯＳＩＤ管理テーブル１３００の、取得したＯＳＩＤと同じ識別子のＯＳＩＤ１３１０に対応付けられている優先度１３２０を、一時的に記憶していた値に更新する（ステップＳ１７３０）。そして、変形スケジューラ１２６５に、再スケジューリングを依頼する（ステップＳ１７４０）
再スケジューリングを依頼されると、変形スケジューラ１２６５は、前述の第１変形再スケジューリング処理を行うことで、各ＣＰＵについて、実行する各ＯＳの各実行時間の比率が、各ＯＳに対応する優先度１３２０の比率となるように、各ＣＰＵにおける各ＯＳの実行スケジューリングを行う。
【０２０４】
ここで、実行制御部３６６は、変形スケジューラ１２６５がスケジューリングを開始すると、全てのＣＰＵについてのＯＳの実行制御を一時的に中断する。
【０２０５】
変形アクセス制御操作部１２６４は、変形スケジューラ１２６５が全てのＣＰＵについてのスケジューリングを完了するまで待機し（ステップＳ１７５０：Ｎｏを繰り返し）た後に（ステップＳ１７５０：Ｙｅｓ）、前述の第１変形セキュア領域設定処理を実行することで、更新された優先度１３２０に対応するＯＳＩＤ１３１０と同じ識別子のＯＳＩＤ４１０に対応する開始アドレス４２０と終了アドレス４３０とアクセス権４４０との値が書き込まれている、制御レジスタ群１３１に含まれるレジスタについて、そのレジスタの開始アドレス２２０と終了アドレス２３０とアクセス権２４０との値を初期値である論理値“０”に書き換える（ステップＳ１７６０）。
【０２０６】
ステップＳ１７７０の処理は、実施の形態１におけるステップＳ９７０の処理（図９等参照）と同様の処理である。よって、ここでは説明を省略する。
【０２０７】
ステップＳ９２０の処理において、アクセス権が設定されていない場合に（ステップＳ１７２０：Ｎｏ）、すなわち、取得したＯＳＩＤと同じ識別子が、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０に含まれていない場合、又は、ステップＳ１７７０の処理が終了した場合に、ハイパバイザ３６０は、そのアクセス終了処理を終了する。
＜実施の形態３＞
＜概要＞
以下、本発明に係る計算機システムの一実施形態として、実施の形態１に係る計算機システム１００の一部を変形した計算機システム１８００について説明する。
【０２０８】
この計算機システム１８００は、そのハードウエア構成が、実施の形態１に係る計算機システム１００から一部変形され、さらに、メモリ１４０に記憶され得ているプログラムの一部が実施の形態１に係る計算機システム１００から一部変形されている。
【０２０９】
実施の形態１に係る計算機システム１００は、ＯＳに含まれるセキュア領域開始指示部３４１又はセキュア領域開始指示部３５１が、セキュア領域１４１へのアクセスが開始されることを検知する構成の例であった。これに対して、実施の形態３に係る計算機システム１８００は、アクセス制御装置１３０から送られるメモリアクセス例外割込要求信号に基づいて、ハイパバイザが、セキュア領域１４１へのアクセスが開始されることを検知する構成の例である。
【０２１０】
以下、本実施の形態３に係る計算機システム１８００の構成について、図面を参照しながら、実施の形態１に係る計算機システム１００との相違点を中心に説明する。
【０２１１】
＜構成＞
図１８は、計算機システム１８００の主要なハードウエア構成を示すブロック図である。
【０２１２】
同図に示されるように、計算機システム１８００は、実施の形態１に係る計算機システム１００（図１参照）に対して、タイマ１７０５が追加され、割込コントローラ１２５が割込コントローラ１８２５に変形されている。そして、割込コントローラ１８２５の変形に伴って、ＭＰＵ１２０がＭＰＵ１８２０に変形されている。
【０２１３】
タイマ１７０５は、バス１５０に接続され、ＣＰＵＡ１２１〜ＣＰＵＤ１２４によって制御され、ＣＰＵＡ１２１〜ＣＰＵＤ１２４によって指定された時間を計時し、指定された時間が経過する際に、タイマ割込要求信号を、割込コントローラ１８２５に送る機能を有する。
【０２１４】
ここで、このタイマ割込要求信号は、計時時間を指定したＣＰＵを特定する情報を含む。
【０２１５】
割込コントローラ１８２５は、アクセス制御装置１３０とＣＰＵＡ１２１とＣＰＵＢ１２２とＣＰＵＣ１２３とＣＰＵＤ１２４とに接続され、以下の２つの機能を有する。
【０２１６】
メモリアクセス例外通知機能：アクセス制御装置１３０からメモリアクセス例外割込要求信号を受けた場合に、禁止対象となったメモリアクセスを試みたＣＰＵ（以下、「アクセスＣＰＵ」と呼ぶ。）を特定して、特定したアクセスＣＰＵに、アクセスＣＰＵが特定可能なメモリアクセス例外割り込みを行う機能。
【０２１７】
タイマ割込通知機能：タイマ１７０５からタイマ割込要求信号を受けた場合に、計時時間を指定したＣＰＵを特定して、特定したＣＰＵに、そのＣＰＵが特定可能な、タイマによる計時が終了した旨のタイマ割り込みを行う機能。
【０２１８】
図１９は、計算機システム１８００において、ＣＰＵＡ１２１〜ＣＰＵＤ１２４上で実行対象となるモジュール群１９００を模式的に示す図である。
【０２１９】
同図に示されるように、モジュール群１９００は、実施の形態１に係るモジュール群３００（図２等参照）から、ＯＳａ３４０が、セキュア領域開始指示部３４１とセキュア領域終了指示部３４２とが削除されることでＯＳａ１９４０に変形され、ＯＳｂ３５０が、セキュア領域開始指示部３５１とセキュア領域終了指示部３５２とが削除されることでＯＳｂ１９５０に変形され、アクセスフラグ更新部３６１が変形アクセスフラグ更新部１９６１に変形され、割込処理部１９７０が追加されている。そしてこれらの変形に伴って、ハイパバイザ３６０がハイパバイザ１９６０に変形されている。
【０２２０】
割込処理部１９７０は、以下の３つの機能を有する。
【０２２１】
メモリアクセス例外通知機能：割込コントローラ１８２５からＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかに対してなされたメモリアクセス例外割り込みを検知して、そのメモリアクセス例外割り込みがなされたＣＰＵで実行されているＯＳを特定し、特定したＯＳを示す情報を含むメモリアクセス例外通知信号を、変形アクセスフラグ更新部１９６１に送る機能。
【０２２２】
タイマ終了通知機能：割込コントローラ１８２５からＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかに対してなされたタイマ割り込みを検知して、そのタイマ割り込みがなされたＣＰＵで実行されているＯＳを特定し、特定したＯＳを示す情報を含むタイマ終了通知信号を、変形アクセスフラグ更新部１９６１に送る機能。
【０２２３】
メモリアクセス例外処理機能：割込コントローラ１８２５からＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかに対してなされたメモリアクセス例外割り込みを検知した場合において所定の条件を満たすときに、予め定められた、メモリアクセスが禁止された場合に行うメモリアクセス禁止処理を行う機能。
【０２２４】
変形アクセスフラグ更新部１９６１は、実施の形態１に係るアクセスフラグ更新部３６１が有する再スケジューリング要求機能に加えて、以下の２つの機能を有する。
【０２２５】
第１変形アクセスフラグ１更新機能：割込処理部１９７０からメモリアクセス例外通知信号を受けた場合において、そのメモリアクセス例外通知信号によって特定されるＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０によって識別されるＯＳに含まれているときに、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００の、送信元ＯＳを識別するＯＳＩＤ５１０に対応付けられているアクセスフラグ５３０を、論理値“１”に更新する機能。
【０２２６】
第１変形アクセスフラグ０更新機能：割込処理部１９７０からタイマ終了通知信号を受けた場合において、そのタイマ終了通知信号によって特定されるＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０によって識別されるＯＳに含まれているときに、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００の、送信元ＯＳを識別するＯＳＩＤ５１０に対応付けられているアクセスフラグ５３０を、論理値“０”に更新する機能。
【０２２７】
以上のように構成される計算機システム１８００の行う動作について、以下図面を参照しながら説明する。
【０２２８】
＜動作＞
ここでは、計算機システム１８００の行う動作のうち、特徴的な動作である、第２変形アクセス開始処理と第２変形アクセス終了処理とについて説明する。
【０２２９】
＜第２変形アクセス開始処理＞
第２変形アクセス開始処理は、実施の形態１におけるアクセス開始処理（図６等参照）の一部が変形された処理であって、ハイパバイザ１９６０が主体となって行う処理であって、割込処理部１９７０が、割込コントローラ１８２５からＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかに対してなされたメモリアクセス例外割り込みを検知すると、そのメモリアクセス例外割り込みに基づいて、実行するＯＳの再スケジューリングと制御レジスタ群１３１の設定とを行う処理である。
【０２３０】
図２０は第２変形アクセス開始処理のフローチャートである。
【０２３１】
第２変形アクセス開始処理は、割込処理部１９７０が、割込コントローラ１８２５からＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかに対してなされたメモリアクセス例外割り込みを検知して、そのメモリアクセス例外割り込みがなされたＣＰＵで実行されているＯＳを特定し、特定したＯＳを示す情報を含むメモリアクセス例外通知信号を、変形アクセスフラグ更新部１９６１に送ることで開始される。
【０２３２】
第２変形アクセス開始処理が開始されると、変形アクセスフラグ更新部１９６１は、送られたメモリアクセス例外通知信号を受信する（ステップＳ２０００）。
【０２３３】
メモリアクセス例外通知信号を受信すると、変形アクセスフラグ更新部１９６１は、受信したメモリアクセス例外通知信号によって特定されるＯＳを特定する（ステップＳ２０１０）。そして、特定したＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００（図４参照）のＯＳＩＤ４１０によって識別されるＯＳに含まれているか否かを調べることで、特定したＯＳに、セキュア領域１４１に含まれる一の連続した記憶領域へのアクセス権が設定されているか否かを調べる（ステップＳ２０２０）。
【０２３４】
ステップＳ２０２０の処理において、アクセス権が設定されている場合に（ステップＳ２０２０：Ｙｅｓ）、すなわち、特定したＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０によって識別されるＯＳに含まれている場合に、変形アクセスフラグ更新部１９６１は、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００の、取得したＯＳＩＤと同じ識別子のＯＳＩＤ５１０に対応付けられているアクセスフラグ５３０を、論理値“１”に更新する（ステップＳ２０３０）。
【０２３５】
ステップＳ２０４０の処理〜ステップＳ２０７０の処理は、それぞれ、実施の形態１におけるアクセス開始処理のステップＳ６４０の処理〜ステップＳ６７０の処理において、アクセスフラグ更新部３６１を変形アクセスフラグ更新部１９６１に読み替えたものと同様の処理である。よって、ここでは、これらの処理の説明を省略する。
【０２３６】
ステップＳ２０７０の処理が終わると、アクセス制御操作部３６４は、タイマ１７０５に所定時間Ｔ１（例えば１μｓ）の計時を開始させる（ステップＳ２０８０）。
【０２３７】
ステップＳ２０２０の処理において、アクセス権が設定されていない場合に（ステップＳ２０２０：Ｎｏ）、すなわち、特定したＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０によって識別されるＯＳに含まれていない場合に、割込処理部１９７０は、メモリアクセス禁止処理を行う（ステップＳ２０９０）。
【０２３８】
ステップＳ２０８０の処理が終了した場合、又は、ステップＳ２０９０の処理が終了した場合に、ハイパバイザ１９６０は、その第２変形アクセス開始処理を終了する。
【０２３９】
＜第２変形アクセス終了処理＞
第２変形アクセス終了処理は、実施の形態１におけるアクセス終了処理（図９等参照）の一部が変形された処理であって、ハイパバイザ１９６０が主体となって行う処理であって、割込処理部１９７０が、タイマ１７０５からＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかに対してなされたタイマ割り込みを検知すると、そのタイマ割り込みに基づいて、実行するＯＳの再スケジューリングと制御レジスタ群１３１の設定とを行う処理である。
【０２４０】
図２１は、第２変形アクセス終了処理のフローチャートである。
【０２４１】
第２変形アクセス終了処理は、割込処理部１９７０が、割込コントローラ１８２５からＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかに対してなされたタイマ割り込みを検知して、そのタイマ割り込みがなされたＣＰＵで実行されているＯＳを特定し、特定したＯＳを示す情報を含むタイマ終了通知信号を、変形アクセスフラグ更新部１９６１に送ることで開始される。
【０２４２】
第２変形アクセス終了処理が開始されると、変形アクセスフラグ更新部１９６１は、送られたタイマ終了通知信号を受信する（ステップＳ２１００）。
【０２４３】
タイマ終了通知信号を受信すると、変形アクセスフラグ更新部１９６１は、受信したタイマ終了通知信号によって特定されるＯＳを特定する（ステップＳ２１１０）。そして、特定したＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００（図４参照）のＯＳＩＤ４１０によって識別されるＯＳに含まれているか否かを調べることで、特定したＯＳに、セキュア領域１４１に含まれる一の連続した記憶領域へのアクセス権が設定されているか否かを調べる（ステップＳ２１２０）。
【０２４４】
ステップＳ２０２０の処理において、アクセス権が設定されている場合に（ステップＳ２１２０：Ｙｅｓ）、すなわち、特定したＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０によって識別されるＯＳに含まれている場合に、変形アクセスフラグ更新部１９６１は、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００の、取得したＯＳＩＤと同じ識別子のＯＳＩＤ５１０に対応付けられているアクセスフラグ５３０を、論理値“０”に更新する（ステップＳ２１３０）。
【０２４５】
ステップＳ２１４０の処理〜ステップＳ２１７０の処理は、それぞれ、実施の形態１におけるアクセス終了処理のステップＳ９４０の処理〜ステップＳ９７０の処理において、アクセスフラグ更新部３６１を変形アクセスフラグ更新部１９６１に読み替えたものと同様の処理である。よって、ここでは、これらの処理の説明を省略する。
【０２４６】
ステップＳ２１２０の処理において、アクセス権が設定されていない場合に（ステップＳ２１２０：Ｎｏ）、すなわち、特定したＯＳが、セキュア領域管理テーブル記憶部３６３に記憶されるセキュア領域管理テーブル４００のＯＳＩＤ４１０によって識別されるＯＳに含まれていない場合、又は、ステップＳ２１７０の処理が終了した場合に、ハイパバイザ１９６０は、その第２変形アクセス終了処理を終了する。
＜実施の形態４＞
＜概要＞
以下、本発明に係る計算機システムの一実施形態として、実施の形態１に係る計算機システム１００の一部を変形した第２変形計算機システムについて説明する。
【０２４７】
この第２変形計算機システムは、そのハードウエア構成が実施の形態１に係る計算機システム１００と同一のものであるが、メモリ１４０に記憶されているプログラムの一部が実施の形態１に係る計算機システム１００と異なっている。
【０２４８】
実施の形態１に係る計算機システム１００は、プロセスの実行制御を行うＯＳと、ＯＳの実行制御を行うハイパバイザとを備える構成の例であった。これに対して、実施の形態４に係る第２変形計算機システムは、ハイパバイザを備えずに、１以上のプロセスからなるプロセスグループ単位でプロセスの実行制御を行うＯＳを備える構成の例である。
【０２４９】
以下、本実施の形態４に係る第２変形計算機システムの構成について、図面を参照しながら、実施の形態１に係る計算機システム１００との相違点を中心に説明する。
【０２５０】
＜構成＞
第２変形計算機システムのハードウエア構成は、実施の形態１に係る計算機システム１００と同一のものである。よって、ここではその説明を省略する。
【０２５１】
これに対して、メモリ１４０に記憶されているプログラムの一部が実施の形態１に係る計算機システム１００から変形されている。そして、このことによって、実施の形態１に係る計算機システム１００において、ＣＰＵＡ１２１〜ＣＰＵＤ１２４上で実行対象となるモジュール群の一部が変形されている。
【０２５２】
図２２は、第２変形計算機システムにおいて、ＣＰＵＡ１２１〜ＣＰＵＤ１２４上で実行対象となるモジュール群２２００を模式的に示す模式図である。
【０２５３】
同図に示されるように、モジュール群２２００には、ユーザモード３１０で実行されるプロセスＡ２２４０〜プロセスＺ２２５０と、第１特権モード３２０で実行されるＯＳ２２６０とが含まれている。
【０２５４】
ＯＳ２２６０は、１以上のプロセスからなるプロセスグループ単位でプロセスＡ２２４０〜プロセスＺ２２５０を実行制御する機能を有するオペレーティングシステムであって、アクセスフラグ更新部２２６１とＰＧ（Process Group）ＩＤ管理テーブル記憶部２２６２とセキュア領域管理テーブル記憶部２２６３とアクセス制御操作部２２６４とスケジューラ２２６５と実行制御部２２６６とＣＰＵ間通信制御部２２６７とを含む。
【０２５５】
ここで、このＯＳ２２６０は、任意の時刻において、ＣＰＵのそれぞれが一のプロセスグループを実行対象とするように、プロセスの実行制御を行う。
【０２５６】
プロセスＡ２２４０〜プロセスＺ２２５０は、それぞれ、ＣＰＵＡ１２１〜ＣＰＵＤ１２４のいずれかがアプリケーションプログラムを実行することで生成されるタスクであって、セキュア領域開始指示部（セキュア領域開始指示部２２４１、セキュア領域開始指示部２２５１等）と、セキュア領域終了指示部（セキュア領域終了指示部２２４２、セキュア領域終了指示部等）とを含む。
【０２５７】
セキュア領域開始指示部２２４１は、自モジュールを含むプロセスによる、セキュア領域１４１へのアクセスが開始されることを検知して、セキュア領域１４１へのアクセスが開始されることを示す変形アクセス開始信号をアクセスフラグ更新部２２６１へ送る機能を有する。ここでは、この変形アクセス開始信号は、自信号を送るプロセスを含むプロセスグループを識別する識別子であるＰＧＩＤを含んでいる。
【０２５８】
セキュア領域終了指示部２２４２は、自モジュールを含むプロセスによる、セキュア領域１４１へのアクセスが終了されることを検知して、セキュア領域１４１へのアクセスが終了することを示す変形アクセス終了信号をアクセスフラグ更新部３６１へ送る機能を有する。ここでは、この変形アクセス終了信号は、自信号を送るプロセスを含むプロセスグループを識別する識別子であるＰＧＩＤを含んでいる。
【０２５９】
セキュア領域開始指示部２２５１とセキュア領域終了指示部２２５２とは、それぞれ、セキュア領域開始指示部２２４１とセキュア領域終了指示部２２４２と同等の機能を有する。よってここでは説明を省略する。
【０２６０】
セキュア領域管理テーブル記憶部２２６３は、変形セキュア領域管理テーブル２３００を記憶する機能を有する。
【０２６１】
図２３は、変形セキュア領域管理テーブル２３００のデータ構成の一例を示すデータ構成図である。
【０２６２】
同図に示されるように、変形セキュア領域管理テーブル２３００は、ＰＧＩＤ２３１０と開始アドレス２３２０と終了アドレス２３３０とアクセス権２３４０とが対応付けられて構成される。
【０２６３】
ＰＧＩＤ２３１０は、プロセスグループを識別するための識別子である。
【０２６４】
ここでは、ＰＧＩＤ２３１０が“１”、“２”、“９”で識別されるプロセスグループは、それぞれ、セキュアアプリケーションプログラムを実行することで生成されるプロセスからなるセキュアプロセスグループであり、ＰＧＩＤ２３１０が“１”、“２”、“９”で識別されるプロセスグループ以外のプロセスグループは、それぞれ、非セキュアアプリケーションプログラムを実行することで生成されるプロセスからなる非セキュアプロセスグループである。
【０２６５】
開始アドレス２３２０と終了アドレス２３３０とは、それぞれ、セキュア領域に含まれる一の連続した記憶領域についての開始アドレスと終了アドレスとである。
【０２６６】
アクセス権２３４０は、対応する開始アドレス２３２０と終了アドレス２３３０とによって指定される連続した記憶領域について、対応するＰＧＩＤ２３１０によって識別されるプロセスグループに含まれるプロセスからのアクセスの許可形態を示すアクセス形態情報である。
【０２６７】
このアクセス形態情報は、実施の形態１におけるアクセス権２４０におけるアクセス形態情報と同様のものである。よって説明を省略する。
【０２６８】
ここで、この変形セキュア領域管理テーブル２３００は、システム開発時において予め定められたテーブルであって、その内容が更新不可となっている。
【０２６９】
再び図２２に戻って、モジュール群３００の説明を続ける。
【０２７０】
ＰＧＩＤ管理テーブル記憶部２２６２は、ＰＧＩＤ管理テーブル２４００を記憶する機能を有する。
【０２７１】
図２４は、ＰＧＩＤ管理テーブル２４００のデータ構成の一例を示すデータ構成図である。
【０２７２】
同図に示されるように、ＰＧＩＤ管理テーブル２４００は、ＰＧＩＤ２４１０と優先度２４２０とＰＩＤ２４３０とアクセスフラグ２４４０とが対応付けられて構成される。
【０２７３】
ＰＧＩＤ２４１０は、ＰＧＩＤ２３１０と同様の、プロセスグループを識別するための識別子である。
【０２７４】
優先度２４２０は、ＯＳ２２６０がプロセスの実行制御を行う場合における、対応するＰＧＩＤ２４１０によって識別されるプロセスグループの実行優先度である。
【０２７５】
ここでは、優先度２４２０は、０〜９９までのいずれかの整数値を取り、より値の大き方が、より優先度が高くなっている。なお、この優先度２４２０を利用した、ＯＳ２２６０によるプロセスの実行制御については、後程、スケジューラ２２６５の説明の部分で説明する。
【０２７６】
Ｐ（Process）ＩＤ２４３０は、対応するＰＧＩＤ２４１０で識別されるプロセスグループに含まれるプロセスを識別するための識別子である。
【０２７７】
アクセスフラグ２４４０は、対応するＰＧＩＤ２４１０によって識別されるプロセスグループに含まれるプロセスによって、セキュア領域１４１へのアクセスが行われているか否かを示すフラグである。
【０２７８】
ここで、アクセスフラグ２４４０は、論理値“１”の場合にセキュア領域１４１へのアクセスが行われていることを示し、論理値“０”の場合にセキュア領域１４１へのアクセスが行われていないことを示す。
【０２７９】
再び図２２に戻って、モジュール群２２００の説明を続ける。
【０２８０】
アクセスフラグ更新部２２６１は、以下の３つの機能を有する。
【０２８１】
第２変形アクセスフラグ１更新機能：セキュア領域開始指示部（セキュア領域開始指示部２２４１、セキュア領域開始指示部２２５１等）から変形アクセス開始信号を受けた場合において、その変形アクセス開始信号の送信元のプロセスが、セキュア領域管理テーブル記憶部２２６３に記憶される変形セキュア領域管理テーブル２３００のＰＧＩＤ２３１０によって識別されるプロセスグループに含まれるプロセスであるときに、ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００の、送信元プロセスを識別するＰＩＤ２４３０に対応付けられているアクセスフラグ２４４０を、論理値“１”に更新する機能。
【０２８２】
第２変形アクセスフラグ０更新機能：セキュア領域終了指示部（セキュア領域終了指示部２２４２、セキュア領域終了指示部２２５２等）から変形アクセス終了信号を受けた場合において、そのアクセス開始信号の送信元のプロセスが、セキュア領域管理テーブル記憶部２２６３に記憶される変形セキュア領域管理テーブル２３００のＰＧＩＤ２３１０によって識別されるプロセスグループに含まれるプロセスであるときに、ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００の、送信元プロセスを識別するＰＩＤ２４３０に対応付けられているアクセスフラグ２４４０を、論理値“０”に更新する機能。
【０２８３】
変形再スケジューリング要求機能：ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００のアクセスフラグ２４４０を更新した場合に、スケジューラ２２６５に、更新したＰＧＩＤ管理テーブル２４００に基づく新たなスケジューリングの依頼を行う機能。
【０２８４】
スケジューラ２２６５は、以下の２つの機能を有する。
【０２８５】
第２変形通常スケジューリング機能：ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００のアクセスフラグ２４４０の論理値が全て“０”の場合に、各ＣＰＵについて、実行する各プロセスグループに属するプロセスの各実行時間の比率が、各プロセスグループに対応する優先度２４２０の比率となるように、各ＣＰＵにおける各プロセスの実行スケジューリングを行う機能。
【０２８６】
第２変形限定スケジューリング機能：ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００のアクセスフラグ２４４０の中に論理値が“１”となるものがある場合に、全てのＣＰＵにおいて、実行するプロセスが、その論理値が“１”となるアクセスフラグ２４４０に対応するＰＧＩＤ２４１０によって識別されるプロセスグループに属するプロセスに限定されるように、各ＣＰＵにおける各プロセスの実行スケジューリングを行う機能。
【０２８７】
実行制御部２２６６は、スケジューラ２２６５によってスケジューリングされた実行スケジュールに基づいて、各ＣＰＵについてのプロセスの実行制御を行う機能を有する。
【０２８８】
この実行制御部２２６６は、スケジューラ２２６５がスケジューリングを行っている期間、全てのプロセスについての実行制御を一時的に中断する。
【０２８９】
ＣＰＵ間通信制御部２２６７は、実施の形態１におけるＣＰＵ間通信制御部３６７と同様の機能を有する。よって、ここでは説明を省略する。
【０２９０】
アクセス制御操作部２２６４は、以下の２つの機能を有する。
【０２９１】
第２変形セキュア領域設定機能：ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００のアクセスフラグ２４４０の論理値が“１”へと更新された場合において、そのアクセスフラグ２４４０に対応するＰＧＩＤ２４１０と同じ識別子が、セキュア領域管理テーブル記憶部２２６３に記憶される変形セキュア領域管理テーブル２３００のＰＧＩＤ２３１０に含まれているときに、そのＰＧＩＤ２３１０に対応する開始アドレス２３２０と終了アドレス２３３０とアクセス権２３４０とを読み出して、制御レジスタ群１３１に含まれるレジスタのうちの、初期値が書き込まれている一のレジスタに、開始アドレス２２０と終了アドレス２３０とアクセス権２４０とを書き込む機能。
【０２９２】
第２変形セキュア領域解除機能：ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００のアクセスフラグ２４４０の論理値が“０”へと更新された場合において、そのアクセスフラグ２４４０に対応するＰＧＩＤ２４１０と同じ識別子が、セキュア領域管理テーブル記憶部２２６３に記憶される変形セキュア領域管理テーブル２３００のＰＧＩＤ２３１０に含まれているときに、そのＰＧＩＤ２３１０に対応する開始アドレス２３２０と終了アドレス２３３０とアクセス権２３４０との値が書き込まれている、制御レジスタ群１３１に含まれるレジスタについて、そのレジスタの開始アドレス２２０と終了アドレス２３０とアクセス権２４０との値を初期値である論理値“０”に書き換える機能。
【０２９３】
以上のように構成される第２変形計算機システムの行う動作について、以下図面を参照しながら説明する。
【０２９４】
＜動作＞
ここでは、計算機システム１００の行う動作のうち、特徴的な動作である、第３変形アクセス開始処理と第２変形再スケジューリング処理と第２変形セキュア領域設定処理と第３変形アクセス終了処理とについて説明する。
【０２９５】
＜第３変形アクセス開始処理＞
第３変形アクセス開始処理は、実施の形態１におけるアクセス開始処理（図６等参照）の一部が変形された処理であって、ＯＳ２２６０が主体となって行う処理であって、プロセスから、セキュア領域１４１へのアクセスが開始される旨の通知を受けると、その通知に基づいて、実行するプロセスの再スケジューリングと制御レジスタ群１３１の設定とを行う処理である。
【０２９６】
図２５は第３変形アクセス開始処理のフローチャートである。
【０２９７】
第３変形アクセス開始処理は、セキュア領域開始指示部（セキュア領域開始指示部２２４１、セキュア領域開始指示部２２５１等）が、自モジュールを含むプロセスによる、セキュア領域１４１へのアクセスが開始されることを検知して、変形アクセス開始信号をアクセスフラグ更新部２２６１へ送ることで開始される。
【０２９８】
第３変形アクセス開始処理が開始されると、アクセスフラグ更新部２２６１は、送られた変形アクセス開始信号を受信する（ステップＳ２５００）。
【０２９９】
変形アクセス開始信号を受信すると、アクセスフラグ更新部２２６１は、受信した変形アクセス開始信号に含まれるＰＧＩＤを取得する（ステップＳ２５１０）。そして、取得したＰＧＩＤと同じ識別子が、セキュア領域管理テーブル記憶部２２６３に記憶される変形セキュア領域管理テーブル２３００のＰＧＩＤ２３１０に含まれているか否かを調べることで、取得したＰＧＩＤによって識別されるプロセスグループに、セキュア領域１４１に含まれる一の連続した記憶領域へのアクセス権が設定されているか否かを調べる（ステップＳ２５２０）。
【０３００】
ステップＳ２５２０の処理において、アクセス権が設定されている場合に（ステップＳ２５２０：Ｙｅｓ）、すなわち、取得したＰＧＩＤと同じ識別子が、セキュア領域管理テーブル記憶部２２６３に記憶される変形セキュア領域管理テーブル２３００のＰＧＩＤ２３１０に含まれている場合に、アクセスフラグ更新部２２６１は、ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００の、取得したＰＧＩＤと同じ識別子のＰＧＩＤ２４１０に対応付けられているアクセスフラグ２４４０を、論理値“１”に更新する（ステップＳ２５３０）。そして、スケジューラ２２６５に、再スケジューリングを依頼する（ステップＳ２５４０）
再スケジューリングを依頼されると、スケジューラ２２６５は、後述の第２変形再スケジューリング処理を行うことで、各ＣＰＵの実行するプロセスが、その論理値が“１”となるアクセスフラグ２４４０に対応するＰＧＩＤ２４１０によって識別されるプロセスグループに属するプロセスに限定されるように、各ＣＰＵにおける各プロセスの実行スケジューリングを行う。
【０３０１】
ここで、実行制御部２２６６は、スケジューラ２２６５がスケジューリングを開始すると、全てのＣＰＵについてのプロセスの実行制御を一時的に中断する。
【０３０２】
アクセス制御操作部２２６４は、スケジューラ２２６５が全てのＣＰＵについてのスケジューリングを完了するまで待機し（ステップＳ２５５０：Ｎｏを繰り返し）た後に（ステップＳ２５５０：Ｙｅｓ）、後述の第２変形セキュア領域設定処理を実行することで、アクセスフラグ更新部２２６１が取得したＰＧＩＤに対応する開始アドレス２３２０と終了アドレス２３３０とアクセス権２３４０とを、制御レジスタ群１３１に含まれるレジスタのうちの、初期値が書き込まれている一のレジスタに書き込む（ステップＳ２５６０）。
【０３０３】
制御レジスタ群１３１の一のレジスタへの書き込みが終わると、アクセス制御操作部２２６４は実行制御部２２６６に、レジスタの書き込みが終了した旨の通知を行う。そして、実行制御部２２６６は、一時的に中断していた、全てのＣＰＵについてのプロセスの実行制御を再開する（ステップＳ２５７０）。
【０３０４】
ステップＳ２５２０の処理において、アクセス権が設定されていない場合に（ステップＳ２５２０：Ｎｏ）、すなわち、取得したＰＧＩＤと同じ識別子が、セキュア領域管理テーブル記憶部２２６３に記憶される変形セキュア領域管理テーブル２３００のＰＧＩＤ２３１０に含まれていない場合、又は、ステップＳ２５７０の処理が終了した場合に、ＯＳ２２６０は、その第３変形アクセス開始処理を終了する。
【０３０５】
＜第２変形再スケジューリング処理＞
再スケジューリング処理は、実施の形態１における再スケジューリング処理（図７等参照）の一部が変形された処理であって、スケジューラ３６５が行う処理であって、再スケジューリングが依頼された場合に、ＯＳＩＤ管理テーブル記憶部３６２に記憶されるＯＳＩＤ管理テーブル５００を参照して、各ＣＰＵにおける各ＯＳのスケジューリングを行う処理である。
【０３０６】
図２６は、第２変形再スケジューリング処理のフローチャートである。
【０３０７】
第２再スケジューリング処理は、アクセスフラグ更新部２２６１から、再スケジューリングを依頼されることで開始される。
【０３０８】
再スケジューリング処理が開始されると、スケジューラ２２６５は、ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００に、論理値が“１”となるアクセスフラグ２４４０が存在するか否かを調べる（ステップＳ２６００）。
【０３０９】
ステップＳ２６００の処理において、論理値が“１”となるアクセスフラグ２４４０が存在する場合に（ステップＳ２６００：Ｙｅｓ）、スケジューラ２２６５は、全てのＣＰＵにおいて、実行するプロセスが、そのアクセスフラグ２４４０に対応付けられているＰＧＩＤ２４１０によって識別されるプロセスグループに属するプロセスに限定されるように、各ＣＰＵにおける各プロセスの実行スケジューリングを行う（ステップＳ２６１０）。
【０３１０】
ステップＳ２６００の処理において、論理値が“１”となるアクセスフラグ２４４０が存在しない場合に（ステップＳ２６００：Ｎｏ）、スケジューラ２２６５は、各ＣＰＵについて、実行する各プロセスグループに属するプロセスの各実行時間の比率が、各プロセスグループに対応する優先度２４２０の比率となるように、各ＣＰＵにおける各プロセスの実行スケジューリングを行う（ステップＳ２６２０）。
【０３１１】
ステップＳ２６１０の処理が終わった場合、又は、ステップＳ２６２０の処理が終わった場合に、スケジューラ２２６５は、その第２変形再スケジューリング処理を終了する。
【０３１２】
＜第２変形セキュア領域設定処理＞
第２変形セキュア領域設定処理は、実施の形態１におけるセキュア領域設定処理（図８等参照）の一部が変形された処理であって、アクセス制御操作部２２６４が行う処理であって、ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００のアクセスフラグ２４４０が更新された場合に、制御レジスタ群１３１に含まれるレジスタを更新する処理である。
【０３１３】
図２７は、第２変形セキュア領域設定処理のフローチャートである。
【０３１４】
第２変形セキュア領域設定処理は、ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００のアクセスフラグ２４４０が更新されることで開始される。
【０３１５】
第２変形セキュア領域設定処理が開始されると、アクセス制御操作部２２６４は、セキュア領域管理テーブル記憶部２２６３に記憶される変形セキュア領域管理テーブル２３００を参照して、更新されたアクセスフラグ２４４０に対応するＰＧＩＤ２４１０と同じ識別子のＰＧＩＤ２２１０に対応する開始アドレス２３２０と終了アドレス２３３０とアクセス権２３４０とを読み出す（ステップＳ２７００）。そして、更新されたアクセスフラグ２４４０の論理値が“１”であるか否かを調べる（ステップＳ２７１０）。
【０３１６】
ステップＳ２７１０の処理において、論理値が“１”である場合に（ステップＳ２７１０：Ｙｅｓ）、アクセス制御操作部２２６４は、制御レジスタ群１３１に含まれるレジスタのうちの、初期値が書き込まれている一のレジスタに、開始アドレス２２０と終了アドレス２３０とアクセス権２４０とを書き込む（ステップＳ２７２０）。
【０３１７】
ステップＳ２７１０の処理において、論理値が“０”である場合に（ステップＳ２７１０：Ｎｏ）、アクセス制御操作部２２６４は、更新されたアクセスフラグ２４４０に対応するＰＧＩＤ２４１０と同じ識別子のＰＧＩＤ２３１０に対応する開始アドレス２３２０と終了アドレス２３３０とアクセス権２３４０との値が書き込まれている、制御レジスタ群１３１に含まれるレジスタについて、そのレジスタの開始アドレス２２０と終了アドレス２３０とアクセス権２４０との値を初期値である論理値“０”に書き換える（ステップＳ２７３０）。
【０３１８】
ステップＳ２７２０の処理が終わった場合、又は、ステップＳ２７３０の処理が終わった場合に、アクセス制御操作部２２６４は、その第２変形セキュア領域設定処理を終了する。
【０３１９】
＜第３変形アクセス終了処理＞
第３変形アクセス終了処理は、実施の形態１におけるアクセス終了処理（図９等参照）の一部が変形された処理であって、ＯＳ２２６０が主体となって行う処理であって、プロセスから、セキュア領域１４１へのアクセスが終了される旨の通知を受けると、その通知に基づいて、実行するプロセスの再スケジューリングと制御レジスタ群１３１の設定とを行う処理である。
【０３２０】
図２８は、第３変形アクセス終了処理のフローチャートである。
【０３２１】
第３変形アクセス開始処理は、セキュア領域終了指示部（セキュア領域終了指示部２２４２、セキュア領域終了指示部２２５２等）が、自モジュールを含むプロセスによる、セキュア領域１４１へのアクセスが終了されることを検知して、変形アクセス終了信号をアクセスフラグ更新部２２６１へ送ることで開始される。
【０３２２】
第３変形アクセス終了処理が開始されると、アクセスフラグ更新部２２６１は、送られた変形アクセス終了信号を受信する（ステップＳ２８００）。
【０３２３】
変形アクセス終了信号を受信すると、アクセスフラグ更新部２２６１は、受信した変形アクセス終了信号に含まれるＰＧＩＤを取得する（ステップＳ２８１０）。そして、取得したＰＧＩＤと同じ識別子が、セキュア領域管理テーブル記憶部２２６３に記憶される変形セキュア領域管理テーブル２３００のＰＧＩＤ２３１０に含まれているか否かを調べることで、取得したＰＧＩＤによって識別されるプロセスグループに、セキュア領域に含まれる一の連続した記憶領域へのアクセス権が設定されているか否かを調べる（ステップＳ２８２０）。
【０３２４】
ステップＳ２８２０の処理において、アクセス権が設定されている場合に（ステップＳ２８２０：Ｙｅｓ）、すなわち、取得したＰＧＩＤと同じ識別子が、セキュア領域管理テーブル記憶部２２６３に記憶される変形セキュア領域管理テーブル２３００のＰＧＩＤ２３１０に含まれている場合に、アクセスフラグ更新部２２６１は、ＰＧＩＤ管理テーブル記憶部２２６２に記憶されるＰＧＩＤ管理テーブル２４００の、取得したＰＧＩＤと同じ識別子のＰＧＩＤ２４１０に対応付けられているアクセスフラグ２４４０を、論理値“０”に更新する（ステップＳ２８３０）。そして、スケジューラ２２６５に、再スケジューリングを依頼する（ステップＳ２８４０）。
【０３２５】
再スケジューリングを依頼されると、スケジューラ２２６５は、前述の第２変形再スケジューリング処理を行うことで、各ＣＰＵについて、実行する各プロセスグループに属するプロセスの各実行時間の比率が、各プロセスグループに対応する優先度２４２０の比率となるように、各ＣＰＵにおける各プロセスの実行スケジューリングを行う。
【０３２６】
ここで、実行制御部２２６６は、スケジューラ２２６５がスケジューリングを開始すると、全てのＣＰＵについてのプロセスの実行制御を一時的に中断する。
【０３２７】
アクセス制御操作部２２６４は、スケジューラ２２６５が全てのＣＰＵについてのスケジューリングを完了するまで待機し（ステップＳ２８５０：Ｎｏを繰り返し）た後に（ステップＳ２８５０：Ｙｅｓ）、前述の第２変形セキュア領域設定処理を実行することで、更新されたアクセスフラグ２４４０に対応するＰＧＩＤ２４１０と同じ識別子のＰＧＩＤ２３１０に対応する開始アドレス２３２０と終了アドレス２３３０とアクセス権２３４０との値が書き込まれている、制御レジスタ群１３１に含まれるレジスタについて、そのレジスタの開始アドレス２２０と終了アドレス２３０とアクセス権２４０との値を初期値である論理値“０”に書き換える（ステップＳ２８６０）。
【０３２８】
ステップＳ２８６０の処理が終わると、アクセス制御操作部２２６４は実行制御部２２６６に、レジスタの書き込みが終了した旨の通知を行う。そして、実行制御部２２６６は、一時的に中断していた、全てのＣＰＵについてのプロセスの実行制御を再開する（ステップＳ２８７０）。
【０３２９】
ステップＳ２８２０の処理において、アクセス権が設定されていない場合に（ステップＳ２８２０：Ｎｏ）、すなわち、取得したＰＧＩＤと同じ識別子が、セキュア領域管理テーブル記憶部２２６３に記憶される変形セキュア領域管理テーブル２３００のＰＧＩＤ２３１０に含まれていない場合、又は、ステップＳ２８７０の処理が終了した場合に、ＯＳ２２６０は、その第３変形アクセス終了処理を終了する。
【０３３０】
＜考察＞
図２９は、上記構成の第２変形計算機システムにおける、各ＣＰＵのタイミングチャートの一例である。
【０３３１】
同図において、数字が記載された長方形のそれぞれは、対応するＣＰＵにおいて実行されているプロセスが、その数字のＰＩＤで識別されるプロセスであることを示し、破線部分は、対応するＣＰＵがアイドル状態であることを示す。
【０３３２】
第１期間２９１０は、ＣＰＵＣ１２３で実行されている、ＰＩＤが１４０で識別されるセキュアプロセスによるセキュア領域１４１へのアクセスが行われている期間を示し、第２期間２９２０は、ＣＰＵＢ１２２で実行されている、ＰＩＤが１００で識別されるセキュアプロセスによるセキュア領域１４１へのアクセスが行われている期間を示す。
【０３３３】
同図にも示されているように、第２変形計算機システムにおいては、いずれかのＣＰＵで実行されているセキュアプロセスによるセキュア領域１４１へのアクセスが行われているセキュア領域アクセス期間（例えば、第１期間２９１０と第２期間２９２０。）に、いずれかのＣＰＵで、そのセキュアプロセスが属するセキュアプロセスグループ（例えば、ＰＧＩＤが１となるセキュアプロセスグループ）以外のプロセスが実行されることがない。従って、セキュア領域アクセス期間において、非セキュアプロセスが実行されることがない。
【０３３４】
また、同図にも示されているように、セキュア領域アクセス期間以外の期間においては、セキュアプロセスグループに属するセキュアプロセスと非セキュアグループに属する非セキュアプロセスとのいずれもが実行され得る。
＜補足＞
以上、本発明に係る計算機システムの一実施形態として、実施の形態１〜実施の形態４において、４つの計算機システムの例について説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りの計算機システムに限られないことはもちろんである。
【０３３５】
（１）実施の形態１において、メモリ１４０を利用するプロセッサの数が４である構成の例について説明した。しかしながら、並列に２以上のプログラムを実行することができる構成であれば、プロセッサの数は、必ずしも４である必要はない。一例として、プロセッサの数が２である構成の例等が考えられる。
【０３３６】
（２）実施の形態１において、メモリ１４０とバス１５０との間にアクセス制御装置１３０を備える構成の例について説明した。しかしながら、ＣＰＵＡ１２１〜ＣＰＵＤ１２４によるメモリ１４０へのアクセスに対して、アクセス制御装置１３０と同様のアクセス制御を実現することができれば、必ずしも、メモリ１４０とバス１５０との間にアクセス制御装置１３０を備える必要はない。一例として、バス１５０が、アクセス制御装置１３０と同等の機能を有する構成等が考えられる。
【０３３７】
（３）実施の形態１において、アクセス制御装置１３０は、制御レジスタ群１３１を備え、制御レジスタ群１３１に設定されたレジスタ値に基づいて、メモリへのアクセス制御を行う構成の例について説明した。しかしながら、アクセス制御装置１３０と同様の機能を実現することができれば、アクセス制御装置１３０は、必ずしも制御レジスタ群１３１を備える必要はない。一例として、アクセス制御装置１３０がコントローラを内蔵し、この内蔵するコントローラによって、メモリへのアクセスを制御する構成等が考えられる。
【０３３８】
（４）実施の形態１において、ＣＰＵＡ１２１〜ＣＰＵＤ１２４は、その動作モードとして、ユーザモードと第１特権モードと第２特権モードとを有し、第１特権モードでＯＳを実行し、第２特権モードでハイパバイザを実行する構成の例について説明した。これに対して、別の一例として、ＣＰＵＡ１２１〜ＣＰＵＤ１２４は、動作モードとして、ユーザモードと特権モードとを有し、特権モードでＯＳとハイパバイザとを実行する構成等が考えられる。
【０３３９】
（５）実施の形態３において、計算機システム１８００は、ＣＰＵＡ１２１〜ＣＰＵＤ１２４によって制御されるタイマ１７０５を備える構成の例について説明した。これに対して、別の一例として、各ＣＰＵが、それぞれ互いに独立に動作するタイマを備える構成等が考えられる。
【０３４０】
（６）実施の形態１において、ＭＰＵ１２０とアクセス制御装置１３０とメモリ１４０とバス１５０と第１インターフェース１６０と第２インターフェース１７０と第３インターフェース１８０とが１つの集積回路１１０に集積されている構成の例について説明した。しかしながら、集積回路１１０と同等の機能を実現することができれば、これらの回路が必ずしも１つの集積回路に集積されている必要はない。一例として、各回路がそれぞれ互いに異なる集積回路に集積されている構成等が考えられる。
【０３４１】
（７）以下、さらに本発明の一実施形態に係る計算機システムの構成及びその変形例と各効果について説明する。
【０３４２】
（ａ）本発明の一実施形態に係る計算機システムは、セキュア記憶領域を有するメモリと、当該メモリを利用する第１及び第２プロセッサとを備える計算機システムであって、前記第１プロセッサと前記第２プロセッサとのうちの少なくとも一方が、前記メモリに格納されているプログラムを実行することにより実現される機能的な構成要素として、前記第１プロセッサと前記第２プロセッサとで実行させる、複数のプログラム実行単位の実行制御を行う実行制御部と、前記第１プロセッサによる、前記セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、前記セキュア記憶領域へのアクセスが開始されることを示すアクセス開始通知を受け付ける開始通知受付部とを有し、前記実行制御部は、前記開始通知受付部によって前記アクセス開始通知が受け付けられた場合に、前記第２プロセッサによって実行されるプログラム実行単位が、前記アクセス許可種プログラム実行単位に限定されるように、前記実行制御を行うことを特徴とする。
【０３４３】
上述の構成を備える本実施形態に係る計算機システムによると、セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、セキュア記憶領域へのアクセスが開始されるまで期間において、実行制御部は、複数のプログラム実行単位の実行制御を行う。このため、この期間において、一のプロセッサについて、一のプログラム実行単位の中に実行するプログラムがなくなった場合であっても、そのプロセッサは、他のプログラム実行単位のプログラムを実行し得る。このことにより、この計算機システムは、セキュアプログラムからなるプログラム実行単位がセキュア記憶領域へのアクセスを行っている期間に、非セキュアプログラムを含むプログラム実行単位が実行対象とならない計算機システムについて、少なくともセキュアプログラムからなるプログラム実行単位によってセキュア領域へアクセスが開始されるまでの期間において、ギャングスケジューリング方式で各プロセッサのスケジューリングが行われる従来の計算機システムよりも、プロセッサの利用効率が向上される可能性を高くすることができる。
【０３４４】
図３１は、上記変形例における計算機システム３１００の概略構成図である。
【０３４５】
同図に示されるように計算機システム３１００は、メモリ３１１０と第１プロセッサ３１２０と第２プロセッサ３１３０とを備える。
【０３４６】
メモリ３１１０はセキュア記憶領域を有する。一例として、実施の形態１におけるメモリ１４０として実現される。
【０３４７】
第１プロセッサ３１２０は、メモリ３１１０を利用する。一例として、実施の形態１におけるＣＰＵＡ１２１として実現される。
【０３４８】
第２プロセッサ３１３０は、メモリ３１１０を利用する。一例として、実施の形態１におけるＣＰＵＢ１２２として実現される。
【０３４９】
実行制御部３１４０は、第１プロセッサ３１２０と第２プロセッサ３１３０とのうちの少なくとも一方が、メモリ３１１０に格納されているプログラムを実行することにより実現される機能的な構成要素であって、第１プロセッサ３１２０と第２プロセッサ３１３０とで実行させる、複数のプログラム実行単位の実行制御を行う機能を有する。一例として、実施の形態１における、ＯＳＩＤ管理テーブル記憶部３６２とセキュア領域管理テーブル記憶部３６３とスケジューラ３６５と実行制御部３６６とからなる機能ブロックとして実現される。
【０３５０】
開始通知受付部３１５０は、第１プロセッサ３１２０と第２プロセッサ３１３０とのうちの少なくとも一方が、メモリ３１１０に格納されているプログラムを実行することにより実現される機能的な構成要素であって、第１プロセッサ３１２０による、セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、セキュア記憶領域へのアクセスが開始されることを示すアクセス開始通知を受け付ける機能を有する。一例として、実施の形態１における、アクセスフラグ更新部３６１として実現される。
【０３５１】
また、実行制御部３１４０は、開始通知受付部３１５０によってアクセス開始通知が受け付けられた場合に、第２プロセッサ３１３０によって実行されるプログラム実行単位が、アクセス許可種プログラム実行単位に限定されるように、実行制御を行う機能をも有する。
【０３５２】
（ｂ）また、前記第１プロセッサによる、前記セキュア記憶領域へのアクセスが終了されることを示すアクセス終了通知を受け付ける終了通知受付部を有し、前記実行制御部は、前記限定的な実行制御を行っている場合において、前記終了通知受付部によって前記アクセス終了通知が受け付けられたときに、前記限定を解除して前記実行制御を行うとしてもよい。
【０３５３】
このような構成にすることで、セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、セキュア記憶領域へのアクセスが終了される以降の期間において、実行制御部は、複数のプログラム実行単位の実行制御を行う。このため、この期間において、一のプロセッサについて、一のプログラム実行単位の中に実行するプログラムがなくなった場合であっても、そのプロセッサは、他のプログラム実行単位のプログラムを実行し得るようになる。
【０３５４】
（ｃ）また、前記アクセス許可種プログラム実行単位それぞれについての実行制御値を管理する実行制御値管理部を有し、前記実行制御値管理部は、前記開始通知受付部によって前記アクセス開始通知が受け付けられた場合に、前記アクセス許可種プログラム実行単位のそれぞれについての実行制御値を所定値に設定し、前記アクセス許可種プログラム実行単位のそれぞれについての実行制御値が前記所定値に設定されている場合において、前記終了通知受付部によって前記アクセス終了通知が受け付けられたときに、前記アクセス許可種プログラム実行単位のそれぞれについての実行制御値を前記所定値以外のそれぞれの値に設定し、前記実行制御部は、前記アクセス許可種プログラム実行単位のそれぞれについての実行制御値が前記所定値に設定されている期間に限って、前記第２プロセッサに実行させるプログラム実行単位を、前記アクセス許可種プログラム実行単位に限定することで、前記実行制御を行うとしてもよい。
【０３５５】
このような構成にすることで、実行制御部は、実行制御値管理部に管理される実行制御値を利用して実行制御することができるようになる。
【０３５６】
（ｄ）また、前記プログラム実行単位のそれぞれは、一のオペレーティングシステムと、当該オペレーティングシステムによって実行制御されるプログラム群とを含み、前記アクセス許可種プログラム実行単位のそれぞれは、含んでいるオペレーティングシステムが、前記セキュア記憶領域へのアクセスが許可されているアクセス許可種オペレーティングシステムのうちのいずれかであるとしてもよい。
【０３５７】
このような構成にすることで、一のオペレーティングシステムと、そのオペレーティングシステムによって実行制御されるプログラム群とからなる仮想計算機を、実行制御対象にすることができるようになる。
【０３５８】
（ｅ）また、前記アクセス許可種オペレーティングシステムのそれぞれは、自オペレーティングシステムを実行する前記第１プロセッサによる、前記セキュア記憶領域へのアクセスの開始を検知する開始検知部と、前記開始検知部が前記セキュア記憶領域へのアクセスの開始を検知した場合に、前記開始通知受付部に前記アクセス開始通知を行う開始通知部と、自オペレーティングシステムを実行する前記第１プロセッサによる、前記セキュア記憶領域へのアクセスの終了を検知する終了検知部と、前記開始検知部が前記セキュア記憶領域へのアクセスの終了を検知した場合に、前記終了通知受付部に前記アクセス終了通知を行う終了通知部とを有するとしてもよい。
【０３５９】
このような構成にすることで、アクセス許可種オペレーティングシステムのそれぞれが、アクセス開始通知とアクセス終了通知とを行うことができるようになる。
【０３６０】
（ｆ）また、設定レジスタを有し、当該設定レジスタに所定のレジスタ値が設定されている設定期間に、前記第１プロセッサによる前記セキュア記憶領域へのアクセス、及び前記第２プロセッサによる前記セキュア記憶領域へのアクセスを許可し、前記設定期間以外の期間に、前記第１プロセッサによる前記セキュア記憶領域へのアクセス、及び前記第２プロセッサによる前記セキュア記憶領域へのアクセスを禁止するアクセス制御装置をさらに備え、前記開始通知受付部によって前記アクセス開始通知が受け付けられた場合に、前記設定レジスタに前記所定のレジスタ値を設定し、前記設定レジスタに前記所定のレジスタ値が設定されている場合において、前記終了通知受付部によって前記アクセス終了通知が受け付けられたときに、前記設定レジスタに前記所定のレジスタ値以外のレジスタ値を設定するレジスタ設定部を有するとしてもよい。
【０３６１】
このような構成にすることで、アクセス制御装置に、アクセス開始通知が受け付けられてからアクセス終了通知が受け付けられるまでの期間に限って、セキュア記憶領域へのアクセスを許可させることができるようになる。
【０３６２】
（ｇ）また、前記アクセス制御装置は、さらに、前記設定期間以外の期間において、前記第１プロセッサによる前記セキュア記憶領域へのアクセス命令が発行された場合に、前記開始通知受付部に前記アクセス開始通知を行うとしてもよい。
【０３６３】
このような構成にすることで、アクセス制御装置によってアクセス開始通知がなされるようになる。
【０３６４】
（ｈ）本発明の一実施形態に係る計算機システムは、セキュア記憶領域を有するメモリと、当該メモリを利用する第１及び第２プロセッサとを備える計算機システムであって、前記第１プロセッサと前記第２プロセッサとのうちの少なくとも一方が、前記メモリに格納されているプログラムを実行することにより実現される機能的な構成要素として、前記第１プロセッサと前記第２プロセッサとで実行させる、複数のプログラム実行単位の実行制御を行う実行制御部と、前記第１プロセッサによる、前記セキュア記憶領域へのアクセスが終了されることを示すアクセス終了通知を受け付ける終了通知受付部を有し、前記実行制御部は、前記第２プロセッサによって実行されるプログラム実行単位が、前記アクセス許可種プログラム実行単位に限定されるように、前記実行制御を行う場合において、前記終了通知受付部によって前記アクセス終了通知が受け付けられたときに、前記限定を解除して前記実行制御を行うことを特徴とする。
【０３６５】
上述の構成を備える本実施形態に係る計算機システムによると、セキュア記憶領域へのアクセスが許可されているアクセス許可種プログラム実行単位からの、セキュア記憶領域へのアクセスが終了される以降の期間において、実行制御部は、複数のプログラム実行単位の実行制御を行う。このため、この期間において、一のプロセッサについて、一のプログラム実行単位の中に実行するプログラムがなくなった場合であっても、そのプロセッサは、他のプログラム実行単位のプログラムを実行し得る。このことにより、この計算機システムは、セキュアプログラムからなるプログラム実行単位がセキュア記憶領域へのアクセスを行っている期間に、非セキュアプログラムを含むプログラム実行単位が実行対象とならない計算機システムについて、少なくともセキュアプログラムからなるプログラム実行単位によってセキュア領域へアクセスが終了される以降の期間において、ギャングスケジューリング方式で各プロセッサのスケジューリングが行われる従来の計算機システムよりも、プロセッサの利用効率が向上される可能性を高くすることができる。
【産業上の利用可能性】
【０３６６】
本発明は、複数のプロセッサを備える計算機システムに広く利用することができる。
【符号の説明】
【０３６７】
１００  計算機システム
１１０  集積回路
１２１  ＣＰＵＡ
１２２  ＣＰＵＢ
１２３  ＣＰＵＣ
１２４  ＣＰＵＤ
１２５  割込コントローラ
１３０  アクセス制御装置
１３１  制御レジスタ群
１３０  メモリ
１４１  セキュア領域
３４０  ＯＳａ
３４１  セキュア領域開始指示部
３４２  セキュア領域終了指示部
３５０  ＯＳｂ
３５１  セキュア領域開始指示部
３５２  セキュア領域終了指示部
３６０  ハイパバイザ
３６１  アクセスフラグ更新部
３６２  ＯＳＩＤ管理テーブル記憶部
３６３  セキュア領域管理テーブル記憶部
３６４  アクセス制御操作部
３６５  スケジューラ
３６６  実行制御部
３６７  ＣＰＵ間通信制御部
【図１】
0005977243.tif 000002
【図２】
0005977243.tif 000003
【図３】
0005977243.tif 000004
【図４】
0005977243.tif 000005
【図５】
0005977243.tif 000006
【図６】
0005977243.tif 000007
【図７】
0005977243.tif 000008
【図８】
0005977243.tif 000009
【図９】
0005977243.tif 000010
【図１０】
0005977243.tif 000011
【図１１】
0005977243.tif 000012
【図１２】
0005977243.tif 000013
【図１３】
0005977243.tif 000014
【図１４】
0005977243.tif 000015
【図１５】
0005977243.tif 000016
【図１６】
0005977243.tif 000017
【図１７】
0005977243.tif 000018
【図１８】
0005977243.tif 000019
【図１９】
0005977243.tif 000020
【図２０】
0005977243.tif 000021
【図２１】
0005977243.tif 000022
【図２２】
0005977243.tif 000023
【図２３】
0005977243.tif 000024
【図２４】
0005977243.tif 000025
【図２５】
0005977243.tif 000026
【図２６】
0005977243.tif 000027
【図２７】
0005977243.tif 000028
【図２８】
0005977243.tif 000029
【図２９】
0005977243.tif 000030
【図３０】
0005977243.tif 000031
【図３１】
0005977243.tif 000032