JP2008186212A - データ処理システム - Google Patents

データ処理システム Download PDF

Info

Publication number
JP2008186212A
JP2008186212A JP2007018701A JP2007018701A JP2008186212A JP 2008186212 A JP2008186212 A JP 2008186212A JP 2007018701 A JP2007018701 A JP 2007018701A JP 2007018701 A JP2007018701 A JP 2007018701A JP 2008186212 A JP2008186212 A JP 2008186212A
Authority
JP
Japan
Prior art keywords
access
function
operating system
authority management
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2007018701A
Other languages
English (en)
Inventor
Keisuke Toyama
圭介 十山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007018701A priority Critical patent/JP2008186212A/ja
Priority to US11/957,723 priority patent/US20080184258A1/en
Publication of JP2008186212A publication Critical patent/JP2008186212A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】マルチコアシステム上でOSに変更を加えずに複数のOSを稼動させ、かつそれら複数のOS間での機能の呼出しやデータのアクセスに際して不正を検出し、高信頼性を確保する。
【解決手段】アクセスの権限チェックを2レベルで行い、上位レベルでは、複数のOSから管理されるデータベース(151)を備えて呼出す機能がどの関数やタスクなどから呼出し可能であるかをこのデータベースに記載し、その情報を参照することにより、当該の機能呼出しが正当なものであるか否かを呼出し権限管理プログラム(152)を用いて判定する。下位レベルでは、呼出しの処理が最終的に変換されて到達するメモリアクセスに対する権限の可否をアクセス権限管理モジュール(140)でハードウェア的に検査する。
【選択図】図2

Description

本発明は、他のオペレーティングシステムの管理下で実行されるデータ処理の呼び出し権限、更には共有ハードウェアリソースに対するアクセス権限の制御に関し、例えば、複数の中央処理装置上で複数のオペレーティングシステムが稼動するマルチコアプロセッサのようなマイクロコンピュータを用いたデータ処理システムにおけるアプリケーションプログラムの実行に際しての信頼性とセキュリティの向上に適用して有効な技術に関する。
近年、マイクロプロセッサにおける集積化が進み、マルチコアシステムとして単一の中央演算処理装置(CPU)を複数搭載したマルチコアプロセッサが開発されている。それら複数のCPUを搭載したマルチコアプロセッサ上でアプリケーションプログラムを動作させる場合、基本システムであるオペレーティングシステム(OS)も複数になり、それらOS間でのデータのやりとりや、別のOS上にある機能を複数のCPUやOSの存在を意識させないで実行する方式が必要になってくる。このような状況において特許文献1にはマルチプロセッサシステム上でシングルプロセッサ向けOSと既存のアプリケーションプログラムを動作させ、当該アプリケーションプログラムに対してマルチプロセッサシステムによる並列処理を実現する技術について記載がある。例えば、第1のCPUで動作するアプリケーションプログラム内で並列化が可能な処理単位を、第2のCPU上で新たな処理単位として制御する。
特開2003−345614号公報
単一チップ上に多数のCPUやその他の回路モジュールが集積されたマルチコアプロセッサでは、複雑化した機能が互いに関連するため、アプリケーション実行の信頼性を確保することも必要である。例えば、メモリ空間を分離してドメインと呼ぶ論理的な区画を構成したとき、別なドメインに所属するOSからのデータ処理の呼び出しを部分的に制限すればよい。しかしながらも、そのような制限が固定的であれば、異なるOSが所属するドメイン間にまたがってデータ処理の呼び出しを可能にするという柔軟性が損なわれることになる。よって、異なるOSが所属するドメイン間にまたがったデータ処理の呼び出しとアプリケーション実行に伴うセキュリティの保証とを両立しなければならない。更に、セキュリティを強化するには、アプリケーションから異なるOSに所属するデータ処理の呼び出しに関してだけではなく、メモリ等の共有ソースに対するアクセスについてもアクセス権限に基づく認否の制御を採用することの必要性が本発明者によって見出された。
本発明の目的は、シングルCPU向けOSが複数稼動するマルチCPUのシステム上における一つのアプリケーションプログラムによる並列データ処理とそれら複数のOS間での機能の呼出しに関するセキュリティの向上とを実現することができるデータ処理システムを提供することにある。
本発明の別の目的は、シングルCPU向けOSが複数稼動するマルチCPUのシステム上における共有リソースのアクセスに際してセキュリティを向上させることができるデータ処理システムを提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、本発明においては、システムの構成を複数の階層に分け、その中で上位層、下位層の2つのレベルにより権限の判定を行う。上位レベルでは、複数のOSによって管理される機能呼出し権限管理テーブルを備え、呼出す機能に対して、それがどの関数やタスクなどから呼出し可能であるかを該機能呼出し権限管理テーブルに記載し、あるOSから別のOSへの機能呼出しを処理する呼出し手順変更手段において、該機能呼出し権限管理テーブルに記載されたアクセス権限情報を参照することにより、当該の機能呼出しが正当なものであるか否かを判定するものである。また、下位レベルでは、呼出しの処理が最終的に変換されて実行されるメモリアクセス等のハードウェアリソースに対する権限の可否をハードウェア的に判定する。
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
すなわち、シングルCPU向けOSが複数稼動するマルチCPUのシステム上における一つのアプリケーションプログラムによる並列データ処理とそれら複数のOS間での機能の呼出しに関するセキュリティの向上とを実現することができる。
また、シングルCPU向けOSが複数稼動するマルチCPUのシステム上における共有リソースのアクセスに際してセキュリティを向上させることができる。
1.代表的な実施の形態(representative forms of embodiments of the inventions)
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係るデータ処理システムは、データ及びプログラムの格納に利用される記憶領域(100)と、前記記憶領域に格納されたプログラムを実行する複数の中央処理装置(101〜103)と、前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュール(140)とを有する。前記中央処理装置は一のオペレーティングシステムの管理下でデータ処理を行なうとき、機能呼出し権限管理テーブル(151)を参照して他のオペレーティングシステムの管理下で実行される別のデータ処理機能の呼び出しの可否を制御する。この機能呼出しの権限による制御は上位階層においてセキュリティを確保する。前記アクセス権限管理モジュールは、前記ハードウェアリソースへのアクセス制御情報(250,240)を入力し、入力したアクセス制御情報に対応するアクセス権限管理テーブル(261)のエントリに従って前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する。このアクセス権限による制御は下位階層においてセキュリティを確保する。
上記データ処理システムによれば、システム設計時にハードウェアが提供する機能を用いて、下位層のアクセス権限として、OSによって設定される上位層の権限よりも強い権限でメモリ等のハードウェアリソースへのアクセスを制限することができる。一方、アプリケーション開発と時には、システム設計時の制限を意識することなく、上位層の機能呼出し権限としてアプリケーションが使用するサービスや関数等のレベルで柔軟に権限設定を行うことができる。システムの挙動に大きな影響を及ぼす重要なアクセス権限は下位層の機構によってハードウェア的に検査されており、アプリケーションプログラムを介する不正な機能呼出しによる影響を排除して高いセキュリティが確保される。
これにより、ソフトウェア開発時にはアプリケーションプログラム内の機能ごとに機能呼出しの可否を自由に設計でき、また、一つのCPUが一つのOSの管理下でデータ処理を行なう区画(ドメイン)の単位で機能呼出しの権限による制御とアクセス権限による制御とにより強固なセキュリティが確保され、信頼性の高いデータ処理システムを実現することができる。
本発明の一つの具体的な形態として、前記記憶領域は前記中央処理装置がオペレーティングシステムを実行する特権状態においてアクセス可能な共有領域(100_3)を含み、前記共有領域は前記機能呼出し権限管理テーブルを保持する。不正なアプリケーションプログラムを介して前記機能呼出し権限管理テーブルが改竄され難くなる。
本発明の別の具体的な形態として、前記機能呼出し権限管理テーブルは、例えばデータ処理を特定するための関数の名称、当該関数の実行を制御する所属オペレーティングシステムの情報、及び当該関数に対する所属オペレーティングシステム以外のオペレーティングシステムによる呼び出し権限情報を保有する。そのような少ない情報によって機能呼出し権限管理を行なうことができる。
本発明の別の具体的な形態として、前記アクセス権限管理テーブルは前記中央処理装置がオペレーティングシステムを実行する特権状態よりも高位の高位特権状態において書換え可能にされる。上位レベルの機能呼出し権限管理が不正に破られても、同時に下位レベルのアクセス権限管理が破られることを抑制することができる。
本発明の別の具体的な形態として、前記アクセス権限管理テーブルは、アドレス範囲、及びそのアドレス範囲に対するアクセス権限情報を保有する。前記アクセス権限情報は、アクセスが許可されるオペレーティングシステムの種別情報、及び許可されるアクセスがリードかライトかを示すアクセス種別情報を含む。そのような少ない情報によってアクセス権限管理を行なうことができる。
〔2〕本発明の別の代表的な実施の形態に係るデータ処理システムは、データ及びプログラムの格納に利用される記憶領域と、前記記憶領域に格納されたプログラムを実行する複数の中央処理装置と、を有する。前記中央処理装置は、一のオペレーティングシステム(OS1)が他のオペレーティングシステム(OS2)の管理の下で実行される一の関数(F)を呼び出すとき、前記関数がどのオペレーティングシステムの管理の下で実行されるかを機能呼出し権限管理テーブル(151)の第1データ部(名称、所属OS)から探索し、前記関数が当該他のオペレーティングシステムの管理の下で実行されるものである場合には、機能呼出し権限管理テーブルの第2データ部(権限)を探索して当該一のオペレーティングシステムによる前記関数の呼び出しの可否を判定する。
上記より、上位層の機能呼出し権限としてアプリケーションが使用するサービスや関数等のレベルで柔軟に権限設定を行うことができると共に、アプリケーションプログラムを介する不正な機能呼出しによる影響を排除するという点においてセキュリティを確保することができる。
本発明の一つの具体的な形態として、前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュールを更に有する。前記アクセス権限管理モジュールは、前記ハードウェアリソースへのアクセス制御情報を入力し、入力したアクセス制御情報に対応するアクセス権限管理テーブルのエントリに従って前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する。
上記によれば、下位層のアクセス権限として、OSによって設定される上位層の権限よりも強い権限でメモリ等のハードウェアリソースへのアクセスを制限することができる。システムの挙動に大きな影響を及ぼす重要なアクセス権限は下位層の機構によってハードウェア的に検査されており、アプリケーションプログラムを介する不正な機能呼出しによる影響を排除して高いセキュリティを確保することができる。
〔3〕本発明の更に別の代表的な実施の形態に係るデータプロセッサは、プログラムを実行する複数の中央処理装置と、前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュールと、を有し、1チップに形成される。前記中央処理装置は、一のオペレーティングシステムが他のオペレーティングシステムの管理の下で実行される一の関数及びその引数を呼び出すとき、前記関数及びその引数がどのオペレーティングシステムの管理の下で実行されるかを機能呼出し権限管理テーブルの第1データ部から探索し、前記関数及びその引数が当該他のオペレーティングシステムの管理の下で実行されるものである場合には、機能呼出し権限管理テーブルの第2データ部を探索して当該一のオペレーティングシステムによる前記関数及びその引数の呼び出しの可否を判定する。
2.実施の形態の説明
実施の形態について更に詳述する。
図1には本発明に係るデータ処理システムのハードウェアブロック図が例示される。データ処理システムは代表的に示されたデータプロセッサ(MCU)190、メモリ(MRY)100、及び入出力回路(IO1、IO2)104,105を有し、それらは転送バス(BUS)130に共通接続される。データプロセッサ190は例えば3個の中央処理装置(CPU1,CPU2,CPU3)101〜103を有するマルチCPUコアプロセッサとして構成され、更にアクセス権限管理モジュール(AACNT)140を有する。メモリ100及び入出力回路104,105はCPU101〜103が利用可能なハードウェアリソースの一例とされる。メモリ100は中央処理装置101〜103が実行するオペレーティングシステムやアプリケーションプログラム等のプログラムとデータを記憶する領域として利用される。アクセス権限管理モジュール140は、中央処理装置11〜13が利用可能なハードウェアリソースに対するリソースアクセス権限を管理する回路である。
図2には図1のデータ処理システムにおけるソフトウェア及びハードウェアの構成が併せて例示される。夫々の中央処理装置101〜103上ではオペレーティングシステム(OS1,OS2,OS3)171〜173が稼動し、オペレーティングシステム171〜173の管理の下で所要のアプリケーションプログラム(APPL)180が稼動する。オペレーティングシステム171〜173とアプリケーションプログラム(APPL)180との間にはミドルウェアを構成する上位層のユーティリティプログラム(UMDL)150が配置される。図2においてユーティリティプログラム(MDL)150として、呼出し権限データベース(TCADB)151と呼出し権限管理プログラム(TCACNT)152が図示される。特に制限されないが、オペレーティングシステム(OS1,OS2,OS3)171〜173、アプリケーションプログラム(APPL)180、呼出し権限データベース(TCADB)151、及び呼出し権限管理プログラム(TCACNT)152はメモリ100に格納される。データプロセッサ190は下位層のユーティリティプログラム(FRM)110を有し、図2では資源分配・分割ユーティリティ(CRDD)120が例示される。ユーティリティプログラム110はメモリ100上にあってもよいし、また、データプロセッサ190内のROM等から成る専用の記憶領域に配置されていてもよい。
前記オペレーティングシステム171〜173は夫々シングルCPU向けのオペレーティングシステムであり、本発明に係るデータ処理システムは、そのような複数のオペレーティングシステム171〜173が稼動するマルチCPUシステムを実現している。このデータ処理システムにおいて中央処理装置101〜103は一つのアプリケーションプログラムによるデータ処理において複数のオペレーティングシステム間でのデータ処理機能の呼出しとその際のセキュリティ保持とを、呼出し権限データベース151及び呼出し権限管理プログラム152を用いて行う。そのような上位階層でのセキュリティ保持に加えて、オペレーティングシステムの管理下で中央処理装置101〜103がメモリ等のリソースをアクセスするとき、アクセスアドレス等に基づいて前記アクセス権限管理モジュール140が下位階層でのセキュリティの保持を行う。以下、そのような上位階層と下位階層においてセキュリティを保持するための構成について詳述する。
呼出し権限管理プログラム152は呼出し権限データベース151を参照することによって、あるオペレーティングシステム上のアプリケーションからの別のオペレーティングシステム上のアプリケーションやユーティリティといった機能の呼出しやデータの参照の可否を制御する。ここで、呼出し権限データベース151はデータ処理システム全体で1つだけメモリ100の中に構築される。
資源分配・分割ユーティリティ120は、アプリケーションプログラムやオペレーティングシステムが参照するメモリアドレスをアドレス演算器等のハードウェア回路と協調して操作することにより、アドレス値に適当なオフセットを加算することで、アプリケーションプログラムやオペレーティングシステムには意識されずに実際のメモリ100上での参照場所の物理配置をずらすことを可能にする。したがって、メモリ100の記憶領域を、CPU1用の領域、CPU2用の領域などに分割して分配しても、夫々のアプリケーションプログラムやオペレーティングシステムは単に0番地から始まるアドレス空間を管理すればよい。中央処理装置(CPU1,CPU2,CPU3)101〜103によるリソースアクセスはこの資源分配・分割ユーティリティ120を介することになる。
アクセス権限管理モジュール140はハードウェアの回路であり、転送バス130に出力されているメモリアドレスを検査するものであり、予めここにメモリアドレスの範囲とアクセス権限の可否を指定することにより、アプリケーションプログラムやオペレーティングシステムの実行時のメモリアクセスアドレスが許可されたものであるかどうかを検査することができる。
図3にはアクセス権限管理モジュールの具体例が示される。このアクセス権限管理モジュール140は、コンパレータ(CMP)260、アドレス範囲毎にアクセス権限を指定するアクセス権限管理テーブル(AATLB)261、及びアクセス承認制御回路(AACK)262を有する。アクセス権限管理テーブル(AATLB)261は下限アドレス(LBADRS)と上限アドレス(UBADR)で特定されるアドレス範囲(ADRSFLD)毎にアクセス権限(ACCA)を指定した複数のエントリデータを有する。アクセス権限は、オペレーティングシステム毎の書込み可能、読出し可能、読書き可能、アクセス不可などとされる。OS1:Rはオペレーティングシステムについて読出し可能であることを意味する。コンパレータ260はCPUから出力されるアドレス信号250がどのアドレス範囲に含まれるかを判定し、当該アクセスアドレスを含みアドレス範囲に対応するエントリデータを選択する選択信号270をアクセス権限管理テーブル261に供給する。アクセス権限管理テーブル261はそれによって指定されたエントリデータの中から、OS指定信号240で指定されたOSについてのアクセス権限をアクセス権限信号280としてアクセス承認制御回路262に出力する。アクセス承認制御回路262は、アクセス要求元からのアクセス形態が、アクセス権限信号28が示すアクセス権限を満足するか否かを判定する。権限を満足すればそのアクセスイネーブル信号ACCENをメモリ等に出力し、権限違反であれば割り込み信号IRQによってCPUに割り込みを要求する。OS指定信号240はCPUによるリソースアクセスに際してアクセスアドレスと共にCPUが出力する。
図4にはアクセス権限管理モジュールによる制御動作シーケンスが例示される。アクセスアドレス250に対してどのアドレス範囲に属するかが判定され(S1)、アクセスアドレスが属するアドレス範囲のデータエントが選択信号270によって選択される(S2)。選択されたエントリデータのアクセス権限(ACCA)のフィールドからOS指定信号で指定されたOSに対応するアクセス権限が参照される(S3)。アクセス要求元のアクセス形態が、参照されたアクセス権限の信号280で特定されたアクセス権限に違反していないが判別される(S4)。違反が無ければ当該アクセスが許容され(S5)、違反があれば割り込み要求が発生され(S6)、該割込み事象を発生させたプログラムが動作している該当のOSが割込み処理プログラムによってエラー処理等を行なうことになる。
アクセス権限管理テーブル(AATLB)261のエントリデータはアクセス権限違反を検査するために用いられるものであり、ユーザプログラムとしてのアプリケーションプログラムやオペレーティングシステムから書込むことは禁止されている。通常、CPUはユーザモードと特権モードに分類される複数の動作モードで動作し、ユーザモードで動作する場合にはアクセスできないCPU資源や実行できない命令がある。中央処理装置(CPU1,CPU2,CPU3)101〜103は特権モードよりも強い動作モードである高位特権モードが装備されており、アクセス権限管理テーブル(AATLB)261が保有するアドレス範囲(ADRSFLD)及びアクセス権限(ACCA)のエントリデータは、特権モードにおいては書込みができず、高位特権モードにおいてのみ書換え可能な資源とされる。資源分配・分割ユーティリティ120等のユーティリティプログラム110は高位特権モードで動作するソフトウェアである。ユーティリティプログラム110の実行は高位特権モードでの動作処理の要求が契機となって起こる。
図5には高位特権モードに応答して実行されるユーティリティプログラム110の処理フローが例示される。オペレーティングシステム又はアプリケーションプログラムから高位特権モードでの処理要求が発生すると(S10)、これを契機として高位特権モード処理が開始される。まず、データプロセッサ190の動作モードを“高位特権モード”として設定する(S11)。次に、どの処理が要求されているかについての要因解析が行なわれる(S12)。これは、高位特権モード動作の契機となった命令や、例えばサービスに対応する番号、要求されるサービスの種別等を参照して行われる。要因解析の結果にしたがって、夫々の処理を行ない(S13)、必要な処理が終了すると、この処理に入る前のプロセッサ動作モードを回復して(S14)、要求元に復帰する。
図6には図1のデータ処理システムにおいて一つのCPUが一つのOSの管理下でデータ処理を行なう区画(ドメイン)に着目したときのシステム構成が例示される。ここでは、各ドメインにおいて呼出し権限管理プログラム(TCACNT)152はOS上のタスク(呼出し権限管理タスク:TCACNT1,TCACNT2)310,311として稼動しているものとする。アクセス権限データベース151は呼出し権限管理タスク310,311から参照可能なメモリ100上の共有領域(MRYC1)100_3に配置されている。共有領域(MRYC1)100_3は高位特権モードにおいて書込み可能な領域とされる。メモリ領域(MRY1)100_1はドメインDMIN1に割り当てられた領域、メモリ領域(MRY2)100_2はドメインDMIN2に割り当てられた領域、共有領域(MRYC4)はどの動作モードにおいてもリード及びライト可能なメモリ領域である。
呼出し権限データベース(TCADB)151には、特に制限されないが、関数名称、引数、それが所属するOS、及び権限が登録される。権限については、例えば「OS1:R」により、OS1で読出し可、すなわち関数Fの実行が許可されていることを示すものとする。引数「P1」、「P2」に対しても同様である。
図6において中央処理装置(CPU1)101上のオペレーティングシステム(OS1)171のアプリケーションプログラム(APPL1)180_1をF(P1,P2)とし、中央処理装置(CPU2)102上のオペレーティングシステム(OS2)172のアプリケーションプログラム(APPL2)180_2内の関数Fを引数P1、P2で呼出す場合を考える。その呼出し処理手順は図7のフローチャートに示される。ここで、引数P2はその値を関数Fに渡すのみであるが、引数P1によりアプリケーションプログラム(APPL2)180_2の関数F内でメモリの値が変更されることを想定する。
図7に基づいてタスクの呼び出し処理手順について説明する。アプリケーションプログラム(APPL1)180_1の実行が進み、F(P1,P2)として呼出しがなされると、オペレーティングシステム(OS1)171上の呼出し権限管理タスク(TCACNT1)310で変換処理が行われる。この処理手順が図7に示されている。
図7に従えば、関数Fがどのオペレーティングシステムに属するかを判定し(S21)、目的のオペレーティングシステム(ここではOS2)を得る。ステップS22において、関数Fのオペレーティングシステム(OS1)171での権限をデータベース151のエントリから得る。これによって参照した権限から「R」(呼出し可=実行可能)でることを判定し(S23)、関数Fの呼出しをオペレーティングシステム(OS2)172に渡す。引数P1,P2についても同様に参照し、権限を判定する(S231〜S23)。図6の例に従えば、関数F及び引数P1,P2共に、オペレーティングシステム(OS1)171において呼出し可能という権限を判定できる。これにより、関数Fの名称と引数P1、P2が共有領域(MRYC2)100_4に格納され(S24)、オペレーティングシステム(OS2)172に呼出しがあったことが連絡される(S25)。呼出しの連絡を受けたオペレーティングシステム(OS2)172はその呼出し権限管理タスク(TCACNT2)311を用いて、共有領域(MRYC2)100_4から関数Fの名称と引数P1、P2を取得し、その関数名称と引数をオペレーティングシステム(OS2)172上のプログラムが処理できる形に再構成する(S26)。再構成された関数名称から特定されるターゲットとなる関数の開始アドレスへ処理を分岐し(S27)、分岐された関数の実体に対して、同じく渡された引数P1,P2を用いて関数機能を実行する。関数機能の実行に当たってメモリ等のリソースアクセスを要する場合には図3で説明したアクセス権限管理モジュール140によって許容されるアクセス権限の範囲でメモリアクセス等が可能になる。
ステップS23において、関数Fのオペレーティングシステム(OS1)171での権限がRではないと判定された場合、この関数Fはオペレーティングシステム(OS1)171からは呼出し不可能とされ、オペレーティングシステム(OS1)171においてエラー処理が行われる(S28)。
図6及び図7に基づいて説明した呼出し権限管理プログラム(TCACNT)152によるタスク呼出しの許可/不許可の制御に加えて、そのような検査ではチェックが困難であったり処理時間がかかってしまったりする、引数で渡されるデータに基づくアクセスに対する許可/不許可も前記アクセス権限管理モジュール140を介して容易に検査される。例えば、関数Fの処理において、引数P1で渡されたデータがあるメモリ領域のアドレスを示しており、関数F内で、その領域の値を変更するものとする。このとき、前記呼出し権限管理プログラム(TCACNT)152による権限チェックにおいては、関数F自体の実行の呼出しは許可されているので、呼出し権限管理プログラム(TCACNT)152やオペレーティングシステム(OS2)172だけによって引数P1を経由したメモリアクセスの可否を判定することはできない。これに対しては前述の図3で説明した下位レベルのアクセス権限チェック機構が用いられる。引数P1を経由したメモリアクセスのアドレスに対応して、アクセス権限管理テーブル(AATLB)261には下限アドレス(LBADRS)と上限アドレス(UBADRS)のアドレス範囲と、そのアドレス範囲に対するアクセス権限(ACCA)が予めアクセス権限管理テーブル(AATLB)261に設定されておいる。関数Fの実行にしたがって引数P1によってメモリ領域がアクセスされると、図4で説明した手順に従ってアクセスの可否がチェックされる。即ち、該メモリ領域へのアクセスに対して、まず、中央処理装置(CPU2)102からバス130に発行されるアクセスアドレス250が比較器260で全てのエントリのアドレス範囲(LBADRS〜UBADRS)と比較される(S1)。当該アクセスアドレスが所属するエントリが選ばれ(S2)、このエントリのアドレス範囲に対応するアクセス権限(ACCA)が得られる(S3)。例えば、引数P1で渡されたアドレスがオペレーティングシステム(OS2)172からは「R」であり、書込み不可となっており、この時点で、本アクセス権限チェック機構から「アクセス違反」がアクセス権限信号280として発生する。この「違反」を示すアクセス権限信号280に基づいて割込み要求IRQが発生され、オペレーティングシステム(OS2)172の管理下にある中央処理装置(CPU2)102はアクセスエラーが発生したことを認識する。この下位レベルのアクセス権限管理はハードウェア回路によって実現されており、アクセス権限制御は高速に処理される。
以上説明したデータ処理システムにおいては、関数という機能単位でアプリケーションの構造に応じて柔軟に機能単位の呼出しに対する権限制御と言う意味でアクセス権限を制御することができ、さらにそれら機能単位の中でハードウェアに基づいたより強固なアクセス権限の検査がオーバヘッドなしに実現できる。前者のアクセス権限制御は呼出し権限データベース(TCADB)151及び呼出し権限管理プログラム(TCACNT)152により実現され、後者のアクセス権限制御はアクセス権限管理モジュール140によって実現される。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、データプロセッサ190はシングルチップに限定されずマルチチップであってもよいし、また、CPUの数も3個に限定されない。アクセス権限管理モジュール140によるアクセス権限の管理対象はメモリに限定されず入出力回路など、中央処理装置にとってアクセス可能なリソースであればよい。アクセス権限管理テーブル(AATLB)261の構造は図3の構造に限定されず、例えばアドレス信号の上位側複数ビットによってアドレス範囲を特定するデータ構造であってもよい。
本発明に係るデータ処理システムのハードウェアブロック図である。 図1のデータ処理システムにおけるソフトウェア及びハードウェアの構成を併せて例示するシステム構成図である。 アクセス権限管理モジュールの具体例を示すハードウェアブロック図である。 アクセス権限管理モジュールによる制御動作シーケンスを例示するフローチャートである。 高位特権モードに応答して実行されるユーティリティプログラム110の制御シーケンスを例示するフローチャートである。 図1のデータ処理システムにおいて一つのCPUが一つのOSの管理下でデータ処理を行なう区画(ドメイン)に着目したときのシステム構成を例示するシステム構成図である。 呼出し権限データベース(TCADB)及び呼出し権限管理プログラムを用いたタスクの呼び出し処理手順を例示するフローチャートである。
符号の説明
100 メモリ(MRY)
100_1 ドメインDMIN1に割り当てられたメモリ領域(MRY1)
100_2 ドメインDMIN2に割り当てられたメモリ領域(MRY2)
100_3 共有領域(MRYC1)
100_4 共有領域(MRYC4)
101〜103 中央処理装置(CPU1,CPU2,CPU3)
104,105 入出力回路(IO1、IO2)
110 ファームウェア(FRM)
120 資源分配・分割ユーティリティ
130 転送バス(BUS)
140 アクセス権限管理モジュール(AACNT)
150 ユーティリティプログラム(UMDL)150
151 呼出し権限データベース(TCADB)
152 呼出し権限管理プログラム(TCACNT)
171〜173 オペレーティングシステム(OS1,OS2,OS3)
180 アプリケーションプログラム(APPL)
180_1 OS1のアプリケーションプログラム(APPL1)
180_2 OS2のアプリケーションプログラム(APPL2)
190 データプロセッサ(MCU)
240 OS指定信号
250 アドレス信号
260 コンパレータ(CMP)
261 アクセス権限管理テーブル(AATLB)
262 アクセス承認制御回路(AACK)
LBADRS 下限アドレス
UBADR 上限アドレス
ADRSFLD アドレス範囲
270 選択信号
280 アクセス権限信号
310 呼出し権限管理タスク(TCACNT1)
311 呼出し権限管理タスク(TCACNT2)

Claims (12)

  1. データ及びプログラムの格納に利用される記憶領域と、
    前記記憶領域に格納されたプログラムを実行する複数の中央処理装置と、
    前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュールと、を有し、
    前記中央処理装置は一のオペレーティングシステムの管理下でデータ処理を行なうとき、機能呼出し権限管理テーブルを参照して他のオペレーティングシステムの管理下で実行される別のデータ処理機能の呼び出しの可否を制御し、
    前記アクセス権限管理モジュールは、前記ハードウェアリソースへのアクセス制御情報を入力し、入力したアクセス制御情報に対応するアクセス権限管理テーブルのエントリに従って前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する、データ処理システム。
  2. 前記記憶領域は前記中央処理装置がオペレーティングシステムを実行する特権状態においてアクセス可能な共有領域を含み、
    前記共有領域は前記機能呼出し権限管理テーブルを保持する請求項1記載のデータ処理システム。
  3. 前記機能呼出し権限管理テーブルは、データ処理を特定するための関数の名称、当該関数の実行を制御する所属オペレーティングシステムの情報、及び当該関数に対する所属オペレーティングシステム以外のオペレーティングシステムによる呼び出し権限情報を保有する、請求項1記載のデータ処理システム。
  4. 前記アクセス権限管理テーブルは前記中央処理装置がオペレーティングシステムを実行する特権状態よりも高位の高位特権状態において書換え可能にされる請求項1記載のデータ処理システム。
  5. 前記アクセス権限管理テーブルは、アドレス範囲、及びそのアドレス範囲に対するアクセス権限情報を保有し、
    前記アクセス権限情報は、アクセスが許可されるオペレーティングシステムの種別情報、及び許可されるアクセスがリードかライトかを示すアクセス種別情報を含む請求項1記載のデータ処理システム。
  6. データ及びプログラムの格納に利用される記憶領域と、
    前記記憶領域に格納されたプログラムを実行する複数の中央処理装置と、を有し、
    前記中央処理装置は、一のオペレーティングシステムが他のオペレーティングシステムの管理の下で実行される一の関数を呼び出すとき、前記関数がどのオペレーティングシステムの管理の下で実行されるかを機能呼出し権限管理テーブルの第1データ部から探索し、前記関数が当該他のオペレーティングシステムの管理の下で実行されるものである場合には、機能呼出し権限管理テーブルの第2データ部を探索して当該一のオペレーティングシステムによる前記関数の呼び出しの可否を判定する、データ処理システム。
  7. 前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュールを更に有し、
    前記アクセス権限管理モジュールは、前記ハードウェアリソースへのアクセス制御情報を入力し、入力したアクセス制御情報に対応するアクセス権限管理テーブルのエントリに従って前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する、請求項6記載のデータ処理システム。
  8. 前記記憶領域は前記中央処理装置がオペレーティングシステムを実行する特権状態においてアクセス可能な共有領域を含み、
    前記共有領域は前記機能呼出し権限管理テーブルを保持する請求項6記載のデータ処理システム。
  9. 前記機能呼出し権限管理テーブルは、データ処理を特定するための関数の名称、当該関数の実行を制御する所属オペレーティングシステムの情報、及び当該関数に対する所属オペレーティングシステム以外のオペレーティングシステムによる呼び出し権限情報を保有し、
    前記第1のデータ部は前記関数の名称と対を成す所属オペレーティングシステムの情報を保有する領域であり、
    前記第2のデータ部は前記関数の名称と対を成す呼び出し権限情報を保有する領域である、請求項6記載のデータ処理システム。
  10. 前記アクセス権限管理テーブルは前記中央処理装置がオペレーティングシステムを実行する特権状態よりも高位の高位特権状態において書換え可能にされる請求項7記載のデータ処理システム。
  11. 前記アクセス権限管理テーブルは、アドレス範囲、及びそのアドレス範囲に対するアクセス権限情報を保有し、
    前記アクセス権限情報は、アクセスが許可されるオペレーティングシステムの種別情報、及び許可されるアクセスがリードかライトかを示すアクセス種別情報を含む請求項7記載のデータ処理システム。
  12. プログラムを実行する複数の中央処理装置と、
    前記複数の中央処理装置が利用可能なハードウェアリソースに対するリソースアクセス権限を管理するアクセス権限管理モジュールと、を有し、
    前記中央処理装置は、一のオペレーティングシステムが他のオペレーティングシステムの管理の下で実行される一の関数及びその引数を呼び出すとき、前記関数及びその引数がどのオペレーティングシステムの管理の下で実行されるかを機能呼出し権限管理テーブルの第1データ部から探索し、前記関数及びその引数が当該他のオペレーティングシステムの管理の下で実行されるものである場合には、機能呼出し権限管理テーブルの第2データ部を探索して当該一のオペレーティングシステムによる前記関数及びその引数の呼び出しの可否を判定する、1チップに形成されたデータプロセッサ。
JP2007018701A 2007-01-30 2007-01-30 データ処理システム Withdrawn JP2008186212A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007018701A JP2008186212A (ja) 2007-01-30 2007-01-30 データ処理システム
US11/957,723 US20080184258A1 (en) 2007-01-30 2007-12-17 Data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007018701A JP2008186212A (ja) 2007-01-30 2007-01-30 データ処理システム

Publications (1)

Publication Number Publication Date
JP2008186212A true JP2008186212A (ja) 2008-08-14

Family

ID=39669448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007018701A Withdrawn JP2008186212A (ja) 2007-01-30 2007-01-30 データ処理システム

Country Status (2)

Country Link
US (1) US20080184258A1 (ja)
JP (1) JP2008186212A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010113488A (ja) * 2008-11-06 2010-05-20 Esol Co Ltd オペレーティングシステムおよび情報処理装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4888742B2 (ja) * 2009-02-25 2012-02-29 ソニー株式会社 情報処理装置および方法、並びにプログラム
US8893267B1 (en) 2011-08-17 2014-11-18 Applied Micro Circuits Corporation System and method for partitioning resources in a system-on-chip (SoC)
CN107357648B (zh) * 2017-05-25 2020-05-15 吕锦柏 一种多核cpu访问资源时自旋锁的实现方法
DE102018212686A1 (de) * 2018-07-30 2020-01-30 Siemens Aktiengesellschaft Verfahren zum Betreiben einer Rechenanlage
CN111526143B (zh) * 2020-04-21 2022-04-19 北京思特奇信息技术股份有限公司 一种crm系统防越权的实现方法及其装置和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058414A (en) * 1998-01-07 2000-05-02 International Business Machines Corporation System and method for dynamic resource access in an asymmetric resource multiple processor computer system
US6763458B1 (en) * 1999-09-27 2004-07-13 Captaris, Inc. System and method for installing and servicing an operating system in a computer or information appliance
US7418703B2 (en) * 2002-03-20 2008-08-26 Nec Corporation Parallel processing system by OS for single processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010113488A (ja) * 2008-11-06 2010-05-20 Esol Co Ltd オペレーティングシステムおよび情報処理装置
JP4576452B2 (ja) * 2008-11-06 2010-11-10 イーソル株式会社 オペレーティングシステムおよび情報処理装置

Also Published As

Publication number Publication date
US20080184258A1 (en) 2008-07-31

Similar Documents

Publication Publication Date Title
US10592270B2 (en) Safety hypervisor function
US8074274B2 (en) User-level privilege management
US7392524B2 (en) Method, system, and storage medium for managing computer processing functions
Fuchsen How to address certification for multi-core based IMA platforms: Current status and potential solutions
US10860332B2 (en) Multicore framework for use in pre-boot environment of a system-on-chip
JP5254481B2 (ja) 安全システムの再構成
CN106415575B (zh) 硬件配置报告系统
US9032482B2 (en) Information processing apparatus and control method
CN101661440A (zh) 安全信息处理
US20160077984A1 (en) Mechanism for managing access to at least one shared integrated peripheral of a processing unit and a method of operating thereof
KR19980086609A (ko) 동시적인 프로세서 요구에 의한 데이터 자원의 액세싱을 직렬화하기 위한 컴퓨터 시스템내에서의 블로킹 심볼 제어
JP2010515149A5 (ja)
JP2008186212A (ja) データ処理システム
US20110161644A1 (en) Information processor
JP2009251967A (ja) マルチコアシステム
JP2013161299A (ja) 情報処理装置、インタフェースアクセス方法
Ruh et al. The need for deterministic virtualization in the industrial internet of things
JP5999216B2 (ja) データ処理装置
US8352947B2 (en) Method to automatically redirect SRB routines to a zIIP eligible enclave
Leteinturier et al. Multicore benefits & challenges for automotive applications
Pitter et al. Towards a Java multiprocessor
Farrall et al. Hardware and software support for mixed-criticality multicore systems
Nojiri et al. Domain partitioning technology for embedded multicore processors
Wulf et al. Virtualization of Reconfigurable Mixed-Criticality Systems
Kumar et al. SecureLease: Maintaining Execution Control in The Wild using Intel SGX

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100406