JP4249779B2 - デバイス制御装置 - Google Patents

デバイス制御装置 Download PDF

Info

Publication number
JP4249779B2
JP4249779B2 JP2006348504A JP2006348504A JP4249779B2 JP 4249779 B2 JP4249779 B2 JP 4249779B2 JP 2006348504 A JP2006348504 A JP 2006348504A JP 2006348504 A JP2006348504 A JP 2006348504A JP 4249779 B2 JP4249779 B2 JP 4249779B2
Authority
JP
Japan
Prior art keywords
interrupt
processor
software
privileged
timer
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.)
Expired - Fee Related
Application number
JP2006348504A
Other languages
English (en)
Other versions
JP2008158899A (ja
Inventor
謙一郎 吉井
達徳 金井
浩 矢尾
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 JP2006348504A priority Critical patent/JP4249779B2/ja
Priority to US11/896,848 priority patent/US7730249B2/en
Publication of JP2008158899A publication Critical patent/JP2008158899A/ja
Application granted granted Critical
Publication of JP4249779B2 publication Critical patent/JP4249779B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F21/575Secure boot
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Description

この発明は、複数のソフトウェアが搭載されているデバイス制御装置に関するものである。
従来から、データベースシステムやミッションクリティカルな処理を実行するサーバマシンにおいては、その処理の重要性や内部で保持するデータの機密度などの要因から、信頼性やセキュリティが重要視されていた。しかし近年では、これら汎用計算機等に限らず、組込み機器等の様々な装置において信頼性やセキュリティを確保することが重要となっている。
一方で、近年のシステムLSIの小型化に伴い、システムLSIにプロセッサを組み込み、従来は専用の個々のハードウェアで実現されていた複数の機能を、ソフトウェアで実装する傾向がある。そして、システムLSIに組み込まれたプロセッサ上で、それら複数のソフトウェアを実行させることで、1つのシステムLSIでより多くの機能を実現させている。
この場合、従来はハードウェアで実現されていた機能であったソフトウェア群(例えばプロセッサ上で実行される暗号処理プログラムのような機密性の高いプログラムや、メディア処理のような資産性の高いプログラム)についても、個人情報などのデータと同様に流出を防ぐ必要がある。
複数のプログラムを1つのプロセッサ上で動作させる場合、ある1つのプログラムの不具合のためにその他全てのプログラムの実行が影響を受け、結果として機器全体の動作が停止するという問題がある。また、外部からのダウンロード等によりインストールされたプログラムが悪意のある不正なプログラムであった場合、秘密にしておくべき情報やプログラムが外部に漏洩したり、破壊されたり、改竄されたりする可能性があるという問題がある。
上記の問題を解決するには、各機能を実現するプログラムに割り当てられたメモリやデバイスといったリソースへのアクセスを制御する必要がある。例えば、あるプログラムに割り当てたリソースへの他のプログラムや機能からのアクセスを禁止したり、複数の機能やプログラムから共有されるリソースへのアクセスを排他制御して管理する方法等が挙げられる。さらに、アクセス制御機構やアクセス制御情報自体も自由に操作できないように保護する必要がある。
これらの保護を実現し、複数の機能を隔離して実行させることにより信頼性やセキュリティを高める手段として、計算機の仮想化技術が提案されている。この仮想化技術の実装には様々な形態が存在する。実装の例としては、ハードウェアとOS(Operating System)の間に仮想化層を設けて、当該仮想化層上に複数のOS(ゲストOS)を動作させる形態がある。この仮想化層は、一般にハイパーバイザ層と呼ばれている。このハイパーバイザ層は、リソースを管理し、個々のゲストOSに対して割り当てたリソースで構成される仮想計算機を提供する。これにより複数のゲストOSが互いに干渉せず隔離された状態での実行が実現できる。このハイパーバイザ層の機能をソフトウェアで実現する場合、当該ソフトウェアはハイパーバイザと呼ばれている。
汎用計算機に使用されるプロセッサでは、プロセッサ自体に仮想化をサポートするハードウェア機構が用意されている。例としては、非特許文献1に示したIntel(登録商標)社が提唱する技術が存在する。この技術を実装したプロセッサでは、実行中のプログラムの権限を示す特権モードを多数用意し、任意の命令の実行時に、より上位の特権モードへ移行するように設定することが可能となる。これにより、ゲストOSから共有リソースへのアクセスをハードウェアで監視し、アクセス時により上位の特権モードを付与したソフトウェアでそのアクセス内容をチェックすることが可能になる。
他の例としては、Advanced Micro Devices社が提唱する技術がある。当該技術を実装したプロセッサでは、割り込みをインターセプトする機構と、ソフトウェアから仮想割り込みを発生させる機能とが用意されている。これにより、ハイパーバイザで割り込みを一旦インターセプトした上で、その割り込みを必要とするゲストOSへの割り込みの配送を管理することができる。また、ゲストOSによるアドレス変換テーブルへのアクセスを監視する機構が用意される。これにより、ゲストOSが自由にアドレス変換テーブルを書き換えて、他のゲストOSに割り当てられたメモリ領域をアクセスすることを防ぐことができる。
"Intel(R) Virtualization Technology Specification for the IA-32 Intel(R) Architecture"、[online]、[平成17年5月31日検索]、インターネット<URL: ftp://download.intel.com/technology/computing/vptech/C97063-002.pdf>
しかしながら、サーバ計算機や汎用計算機に使用されるような高機能なプロセッサと異なり、システムLSIやSoC(System on Chip)に組み込まれて使用される機能の限られた既存のプロセッサには仮想化をサポートする機構が実装されていない。通常これらプロセッサでは、特権モードと非特権モードの2種類の特権モードしか提供されていないため、当該プロセッサで複数のゲストOSを実行した場合、各ゲストOSが最上位の特権モードで動作することになる。
このようなプロセッサにおいて、ゲストOSが最上位の特権モードで動作している場合、当該ゲストOSはプロセッサが提供するアクセス制御機構を自由に操作できる。したがって、プロセッサはデバイスから割り込み要求を通知された際に実行する命令が格納された割り込みベクタテーブルを、ゲストOSによる書き換えから保護することができず、他のゲストOSが使用しているデバイスの割り込みを無視したり、デバイスの割り込みに対して虚偽の返答を行うことで不具合を引き起こすという攻撃が可能という問題が生じる。
このことは、当該プロセッサでは、デバイスからの割り込みの配送を妨げる悪意のあるソフトウェアからの攻撃に対して、ソフトウェアのみでは対処できないことも意味する。なぜならば、当該ゲストOSがプロセッサの最上位の特権モードで動作していること及びデバイスによる割り込みがプロセッサの動作と非同期に発生することにより、プロセッサに割り込みが通知された瞬間、当該悪意のあるソフトウェアが動作していた場合、当該プロセッサでは、他のゲストOS等に制御を切り替えることができないためである。
本発明は、上記に鑑みてなされたものであって、仮想化を支援する機能が実装されていないプロセッサで複数のゲストOSを動作させた場合において安全性を向上させるデバイス制御装置を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、ソフトウェアに従って動作するプロセッサと、デバイスから前記プロセッサに対する割り込みを管理する特権ソフトウェアを記憶する記憶手段と、前記ソフトウェアを実行しているときに前記デバイスから割り込みを検出すると前記特権ソフトウェアを前記記憶手段から呼び出すOSを記憶するOS記憶手段と、前記プロセッサ上で前記OSが動作しているときに前記デバイスから前記OSへの割り込みを検出する検出手段と、前記デバイスから前記OSへの割り込みを検出してから所定の第1の時間を経過するまでに前記OSが前記特権ソフトウェアを前記記憶手段から呼び出したか否かを判断する判断手段と、前記OSが前記特権ソフトウェアを前記記憶手段から呼び出していないと前記判断手段によって判断された場合、前記プロセッサに対してリセットを行うリセット手段と、を備えることを特徴とする。
本発明によれば、デバイスからの割り込みを検出した場合に、安全な動作が実現できるという効果を奏する。
以下に添付図面を参照して、この発明にかかるデバイス制御装置の最良な実施の形態を詳細に説明する。また、後述する実施の形態においては、デバイス制御装置をシステムLSIに適用した例について説明する。なお、デバイス制御装置は、システムLSIに限らず、どのような装置に適用しても良い。
(第1の実施の形態)
図1に示すように、情報処理装置100は、システムLSI110と、第1のデバイス171と、第2のデバイス172とを備える。
第1のデバイス171及び第2のデバイス172は、システムLSI110に接続され、システムLSI110に含まれるプロセッサ120により制御が行われるデバイスとする。また、第1のデバイス171及び第2のデバイス172は、情報処理装置100の筐体内部に備えるものでも、情報処理装置100の外部に備えるものでもよい。また、情報処理装置100に接続されるデバイスの数を2個に制限するものではなく、何個でも良いものとする。
また、第1のデバイス171及び第2のデバイス172の例としては、メモリモジュール、ハードディスクドライブ等の大容量外部記憶装置、ネットワークインターフェース等の外部通信装置、キーボードやマウスなど利用者が入力に用いる入力装置、さらにはディスプレイ等の外部出力装置が考えられるが、これらに限るものではない。
システムLSI110は、プロセッサ120と、オンチップメモリ130と、割り込みコントローラ140と、割り込み処理監視装置150と、第1のデバイスコントローラ161と、第2のデバイスコントローラ162と、第3のデバイスコントローラ163と、第3のデバイス173と、各構成を接続するオンチップバス180と、特権状態管理装置190と、を備える。
第3のデバイス173は、後述するプロセッサ120により制御が行われるデバイスとする。このように、プロセッサで制御されるデバイスは、システムLSI110内部に備えるものでも良い。
第1のデバイスコントローラ161は、オンチップバス180を介してプロセッサ120等から第1のデバイス171に対するアクセスを受け付け、アクセス内容に応じた制御信号を第1のデバイス171へ送出する。また、第1のデバイスコントローラ161は、第1のデバイス171から受け取った信号を、オンチップバス180に送信するデータに変換し、そのデータを、オンチップバス180を介してプロセッサ120等に送信する。さらに、第1のデバイスコントローラ161は、第1のデバイス171からの割り込み要求を、プロセッサ120の割り込み受付部125及び割り込み処理監視装置150に対して通知するために、前記割り込みコントローラ140へ送出する。
第2のデバイスコントローラ162及び第3のデバイスコントローラ163は、制御対象となるデバイスが第2のデバイス172及び第3のデバイス173となる以外、第1のデバイスコントローラ161と同様の処理を行うため説明を省略する。
オンチップメモリ130は、特権ソフトウェア131、第1のゲストOS132、第2のゲストOS133を保持している。換言すれば、オンチップメモリ130は、特権ソフトウェア131を記憶する記憶部と、第1のゲストOS132及び第2のゲストOS133を記憶するOS記憶部と、を含む構成に相当する。また、本実施の形態においては、特権ソフトウェア131と、第1のゲストOS132と、第2のゲストOS133とを1つのオンチップメモリ130に保持することとしたが、別の記憶手段にそれぞれ保持することにしてもよい。なお、オンチップメモリ130に格納するゲストOSの数は、2個に制限するものではなく、あらゆる個数で良い。
特権ソフトウェア131は、デバイスからの割り込みを管理するソフトウェアとする。また、特権ソフトウェア131は、真に信頼できるものとして割り込み処理監視装置150のタイマ初期値設定部153へのアクセスが許可されている。そして、特権ソフトウェア131は、他のゲストOSがプロセッサ120上で正常に動作している場合、当該ゲストOSがデバイスからの割り込み要求を受信した後、当該ゲストOSから呼び出される。これにより、特権ソフトウェア131は、デバイスが起こす全ての割り込みを管理することができる。また、本実施の形態では、プロセッサ120の起動直後及びリセットからの復帰直後に、必ず特権ソフトウェア131が実行されるものとする。リセットとは、プロセッサ120が実行する命令を、それまで実行していたプロセス等を無視して、あらかじめ決められた命令に強制的に変えることである。ここでは、今実行しているゲストOSやプロセス等の命令のアドレスもしくは次に取ってくる命令のアドレスを保持しているレジスタの内容を、特権ソフトウェアの命令のアドレスに書き換えることに相当する。
特権ソフトウェア131の信頼性を保証する機構は、どのような手法で実現しても良い。本実施の形態では、オンチップメモリ130上に読み出しのみ可能な領域を設け、製造時にその領域に特権ソフトウェア131を予め書き込むこととする。また、他の実施形態としては、認証用のデバイスを情報処理装置100に接続し、当該デバイスがオンチップバス180を介してオンチップメモリ130に格納されている特権ソフトウェア131が改竄されているか否かチェックし、改竄されていないと判断された場合のみ特権ソフトウェア131を起動してもよい。
本実施の形態では、特権ソフトウェア131が動作している状態を、情報処理装置100が特権状態であると呼ぶこととする。そして、プロセッサ120上で特権ソフトウェア131が動作を開始すると、後述する特権状態管理装置190は、情報処理装置100が特権状態であることを検出して、そのことを、割り込み処理監視装置150内の制御部151に通知する。これにより、割り込み処理監視装置150内の制御部151は、情報処理装置100が特権状態であるか否かを認識することができる。なお、割り込み処理監視装置150内の制御部151が、情報処理装置100が特権状態であるか否かを認識する手法としては、この手法に限らず、どのような手法を用いても良い。
また、特権ソフトウェア131は、デバイス毎に、当該デバイスにアクセス可能なソフトウェア(例えばOS、特権ソフトウェア)を制限しても良い。本実施の形態では、第2のデバイス172が、第1のゲストOS132で排他的に制御されるデバイスとし、第3のデバイス173が、第2のゲストOS133に排他的に制御されるデバイスとする。
第1のゲストOS132及び第2のゲストOS133は、後述するプロセッサ120上で動作するOSとする。また、第1のゲストOS132と第2のゲストOS133、さらにOS上で動作するアプリケーションは、割り込み処理監視装置150に対してアクセスを許可されていない。
これは、ゲストOS(例えば、第1のゲストOS132又は第2のゲストOS133)又はアプリケーションプログラムが、上述した特権ソフトウェア131のように信頼できることが保証されていないためである。このため、仮に、ゲストOS又はアプリケーションプログラムなどのソフトウェアに、割り込み処理監視装置150に対するアクセスを許可した場合、これらソフトウェアに不備又は悪意があれば、割り込み処理監視装置150が本来の処理を実行できなくなる可能性がある。
オンチップメモリ130は、後述するプロセッサ120上で特権ソフトウェア131、第1のゲストOS132、第2のゲストOS133が作業する際に利用する作業領域(図示しない)を保持している。また、本実施の形態にかかるオンチップメモリ130は、特権ソフトウェア131を保持する読み込みのみ可能なROM(Read Only Memory)領域と、第1のゲストOS132、第2のゲストOS133及び作業領域を保持する読み書き可能なRAM(Random Access Memory)領域と、から構成されるものとする。なお、オンチップメモリ130は、このような構成に限らず、一般的に利用されているあらゆる記憶手段により構成することができる。
特権状態管理装置190は、割り込み処理監視装置150の制御部151に対して、情報処理装置100が特権状態であるか否かを示す信号を常に通知している。つまり、特権状態管理装置190は、オンチップメモリ130に格納された特権ソフトウェア131がプロセッサ120上で実行されている場合には、特権状態を示す信号を、制御部151に対して通知する。特権状態管理装置190は、第1のゲストOS132又は第2のゲストOS133等、特権ソフトウェア131と異なるソフトフェアがプロセッサ120上で実行されている場合、特権状態では無いことを示す信号を、制御部151に対して通知する。
この特権状態管理装置190は、悪意のあるソフトウェアによる攻撃を避けるため、ハードウェアで実装することが望ましい。
プロセッサ120は、記憶制御部121と、制御部122と、演算部123と、プロセッサリセット制御部124と、割り込み受付部125とを備える。そして、プロセッサ120上において、特権ソフトウェア131、第1のゲストOS132、第2のゲストOS133、(図示しない)アプリケーションプログラムが動作する。
図2に示すように、特権ソフトウェア131は、論理的には第1のゲストOS132及び第2のゲストOS133の下層に配置される。そして、第1のゲストOS132は割り込み処理ルーチン221を、第2のゲストOS133は割り込み処理ルーチン222を保持する。また、特権ソフトウェア131は、割り込み管理ルーチン211を保持する。なお、本実施の形態は、特権ソフトウェア131を、第1のゲストOS132及び第2のゲストOS133の下層に配置することに制限するものではなく、例えば特権ソフトウェア131を、第1のゲストOS132及び第2のゲストOS133と並列に配置しても良い。
次に、図2を用いて、ハードウェア群201に含まれるハードウェアから割り込みを示す信号が通知された場合に正常に処理が行われた例について説明する。まず、第2のゲストOS133がプロセッサ120上で動作しているものとする。このような状況で、第2のデバイス172及び第3のデバイス173から割り込みの通知がなされた場合、当該割り込みの通知は第2のゲストOS133の割り込み処理ルーチン222が受信する。本実施の形態では、第2のデバイス172が第1のゲストOS132が排他的に制御可能なデバイスであり、第3のデバイス173が第2のゲストOS133が排他的に制御可能なデバイスである。つまり、割り込み処理ルーチン222には、当該第2のゲストOS133で制御可能なデバイスからの割り込みと、当該第2のゲストOS133で制御できないデバイスからの割り込みが通知されることになる。
この場合、第2のゲストOS133は、通知された割り込みが当該第2のゲストOS133で制御可能なデバイスからの割り込みであるか否かに拘わらず、特権ソフトウェア131を呼び出して、プロセッサ120上で動作するソフトウェアを特権ソフトウェア131に切り替える。これにより、特権ソフトウェア131が保持する割り込み管理ルーチン211が、通知された割り込みを全て認識することが可能となる。
そして、特権ソフトウェア131は、当該割り込みの送信元のデバイスを制御可能なゲストOSを呼び出して、当該ゲストOSをプロセッサ120上で動作させる。なお、特権ソフトウェア131は、切り替え前のゲストOSが複数の割り込みを受信したと判断した場合、予め設定された割り込みの優先度等に基づいて、切り替えるゲストOSを判断する。図2に示した例では、特権ソフトウェア131は、第3のデバイス173を制御可能な第2のゲストOS133を呼び出している。これにより、第2のゲストOS133の割り込み処理ルーチン222は、割り込み管理ルーチン211からの通知に従って、第3のデバイス173を制御する。
図1に戻り、制御部122は、プロセッサ120全体の動作を制御する。演算部123は、制御部122の指示に従って演算をする。
記憶制御部121は、制御部122からの指示、又は演算部123の結果に基づいて、オンチップメモリ130等から命令を取得する。また、記憶制御部121は、オンチップメモリ130等にデータの読み書きする。さらに、記憶制御部121は、各デバイスコントローラ161〜163を介して、各デバイス171〜173にアクセスする。
プロセッサリセット制御部124は、後述する割り込み処理監視装置150からリセット要求を受け付けた場合に、制御部122に対してリセットを通知し、プロセッサ120上で実行されている処理の内容にかかわらずプロセッサ120をリセットする。
割り込み受付部125は、割り込みコントローラ140から、デバイス171〜173の割り込み要求を受け付ける。そして、割り込み受付部125は、割り込みの内容に従い、割り込みベクタテーブル内の予め決められた場所に格納された命令を実行するように制御部122に指示をする。これにより、制御部122上で動作しているソフトウェアが割り込みの発生を認識する。
プロセッサ120への入出力信号は、オンチップメモリ130をはじめとした装置等からオンチップバス180を介して入力されるアドレス信号やデータ信号、割り込みコントローラ140から入力されるデバイス割り込み通知信号、後述する割り込み処理監視装置150から入力されるプロセッサリセット信号とする。これらの信号を入出力するためのポートは、仮想化を支援する機能を内蔵しないプロセッサであっても必ず実装されている。
このことは、割り込み処理監視装置150および特権状態管理装置190を任意の情報処理装置に搭載する場合、当該情報処理装置に搭載されるプロセッサの入出力信号の種類又は数に依存していないことを意味する。つまり、割り込み処理監視装置150および特権状態管理装置190を搭載して上述した構成を備えることで、仮想化を支援する機能が内蔵されていない任意のプロセッサでも、デバイス割り込みの適切なゲストOSへの配送を実現することができる。
割り込みコントローラ140は、デバイス割り込み通知部141と、デバイス割り込み処理部142と、デバイス割り込み設定部143とを備える。また、割り込みコントローラ140は、割り込み用の専用線を介して割り込み処理監視装置150及びプロセッサ120と接続されている。これにより、割り込みコントローラ140は、デバイスコントローラ161〜163から受信した割り込み要求を、プロセッサ120及び割り込み処理監視装置150に通知することができる。
なお、本実施の形態においては、図1に示すようにデバイスコントローラ161〜163と割り込みコントローラ140とを割り込み用の専用線を介して接続しているが、オンチップバス180を介して接続していてもよい。同様に、本実施の形態においては、割り込みコントローラ140とプロセッサ120と割り込み処理監視装置150とを割り込み用の専用線を介して接続しているが、オンチップバス180を介して接続してもよい。
デバイス割り込み設定部143は、デバイス171〜173からの割り込み要求を無視するか否かの設定をデバイス毎に記憶する。
デバイス割り込み処理部142は、デバイス171〜173それぞれを制御するデバイスコントローラ161〜163と割り込み専用線で接続されている。そして、デバイス割り込み処理部142は、接続された割り込み専用線を介してデバイスコントローラ161〜163から割り込みを受け付ける。さらに、デバイス割り込み処理部142は、オンチップバス180を介して、どのデバイスが割り込み要求を出したのかチェックする機構と、割り込み要求に対する返答を受け付ける機構とを備える。
デバイス割り込み通知部141は、デバイス割り込み処理部142が割り込み要求を受け付けた場合、デバイス割り込み設定部143に記憶された設定に従って、当該割り込み要求を無視するか否か判断する。そして、デバイス割り込み通知部141は、無視すべきではないと判断した場合に当該割り込み要求をプロセッサ120及び割り込み処理監視装置150に通知する。
割り込み処理監視装置150は、制御部151と、タイマ152と、タイマ初期値設定部153と、プロセッサリセット信号発生部154とを備える。
タイマ初期値設定部153は、プロセッサ120上で動作する特権ソフトウェア131からの、後述するタイマ152への初期値設定要求を受け付ける。その際、タイマ初期値設定部153は、初期値設定要求が来たことを後述する制御部151に通知し、また制御部151からの指示に従ってタイマ152に対して初期値を設定する。なお、タイマ初期値設定部153が設定する初期値は初期値設定要求に含まれる値とする。
タイマ152は、制御部151により制御されるタイマとする。本実施の形態では、タイマ152は、タイマ初期値設定部153によって予め設定された初期値(正の値)から‘0’になるまで単調減少するカウントダウン型のタイマとする。なお、タイマの種類をカウントダウン型のタイマに限定するものではなく、‘0’から単調増加して予め設定された初期値(正の値)になるまで動作するカウントアップ型のタイマを用いても良い。
制御部151は、検出部155と、判断部156とを備え、割り込み処理監視装置150全体を制御する。制御部151は、割り込みコントローラ140からの割り込み通知、情報処理装置100が特権状態にあるか否か、タイマ152のカウント数、タイマ初期値設定部153により設定されたタイマの初期値、そしてタイマ初期値設定部153に初期値設定要求が来たかどうかに基づいて処理を行う。また、制御部151は、割り込み処理監視装置150の状態情報を保持する。
検出部155は、割り込みコントローラ140からの割り込み通知により、デバイス171〜173からの割り込みを検出する。
判断部156は、タイマ152のカウント値が‘0’になった場合に、プロセッサ120上で動作しているソフトウェアが特権ソフトウェア131を呼び出したか否か判断する。判断部156は、タイマ初期値設定部153がプロセッサ120上で動作する特権ソフトウェア131からタイマ初期化要求を受信したことを、タイマ初期値設定部153から通知された場合に、特権ソフトウェア131が呼び出されたものと判断する。なお、詳細な判断手順については後述する。
プロセッサリセット信号発生部154は、制御部151からの指示に従って、プロセッサ120のプロセッサリセット制御部124に対して、プロセッサのリセットを要求する信号を送信する。
また、制御部151は、割り込み処理監視装置150の状態情報を管理している。図3に示すように、状態情報には、STOP状態、READY状態、RUNNING状態、PENDING状態の4種類の状態が設定される。
これらの状態は、割り込みコントローラ140からの割り込み通知、特権状態管理装置190からの情報処理装置100が特権状態にあるか否かを示す信号、タイマ152の動作状態、タイマ初期値設定部153からの特権ソフトウェア131によるタイマ初期値設定要求の通知に基づいて遷移する。次に、図3に示した各状態、状態の遷移及び遷移する条件を説明する。
STOP状態は、タイマ152が動作しておらず、また初期化もされていない状態とする。制御部151は、情報処理装置100の起動時に割り込み処理監視装置150の状態情報をSTOP状態(符号301の遷移)に設定する。また、制御部151は、割り込み処理監視装置150がRUNNING状態およびPENDING状態の時に、プロセッサリセット信号発生部154がプロセッサリセット信号を発生してプロセッサ120をリセットした場合、割り込み処理監視装置150の状態情報をSTOP状態に設定する(符号307および符号309の遷移)。
また、制御部151は、STOP状態の時に、特権ソフトウェア131からタイマ152の初期値設定要求が来たことをタイマ初期値設定部153から通知された場合、タイマ初期値設定部153にタイマ152の初期値設定を指示した上で割り込み処理監視装置150の状態情報をREADY状態に設定する(符号302の遷移)。これにより、タイマ152に初期値が設定される。なお、この初期値とは、デバイスによる割り込みが割り込み処理監視装置150に通知されてからプロセッサ120上で特権ソフトウェア131が実行を開始するまでの許容時間を示したものとする。つまり、タイマ152がカウントを開始してカウント値が初期値から‘0’になり、かつ特権ソフトウェア131が呼び出されていない場合には、判断部156がプロセッサ120をリセットすべきと判断する。
READY状態は、タイマ初期値設定部153によりタイマ152の初期値が設定され、当該タイマ152がカウントを開始する準備が完了した状態とする。また、READY状態では、タイマ152の初期値の設定はなされたが、当該タイマ152のカウントは開始していない。制御部151は、割り込み処理監視装置150の状態がSTOP状態、RUNNING状態、PENDING状態及びREADY状態の時、特権ソフトウェア131からタイマ初期値設定要求が来たことをタイマ初期値設定部153から通知された場合に、タイマ初期値設定部153にタイマ152の初期値設定指示した上で割り込み処理監視装置150の状態情報をREADY状態に設定する(符号302、符号305、符号308及び符号303の遷移)。この符号302、符号305、符号308及び符号303の遷移により、タイマ152に初期値が設定される。
また、制御部151は、READY状態の時に、制御部151に対して割り込みコントローラ140から割り込みが発生した旨の通知を受け付けた場合、タイマ152のカウントを開始させ、割り込み処理監視装置150の状態情報をRUNNING状態に設定する(符号304の遷移)。
RUNNING状態は、タイマ152がカウントダウンをしており、まだカウント値が‘0’になっていない状態とする。また、初期値として設定された時間を経過していないため、プロセッサリセット信号発生部154はプロセッサリセット信号を発生していない。
本実施の形態のように、タイマ152が予め設定された初期値からカウントダウンするカウントダウンタイマの場合、タイマ152は、クロックのような周期的な入力信号にしたがってカウント値が‘0’になるまでカウントダウンを行う。
割り込み処理監視装置150の状態情報がRUNNING状態の時にタイマ152のカウント値が‘0’になり(予め設定された時間が経過した)、かつ判断部156がプロセッサ120上で特権ソフトウェア131が実行していると判断した場合、制御部151は割り込み処理監視装置150の状態情報をPENDING状態に設定する(符号306の遷移)。判断部156は、プロセッサ120上で特権ソフトウェア131が実行しているか否かを、特権状態管理装置190から送信される情報処理装置100が特権状態であるか否かの通知により判断できる。符号306の遷移では、制御部151はタイマ152に対してカウントを停止するように指示する。
また、割り込み処理監視装置150の状態情報がRUNNING状態の時に、タイマ152のカウント値が‘0’になり、かつ判断部156がプロセッサ120上で特権ソフトウェア131が実行していないと判断した場合、制御部151は割り込み処理監視装置150の状態情報をSTOP状態に設定する(符号307の遷移)。符号307の遷移では、制御部151はタイマ152に対してカウントを停止するように指示した上で、プロセッサリセット信号発生部154に対してプロセッサリセット制御部124にプロセッサリセット要求信号を送出するように指示する。これにより、プロセッサ120がリセットされる。
このPENDING状態は、予め設定された時間が経過したものの、プロセッサリセット信号の発生が抑制されている状態ということになる。
割り込み処理監視装置150の状態情報がPENDING状態の時、制御部151が、タイマ初期値設定部153から特権ソフトウェア131によるタイマ152の初期値設定要求を受け付けたことを通知された場合、割り込み処理監視装置150の状態情報をREADY状態に設定し、タイマ初期値設定部153にタイマ152への初期値設定を指示する(符号308の遷移)。これにより、タイマ152に新たに初期値が設定される。
また、割り込み処理監視装置150の状態情報がPENDING状態の時、タイマ初期値設定部153がタイマ152の初期値設定要求を受け付けていないにも拘わらず、判断部156が特権ソフトウェア131以外のソフトウェアがプロセッサ120上で動作している(特権状態でなくなった)と判断した場合、制御部151はプロセッサリセット信号発生部154に対してプロセッサリセット信号の送出を指示し、割り込み処理監視装置150の状態情報をSTOP状態に設定する(符号309の遷移)。これにより、プロセッサ120がリセットされる。
次に、割り込み処理監視装置150が実行する処理の手順について、図4を用いて説明する。なお、図4に示された当該処理手順では、最初、情報処理装置100の電源が投入された後、制御部151は、割り込み処理監視装置150の状態情報にSTOP状態を設定する(ステップS401)。
割り込み処理監視装置150のタイマ初期値設定部153は、プロセッサ120上で動作する特権ソフトウェア131からタイマ初期値設定要求を受け付けたか否かを判断する(ステップS402)。タイマ初期値設定部153が受け付けていないと判断した場合(ステップS402:No)、タイマ初期値設定要求の検出処理を継続する(ステップS402)。
タイマ初期値設定部153がタイマ初期値設定要求を受け付けたと判断した場合(S402:Yes)、タイマ初期値設定部153は制御部151にタイマ152の初期値設定要求を受け付けたことを通知し、その通知を受けて制御部151は、タイマ初期値設定部153にタイマ152の初期値設定を指示する(ステップS403)。そして、制御部151は、割り込み処理監視装置150の状態情報をREADY状態に設定する(ステップS404)。
次に、検出部155は、割り込みコントローラ140から送信されるデバイスの割り込みを示す通知信号の検出を行う(ステップS405)。検出部155は、デバイスの割り込みを示す通知信号を検出しなかった場合(ステップS405:No)、当該通知信号の検出処理を継続する(ステップS405)。
検出部155がデバイスの割り込みを示す通知信号を検出した場合(ステップS405:Yes)、制御部151は、タイマ152に動作を指示し、タイマ152は動作を開始する(ステップS406)。本実施の形態では、カウント値が初期値からカウントダウンしていくことになる。これにより、割り込み信号を検出してからの経過時間を計測することが可能となる。
制御部151は、タイマ152のカウントを開始させた場合、割り込み処理監視装置150の状態情報をRUNNING状態に設定する(ステップS407)。次に、制御部151は、タイマ初期値設定部153がプロセッサ120上で動作する特権ソフトウェア131からタイマ初期値設定要求を受け付けたことを通知されたか否かを判断する(ステップS408)。タイマ初期値設定部153がタイマ初期値設定要求を受け付けたことを通知された場合(ステップS408:Yes)、制御部151はタイマ152に対してカウントの停止を指示する。これにより、タイマ152のカウントが停止する(ステップS409)。その後、制御部151はタイマ初期値設定部153にタイマ152の初期値設定を指示する(ステップS403)。
制御部151は、タイマ初期値設定部153からタイマ初期値設定要求を受け付けたことを通知されていない場合(ステップS408:No)、デバイスの割り込みを示す通知を検出してから所定の時間を経過したか否か判断する(ステップS410)。これは、タイマ152のカウント値が初期値から‘0’になったか否かで判断することができる。
制御部151が、所定の時間が経過していないと判断した場合(ステップS410:No)、再びタイマ初期値設定部153がタイマ152の初期値設定要求を受け付けたか否かの判断を行う(ステップS408)。
所定の時間を経過したと判断した場合(ステップS410:Yes)、制御部151は、タイマ152のカウントを停止させる(ステップS411)。
そして、判断部156が、プロセッサ120上で動作しているソフトウェアが、特権ソフトウェア131であるか否か判断する(ステップS412)。これは、特権状態管理装置190からの信号に基づいて判断できる。
特権ソフトウェア131がプロセッサ120上で動作していると判断した場合(ステップS412:Yes)、制御部151は、割り込み処理監視装置150の状態情報にPENDING状態を設定する(ステップS413)。
その後、制御部151は、タイマ初期値設定部153がプロセッサ120上で動作している特権ソフトウェア131からタイマ152の初期値設定要求を受け付けたか否かを判断する(ステップS414)。そして、タイマ152の初期値設定要求を受け付けていないと判断した場合(ステップS414:No)、プロセッサ120上で特権ソフトウェア131が動作しているか否かを再び判断する(ステップS412)。
そして、制御部151が、プロセッサ120上で動作しているソフトウェアが、特権ソフトウェア131ではないと判断した場合(ステップS412:No)、制御部151は、プロセッサリセット信号発生部154に、プロセッサリセット制御部124に対して、プロセッサリセットを要求する信号の送信を指示する。これにより、プロセッサ120がリセットされる(ステップS415)。
プロセッサ120がリセットされた後、制御部151は、割り込み処理監視装置150の状態情報をSTOP状態に設定する(ステップS401)。そして、再びステップS402以降の処理を行うことになる。
上述した処理を行うことで、デバイス群171〜173が割り込み要求を発生し、所定の時間内に特権ソフトウェア131が呼び出されていない場合に、プロセッサ120をリセットすることができる。
次に、本実施の形態における情報処理装置100の各構成が行う処理を、シーケンス図を使用して詳細に説明する。図5〜図8では、下方向の長さが経過した時間を示している。また、第3のデバイス173、割り込みコントローラ140、プロセッサ120及び割り込み処理監視装置150間で示された矢印は、当該構成間で行われた通信を表わしている。
図5〜図8のプロセッサ120では、当該プロセッサ上で動作しているソフトウェアを示している。なお、図示していないが、第3のデバイス173及び割り込みコントローラ140間では、当然に第3のデバイスコントローラ163を介して通信が行われている。また、割り込み処理監視装置150には、割り込み処理監視装置150の状態情報が示されている。
また、図5〜図8では、情報処理装置100に電源投入時から経過した時間において行われた通信などを示している。まず、割り込み処理監視装置150が管理している状態情報の初期値は、STOP状態とする。また、最初にプロセッサ120上で動作するソフトウェアは、特権ソフトウェア131とする。
なお、図5〜図8で示す処理手順は、電源投入時に限り行われる処理ではなく、情報処理装置100の起動中であれば適宜行われる処理とする。また、図5〜図8で示す処理手順では、割り込み処理監視装置150が管理している状態情報は最初STOP状態が設定されていることを仮定しているが、最初の状態情報をSTOP状態に制限するものではない。
また、図5〜図8で示す処理手順では、割り込みコントローラ140は、第3のデバイスコントローラ163から通知される割り込みを無視しない設定がなされているものとする。
図5に示すシーケンス図は、第3のデバイス173から割り込みを示す通知が行われてから所定時間内に、タイマ初期値設定部153が特権ソフトウェア131からタイマの初期値設定要求を受け付けた場合の例を示している。
まず、プロセッサ120上で動作している特権ソフトウェア131が、割り込み処理監視装置150のタイマ初期値設定部153に対してタイマ152の初期値設定要求を送信する(ステップS501)。これにより、タイマ初期値設定部153から制御部151に対して、初期値設定要求が届いたことが伝えられ、制御部151がタイマ初期値設定部153にタイマの初期値の設定を指示し、タイマ初期値設定部153がタイマ152の初期値を設定する。そして、制御部151は、割り込み処理監視装置150の状態情報をSTOP状態からREADY状態に設定する。なお、当該処理は、図4に示したステップS402〜ステップS404の処理に相当する。
なお、特権ソフトウェア131は、タイマ152の初期値として、第1のゲストOS132又は第2のゲストOS133が割り込みを検出してから特権ソフトウェア131に制御を移すために必要十分な時間を設定すべきである。これは、初期値として非常に短い時間を設定した場合、第1のゲストOS132等に不具合又は悪意がない場合でも、設定された時間内に特権ソフトウェア131を呼び出すことができない可能性があるからである。この場合、第1のゲストOS132等が正常な動作を行えない可能性がある。逆に初期値として非常に長い時間を設定した場合、第1のゲストOS132等に悪意があった場合に、当該ソフトウェアが不正な処理をするための十分な時間を与えてしまうことになる。
なお、タイマ初期値設定部153がタイマ152の初期値として任意の値を受け付け可能とした場合、指定すべき初期値の決定手法としては、各ゲストOSの割り込み応答時間(割り込みを通知されてから特権ソフトウェアに通知するまでの時間)を考慮して決定する手法や、デバイスの種類や特徴(割り込み応答時間は短い方が良いか、長くても良いか)に応じて決定する手法などが考えられる。
処理に戻り、プロセッサ120上で動作する特権ソフトウェア131は、第1のゲストOS132を呼び出して、プロセッサ120上で動作するソフトウェアを第1のゲストOS132に変更する(ステップS502)。これにより、第1のゲストOS132が動作を開始する。このとき、特権状態管理装置190からの通知は、情報処理装置100が特権状態でないことを示すものに変化する。なお、特権状態管理装置190からの特権状態を示す通知は変化するものの、READY状態において注目している信号に変化がないので、制御部151は、割り込み処理監視装置150の状態情報として、READY状態を保持する。
次に、第3のデバイス173は、割り込みコントローラ140に対して、第3のデバイスコントローラ163を経由して、割り込みを要求する旨を通知する(ステップS503)。
割り込みコントローラ140は、第3のデバイスコントローラ163から通知された割り込みを無視しない設定となっていることをデバイス割り込み設定部143に格納された情報で確認した後、プロセッサ120に対して割り込みを要求する旨を通知する(ステップS504)。
また、割り込みコントローラ140は、ステップS504に示した通知とほぼ同時に、割り込み処理監視装置150に対して割り込みが発生した旨を通知する(ステップS505)。これにより、割り込み処理監視装置150の制御部151はタイマ152の動作を開始させる(ステップS506)。また、制御部151は、割り込みコントローラ140からデバイスの割り込みが発生した旨の通知を受け付けたことで、管理している状態情報をREADY状態からRUNNING状態に設定する。なお、割り込みが発生した旨の通知を受け付けてからの処理は、図4のステップS405〜S407の処理に相当する。
プロセッサ120の割り込み受付装置125は、割り込みコントローラ140からの割り込み要求を受け付けると、制御部122に対して割り込み処理用の命令を実行するよう指示をする。この指示により実行している命令列をデバイス割り込み専用の命令列に強制的に変更させられた第1のゲストOS132は、割り込みが通知されたことを特権ソフトウェア131に伝えるために、予め設定された割り込み処理通知用の特権ソフトウェア131を呼び出す。これにより、プロセッサ120上で動作するソフトウェアが、第1のゲストOS132から特権ソフトウェア131に変更される(ステップS507)。なお、当該処理では、特権状態管理装置190の通知する信号が、情報処理装置100が特権状態であることを示すものに変化するものの、RUNNING状態において制御部151が注目している信号に変化はないので、制御部151は、割り込み処理監視装置150の状態情報として、RUNNING状態を保持する。
なお、本実施の形態のプロセッサ120と異なる、割り込みベクタの保護機構を持った汎用計算機用のプロセッサでは、ステップS507で示した処理の後半、つまり第1のゲストOSから特権ソフトウェアへの変更を、当該プロセッサ内部に実装されたハードウェアで強制的に行っている。これにより、特権ソフトウェアによる割り込みの完全管理を実現している。これに対し、本実施の形態にかかるプロセッサ120は、このような機能を備えていない、従来からシステムLSIやSoC等に組み込まれて使用されているプロセッサである。このようなプロセッサでは、第1のゲストOS132等から明示的に特権ソフトウェア131の呼び出しを行わない限り、特権ソフトウェア131に制御が移ることはない。
第1のゲストOS132から割り込みが起きたことを通知された特権ソフトウェア131は、タイマ152を停止させるため、及び次の割り込みがいつ発生しても検出できるように、割り込み処理監視装置150のタイマ初期値設定部153に対して、タイマ152の初期値設定の要求を通知する(ステップS508)。これにより、制御部151は、タイマ152を停止する指示を行った上でタイマ初期値設定部153にタイマ152の初期値設定を指示する。
なお、特権ソフトウェア131からのタイマ152の初期値設定を要求する旨の通知は、タイマ152がカウントしているカウント値が‘0’になる前に受け付けたものとする。そして、所定時間内にタイマ初期値設定部153が初期値設定の要求を受け付けたので、制御部151は管理している割り込み処理監視装置150の状態情報を、RUNNING状態からREADY状態に設定する。なお、タイマ152の初期値設定を要求する旨の通知を受け付けてからの処理は、図4のステップS408、S409、S403及びS404の処理に相当する。
次に、プロセッサ120上で動作している特権ソフトウェア131は、割り込み要求の確認を割り込みコントローラ140に対して行う(ステップS509)。さらに、特権ソフトウェア131は、必要に応じて、第3のデバイス173に対して、割り込みを発生させたデバイスを特定するために信号の送受信等の処理を行う(ステップS510)。これにより、割り込みを発生させたデバイスを特定すると共に、当該デバイスを排他的に使用している又は処理を担当するソフトウェアを特定する。なお、図5に示した処理手順では、特定されたソフトウェアを第2のゲストOS133とする。なお、これらの処理では、制御部151が注目している信号に変化はないので、割り込み処理監視装置150が管理している割り込み処理監視装置150の状態情報はREADY状態のまま保持される。
その後、特権ソフトウェア131は、割り込み処理監視装置150のタイマ初期値設定部153に対して、タイマ152の初期値設定の要求を通知する(ステップS511)。なお、タイマ初期値設定部153がタイマ152の初期値の設定要求を受け付けた際、制御部151が管理している割り込み処理監視装置の状態情報はREADY状態であり、READY状態の時に制御部151が注目している信号に変化はないので、READY状態をそのまま保持する。
そして、プロセッサ120上で動作している特権ソフトウェア131が第2のゲストOS133を呼び出すことで、プロセッサ120上で動作するソフトウェアが特権ソフトウェア131から、第3のデバイス173の処理を担当する第2のゲストOS133に変更される(ステップS512)。なお、当該処理によって特権状態管理装置190が通知する信号が、情報処理装置100が特権状態でないことを示すものに変化するものの、制御部151が注目している信号に変化はないので、制御部151が管理している割り込み処理監視装置150の状態情報はREADY状態のまま保持される。
図6に示すシーケンス図では、第1のゲストOS132で不具合が発生した等の理由で、第1のゲストOS132から特権ソフトウェア131に変更されなかった例を示した図である。つまり、第3のデバイス173から割り込みを要求する通知が行われてから所定時間を経過したにも拘わらず、タイマ初期値設定部153が特権ソフトウェア131からのタイマ152の初期値設定要求を受け付けず、第1のゲストOS132が動作したままになっている例である。
図6のステップS601〜S606までの処理は、図5のステップS501〜S506までの処理と同様なので説明を省略する。
制御部151は、タイマ152のカウント値が‘0’になったことを検出することで、割り込みが発生した旨の通知を受け取ってから所定時間が経過したものと判断する(ステップS607)。そして、制御部151は、タイマ152のカウントを停止させる。
なお、図6のステップS607の処理を行っている時、特権状態管理装置190からは情報処理装置100が特権状態ではない旨の信号が通知されている。これにより、判断部156は、プロセッサ120上で動作しているソフトウェアが特権ソフトウェア131に変更されていないと判断できる。
そこで、割り込み処理監視装置150の制御部151は、プロセッサリセット信号発生部154にプロセッサリセット信号を発生するように指示し(ステップS608)、プロセッサ120をリセットする。これにより、不具合が発生していた第1のゲストOS132を強制的に終了させることができる。
制御部151は、プロセッサ120のリセットが行われた後、管理している割り込み処理監視装置150の状態情報をRUNNING状態からSTOP状態に設定する。なお、タイマ152のカウント値が‘0’になったことを検出してからの処理は、図4のステップS410、S411、S412、S415及びS401の処理に相当する。
リセットされて再起動したプロセッサ120は、特権ソフトウェア131の実行を開始する(ステップS609)。これにより、特権ソフトウェア131は、第1のゲストOS132から通知されなかった割り込みを調べることができる。
これ以降、図6のステップS610〜S613までの処理は、図5のステップS509〜S512までの処理と同様なので説明を省略する。
図7に示すシーケンス図では、プロセッサ120で動作するソフトウェアが変更される時のきわどいタイミングによる不安定な動作を防止するために、制御部151が管理している割り込み処理監視装置150の状態情報をPENDING状態に設定する例である。つまり、第1のゲストOS132から特権ソフトウェア131に変更されたものの、特権ソフトウェア131からタイマ初期値設定部153へのタイマ152の初期値設定要求が遅れて、第3のデバイス173から割り込みを示す通知が行われてから所定時間を経過してしまった例を示している。
図7のステップS701〜S706までの処理は、図5のステップS501〜S506までの処理と同様なので説明を省略する。
プロセッサ120上で動作する第1のゲストOS132が特権ソフトウェア131を呼び出すことで、プロセッサ120上で動作するソフトウェアが第1のゲストOS132から特権ソフトウェア131に変更される(ステップS707)。なお、変更される際の処理は、図5で説明したので省略する。
このとき、プロセッサ120上で動作するソフトウェアが、第1のゲストOS132から特権ソフトウェア131に変更されたものの、特権ソフトウェア131がタイマ初期値設定部153に対してタイマ152の初期値設定要求を送信する前に、タイマ152のカウント値が‘0’になったものとする。すると、制御部151は、割り込みが発生してから所定時間が経過したと判断する(ステップS708)。その後、制御部151はタイマ152に動作の停止を指示する。なお、これらの処理は、図4のステップS410〜S411に相当する。
なお、制御部151は、特権状態管理装置190からの通知により情報処理装置100が特権状態になっていること、つまりプロセッサ120上で特権ソフトウェア131が動作していることを認識できる。
そこで、制御部151は、制御部151が管理している割り込み処理監視装置150の状態情報をRUNNING状態からPENDING状態に設定する。このPENDING状態は、制御部151からプロセッサリセット信号発生部154へのプロセッサリセット信号発生要求は行われない状態である。なお、これらの処理は、図4のステップS412〜S413の処理に相当する。
割り込みが発生したことを第1のゲストOS132から通知された特権ソフトウェア131は、タイマ初期値設定部153に対して、タイマ152の初期値設定の要求を通知する(ステップS709)。そして、制御部151は、タイマ初期値設定部153がタイマ152の初期値設定要求を受け付けたことを通知され、タイマ初期値設定部153に対してタイマ152の初期値の設定を指示すると共に、管理している割り込み処理監視装置150の状態情報をPENDING状態からREADY状態に設定する。
これ以降、図7のステップS710〜S713までの処理は、図5のステップS509〜S512までの処理と同様なので説明を省略する。
図8に示すシーケンス図は、制御部151が管理している割り込み処理監視装置150の状態情報をPENDING状態に設定した後、第1のゲストOS132が特権ソフトウェア131に割り込みを通知するための予め定められた呼び出しを行わないという不正な処理により、特権ソフトウェア131がタイマ初期値設定部153に対してタイマ152の初期値設定要求をしなかった例である。つまり、第3のデバイス173から割り込みを示す通知が行われた後、プロセッサ120上で動作するソフトウェアが、第1のゲストOS132から特権ソフトウェア131に変更されたものの、初期値設定要求の通知を行わないうちに再び特権ソフトウェア131から第1のゲストOS132に変更された場合の例を示している。
図8のステップS801〜S806までの処理は、図5のステップS501〜S506までの処理と同様なので説明を省略する。
プロセッサ120上で動作している第1のゲストOS132は、割り込みが発生したことを認識しながら、予め定められた割り込み処理を通知するための特権呼び出しで行うべき特権ソフトウェア131への割り込みが発生したことの通知をせず、別の特権呼び出しを行って特権ソフトウェア131を呼び出したものとする。なお、第1のゲストOS132がこのような処理を行う原因としては、第1のゲストOS132に悪意がある場合や、第1のゲストOS132に不具合が発生した場合等が考えられる。
これにより、プロセッサ120上で動作するソフトウェアが、第1のゲストOS132から特権ソフトウェア131に変更される(ステップS807)。特権状態管理装置190が通知する、情報処理装置100が特権状態か否かを示す信号は、特権ソフトウェア131が動作しているため、特権状態であることを示す信号に変化する。
その後、タイマ152のカウント値が‘0’になったものとする。すると、制御部151は、割り込みが発生してから所定時間が経過したと判断する(ステップS808)。したがって、制御部151は、タイマ152に動作の停止を指示する。なお、これらの処理は、図4のステップS410〜S411に相当する。
このとき、制御部151は、特権状態管理装置190からの通知により情報処理装置100が特権状態であること、つまりプロセッサ120上で特権ソフトウェア131が動作していることを認識できる。
そこで、制御部151は、管理している割り込み処理監視装置150の状態情報をRUNNING状態からPENDING状態に設定する。なお、これらの処理は、図4のステップS412〜S413の処理に相当する。
特権ソフトウェア131は、第1のゲストOS132から呼び出されたものの、割り込み処理を通知するための呼び出しが行われたわけではないので、タイマ初期値設定部153にタイマ152の初期値設定を要求することもなく、当該呼び出された処理を終了すると、第1のゲストOS132に処理を戻す(ステップS809)。
プロセッサ120上で動作するソフトウェアが特権ソフトウェア131から第1のゲストOS132に切り替わったことで、特権状態管理装置190が通知する、情報処理装置100が特権状態か否かを示す信号は、特権状態ではないことを示すものに変化し、制御部151は、情報処理装置100が特権状態でなくなったことを認識できる。この処理は、図4のステップS412の処理に相当する。
そして、特権状態でなくなったことを認識した制御部151は、プロセッサリセット信号発生部154にプロセッサリセット信号の発生を指示し、プロセッサリセット信号発生部154は、プロセッサリセット信号を発生させる(ステップS810)。これによりプロセッサ120がリセットされる。
そして、制御部151は、プロセッサ120のリセットが行われた後、管理している割り込み処理監視装置150の状態情報をPENDING状態からSTOP状態に設定する。なお、プロセッサリセット信号を指示してからの処理は、図4のステップS415及びS401の処理に相当する。
つまり、図8で示した処理手順では、制御部151が管理する割り込み処理監視装置150の状態情報としてPENDING状態が存在することで、プロセッサ120に対して所定時間よりさらに時間が経過した場合でも、第1のゲストOS132や第2のゲストOS133が起こした不具合等を見逃すことなくプロセッサをリセットすることができる。
リセットされて再起動したプロセッサ120は、特権ソフトウェア131の実行を開始する(ステップS811)。これにより、特権ソフトウェア131は、第1のゲストOS132から通知されなかった割り込みを調べることができる。
以降、図8のステップS812〜S815までの処理は、図5のステップS509〜S512までの処理と同様なので説明を省略する。
上述した処理手順により、ゲストOSに悪意若しくは不具合があることで、デバイス171〜173の起こした割り込みの発生が特権ソフトウェア131に伝えられなくても、一定時間後に割り込み処理監視装置150によりプロセッサ120がリセットされることになる。そして、プロセッサ120の再起動時に特権ソフトウェア131が実行されるので、発生した割り込みを調査することができる。
また、特権ソフトウェア131は、プロセッサ120をリセットさせる原因となったゲストOS等のソフトウェアを実行しないように管理する。特権ソフトウェア131がこのような管理を行うことで、リセットする原因となったゲストOSに悪意又は不具合ある場合でも、当該ゲストOSを除いた情報処理装置100の安全な動作が実現できる。
上記実施形態においては、従来仮想化を支援する機能が実装されたプロセッサでなければ提供できなかったデバイスの割り込みの正しいゲストOSやプログラムへの配送を、仮想化を支援する機能が実装されていないプロセッサを使用して組み込み機器用のシステムLSIを構築する場合でも、プロセッサに手を加えることなく、ハードウェアを追加することで実現することができる。
また、上述した各実施の形態に限定されるものではなく、以下に例示するような種々の変形が可能である。
(第1の実施の形態の変形例1)
上述した第1の実施の形態では、タイマ152において設定した初期値から‘0’へとカウントダウンしていくカウントダウンタイマを用いた実施形態について説明した。しかしながら、デバイスからの割り込みが発生してからの経過時間を計測するために用いるタイマをカウントダウンタイマに制限するものではない。そこで、第1の実施の形態の変形例としてアップカウンタを用いた例について説明する。なお、割り込み処理監視装置以外の構成は第1の実施形態と同様なので説明を省略する。
図9に示すように、割り込み処理監視装置910は、第1の実施の形態に係る割り込み処理監視装置150とは、タイマ初期値設定部153が削除され、タイマ最大値設定部911が追加され、タイマ152と処理が異なるタイマ912を備え、制御部151とは処理が異なる制御部913を備えた点のみ異なる。なお、本実施の形態の割り込み処理監視装置910の構成で、第1の実施の形態の割り込み処理監視装置150と共通な構成については説明を省略する。
タイマ最大値設定部911は、特権ソフトウェア131からの後述するタイマ912の最大値設定要求を受け付ける。その後、タイマ最大値設定部911は、タイマ912への最大値設定要求が来たことを後述する制御部913に通知し、制御部913からの指示に従ってタイマ912に対して最大値を設定する。なお、タイマ最大値設定部911が設定する最大値は最大値設定要求に含まれる任意の値とする。
タイマ912は、制御部913により制御されるタイマとする。本実施の形態では、タイマ912は、‘0’からタイマ最大値設定部911によって予め設定された最大値(正の値)まで単調増加するアップカウンタ型のタイマとする。
制御部913は、タイマ912のカウント値を監視して、タイマ912のカウント値とタイマ最大値設定部911で設定された最大値とが同じ値になったか否かを判断する。
また、このような割り込み処理監視装置150の変更に伴い、プロセッサ120から送信される信号が、第1の実施形態のような初期値設定要求ではなく最大値設定要求に変更される。なお、最大値設定要求が送信されるタイミングは、第1の実施形態の初期値設定要求と同様なので説明を省略する。
制御部913は、最大値設定要求を受け付けたことをタイマ最大値設定部911から通知されると、割り込み処理監視装置910の状態情報に、READY状態を設定する。つまり、READY状態は、タイマ最大値設定部911によりタイマ912の最大値の設定がなされ、当該タイマ912がカウントを開始する準備が完了した状態とする。なお、他の遷移及び処理等については、第1の実施形態のREADY状態と同様なので説明を省略する。
そして、RUNNING状態は、タイマ912によるカウントアップが開始されており、まだカウント値が最大値になっていない状態とする。つまり、本変形例では、タイマ912は、クロックのような周期的な入力信号にしたがってカウント値が‘0’から最大値になるまでカウントアップを行う。なお、遷移及び処理等については、第1の実施形態のRUNNING状態と同様なので説明を省略する。
なお、STOP状態及びPENDING状態は、制御部913が、タイマ最大値設定部911が特権ソフトウェア131からタイマ912の最大値設定要求を受け付けたことを通知された場合に、割り込み処理監視装置910の状態情報にREADY状態を設定する以外、第1の実施形態と同様なので説明を省略する。
なお、第1の実施形態及び本変形例は、割り込み処理監視装置のタイマにアップカウンタ又はダウンカウンタを用いることに制限するものではなく、他の様々なカウンタを用いても良い。
(第1の実施の形態の変形例2)
第1の実施形態の割り込み処理監視装置150では、タイマ152に設定される初期値を特権ソフトウェア131が送信する初期値設定要求に含まれる任意の値としたが、特権ソフトウェア131から送信される初期値設定要求には設定する初期値を含まず、製造時又は出荷時にROM等に予め書き込んでおいた初期値を設定することも可能である。そこで、第1の実施形態の変形例2では、初期値を製造時又は出荷時にROM等に予め書き込んでおく例とする。
本変形例のように、初期値をROM等に書き込むことで、後で初期値を変更することを防止できると共に、意図的にタイマ152の初期値を偽る攻撃から情報処理装置100を保護することができる。なお、本変形例にかかる情報処理装置の構成及び処理については、第1の実施形態と同様なので説明を省略する。
また、本変形例では、タイマがカウントダウン形式であり初期値を予め書き込んでおく例を挙げたが、初期値のみ書き込むことに制限するものではない。例えばタイマにアップカウンタを用いた場合、最大値をROM等に予め書き込んでもよい。
(第1の実施の形態の変形例3)
第1の実施形態では、割り込みコントローラ140から割り込み処理監視装置150及びプロセッサ120に対して割り込みが発生したことを示す通知を行っていた。しかしながら、第1の実施形態は、割り込み処理監視装置150に対して送信されるデバイス割り込みの通知を、割り込みコントローラ140からの通知に制限するものではない。
そこで第1の実施形態の変形例3では、デバイスコントローラ161〜163から直接、割り込み処理監視装置150に対して割り込みが発生したことを示す通知が送信される例とする。図10に示すように、デバイスコントローラ群161〜163と割り込みコントローラ140とを接続する専用線において、経路の途中で分岐している専用線1001が割り込み処理監視装置150と接続されている。
これに伴い、割り込みコントローラ140から割り込みが発生した旨を通知するための専用線1002が、プロセッサ120のみと接続されるよう変更された。また、システムLSI1010は、専用線1001及び専用線1002以外の構成が、第1の実施形態のシステムLSI110と同様なので説明を省略する。
これにより、任意のデバイスによる割り込みが発生した場合、デバイスコントローラ群161〜163が割り込みコントローラ140及び割り込み処理監視装置150の制御部151に対して、直接割り込みが発生したことを通知する。これにより、検出部155は、直接デバイスコントローラ群161〜163から送信された通知に基づいて、割り込みを検出することができる。
(第1の実施の形態の変形例4)
第1の実施形態では、割り込みコントローラ140から割り込み処理監視装置150及びプロセッサ120に対して割り込みが発生したことを示す通知を行っていた。しかしながら、割り込みが発生したことを示す通知の信号が、必ず割り込みコントローラ140を介する必要はない。
図11に示すように、本変形例にかかる情報処理装置1100は、上述した第1の実施の形態にかかる情報処理装置100とは、割り込みコントローラ140が削除された構成を有している点で異なる。以下の説明では、上述した実施の形態1と同一の構成要素には同一の符号を付してその説明を省略している。
図11に示すように、本変形例にかかる情報処理装置1100では、デバイスコントローラ群161〜163と、プロセッサ120及び割り込み処理監視装置150とを専用線で接続している。これにより、デバイスコントローラ群161〜163から直接、プロセッサ120及び割り込み処理監視装置150に対して割り込みが発生したことを示す通知が送信される。検出部155は、直接デバイスコントローラ群161〜163から送信された通知に基づいて、割り込みを検出することができる。
また、本変形例における情報処理装置1100の各構成が行う処理は、本実施の形態における情報処理装置100の各構成が行う処理とは、デバイスから割り込みコントローラ140を介さずに直接プロセッサ120及び割り込み処理監視装置150に対して割り込み通知を行っている点と、特権ソフトウェア131や第1のゲストOS132及び第2のゲストOS133が発生した割り込みを確認する際、割り込みコントローラ140に対して行わず、直接デバイスに対して行う点のみ異なる。
そこで、第3のデバイス173から割り込みが発生してから所定時間内に第1のゲストOS132から特権ソフトウェア131に割り込みの発生が通知される例について説明する。
図12は、第3のデバイス173から割り込みを示す通知を受け付けた後、割り込み処理監視装置150のタイマ初期値設定部153が、所定時間内に特権ソフトウェア131からタイマ152の初期値設定要求を受け付けた例を示している。このとき、図12に示すように、第3のデバイス173、プロセッサ120及び割り込み処理監視装置150との間で通信が行われている。
図12のステップS1201〜S1202は、図5のステップS501〜S502と同様の処理手順のため説明を省略する。
そして、第3のデバイス173は、プロセッサ120上で動作している第1のゲストOS132に対して、第3のデバイスコントローラ163を経由して、割り込みを要求する旨を通知する(ステップS1203)。さらに、第3のデバイス173は、ステップS1203に示した通知とほぼ同時に、割り込み処理監視装置150に対して割り込みの発生を通知する(ステップS1204)。
図12のステップS1205〜S1207は、図5のステップS506〜S508と同様の処理手順のため説明を省略する。
次に、プロセッサ120上の特権ソフトウェア131は、割り込み要求の確認を第3のデバイス173に対して行う(ステップS1208)。このように特権ソフトウェア131は、接続された各デバイスに対して割り込み要求の確認を行う。これにより、割り込み要求を行ったデバイスを確認できる。
図12のステップS1209〜S1210は、図5のステップS511〜S512と同様の処理手順のため説明を省略する。
なお、第3のデバイス173から割り込みが発生してから所定時間内に第1のゲストOS132から特権ソフトウェア131に割り込みの発生が通知されず、プロセッサ120上で動作するソフトウェアが変更されない場合等の処理手順は、図12で示した第3のデバイス173からの割り込み通知、プロセッサ120から発信される割り込みの確認以外の処理手順が第1の実施の形態の図6〜図8の処理手順と同様なので、説明を省略する。
(第1の実施の形態の変形例5)
第1の実施の形態はデバイスコントローラ群161〜163から直接オンチップバス180や割り込みコントローラ140に接続していた。しかしながら、この場合、プロセッサ120の最上位の特権モードで動作するゲストOSが接続されている不正なアクセスを行い、デバイスに割り込みを発生させる等の攻撃が可能である。そこで、第1の実施形態の変形例5では、デバイスに対する、ゲストOS等のソフトウェアからのアクセス制御を細かく設定して、デバイスを保護する例について説明する。
図13に示すように、情報処理装置1300は、上述した第1の実施の形態にかかる情報処理装置100とは、デバイスアクセス制御装置1321〜1323が追加されていること、保護領域1340が追加され、そして特権状態管理装置190とは処理が異なる特権状態管理装置1330に変更された構成を有している点で異なる。以下の説明では、上述した第1の実施の形態と同一の構成要素には同一の符号を付してその説明を省略している。
特権状態管理装置1330は、情報処理装置1300が特権状態であるか否かを示す信号を、各デバイスアクセス制御装置1321〜1323及び保護領域1340に対して通知する。なお、特権状態管理装置1330は、第1の実施形態の特権状態管理装置190と同様に割り込み処理監視装置150に対しても通知を行う。なお、割り込み処理監視装置150に対する通知は、第1の実施形態で説明したので省略する。
これにより、情報処理装置1300は、デバイスアクセス制御装置1321〜1323が保持する設定情報に対する書き込みを、情報処理装置1300が特権状態つまり特権ソフトウェア131が動作している時だけに制限することができる。また、情報処理装置1300は、保護領域1340に対する読み込み又は書き込み処理を、特権状態つまり特権ソフトウェア131が動作している時に制限することができる。
保護領域1340は、特権ソフトウェア131に限りアクセスが許可されている記憶領域とする。保護領域1340は、デバイスを管理するための情報などを格納する記憶手段であり、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶手段により構成することができる。
また、保護領域1340は、後述するデバイスアクセス制御装置1321〜1323で用いる設定データを格納している。そして、保護領域1340は、特権状態管理装置1330から情報処理装置1300が特権状態であることを通知されている時に書き込み要求を受け付けた場合、当該書き込み要求が特権ソフトウェア131から行われたものとして、書き込み要求を許可する。
特権ソフトウェア131は、保護領域1340に格納されているデバイスアクセス制御装置1321〜1323に設定するデバイスアクセス制御用情報を読み出す。その後特権ソフトウェア131は、読み出したデバイスアクセス制御用情報を用いて、デバイスアクセス制御装置1321〜1323の設定を行う。
デバイスアクセス制御用情報とは、例えば第1のデバイス171に対して、第1のゲストOS132がアクセス可であり、そして第2のゲストOS133がアクセス不可能であること等を含む情報とする。
第1のデバイスアクセス制御装置1321は、第1のデバイスコントローラ161及び特権状態管理装置1330と接続されている。そして、第1のデバイスアクセス制御装置1321は、格納されている設定に応じて、ゲストOS毎に第1のデバイス171に対するアクセスを許容するか否か判断し、許容すると判断した場合にゲストOSから受け付けたデータの送信又はゲストOSへのデータの送信を行う。このように、第1のデバイスアクセス制御装置1321が、ゲストOSによるデバイスへのアクセスを制御することで、安全性が向上する。
また、第1のデバイスアクセス制御装置1321は、特権ソフトウェア131に限り設定の変更要求を受け付ける。第1のデバイスアクセス制御装置1321は、特権状態管理装置1330からの、情報処理装置1300が特権状態であるか否かの通知により、特権ソフトウェア131からのアクセスであるか否かを判断する。これにより、プロセッサ120の最上位の特権モードで動作するゲストOSによる、第1のデバイスアクセス制御装置1321そのものに対するアクセスを保護でき、第1のデバイスアクセス制御装置1321の設定の書き換えを防止することができる。
また、第2のデバイスアクセス制御装置1322は第2のデバイスコントローラ162と接続されていることを除けば、第1のデバイスアクセス制御装置1321と同様なので説明を省略する。また、第3のデバイスアクセス制御装置1323は第3のデバイスコントローラ163と接続されていることを除けば、第1のデバイスアクセス制御装置1321と同様なので説明を省略する。
なお、本変形例では、デバイスアクセス制御装置とデバイスコントローラを別の構成としたが、1つの装置にこれらの構成を含めることにしてもよい。
本変形例では、保護領域1340に格納されているデバイスアクセス制御装置1321〜1323の設定内容は、特権ソフトウェア131しか書き換えられない。さらに、保護領域1340に格納されているデバイスアクセス制御用情報は、特権ソフトウェア131しか書き換えられない。これにより、情報処理装置1300は、悪意のあるソフトウェアによる攻撃からより強固に保護することができる。
本変形例にかかる情報処理装置1300では、上述した構成を備えることで、デバイスアクセス制御装置1321〜1323用の制御データを悪意のあるソフトウェアから保護することができる。これにより、情報処理装置1300の安全性がさらに向上する。
以上のように、本発明にかかるデバイス制御装置は、複数のゲストOSで動作を行う際に、任意のデバイスから割り込みが生じた場合に適切にゲストOSの切り替えを行う技術として有用である。
第1の実施の形態にかかる情報処理装置の構成を示すブロック図である。 プロセッサ上で動作するソフトウェア構成を示した図である。 割り込み処理監視装置が管理しているタイマの状態の遷移を示した状態遷移図である。 割り込み処理監視装置の処理手順を示すフローチャートである。 情報処理装置の各構成間で行われた通信手順を示した第1の例を示すシーケンス図である。 情報処理装置の各構成間で行われた通信手順を示した第2の例を示すシーケンス図である。 情報処理装置の各構成間で行われた通信手順を示した第3の例を示すシーケンス図である。 情報処理装置の各構成間で行われた通信手順を示した第4の例を示すシーケンス図である。 第1の実施形態の変形例1にかかる割り込み処理監視装置の構成を示すブロック図である。 第1の実施形態の変形例3にかかる情報処理装置の構成を示すブロック図である。 第1の実施形態の変形例4にかかる情報処理装置の構成を示すブロック図である。 第1の実施形態の変形例4にかかる情報処理装置の各構成間で行われた通信手順を示した例を示すシーケンス図である。 第1の実施形態の変形例5にかかる情報処理装置の構成を示すブロック図である。
符号の説明
100、1000、1100、1300 情報処理装置
110、1010、1110、1310 システムLSI
120 プロセッサ
121 記憶制御部
122 制御部
123 演算部
124 プロセッサリセット制御部
125 割り込み受付部
130 オンチップメモリ
131 特権ソフトウェア
132 第1のゲストOS
133 第2のゲストOS
140 割り込みコントローラ
141 デバイス割り込み通知部
142 デバイス割り込み処理部
143 デバイス割り込み設定部
150 割り込み処理監視装置
151 制御部
152 タイマ
153 タイマ初期値設定部
154 プロセッサリセット信号発生部
155 検出部
156 判断部
161 第1のデバイスコントローラ
162 第2のデバイスコントローラ
163 第3のデバイスコントローラ
171 第1のデバイス
172 第2のデバイス
173 第3のデバイス
180 オンチップバス
190、1330 特権状態管理装置
201 ハードウェア群
211 割り込み管理ルーチン
221、222 割り込み処理ルーチン
910 割り込み処理監視装置
911 タイマ最大値設定部
912 タイマ
913 制御部
1001、1002 専用線
1321 第1のデバイスアクセス制御装置
1322 第2のデバイスアクセス制御装置
1323 第3のデバイスアクセス制御装置
1340 保護領域

Claims (9)

  1. ソフトウェアに従って動作するプロセッサと、
    デバイスから前記プロセッサに対する割り込みを管理する特権ソフトウェアを記憶する記憶手段と、
    前記ソフトウェアを実行しているときに前記デバイスから割り込みを検出すると前記特権ソフトウェアを前記記憶手段から呼び出すOSを記憶するOS記憶手段と、
    前記プロセッサ上で前記OSが動作しているときに前記デバイスから前記OSへの割り込みを検出する検出手段と、
    前記デバイスから前記OSへの割り込みを検出してから所定の第1の時間を経過するまでに前記OSが前記特権ソフトウェアを前記記憶手段から呼び出したか否かを判断する判断手段と、
    前記OSが前記特権ソフトウェアを前記記憶手段から呼び出していないと前記判断手段によって判断された場合、前記プロセッサに対してリセットを行うリセット手段と、
    を備えることを特徴とするデバイス制御装置。
  2. 前記割り込みを検出した際に、所定の第1の時間を計測するための時間計測手段を、さらに備え、
    前記判断手段は、前記時間計測手段が前記所定の第1の時間を計測した後に、前記OSによる前記特権ソフトウェアの呼び出しが行われているか否か判断すること、
    を特徴とする請求項1に記載のデバイス制御装置。
  3. 前記特権ソフトウェアは、前記OSからの呼び出しに応じて、前記プロセッサ上での動作を開始した場合に、前記特権ソフトウェアが動作を開始したことを示す開始通知を、前記判断手段に対して通知し、
    前記判断手段は、前記開始通知を受け付けた場合に、前記OSによる前記特権ソフトウェアの呼び出しが行われたと判断すること、
    を特徴とする請求項1又は2に記載のデバイス制御装置。
  4. 前記プロセッサ上で動作しているソフトウェアが前記特権ソフトウェアであるか否か判断する特権判断手段と、をさらに備え、
    前記判断手段は、前記第1の時間を経過した後、前記開始通知を受け付けていないが、前記特権判断手段により前記特権ソフトウェアであると判断された場合に、前記第1の時間経過後の所定の第2の時間を経過するまでに、前記OSによる前記特権ソフトウェアの呼び出しが行われているか否か再度判断すること、
    を特徴とする請求項3に記載のデバイス制御装置。
  5. 前記判断手段は、前記第2の時間を経過した後、前記開始通知を受け付けておらず、前記特権判断手段により前記特権ソフトウェアではないと判断された場合に、前記OSによる前記特権ソフトウェアの呼び出しが行われていないと判断すること、
    を特徴とする請求項4に記載のデバイス制御装置。
  6. 前記OS記憶手段に記憶される前記OSは、前記プロセッサ上で動作している時に、前記デバイスからの割り込みを検出した場合に、当該デバイスが当該OSで制御可能であるか否かにかかわらず、前記プロセッサ上で動作するソフトウェアとして前記特権ソフトウェアを呼び出すこと、
    を特徴とする請求項1乃至5のいずれか一つに記載のデバイス制御装置。
  7. 前記デバイスから割り込みを受け付けた場合に当該割り込みを無視するか否か判断し、無視しないと判断した場合に前記割り込みを前記プロセッサに出力する割り込み制御手段と、をさらに備えることを特徴とする請求項1乃至6のいずれか一つに記載のデバイス制御装置。
  8. 前記割り込み制御手段は、前記デバイスから受け付けた割り込みを無視しないと判断した場合に、さらに前記割り込みを前記検出手段に出力することを特徴とする請求項7に記載のデバイス制御装置。
  9. 前記OSが前記デバイスに対してアクセス可能か否かを前記特権ソフトウェアにより設定された設定情報に応じて、前記プロセッサ上で動作しているOS毎にデバイスに対するアクセスを制御するアクセス制御手段を、
    さらに備えることを特徴とする請求項1乃至8のいずれか一つに記載のデバイス制御装置。
JP2006348504A 2006-12-25 2006-12-25 デバイス制御装置 Expired - Fee Related JP4249779B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006348504A JP4249779B2 (ja) 2006-12-25 2006-12-25 デバイス制御装置
US11/896,848 US7730249B2 (en) 2006-12-25 2007-09-06 Device control apparatus that calls an operating system to control a device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006348504A JP4249779B2 (ja) 2006-12-25 2006-12-25 デバイス制御装置

Publications (2)

Publication Number Publication Date
JP2008158899A JP2008158899A (ja) 2008-07-10
JP4249779B2 true JP4249779B2 (ja) 2009-04-08

Family

ID=39544562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006348504A Expired - Fee Related JP4249779B2 (ja) 2006-12-25 2006-12-25 デバイス制御装置

Country Status (2)

Country Link
US (1) US7730249B2 (ja)
JP (1) JP4249779B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8689224B2 (en) * 2007-09-26 2014-04-01 The Boeing Company Methods and systems for preserving certified software through virtualization
WO2009099045A1 (ja) * 2008-02-04 2009-08-13 Nec Corporation トレース・障害観測システム、トレース・障害観測方法及びトレース・障害観測プログラム
US8522237B2 (en) * 2008-04-09 2013-08-27 The Boeing Company Virtualizing embedded systems
GB2462258B (en) * 2008-07-28 2012-02-08 Advanced Risc Mach Ltd Interrupt control for virtual processing apparatus
US7827321B2 (en) 2008-10-02 2010-11-02 International Business Machines Corporation Central processing unit measurement facility
US9449314B2 (en) * 2008-10-02 2016-09-20 International Business Machines Corporation Virtualization of a central processing unit measurement facility
US8239526B2 (en) 2008-11-14 2012-08-07 Oracle International Corporation System and method for performance data collection in a virtual environment
US8549516B2 (en) * 2008-12-23 2013-10-01 Citrix Systems, Inc. Systems and methods for controlling, by a hypervisor, access to physical resources
US8738793B2 (en) * 2009-12-30 2014-05-27 Honeywell International Inc. Priority selection mechanism for driving outputs from control logic for controllers of various protocols
US9063836B2 (en) * 2010-07-26 2015-06-23 Intel Corporation Methods and apparatus to protect segments of memory
US8042186B1 (en) * 2011-04-28 2011-10-18 Kaspersky Lab Zao System and method for detection of complex malware
US8891138B2 (en) * 2011-06-28 2014-11-18 Dialogic Corporation Adaptive fax timers which adjust current time value based on predicted response time
US8966478B2 (en) 2011-06-28 2015-02-24 The Boeing Company Methods and systems for executing software applications using hardware abstraction
US8972642B2 (en) * 2011-10-04 2015-03-03 Qualcomm Incorporated Low latency two-level interrupt controller interface to multi-threaded processor
US10613897B1 (en) * 2016-12-21 2020-04-07 Ca, Inc. Systems and methods for creating program-specific execution environments
CN111552992B (zh) * 2020-03-19 2023-11-14 中国电子科技集团公司第七研究所 一种不对称安全级别的双***多模通信架构

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612293A (ja) 1992-06-24 1994-01-21 Fujitsu General Ltd マイクロコンピュータの暴走防止方法
US5392052A (en) * 1993-04-28 1995-02-21 Eberwine; Mark A. Position reporting emergency location system
JPH1015201A (ja) 1996-06-28 1998-01-20 Sophia Co Ltd 遊技制御装置
JP2000066926A (ja) 1998-08-18 2000-03-03 Nec Ic Microcomput Syst Ltd Osを使用したプログラミング時の暴走検出方法
JP3659062B2 (ja) 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
US7219264B2 (en) * 2003-05-09 2007-05-15 Tekelec Methods and systems for preserving dynamic random access memory contents responsive to hung processor condition

Also Published As

Publication number Publication date
US20080155153A1 (en) 2008-06-26
US7730249B2 (en) 2010-06-01
JP2008158899A (ja) 2008-07-10

Similar Documents

Publication Publication Date Title
JP4249779B2 (ja) デバイス制御装置
EP2601588B1 (en) Providing fast non-volatile storage in a secure environment
US10445154B2 (en) Firmware-related event notification
JP6063941B2 (ja) システム管理要求のための仮想高特権モード
JP6481900B2 (ja) ハードウェア構成レポーティング用の装置、ハードウェア構成アービトレーションの方法、プログラム、機械可読記録媒体、及び、ハードウェア構成アービトレーション用の装置
KR20180099682A (ko) 가상 머신 감사를 위한 시스템 및 방법들
JP5335634B2 (ja) システム管理モードの特権レベルを保護するコンピュータ
EP3365794B1 (en) Techniques for protecting memory pages of a virtual computing instance
US8843742B2 (en) Hypervisor security using SMM
CN112818327A (zh) 基于TrustZone的用户级代码和数据安全可信保护方法及装置
CN113806745B (zh) 验证检查的方法、计算***及机器可读存储介质
US20070174600A1 (en) Interface for communicating physical presence requests
WO2013069587A1 (ja) 情報処理空間管理方法、外部デバイス及び情報処理装置
US10430223B2 (en) Selective monitoring of writes to protected memory pages through page table switching
TWI655555B (zh) 基本輸入輸出系統之保護設備與方法
Xu et al. virtCCA: Virtualized Arm Confidential Compute Architecture with TrustZone
EP4273722A1 (en) Terminal chip and measurement method therefor
Svensson Strict separation between OS and USB driver using a hypervisor
JP2014112304A (ja) 情報処理装置、及びファイルのインストール方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090106

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140123

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees