JP4982347B2 - 画像情報の更新を検出するプログラム、方法および画像処理装置 - Google Patents

画像情報の更新を検出するプログラム、方法および画像処理装置 Download PDF

Info

Publication number
JP4982347B2
JP4982347B2 JP2007319351A JP2007319351A JP4982347B2 JP 4982347 B2 JP4982347 B2 JP 4982347B2 JP 2007319351 A JP2007319351 A JP 2007319351A JP 2007319351 A JP2007319351 A JP 2007319351A JP 4982347 B2 JP4982347 B2 JP 4982347B2
Authority
JP
Japan
Prior art keywords
image information
writing
storage unit
guest
image
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
JP2007319351A
Other languages
English (en)
Other versions
JP2009145932A (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 JP2007319351A priority Critical patent/JP4982347B2/ja
Priority to US12/314,244 priority patent/US8416253B2/en
Priority to EP08253923A priority patent/EP2071454A1/en
Priority to CN2008101846229A priority patent/CN101458812B/zh
Publication of JP2009145932A publication Critical patent/JP2009145932A/ja
Application granted granted Critical
Publication of JP4982347B2 publication Critical patent/JP4982347B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
    • G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533—Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Input (AREA)

Description

この発明は、仮想計算機上で動作するアプリケーション等で描画された画像情報の更新を検出するプログラム、方法および画像処理装置に関するものである。
近年、1台のハードウェアで複数の仮想計算機を動作させる仮想計算機環境が実現されている。例えば、Xen(非特許文献1)、およびVMWare(非特許文献2)などが、仮想計算機の実行を制御するソフトウェアとして知られている。
仮想計算機環境では、仮想計算機モニタ(VMM)上で複数のゲストOSが動作する。VMMは、複数のゲストOSのハードウェアリソースへのアクセスの調停などを行う。一般に、VMMは、ネットワークカードなどの共有リソースへのアクセスは制御するが、ゲストOSごとに割り当てられるグラフィックメモリなどへのアクセスには関与しない。したがって、画面を更新する際は、ゲストOSがグラフィックメモリに画像情報を描画し、VMMが画像情報に基づいて画面を更新する必要がある。ところが、上述のようにVMMはゲストOSのグラフィックメモリへのアクセスに関与しないため、ゲストOSの描画イベントがVMMに伝わらない。そこで、VMMは、ゲストOSの描画完了を検知して画面を更新する機能を備える必要がある。
VMMがゲストOSから通知を受けて画面更新を行う方法として、以下の2つが考えられる。
(1)ゲストOSからの明示的な通知は行なわず、VMMで画面更新を検知する。
(2)ゲストOSから明示的にVMMに画面更新を通知する。
例えば、Xenでは(1)の方法を用いている。すなわち、Xenでは、ゲストOSは改変せずに、タイマーを用いてVMMからゲストOSにポーリングをかけ、画面更新の有無を調べるという手法が用いられている。
一方、VMWareでは、(2)の方法を用いており、ゲストOSのビデオドライバを改変して、描画の区切りでゲストOSのビデオドライバからVMMに対して画面更新通知を発行するという手法が用いられている。
http://xen.org/ http://www.vmware.com/
しかしながら、上記(1)の方法では、グラフィックメモリに描画を終えたタイミングが分からず、描画途中の画像を表示する可能性がある。また、上記(2)の方法では、ゲストOSのビデオドライバを仮想計算機環境に合わせて改変する必要があり、汎用性がない。
本発明は、上記に鑑みてなされたものであって、ゲストOSを改変することなく適切なタイミングで画像情報の更新を検出することができるプログラム、方法および画像処理装置を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、コンピュータに実行させる画像情報の更新部分を検出する更新検出プログラムであって、前記コンピュータは、画像情報を記憶可能な画像記憶部と、予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、を備え、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定手順と、前記判定手順が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出手順と、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ手順と、を前記コンピュータに実行させ、前記検出手順は、前記判定手順が、前記画像情報の書き込み完了時に実行される予め定められた関数によって予め定められたレジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、前記検出手順は、前記判定手順が、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって前記レジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する、更新検出プログラムである。また。本発明は、コンピュータに実行させる画像情報の更新部分を検出する更新検出プログラムであって、前記コンピュータは、画像情報を記憶可能な画像記憶部と、予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、前記コンピュータは、前記画像記憶部に対する前記画像情報の書き込み完了時に実行される予め定められた関数が実行されたときに例外を発生する例外発生部と、を備え、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定手順と、前記判定手順が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出手順と、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ手順と、を前記コンピュータに実行させ、前記検出手順は、前記判定手順が、前記例外が発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、前記例外発生部は、前記画像記憶部に対する前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数が実行されたときに例外を発生する、更新検出プログラムである。また。本発明は、コンピュータに実行させる画像情報の更新部分を検出する更新検出プログラムであって、前記コンピュータは、画像情報を記憶可能な画像記憶部と、予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、を備え、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定手順と、前記判定手順が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出手順と、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ手順と、を前記コンピュータに実行させ、前記検出手順は、前記判定手順が、前記画像情報の書き込み完了時に実行される予め定められた関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、前記検出手順は、前記判定手順が、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する、更新検出プログラムである。
また、本発明は、画像処理装置で実行される画像情報の更新部分を検出する更新検出方法であって、前記画像処理装置は、画像情報を記憶可能な画像記憶部と、予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、を備え、判定部が、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定ステップと、検出部が、前記判定ステップが、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出ステップと、エミュレータ部が、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータステップと、を含み、前記検出ステップは、前記判定ステップが、前記画像情報の書き込み完了時に実行される予め定められた関数によって予め定められたレジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、前記検出ステップは、前記判定ステップが、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって前記レジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する。また、本発明は、画像処理装置で実行される画像情報の更新部分を検出する更新検出方法であって、前記画像処理装置は、画像情報を記憶可能な画像記憶部と、予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、前記画像記憶部に対する前記画像情報の書き込み完了時に実行される予め定められた関数が実行されたときに例外を発生する例外発生部と、を備え、判定部が、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定ステップと、検出部が、前記判定ステップが、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出ステップと、エミュレータ部が、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータステップと、を含み、前記検出ステップは、前記判定ステップが、前記例外が発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、前記例外発生部は、前記画像記憶部に対する前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数が実行されたときに例外を発生する。また、本発明は、画像処理装置で実行される画像情報の更新部分を検出する更新検出方法であって、前記画像処理装置は、画像情報を記憶可能な画像記憶部と、予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、を備え、判定部が、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定ステップと、検出部が、前記判定ステップが、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出ステップと、エミュレータ部が、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータステップと、を含み、前記検出ステップは、前記判定ステップが、前記画像情報の書き込み完了時に実行される予め定められた関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、前記検出ステップは、前記判定ステップが、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する。
また、本発明は、画像情報を記憶可能な画像記憶部と、予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定部と、前記判定部が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を検出する検出部と、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ部と、を備え、前記検出部は、前記判定部が、前記画像情報の書き込み完了時に実行される予め定められた関数によって予め定められたレジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、前記検出部は、前記判定部が、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって前記レジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する。また、本発明は、画像情報を記憶可能な画像記憶部と、予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定部と、前記判定部が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を検出する検出部と、前記画像記憶部に対する前記画像情報の書き込み完了時に実行される予め定められた関数が実行されたときに例外を発生する例外発生部と、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ部と、を備え、前記検出部は、前記判定部が、前記例外が発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、前記例外発生部は、前記画像記憶部に対する前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数が実行されたときに例外を発生する。また、本発明は、画像情報を記憶可能な画像記憶部と、予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定部と、前記判定部が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を検出する検出部と、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ部と、を備え、前記検出部は、前記判定部が、前記画像情報の書き込み完了時に実行される予め定められた関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、前記検出部は、前記判定部が、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する。
本発明によれば、ゲストOSを改変することなく適切なタイミングで画像情報の更新を検出することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかるプログラム、方法および画像処理装置の最良な実施の形態を詳細に説明する。
(第1の実施の形態)
第1の実施の形態にかかる画像処理装置は、ハードウェアレベルで仮想化を支援するプロセッサと、描画が完了したときに所定のレジスタにアクセスする関数を実行するビデオドライバを備える。そして、所定のレジスタにアクセスしたときにVMMに制御が移るようにプロセッサを設定することにより、描画完了をVMMで検知可能とし、描画完了の検知を契機として画像情報の更新部分の検出処理を実行する。
なお、これまでのVMMは、ソフトウェアによって仮想化の処理を行ってきた。一方、ハードウェアであるプロセッサやチップセットが仮想化を支援することにより、仮想化の負荷を軽減できると考えられる。そこで、IntelのVT(Virtualization Technology)やAMDのSVM(Secure Virtual Machine)などの仮想化支援機能を備えたプロセッサが提供され始めている。本実施の形態では、このような、ハードウェアレベルの仮想化支援機能を実装したプロセッサの利用を想定している。
ここで、ハードウェアレベルの仮想化支援機能を備えるプロセッサの概要について説明する。
このようなプロセッサでは、1つのプロセッサで複数のOSを同時に稼動するための新たな動作モードとして、「ゲストモード」が用意されている。ゲストOSは、この「ゲストモード」で動作する。また、このようなプロセッサでは、仮想化専用命令セットが用意されている。例えば、「ゲストモード」に入る際にはVM Entry命令が実行される。また、「ゲストモード」から抜ける際にはVM Exit命令が実行される。なお、「ゲストモード」を抜けると、VMMが動作するモード(以下、ホストモードという)に遷移する。
VM Entryは、ゲストOSを起動するときなどに実行される。一方、VM Exitは、ゲストOSでの特権命令発行時やI/Oからの割り込み発生時など、ゲストOSからVMMに処理を戻す条件が発生したときに実行される。
各ゲストOSを管理するために、Intel VTの場合はVMCS(Virtual Machine Control Structure)、AMD SVMの場合はVMCB(Virtual Machine Control Block)と呼ばれるゲストOS管理構造体が利用される。ゲストOS管理構造体には、例えば、ゲストOSからVMMに処理を戻す条件が記述される。
次に、本実施の形態で利用するビデオドライバの概要について説明する。本実施の形態では、ゲストOSのビデオドライバとして、DirectFBに対応したビデオドライバを利用する。DirectFBのビデオドライバは、グラフィックカードがマルチバッファリング(後述)をサポートしている場合に、描画完了時にバッファを切り替えるためのFlipRegion関数を備えている。
すなわち、FlipRegion関数は、グラフィックカードがマルチバッファリングをサポートしている場合に発行される。仮想計算機環境の場合は、グラフィックカードをエミュレートするエミュレータ部141(後述)がマルチバッファリングをサポートしている場合に、FlipRegion関数が実行される。また、FlipRegion関数が実行されると、表示用バッファ(後述)のアドレス(表示開始アドレス)を指定するレジスタがアクセスされる。
本実施の形態では、このレジスタへのアクセスを条件としてプロセッサがVMMに処理を移すようにゲストOS管理構造体を設定することにより、描画完了を契機として画像情報の更新部分の検出処理を実行するように構成する。これにより、描画が完了したタイミングで更新部分を検出して最新画像を出力できるため、描画途中の画像を出力することを防止できる。また、DirectFBのビデオドライバ自体の改変は不要であるため、汎用性を高めることができる。
ここで、マルチバッファリングの詳細について説明する。マルチバッファリングとは、フレームバッファを1つのみ利用するシングルバッファリングと異なり、複数のバッファ(表示用バッファおよび描画用バッファ)を利用して画像情報を描画する方法である。なお、表示開始アドレスとは、表示用バッファの先頭アドレスを意味する。
シングルバッファリングでは、描画用バッファと表示用バッファとを区別していないため、描画の過程が表示画面に現れて画面がちらつく場合がある。図1は、シングルバッファリングでの表示画面の一例を示す図である。図1に示すように、シングルバッファリングでは描画する過程が画面上に見える場合がある。
そこで、画面のちらつきを防ぐために、2つのバッファを利用するダブルバッファリングや、3つのバッファを利用するトリプルバッファリングなどのマルチバッファリングという手法が用いられる。
マルチバッファリングでは、画像情報を表示用バッファに直接描画せず、描画用バッファに対してすべての画像情報の描画が完了してから、表示用バッファに転送する。なお、マルチバッファリングには、表示用バッファを固定し、描画が完了した描画用バッファから表示用バッファにコピーを行う方法や、描画完了時に表示用バッファと描画用バッファのポインタを切り替える方法などが存在する。また、トリプルバッファリングの場合は、3つのバッファのうち、1つを表示用バッファ、2つを描画用バッファとして用いる。
図2は、ポインタを切り替える方法によるダブルバッファリングの概要を示す図である。図2に示すように、表示用バッファ21は、描画用バッファ22に対する描画が完了するまで画像情報は描画されない。描画用バッファ22への描画が完了すると、ポインタを切り替えることにより、描画用バッファ22を新たな表示用バッファ24とし、表示用バッファ21を新たな描画用バッファ23とする。これにより、常に描画が完了した画像情報を画面に表示することができる。
次に、画像処理装置の構成について説明する。図3は、第1の実施の形態にかかる画像処理装置100のブロック図である。図3に示すように、画像処理装置100は、ハードウェア110と、ハードウェア110を利用して機能するソフトウェア構成として、VMM120と、ゲストOS130と、管理OS140と、アプリケーション150とを備えている。なお、同図ではゲストOS130を1つのみ記載しているが、VMM120上では複数のゲストOS130を実行することができる。この場合、後述の、フレームバッファ領域、表示開始アドレスレジスタ領域、バックアップ記憶部、エミュレータ部、検出部、および条件記憶部に記憶されるゲストOS管理構造体は、それぞれ、ゲストOSの台数分用意される。
最初に、同図を用いて仮想化技術の概要について説明する。上述のように、仮想計算機環境では、VMM120上で複数のゲストOS130が動作する。VMM120は、複数のゲストOS130からの共有ハードウェアリソースへのアクセスの調停などを行う。
ゲストOS130は、仮想的な計算機環境を動作させるOSである。管理OS140は、ゲストOS130を管理する権限を持っており、ゲストOS130の起動や、ゲストOS130の代わりに共有ハードウェアリソースにアクセスする処理などを行う。
アプリケーション150は、ゲストOS130上で動作する各種処理を提供するプログラムである。1つのゲストOS130と、このゲストOS130上で動作するアプリケーション150とによって、1つの仮想計算機環境が実現される。
次に、各構成部の詳細について説明する。
ハードウェア110は、プロセッサ111と、条件記憶部112と、バックアップ記憶部113と、グラフィックカード114と、フレームバッファ領域と表示開始アドレスレジスタ領域とを備えている。なお、同図では省略しているが、ハードウェア110は、ROMおよび通信I/Fなどのハードウェアリソースを備えてもよい。
プロセッサ111は、IntelのVTやAMDのSVMなどのように、ハードウェアレベルの仮想化支援機能を備えるプロセッサである。条件記憶部112は、ゲストOS130からVMM120に処理を戻す条件を含むゲストOS管理構造体を記憶する。
ここで、条件記憶部112に記憶されるゲストOS管理構造体の具体的な設定方法について説明する。第1の実施の形態では、以下のようにゲストOS管理構造体を設定することにより、MMIO(Memory Mapped I/O)を介したレジスタアクセスを検知する。
まず、Intel VTのVMCSの設定例について説明する。この場合、VMCSのVM Exit制御領域の「Primary Processor-Based VM-Execution Controls」、「I/O-Bitmap」、およびVM Exit情報領域の「Exit Reason」、「Exit Qualification」を用いる。
具体的には、まず、「Primary Processor-Based VM-Execution Controls」の25ビット目の「Use I/Obitmaps」を1に設定する。また、「I/O-Bitmap」のうち、アクセスを検知すべきレジスタに対応するI/Oポート番号に対応するビットを1に設定する。
これにより、検知すべきレジスタがアクセスされるとVM Exitが発生する。そして、この例では、VM Exit情報領域の「Exit Reason」の0−15ビット(VM Exitの原因)が30となり、また、「Exit Qualification」の16−31ビット(ポート番号)が対応するポート番号になる。これらの情報を参照することにより、VMM120は、検知すべきレジスタへのアクセスが原因でVM Exitが発生したことを判定することができる。
次に、AMD SVMのVMCBの設定例について説明する。この場合、VMCBの制御エリアの「I/O Permission Map」、「Exception Bitmap」、「EXITCODE」、および「EXITINFO1」を用いる。
具体的には、まず、VMCBのバイトオフセット「040h」(「h」は16進数表記であることを表す)の「I/O Permission Map」のうち、アクセスを検出すべきレジスタに対応するI/Oポート番号に対応するビットを1に設定する。
これにより、検知すべきレジスタがアクセスされるとVM Exitが発生する。そして、この例では、「EXITCODE」が「7Bh」となり、また、「EXITINFO1」の16−31ビットが対応するポート番号になる。これらの情報を参照することにより、VMM120は、検知すべきレジスタへのアクセスが原因でVM Exitが発生したことを判定することができる。
バックアップ記憶部113は、フレームバッファ114a(後述)に記憶されている画像情報全体のバックアップデータを記憶可能な記憶部である。
グラフィックカード114は、画像描画に関する機能を備えた拡張カードであり、フレームバッファ114aと、表示開始アドレスレジスタ114bとを備えている。
フレームバッファ114aは、ゲストOS130の画面の1画面分の画像情報を記憶する記憶部である。表示開始アドレスレジスタ114bは、表示開始アドレスを記憶するレジスタである。
なお、条件記憶部112、バックアップ記憶部113、フレームバッファ領域、および表示開始アドレスレジスタ領域は、RAM(Random Access Memory)、HDD(Hard Disk Drive)、光ディスク、メモリカードなどの一般的に利用されているあらゆる記憶媒体により構成することができる。フレームバッファ領域115aは、グラフィックカード114のフレームバッファ114aに対応する領域として、ゲストOS130のそれぞれについて確保される領域である。表示開始アドレスレジスタ領域115bは、グラフィックカード114の表示開始アドレスレジスタ114bに対応する領域として、ゲストOS130のそれぞれについて確保される領域である。
VMM120は、条件設定部121と、判定部122とを備えている。
条件設定部121は、画像情報の描画が完了したときにVMM120に処理が移るようにゲストOS管理構造体に条件を事前に設定する。上述のように、DirectFBのビデオドライバでは、描画完了時にFlipRegion関数が呼ばれると表示開始アドレスレジスタ114bがアクセスされる。そこで、条件設定部121は、表示開始アドレスレジスタ114bがアクセスされたときにVM Exitが発生するように、ゲストOS管理構造体を設定する。これにより、画面更新完了の際にVMM120に処理を移すことができる。
判定部122は、VM ExitによりVMM120に処理が移ったときに、処理が移った原因を判定する。例えば、プロセッサ111がIntelのVTに対応する場合、判定部122は、ゲストOS管理構造体(VMCS)のVM Exit情報領域の「Exit Reason」を参照して原因を判定する。また、プロセッサ111がAMDのSVMに対応する場合、判定部122は、ゲストOS管理構造体(VMCB)の制御エリアの「EXITCODE」および「EXITINFO1」を参照して原因を判定する。
なお、VMM120は、判定した原因に応じて各種処理を実行する。例えば、原因が表示開始アドレスレジスタ114bへのアクセスと判定された場合は、エミュレータ部141のイベント処理部141a(後述)に、表示開始アドレスレジスタ114bがアクセスされたことを通知する。
ゲストOS130は、画像表示に関する機能として、グラフィックライブラリ131と、ビデオドライバ132とを備えている。なお、ゲストOS130は、画像表示に関する機能以外にも、仮想的な計算機環境を動作させるために必要なあらゆる機能を備えている。
グラフィックライブラリ131は、描画部131aを備えている。
描画部131aは、アプリケーション150から指定された描画命令に従い、各種画像処理を行ってその結果である画像情報を出力する。例えば、描画部131aは、ある領域を拡大・縮小する描画命令を受けた場合、描画命令に含まれる座標情報などから拡大・縮小する領域を特定し、当該領域に対して拡大・縮小を行った結果である領域の座標情報などを含む画像情報を出力する。なお、座標情報とは、例えば、1024×768ピクセルの画面の場合、画面左上を(0、0)、画面右下を(1023、767)とするような座標系で表された情報をいう。また、描画部131aは、画像情報の座標情報をフレームバッファ114aの仮想アドレスに変換して、書き込み部132a(後述)に渡す。また、描画部131aは、画像情報の描画が完了したときに、書き込み部132a(後述)に描画の完了を通知する。
ビデオドライバ132は、上述のようにDirectFBに対応したドライバであり、書き込み部132aを備えている。なお、適用可能なドライバはDirectFB対応のドライバに限られず、描画完了時に特定の関数や命令を実行し、特定のレジスタにアクセスするように構成されているドライバであれば、あらゆる種類のドライバを利用できる。
書き込み部132aは、描画部131aにより指定された仮想アドレスに対応する物理メモリ領域に、書き込みが要求された画像情報を書き込む。
また、書き込み部132aは、描画部131aからの通知により画像情報の描画が完了したことを検知したときにFlipRegion関数を実行する。なお、書き込み部132aは、上述のようにエミュレータ部141がマルチバッファリングをサポートしている場合に、描画が完了したときにFlipRegion関数を実行する。したがって、書き込み部132aは、マルチバッファリングをサポートしていることをエミュレータ部141から事前に通知されている必要がある。
管理OS140は、詳細な構成として、エミュレータ部141と、検出部142とを備えている。
エミュレータ部141は、ゲストOS130に対して、マルチバッファリングをサポートしているグラフィックカードのエミュレーションを提供する。すなわち、エミュレータ部141は、マルチバッファリングをサポートしていることをゲストOS130に通知する。これにより、ゲストOS130のビデオドライバ132内の書き込み部132aは、描画完了時にFlipRegion関数を発行するようになる。
なお、エミュレータ部141は、マルチバッファリングのエミュレーションを行う場合、実際に複数のバッファを利用して通常のマルチバッファリング処理を行っても良いし、実際には1枚のバッファのみを利用してマルチバッファリングをエミュレーションしても良い。いずれの場合も、書き込み部132aは、(1)画像情報の描画、(2)更新通知(FlipRegion関数)、(3)バッファ切り替えが完了するまで待つ、(4)次の画像情報の描画、という処理を順次実行する。1枚のバッファのみを利用する場合は、表示用バッファの更新画像を生成するまで次の画像情報の描画を待たせる必要があるため、エミュレータ部141は、更新画像の生成が完了したときにバッファ切り替えが完了したように見せかけるエミュレーションを行う。
エミュレータ部141は、さらに詳細な構成として、イベント処理部141aを備えている。
イベント処理部141aは、表示開始アドレスレジスタ114bがアクセスされたことをVMM120から通知された場合に、画面更新のイベントが発生したと判断し、更新部分の検出処理を開始するために検出部142にイベント発生を通知する。
検出部142は、画面が更新された場合に、バックアップ記憶部113の画像情報と、フレームバッファ114aの最新の画像情報とを比較し、相違点を含む矩形を更新部分として検出する。
次に、このように構成された第1の実施の形態にかかる画像処理装置100による画像処理について説明する。画像処理は、画像情報をフレームバッファ114aおよびバックアップ記憶部113に書き込む画像書き込み処理と、バックアップした画像情報と最新の画像情報とを比較して画像情報の更新部分を検出する更新部分検出処理に分けられる。
最初に、画像書き込み処理および更新部分検出処理の概要について図4を用いて説明する。
画像書き込み処理では、まず、予めフレームバッファ114aの全体のバックアップをバックアップ記憶部113に保存する。フレームバッファ114aのピクセルの値によって初期状態か否かを判断できる場合は、この時点でのバックアップの保持を省略するように構成してもよい。例えば、初期状態ですべてのピクセルが黒の場合であれば、ピクセルがすべて黒の場合はバックアップが存在しない初期状態であることを判断できるため、バックアップの保持を省略できる。
この状態から、アプリケーション150が画面表示のためにグラフィックライブラリ131を介してフレームバッファ114aに対する描画命令を送る(1)。フレームバッファ114aに対する描画完了を検知すると、検出部142が、更新部分検出処理を開始する(2)。検出部142は、バックアップした画像情報と、フレームバッファ114aの最新の画像情報とを比較し、更新部分の矩形を検出する(3)。
検出した更新部分の画像情報は、ゲストOS130の画面として表示される(4)。また、バックアップ記憶部113の画像情報をフレームバッファ114aの最新の画像情報と同じ画像情報に更新する(5)。
なお、画像処理装置100を仮想計算機サーバとし、ネットワークを介して接続された端末装置にゲストOS130の画面を送信し、端末装置上で画面を表示するように構成してもよい。この場合、上記(4)で更新部分の画像情報を表示する代わりに、更新部分の画像情報を端末装置に送信する。
次に、更新部分検出処理の詳細な流れについて図5を用いて説明する。図5は、更新部分検出処理の全体の流れを示すフローチャートである。
なお、条件設定部121が、表示開始アドレスレジスタ114bにアクセスするとVM Exitが発生するようにゲストOS管理構造体を予め設定していることを前提とする。また、書き込み部132aは、マルチバッファリングをサポートしていることをエミュレータ部141から通知されていることを前提とする。
この状態から、まず、アプリケーション150が、実行した処理に関連する画面情報の更新などが発生した場合に、表示画面の描画を要求する描画命令を出力する(ステップS501)。次に、描画部131aが、描画命令に応じて画像処理を行ない、その結果である画像情報を生成する(ステップS502)。次に、書き込み部132aが、フレームバッファ114aの指定された位置に、要求された画像情報を書き込む(ステップS503)。フレームバッファ114aに対する描画が完了すると、書き込み部132aが、マルチバッファリングのバッファ切り替えのために、FlipRegion関数を実行する(ステップS504)。そして、この関数により、表示開始アドレスレジスタ114bがアクセスされる。
プロセッサ111は、表示開始アドレスレジスタ114bがアクセスされると、ゲストOS管理構造体の設定に従い、VM Exitを発生させる(ステップS505)。これにより、ゲストOS130からVMM120に処理が移る。VMM120の判定部122は、ゲストOS管理構造体のVM Exit情報領域を参照し、VM Exitが発生した原因を判定する。そして、判定部122は、画面更新が原因であると判定した場合、画面更新をエミュレータ部141に通知する(ステップS506)。
イベント処理部141aは、通知を受信すると検出部142に対して検出処理の開始を指示する(ステップS507)。検出部142は、フレームバッファ114aに書き込まれた最新の画像情報と、バックアップ記憶部113に保存されている画像情報とを比較し、相違する部分を更新部分として検出する(ステップS508)。
検出部142は、検出した更新部分を出力して(ステップS509)、更新部分検出処理を終了する。
このように、第1の実施の形態にかかる画像処理装置では、マルチバッファリングで利用される表示開始アドレスレジスタ114bにアクセスしたときにVMMに制御が移るようにプロセッサを設定することにより、描画完了をVMMで検知可能とし、描画完了の検知を契機として画像情報の更新部分の検出処理を実行することができる。
これにより、描画途中の画像を表示する可能性がなく、表示画像の見栄えが良くなる。また、プロセッサの設定を変更するのみで描画完了をVMMでフックすることができるため、仮想環境に合わせてグラフィックライブラリやビデオドライバを改変する必要がない。すなわち、標準的なグラフィックライブラリやビデオドライバを用いて上記機能を実現することができる。
(変形例)
これまでは、VMMがハードウェア上で直接実行される例について説明した。これに対し、VMMをハードウェア上で間接的に実行するように構成しても、上記実施の形態と同様の機能を実現できる。間接的に実行するとは、ハードウェア上では、動作基盤となるホストOSが動作し、このホストOS上でさらにVMMが動作することを意味する。
図6は、このように構成した第1の実施の形態の変形例にかかる画像処理装置600のブロック図である。図6に示すように、画像処理装置600は、ハードウェア110を利用して機能するソフトウェア構成として、ホストOS660と、VMM620と、ゲストOS130と、アプリケーション150とを備えている。
本変形例では、ホストOS660が追加され、管理OS140が削除され、管理OS140内の構成であるエミュレータ部141および検出部142がVMM620内に含まれる点が第1の実施の形態のブロック図である図3と異なっている。その他の構成および機能は、第1の実施の形態にかかる画像処理装置100の構成を表すブロック図である図3と同様であるので、同一符号を付し、ここでの説明は省略する。また、画像書き込み処理および更新部分検出処理は、図4および図5と同様であるのでその説明を省略する。
(第2の実施の形態)
第1の実施の形態では、描画完了通知の際に表示開始アドレスレジスタがアクセスされることを利用し、表示開始アドレスレジスタへのアクセスをVMMでフックすることにより画面更新を検出していた。
しかし、ビデオドライバの種類によっては、このように描画完了時に所定のレジスタにアクセスしない場合がある。一方、VESA(Video Electronics Standards Association)のビデオドライバのように、描画完了通知の際にBIOSコールを発行するビデオドライバが存在する。そこで、第2の実施の形態では、描画完了時に所定のBIOSコールを発行するビデオドライバを備える例について説明する。第2の実施の形態では、所定のBIOSコールが発行されたときにVMMに制御が移るようにプロセッサを設定して描画完了をVMMで検知可能とし、描画完了の検知を契機として画像情報の更新部分の検出処理を実行する。
最初に、本実施の形態で利用するビデオドライバの概要について説明する。本実施の形態では、ゲストOSのビデオドライバとしてVESAのビデオドライバを利用する。VESAのビデオドライバは、グラフィックカードがマルチバッファリングをサポートしている場合に、描画完了時にバッファを切り替えるためのSet Display Start BIOSコールを実行する。
このBIOSコールをVMMでフックする方法は、プロセッサの動作モードによって異なる。なお、ここでのプロセッサの動作モードは、ゲストモードとホストモードとを有する上述の動作モードと異なるモードであり、リアルモードとプロテクトモードとを含む動作モードを意味する。
リアルモードは、アクセス可能なメモリ領域は0〜1Mbytesまでで、同時実行できるプログラムは1つが前提の動作モードである。一方、プロテクトモードは、アクセス可能なメモリ領域の拡大、マルチタスクサポート、データセキュリティ機能などが追加された動作モードである。
プロセッサは、電源投入時は必ずリアルモードで起動され、その後ソフトウェアによってプロテクトモードに移行する。通常は、コンピュータへの電源投入直後以外はプロテクトモードで動作する。
プロセッサがリアルモードで動作中の場合は、BIOSコールを発行する際にINT 10hソフトウェア割り込みが発生する。そこで、INT 10hソフトウェア割り込みをフックしてVM Exitさせることができる。
一方、プロセッサがプロテクトモードで動作中の場合は、VMMでフック可能な割り込みやレジスタアクセスや例外が発生しない。そこで、この場合は、まず該当するBIOSコールのアドレスを、プロセッサ内のデバッグレジスタにブレークポイントとして設定する。これにより、該当するBIOSコールが発行されるとデバッグ例外を発生させることができる。そして、このデバッグ例外の発生をフックすることにより、VM Exitさせることができる。
すなわち、本実施の形態では、所定のBIOSコールの発行により発生するINT 10hソフトウェア割り込みまたはデバッグ例外を条件としてVM Exitが発生するように、ゲストOS管理構造体を設定する。これにより、プロセッサがリアルモードおよびプロテクトモードのいずれの動作モードで動作中の場合であっても、画面更新完了の際にVMMに処理を移すことができる。
次に、第2の実施の形態にかかる画像処理装置の機能と構成について説明する。図7は、第2の実施の形態にかかる画像処理装置700のブロック図である。図7に示すように、画像処理装置700は、ハードウェア710と、ハードウェア710を利用して機能するソフトウェア構成として、VMM720と、ゲストOS730と、管理OS140と、アプリケーション150とを備えている。
第2の実施の形態では、ハードウェア710内の条件記憶部712が記憶するゲストOS管理構造体の内容、VMM720内の条件設定部721の機能、およびゲストOS730の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる画像処理装置100の構成を表すブロック図である図3と同様であるので、同一符号を付し、ここでの説明は省略する。
条件記憶部712は、所定のBIOSコールに伴って発生する割り込みまたは例外に対応して、ゲストOS730からVMM720に処理を戻す条件を含むゲストOS管理構造体を記憶する。
ここで、条件記憶部712に記憶されるゲストOS管理構造体の具体的な設定方法について説明する。第2の実施の形態では、以下のようにゲストOS管理構造体を設定することにより、INT 10hソフトウェア割り込み、およびデバッグ例外を検知する。
まず、Intel VTのVMCSの設定例について説明する。この場合、VMCSのVM Exit制御領域の「Exception Bitmap」、およびVM Exit情報領域の「Exit Reason」、「Exit Qualification」、「IDT-Vectoring Information」を用いる。
INT 10hソフトウェア割り込みを検知する場合は、まず、プロセッサ111の中に備えられているTSS(Task State Segment)のソフトウェア割り込みリダイレクションビットマップの10ビット目を1に設定する。そして、「Exception Bitmap」のうち、一般保護例外に対応するビットを1にする。INT 10hソフトウェア割り込みにより、一般保護例外またはタスクスイッチが発生するとVM Exitが発生する。
一般保護例外の場合、VM Exit情報領域の「Exit Reason」の0−15ビットが0、「IDT-Vectoring Information」の0−7ビット(割り込みのベクタ)が10、8−10ビット(割り込みの種類)が4になる。また、タスクスイッチの場合、VM Exit情報領域の「Exit Reason」の0−15ビットが9、「Exit Qualification」の30−31ビット(タスクスイッチの発生原因)が3、「IDT-Vectoring Information」の0−7ビットが10、8−10ビットが4になる。
これらの情報を参照することにより、VMM720は、INT 10hソフトウェア割り込みが原因でVM Exitが発生したことを判定することができる。
デバッグ例外を検知する場合は、「Exception Bitmap」のうち、デバッグ例外に対応するビットを1にする。これにより、デバッグ例外が発生するとVM Exitが発生する。そして、デバッグ例外が原因でVM Exitが発生すると、VM Exit情報領域の「Exit Reason」の0−15ビットが0、「Exit Qualification」の0−3ビット(B0−B3フラグ)がブレークポイント番号になる。
これらの情報を参照することにより、VMM720は、デバッグ例外が原因でVM Exitが発生したことを判定することができる。
次に、AMD SVMのVMCBの設定例について説明する。この場合、VMCBの制御エリアの「Exception Bitmap」、「EXITCODE」、および「EXITINFO1」を用いる。
INT 10hソフトウェア割り込みを検知する方法としては、すべてのソフトウェア割り込みを対象としてVM Exitさせる方法と、INT 10hソフトウェア割り込みのみを対象としてVM Exitさせる方法が存在する。
前者の場合、VMCBのバイトオフセット「00Ch」の21ビット目を1にする。これにより、ソフトウェア割り込みの発生に応じてVM Exitが発生し、「EXITCODE」が「75h」、「EXITINFO1」の0−7ビットが10になる。
後者の場合、プロセッサ111の中に備えられているCR4(Control Register 4)の0ビット目を1にして、TSSのソフトウェア割り込みリダイレクションビットマップの10ビット目を1にして、VMCBのバイトオフセット「008h」の「Exception Bitmap」のうち、一般保護例外に対応する13ビット目を1にする。これにより、INT 10hソフトウェア割り込みの発生に応じてVM Exitが発生し、「EXITCODE」が「53h」になる。
これらの情報を参照することにより、VMM720は、INT 10hソフトウェア割り込みが原因でVM Exitが発生したことを判定することができる。
デバッグ例外を検知する場合は、VMCBのバイトオフセット「008h」の「Exception Bitmap」のうち、デバッグ例外に対応する1ビット目を1にする。これにより、デバッグ例外の発生に応じてVM Exitが発生し、「EXITCODE」が「41h」になる。
これらの情報を参照することにより、VMM720は、デバッグ例外が原因でVM Exitが発生したことを判定することができる。
条件設定部721は、このような設定方法に従い、画像情報の描画が完了したときにVMM720に処理が移るようにゲストOS管理構造体に条件を事前に設定する。また、条件設定部721は、描画完了時に発行されるBIOSコールのアドレスを調べ、デバッグレジスタにブレークポイントとして設定するブレークポイント設定処理を実行する。ブレークポイント設定処理の詳細については後述する。
ゲストOS730は、グラフィックライブラリ131およびビデオドライバ732に加え、例外発生部733をさらに備えている。
ビデオドライバ732は、上述のようにVESAに対応したドライバであり、書き込み部732aを備えている。書き込み部732aは、画像情報の描画が完了したときに、表示用バッファを切り替えるためにSet Display Start BIOSコールを実行する点が、第1の実施の形態の書き込み部132aと異なっている。
なお、適用可能なドライバはVESA対応のドライバに限られず、描画完了時に特定のBIOSコールを実行するドライバであれば、あらゆる種類のドライバを利用できる。
例外発生部733は、デバッグレジスタに設定された仮想アドレスの示すメモリ領域がアクセスされたときにデバッグ例外を発生する。本実施の形態では、Set Display Start BIOSコールのアドレスをデバッグレジスタに設定するため、例外発生部733は、このBIOSコールが実行されるとデバッグ例外を発生する。
なお、Set Display Start BIOSコールのアドレスは以下のようにして取得し、デバッグレジスタに設定することができる。図8は、第2の実施の形態におけるブレークポイント設定処理の全体の流れを示すフローチャートである。ブレークポイント設定処理とは、指定したアドレスにプログラムが来た場合にプログラムを中断するための処理である。本実施の形態では、Set Display Start BIOSコールのアドレスにプログラムが来るとプログラムが中断され、VMM720に処理が移る。
まず、条件設定部721は、ブレークポイントとして設定するアドレスを調べるために、BIOSイメージの先頭32Kb内に存在するProtected Mode Information Block構造体を見つける。条件設定部721は、この構造体から、プロテクトモード時のSet Display Start BIOSコールのアドレスを取得することができる(ステップS801)。なお、BIOSイメージは、図示しない不揮発性メモリなどに記憶されている。
Set Display Start BIOSコールのアドレスを取得した後、条件設定部721は、取得したアドレスをブレークポイントとしてデバッグレジスタに設定する。
ここで、デバッグレジスタの構成例について図9〜図11を用いて説明する。なお、デバッグレジスタは、DR0〜DR7の8個のレジスタを含む。このうち、DR4およびDR5は、予約済みで使用されないデバッグレジスタであるため、説明を省略する。
図9は、デバッグレジスタDR0〜DR3の構成例を示す図である。DR0〜DR3は、ブレークポイントとする仮想アドレスをそれぞれ設定するレジスタであり、デバッグアドレスレジスタと呼ばれる。
図10は、デバッグレジスタDR6の構成例を示す図である。DR6は、デバッグ例外が発生したときの状況を示すレジスタであり、デバッグ状態レジスタと呼ばれる。同図で、B0〜B3フラグがセットされている場合、対応するデバッグアドレスレジスタに設定されているブレークポイントのブレーク条件が満たされてデバッグ例外が発生したことを示す。
図11は、デバッグレジスタDR7の構成例を示す図である。DR7は、デバッグアドレスレジスタに設定されているブレークポイントのブレーク条件を設定するレジスタであり、デバッグ制御レジスタと呼ばれる。
L0〜L3フラグまたはG0〜G3フラグがセットされている場合、対応するデバッグアドレスレジスタに設定されているブレークポイントが有効になっていることを示す。L0〜L3フラグは現在のタスクに対してのみ有効にする場合にセットされ、G0〜G3フラグはすべてのタスクに対して有効にする場合にセットされる。
R/W0〜R/W3フィールドは、対応するデバッグアドレスレジスタに設定されているブレークポイントのブレーク条件を示す。命令の実行でブレークする場合は、「00」を設定する。LEN0〜LEN3フィールドは、対応するデバッグアドレスレジスタに設定されているブレークポイントのサイズを示す。命令の実行でブレークする場合は、「00」を設定する。
また、GDフラグがセットされている場合、デバッグレジスタを上書きするときにデバッグ例外が発生する。このフラグをセットすることにより、条件設定部721により設定したブレークポイントをゲストOS730により上書きされるのを防ぐことができる。
このように構成されたデバッグレジスタの場合、取得したアドレスをブレークポイントとして設定するためには、デバッグアドレスレジスタであるDR0〜DR3のいずれかと、デバッグ制御レジスタであるDR7の対応するビットを設定する。
図8に戻り、デバッグレジスタの設定処理の詳細について説明する。条件設定部721は、DR0〜DR3のいずれかに、取得したアドレスをブレークポイントとして設定する(ステップS802)。ここでは、ブレークポイント0(DR0)を利用する例について説明する。この場合、条件設定部721は、デバッグアドレスレジスタ(DR0)に取得したアドレスを設定する。
次に、条件設定部721は、デバッグ制御レジスタ(DR7)のG0フラグを1に設定する(ステップS803)。また、条件設定部721は、DR7のR/W0フィールドを「00」に設定する(ステップS804)。さらに、条件設定部721は、DR7のLEN0フィールドを「00」に設定する(ステップS805)。
なお、図8の記号「*」は、デバッグアドレスレジスタDR0〜DR3のいずれにブレークポイントを設定したかによって数値が変わることを意味している。すなわち、例えばDR1にブレークポイントを設定した場合には、DR7のG1フラグ、R/W1フィールド、LEN1フィールドを設定することを意味する。
このようにデバッグレジスタを設定することにより、設定したアドレスにアクセスするとデバッグ例外が発生する。なお、デバッグ状態レジスタ(DR6)のB0フラグを確認することにより、デバッグ例外が発生した原因がブレークポイント0へのアクセスであることを確認できる。
次に、このように構成された第2の実施の形態にかかる画像処理装置700による更新部分検出処理について図12を用いて説明する。なお、画像処理の概要は、第1の実施の形態の図4と同様であるので説明を省略する。図12は、第2の実施の形態における更新部分検出処理の全体の流れを示すフローチャートである。
ステップS1201からステップS1203までの、画像情報書き込み処理は、第1の実施の形態にかかる画像処理装置100におけるステップS501からステップS503までと同様の処理なので、その説明を省略する。
画像情報を書き込み後、書き込み部732aは、マルチバッファリングのバッファ切り替えのために、Set Display Start BIOSコールを発行する(ステップS1204)。
このBIOSコールが発行されると、上述のようなデバッグレジスタの設定に従い、例外発生部733がデバッグ例外を発生する(ステップS1205)。なお、プロセッサ111がリアルモードで動作中の場合は、デバッグ例外の代わりにINT 10hソフトウェア割り込みが発生する。
プロセッサ111は、デバッグ例外またはINT 10hソフトウェア割り込みが発生すると、ゲストOS管理構造体の設定に従い、VM Exitを発生させる(ステップS1206)。これにより、ゲストOS730からVMM720に処理が移る。
ステップS1207からステップS1210までの、原因判定処理、検出処理、更新部分出力処理は、第1の実施の形態にかかる画像処理装置100におけるステップS506からステップS509までと同様の処理なので、その説明を省略する。
このように、第2の実施の形態にかかる画像処理装置では、所定のBIOSコールの発行時にVMMに制御が移るようにプロセッサを設定することにより、描画完了をVMMで検知可能とし、描画完了の検知を契機として画像情報の更新部分の検出処理を実行することができる。
次に、第1または第2の実施の形態にかかる画像処理装置のハードウェア構成について図13を用いて説明する。図13は、第1または第2の実施の形態にかかる画像処理装置のハードウェア構成を示す説明図である。
第1または第2の実施の形態にかかる画像処理装置は、プロセッサ111などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、HDD、CD(Compact Disc)ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス61を備えており、通常のコンピュータを利用したハードウェア構成となっている。
第1または第2の実施の形態にかかる画像処理装置で実行される更新検出プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、第1または第2の実施の形態にかかる画像処理装置で実行される更新検出プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1または第2の実施の形態にかかる画像処理装置で実行される更新検出プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、第1または第2の実施の形態の更新検出プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
第1または第2の実施の形態にかかる画像処理装置で実行される更新検出プログラムは、上述した各部(VMM、管理OS)を含むモジュール構成となっており、実際のハードウェアとしてはプロセッサ111が上記記憶媒体から更新検出プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
以上のように、本発明にかかるプログラム、方法および画像処理装置は、ハードウェアレベルの仮想化支援機能を実装したプロセッサを利用した仮想計算機環境に適している。
シングルバッファリングでの表示画面の一例を示す図である。 ポインタを切り替える方法によるダブルバッファリングの概要を示す図である。 第1の実施の形態にかかる画像処理装置のブロック図である。 画像書き込み処理および更新部分検出処理の概要を示す図である。 更新部分検出処理の全体の流れを示すフローチャートである。 第1の実施の形態の変形例にかかる画像処理装置のブロック図である。 第2の実施の形態にかかる画像処理装置のブロック図である。 第2の実施の形態におけるブレークポイント設定処理の全体の流れを示すフローチャートである。 デバッグレジスタの構成例を示す図である。 デバッグレジスタの構成例を示す図である。 デバッグレジスタの構成例を示す図である。 第2の実施の形態における更新部分検出処理の全体の流れを示すフローチャートである。 第1または第2の実施の形態にかかる画像処理装置のハードウェア構成を示す説明図である。
符号の説明
21、24 表示用バッファ
22、23 描画用バッファ
52 ROM
53 RAM
54 通信I/F
61 バス
100 画像処理装置
110 ハードウェア
111 プロセッサ
112 条件記憶部
113 バックアップ記憶部
114 グラフィックカード
114a フレームバッファ
114b 表示開始アドレスレジスタ
115a フレームバッファ領域
115b 表示開始アドレスレジスタ領域
120 VMM
121 条件設定部
122 判定部
130 ゲストOS
131 グラフィックライブラリ
131a 描画部
132 ビデオドライバ
132a 書き込み部
140 管理OS
141 エミュレータ部
141a イベント処理部
142 検出部
150 アプリケーション
600 画像処理装置
620 VMM
660 ホストOS
700 画像処理装置
710 ハードウェア
712 条件記憶部
720 VMM
721 条件設定部
730 ゲストOS
732 ビデオドライバ
732a 書き込み部
733 例外発生部

Claims (9)

  1. コンピュータに実行させる画像情報の更新部分を検出する更新検出プログラムであって、
    前記コンピュータは、
    画像情報を記憶可能な画像記憶部と、
    予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、を備え、
    前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定手順と、
    前記判定手順が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出手順と、
    前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ手順と、
    を前記コンピュータに実行させ、
    前記検出手順は、前記判定手順が、前記画像情報の書き込み完了時に実行される予め定められた関数によって予め定められたレジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、
    前記検出手順は、前記判定手順が、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって前記レジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する、
    更新検出プログラム。
  2. コンピュータに実行させる画像情報の更新部分を検出する更新検出プログラムであって、
    前記コンピュータは、
    画像情報を記憶可能な画像記憶部と、
    予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、
    前記コンピュータは、前記画像記憶部に対する前記画像情報の書き込み完了時に実行される予め定められた関数が実行されたときに例外を発生する例外発生部と、を備え、
    前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定手順と、
    前記判定手順が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出手順と、
    前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ手順と、
    を前記コンピュータに実行させ、
    前記検出手順は、前記判定手順が、前記例外が発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、
    前記例外発生部は、前記画像記憶部に対する前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数が実行されたときに例外を発生する、
    更新検出プログラム。
  3. コンピュータに実行させる画像情報の更新部分を検出する更新検出プログラムであって、
    前記コンピュータは、
    画像情報を記憶可能な画像記憶部と、
    予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、を備え、
    前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定手順と、
    前記判定手順が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出手順と、
    前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ手順と、
    を前記コンピュータに実行させ、
    前記検出手順は、前記判定手順が、前記画像情報の書き込み完了時に実行される予め定められた関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、
    前記検出手順は、前記判定手順が、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する、
    更新検出プログラム。
  4. 画像処理装置で実行される画像情報の更新部分を検出する更新検出方法であって、
    前記画像処理装置は、
    画像情報を記憶可能な画像記憶部と、
    予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、を備え、
    判定部が、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定ステップと、
    検出部が、前記判定ステップが、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出ステップと、
    エミュレータ部が、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータステップと、を含み、
    前記検出ステップは、前記判定ステップが、前記画像情報の書き込み完了時に実行される予め定められた関数によって予め定められたレジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、
    前記検出ステップは、前記判定ステップが、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって前記レジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する、
    更新検出方法。
  5. 画像処理装置で実行される画像情報の更新部分を検出する更新検出方法であって、
    前記画像処理装置は、
    画像情報を記憶可能な画像記憶部と、
    予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、
    前記画像記憶部に対する前記画像情報の書き込み完了時に実行される予め定められた関数が実行されたときに例外を発生する例外発生部と、を備え、
    判定部が、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定ステップと、
    検出部が、前記判定ステップが、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出ステップと、
    エミュレータ部が、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータステップと、を含み、
    前記検出ステップは、前記判定ステップが、前記例外が発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、
    前記例外発生部は、前記画像記憶部に対する前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数が実行されたときに例外を発生する、
    更新検出方法。
  6. 画像処理装置で実行される画像情報の更新部分を検出する更新検出方法であって、
    前記画像処理装置は、
    画像情報を記憶可能な画像記憶部と、
    予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、を備え、
    判定部が、前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定ステップと、
    検出部が、前記判定ステップが、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する検出ステップと、
    エミュレータ部が、前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータステップと、を含み、
    前記検出ステップは、前記判定ステップが、前記画像情報の書き込み完了時に実行される予め定められた関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、
    前記検出ステップは、前記判定ステップが、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する、
    更新検出方法。
  7. 画像情報を記憶可能な画像記憶部と、
    予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、
    前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定部と、
    前記判定部が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を検出する検出部と、
    前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ部と、を備え、
    前記検出部は、前記判定部が、前記画像情報の書き込み完了時に実行される予め定められた関数によって予め定められたレジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、
    前記検出部は、前記判定部が、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって前記レジスタにアクセスされたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する、
    画像処理装置。
  8. 画像情報を記憶可能な画像記憶部と、
    予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、
    前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定部と、
    前記判定部が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を検出する検出部と、
    前記画像記憶部に対する前記画像情報の書き込み完了時に実行される予め定められた関数が実行されたときに例外を発生する例外発生部と、
    前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ部と、を備え、
    前記検出部は、前記判定部が、前記例外が発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、
    前記例外発生部は、前記画像記憶部に対する前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数が実行されたときに例外を発生する、
    画像処理装置。
  9. 画像情報を記憶可能な画像記憶部と、
    予め定められた遷移条件が満たされたときに、ゲストOSを動作させる第1モードから、前記ゲストOSを管理する仮想計算機モニタを動作させる第2モードへ遷移するプロセッサと、
    前記プロセッサが前記第2モードに遷移したときに、遷移の原因を判定する判定部と、
    前記判定部が、前記ゲストOS上で前記画像記憶部に対する前記画像情報の書き込み完了に関連する処理が実行されたことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記画像情報の更新部分を検出する検出部と、
    前記画像情報の書き込み用の記憶部と前記画像情報の表示用の記憶部とを切り替えるマルチバッファリング機能をエミュレートするエミュレータ部と、を備え、
    前記検出部は、前記判定部が、前記画像情報の書き込み完了時に実行される予め定められた関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出し、
    前記検出部は、前記判定部が、前記画像情報の書き込み完了時に前記表示用の記憶部に切り替えることを要求する関数によって割り込みが発生したことが遷移の原因であると判定した場合に、書込み前後で前記画像情報が一致しない部分を表す前記更新部分を検出する、
    画像処理装置。
JP2007319351A 2007-12-11 2007-12-11 画像情報の更新を検出するプログラム、方法および画像処理装置 Expired - Fee Related JP4982347B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007319351A JP4982347B2 (ja) 2007-12-11 2007-12-11 画像情報の更新を検出するプログラム、方法および画像処理装置
US12/314,244 US8416253B2 (en) 2007-12-11 2008-12-05 Apparatus, method, and recording medium for detecting update of image information
EP08253923A EP2071454A1 (en) 2007-12-11 2008-12-09 Apparatus, method, and recording medium for detecting update of image information
CN2008101846229A CN101458812B (zh) 2007-12-11 2008-12-11 用于检测图像信息的更新的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007319351A JP4982347B2 (ja) 2007-12-11 2007-12-11 画像情報の更新を検出するプログラム、方法および画像処理装置

Publications (2)

Publication Number Publication Date
JP2009145932A JP2009145932A (ja) 2009-07-02
JP4982347B2 true JP4982347B2 (ja) 2012-07-25

Family

ID=40352224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007319351A Expired - Fee Related JP4982347B2 (ja) 2007-12-11 2007-12-11 画像情報の更新を検出するプログラム、方法および画像処理装置

Country Status (4)

Country Link
US (1) US8416253B2 (ja)
EP (1) EP2071454A1 (ja)
JP (1) JP4982347B2 (ja)
CN (1) CN101458812B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8045828B2 (en) * 2007-07-09 2011-10-25 Kabushiki Kaisha Toshiba Apparatus for processing images, and method and computer program product for detecting image updates
JP4982347B2 (ja) 2007-12-11 2012-07-25 株式会社東芝 画像情報の更新を検出するプログラム、方法および画像処理装置
JP5010492B2 (ja) * 2008-01-31 2012-08-29 株式会社東芝 通信装置、方法及びプログラム
US9171139B2 (en) 2011-08-05 2015-10-27 Vmware, Inc. Lock screens to access work environments on a personal mobile device
US9465633B2 (en) 2011-08-05 2016-10-11 Vmware, Inc. Displaying applications of a virtual mobile device in a user interface of a mobile device
BR112014009445B1 (pt) 2011-10-21 2021-10-13 Hewlett-Packard Development Company, L.P. Método para um dispositivo eletrônico, meio de armazenagem não-transitório legível por máquina armazenando instruções e dispositivo eletrônico
JP5881835B2 (ja) * 2011-10-21 2016-03-09 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 基本入出力システム(bios)の機能にアクセスするウェブベースのインターフェース
US9436488B2 (en) * 2012-03-27 2016-09-06 Fujitsu Limited Program redundancy among virtual machines and global management information and local resource information arrangement
JP5830496B2 (ja) * 2013-06-07 2015-12-09 株式会社ソニー・コンピュータエンタテインメント ディスプレイコントローラおよび画面転送装置
US9582849B2 (en) * 2013-10-28 2017-02-28 Vmware, Inc. Method and system to virtualize graphic processing services
KR101736041B1 (ko) * 2015-01-13 2017-05-17 한밭대학교 산학협력단 임베디드 cpu-gpu 분산처리를 이용한 영상처리 고속화 방법
CN107924321B (zh) * 2015-09-25 2022-01-18 英特尔公司 针对虚拟机退出的嵌套虚拟化
JP2017169086A (ja) * 2016-03-17 2017-09-21 セイコーエプソン株式会社 表示装置、表示装置の制御方法及びプログラム
JP2018022370A (ja) * 2016-08-04 2018-02-08 キヤノン株式会社 アプリケーション実行装置及びその制御方法、並びにプログラム
WO2018119712A1 (zh) * 2016-12-27 2018-07-05 深圳前海达闼云端智能科技有限公司 视频显示方法、装置、电子设备和计算机程序产品

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187178A (ja) 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US7720672B1 (en) 1995-12-29 2010-05-18 Wyse Technology Inc. Method and apparatus for display of windowing application programs on a terminal
JP3732593B2 (ja) 1996-09-30 2006-01-05 株式会社東芝 画像処理装置
JPH10200757A (ja) * 1997-01-09 1998-07-31 Canon Inc 画像処理装置及びその方法及び画像処理システム
EP0863462B8 (en) 1997-03-04 2010-07-28 Panasonic Corporation Processor capable of efficiently executing many asynchronous event tasks
JP3356677B2 (ja) * 1997-03-04 2002-12-16 松下電器産業株式会社 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ
JP3280306B2 (ja) 1998-04-28 2002-05-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 画像情報送信方法、画像情報更新方法、送信装置及び更新装置
JP3659062B2 (ja) 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
US6957186B1 (en) 1999-05-27 2005-10-18 Accenture Llp System method and article of manufacture for building, managing, and supporting various components of a system
US6601233B1 (en) 1999-07-30 2003-07-29 Accenture Llp Business components framework
US7130807B1 (en) 1999-11-22 2006-10-31 Accenture Llp Technology sharing during demand and supply planning in a network-based supply chain environment
WO2001052056A2 (en) 2000-01-14 2001-07-19 Saba Software, Inc. Method and apparatus for a business applications management system platform
JP2001306308A (ja) 2000-04-11 2001-11-02 Sap Ag データ中心アプリケーションのクラス定義方法
US7181679B1 (en) 2000-05-26 2007-02-20 Newsstand, Inc. Method and system for translating a digital version of a paper
US7506265B1 (en) 2000-07-17 2009-03-17 Microsoft Corporation System and method for displaying images of virtual machine environments
CN1357890A (zh) * 2000-12-05 2002-07-10 简篇 动态随机存取存储器结构及操作方法
US6934698B2 (en) 2000-12-20 2005-08-23 Heart Imaging Technologies Llc Medical image management system
JP4291964B2 (ja) 2001-04-19 2009-07-08 株式会社日立製作所 仮想計算機システム
JP2003084751A (ja) 2001-07-02 2003-03-19 Hitachi Ltd 表示制御装置およびマイクロコンピュータならびにグラフィックシステム
JP4717289B2 (ja) 2001-09-10 2011-07-06 シャープ株式会社 計算機リモート操作システム
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
EP1376360A3 (en) * 2002-06-21 2004-01-07 Sharp Kabushiki Kaisha Automatic backup system
JP2004086550A (ja) 2002-08-27 2004-03-18 Matsushita Electric Ind Co Ltd 表示画面更新システム
JP3740454B2 (ja) * 2002-10-18 2006-02-01 キヤノン株式会社 印刷システムおよび情報処理装置およびプリンタおよび表示制御方法および印刷制御方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
US7484208B1 (en) 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7145566B2 (en) * 2003-07-18 2006-12-05 Microsoft Corporation Systems and methods for updating a frame buffer based on arbitrary graphics calls
US20050108440A1 (en) 2003-11-19 2005-05-19 Intel Corporation Method and system for coalescing input output accesses to a virtual device
US20050132364A1 (en) 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for optimizing context switching between virtual machines
US7526515B2 (en) 2004-01-21 2009-04-28 International Business Machines Corporation Method and system for a grid-enabled virtual machine with movable objects
US7418584B1 (en) * 2004-05-11 2008-08-26 Advanced Micro Devices, Inc. Executing system management mode code as virtual machine guest
US7383405B2 (en) 2004-06-30 2008-06-03 Microsoft Corporation Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity
GB2419702A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures which can be suspended and later reactivated
JP4599135B2 (ja) 2004-11-02 2010-12-15 キヤノン株式会社 情報処理装置及び情報処理方法
KR100844271B1 (ko) 2005-02-15 2008-07-07 에스케이 텔레콤주식회사 대기화면 자동 전환 시스템 및 방법
US7698706B2 (en) 2005-05-20 2010-04-13 International Business Machines Corporation Methods and apparatus for implementing an integrated user interface for managing multiple virtual machines operative in a computing system
JP4955943B2 (ja) 2005-06-28 2012-06-20 クラリオン株式会社 情報端末および計算機資源管理方法
JP2007025073A (ja) 2005-07-13 2007-02-01 Sony Corp データ伝送方法、データ送信装置及びデータ受信装置、並びにプログラム
JP4839049B2 (ja) 2005-09-20 2011-12-14 クラリオン株式会社 情報処理装置および表示画面制御方法
JP4544146B2 (ja) 2005-11-29 2010-09-15 株式会社日立製作所 障害回復方法
US8572159B2 (en) 2005-12-23 2013-10-29 Intel Corporation Managing device models in a virtual machine cluster environment
US20070271560A1 (en) 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations
JP4961835B2 (ja) 2006-05-31 2012-06-27 奥村遊機株式会社 遊技機
US9392078B2 (en) 2006-06-23 2016-07-12 Microsoft Technology Licensing, Llc Remote network access via virtual machine
US9213513B2 (en) 2006-06-23 2015-12-15 Microsoft Technology Licensing, Llc Maintaining synchronization of virtual machine image differences across server and host computers
US7368918B2 (en) 2006-07-27 2008-05-06 Siemens Energy & Automation Devices, systems, and methods for adaptive RF sensing in arc fault detection
US8185893B2 (en) 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
US20080235361A1 (en) 2007-03-21 2008-09-25 David Crosbie Management layer method and apparatus for dynamic assignment of users to computer resources
US8171485B2 (en) 2007-03-26 2012-05-01 Credit Suisse Securities (Europe) Limited Method and system for managing virtual and real machines
WO2008117500A1 (ja) 2007-03-27 2008-10-02 Nec Corporation 仮想マシン運用システム、仮想マシン運用方法およびプログラム
US8677351B2 (en) 2007-03-29 2014-03-18 Vmware, Inc. System and method for delivering software update to guest software on virtual machines through a backdoor software communication pipe thereof
US8230203B2 (en) 2007-03-30 2012-07-24 Intel Corporation Detecting spin loops in a virtual machine environment
US8045828B2 (en) 2007-07-09 2011-10-25 Kabushiki Kaisha Toshiba Apparatus for processing images, and method and computer program product for detecting image updates
JP4982347B2 (ja) 2007-12-11 2012-07-25 株式会社東芝 画像情報の更新を検出するプログラム、方法および画像処理装置
JP5010492B2 (ja) 2008-01-31 2012-08-29 株式会社東芝 通信装置、方法及びプログラム

Also Published As

Publication number Publication date
US20090147014A1 (en) 2009-06-11
US8416253B2 (en) 2013-04-09
JP2009145932A (ja) 2009-07-02
CN101458812B (zh) 2012-03-28
EP2071454A1 (en) 2009-06-17
CN101458812A (zh) 2009-06-17

Similar Documents

Publication Publication Date Title
CN101458812B (zh) 用于检测图像信息的更新的装置和方法
JP4896376B2 (ja) コプロセッサの性能を強化するシステムおよび方法
TWI509518B (zh) 用於改良巢式虛擬化之性能的方法、中央處理單元裝置及系統
US8671411B2 (en) Multithreaded kernel for graphics processing unit
US8429669B2 (en) Virtual machine switching control by prefetching information out of and updating a set of processor control information based on a bitmap having update status
CN101714091B (zh) 用于在操作系统初始化期间显示平台图形的方法和系统
US9507727B2 (en) Page fault injection in virtual machines
US7992147B2 (en) Processor control register virtualization to minimize virtual machine exits
US20220188135A1 (en) Hardware-based protection of virtual function resources
US5963738A (en) Computer system for reading/writing system configuration using I/O instruction
CN117931377A (zh) 指令集架构(isa)仿真方法和装置
JPS593642A (ja) 制御レジスタ処理方式
JP6920286B2 (ja) 例外処理
JP2009134565A (ja) 仮想計算機システム及び仮想計算機システムの制御方法
CN110941408B (zh) 一种kvm虚拟机图形界面输出方法及装置
JP2018092327A (ja) 情報処理装置、情報処理方法、およびプログラム
US11188367B2 (en) Guest operating system physical memory page protection using hypervisor
US20220197679A1 (en) Modifying device status in single virtual function mode
JP3033713B2 (ja) 仮想計算機エミュレート装置
JP2007094986A (ja) シミュレーション装置およびシミュレーション方法
KR101130361B1 (ko) 코프로세서 내의 연산을 스트림라인하는 방법
Corsi et al. A virtual graphics card for teaching device driver design
CN116485628B (zh) 图像显示方法、装置及系统
JP2013196241A (ja) 情報処理装置およびログ取得方法
US11704127B2 (en) Marking current context data to control a context-data-dependent processing operation to save current or default context data to a data location

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101015

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120216

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: 20120327

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: 20120423

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

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees