JP2008250386A - アクセス制御装置及びコンピュータシステム - Google Patents

アクセス制御装置及びコンピュータシステム Download PDF

Info

Publication number
JP2008250386A
JP2008250386A JP2007087387A JP2007087387A JP2008250386A JP 2008250386 A JP2008250386 A JP 2008250386A JP 2007087387 A JP2007087387 A JP 2007087387A JP 2007087387 A JP2007087387 A JP 2007087387A JP 2008250386 A JP2008250386 A JP 2008250386A
Authority
JP
Japan
Prior art keywords
control information
access
access control
address
computer system
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.)
Pending
Application number
JP2007087387A
Other languages
English (en)
Inventor
Kenichiro Yoshii
謙一郎 吉井
Hiroshi Yao
浩 矢尾
Tatsunori Kanai
達徳 金井
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007087387A priority Critical patent/JP2008250386A/ja
Publication of JP2008250386A publication Critical patent/JP2008250386A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】デバイスに対するアクセスを制御することで、セキュリティを向上させる。
【解決手段】複数のバスマスタと、デバイスと、を備えるコンピュータシステムにおいて、デバイスに対してアクセスを行う複数のバスマスタのそれぞれに対して、デバイス毎にアクセス可能か否かを示すアクセス制御情報を記憶する制御情報記憶装置と、バスマスタによるデバイスに対するアクセス要求を検出する検出部と、アクセス要求を検出した場合に、当該アクセス要求を出力したバスマスタのアクセス制御情報を、制御情報記憶装置から取得する取得部と、取得したアクセス制御情報を、デバイスにアクセス可能であることを示していればアドレス変換を行わず、前記デバイスにアクセス可能でないことを示していればアドレス変換を行うフィルタとして用いて、アクセス要求のアクセス先のアドレスのアドレス変換を行う第1及び第2アドレス変換装置と、を備える。
【選択図】 図1

Description

この発明は、デバイス毎にアクセスを制御するアクセス制御装置及びコンピュータシステムに関するものである。
近年、1つのハードウェアで様々な機能を実現する傾向にある。このため、1つの組み込み機器に搭載するシステムLSIやSoCに、プロセッサやDSPやDMAコントローラ等の装置が混載されるようになった。これらの装置は、システムが備えるバスに能動的にアクセス要求を出すことからバスマスタと呼ばれる。これらバスマスタが当該組み込み機器に接続されたデバイスを制御させることも多い。
また、当該組み込み機器に搭載されるシステムLSIやSoCにおいて、複数の機能を実現させるために、プロセッサを搭載すると共に、当該プロセッサ上で動作させるために、ゲストOS等の複数のプログラムを保持させる傾向にある。
しかしながら、上述したシステムLSI、SoCに混載されるプロセッサは面積等の特殊な制約があるため、高機能プロセッサをワンチップで混載させることも難しい。このため、システムLSI、SoCには従来から使用されてきたプロセッサを選択して混載することも多い。そして、サーバ計算機や汎用計算機に使用されるような高機能なプロセッサと異なり、複数ゲストOSの動作を可能とする仮想化機構などのセキュリティを保護するための機構が搭載されていないことも多い。
つまり、このような組み込み機器においても、上述したプログラム、又は当該組み込み機器で利用されている秘密情報の外部への漏洩、破壊そして改竄という問題が生じる。
このような問題を解決するには、各プログラムやハードウェア装置に割り当てられた入出力デバイスやメモリといったリソースへのアクセスの可否を制御する必要がある。例えば、あるプログラムに割り当てられたメモリや入出力デバイスを他のプログラムや装置からアクセスできないように制御することが挙げられる。
このような制御を実現する手段としては、プロセッサ等は従来から使用されているものを搭載しているので、プロセッサ外部から当該プロセッサに依存せずに行うのが好ましい。
このプロセッサに依存しない形態のメモリおよびデバイスへのアクセス制御技術として特許文献1に記載された技術が提案されている。この特許文献1に記載された技術では、コンピュータシステムにおいて、プロセッサ上で動作するプログラム毎に、当該システムが備えるリソースへのアクセスの可否を示すアクセス許可テーブルと、アクセス先アドレスとアクセス許可テーブルの内容とを比較してアクセスの可否を判断するアクセス違反検出器を備えている。
そして、特許文献1に記載されたコンピュータシステムでは、管理プログラムがプロセッサ上で実行するプログラムの切り替え時にアクセス許可テーブルを当該プログラム用のテーブルに切り替えている。そして、アクセス違反検出器が、プログラムが発するリソースへのアクセス要求に対して、アクセス先のアドレスとアクセス許可テーブル内の情報を比較して、アクセスの可否を判断している。これにより、プロセッサ上で動作するソフトウェアに応じてアクセス制御を可能としている。
特開2001−325150号公報
しかしながら、特許文献1に記載された技術では、プロセッサ上で動作するプログラムからの不正アクセスを防ぐことは可能であるが、システムLSIやSoCに混載されたDSPやDMAコントローラといった、プロセッサ上でのプログラムの動作とは関係なく動作している装置によるリソースへのアクセスを監視することができず、それらの装置を利用した、プログラムが展開されているメモリへの不正アクセス等を防ぐことができないとう問題がある。
本発明は、上記に鑑みてなされたものであって、システムLSIやSoCに混載された全てのバスマスタからのデバイスに対するアクセスを制御することで、セキュリティを向上させたアクセス制御装置及びコンピュータシステムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかるアクセス制御装置は、デバイスに対してアクセスを行う複数のバスマスタのそれぞれに対して、前記デバイス毎にアクセス可能か否かを示すアクセス制御情報を記憶する記憶手段と、前記バスマスタによる前記デバイスに対するアクセス要求を検出する検出手段と、前記アクセス要求を検出した場合に、当該アクセス要求を出力した前記バスマスタの前記アクセス制御情報を、前記記憶手段から取得する取得手段と、前記取得手段が取得した前記アクセス制御情報を、当該アクセス制御情報が前記デバイスにアクセス可能であることを示していればアドレス変換を行わず、前記デバイスにアクセス可能でないことを示していればアドレス変換を行うフィルタとして用いて、前記アクセス要求のアクセス先のアドレスのアドレス変換を行うアドレス変換手段と、を備えることを特徴とする。
また、本発明にかかるコンピュータシステムは、プロセッサを含む複数のバスマスタと、複数のバスマスタのアクセス対象となるデバイスと、を備えるコンピュータシステムにおいて、デバイスに対してアクセスを行う複数のバスマスタのそれぞれに対して、前記デバイス毎にアクセス可能か否かを示すアクセス制御情報を記憶する記憶手段と、前記バスマスタによる前記デバイスに対するアクセス要求を検出する検出手段と、前記アクセス要求を検出した場合に、当該アクセス要求を出力した前記バスマスタの前記アクセス制御情報を、前記記憶手段から取得する取得手段と、前記取得手段が取得した前記アクセス制御情報を、当該アクセス制御情報が前記デバイスにアクセス可能であることを示していればアドレス変換を行わず、前記デバイスにアクセス可能でないことを示していればアドレス変換を行うフィルタとして用いて、前記アクセス要求のアクセス先のアドレスのアドレス変換を行うアドレス変換手段と、を備えることを特徴とする。
本発明によれば、複数のバスマスタからのデバイスに対するアクセスを制御することで、セキュリティを向上させるという効果を奏する。
以下に添付図面を参照して、この発明にかかるアクセス制御装置及びコンピュータシステムの最良な実施の形態を詳細に説明する。
(第1の実施の形態)
図1に示すように、コンピュータシステムは、SoC100と、第2のデバイス150とを備える。
第2のデバイス150は、後述するSoC100に接続され、SoC100に含まれるプロセッサ101やDSP102により制御されるデバイスとする。
第2のデバイス150の例としては、メモリモジュール、ハードディスクドライブ等の大容量外部記憶装置、ネットワークインターフェース等の外部通信装置、キーボードやマウスなど利用者が入力に用いる入力装置、さらにはディスプレイ等の外部出力装置が考えられるが、これらに限るものではない。
SoC100は、プロセッサ101と、DSP102と、オンチップメモリ103と、アクセス制御情報管理装置104と、第1のアドレス変換装置105と、第1のデバイスコントローラ106と、第1のデバイス140と、第2のアドレス変換装置107と、第2のデバイスコントローラ108とを備える。
本実施の形態にかかるコンピュータシステムでは、能動的にオンチップバス120にアクセス要求を出力する装置を、バスマスタと呼ぶ。本実施の形態のSoC100内部では、プロセッサ101やDSP102がバスマスタに該当する。そして、本実施の形態にかかるコンピュータシステムでは、アクセスを制御するためのこれらバスマスタに対して識別子(以下、バスマスタIDとする)を付与する。これにより、オンチップバス120上でアクセス要求を行ったバスマスタを区別することができる。
そして、プロセッサ101にはバスマスタID=“0”を、DSP102にはバスマスタID=“1”を割り当てる。
第1のデバイス140は、後述するプロセッサ101やDSP102により制御が行われるデバイスとする。
このように、プロセッサ101やDSP102で制御の対象となるデバイスは、SoC100の内部に備えるものでも、SoC100の外部に備えるものでもよい。また、SoC100に接続されるデバイスの数を2個に制限するものではなく、何個でも良いものとする。
また、コンピュータシステムでは、アクセス制御の対象となるデバイスを識別するために、上述した各デバイスに対して識別子(以下、デバイスIDとする)を付与する。本実施の形態にかかるコンピュータシステムでは、第1のデバイス140には、デバイスID=“0”を付与し、第2のデバイス150には、デバイスID=“1”を付与する。なお、デバイスIDは、システムに存在するデバイスを識別することができれば、どのような形式を用いても良い。
次に、これら第1のデバイス140や第2のデバイス150にアクセスするためのアドレス空間について説明する。図2に示すように、SoC100に混載されているオンチップメモリにアクセスするためのアドレス範囲は、アドレス0x0〜0x0FFFFFFFまでの256メガバイトの空間が割り当てられているものとする。そして、当該物理アドレス空間のうち、第1のデバイス140にアクセスするためのアドレス範囲として0xA0000000〜0xA00000FFの256バイトの空間が、第2のデバイス150にアクセスするためのアドレス範囲として0xB0000000〜0xB00000FFの256バイトの空間が設定されている。
そして、プロセッサ101やDSP102が、それぞれのデバイスにアクセスするには、当該アドレス範囲内のアドレスに設定されたデバイス制御用レジスタ等にアクセスする。例えば、プロセッサ101が、アドレス0xA0000000〜0xA00000FFにマップされた第1のデバイス140にアクセスするために、アドレス0xA0000000を指定したアクセスをオンチップバス120に出力する。本実施の形態にかかるコンピュータシステムでは、任意のデバイスに対してアクセス権を有していない場合に、アクセス先アドレスを変換することで、これらデバイスに対するアクセスを防止する。
このアクセス先アドレスの変換は、後述するアドレス変換装置(第1のアドレス変換装置105及び第2のアドレス変換装置107)が行う。なお、アドレス変換装置は、アクセス先アドレスの最上位ビットを変換対象として使用する。なお、アドレス変換装置の詳細な説明については後述する。
本実施の形態にかかるコンピュータシステムでは、アクセス制御の対象となる全てのデバイスを、コンピュータシステムの物理アドレス空間におけるアドレスの最上位ビットが“1”の範囲に配置する。
そして、メモリ(例えばオンチップメモリ)のために確保された物理アドレス空間中の範囲は、デバイスを配置する範囲とは異なるアドレス空間(つまりアドレスの最上位ビットが“0”である空間)に確保した。
ただし、組み込みシステムに限らず、コンピュータシステムにおける物理アドレス空間上では、各デバイスとメモリとの配置は上記のように分割されることが一般的である。このため、コンピュータシステムの構築にあたり、上述した制約が困難であったり混乱を招いたりするものではない。
そして、後述するアドレス変換装置(第1のアドレス変換装置105及び第2のアドレス変換装置107)は、当該最上位ビット“1”と、後述するアクセス制御情報とのビット演算を行い、アクセス許可が無い場合に最上位ビットが“0”に変換され、アクセス許可がある場合に最上位ビットが変更されないように処理を行う。
アクセス制御情報とは、バスマスタ毎に各デバイスに対してアクセス可能であるか否かを保持する情報とする。このアクセス制御情報は、後述するアクセス制御情報管理装置104の制御情報記憶装置110に格納されている。なお、アクセス制御情報は必要に応じて変更することができる。
プロセッサ101は、ハイパーバイザ、第1のゲストOS又は第2のゲストOSが動作する。
図3に示すように、ハイパーバイザは、論理的には第1のゲストOS及び第2のゲストOSの下層に配置されるものとする。
そして、本実施の形態において、第1のゲストOSは、第1のデバイス140に対してアクセス許可されず、第2のデバイス150に対して許可される。そして、第2のゲストOSは、第1のデバイス140に対してアクセス許可され、第2のデバイス150に対して許可されないものとする。
これらゲストOS間が切り替わる際に、ハイパーバイザが呼び出され、呼び出されるゲストOSに応じてアクセス制御情報を変更する。なお、詳細な変更手法については後述する。
なお、制御情報記憶装置110へのアクセス制御情報の設定は、コンピュータシステム100で信頼できる装置又はソフトウェアのみが行えるようにする必要がある。本実施の形態では、ハイパーバイザのみアクセス制御情報の設定を行えるものとする。これにより、アクセス制御情報を保護することができる。
仮に、第1のゲストOS、第2のゲストOS又はDSP102上で動作する専用ソフトウェアが、アクセス制御情報の設定を可能とした場合、これらソフトウェアが任意でアクセス制御情報を設定できることになる。これでは当該ソフトウェアの悪意や不具合による許可されていないデバイスへのアクセスを防止することができない。
このために、本実施の形態では、制御情報記憶装置110へのアクセスをハイパーバイザしか行えないようにするか、制御情報記憶装置110とプロセッサ101を専用のバス等で接続した上で当該専用のバスへのアクセスをハイパーバイザしかできないように構成することとした。なお、この他にも様々な方法が考えられるが、上記の条件が満たされればその手段は問わない。
また、ハイパーバイザは、時分割等の方法にしたがって各ゲストOSを切り替えながら並行に動作させている。このため、ハイパーバイザは、ゲストOSの切り替えの際、実行を再開させるゲストOSのアクセス制御情報を、制御情報記憶装置110のバスマスタID=0に相当する場所に再設定する必要がある。このために、本実施の形態にかかるハイパーバイザは、全てのゲストOSのアクセス制御情報を、ハイパーバイザしかアクセスできない(図示しない)記憶領域に記憶して管理している。そして、ハイパーバイザは、当該記憶領域から読み出したアクセス制御情報を、ゲストOS切り替えの際に、制御情報記憶装置110に設定する。
また、ハイパーバイザは、SoC100に混載している装置又はSoC100に外付けされたハードウェア装置等を用いて改竄されないことや、プロセッサ101上で動作する他のソフトウェア(第1のゲストOS等)や割り込み等によって実行を邪魔されないことが保障されているものとする。
このハイパーバイザの信頼性を保証する機構は、どのような手法で実現しても良い。例えばハイパーバイザのプログラム自体には、ハイパーバイザの動作中以外はアクセスできないようにメモリアクセスを制御する装置をSoC100に混載しても良い。他の例としては、コンピュータシステムの起動時に適切な認証操作を行うことでハイパーバイザの信頼性を保障するなどの方法が考えられる。
また、ハイパーバイザが、他のソフトウェアや割り込みによって動作を邪魔されないことに関しては、例えばプロセッサ101上で動作するどのゲストOSよりも高い特権モードを付与することや、ハイパーバイザの実行中はプロセッサへの割り込みを完全に禁止するといった方法が考えられる。なお、これらの方法以外にも様々な方法が考えられるが、上述した条件が満たされていれば、どのような手段を用いても良い。
本実施の形態にかかるコンピュータシステムにおいて、ゲストOSに対するアクセス制御は、ハイパーバイザと、後述するアクセス制御情報管理装置104と、デバイス毎に設置されたアドレス変換装置(第1のアドレス変換装置105と、第2のアドレス変換装置107)と、を組み合せることで実現できる。
また、プロセッサ101上で動作する第1のゲストOS又は第2のゲストOSがオンチップバス120にアクセス要求を出す際、両方ともプロセッサ101のバスマスタID=“0”がオンチップバス120に出力される。
DSP102は、特定の演算を高速に行うマイクロプロセッサであり、例えば音声や画像などの処理を行うものとする。
またDSP102上で動作する専用ソフトウェアがオンチップバス120にアクセス要求を出す際は、DSPのバスマスタID=“1”がオンチップバス120に出力される。
オンチップメモリ103は、プロセッサ101上で動作するプログラムが利用する作業領域であるとともに、プロセッサ101上で動作する様々なプログラム等を格納する領域とする。
第1のデバイスコントローラ106は、オンチップバス120及び第1のアドレス変換装置105を介してプロセッサ101又はDSP102から第1のデバイス140に対するアクセス要求を受け付け、当該アクセス要求に対応する制御信号を第1のデバイス140へ送出する。また、第1のデバイスコントローラ106は、第1のデバイス140に設定されたアドレス範囲以外のアドレスを示したアクセス要求を受け付けた場合、アクセスを無視する。これにより、後述する第1のアドレス変換装置105でアクセス先アドレスが変換されている場合、第1のデバイス140に対するアクセスが行えなくなる。
第2のデバイスコントローラ108は、制御対象となるデバイスが第2のデバイス150となり、第2のアドレス変換装置107を介してデバイス要求を受け付けることを除けば、第1のデバイスコントローラ106と同様の処理を行うため説明を省略する。
アクセス制御情報管理装置104は、制御情報記憶装置110と、出力情報選択装置111と、制御信号出力装置112と、変更部115とを備え、バスマスタ(例えばプロセッサ101、DSP102)がデバイス(例えば第1デバイス140、第2のデバイス150)に対してアクセス可能であるか否かを示すアクセス制御情報を管理し、アクセス要求に応じてアクセス制御情報を出力する。
制御情報記憶装置110は、アクセス要求を出すバスマスタ毎に、コンピュータシステムでアクセス可能な各デバイスに対するアクセス許可するか否かを示すアクセス制御情報を記憶している。
図4に示すように、当該制御情報記憶装置110は、アクセス制御対象のデバイス数(行)×バスマスタ数(列)という配列構造となっている。各行が各デバイスの全バスマスタに対するアクセス制御情報に相当し、各列が各バスマスタの全デバイスに対するアクセス制御情報に相当している。このように、アクセス制御情報は、バスマスタIDで示されたバスマスタが、デバイスIDで示されたデバイスにアクセス可能であるか否かを“0”か“1”かのフラグとして管理されている。そして、このアクセス制御情報が“1”であればアクセス可能であり、“0”であればアクセス不可能であることを示している。
つまり、図4では、バスマスタID=“0”であるプロセッサ101からは、デバイスID=“0”の第1のデバイス140にはアクセス不可であり、デバイスID=“1”の第2のデバイス150はアクセス可能であることを示している。また、バスマスタID=“1”であるDSP102からは、デバイスID=“0”の第1のデバイス140にはアクセス不可であり、デバイスID=“1”の第2のデバイス150はアクセス可能であることを示している。
図1に戻り、変更部115は、アクセス制御情報を、バスマスタからの要求に応じて変更する。また、変更部115による変更は、ハイパーバイザなどの信頼性の高いソフトウェアや装置から要求を受け付けた場合に限り行われることとする。本実施の形態では、変更部115は、プロセッサ101上で動作するプログラムからの要求に限り、アクセス制御情報を変更する。
また、変更部115において、オンチップバス120から取得したアクセス制御情報の書込先(制御情報記憶装置110の所定の列)の決定は、オンチップバス120とは別の専用の信号線を使用してハイパーバイザが指定したり、オンチップバス120に流れる書き込み先アドレスから計算することが考えられる。なお、詳細な処理手順については後述する。
出力情報選択装置111は、検出部113と、取得部114とを備え、オンチップバス120上に流れるバスマスタIDが変化に応じて、制御情報記憶装置110から当該バスマスタIDに適したアクセス制御情報を選択し、制御信号出力装置112に出力する。
検出部113は、バスマスタによるデバイスに対するアクセス要求をオンチップバス120から検出する。また、検出部113は、アクセス要求を行ったバスマスタを識別するバスマスタIDを、オンチップバス120から検出する。
取得部114は、検出部113がアクセス要求を検出した場合に、検出したバスマスタIDに対応するアクセス制御情報を、制御情報記憶装置110から取得する。そして、取得部114は、取得したアクセス制御情報を、制御信号出力装置112に出力する。
制御信号出力装置112は、出力情報選択装置111から入力されたアクセス制御情報の各ビットを、アドレス変換装置(第1のアドレス変換装置105、第2のアドレス変換装置107)毎のアクセス制御情報として、各アドレス変換装置に接続している信号線に送出する。これにより、制御情報記憶装置110に記憶されているアクセス制御情報がそれぞれのアドレス変換装置に送信されることになる。
第1のアドレス変換装置105は、第1のデバイスコントローラ106とオンチップバス120との間に設置されるものとする。そして、第1のアドレス変換装置105は、図示しないビット計算装置を備え、当該ビット計算装置で入力されたアクセス制御情報でアクセス先アドレスのフィルタリングを行う。つまり、ビット計算装置がフィルタとして機能する。これにより、第1のアドレス変換装置105は、必要に応じて第1のデバイス140のアクセス先アドレスを変換できる。
第2のアドレス変換装置107は、第2のデバイスコントローラ108とオンチップバス120との間に設置されるものとする。そして、第2のアドレス変換装置107は、図示しないビット計算装置を備え、当該ビット計算装置で入力されたアクセス制御情報でアクセス先アドレスのフィルタリングを行う。これにより、第2のアドレス変換装置107は、必要に応じて第2のデバイス150のアクセス先アドレスを変換できる。
次に、図1に示すコンピュータシステムのバスマスタから第1のデバイス140に対するアクセス制御の例の処理手順について、図5を用いて説明する。
まず、プロセッサ101上で動作しているハイパーバイザは、次に第1のゲストOSを呼び出すことを決定すると、第1のゲストOS用のアクセス制御情報の設定を、制御情報記憶装置110に出力する(ステップS501)。そして、変更部115は、当該アクセス制御情報の設定要求を受け付けると、制御情報記憶装置110の配列のうち、バスマスタID=“0”(プロセッサ101に対応する)の列を、第1のゲストOSに適したアクセス制御情報に変更する。これにより制御情報記憶装置110は、図4に示すような配列が設定されたものとする。
つまり、図4に示す配列の、バスマスタID=“0”の列において、第1のデバイス140(デバイスID=“0”)に対するアクセスが不許可(フラグ値が“0”)にされ、第2のデバイス150(デバイスID=“1”)に対するアクセスが許可(フラグ値が“1”)されたものとする。
その後、ハイパーバイザは第1のゲストOSをディスパッチし、プロセッサ101上で第1のゲストOSが動作を開始する(ステップS502)。
ここで、第1のゲストOSが、悪意又は不具合等によって、本来アクセスできない第1のデバイス140に対するアクセス要求をオンチップバス120に出力したものとする(ステップS503、ステップS504)。
そして、出力情報選択装置111の検出部113は、アクセス要求を行ったバスマスタIDを、オンチップバス120から検出する。本処理手順では検出部113は、バスマスタID=“0”を検出する。
そこで、出力情報選択装置111の取得部114は、バスマスタID=“0”のアクセス制御情報を、制御情報記憶装置110から取得する(ステップS505)。そして、取得部114は、取得したアクセス制御情報を制御信号出力装置112に出力する(ステップS506)。
次に、制御信号出力装置112は、入力されたアクセス制御情報の各ビットを、第1のアドレス変換装置105及び第2のアドレス変換装置107にそれぞれ出力する(ステップS507)。
図6に示すように、検出部113が、オンチップバス120から、バスマスタID=“0”を検出した場合、取得部114がバスマスタID=“0”に対応する列情報“0、1”を取得して、制御信号出力装置112に出力する。そして、制御信号出力装置112は、入力された列情報“0、1”のうち“0”を第1のアドレス変換装置105に出力し、“1”を第2のアドレス変換装置107に出力している。
図6に示したアクセス制御情報の出力処理は、特定のクロックに同期せず、オンチップバス120に流れるバスマスタIDの変化に追随して行われる。つまり、特定のクロックと非同期に行われる。
図5に戻り、ステップS507で示したアクセス制御信号の出力処理は、ステップS504で示したプロセッサ101からのアクセス要求を第1のアドレス変換装置105が受信する前に完了する必要がある。これは、プロセッサ101、DSP102及びオンチップバス120においてアクセス要求を行う際、何ら特別な処理を行わない本実施の形態にかかるコンピュータシステムでは、アクセス制御信号を伝播させるための新たなクロックサイクルの余裕がない可能性があるからである。このために、図6に示したアクセス制御情報の出力処理は非同期に行われることとした。なお、オンチップバス120がアクセスを開始するまでに十分なクロックサイクルの余裕がある場合、例えばバスの動作クロックに同期させるなど、他の特定のクロックと同期させても良い。
第1のアドレス変換装置105が、入力されたアクセス制御情報“0”を用いて、アクセス要求に含まれているアクセス先アドレスの最上位ビットのフィルタリングを行う(ステップS508)。
図7に示すように、第1のアドレス変換装置105はビット計算装置701を備えている。そして、第1のアドレス変換装置105は、オンチップバス120からアクセス先アドレスを取得し、ビット計算装置701が、制御信号出力装置112から入力されたアクセス制御情報(“0”又は“1”)と、取得したアクセス先アドレスの最上位ビット702とのビット計算を行う。
そして、第1のアドレス変換装置105は、ビット計算結果を最上位ビット703とし、この最上位ビットと残りのビット列とを結合して、アクセス先アドレスとして第1のデバイスコントローラ106に出力する。
この図7に示すビット計算装置701は、2入力1出力のANDゲートとする。そして、第1のアドレス変換装置105では、アクセス先アドレス及び計算済アドレスの操作のために一旦保持するためのレジスタを用意しても良いし、またレジスタを設けずに直接信号線で接続する構成としても良い。
第1のアドレス変換装置105がオンチップバス120に流れるアクセス先アドレスの最上位ビットをビット演算の対象としたのは次のような理由による。通常、デバイスコントローラは、オンチップバスに流れるアクセス要求が、制御対象であるデバイスに対するものであるか否かを、アクセス先アドレスで判断している。つまり、デバイスコントローラは、入力されたアクセス先アドレスが、コンピュータシステムの物理アドレス空間上で、制御対象としているデバイスに設定されたアドレス範囲にあれば、当該アクセス要求を処理し、当該アドレス範囲に含まれていなければ無視している。
そこで、本実施の形態にかかる第1のアドレス変換装置105はこの性質を利用することとした。つまり、実際にオンチップバス120に流れているアクセス先アドレスが、制御対象としているデバイスに設定されたアドレス範囲に含まれていたとしても、アクセス制御信号がアクセス許可されていないことを示している場合、第1のデバイスコントローラ106に出力するアクセス先アドレスを変換する。これにより、デバイスコントローラは、入力されたアクセス要求が、制御対象としているデバイスへのアクセスではないと判断させることで、アクセス制御を実現する。
本実施形態においては、図2に示すように各デバイスに対して設定されたアドレス範囲は、最上位ビットが“1”である。そこで、第1のアドレス変換装置107では、アクセス許可がされていない場合に、最上位ビットが“0”になるようビット演算が行われるものとした。
なお、上述した説明では第1のアドレス変換装置105について説明したが、第2のアドレス変換装置107も同様の処理を行っている。
そして、本処理手順のステップS508では、入力されたアクセス制御情報が“0”であるので、ビット計算装置701が、アクセス先アドレス“0xA……”の最上位ビット“1”とアクセス制御情報“0”とから、演算結果として“0”を算出する。これにより、アクセス先アドレスは“0x2……0”となり、第1のデバイス140に設定されたアドレス範囲外となる。
この結果、計算済アドレスを受け取った第1のデバイスコントローラ106は、当該アクセス要求を、第1のデバイス140に対するものではないと判断して動作しない。以上により、第1のデバイス140に対するアクセスは行われない。このように、アクセス許可がない場合にアクセスを失敗させることで、アクセス制御が実現できる。
次に、プロセッサ101では、第1のゲストOSから再びハイパーバイザに制御が戻される(ステップS509)。次に、ハイパーバイザが第2のゲストOSを動作させることと判断したとする。
そこで、ハイパーバイザは、第2のゲストOS用の、プロセッサは第1のデバイスにはアクセス許可、第2のデバイスアクセス不許可というアクセス制御情報の設定要求を、制御情報記憶装置110に出力する(ステップS510)。
つまりこの設定要求は、バスマスタID=“0”の列に、デバイスID=“0”のアクセス制御情報として“1”を、デバイスID=“1”のアクセス制御情報には“0”を設定する要求である。
図8の符号801に示すように、バスマスタID=“0”の列では、デバイスID=“0”のアクセス制御情報には“0”が、デバイスID=“1”のアクセス制御情報には“1”が、第1のゲストOS用に設定されている。
そして、変更部115が、バスマスタID=“0”の列を符号802に示すように変更する。なお、ステップS501及びステップS510で示したアクセス制御情報の変更処理は、上述したアクセス制御情報出力処理とは異なり、特定のクロックに同期して行うこととする。
そして、図8の符号802に示すように、変更部115が、バスマスタID=“0”の列のデバイスID=“0”のアクセス制御情報には“1”に、デバイスID=“1”のアクセス制御情報に“0”に変更する。
その後、ハイパーバイザは第2のゲストOSをディスパッチし、プロセッサ101上で第2のゲストOSが動作を開始する(ステップS511)。
ここで、第2のゲストOSが、第1のデバイス140に対するアクセス要求をオンチップバス120に出力する(ステップS512、ステップS513)。
そして、出力情報選択装置111の検出部113は、アクセス要求を行ったバスマスタを識別するバスマスタIDを、オンチップバス120から検出する。本処理手順では検出部113は、バスマスタID=“0”を検出する。
そこで、出力情報選択装置111の取得部114は、バスマスタID=“0”のアクセス制御情報を、制御情報記憶装置110から取得する(ステップS514)。そして、取得部114は、取得したアクセス制御情報を制御信号出力装置112に出力する(ステップS515)。
次に、制御信号出力装置112は、入力されたアクセス制御情報の各ビットを、第1のアドレス変換装置105及び第2のアドレス変換装置107にそれぞれ出力する(ステップS516)。
図9に示すように、検出部113が、オンチップバス120から、バスマスタID=“0”を検出した場合、取得部114がバスマスタID=“0”に対応するアクセス制御情報 “1、0”を取得して、制御信号出力装置112に出力する。そして、制御信号出力装置112は、入力されたアクセス制御情報“1、0”のうち“1”を第1のアドレス変換装置105に出力し、“0”を第2のアドレス変換装置107に出力している。
図5に戻り、第1のアドレス変換装置105が、入力されたアクセス制御情報“1”を用いて、アクセス要求に含まれているアクセス先アドレスの最上位ビットのフィルタリングを行う(ステップS517)。
図7に示すように、第1のアドレス変換装置105にアクセス制御情報“1”が入力された場合、ビット計算装置701がアクセス先アドレス“0xA……”の最上位ビット“1”と当該アクセス制御情報“1”とをビット演算する。このビット計算装置701はANDゲートであるから、当該ビット演算の演算結果は“1”となる。この結果、計算済アドレスは、最上位ビットが変更されず、入力されたアクセス先アドレスと同じものになる。
図5に戻り、この結果、第1のデバイスコントローラ106は、計算済アドレスを受け取った場合、第1のデバイス140へのアクセスだと判断して、第1のデバイス140に対してアクセスする(ステップS518)。つまり、アクセスが許可されたことになる。
次に、プロセッサ101の動作とは関係なく動作しているDSP102が、当該DSP102に組み込まれた専用ソフトウェアによる悪意又は専用ソフトウェアの不具合等により、本来アクセスが許可されていない第1のデバイス140に対してアクセス要求をオンチップバス120に出したものとする(ステップS519、ステップS520)。
そして、出力情報選択装置111の検出部113は、オンチップバス120に流れるバスマスタIDを検出する。本処理手順では検出部113は、バスマスタID=“1”を検出する。
そこで、出力情報選択装置111の取得部114は、バスマスタID=“1”に対応するアクセス制御情報を、制御情報記憶装置110から取得する(ステップS521)。そして、取得部114は、取得したアクセス制御情報を制御信号出力装置112に出力する(ステップS522)。
すると、制御信号出力装置112、入力されたアクセス制御情報を、第1のアドレス変換装置105及び第2のアドレス変換装置107にそれぞれ出力する(ステップS523)。
図10に示すように、検出部113が、オンチップバス120から、バスマスタID=“1”を検出した場合、取得部114がバスマスタID=“1”に対応するアクセス制御情報 “0、1”を取得して、制御信号出力装置112に出力する。そして、制御信号出力装置112は、入力されたアクセス制御情報“0、1”のうち“0”を第1のアドレス変換装置105に出力し、“1”を第2のアドレス変換装置107に出力している。
図5に戻り、第1のアドレス変換装置105が、入力されたアクセス制御情報“0”を用いて、アクセス要求に含まれているアクセス先アドレスの最上位ビットのフィルタリングを行う(ステップS524)。
図7に示すように、第1アドレス変換装置105にアクセス制御情報“0”が入力された場合、ビット計算装置701が、アクセス先アドレス“0xA……”の最上位ビット“1”とアクセス制御情報“0”とから、演算結果として“0”を算出する。そして、第1のアドレス変換装置105は、元のアクセス先アドレスとは異なる計算済アドレスを、第1のデバイスコントローラ106に対して出力する。これにより、第1のデバイスコントローラ106は、当該アクセス要求を、第1のデバイス140に対するものではないと判断して動作しない。これにより、アクセス要求は失敗する。
上述した処理手順により、アクセス制御情報管理装置104と、第1のアドレス変換装置105および第2のアドレス変換装置107とによる処理で、プロセッサ101及びDSP102のような各バスマスタについてデバイスに対するアクセスを制御できる。
また、上述した実施形態にかかるコンピュータシステムで示したプロセッサ、DSP、デバイス及びオンチップメモリ等の数は、それぞれ説明を簡潔にするために示した個数の例であり、これら構成についてどのような個数を設置しても良い。
また、上述した実施形態では、アクセス制御情報を1ビットとした。しかしながら、アクセス制御情報は、1ビットに制限するものではない。また、アクセス先アドレスに対して、フィルタリングの対象とするビットを、最上位1ビットに制限するものではなく、最上位から2ビット使用しても良いし、最上位から2ビット目など、その他のビットを使用しても良い。
さらに、本実施の形態にかかるコンピュータシステムでは、システムLSI又はSoC上に設置された、仮想化支援機能が実装されていないプロセッサ上で、複数のゲストOSを動作させる場合でも、ハイパーバイザと、アクセス制御情報管理装置104と、第1のアドレス変換装置105と、第2のアドレス変換装置107との連携により、ゲストOS毎に各デバイスへのアクセス制御が可能となり、セキュリティを向上させることができる。
また、システムLSI又はSoC上に設置されたプロセッサのみならず、DSPやDMAコントローラなど、システムLSIに混載されたバスマスタとなりうる全ての装置からデバイスへのアクセスを制御でき、セキュリティを向上させることができる。
また、本実施の形態にかかるコンピュータシステムでは、プロセッサ等に変更を加えることなく、SoC100の内部にアクセス制御情報管理装置104と、アドレス変換装置(第1のアドレス変換装置105と、第2のアドレス変換装置107)という少ない構成を追加するだけで、上述したアクセス制御が可能なので、簡潔で強力なアクセス制御機構が構築できる。
また、上述した各実施の形態に限定されるものではなく、以下に例示するような種々の変形が可能である。
(第1の実施の形態にかかる変形例1)
第1の実施の形態では、制御信号出力装置がそれぞれのアドレス変換装置毎に異なるアクセス制御情報を出力する例について説明した。しかしながら、このような出力手法に制限するものではない。そこで第1の実施の形態の変形例1では、制御信号出力装置とアドレス変換装置とをバス接続した例について説明する。
図11に示すように第1の実施の形態の変形例1にかかるコンピュータシステムではSoC1100の制御信号出力装置1111と第1のアドレス変換装置1102と第2のアドレス変換装置1103とをバス接続されている。
図11に示した本変形例にかかるSoC1100は、上述した第1の実施の形態に係るSoC100とは、アクセス制御情報管理装置104と処理が異なるアクセス制御情報管理装置1101を備え、第1のアドレス変換装置105と処理が異なる第1のアドレス変換装置1102を備え、第2のアドレス変換装置107と処理が異なる第2のアドレス変換装置1103を備えた点のみ異なる。なお、本実施の形態のSoC1100の構成で、第1の実施の形態のSoC100と共通な構成については説明を省略する。
アクセス制御情報管理装置1101は、制御信号出力装置112と処理が異なる制御信号出力装置1111を備えた点のみ異なる。図12に示すように、まずは第1の実施の形態と同様に、検出部113が、オンチップバス120から、バスマスタID=“1”を検出した場合、取得部114がバスマスタID=“1”に対応するアクセス制御情報“0、1”を取得して、制御信号出力装置1111に出力する。そして、本変形例の特徴としては制御信号出力装置1111が、入力されたアクセス制御情報“0、1”を、第1のアドレス変換装置1102と第2のアドレス変換装置1103とが接続されたバスに出力する。
図11に戻り、第1のアドレス変換装置1102は、第1の実施の形態の第1のアドレス変換装置105と同様の機能の他、さらに選択部1121を備えている。
選択部1121は、バスを流れるアクセス制御情報から第1のアドレス変換装置1102に適したアクセス制御情報のみを選択する。例えば、図12に示す処理結果としてバスに流れたアクセス制御情報“0、1”を第1のアドレス変換装置1102が受信した場合、選択部1121は、当該アクセス制御情報“0、1”から、第1のアドレス変換装置1102のアクセス制御情報に該当する“0”を選択する。そして、第1のアドレス変換装置1102は、選択された“0”を用いて第1の実施の形態の第1のアドレス変換装置105と同様のフィルタリング処理を行うこととする。
第2のアドレス変換装置1103は、第1の実施の形態の第2のアドレス変換装置107と同様の機能の他、さらに選択部1122を備えている。
選択部1122は、バスを流れるアクセス制御情報から第2のアドレス変換装置1103に適したアクセス制御情報のみを選択する。例えば、図12に示す処理結果としてバスに流れたアクセス制御情報“0、1”を第2のアドレス変換装置1103が受信した場合、選択部1122は、当該アクセス制御情報“0、1”から、第1のアドレス変換装置1102のアクセス制御情報に該当する“1”を選択する。そして、第1のアドレス変換装置1102は、選択された“1”を用いて第1の実施の形態の第1のアドレス変換装置105と同様のフィルタリング処理を行うこととする。
また、上述した第1の実施形態及び第2の実施形態は、制御信号出力装置からのアクセス制御情報の出力手法の例を示したものであり、上述した例以外にも、制御信号出力装置とアドレス変換装置との接続手法にあわせて適切な手法でアクセス制御情報を出力してもよい。
(第1の実施の形態にかかる変形例2)
第1の実施の形態では、アドレス変換装置ではビット計算装置としてANDゲートを用いた。しかしながら、ビット計算装置をANDゲートに制限するものではない。そこで第1の実施の形態の変形例2では、アドレス変換装置が備えるビット計算装置にNORゲートを用いた例について説明する。
図13に示すように、物理アドレス空間のうち、第1のデバイス140にアクセスするためのアドレス範囲として0x03000000〜0x030000FFの256バイトの空間が、第2のデバイス150にアクセスするためのアドレス範囲として0x06000000〜0x060000FFの256バイトの空間が設定されている。つまり、第1のデバイス140及び第2のデバイス150にアクセスするためのアドレス範囲は最上位ビットが“0”となる領域に設定されている。
図14に示すように、第1のアドレス変換装置1401はビット計算装置1402を備えている。そして、本変形例にかかるビット計算装置1402は、NORゲートとする。なお、他の構成については第1の実施の形態と同様として説明を省略する。
そして、本変形例では、制御情報記憶装置110が保持するアクセス制御情報は、第1の実施の形態と同様に、“0”がアクセス許可されていないことを示し、“1”がアクセス許可されていることを示している。
そして、本変形例にかかるビット計算装置1402は、2つの入力が共に“0”の場合に限り、“1”を出力する。つまり、第1のアドレス変換装置1401は、アクセス先アドレスの最上位ビット“0”と、アクセス制御情報“0”との場合に、計算済アドレスの最上位ビットとして“1”を出力するので、第1のデバイス140にアクセスすることができなくなる。また、第1のアドレス変換装置1401は、アクセス先アドレスの最上位ビット“0”と、アクセス制御情報“1”との場合に、計算済アドレスの最上位ビットとして“0”を出力するので、第1のデバイス140に対するアクセスが許可される。
(第1の実施の形態にかかる変形例3)
また、ビット計算装置は、上述したANDゲート又はNORゲート以外を用いても良い。そこで第1の実施の形態の変形例3では、アドレス変換装置が備えるビット計算装置に、これら以外のゲートを用いた例について説明する。
図15に示すように、第1のアドレス変換装置1501はビット計算装置1502を備えている。
また、本変形例では、制御情報記憶装置110が保持するアクセス制御情報は、第1の実施の形態と異なり、“0”がアクセス許可されていることを示し、“1”がアクセス許可されていないことを示している。また、コンピュータシステムの物理アドレス空間は、第1の実施の形態と同様の範囲が、第1のデバイス140及び第2のデバイス150に割り当てられているものとする。
そして、第1のアドレス変換装置1501は、アクセス先アドレスの最上位ビット“1”と、アクセス制御情報“0”との場合に、計算済アドレスの最上位ビットとして“1”を出力するので、第1のデバイス140にアクセス可能となる。また、第1のアドレス変換装置1501は、アクセス先アドレスの最上位ビット“1”と、アクセス制御情報“1”との場合に、計算済アドレスの最上位ビットとして“0”を出力するので、第1のデバイス140に対してアクセスすることができない。
上述した変形例2及び変形例3に示したように、アクセス制御情報の設定、及びデバイス毎に割り当てられたアドレス範囲に応じて、任意のビット計算装置を用いることができる。
(第2の実施の形態)
第1の実施の形態では、アクセス制御情報管理装置をSoC内に一個設置して、コンピュータシステムが備える全デバイスのアクセス制御情報を一括して管理する例について説明した。しかしながら、このようにアクセス制御情報管理装置を一個のみ設置することに制限するものではない。そこで第2の実施の形態ではアクセス制御情報管理装置を、コンピュータシステムが備えるデバイス毎に設置した例について説明する。
図16に示すように、第2の実施の形態にかかるコンピュータシステムは、上述した第1の実施の形態に係るコンピュータシステムとは、アクセス制御情報を一括管理していたアクセス制御情報管理装置104が削除され、デバイス毎にアクセス制御情報を管理する第1のアクセス制御情報管理装置1601及び第2のアクセス制御情報管理装置1602が追加された点のみ異なる。なお、本実施の形態のコンピュータシステムの構成で、第1の実施の形態のコンピュータシステムと共通な構成については説明を省略する。
第1のアクセス制御情報管理装置1601は、制御情報記憶装置1611と、出力情報選択装置1612と、変更部1615とを備え、各バスマスタ(プロセッサ101、DSP102)が第1のデバイス140にアクセス可能であるか否かを示すアクセス制御情報を管理し、アクセス要求に応じてアクセス制御情報を出力する。
制御情報記憶装置1611は、アクセス要求を出すバスマスタ毎に、第1のデバイス140に対するアクセス制御の設定を記憶している。
図17に示すように、制御情報記憶装置1611は、バスマスタID毎に、第1のデバイス140に対するアクセス制御情報を保持している。そして、このアクセス制御情報が“1”であればアクセス可能であり、“0”であればアクセス不可能であることを示している。
つまり、第1の実施の形態の制御情報記憶装置110は、デバイス数×バスマスタ数の配列だったのに対し、本実施の形態にかかる制御情報記憶装置1611は、単一デバイスに対するアクセス制御情報のみを保持すればよい。このため、制御情報記憶装置1611は、バスマスタ数のビットが保持できるレジスタで構成が可能になる。次に、アクセス制御情報の変更処理について説明する。
まず、図18の符号1801に示すように、バスマスタID=“0”に対応するアクセス制御情報には“0”が、バスマスタID=“1”に対応するアクセス制御情報には“1”が、予め設定されているとする。
図18に示すように、変更部1615は、プロセッサ101上で動作するハイパーバイザから各バスマスタ用にアクセス制御情報の受け付け、制御情報記憶装置1611が保持しているアクセス制御情報の変更を行う。図18の符号1802に示すように、当該変更によりバスマスタID=“0”に対応するアクセス制御情報には“1”が、バスマスタID=“1”に対応するアクセス制御情報には“0”が設定される。このように、ハイパーバイザからの指示により各デバイスのアクセス制御を制限することができる。
図16に戻り、出力情報選択装置1612は、検出部113と、取得部1614とを備え、オンチップバス120上に流れるバスマスタIDの変化に応じて、制御情報記憶装置1611から当該バスマスタIDに適したアクセス制御情報を選択し、第1のアドレス変換装置105に出力する。
取得部1614は、検出部113がアクセス要求を検出した場合に、検出したバスマスタIDに対応するアクセス制御情報を、制御情報記憶装置1611のレジスタから取得する。そして、取得部1614は、取得したアクセス制御情報を、第1のアドレス変換装置105に出力する。
図19に示すように、検出部113が、オンチップバス120から、バスマスタID=“1”を検出した場合、取得部1614がバスマスタID=“1”に対応するアクセス制御情報“1”を取得して、第1のアドレス変換装置105に出力する。これにより、第1のアドレス変換装置105は、入力されたアクセス制御情報を用いてアクセス先アドレスのフィルタリングを行うことができる。
第2のアクセス制御情報管理装置1602は、制御情報記憶装置1621と、出力情報選択装置1622とを備え、各バスマスタ(プロセッサ101、DSP102)が第2のデバイス150にアクセス可能であるか否かを示すアクセス制御情報を管理し、アクセス要求に応じてアクセス制御情報を出力する。
制御情報記憶装置1621は、アクセス要求を出すバスマスタ毎に、第2のデバイス150に対するアクセス制御情報を記憶している。また、制御情報記憶装置1621は、アクセス制御情報をレジスタ内で保持している。また、制御情報記憶装置1621は、上述した制御情報記憶装置1611とは、制御対象となるデバイスが異なるのみであり、説明を省略する。
出力情報選択装置1622は、検出部123と、取得部1624とを備え、オンチップバス120上に流れるバスマスタIDが変化に応じて、制御情報記憶装置1621から当該バスマスタIDに適したアクセス制御情報を選択し、第2のアドレス変換装置107に出力する。また、出力情報選択装置1622は、上述した出力情報選択装置1612とは、制御対象となるデバイスが異なるのみであり、説明を省略する。
また、本実施の形態にかかるアクセス制御情報管理装置(第1のアクセス制御情報管理装置1601及び第2のアクセス制御情報管理装置1602)では、出力情報選択装置がアクセス制御情報を選択した時点で、アクセス制御情報が1ビットとなっている。このため、第1実施の形態のように制御信号出力装置112を備えている必要はない。
第2の実施の形態にかかるコンピュータシステムでは、上述した構成を備えることで、各制御情報記憶装置と、アドレス変換装置との距離を短くすることできる。このため、アクセス制御するための信号を、アドレス変換装置が迅速に受信できる。これにより、デバイスを迅速に制御する必要があるコンピュータシステムにおいて有用である。
(第2の実施の形態にかかる変形例1)
第2の実施の形態では、コンピュータシステムにおいてデバイス毎にアクセス制御情報管理装置を設置する例について説明した。しかしながら、全てのデバイス毎にアクセス制御情報管理装置を設置するのではなく、複数のデバイスを一括管理するアクセス制御情報管理装置と1つのデバイスを管理するアクセス制御情報管理装置とを混載させても良い。そこで、第2の実施の形態の変形例1では、複数のデバイスを一括管理するアクセス制御情報管理装置と1つのデバイスを管理するアクセス制御情報管理装置とを混載させた例について説明する。
図20に示すように第2の実施の形態の変形例1にかかるコンピュータシステムではSoC2000が、第1のデバイス140と第2のデバイス150とのアクセス制御情報を一括管理するアクセス制御情報管理装置104と、第3のデバイス2050のアクセス制御情報を管理する第3デバイス用アクセス制御情報管理装置2001とを備えている。
アクセス制御情報管理装置104と、第1のアドレス変換装置105と、第1のデバイスコントローラ106と、第2のアドレス変換装置107と、第2のデバイスコントローラ108とは、第1のデバイス140と、第2のデバイス150とのアクセス制御するために第1の実施の形態と同様の処理を行うこととして、説明を省略する。
また、第3デバイス用アクセス制御情報管理装置2001と、第3のアドレス変換装置2002と、第3のデバイスコントローラ2003とは、第3のデバイス2050のアクセス制御をするために第2の実施の形態と同様の処理を行う。
つまり、第3デバイス用アクセス制御情報管理装置2001が備える制御情報記憶装置2010と、出力情報選択装置2011とは、第2の実施の形態の制御情報記憶装置1611と出力情報選択装置1612と同様の構成を備えているものとする。なお、当該構成で行われる処理については、第2の実施形態と同様なので説明を省略する。
本変形例で示したように、この実施例にかかるコンピュータシステムでは、第1のデバイス140及び第2のデバイス150に対しては第1の実施の形態のように集中管理型のアクセス制御情報管理装置104を用い、第3のデバイス2050に対しては第2の実施の形態のように分散型の第3デバイス用アクセス制御情報管理装置2001を用いている。
また、本変形例にかかるコンピュータシステムでは、ハイパーバイザによるアクセス制御情報の設定の際、第1のデバイス140、第2のデバイス150に対するアクセス制御情報はアクセス制御情報管理装置104に、第3のデバイス2050に対するアクセス制御情報は第3デバイス用アクセス制御情報管理装置2001に行われるように、例えばコンピュータシステムの物理アドレス空間におけるアドレス範囲の設定等を行う必要がある。
本変形例で示したコンピュータシステムの構成は、例えば、第3のデバイス2050に対してはアクセス制御用の制御信号が伝播する距離をできるだけ短くしたい場合などに有用である。
(第2の実施の形態にかかる変形例2)
上述した第1〜第2の実施の形態にかかるコンピュータシステムでは、アクセス制御情報管理装置とアドレス変換装置とを別構成とした。しかしながら、上述した実施の形態は、このような構成に制限するものではなく、例えばアクセス制御情報管理装置にアドレス変換装置を含めてもよい。そこで本変形例では、アドレス変換装置を含めたアクセス制御情報管理装置を設置した例について説明する。
図21に示すように、本変形例にかかるコンピュータシステムは、第1のアドレス変換装置105が第1のアクセス制御情報管理装置2103に含まれ、第2のアドレス変換装置107が第2のアクセス制御情報管理装置2104に含まれた点のみ異なる。なお、本実施の形態のコンピュータシステムの構成で、第2の実施の形態のコンピュータシステムと共通な構成については説明を省略する。
また、このような構成を備えるコンピュータシステムでは、アクセス制御の方式は第2の実施の形態と同様なので説明を省略する。
本変形例にかかるコンピュータシステムでは、アクセス制御用の制御信号が伝播する距離をさらに短くすることができる。さらに、当該アクセス制御情報管理装置の内部構造の隠蔽度が上昇する。また、アクセスを制限する処理がアクセス制御情報管理装置のみで行えることになる。これにより、実際にシステムLSIを構築する際にこのモジュールのみを付加すれば、アクセス制御を実現できるので、より簡潔で強力なアクセス制御機構が構築できる。
(変形例)
また、上述した各実施の形態及び各実施の形態の変形例に限定されるものではなく、以下に例示するような種々の変形が可能である。
(変形例1)
上述した実施の形態及び変形例にかかるコンピュータシステムでは、アクセス制御情報管理装置が、2個のバスマスタと、1〜2のデバイスとの間でアクセス制御を行う例について説明した。しかしながら、アクセス制御情報管理装置が制御可能なバスマスタの数及びデバイスの数を制限するものではない。そこで本変形例ではN個のバスマスタとM個のデバイスとの間でアクセス制御を行うアクセス制御情報管理装置の例について説明する。
図22に示すようにアクセス制御情報管理装置2200は、制御情報記憶装置2201と、出力情報選択装置2202と、制御信号出力装置2203と、変更部2204と、を備えている。図22に示したアクセス制御情報管理装置2200は、N個のバスマスタと、M個のデバイスとの間のアクセス制御情報を管理している。
つまり、制御情報記憶装置2201は、バスマスタN列とデバイスM行からなる配列構造で、アクセス制御情報を管理している。そして、検出部2210はオンチップバス2220を流れる“0”〜“N−1”までのバスマスタIDの検出を行う。そして、取得部2211は、検出したバスマスタIDに対応するアクセス制御情報の列を取得して、制御信号出力装置2203に出力する。
そして、制御信号出力装置2203は、入力されたアクセス制御情報の列の各ビットを、第1〜第Mのアドレス変換装置のそれぞれに出力する。本変形例に示すように、制御情報記憶装置がN列(バスマスタ数)×M行(デバイス数)の配列構造を備えることで、上述した数のバスマスタ及びデバイス間のアクセス制御を行うことができる。
また本変形例にかかるコンピュータシステムにおいて、変更部2204は、例えばハイパーバイザからバスマスタID=3である装置用のアクセス制御情報の設定要求と共にアクセス制御情報の設定を受け取ると、制御情報記憶装置2201が保持する配列のうち、バスマスタID=3に相当する列を、受け取った設定で変更する。
本変形例に示すようにコンピュータシステムに設置可能なバスマスタの数、及び接続可能なデバイス数は制限されるものではなく、任意の数を設置又は接続することができる。また、ハイパーバイザからの設定要求により、各バスマスタが任意のデバイスにアクセス可能であるか否かを変更することができる。
第1の実施の形態にかかるコンピュータシステムの構成を示すブロック図である。 第1の実施の形態にかかるコンピュータシステムの物理アドレス空間の設定の例を示した模式図である。 第1の実施の形態にかかるコンピュータシステムのプロセッサ上で動作するソフトウェア構成を示した図である。 第1の実施の形態にかかるコンピュータシステムの制御情報記憶装置の配列構造の例を示した図である。 第1の実施の形態にかかるコンピュータシステムのバスマスタから第1のデバイスに対するアクセス制御の例の処理手順を示すフローチャートである。 第1の実施の形態にかかるコンピュータシステムのアクセス制御情報管理装置内で行われる処理を示した模式図である。 第1の実施の形態にかかるコンピュータシステムの第1のアドレス変換装置で行われる処理を示した模式図である。 第1の実施の形態にかかるコンピュータシステムの制御情報記憶装置に対するアクセス制御情報の設定を示した説明図である。 第1の実施の形態にかかるコンピュータシステムのアクセス制御情報管理装置内で行われる処理を示した模式図である。 第1の実施の形態にかかるコンピュータシステムのアクセス制御情報管理装置内で行われる処理を示した模式図である。 第1の実施の形態の変形例1にかかるコンピュータシステムの構成を示すブロック図である。 第1の実施の形態の変形例1にかかるコンピュータシステムのアクセス制御情報管理装置内で行われる処理を示した模式図である。 第1の実施の形態の変形例2にかかるコンピュータシステムの物理アドレス空間の設定の例を示した模式図である。 第1の実施の形態にかかる変形例2にかかるコンピュータシステムの第1のアドレス変換装置で行われる処理を示した模式図である。 第1の実施の形態にかかる変形例3にかかるコンピュータシステムの第1のアドレス変換装置で行われる処理を示した模式図である。 第2の実施の形態に係るコンピュータシステムの構成を示すブロック図である。 第2の実施の形態にかかるコンピュータシステムの制御情報記憶装置の配列構造の例を示した図である。 第2の実施の形態にかかるコンピュータシステムの制御情報記憶装置に対するアクセス制御情報の設定を示した説明図である。 第2の実施の形態にかかるコンピュータシステムの第1のアクセス制御情報管理装置内で行われる処理を示した模式図である。 第2の実施の形態の変形例1にかかるコンピュータシステムの構成を示すブロック図である。 第2の実施の形態の変形例2に係るコンピュータシステムの構成を示すブロック図である。 変形例1にかかるアクセス制御情報管理装置のブロック構成を示した図である。
符号の説明
100、1600 SoC
101 プロセッサ
102 DSP
103 オンチップメモリ
104、1101、2200 アクセス制御情報管理装置
105、1102、1401、1501 第1のアドレス変換装置
106 第1のデバイスコントローラ
107、1103 第2のアドレス変換装置
108 第2のデバイスコントローラ
110、1611、1621、2201 制御情報記憶装置
111、1612、1622 出力情報選択装置
112、1111、2203 制御信号出力装置
113、2210 検出部
114、1614,1624、2211 取得部
115 変更部
120、2220 オンチップバス
140 第1のデバイス
150 第2のデバイス
701 ビット計算装置
1121、1122 選択部
1402、1502 ビット計算装置
1601 第1のアクセス制御情報管理装置
1602 第2のアクセス制御情報管理装置
2001 第3デバイス用アクセス制御情報管理装置
2002 第3のアドレス変換装置
2003 第3のデバイスコントローラ
2010 制御情報記憶装置
2011、2202 出力情報選択装置
2050 第3のデバイス
2103 第1のアクセス制御情報管理装置
2104 第2のアクセス制御情報管理装置

Claims (5)

  1. デバイスに対してアクセスを行う複数のバスマスタのそれぞれに対して、前記デバイス毎にアクセス可能か否かを示すアクセス制御情報を記憶する記憶手段と、
    前記バスマスタによる前記デバイスに対するアクセス要求を検出する検出手段と、
    前記アクセス要求を検出した場合に、当該アクセス要求を出力した前記バスマスタの前記アクセス制御情報を、前記記憶手段から取得する取得手段と、
    前記取得手段が取得した前記アクセス制御情報を、当該アクセス制御情報が前記デバイスにアクセス可能であることを示していればアドレス変換を行わず、前記デバイスにアクセス可能でないことを示していればアドレス変換を行うフィルタとして用いて、前記アクセス要求のアクセス先のアドレスのアドレス変換を行うアドレス変換手段と、
    を備えることを特徴とするアクセス制御装置。
  2. 前記アクセス制御情報を変更する変更手段と、をさらに備えることを特徴とする請求項1に記載のアクセス制御装置。
  3. プロセッサを含む複数のバスマスタと、複数のバスマスタのアクセス対象となるデバイスと、を備えるコンピュータシステムにおいて、
    デバイスに対してアクセスを行う複数のバスマスタのそれぞれに対して、前記デバイス毎にアクセス可能か否かを示すアクセス制御情報を記憶する記憶手段と、
    前記バスマスタによる前記デバイスに対するアクセス要求を検出する検出手段と、
    前記アクセス要求を検出した場合に、当該アクセス要求を出力した前記バスマスタの前記アクセス制御情報を、前記記憶手段から取得する取得手段と、
    前記取得手段が取得した前記アクセス制御情報を、当該アクセス制御情報が前記デバイスにアクセス可能であることを示していればアドレス変換を行わず、前記デバイスにアクセス可能でないことを示していればアドレス変換を行うフィルタとして用いて、前記アクセス要求のアクセス先のアドレスのアドレス変換を行うアドレス変換手段と、
    を備えることを特徴とするコンピュータシステム。
  4. 前記アクセス制御情報を変更する変更手段と、をさらに備えることを特徴とする請求項3に記載のコンピュータシステム。
  5. 前記プロセッサは、アクセス可能なデバイスが異なる複数のソフトウェアを切り替えて、前記ソフトウェアを動作させ、
    前記変更手段は、前記プロセッサ上を動作するソフトウェアが切り替えられた場合に、前記プロセッサと対応付けられたアクセス制御情報を変更することを特徴とする請求項4に記載のコンピュータシステム。
JP2007087387A 2007-03-29 2007-03-29 アクセス制御装置及びコンピュータシステム Pending JP2008250386A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007087387A JP2008250386A (ja) 2007-03-29 2007-03-29 アクセス制御装置及びコンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007087387A JP2008250386A (ja) 2007-03-29 2007-03-29 アクセス制御装置及びコンピュータシステム

Publications (1)

Publication Number Publication Date
JP2008250386A true JP2008250386A (ja) 2008-10-16

Family

ID=39975306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007087387A Pending JP2008250386A (ja) 2007-03-29 2007-03-29 アクセス制御装置及びコンピュータシステム

Country Status (1)

Country Link
JP (1) JP2008250386A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011221744A (ja) * 2010-04-08 2011-11-04 Nippon Telegr & Teleph Corp <Ntt> 通信端末および通信端末の動作方法
US8312295B2 (en) 2009-01-21 2012-11-13 Sony Corporation Access key generating apparatus and information processing apparatus
WO2013035235A1 (ja) * 2011-09-08 2013-03-14 パナソニック株式会社 計算機システム、計算機システム制御方法、計算機システム制御プログラム、及び集積回路

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312295B2 (en) 2009-01-21 2012-11-13 Sony Corporation Access key generating apparatus and information processing apparatus
JP2011221744A (ja) * 2010-04-08 2011-11-04 Nippon Telegr & Teleph Corp <Ntt> 通信端末および通信端末の動作方法
WO2013035235A1 (ja) * 2011-09-08 2013-03-14 パナソニック株式会社 計算機システム、計算機システム制御方法、計算機システム制御プログラム、及び集積回路
JPWO2013035235A1 (ja) * 2011-09-08 2015-03-23 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 計算機システム、計算機システム制御方法、計算機システム制御プログラム、及び集積回路

Similar Documents

Publication Publication Date Title
TWI506559B (zh) 可動態和選擇性停用核心以及重新設定之多核心微處理器及其方法
JP4872001B2 (ja) メモリ・アクセス安全性管理
JP4249779B2 (ja) デバイス制御装置
JP5583849B2 (ja) ポート共有ハードウェアを介した記憶装置への帯域外アクセス
JP4514066B2 (ja) データ処理装置及びデータ処理装置におけるアクセス制御方法
US20170364412A1 (en) Secure live virtual machine guest based snapshot recovery
JP2018523201A (ja) ファームウェア関連イベント通知
JP2009187223A (ja) プロセッサ、電子機器、割込み制御方法及び割込み制御プログラム
JP4587756B2 (ja) 半導体集積回路装置
WO2015131446A1 (zh) 一种基于片内总线协议的安全访问控制方法和装置
US9652348B2 (en) Debugging in a data processing apparatus
JPWO2010097925A1 (ja) 情報処理装置
US10248785B2 (en) Application memory protection using a host page table switching virtual machine function
JP2008176637A (ja) 情報処理装置
JP2008250386A (ja) アクセス制御装置及びコンピュータシステム
JPWO2010032330A1 (ja) 情報処理装置及びそのメモリ保護方法
JP2007109053A (ja) バスアクセス制御装置
US10339082B2 (en) Technologies for stable secure channel identifier mapping for static and dynamic devices
JP5805546B2 (ja) 半導体装置
JP5630886B2 (ja) 半導体装置
TW200417216A (en) Control of access to a memory by a device
JP5464676B2 (ja) 半導体装置
JP2010049718A (ja) 半導体装置
CN117272412B (zh) 中断控制寄存器保护方法、装置、计算机设备及存储介质
JP2009271597A (ja) プロセッサ