(57)【要約】【課題】マルチコアシステム上でＯＳに変更を加えずに複数のＯＳを稼動させ、かつそれら複数のＯＳ間での機能の呼出しやデータのアクセスに際して不正を検出し、高信頼性を確保する。【解決手段】アクセスの権限チェックを２レベルで行い、上位レベルでは、複数のＯＳから管理されるデータベース（１５１）を備えて呼出す機能がどの関数やタスクなどから呼出し可能であるかをこのデータベースに記載し、その情報を参照することにより、当該の機能呼出しが正当なものであるか否かを呼出し権限管理プログラム（１５２）を用いて判定する。下位レベルでは、呼出しの処理が最終的に変換されて到達するメモリアクセスに対する権限の可否をアクセス権限管理モジュール（１４０）でハードウェア的に検査する。【選択図】図２
2008186212.tif 000002
【特許請求の範囲】
【請求項１】
データ及びプログラムの格納に利用される記憶領域と、
前記記憶領域に格納されたプログラムを実行する複数の中央処理装置と、
前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュールと、を有し、
前記中央処理装置は一のオペレーティングシステムの管理下でデータ処理を行なうとき、機能呼出し権限管理テーブルを参照して他のオペレーティングシステムの管理下で実行される別のデータ処理機能の呼び出しの可否を制御し、
前記アクセス権限管理モジュールは、前記ハードウェアリソースへのアクセス制御情報を入力し、入力したアクセス制御情報に対応するアクセス権限管理テーブルのエントリに従って前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する、データ処理システム。
【請求項２】
前記記憶領域は前記中央処理装置がオペレーティングシステムを実行する特権状態においてアクセス可能な共有領域を含み、
前記共有領域は前記機能呼出し権限管理テーブルを保持する請求項１記載のデータ処理システム。
【請求項３】
前記機能呼出し権限管理テーブルは、データ処理を特定するための関数の名称、当該関数の実行を制御する所属オペレーティングシステムの情報、及び当該関数に対する所属オペレーティングシステム以外のオペレーティングシステムによる呼び出し権限情報を保有する、請求項１記載のデータ処理システム。
【請求項４】
前記アクセス権限管理テーブルは前記中央処理装置がオペレーティングシステムを実行する特権状態よりも高位の高位特権状態において書換え可能にされる請求項１記載のデータ処理システム。
【請求項５】
前記アクセス権限管理テーブルは、アドレス範囲、及びそのアドレス範囲に対するアクセス権限情報を保有し、
前記アクセス権限情報は、アクセスが許可されるオペレーティングシステムの種別情報、及び許可されるアクセスがリードかライトかを示すアクセス種別情報を含む請求項１記載のデータ処理システム。
【請求項６】
データ及びプログラムの格納に利用される記憶領域と、
前記記憶領域に格納されたプログラムを実行する複数の中央処理装置と、を有し、
前記中央処理装置は、一のオペレーティングシステムが他のオペレーティングシステムの管理の下で実行される一の関数を呼び出すとき、前記関数がどのオペレーティングシステムの管理の下で実行されるかを機能呼出し権限管理テーブルの第1データ部から探索し、前記関数が当該他のオペレーティングシステムの管理の下で実行されるものである場合には、機能呼出し権限管理テーブルの第２データ部を探索して当該一のオペレーティングシステムによる前記関数の呼び出しの可否を判定する、データ処理システム。
【請求項７】
前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュールを更に有し、
前記アクセス権限管理モジュールは、前記ハードウェアリソースへのアクセス制御情報を入力し、入力したアクセス制御情報に対応するアクセス権限管理テーブルのエントリに従って前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する、請求項６記載のデータ処理システム。
【請求項８】
前記記憶領域は前記中央処理装置がオペレーティングシステムを実行する特権状態においてアクセス可能な共有領域を含み、
前記共有領域は前記機能呼出し権限管理テーブルを保持する請求項６記載のデータ処理システム。
【請求項９】
前記機能呼出し権限管理テーブルは、データ処理を特定するための関数の名称、当該関数の実行を制御する所属オペレーティングシステムの情報、及び当該関数に対する所属オペレーティングシステム以外のオペレーティングシステムによる呼び出し権限情報を保有し、
前記第１のデータ部は前記関数の名称と対を成す所属オペレーティングシステムの情報を保有する領域であり、
前記第２のデータ部は前記関数の名称と対を成す呼び出し権限情報を保有する領域である、請求項６記載のデータ処理システム。
【請求項１０】
前記アクセス権限管理テーブルは前記中央処理装置がオペレーティングシステムを実行する特権状態よりも高位の高位特権状態において書換え可能にされる請求項７記載のデータ処理システム。
【請求項１１】
前記アクセス権限管理テーブルは、アドレス範囲、及びそのアドレス範囲に対するアクセス権限情報を保有し、
前記アクセス権限情報は、アクセスが許可されるオペレーティングシステムの種別情報、及び許可されるアクセスがリードかライトかを示すアクセス種別情報を含む請求項７記載のデータ処理システム。
【請求項１２】
プログラムを実行する複数の中央処理装置と、
前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュールと、を有し、
前記中央処理装置は、一のオペレーティングシステムが他のオペレーティングシステムの管理の下で実行される一の関数及びその引数を呼び出すとき、前記関数及びその引数がどのオペレーティングシステムの管理の下で実行されるかを機能呼出し権限管理テーブルの第1データ部から探索し、前記関数及びその引数が当該他のオペレーティングシステムの管理の下で実行されるものである場合には、機能呼出し権限管理テーブルの第２データ部を探索して当該一のオペレーティングシステムによる前記関数及びその引数の呼び出しの可否を判定する、１チップに形成されたデータプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他のオペレーティングシステムの管理下で実行されるデータ処理の呼び出し権限、更には共有ハードウェアリソースに対するアクセス権限の制御に関し、例えば、複数の中央処理装置上で複数のオペレーティングシステムが稼動するマルチコアプロセッサのようなマイクロコンピュータを用いたデータ処理システムにおけるアプリケーションプログラムの実行に際しての信頼性とセキュリティの向上に適用して有効な技術に関する。
【背景技術】
【０００２】
近年、マイクロプロセッサにおける集積化が進み、マルチコアシステムとして単一の中央演算処理装置（ＣＰＵ）を複数搭載したマルチコアプロセッサが開発されている。それら複数のＣＰＵを搭載したマルチコアプロセッサ上でアプリケーションプログラムを動作させる場合、基本システムであるオペレーティングシステム（ＯＳ）も複数になり、それらＯＳ間でのデータのやりとりや、別のＯＳ上にある機能を複数のＣＰＵやＯＳの存在を意識させないで実行する方式が必要になってくる。このような状況において特許文献１にはマルチプロセッサシステム上でシングルプロセッサ向けＯＳと既存のアプリケーションプログラムを動作させ、当該アプリケーションプログラムに対してマルチプロセッサシステムによる並列処理を実現する技術について記載がある。例えば、第１のＣＰＵで動作するアプリケーションプログラム内で並列化が可能な処理単位を、第２のＣＰＵ上で新たな処理単位として制御する。
【０００３】
【特許文献１】特開２００３−３４５６１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
単一チップ上に多数のＣＰＵやその他の回路モジュールが集積されたマルチコアプロセッサでは、複雑化した機能が互いに関連するため、アプリケーション実行の信頼性を確保することも必要である。例えば、メモリ空間を分離してドメインと呼ぶ論理的な区画を構成したとき、別なドメインに所属するＯＳからのデータ処理の呼び出しを部分的に制限すればよい。しかしながらも、そのような制限が固定的であれば、異なるＯＳが所属するドメイン間にまたがってデータ処理の呼び出しを可能にするという柔軟性が損なわれることになる。よって、異なるＯＳが所属するドメイン間にまたがったデータ処理の呼び出しとアプリケーション実行に伴うセキュリティの保証とを両立しなければならない。更に、セキュリティを強化するには、アプリケーションから異なるＯＳに所属するデータ処理の呼び出しに関してだけではなく、メモリ等の共有ソースに対するアクセスについてもアクセス権限に基づく認否の制御を採用することの必要性が本発明者によって見出された。
【０００５】
本発明の目的は、シングルＣＰＵ向けＯＳが複数稼動するマルチＣＰＵのシステム上における一つのアプリケーションプログラムによる並列データ処理とそれら複数のＯＳ間での機能の呼出しに関するセキュリティの向上とを実現することができるデータ処理システムを提供することにある。
【０００６】
本発明の別の目的は、シングルＣＰＵ向けＯＳが複数稼動するマルチＣＰＵのシステム上における共有リソースのアクセスに際してセキュリティを向上させることができるデータ処理システムを提供することにある。
【０００７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００９】
すなわち、本発明においては、システムの構成を複数の階層に分け、その中で上位層、下位層の２つのレベルにより権限の判定を行う。上位レベルでは、複数のＯＳによって管理される機能呼出し権限管理テーブルを備え、呼出す機能に対して、それがどの関数やタスクなどから呼出し可能であるかを該機能呼出し権限管理テーブルに記載し、あるＯＳから別のＯＳへの機能呼出しを処理する呼出し手順変更手段において、該機能呼出し権限管理テーブルに記載されたアクセス権限情報を参照することにより、当該の機能呼出しが正当なものであるか否かを判定するものである。また、下位レベルでは、呼出しの処理が最終的に変換されて実行されるメモリアクセス等のハードウェアリソースに対する権限の可否をハードウェア的に判定する。
【発明の効果】
【００１０】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１１】
すなわち、シングルＣＰＵ向けＯＳが複数稼動するマルチＣＰＵのシステム上における一つのアプリケーションプログラムによる並列データ処理とそれら複数のＯＳ間での機能の呼出しに関するセキュリティの向上とを実現することができる。
【００１２】
また、シングルＣＰＵ向けＯＳが複数稼動するマルチＣＰＵのシステム上における共有リソースのアクセスに際してセキュリティを向上させることができる。
【発明を実施するための最良の形態】
【００１３】
１．代表的な実施の形態（representative forms of embodiments of the inventions）
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１４】
〔１〕本発明の代表的な実施の形態に係るデータ処理システムは、データ及びプログラムの格納に利用される記憶領域（１００）と、前記記憶領域に格納されたプログラムを実行する複数の中央処理装置（１０１〜１０３）と、前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュール（１４０）とを有する。前記中央処理装置は一のオペレーティングシステムの管理下でデータ処理を行なうとき、機能呼出し権限管理テーブル（１５１）を参照して他のオペレーティングシステムの管理下で実行される別のデータ処理機能の呼び出しの可否を制御する。この機能呼出しの権限による制御は上位階層においてセキュリティを確保する。前記アクセス権限管理モジュールは、前記ハードウェアリソースへのアクセス制御情報（２５０，２４０）を入力し、入力したアクセス制御情報に対応するアクセス権限管理テーブル（２６１）のエントリに従って前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する。このアクセス権限による制御は下位階層においてセキュリティを確保する。
【００１５】
上記データ処理システムによれば、システム設計時にハードウェアが提供する機能を用いて、下位層のアクセス権限として、ＯＳによって設定される上位層の権限よりも強い権限でメモリ等のハードウェアリソースへのアクセスを制限することができる。一方、アプリケーション開発と時には、システム設計時の制限を意識することなく、上位層の機能呼出し権限としてアプリケーションが使用するサービスや関数等のレベルで柔軟に権限設定を行うことができる。システムの挙動に大きな影響を及ぼす重要なアクセス権限は下位層の機構によってハードウェア的に検査されており、アプリケーションプログラムを介する不正な機能呼出しによる影響を排除して高いセキュリティが確保される。
【００１６】
これにより、ソフトウェア開発時にはアプリケーションプログラム内の機能ごとに機能呼出しの可否を自由に設計でき、また、一つのＣＰＵが一つのＯＳの管理下でデータ処理を行なう区画（ドメイン）の単位で機能呼出しの権限による制御とアクセス権限による制御とにより強固なセキュリティが確保され、信頼性の高いデータ処理システムを実現することができる。
【００１７】
本発明の一つの具体的な形態として、前記記憶領域は前記中央処理装置がオペレーティングシステムを実行する特権状態においてアクセス可能な共有領域（１００＿３）を含み、前記共有領域は前記機能呼出し権限管理テーブルを保持する。不正なアプリケーションプログラムを介して前記機能呼出し権限管理テーブルが改竄され難くなる。
【００１８】
本発明の別の具体的な形態として、前記機能呼出し権限管理テーブルは、例えばデータ処理を特定するための関数の名称、当該関数の実行を制御する所属オペレーティングシステムの情報、及び当該関数に対する所属オペレーティングシステム以外のオペレーティングシステムによる呼び出し権限情報を保有する。そのような少ない情報によって機能呼出し権限管理を行なうことができる。
【００１９】
本発明の別の具体的な形態として、前記アクセス権限管理テーブルは前記中央処理装置がオペレーティングシステムを実行する特権状態よりも高位の高位特権状態において書換え可能にされる。上位レベルの機能呼出し権限管理が不正に破られても、同時に下位レベルのアクセス権限管理が破られることを抑制することができる。
【００２０】
本発明の別の具体的な形態として、前記アクセス権限管理テーブルは、アドレス範囲、及びそのアドレス範囲に対するアクセス権限情報を保有する。前記アクセス権限情報は、アクセスが許可されるオペレーティングシステムの種別情報、及び許可されるアクセスがリードかライトかを示すアクセス種別情報を含む。そのような少ない情報によってアクセス権限管理を行なうことができる。
【００２１】
〔２〕本発明の別の代表的な実施の形態に係るデータ処理システムは、データ及びプログラムの格納に利用される記憶領域と、前記記憶領域に格納されたプログラムを実行する複数の中央処理装置と、を有する。前記中央処理装置は、一のオペレーティングシステム（ＯＳ１）が他のオペレーティングシステム（ＯＳ２）の管理の下で実行される一の関数（Ｆ）を呼び出すとき、前記関数がどのオペレーティングシステムの管理の下で実行されるかを機能呼出し権限管理テーブル（１５１）の第1データ部（名称、所属ＯＳ）から探索し、前記関数が当該他のオペレーティングシステムの管理の下で実行されるものである場合には、機能呼出し権限管理テーブルの第２データ部（権限）を探索して当該一のオペレーティングシステムによる前記関数の呼び出しの可否を判定する。
【００２２】
上記より、上位層の機能呼出し権限としてアプリケーションが使用するサービスや関数等のレベルで柔軟に権限設定を行うことができると共に、アプリケーションプログラムを介する不正な機能呼出しによる影響を排除するという点においてセキュリティを確保することができる。
【００２３】
本発明の一つの具体的な形態として、前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュールを更に有する。前記アクセス権限管理モジュールは、前記ハードウェアリソースへのアクセス制御情報を入力し、入力したアクセス制御情報に対応するアクセス権限管理テーブルのエントリに従って前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する。
【００２４】
上記によれば、下位層のアクセス権限として、ＯＳによって設定される上位層の権限よりも強い権限でメモリ等のハードウェアリソースへのアクセスを制限することができる。システムの挙動に大きな影響を及ぼす重要なアクセス権限は下位層の機構によってハードウェア的に検査されており、アプリケーションプログラムを介する不正な機能呼出しによる影響を排除して高いセキュリティを確保することができる。
【００２５】
〔３〕本発明の更に別の代表的な実施の形態に係るデータプロセッサは、プログラムを実行する複数の中央処理装置と、前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュールと、を有し、1チップに形成される。前記中央処理装置は、一のオペレーティングシステムが他のオペレーティングシステムの管理の下で実行される一の関数及びその引数を呼び出すとき、前記関数及びその引数がどのオペレーティングシステムの管理の下で実行されるかを機能呼出し権限管理テーブルの第1データ部から探索し、前記関数及びその引数が当該他のオペレーティングシステムの管理の下で実行されるものである場合には、機能呼出し権限管理テーブルの第２データ部を探索して当該一のオペレーティングシステムによる前記関数及びその引数の呼び出しの可否を判定する。
【００２６】
２．実施の形態の説明
実施の形態について更に詳述する。
【００２７】
図１には本発明に係るデータ処理システムのハードウェアブロック図が例示される。データ処理システムは代表的に示されたデータプロセッサ（ＭＣＵ）１９０、メモリ（ＭＲＹ）１００、及び入出力回路（ＩＯ１、ＩＯ２）１０４，１０５を有し、それらは転送バス（ＢＵＳ）１３０に共通接続される。データプロセッサ１９０は例えば３個の中央処理装置（ＣＰＵ１，ＣＰＵ２，ＣＰＵ３）１０１〜１０３を有するマルチＣＰＵコアプロセッサとして構成され、更にアクセス権限管理モジュール（ＡＡＣＮＴ）１４０を有する。メモリ１００及び入出力回路１０４，１０５はＣＰＵ１０１〜１０３が利用可能なハードウェアリソースの一例とされる。メモリ１００は中央処理装置１０１〜１０３が実行するオペレーティングシステムやアプリケーションプログラム等のプログラムとデータを記憶する領域として利用される。アクセス権限管理モジュール１４０は、中央処理装置１１〜１３が利用可能なハードウェアリソースに対するリソースアクセス権限を管理する回路である。
【００２８】
図２には図１のデータ処理システムにおけるソフトウェア及びハードウェアの構成が併せて例示される。夫々の中央処理装置１０１〜１０３上ではオペレーティングシステム（ＯＳ１，ＯＳ２，ＯＳ３）１７１〜１７３が稼動し、オペレーティングシステム１７１〜１７３の管理の下で所要のアプリケーションプログラム（ＡＰＰＬ）１８０が稼動する。オペレーティングシステム１７１〜１７３とアプリケーションプログラム（ＡＰＰＬ）１８０との間にはミドルウェアを構成する上位層のユーティリティプログラム（ＵＭＤＬ）１５０が配置される。図２においてユーティリティプログラム（ＭＤＬ）１５０として、呼出し権限データベース（ＴＣＡＤＢ）１５１と呼出し権限管理プログラム（ＴＣＡＣＮＴ）１５２が図示される。特に制限されないが、オペレーティングシステム（ＯＳ１，ＯＳ２，ＯＳ３）１７１〜１７３、アプリケーションプログラム（ＡＰＰＬ）１８０、呼出し権限データベース（ＴＣＡＤＢ）１５１、及び呼出し権限管理プログラム（ＴＣＡＣＮＴ）１５２はメモリ１００に格納される。データプロセッサ１９０は下位層のユーティリティプログラム（ＦＲＭ）１１０を有し、図２では資源分配・分割ユーティリティ（ＣＲＤＤ）１２０が例示される。ユーティリティプログラム１１０はメモリ１００上にあってもよいし、また、データプロセッサ１９０内のＲＯＭ等から成る専用の記憶領域に配置されていてもよい。
【００２９】
前記オペレーティングシステム１７１〜１７３は夫々シングルＣＰＵ向けのオペレーティングシステムであり、本発明に係るデータ処理システムは、そのような複数のオペレーティングシステム１７１〜１７３が稼動するマルチＣＰＵシステムを実現している。このデータ処理システムにおいて中央処理装置１０１〜１０３は一つのアプリケーションプログラムによるデータ処理において複数のオペレーティングシステム間でのデータ処理機能の呼出しとその際のセキュリティ保持とを、呼出し権限データベース１５１及び呼出し権限管理プログラム１５２を用いて行う。そのような上位階層でのセキュリティ保持に加えて、オペレーティングシステムの管理下で中央処理装置１０１〜１０３がメモリ等のリソースをアクセスするとき、アクセスアドレス等に基づいて前記アクセス権限管理モジュール１４０が下位階層でのセキュリティの保持を行う。以下、そのような上位階層と下位階層においてセキュリティを保持するための構成について詳述する。
【００３０】
呼出し権限管理プログラム１５２は呼出し権限データベース１５１を参照することによって、あるオペレーティングシステム上のアプリケーションからの別のオペレーティングシステム上のアプリケーションやユーティリティといった機能の呼出しやデータの参照の可否を制御する。ここで、呼出し権限データベース１５１はデータ処理システム全体で１つだけメモリ１００の中に構築される。
【００３１】
資源分配・分割ユーティリティ１２０は、アプリケーションプログラムやオペレーティングシステムが参照するメモリアドレスをアドレス演算器等のハードウェア回路と協調して操作することにより、アドレス値に適当なオフセットを加算することで、アプリケーションプログラムやオペレーティングシステムには意識されずに実際のメモリ１００上での参照場所の物理配置をずらすことを可能にする。したがって、メモリ１００の記憶領域を、ＣＰＵ１用の領域、ＣＰＵ２用の領域などに分割して分配しても、夫々のアプリケーションプログラムやオペレーティングシステムは単に０番地から始まるアドレス空間を管理すればよい。中央処理装置（ＣＰＵ１，ＣＰＵ２，ＣＰＵ３）１０１〜１０３によるリソースアクセスはこの資源分配・分割ユーティリティ１２０を介することになる。
【００３２】
アクセス権限管理モジュール１４０はハードウェアの回路であり、転送バス１３０に出力されているメモリアドレスを検査するものであり、予めここにメモリアドレスの範囲とアクセス権限の可否を指定することにより、アプリケーションプログラムやオペレーティングシステムの実行時のメモリアクセスアドレスが許可されたものであるかどうかを検査することができる。
【００３３】
図３にはアクセス権限管理モジュールの具体例が示される。このアクセス権限管理モジュール１４０は、コンパレータ（ＣＭＰ）２６０、アドレス範囲毎にアクセス権限を指定するアクセス権限管理テーブル（ＡＡＴＬＢ）２６１、及びアクセス承認制御回路（ＡＡＣＫ）２６２を有する。アクセス権限管理テーブル（ＡＡＴＬＢ）２６１は下限アドレス（ＬＢＡＤＲＳ）と上限アドレス（ＵＢＡＤＲ）で特定されるアドレス範囲（ＡＤＲＳＦＬＤ）毎にアクセス権限（ＡＣＣＡ）を指定した複数のエントリデータを有する。アクセス権限は、オペレーティングシステム毎の書込み可能、読出し可能、読書き可能、アクセス不可などとされる。ＯＳ１：Ｒはオペレーティングシステムについて読出し可能であることを意味する。コンパレータ２６０はＣＰＵから出力されるアドレス信号２５０がどのアドレス範囲に含まれるかを判定し、当該アクセスアドレスを含みアドレス範囲に対応するエントリデータを選択する選択信号２７０をアクセス権限管理テーブル２６１に供給する。アクセス権限管理テーブル２６１はそれによって指定されたエントリデータの中から、ＯＳ指定信号２４０で指定されたＯＳについてのアクセス権限をアクセス権限信号２８０としてアクセス承認制御回路２６２に出力する。アクセス承認制御回路２６２は、アクセス要求元からのアクセス形態が、アクセス権限信号２８が示すアクセス権限を満足するか否かを判定する。権限を満足すればそのアクセスイネーブル信号ＡＣＣＥＮをメモリ等に出力し、権限違反であれば割り込み信号ＩＲＱによってＣＰＵに割り込みを要求する。ＯＳ指定信号２４０はＣＰＵによるリソースアクセスに際してアクセスアドレスと共にＣＰＵが出力する。
【００３４】
図４にはアクセス権限管理モジュールによる制御動作シーケンスが例示される。アクセスアドレス２５０に対してどのアドレス範囲に属するかが判定され（Ｓ１）、アクセスアドレスが属するアドレス範囲のデータエントが選択信号２７０によって選択される（Ｓ２）。選択されたエントリデータのアクセス権限（ＡＣＣＡ）のフィールドからＯＳ指定信号で指定されたＯＳに対応するアクセス権限が参照される（Ｓ３）。アクセス要求元のアクセス形態が、参照されたアクセス権限の信号２８０で特定されたアクセス権限に違反していないが判別される（Ｓ４）。違反が無ければ当該アクセスが許容され（Ｓ５）、違反があれば割り込み要求が発生され（Ｓ６）、該割込み事象を発生させたプログラムが動作している該当のＯＳが割込み処理プログラムによってエラー処理等を行なうことになる。
【００３５】
アクセス権限管理テーブル（ＡＡＴＬＢ）２６１のエントリデータはアクセス権限違反を検査するために用いられるものであり、ユーザプログラムとしてのアプリケーションプログラムやオペレーティングシステムから書込むことは禁止されている。通常、ＣＰＵはユーザモードと特権モードに分類される複数の動作モードで動作し、ユーザモードで動作する場合にはアクセスできないＣＰＵ資源や実行できない命令がある。中央処理装置（ＣＰＵ１，ＣＰＵ２，ＣＰＵ３）１０１〜１０３は特権モードよりも強い動作モードである高位特権モードが装備されており、アクセス権限管理テーブル（ＡＡＴＬＢ）２６１が保有するアドレス範囲（ＡＤＲＳＦＬＤ）及びアクセス権限（ＡＣＣＡ）のエントリデータは、特権モードにおいては書込みができず、高位特権モードにおいてのみ書換え可能な資源とされる。資源分配・分割ユーティリティ１２０等のユーティリティプログラム１１０は高位特権モードで動作するソフトウェアである。ユーティリティプログラム１１０の実行は高位特権モードでの動作処理の要求が契機となって起こる。
【００３６】
図５には高位特権モードに応答して実行されるユーティリティプログラム１１０の処理フローが例示される。オペレーティングシステム又はアプリケーションプログラムから高位特権モードでの処理要求が発生すると（Ｓ１０）、これを契機として高位特権モード処理が開始される。まず、データプロセッサ１９０の動作モードを“高位特権モード”として設定する（Ｓ１１）。次に、どの処理が要求されているかについての要因解析が行なわれる（Ｓ１２）。これは、高位特権モード動作の契機となった命令や、例えばサービスに対応する番号、要求されるサービスの種別等を参照して行われる。要因解析の結果にしたがって、夫々の処理を行ない（Ｓ１３）、必要な処理が終了すると、この処理に入る前のプロセッサ動作モードを回復して（Ｓ１４）、要求元に復帰する。
【００３７】
図６には図１のデータ処理システムにおいて一つのＣＰＵが一つのＯＳの管理下でデータ処理を行なう区画（ドメイン）に着目したときのシステム構成が例示される。ここでは、各ドメインにおいて呼出し権限管理プログラム（ＴＣＡＣＮＴ）１５２はＯＳ上のタスク（呼出し権限管理タスク：ＴＣＡＣＮＴ１，ＴＣＡＣＮＴ２）３１０，３１１として稼動しているものとする。アクセス権限データベース１５１は呼出し権限管理タスク３１０，３１１から参照可能なメモリ１００上の共有領域（ＭＲＹＣ１）１００＿３に配置されている。共有領域（ＭＲＹＣ１）１００＿３は高位特権モードにおいて書込み可能な領域とされる。メモリ領域（ＭＲＹ１）１００＿１はドメインＤＭＩＮ１に割り当てられた領域、メモリ領域（ＭＲＹ２）１００＿２はドメインＤＭＩＮ２に割り当てられた領域、共有領域（ＭＲＹＣ４）はどの動作モードにおいてもリード及びライト可能なメモリ領域である。
【００３８】
呼出し権限データベース（ＴＣＡＤＢ）１５１には、特に制限されないが、関数名称、引数、それが所属するＯＳ、及び権限が登録される。権限については、例えば「ＯＳ１：Ｒ」により、ＯＳ１で読出し可、すなわち関数Ｆの実行が許可されていることを示すものとする。引数「Ｐ１」、「Ｐ２」に対しても同様である。
【００３９】
図６において中央処理装置（ＣＰＵ１）１０１上のオペレーティングシステム（ＯＳ１）１７１のアプリケーションプログラム（ＡＰＰＬ１）１８０＿１をＦ（Ｐ１，Ｐ２）とし、中央処理装置（ＣＰＵ２）１０２上のオペレーティングシステム（ＯＳ２）１７２のアプリケーションプログラム（ＡＰＰＬ２）１８０＿２内の関数Ｆを引数Ｐ１、Ｐ２で呼出す場合を考える。その呼出し処理手順は図７のフローチャートに示される。ここで、引数Ｐ２はその値を関数Ｆに渡すのみであるが、引数Ｐ１によりアプリケーションプログラム（ＡＰＰＬ２）１８０＿２の関数Ｆ内でメモリの値が変更されることを想定する。
【００４０】
図７に基づいてタスクの呼び出し処理手順について説明する。アプリケーションプログラム（ＡＰＰＬ１）１８０＿１の実行が進み、Ｆ（Ｐ１，Ｐ２）として呼出しがなされると、オペレーティングシステム（ＯＳ１）１７１上の呼出し権限管理タスク（ＴＣＡＣＮＴ１）３１０で変換処理が行われる。この処理手順が図７に示されている。
【００４１】
図７に従えば、関数Ｆがどのオペレーティングシステムに属するかを判定し（Ｓ２１）、目的のオペレーティングシステム（ここではＯＳ２）を得る。ステップＳ２２において、関数Ｆのオペレーティングシステム（ＯＳ１）１７１での権限をデータベース１５１のエントリから得る。これによって参照した権限から「Ｒ」（呼出し可＝実行可能）でることを判定し（Ｓ２３）、関数Ｆの呼出しをオペレーティングシステム（ＯＳ２）１７２に渡す。引数Ｐ１，Ｐ２についても同様に参照し、権限を判定する（Ｓ２３１〜Ｓ２３）。図６の例に従えば、関数Ｆ及び引数Ｐ１，Ｐ２共に、オペレーティングシステム（ＯＳ１）１７１において呼出し可能という権限を判定できる。これにより、関数Ｆの名称と引数Ｐ１、Ｐ２が共有領域（ＭＲＹＣ２）１００＿４に格納され（Ｓ２４）、オペレーティングシステム（ＯＳ２）１７２に呼出しがあったことが連絡される（Ｓ２５）。呼出しの連絡を受けたオペレーティングシステム（ＯＳ２）１７２はその呼出し権限管理タスク（ＴＣＡＣＮＴ２）３１１を用いて、共有領域（ＭＲＹＣ２）１００＿４から関数Ｆの名称と引数Ｐ１、Ｐ２を取得し、その関数名称と引数をオペレーティングシステム（ＯＳ２）１７２上のプログラムが処理できる形に再構成する（Ｓ２６）。再構成された関数名称から特定されるターゲットとなる関数の開始アドレスへ処理を分岐し（Ｓ２７）、分岐された関数の実体に対して、同じく渡された引数Ｐ１，Ｐ２を用いて関数機能を実行する。関数機能の実行に当たってメモリ等のリソースアクセスを要する場合には図３で説明したアクセス権限管理モジュール１４０によって許容されるアクセス権限の範囲でメモリアクセス等が可能になる。
【００４２】
ステップＳ２３において、関数Ｆのオペレーティングシステム（ＯＳ１）１７１での権限がＲではないと判定された場合、この関数Ｆはオペレーティングシステム（ＯＳ１）１７１からは呼出し不可能とされ、オペレーティングシステム（ＯＳ１）１７１においてエラー処理が行われる（Ｓ２８）。
【００４３】
図６及び図７に基づいて説明した呼出し権限管理プログラム（ＴＣＡＣＮＴ）１５２によるタスク呼出しの許可／不許可の制御に加えて、そのような検査ではチェックが困難であったり処理時間がかかってしまったりする、引数で渡されるデータに基づくアクセスに対する許可／不許可も前記アクセス権限管理モジュール１４０を介して容易に検査される。例えば、関数Ｆの処理において、引数Ｐ１で渡されたデータがあるメモリ領域のアドレスを示しており、関数Ｆ内で、その領域の値を変更するものとする。このとき、前記呼出し権限管理プログラム（ＴＣＡＣＮＴ）１５２による権限チェックにおいては、関数Ｆ自体の実行の呼出しは許可されているので、呼出し権限管理プログラム（ＴＣＡＣＮＴ）１５２やオペレーティングシステム（ＯＳ２）１７２だけによって引数Ｐ１を経由したメモリアクセスの可否を判定することはできない。これに対しては前述の図３で説明した下位レベルのアクセス権限チェック機構が用いられる。引数Ｐ１を経由したメモリアクセスのアドレスに対応して、アクセス権限管理テーブル（ＡＡＴＬＢ）２６１には下限アドレス（ＬＢＡＤＲＳ）と上限アドレス（ＵＢＡＤＲＳ）のアドレス範囲と、そのアドレス範囲に対するアクセス権限（ＡＣＣＡ）が予めアクセス権限管理テーブル（ＡＡＴＬＢ）２６１に設定されておいる。関数Ｆの実行にしたがって引数Ｐ１によってメモリ領域がアクセスされると、図４で説明した手順に従ってアクセスの可否がチェックされる。即ち、該メモリ領域へのアクセスに対して、まず、中央処理装置（ＣＰＵ２）１０２からバス１３０に発行されるアクセスアドレス２５０が比較器２６０で全てのエントリのアドレス範囲（ＬＢＡＤＲＳ〜ＵＢＡＤＲＳ）と比較される（Ｓ１）。当該アクセスアドレスが所属するエントリが選ばれ（Ｓ２）、このエントリのアドレス範囲に対応するアクセス権限（ＡＣＣＡ）が得られる（Ｓ３）。例えば、引数Ｐ１で渡されたアドレスがオペレーティングシステム（ＯＳ２）１７２からは「Ｒ」であり、書込み不可となっており、この時点で、本アクセス権限チェック機構から「アクセス違反」がアクセス権限信号２８０として発生する。この「違反」を示すアクセス権限信号２８０に基づいて割込み要求ＩＲＱが発生され、オペレーティングシステム（ＯＳ２）１７２の管理下にある中央処理装置（ＣＰＵ２）１０２はアクセスエラーが発生したことを認識する。この下位レベルのアクセス権限管理はハードウェア回路によって実現されており、アクセス権限制御は高速に処理される。
【００４４】
以上説明したデータ処理システムにおいては、関数という機能単位でアプリケーションの構造に応じて柔軟に機能単位の呼出しに対する権限制御と言う意味でアクセス権限を制御することができ、さらにそれら機能単位の中でハードウェアに基づいたより強固なアクセス権限の検査がオーバヘッドなしに実現できる。前者のアクセス権限制御は呼出し権限データベース（ＴＣＡＤＢ）１５１及び呼出し権限管理プログラム（ＴＣＡＣＮＴ）１５２により実現され、後者のアクセス権限制御はアクセス権限管理モジュール１４０によって実現される。
【００４５】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４６】
例えば、データプロセッサ１９０はシングルチップに限定されずマルチチップであってもよいし、また、ＣＰＵの数も３個に限定されない。アクセス権限管理モジュール１４０によるアクセス権限の管理対象はメモリに限定されず入出力回路など、中央処理装置にとってアクセス可能なリソースであればよい。アクセス権限管理テーブル（ＡＡＴＬＢ）２６１の構造は図３の構造に限定されず、例えばアドレス信号の上位側複数ビットによってアドレス範囲を特定するデータ構造であってもよい。
【図面の簡単な説明】
【００４７】
【図１】本発明に係るデータ処理システムのハードウェアブロック図である。
【図２】図１のデータ処理システムにおけるソフトウェア及びハードウェアの構成を併せて例示するシステム構成図である。
【図３】アクセス権限管理モジュールの具体例を示すハードウェアブロック図である。
【図４】アクセス権限管理モジュールによる制御動作シーケンスを例示するフローチャートである。
【図５】高位特権モードに応答して実行されるユーティリティプログラム１１０の制御シーケンスを例示するフローチャートである。
【図６】図１のデータ処理システムにおいて一つのＣＰＵが一つのＯＳの管理下でデータ処理を行なう区画（ドメイン）に着目したときのシステム構成を例示するシステム構成図である。
【図７】呼出し権限データベース（ＴＣＡＤＢ）及び呼出し権限管理プログラムを用いたタスクの呼び出し処理手順を例示するフローチャートである。
【符号の説明】
【００４８】
１００  メモリ（ＭＲＹ）
１００＿１  ドメインＤＭＩＮ１に割り当てられたメモリ領域（ＭＲＹ１）
１００＿２  ドメインＤＭＩＮ２に割り当てられたメモリ領域（ＭＲＹ２）
１００＿３  共有領域（ＭＲＹＣ１）
１００＿４  共有領域（ＭＲＹＣ４）
１０１〜１０３  中央処理装置（ＣＰＵ１，ＣＰＵ２，ＣＰＵ３）
１０４，１０５  入出力回路（ＩＯ１、ＩＯ２）
１１０  ファームウェア（ＦＲＭ）
１２０  資源分配・分割ユーティリティ
１３０  転送バス（ＢＵＳ）
１４０  アクセス権限管理モジュール（ＡＡＣＮＴ）
１５０  ユーティリティプログラム（ＵＭＤＬ）１５０
１５１  呼出し権限データベース（ＴＣＡＤＢ）
１５２  呼出し権限管理プログラム（ＴＣＡＣＮＴ）
１７１〜１７３  オペレーティングシステム（ＯＳ１，ＯＳ２，ＯＳ３）
１８０  アプリケーションプログラム（ＡＰＰＬ）
１８０＿１  ＯＳ１のアプリケーションプログラム（ＡＰＰＬ１）
１８０＿２  ＯＳ２のアプリケーションプログラム（ＡＰＰＬ２）
１９０  データプロセッサ（ＭＣＵ）
２４０  ＯＳ指定信号
２５０  アドレス信号
２６０  コンパレータ（ＣＭＰ）
２６１  アクセス権限管理テーブル（ＡＡＴＬＢ）
２６２  アクセス承認制御回路（ＡＡＣＫ）
ＬＢＡＤＲＳ  下限アドレス
ＵＢＡＤＲ  上限アドレス
ＡＤＲＳＦＬＤ  アドレス範囲
２７０  選択信号
２８０  アクセス権限信号
３１０  呼出し権限管理タスク（ＴＣＡＣＮＴ１）
３１１  呼出し権限管理タスク（ＴＣＡＣＮＴ２）
【図１】
2008186212.tif 000003
【図２】
2008186212.tif 000004
【図３】
2008186212.tif 000005
【図４】
2008186212.tif 000006
【図５】
2008186212.tif 000007
【図６】
2008186212.tif 000008
【図７】
2008186212.tif 000009