JP5249920B2 - データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路 - Google Patents

データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路 Download PDF

Info

Publication number
JP5249920B2
JP5249920B2 JP2009503352A JP2009503352A JP5249920B2 JP 5249920 B2 JP5249920 B2 JP 5249920B2 JP 2009503352 A JP2009503352 A JP 2009503352A JP 2009503352 A JP2009503352 A JP 2009503352A JP 5249920 B2 JP5249920 B2 JP 5249920B2
Authority
JP
Japan
Prior art keywords
virtual machine
execution unit
virtual
content
time
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
JP2009503352A
Other languages
English (en)
Other versions
JPWO2009004757A1 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2009503352A priority Critical patent/JP5249920B2/ja
Publication of JPWO2009004757A1 publication Critical patent/JPWO2009004757A1/ja
Application granted granted Critical
Publication of JP5249920B2 publication Critical patent/JP5249920B2/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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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/45558Hypervisor-specific management and integration aspects
    • 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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は仮想化技術を適用し、複数の仮想マシンを搭載した装置において、複数の仮想マシン間で共有するデータを変更した時に、省電力状態の他の仮想マシンにデータの変更を通知する技術に関する。
民生機器などの組み込み機器において動作させるオペレーティングシステム(以下、OS)は、従来のリアルタイムオペレーティングシステム(以下、RTOS)から、Linux(登録商標)やSymbian(登録商標)のような汎用OSへ移行しつつある。しかし、アプリケーションソフトは、ハードウェアやOSに依存したプログラム構造になっている。そのため、例えばRTOS用のアプリケーションソフトを他のOSで動作させるためには、そのOSにあわせるための改変が必要になる。このような移行に伴い、移植するアプリケーションソフトを汎用OSにあわせるための開発量が大きくなるという課題が生じている。
このような課題に対して仮想化技術を用いて1つのハードウェア上で異なるOSの動作を可能にし、既存のOS及びアプリケーションをそのまま利用し、新たな開発量を削減できる可能性がある。なお、仮想化技術については、非特許文献1の38〜45ページに詳しく説明されている。
このような仮想化技術の応用を考えた場合、異なるOS上で動作する2つのアプリケーションソフト間でデータを共有し、連携して動作する必要が生じる場合がある。この場合に対処するために、特許文献1には、複数のOSの動作を制御するOS間制御機能の中にOS間共有メモリやOS間通知機能を持たせ、他のOSが共有データを変更したときにOS間通知機能を用いて、データを共有している他のOSへ共有データの変更を通知する技術が開示されている。
図27は、前記特許文献1に記載された従来の共有データ変更通知機能を示すものである。図27によると、第1のOS上で動作しているタスクC2202と、第2のOS上で動作しているタスクD2203の間で、OS間共有メモリを利用してデータを共有する。なお、OS間共有メモリは、第1のOSと第2のOSとで共有されているメモリ空間から取得するメモリ領域である。まず、タスクC2202が、OS間共有メモリを取得する。そして、取得した共有メモリへデータを登録・変更するときに、OS間通知機能は、その旨をタスクD2203へ通知する。
特開2001−243080号公報 特開2000−347772号公報 UNIX(登録商標) magazine 2007年1月号、株式会社アスキー(2007年)
携帯電話などのバッテリー駆動を前提とした機器で仮想化技術を用いる場合、バッテリーの消費を押さえるために使用されていない仮想マシンを省電力状態(プロセッサがその仮想マシンの実行を一時的に停止する)にすることが望ましい。しかしながら、特許文献1の技術では、共有メモリのデータを変更する場合に、通知先のタスクへ常に通知するようになっている。したがって、このような機能を、上記の携帯電話などに適用すると、バッテリーの消費を押さえるために省電力状態になっている仮想マシンへ共有データの変更が通知されてしまう。この通知を受けた仮想マシンは、そのたびに省電力状態から通常状態へ復帰し、通知先のタスクへ共有データの変更を通知する。そのため、共有するデータを頻繁に変更する場合には、上記の通知が省電力化の妨げになるという問題が発生する。
そこで、本発明は、上記の課題を解決するために、可能な限り省電力化を妨げずに、仮想マシン間の共有データの変更通知することができるデータ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路を提供することを目的とする。
上記の課題を解決するために、本発明の一実施の態様は、コンテンツを再生する再生部と、通常状態及び省電力状態の相互間の切替え機能を有し前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第1仮想実行部と、前記所定の情報を更新する第2仮想実行部と、前記所定の情報を格納するメモリを有し前記第1仮想実行部及び前記第2仮想実行部を管理する仮想マシンモニタとを具備するデータ処理装置であって、前記第1仮想実行部は、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行し、前記仮想マシンモニタは、前記所定の情報の更新があった場合前記所定の時刻が到来するときに、前記更新があった旨を前記第1仮想実行部に通知するものである。
ここで、上記の第1仮想実行部及び第2仮想実行部は、下記の実施の形態1における第1仮想実行部1501及び第2仮想実行部1502が対応する。また、メモリは、共有データ領域1255がその機能を担い、仮想マシンモニタは、仮想マシンモニタ1240がその機能を担う。
上記の構成によれば、前記第1仮想実行部の省電力状態を継続しつつ、前記第1仮想実行部に前記更新があった旨が通知されないためにコンテンツの再生が途中で途切れるのを防止できる。
1.各種実施態様について
本発明の一実施の態様は、コンテンツを再生する再生部と、通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第1仮想実行部と、 前記所定の情報を更新する第2仮想実行部と、前記所定の情報を格納するメモリを有し前記第1仮想実行部及び前記第2仮想実行部を管理する仮想マシンモニタと、を具備し、前記第1仮想実行部は、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行し、前記仮想マシンモニタは、前記所定の情報の更新があった場合前記所定の時刻が到来するときに、前記更新があった旨を前記第1仮想実行部に通知するものである。
本態様によれば、前記仮想マシンモニタは前記所定の情報の更新があった場合に直ちに前記更新があった旨を前記第1仮想実行部に通知して前記第1仮想実行部を省電力状態から通常状態に戻すのではなく、前記所定の情報の更新があった場合であって前記所定の時刻が到来するときに前記更新があった旨を前記第1仮想実行部に通知して前記第1仮想実行部を省電力状態から通常状態に戻すので、前記第1仮想実行部の省電力状態を継続しつつ、前記第1仮想実行部に前記更新があった旨が通知されないためにコンテンツの再生が途中で途切れるのを防止できる。
ここで、前記第1仮想実行部は、前記仮想マシンモニタからの通知によって前記省電力状態から前記通常状態に移行して、前記メモリに格納された更新情報に基づいてコンテンツ再生の継続の可否を判断してもよい。
本態様によると、前記第1仮想実行部は、前記仮想マシンモニタからの通知によって前記電力状態から前記通常状態に移行して前記メモリに格納された更新情報に基づいてコンテンツの再生を継続することにより、前記更新があった旨の通知は前記所定の時刻が到来するときまで前記第1仮想実行部に送信されず省電力状態を継続できるので、前記第1仮想実行部の省電力状態を継続しつつ、コンテンツの再生が途中で途切れるのを防止できる。
ここで、前記仮想マシンモニタは、前記所定の情報の更新がなく前記所定の時刻が到来すると判断した場合、その旨を前記第1仮想実行部に通知して前記第1仮想実行部を前記通常状態に戻してもよい。
また、前記所定の情報の更新がなく前記所定の時刻が到来したと判断した場合、その旨を前記第1仮想実行部に通知して前記第1仮想実行部を前記通常状態に戻してもよい。
本態様は、前記所定の情報の更新がなく前記所定の時刻が到来したと判断した場合、その旨を前記第1仮想実行部に通知し、前記第1仮想実行部を通常状態に戻すものである。
ここで、前記仮想マシンモニタは、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに前記更新があった旨を前記第1仮想実行部に通知して前記第1仮想実行部を前記通常状態に戻す第1のタイミングと、前記所定の情報の更新が無く前記所定の時刻が到来すると判断した場合にその旨を前記第1仮想実行部に通知して前記第1仮想実行部を前記通常状態に戻す第2のタイミングと、を有し、前記第1のタイミングは、前記2のタイミングより前記所定の時刻を起点にして前であってもよい。
本態様によると、前記所定の情報の更新があったと判断した場合と前記所定の情報の更新が無かった場合とで前記第1仮想実行部を前記通常状態に戻すタイミングを異ならせることにより、更新があった場合は更新に要する時間を加味して早めに前記第1仮想実行部を前記通常状態に戻す一方で、更新が無かった場合は更新に要する時間は不要であるのでその分省電力状態を長くすることができるので、更新に要する時間を加味しつつ、省電力状態を最大限継続させて消費電力を最大限削減できる。
ここで、前記仮想マシンモニタは、前記所定の情報の更新が無い状態で前記第1のタイミングを経過した後であって前記第2のタイミングを経過する前に、前記メモリを参照して前記所定の情報の更新があったと判断した場合は、直ちに前記更新があった旨を前記第1仮想実行部に通知して前記第1仮想実行部を前記通常状態に戻してもよい。
本態様によると、前記所定の情報の更新が無い状態で前記第1のタイミングを経過した後であって前記第2のタイミングを経過する前に、前記メモリを参照して前記所定の情報の更新があったと判断した場合は、前記第1のタイミングを経過しているものの、前記第2のタイミングの到来を待たずに前記第1仮想実行部を前記通常状態に戻すので、コンテンツの再生が途中で途切れる可能性はあるものの、その途切れる時間幅を最小限に抑えることができる。
ここで、前記第2仮想実行部は、前記所定の情報を更新する際、前記仮想マシンモニタに前記メモリの格納内容の更新を依頼し、前記仮想マシンモニタは、前記依頼に基づいて前記所定の情報の更新があったと判断し、前記所定の情報の更新情報を前記メモリに格納してもよい。
本態様によると、前記仮想マシンモニタ内のメモリは前記仮想マシンモニタによってのみ更新できる仮想化技術の構成の場合、前記所定の情報を更新する処理を行うのは前記第2仮想実行部であっても、前記第2仮想実行部から前記仮想マシンモニタに前記メモリの格納内容の更新を依頼し、この依頼に基づいて前記仮想マシンモニタの方では前記前記所定の情報の更新の有無を判断するので、仮想化技術において効率的に、前記第1仮想実行部の省電力状態を継続しつつ、コンテンツの再生が途中で途切れるのを防止できる。
ここで、コンテンツの再生を継続するための前記所定の情報は、前記コンテンツの使用権利に関する著作権管理情報であってもよい。
本態様は、コンテンツの再生を継続するための所定の情報を、前記コンテンツの使用権利に関する著作権管理情報とした場合に適用できる。
ここで、コンテンツの再生を継続するための前記所定の情報は、前記コンテンツに継続する次のコンテンツであってもよい。
本態様は、コンテンツの再生を継続するための所定の情報を、前記コンテンツの次のコンテンツを再生するための鍵情報とした場合に適用できる。
ここで、前記再生部は、前記コンテンツの早送りをする機能を有し、前記第1仮想実行部は、前記通常状態において前記所定の情報に基づいてコンテンツの早送りの継続の可否を判断してもよい。
本態様は、前記コンテンツの早送りする場合に適用できる。
ここで、前記仮想マシンモニタは、タイマーを有し、前記所定の情報の更新があったと判断した場合、前記所定の時刻が到来するときまでの時間を前記タイマーを基に取得し、前記取得した時間に基づいて前記更新があった旨を前記第1仮想実行部に通知してもよい。
本態様は、前記仮想マシンモニタにタイマーを設けた場合に適用できる。
また、本発明をシステム、方法、プログラム、記録媒体、集積回路として実現した場合にも、同様の効果が得られる。
2.実施の形態1
以下、本発明の具体的な実施の形態1について、図面を参照しながら説明する。
2.1 コンテンツ権利配信システム1000の構成
図1は、実施の形態1におけるコンテンツ権利配信システム1000の全体図である。図1を用いて、コンテンツ権利配信システム1000の全体構成を説明する。
図1に示すように、コンテンツ権利配信システム1000は、権利管理サーバ1100と携帯端末1200、記憶装置1300から構成される。
権利管理サーバ1100及び携帯端末1200は、ネットワークに接続されており、相互に通信可能である。
記憶装置1300は、コンテンツを取得し、記録する装置である。記憶装置1300は、携帯端末1200で再生可能なコンテンツを格納している。なお、記憶装置1300が格納しているコンテンツは、別途ネットワークや記録メディアを利用して入手したものであり、暗号化処理が施されているものとする。
権利管理サーバ1100は、記憶装置1300の記憶している各コンテンツについて、再生許可を示す権利情報を管理するサーバである。権利情報は、一例として、再生を許可する時間、期限、回数、複製の可否といった再生許可の条件を示す情報、コンテンツを復号するためのデータを含んでいる。
権利管理サーバ1100は、携帯端末1200からコンテンツ再生に係る権利情報の取得要求を受信する。取得要求を受信すると、受信した取得要求に含まれるコンテンツ識別子に対応するコンテンツの権利情報を携帯端末1200へ送信する。
携帯端末1200は、利用者の操作により選択されたコンテンツに対応する権利情報を要求する取得要求を送信し、権利管理サーバ1100から権利情報を取得し、取得した権利情報に基づいて記憶装置1300に格納しているコンテンツを再生する。
なお、権利管理サーバ1100と記憶装置1300が同一のサーバとして実現されているとしても構わないことは言うまでもない。
2.2 権利管理サーバ1100
上述したように、権利管理サーバ1100は、各コンテンツに対応する権利情報を記憶している。図2は、権利情報のデータ構造の一例を示している。
図2に示すように、権利情報1404は、コンテンツ識別子1403、制限情報フラグ1400、制限情報1401及び復号鍵1402から構成される。
コンテンツ識別子1403は、権利情報1404と一意に対応するコンテンツを示す。制限情報1401は、コンテンツ識別子1403の示すコンテンツの再生についての制限を示す。
制限情報1401の具体例としては、「4月1日まで再生可」などの期限に関する情報、「30分再生可」などの再生時間に関する情報が考えられる。ここでは、期限、時間に関する制限について記載したが、これらは一例であって、制限情報1401として、再生回数、コピーの可否など他の制限を含んでいても良いし、複数の制限を含んでいても良い。
制限情報フラグ1400は、制限情報1401により定められる制限の種類を示すデータである。例えば、制限情報フラグ1400の値「0」は、期限に関する情報であることを示し、制限情報フラグ1400の値「1」は、再生時間に関する情報であることを示す。ここでは、制限情報フラグ1400は、1ビット長のデータとしたが、これは一例であって、制限の種類を識別できるデータであればよい。
復号鍵1402は、コンテンツ識別子1403の示すコンテンツを復号するための鍵データである。
権利管理サーバ1100は、携帯端末1200から、コンテンツ識別子を含む取得要求を受信する。取得要求を受信すると、受信したコンテンツ識別子を含む権利情報を読み出す。読み出した権利情報を携帯端末1200に固有の鍵を用いて暗号化して暗号化権利情報を生成し、生成した暗号化権利情報を携帯端末1200へ送信する。なお、携帯端末1200に固有の鍵を用いるとしたが、これに限らず、携帯端末1200との間で通信の度に共通鍵(セッション鍵)を生成し、生成したセッション鍵を用いても良い。鍵共有については、公知の技術で実現可能であるのでここでは説明を割愛する。
2.3 携帯端末1200
携帯端末1200は、利用者の操作によるコンテンツの指定を受け付け、指定されたコンテンツに対応する権利情報を要求する取得要求を生成し、生成した取得要求を権利管理サーバ1100へ送信する。続いて、携帯端末1200は、権利管理サーバ1100から暗号化権利情報を受信し、受信した暗号化権利情報をそのまま保持する。コンテンツを再生するときには、その都度、暗号化権利情報を復号して権利情報を生成し、生成した権利情報に含まれる復号鍵を用いてコンテンツを復号し、制限情報に従って再生を行う機器である。
この一連の処理は、それぞれ異なる仮想マシン上で動作するDRMアプリ(後述)と再生アプリ(後述)をプロセッサが実行することにより達成される。
なお、実施の形態1では、権利情報を暗号化したまま保持するとしたが、これに限定するものではなく、権利情報への不正な解析を防止できる構成であればよく、例えば、復号により生成された権利情報を耐タンパー化された記憶領域に、保持しても良い。この場合、携帯端末1200は、権利情報を利用する時に復号化を行う必要はなくなる。
また、ここでの暗号化及び復号の処理は、本発明において重要ではないので、以下の説明では、コンテンツ再生時における暗号化権利情報の復号に関する記載は割愛する。
2.4 携帯端末1200の構成
図3は、携帯端末1200のハードウェア構成の概要とソフトウェア構成を示す。図2の示すように、携帯端末1200は、ハードウェア1250と、ハードウェア1250上で動作する仮想マシンモニタ1240、仮想マシン1230、1231、RTOS1220、汎用OS1221、DRMアプリ1210及び再生アプリ1211から構成される。
2.4.1 ハードウェア1250
ハードウェア1250は、汎用のメモリであるメモリ1251、上記のプログラム群を解読及び実行するプロセッサ1252、ユーザや他の機器等の外部とのインタフェースとなるI/Oデバイス1253、割り込み処理に用いるタイマー1254を含んで構成される。
ここでメモリ1251は、共有データ領域1255を含む。共有データ領域1255は、メモリ1251の一部の領域であり、複数の仮想マシン1230、1231が、それぞれアクセス可能な領域である。本実の形態では、前記共有データ領域1255は、具体的に異なる仮想マシン上で動作しているDRMアプリ1210(後述)と再生アプリ1211(後述)とが、コンテンツの再生に関する権利情報を共有するために利用され、コンテンツと1対1に対応する。図2において、メモリ1251内には、1つの共有データ領域しか記載されていないが、コンテンツ毎に複数の共有データ領域が存在していてもよい。
また、具体的には図示していないが、ハードウェア1250には、プログラム群、取得済の権利情報及び各種データを記憶している不揮発メモリ(ROM、ハードディスクなど)、時刻を計測している内部時計、コンテンツのデコード実行するデコーダ、デコードされた音声及び画像を再生する再生機構などが含まれている。
2.4.2 ソフトウェア
以下、各ソフトウェアについて、詳細に説明するが、これらはいずれも、各ソフトウェアに割り当てられた処理を示す複数の命令群から構成され、前記命令群は、コンピュータ実行可能なプログラム言語で記述されている。
また、必要に応じて、仮想マシン1230及び仮想マシン1230上で動作するプログラム群を第1仮想実行部1501、仮想マシン1231及び仮想マシン1231上で動作するプログラム群を第2仮想実行部1502と呼ぶ。
(1)アプリケーションプログラム
DRMアプリ1210と再生アプリ1211は、それぞれ通知タイミング情報を含んでいる。通知タイミング情報とは、当該アプリケーションがアイドル状態であり、当該アプリケーションを動作させる仮想マシンが省電力状態(後述)になっている時に、当該アプリケーションに通知すべき事象(例えば、権利情報の変更など)が生じた場合に、いつ仮想マシン及びアプリケーションを通常状態に復帰させ、前記事象を通知するべきかを示す情報である。
通知タイミング情報には、以下の3つの種類があり、それぞれに、識別子「A」、「B」、「C」が割り当てられている。
A:すぐに通知する必要がある
B:所定の時間範囲内で通知すればよい
C:省電力状態から復帰した際に通知すればよい
本実施の形態では、具体的に、DRMアプリ1210は、通知タイミング情報「A:すぐに通知する必要がある」を含んでいる。また、再生アプリ1211は、通知タイミング情報「C:省電力状態から復帰した際に通知すればよい」及び通知タイミング情報「B:決められた時間の範囲内で通知すればよい」の2つを含んでおり、通知タイミング情報「C」を初期値とする。
DRMアプリ1210と再生アプリ1211とは、コンテンツの再生に関連する処理を連動して行うアプリケーションプログラムである。ゆえに、各アプリケーションプログラムは、起動時に、自身の動作するOSに対して、コンテンツ毎に共有データ領域の確保を依頼する。このとき、各アプリケーションは、それぞれ、通知タイミング情報(再生アプリ1211は、通知タイミング情報の初期値「C」)を通知する。
続いて、DRMアプリ1210と再生アプリ1211とは、仮想マシンモニタ1240から確保された共有データ領域1255を示す領域識別子を受け取り、受け取った領域識別子を記憶する。
DRMアプリ1210は、RTOS1220上で動作するアプリケーションソフトウェアであり、コンテンツ再生に係る権利情報の取得及び更新を行う手順を含む。
具体的には、DRMアプリ1210は、再生アプリ1211からの権利情報取得依頼又は利用者の操作による指示を受け、所定のコンテンツを示すコンテンツ識別子を含む取得要求を生成し、生成した取得要求を権利管理サーバ1100へ送信する。
続いて、権利管理サーバ1100からコンテンツの権利情報を取得し、取得した権利情報を、仮想マシンモニタ1240を介して、共有データ領域1255に格納する。
ここでは、権利情報は、図2を用いて説明した通り、コンテンツの再生に関する権利を示す情報として取り扱うが、コンテンツを複製する権利などの他の権利を示す情報であってもよい。
再生アプリ1211は、汎用OS1221上で動作するアプリケーションソフトウェアあって、利用者の操作に従って権利情報の取得をDRMアプリ1210へ依頼する手順を含み、DRMアプリ1210と連係して動作する。このとき、再生アプリ1211がDRMアプリ1210へ出力する権利情報取得依頼は、コンテンツ識別子と領域識別子とを含んでいる。コンテンツ識別子は、利用者の指定したコンテンツ識別する情報であり、領域識別子は、共有データ領域1255を一意に示すじょうほうである。このとき、再生アプリ1211及びDRMアプリ1210は、領域識別子とコンテンツ識別子と対応付けて記憶する。
また、再生アプリ1211は、権利情報の管理を除くコンテンツの再生制御に関する処理手順を含む。具体的には、利用者の操作により、コンテンツの再生指示を受け付け、受け付けた再生指示の示すコンテンツと対応する権利情報を共有データ領域1255から取得し、取得した権利情報に含まれる制限フラグ及び制限情報を抽出する。抽出した制限フラグと制限情報から、コンテンツの再生を許可される時間の終端の時刻(以下、再生停止時刻と記載する)を決定する。
次に、再生アプリ1211は、再生停止時刻が来たときにコンテンツ再生の停止処理を行えるように、タイマー1254を設定する。例えば、仮想マシン1231が省電力状態から通常状態に遷移し、再生アプリ1211がアイドル状態から通常状態に戻るまでの時間(復帰処理時間と呼ぶ)を、再生停止時刻から指し引いた時刻(タイマー設定時刻)にタイマー1254を設定する。具体的には、再生アプリ1211は、算出したタイマー設定時刻を汎用OS1221及び仮想マシン1231を介して仮想マシンモニタ1240へ通知する。仮想マシンモニタ1240内の仮想マシン管理部1241により、タイマー1254にタイマー設定時刻が設定される。
続いて、再生アプリ1211は、再生指示を受けたコンテンツと対応する通知タイミング情報の変更依頼を、汎用OS1221及び仮想マシン1231を介して、仮想マシンモニタ1240へ出力する。ここで出力される変更依頼は、コンテンツに対応する共有データ領域を示す領域識別子と通知タイミング情報「B」を含む。
通知タイミング情報の変更依頼を出力すると、再生アプリ1211は、コンテンツのデコード及び再生処理をハードウェア1250内のデコーダに指示する。コンテンツの再生中においては、再生アプリ1211が動作している必要はない。したがって、再生アプリ1211は、ハードウェア1250による処理が終了するまでは、再生アプリ1211自身をアイドル状態にする。アイドル状態の再生アプリ1211は、上記で設定したタイマー1254からの割り込み、ユーザのキー入力による割り込み及び仮想マシンモニタ1240からの割り込みに反応して、アイドル状態から通常の動作状態へ復帰する。
再生停止時刻になると、再生アプリ1211は、デコーダによるコンテンツの再生を停止させる。続いて、汎用OS1221及び仮想マシン1231を介して、仮想マシンモニタ1240へ通知タイミング情報の変更依頼を出力する。ここで出力する変更依頼は、再生を停止したコンテンツと対応する管理情報に含まれる通知タイミング情報を初期値「C」に変更することを依頼するコマンドである。
なお、実施の形態1では、各OS上で1個のアプリケーションしか動作しないが、それぞれのOS上に複数のアプリケーションが動作していてもよいことは言うまでもない。
また、上記では、2つのアプリケーションの起動時に、共有データ領域1255を確保し、利用者の指定するコンテンツに対応する権利情報を権利管理サーバ1100から取得し、共有データ領域1255に書き込むとしたが、共有データ領域1255の確保のタイミングは、起動時限定されない。利用者によるコンテンツの指定がある度に、指定されたコンテンツと一意に対応する共有データ領域を新たに確保してもよい。また、ハードディスクに既に取得済みの権利情報が記憶されている場合、起動時に、取得済みの権利情報毎に共有データ領域を確保してもよい。
(2)オペレーティングシステム
RTOS1220及び汎用OS1221は、それぞれ、DRMアプリ1210及び再生アプリ1211を動作させる基本ソフトウェアであって、それぞれ、仮想マシン1230と仮想マシン1231上で動作する。また、RTOS1220と汎用OS1221は、共有データ領域1255を取得するために用いる仮想マシンモニタ1240へのインタフェースを有する。
例えば、RTOS1220及び汎用OS1221は、それぞれ、DRMアプリ1210及び再生アプリ1211から共有データ領域1255の確保を依頼される。この依頼を受けると、RTOS1220及び汎用OS1221は、仮想マシンモニタ1240へ共有データ領域1255の確保を依頼する。このとき、RTOS1220と汎用OS1221は、依頼元であるアプリケーションソフトを識別するためのアプリ識別子と、依頼と共に受け取った通知タイミング情報、及び各OS自身を識別するOS識別子を仮想マシンモニタ1240へ通知する。アプリ識別子としては、OSがアプリケーションソフトを識別するために利用しているプロセスIDなどを使用する。
続いて、RTOS1220及び汎用OS1221は、確保された共有データ領域1255に対する領域識別子を仮想マシンモニタ1240から取得し、DRMアプリ1210及び再生アプリ1211へ通知する。
また、RTOS1220及び汎用OS1221は、DRMアプリ1210及び再生アプリ1211から共有データ領域1255の取得依頼を受け付けたとき、各自に割り当てられるメモリ領域に、依頼元のアプリケーションと共有データ領域1255とコールバック関数とを関連付けて登録する。
このコールバック関数は、共有データ領域1255の内容に変更があったときにDRMアプリ1210及び再生アプリ1211に、その旨を通知するための関数である。RTOS1220と汎用OS1221は、共有データ領域1255の内容変更を知らせる割り込みが発生したときに、その共有データ領域1255に関連づけられているコールバック関数を呼び出し、コールバック関数を実行することで、自身の管理するアプリケーションに共有データ領域1255の内容変更を通知する。
また、汎用OS1221は、再生アプリ1211など汎用OS1221上で動作中のすべてのアプリケーションソフトがアイドル状態になっている場合、仮想マシン1231を省電力状態へ遷移させる。具体的には、仮想マシン1231の仮想化されたプロセッサを停止するなどの処理を行う。さらに具体的にいうと、プロセッサ1252の動作において、仮想マシン1231の実行のために割り当てられていた時間、プロセッサは一時的に停止(例えばクロックの出力を停止)する。なお、省電力状態への遷移方法については、特許文献2に詳しく説明されているので、これ以上の説明は省略する。
省電力状態から通常状態への復帰は、ユーザのキー入力によるI/Oデバイス1253からの割り込み発生時や、コンテンツの再生を停止処理のために設定したタイマー1254からの割り込み発生時及び仮想マシンモニタ1240からの復帰要求時に行われる。
さらに、RTOS1220と汎用OS1221は、共有データ領域1255のデータをDRMアプリ1210または再生アプリ1211が変更するために用いる仮想マシンモニタ1240へのインタフェースをそれぞれ有する。RTOS1220及び汎用OS1221は、それぞれ、DRMアプリ1210及び再生アプリ1211から共有データ領域1255のデータの変更を依頼される。データの変更を依頼されると、各OSは、仮想マシンモニタ1240へ共有データ領域1255のデータの変更を依頼する。このとき、各OSは、依頼元のアプリケーションを示すアプリ識別子と、各OSを示すOS識別子と、依頼元のアプリケーションから受け取った領域識別子及び変更するデータとを仮想マシンモニタ1240へ通知する。
(3)仮想マシン
仮想マシン1230及び1231は、携帯端末1200で動作している仮想マシンであって、RTOS1220及び汎用OS1221それぞれに、仮想的な実行環境を提供する。
なお、実施の形態1においては、携帯端末1200は、2つの仮想マシンを搭載しているが、3つ以上の仮想マシンを搭載していても良い。
(4)仮想マシンモニタ1240
仮想マシンモニタ1240は、仮想マシン1230及び仮想マシン1231が使用するメモリ領域やデバイスなどのリソース管理や仮想マシンのスケジューリングなど、仮想マシン1230、1231を管理するソフトウェアである。
(4−1)仮想マシンモニタ1240の機能
仮想マシンモニタ1240は、RTOS1220と汎用OS1221から共有データ領域の確保を要求される。この要求を受けると、仮想マシンモニタ1240は、メモリ1251内に、共有データ領域1255を確保し、確保した共有データ領域1255を示す共有データ領域識別子を生成し、生成した共有データ領域識別子をRTOS1220と汎用OS1221へ通知する。
また、仮想マシンモニタ1240は、RTOS1220と汎用OS1221から共有データ領域1255のデータ変更依頼を受けたときに、共有データ領域1255のデータを変更すると共に、その共有データ領域1255を共有している他の仮想マシンに対して共有データ領域1255の変更を知らせる割り込みを発生させる。
(4−2)仮想マシンモニタ1240の構成
上記の機能を実現するための仮想マシンモニタ1240の詳細な構成について、以下に説明する。
図4は、本発明実施の形態1における省電力状態に対応した仮想マシンモニタ1240の機能的構成を示すブロック図である。
図4に示すように、仮想マシンモニタ1240は、仮想マシン管理部1241と仮想マシン間通知管理部1242、共有データ管理部1243、レジューム判定部1244、割込発生予定時刻取得部1245、待ちイベント記憶部1246から構成される。
さらに、図5は、共有データ管理部1243の機能的構成及びデータフローを示すブロック図である。
図5に示すように、共有データ管理部1243は、共有データ確保部1260、共有データ変更部1261、管理情報保持部1262、データ変更通知部1263、通知タイミング情報取得部1264から構成される。
図5中の実線矢印は、共有データ領域の確保に関するデータフローを示す。点線矢印は、共有データ領域1255の保持している権利情報変更に関するデータフローを示す。図中の太線矢印は、仮想マシン1230及び仮想マシン1231へ各種の通知を出力するタイミングを判定する処理に関するデータフローを示す。
以下に、図4及び図5を用いて、仮想マシンモニタ1240の各構成について説明する。
(4−2−1)仮想マシン管理部1241
仮想マシン管理部1241は、仮想マシンモニタ1240上で動作する仮想マシン1230及び仮想マシン1231を管理する。具体的には、各仮想マシンが使用するメモリ領域の管理や、仮想化されたデバイスの各仮想マシンへの割り当て、仮想化されたデバイスと実際のデバイスとのマッピング、各仮想マシンのスケジューリング、各仮想マシンの状態管理などを行う。仮想マシン1231の状態管理には、再生アプリ1211から通知されるタイマー設定時刻も参照する。
また、各仮想マシンが省電力状態から通常状態に復帰すると、その旨を仮想マシン間通知管理部1242へ通知する。
(4−2−2)仮想マシン間通知管理部1242
仮想マシン間通知管理部1242は、図5に示すように、共有データ管理部1243から、データ変更通知依頼1319を受け取る。データ変更通知依頼1319は、共有データ領域1255の記憶しているデータ変更の通知を依頼するコマンドである。データ変更通知依頼1319は、領域識別子1とOS識別子2とアプリ識別子2とを含む。領域識別子1は、共有データ領域1255を示す。OS識別子2とアプリ識別子2は、それぞれ、通知先となるOS及びアプリケーションを示す。データ変更通知依頼1319を受け取ると、仮想マシン間通知管理部1242は、通知先の仮想マシンの動作状態に合わせて、データ変更を通知する。
また、仮想マシン間通知管理部1242は、仮想マシン1231及び仮想マシン1230間の各種の依頼を仲介する。例えば、仮想マシン1231から権利情報取得依頼1311を受け取る。権利情報取得依頼1311は、領域識別子1、アプリ識別子1及びコンテンツ識別子を含む。領域識別子1は、取得した権利情報を記録する共有データ領域1255を示す。アプリ識別子1は、依頼先のアプリケーションを示す情報である。コンテンツ識別子は、取得を要求している権利情報と対応するコンテンツを示す識別情報である。
仮想マシン間通知管理部1242は、通知先の仮想マシン1230の動作状態に合わせて権利情報取得依頼1312を仮想マシン1230へ通知する。
具体的に、これらの通知に先立って、仮想マシン間通知管理部1242は、通知先の仮想マシンが省電力状態であるかどうかを仮想マシン管理部1241へ問い合わせる(1321)。問合せ1321の結果、通知先の仮想マシンが通常状態であれば、仮想マシン間通知管理部1242は、すぐに、受け取った依頼を通知先の仮想マシンへ通知する。
通知先の仮想マシンが省電力状態であれば、仮想マシン間通知管理部1242はレジューム判定部1244へ省電力状態から通常状態へ復帰させるかどうかの判定を要求する判定依頼1322を出力する。判定依頼1322は、データ変更通知部1263又は仮想マシンから出力された領域識別子とOS識別子とアプリ識別子とを含む。OS識別子とアプリ識別子は、それぞれ、通知先となるOS及びアプリケーションを示す。
レジューム判定部1244から、判定結果1327「すぐ復帰」を受け取ると、仮想マシン間通知管理部1242は、仮想マシン管理部1241へ通知先の仮想マシンを省電力状態から通常状態へ復帰させるよう依頼する。続いて、通知先の仮想マシンが通常状態へ復帰し次第、仮想マシン間通知管理部1242は、受け取った依頼を復帰した仮想マシンに通知する。
レジューム判定部1244から、判定結果1327「復帰しない」を受け取ると、仮想マシン間通知管理部1242は、待ちイベント記憶部1246に受け取った通知依頼の内容を記憶させ、別の要因(例えば、タイマー割込、利用者の操作による割込)で通知先の仮想マシンが省電力状態から通常状態へ復帰したとき、記憶させた通知内容を読み出して通知する。
(4−2−3)共有データ管理部1243
<共有データ管理部1243の機能の概要>
共有データ管理部1243は、共有データ領域1255の管理を行う。共有データ管理部1243は、DRMアプリ1210や再生アプリ1211から共有データ領域の確保の依頼を受け付け、メモリ1251内の空き領域の一部を共有データ領域1255として確保し、仮想マシン1230と1231とがそれぞれアクセス出来るようにアクセス権の設定をする。
さらに、共有データ管理部1243は、共有データ領域1255の管理情報として、各仮想マシン上で動作しているOSを識別するためのOS識別子と、そのOS上で動作し、共有データ領域1255を利用するアプリケーションソフトを識別するためのアプリ識別子、および、アプリケーションと対応する通知タイミング情報を管理する。これらの管理情報は、共有データ領域毎に管理する。管理情報のデータ構造の例を図6に示す。管理情報は共有データ領域毎に図6に示す構造を持つ。つまり、管理情報1410は、領域識別子で一意に識別され、その領域識別子で識別される共有データ領域を使用しているOSとアプリケーションソフトの識別子及び通知タイミング情報からなる情報の組を複数組含んでいる。
また、共有データ管理部1243は、DRMアプリ1210や再生アプリ1211からRTOS1220や汎用OS1221を通して、共有データ領域1255のデータの変更依頼を受け付ける。データの変更依頼を受け付けると、共有データ管理部1243は、共有データ領域1255のデータを変更するとともに、共有データ領域1255に対応する管理情報を参照する。共有データ管理部1243は、取得した管理情報を使って、共有データ領域1255を使用しているアプリケーションソフトとOSの識別子を取得する。そして、仮想マシン間通知管理部1242へ、共有データ領域のデータに変更があった旨を示す情報である共有データ領域1255変更のイベントを、各OSへ通知するよう依頼する。
さらに、共有データ管理部1243は、DRMアプリ1210や再生アプリ1211から、それぞれの動作状態に応じて依頼されるイベントの通知タイミング情報の変更を受け付ける。共有データ管理部1243は、DRMアプリ1210や再生アプリ1211からの依頼を受けて、共有データ領域に対応する管理情報の中から、DRMアプリ1210や再生アプリ1211に該当する管理情報に含まれる通知タイミング情報を、指定された通知タイミング情報に変更する。
なお、実施の形態1では、DRMアプリ1210や再生アプリ1211は共有データ領域1255の確保時に通知タイミング情報を登録するとしたが、これに限定するものではなく、共有データ領域1255の確保時には、いずれのアプリケーションに対しても通知タイミング情報に所定の初期値を設定し、通知タイミング情報を初期値から変更する必要のあるアプリケーションソフトのみが共有データ管理部1243にイベントの通知タイミング情報の変更を依頼するとしてもよい。この場合、通知タイミング情報の初期値は、例えば、システム起動時に読み込まれる設定ファイルに記述されているものとしてもよい。
<共有データ管理部1243の構成>
続いて、本発明実施の形態1における共有データ管理部1243の詳細な構成について説明する。
(a)共有データ確保部1260
共有データ確保部1260は、DRMアプリ1210及び再生アプリ1211からRTOS1220及び汎用OS1221を通して、共有データ領域の確保を要求する領域確保依頼1301を受け付ける。領域確保依頼には、OS識別子、アプリ識別子及び通知タイミング情報が含まれている。OS識別子及びアプリ識別子は、それぞれ、領域確保依頼1301の出力元であるOS及びアプリケーションを示す識別子である。通知タイミング情報は、アプリ識別子の示すアプリケーションに記述されている通知タイミング情報である。
領域確保依頼1301を受け付けると、共有データ確保部1260は、メモリ1251上の未使用領域に共有データ領域1255を確保する。
次に、共有データ確保部1260は、確保した共有データ領域1255に対応する領域識別子を生成し、生成した領域識別子1303を、RTOS1220及び汎用OS1221を通して、DRMアプリ1210及び再生アプリ1211へ通知する。
次に、共有データ確保部1260は、管理情報1302を、管理情報保持部1262へ出力する。管理情報1302は、領域情報、生成した領域識別子、OS識別子、アプリ識別子及び通知タイミング情報から構成される。領域情報は、メモリ1251内における共有データ領域1255の、位置を示す。OS識別子、アプリ識別子及び通知タイミング情報は、領域確保依頼1301に含んで取得したものである。
また、共有データ確保部1260は、DRMアプリ1210や再生アプリ1211といったアプリケーションからRTOS1220や汎用OS1221を通して、既に確保されている共有データ領域の領域識別子と共に領域確保依頼を受け取ることもある。この場合、共有データ確保部1260は、管理情報保持部1262が保持している共有データ領域1255に対応する管理情報1410に、確保を依頼してきたOSを示すOS識別子と領域確保依頼に含まれるアプリ識別子と通知タイミング情報を追加する。例えば、携帯端末1200は、RTOS1220、汎用OS1221以外に、第3のOS及び第3の仮想マシンを搭載しており、共有データ領域1255が確保された後、第3のOS上で動作するアプリケーションが起動され、このアプリケーションも共有データ領域1255を利用する場合が考えられる。
(b)管理情報保持部1262
管理情報保持部1262は、メモリ1251内に確保された共有データ領域1255の管理に必要な管理情報1302を、共有データ確保部1260から受け取り、保持する。
図6は、共有データ領域1255に対応する管理情報1410の詳細を示す。図6に示すように、管理情報1410は、領域識別子1(1411)、領域情報1(1412)と、OS識別子1(1413)、アプリ識別子1(1414)、通知タイミング情報1(1416)、OS識別子2(1417)、アプリ識別子2(1418)、通知タイミング情報2(1419)から構成される。
管理情報1410は、共有データ確保部1260から出力される管理情報1302と同様である。
領域識別子1(1411)は、共有データ領域1255を一意に示す識別子である。領域情報1(1412)は、メモリ1251内における共有データ領域1255の位置を示すデータである。図6中では、管理情報保持部1262は、共有データ領域1255の先頭及び末尾のアドレスを領域情報として保持している。
OS識別子、アプリ識別子及び通知タイミング情報からなる一組のデータは、共有データ領域1255の確保を依頼したアプリケーションを識別する情報、そのアプリケーションが動作するOSを識別する情報及び依頼と共に出力された通知タイミング情報である。具体的に、図6では、OS識別子1(1413)は、RTOS1220を示し、アプリ識別子1(1414)は、DRMアプリ1210を示しており、通知タイミング情報1(1416)は、DRMアプリ1210に記述されている通知タイミング情報「A」である。また、OS識別子2(1417)は、汎用OS1221を示し、アプリ識別子2(1418)は、再生アプリ1211を示しており、通知タイミング情報2(1419)は、再生アプリ1211に記述されている通知タイミング情報の初期値「C」である。
メモリ1251内に、複数の共有データ領域が確保されている場合、管理情報保持部1262は、共有データ領域毎に図6に示す構成の管理情報を保持している。
(c)共有データ変更部1261
共有データ変更部1261は、DRMアプリ1210や再生アプリ1211からRTOS1220や汎用OS1221、仮想マシン1230及び仮想マシン1231を通して、共有データ領域1255のデータ変更依頼1313を受け付ける。
例えば、RTOS1220及び仮想マシン1230を介して、DRMアプリ1210から、共有データ領域1255内データの変更依頼を受け取る。受け取ったデータ変更依頼1313は、領域識別子1、アプリ識別子1及びデータ(権利情報など)を含む。領域識別子1は、共有データ領域1255を示す。アプリ識別子1は、DRMアプリ1210を示す。データ(ここでは、権利管理サーバ1100から取得した権利情報)は、共有データ領域1255に新たに書き込まれるデータである。
この依頼を受け取ると、共有データ変更部1261は、領域識別子1に対応する管理情報1410を管理情報保持部1262から取得し、取得した管理情報1410に含まれる領域情報1(1412)を基に、メモリ1251上の共有データ領域1255を特定し、受け取った権利情報を基に共有データ領域1255内の権利情報を変更する。
また、共有データ変更部1261は、取得した管理情報1410から依頼元のDRMアプリ1210と対応するOS識別子1(1413を)を抽出する。続いて、共有データ変更部1261は、受け取ったデータ変更依頼に含まれる領域識別子1及びアプリ識別子1と、抽出したOS識別子1(1413)と、を含む変更通知依頼を生成し、生成した変更通知依頼1317をデータ変更通知部1263へ出力する。
(d)データ変更通知部1263
図5に示すように、データ変更通知部1263は、共有データ変更部1261から変更通知依頼1317を受け取る。変更通知依頼1317は領域識別子1、OS識別子1及びアプリ識別子1を含む。
変更通知依頼を1317受け取ると、データ変更通知部1263は、変更通知依頼1317に含まれる領域識別子1に対応する管理情報1410を管理情報保持部1262から取得する。そして、取得した管理情報1410に含まれるOS識別子とアプリ識別子のうち、変更通知依頼に1317含まれるOS識別子1及びアプリ識別子1を除くOS識別子2(1417)とアプリ識別子2(1418)とを抽出する。
続いて、データ変更通知部1263は、変更通知依頼1317に含まれる領域識別子1、抽出したOS識別子2(1417)及びアプリ識別子2(1418)を含むデータ変更通知依頼を生成する。データ変更通知依頼は、領域識別子1の示す共有データ領域1255の内容が変更されたことをOS識別子2の示す汎用OS1221を介して、アプリ識別子2の示す再生アプリ1211へ通知することを依頼するコマンドである。
データ変更通知部1263は、生成したデータ変更通知依頼1319を、仮想マシン間通知管理部1242へ出力する。
(e)通知タイミング情報取得部1264
通知タイミング情報取得部1264は、レジューム判定部1244から通知タイミング情報の取得を依頼する通知タイミング取得要求1323を受け取る。通知タイミング取得要求1323には、領域識別子とOS識別子とアプリ識別子とが含まれている。
通知タイミング取得要求1323を受け取った通知タイミング情報取得部1264は、管理情報保持部1262の保持している管理情報のうち、受け取った領域識別子を含む管理情報を検出し、検出した管理情報から、受け取ったOS識別子及びアプリ識別子に対応する通知タイミング情報1324を抽出する。次に、抽出した通知タイミング情報1326(1324と同一)をレジューム判定部1244へ出力する。
(4−2−4)レジューム判定部1244
レジューム判定部1244は、イベントの通知対象となっている仮想マシンをすぐに省電力状態から通常状態へ復帰させるか否か判定を行う機能部である。ここで、イベントとは、例えば、共有データ領域1255内のデータ変更の通知、仮想マシン間における各種の依頼の通知の処理である。
レジューム判定部1244は、仮想マシン間通知管理部1242から判定依頼1322を受け取る。判定依頼1322は、領域識別子、OS識別子及びアプリ識別子を含む。領域識別子は、イベントに関与する共有データ領域を示す。OS識別子及びアプリ識別子は、イベントの通知先となるOS及びアプリケーションを示す。
判定依頼1322を受け取ると、レジューム判定部1244は、通知タイミング取得要求1323を生成する。通知タイミング取得要求1323は、受け取った領域識別子とOS識別子とアプリ識別子とを含む。続いて、レジューム判定部1244は、生成した通知タイミング取得要求1323を共有データ管理部1243内の通知タイミング情報取得部1264へ出力する。
続いて、レジューム判定部1244は、通知タイミング情報取得部1264から、通知タイミング情報1326を受け取る。受け取った通知タイミング情報と、図7に示す判定基準表1270を用いて、通知先の仮想マシンをすぐに省電力状態から通常状態に復帰するか否かを判定する。
図7に示すように判定基準表1270は、3つの判定基準情報1271、1272及び1273から構成される。判定基準情報1271及び1273は、通知タイミング情報と通知タイミング情報を示す識別子と判定結果とを含む。
判定基準情報1272は、識別子と通知タイミング情報と、時刻条件と判定結果の組を2組含んでいる。
通知タイミング情報については上述した通り3種類存在し、それぞれの通知タイミング情報に識別子「A」、「B」、「C」が割り当てられている。
時刻条件は、通知タイミング情報取得部1264から受け取った通知タイミング情報が「B:決められた時間の範囲内で通知すればよい」の場合、判定のためにさらに課せられる条件である。時刻条件については、後で詳細に説明する。
判定結果は、通知タイミング情報及び時刻条件によって定まる判定の結果であって、「すぐに復帰する」又は「復帰しない」のいずれかである。
通知タイミング情報取得部1264から受け取った通知タイミング情報1326が、「A:すぐに通知する必要がある」である場合、レジューム判定部1244は、判定基準情報1271を参照し、判定結果「すぐ復帰する」1327を仮想マシン間通知管理部1242へ出力する。
ここで、「すぐに通知する必要がある」イベントは、例えば、再生アプリ1211がDRMアプリ1210へ権利の購入を依頼するイベントのように、アプリケーションソフト同士が同期して処理を行う必要があるイベントである。
通知タイミング情報取得部1264から受け取った通知タイミング情報1326が、「C:省電力状態から復帰したときに通知すればよい」である場合、レジューム判定部1244は、判定基準表1270の判定基準情報1273を参照し、判定結果「復帰しない」1327を仮想マシン間通知管理部1242へ出力する。
ここで、「省電力状態から復帰したときに通知すればよい」イベントは、例えば再生していないコンテンツの権利を購入したときの権利情報の変更を通知するイベントである。この場合は、コンテンツを再生させるためには、ユーザが再生アプリ1211を動作させてコンテンツを再生しようとキー入力を行う必要があるので、コンテンツの再生前には、そのキー入力によるI/Oデバイス1253からの割り込みが発生する。この割り込みによって、仮想マシンは省電力状態から復帰するので、その時に権利情報の変更を通知すれば十分である。
通知タイミング情報取得部1264から受け取った通知タイミング情報1326が、「B:決められた時間間隔の範囲内で通知すればよい」である場合、レジューム判定部1244は、以下の処理を行う。
ここで、「決められた時間間隔の範囲内で通知すればよい」イベントは、例えば、再生中のコンテンツの権利情報を追加で購入したときの共有データ領域1255に記憶されている権利情報の変更を通知するイベントである。以下、具体的に、再生中のコンテンツの権利情報を追加で購入したとき、共通データ領域に記憶されている権利情報の変更を通知するイベントのために、省電力状態の仮想マシン1231をすぐに復帰させるか否かの判定を行う場合について説明する。
図8は、通知タイミング情報「B」を受け取った場合にレジューム判定部1244が、判定を行うために用いる時刻及び時間の関係を示している。図8において、時刻T0は、イベントの通知先となる仮想マシン1231が省電力モードへ移行した時刻である。時刻T3は、コンテンツの再生を停止する予定の時刻(再生停止予定時刻)であって、変更前の権利情報により定まる時刻である。時間t2は、省電力状態の仮想マシンが通常状態に復帰するために要する時間(復帰処理時間)である。
時刻T3から時間t2を差し引いた時刻T2は、タイマー1254による割込発生予定時刻(以下、タイマー設定時刻と呼ぶ)である。これは、再生アプリ1211により設定された時刻である。時間t1は、仮想マシン1231が通常状態に復帰した後、仮想マシン1231を介して、権利情報の変更を再生アプリ1211へ通知するイベントの実行に要する時間(イベント実行時間)である。時刻T1は、タイマー設定時刻T2から時間t1を差し引いた時刻である。このようにして定まる時刻T1を基準時刻と呼ぶ。
図8において、再生中のコンテンツの権利情報の変更の通知イベントは、変更される前の権利情報により決められた再生停止予定時刻T3になる前に、完了していればよい。従って、基準時刻T1までに仮想マシン1231を省電力状態から通常状態へ復帰させる処理を開始すれば、アイドル状態から復帰した再生アプリ1211が、変更後の権利情報を参照して再生停止予定時刻を再計算するので、時刻T3で途切れることなくコンテンツの再生を継続することができる。そのため、判定依頼1322を受けた時刻(正確には現在時刻Tn)が、基準時刻T1以後であるか、基準時刻T1より前であるかにより判定結果が異なる。
先ず、レジューム判定部1244は、割込発生予定時刻取得部1245へ割込発生予定時刻の取得を指示し、割込発生予定時刻取得部1245から、割込発生予定時刻として、タイマー設定時刻T2を受け取る。タイマー設定時刻T2を受け取るとレジューム判定部1244は、時刻T2からイベント実行時間t2を差し引いた基準時刻T1を算出する。イベント実行時間t1は、システム設計時に決定される値であって、レジューム判定部1244が予め保持しているとしても良いし、仮想マシン間通知管理部1242から、判定依頼と共に受け取るとしても良い。
次に、レジューム判定部1244は、内部時計から現在時刻Tnを取得し、取得した現在時刻と基準時刻T1とを比較する。
比較の結果、Tn≧T1であれば、レジューム判定部1244は、判定基準情報1272を参照し、時刻条件「現在時刻≧基準時刻」と対応する判定結果「すぐ復帰する」を抽出する。抽出した判定結果「すぐに通知する」を、仮想マシン間通知管理部1242へ出力する。図9は、この場合における、現在時刻Tnと基準時刻T1の前後関係の一例を示す図である。図9に示すように、現在時刻Tnは、基準時刻T1からタイマー設定時刻T2までの間に位置する。この場合、タイマー設定時刻T2までに権利情報の変更通知処理が終わらないため、省電力状態から通常状態へ直ちに復帰する必要がある。
比較の結果、Tn<T1であれば、レジューム判定部1244は、判定基準情報1272を参照し、時刻条件「現在時刻<基準時刻」に対応する判定結果「復帰しない」を抽出する。次に、レジューム判定部1244は、抽出した判定結果「復帰しない」を仮想マシン間通知管理部へ出力する。続いて、レジューム判定部1244は、タイマー1254の設定時刻を基準時刻T1に変更する。図10は、この場合における、現在時刻Tnと基準時刻T1との前後関係を示している。図10に示すように、現在時刻Tnは、基準時刻T1より前に位置する。この場合、基準時刻T1までに、仮想マシン1231の復帰処理を開始すればよいので、直ちに復帰させる必要はない。
なお、実施の形態1では、イベント実行時間t1はシステム設計時に決定される値としたが、これに限定するものではなく、システム起動時に設定ファイル等により外部から入力されてもよいし、システム稼働時に仮想マシンモニタ1240外部から入力されてもよい。また、イベント実行時間t1はシステム全体で1つの値である必要はなく、イベント毎にアプリケーションソフトにより設定されてもよい。この場合、イベント実行時間は、通知タイミング情報と一緒に管理情報に含まれており、共有データ管理部1243により管理されるとしてもよい。なお、アプリケーションソフトによるイベント実行時間の設定は、アプリケーションソフトが動作中にその動作状態に応じてイベント実行時間を決定し設定してもよいし、アプリケーションソフトの起動時に設定ファイルを読み込み、その読み込んだ設定ファイルに基づいて設定してもよい。
また、省電力状態からの復帰判定においてイベント実行時間を考慮しない構成とすることも可能である。しかし、この場合は、変更前の権利情報が使い切られてから、新しい権利情報が反映されるまでに、イベント実行時間の分だけラグが発生し、コンテンツの再生が中断することとなる。
また、イベント実行時間t1は、 仮想マシン1231を介して、権利情報の変更を再生アプリ1211へ通知するイベントの実行に要する時間としたが、通知に要する時間に加えて、再生アプリ1211が変更後の権利情報を参照する時間も含むとしても良い。
(4−2−5)割込発生予定時刻取得部1245
割込発生予定時刻取得部1245は、レジューム判定部1244から、割込発生予定時刻の取得を指示される。この指示を受けると、割込発生予定時刻取得部1245は、タイマー1254にアクセスして、タイマー1254に設定されている時刻(タイマー設定時刻)を取得し、取得したタイマー設定時刻をレジューム判定部1244へ出力する。
なお、実施の形態1では、仮想マシンが省電力状態から通常状態への復帰させるための割込発生予定時刻をタイマー1254から取得するとしたが、これに限定するものではない。コンテンツの再生にDMA(Direct Memory Access)転送を利用する場合、転送が終了したときの割り込みで省電力状態から復帰させることが考えられる。この場合には、DMA転送の残りのデータサイズを取得し、そのサイズを時間に換算し、換算した時間から割込発生予定時刻を算出する方法を用いてもよい。
(4−2−6)待ちイベント記憶部1246
待ちイベント記憶部1246は、それぞれの仮想マシンごとにイベントキューを持ち、仮想マシン間通知管理部1242から待ちイベントとして登録されたイベントをそれぞれのイベントキューに保持している。
2.5 携帯端末の動作
以下に、携帯端末1200の動作について、図面を用いて説明する。
(1)コンテンツ再生動作
図11〜図15は、携帯端末1200によるコンテンツ再生の動作を示している。ここでは、仮想マシン、OS、1以上のアプリケーションからなるソフトウェア群を、仮想実行部と呼ぶ。具体的に、仮想マシン1230、RTOS1220及びDRMアプリ1210を第1仮想実行部1501、仮想マシン1231、汎用OS1221及び再生アプリ1211を第2仮想実行部1502と呼ぶ。
以下に、図11〜図15を用いて、携帯端末1200のコンテンツ再生の動作について、説明する。
先ず、RTOS1220及び汎用OS1221は、それぞれ、DRMアプリ1210及び再生アプリ1211を起動する(ステップS2001、ステップS2003)。
DRMアプリ1210はRTOS1220及び仮想マシン1230を介して仮想マシンモニタ1240の共有データ管理部1243へ領域確保依頼を出力する(ステップS2002)。
再生アプリ1211も、汎用OS1221及び仮想マシン1231を介して、仮想マシンモニタ1240へ領域確保依頼を出力する(ステップS2004)。
仮想マシンモニタ1240内の共有データ確保部1260は、第1仮想実行部1501及び第2仮想実行部1502から領域確保依頼を受け、メモリ1251上に共有データ領域1255を確保する(ステップS2006)。
共有データ確保部1260は、共有データ領域1255に対応する領域識別子を生成し(ステップS2007)、生成した領域識別子を第1仮想実行部1501及び第2仮想実行部1502へ通知する(ステップS2008、ステップS2009)。
第2仮想実行部1502内の再生アプリ1211は、仮想マシン1231及び汎用OS1221を介して領域識別子を取得し(ステップS2008)、第1仮想実行部1501内のDRMアプリ1210は、仮想マシン1230及びRTOS1220を介して領域識別子を取得する(ステップS2009)。
続いて、再生アプリ1211は、利用者によるコンテンツ再生を示すキー操作を受け付ける(ステップS2012)。利用者のキー操作により指定されたコンテンツを示すコンテンツ識別子及び仮想マシンモニタ1240から通知された領域識別子を含む権利情報取得依頼を、仮想マシンモニタ1240へ出力する(ステップS2013)。
仮想マシンモニタ1240は、第2仮想実行部1502内の再生アプリ1211から、権利情報取得依頼を受け取る(ステップS2013)。権利情報取得依頼を受けると、仮想マシンモニタ1240は、受け取った権利情報取得依頼を第1仮想実行部1501へ通知するタイミングの判定を行う(ステップS2016)。この通知判定については、後述する。このとき第1仮想実行部1501の仮想マシン1230は、通常状態であるので、ステップS2016では、すぐに通知すると判定される。仮想マシンモニタ1240は、第1仮想実行部1501へ権利情報取得依頼を出力する(ステップS2017)。
DRMアプリ1210は、仮想マシン1230及びRTOS1220を介して権利情報取得依頼を受け取り(ステップS2017)、受け取った権利情報取得依頼に含まれるコンテンツ識別子に対応する権利情報を、権利管理サーバ1100から取得する(ステップS2018)。続いて、DRMアプリ1210は、RTOS1220及び仮想マシン1230を介して、仮想マシンモニタ1240へ取得した権利情報及び領域識別子を含むデータ変更依頼を出力する(ステップS2021)。
仮想マシンモニタ1240の共有データ変更部1261は、第1仮想実行部1501からデータ変更依頼を受け取り(ステップS2021)、受け取ったデータ変更依頼に含まれる領域識別子の示す共有データ領域1255の保持している権利情報をデータ変更依頼に含まれる権利情報により変更する(ステップS2022)。
権利情報が変更されると、データ変更通知部1263は、データ変更通知依頼を、仮想マシン間通知管理部1242へ出力する(ステップS2023)。仮想マシン間通知管理部1242は、データ変更通知を行うタイミングの判定を開始する(ステップS2026)。このとき、第2仮想実行部1502の仮想マシン1231は、通常状態で動作しているので、すぐに通知すると判定され、仮想マシンモニタ1240は、データ変更通知を第2仮想実行部1502へデータ変更通知を出力する(ステップS2027)。
再生アプリ1211は、仮想マシン1231及び汎用OSを介して、データ変更通知を受け取る(ステップS2027)。続いて、再生アプリ1211は、データ変更通知に含まれる領域識別子の示す共有データ領域1255に記憶されている権利情報を読み出し、読み出した権利情報を基に再生停止時刻及びタイマー設定時刻を決定する(ステップS2034)。タイマー1254を決定したタイマー設定時刻に設定する(ステップS2036)。続いて、再生アプリ1211は、汎用OS及び仮想マシン1231を介して、再生を指示されたコンテンツに対応する共有データ領域1255を示す領域識別子及び通知タイミング情報「B」を含む通知タイミング情報変更依頼を仮想マシンモニタ1240へ出力する(ステップS2037)。
次に、再生アプリ1211は、ハードウェア1250に含まれるデコーダ及び再生機構に、コンテンツ再生を指示する(ステップS2041)。
デコーダ及び再生機構は、再生アプリ1211からの指示に従って、コンテンツのデコード及び再生を開始する(ステップS2042)。
再生を指示した後、再生アプリ1211は、アイドル状態に遷移する(ステップS2044)。
再生アプリ1211がアイドル状態に遷移すると、仮想マシン1231は、省電力状態に遷移する(ステップS2046)。
仮想マシンモニタ1240内の共有データ管理部1243は、第2仮想実行部1502から通知タイミング情報変更依頼を受け取る(ステップS2037)。共有データ管理部1243は、受け取った通知タイミング情報変更依頼に含まれる領域識別子と対応する管理情報1410に含まれ、再生アプリ1211に対応する通知タイミング情報を変更する(ステップS2038)。
ステップS2021において、データ変更依頼を出力した後、所定時間経過すると、DRMアプリ1210は、アイドル状態に遷移する(ステップS2032)。
DRMアプリ1210がアイドル状態になると、仮想マシン1230は、省電力状態に遷移する(ステップS2032)。
第1仮想実行部1501及び第2仮想実行部1502双方が省電力状態になると、携帯端末1200自体がアイドル状態に遷移し(ステップS2048)、何らかの割込が発生するまで待機する。この間も、デコーダ及び再生機構は、コンテンツ再生を継続している。
利用者が、権利情報の取得を指示するキー操作を行い、割込が発生すると(ステップS2049)、第1仮想実行部1501を構成する仮想マシン1230及びDRMアプリ1210は、通常状態に復帰する(ステップS2051)。
DRMアプリ1210は、キー操作による指示に従って、権利管理サーバ1100から再生中のコンテンツに係る権利情報を新たに取得する(ステップS2052)。続いて、共有データ領域1255を示す領域識別子及び取得した権利情報を含むデータ変更依頼を生成し、生成したデータ変更依頼をRTOS1220及び仮想マシン1230を介して、仮想マシンモニタ1240へ出力する(ステップS2054)。
仮想マシンモニタ1240内の共有データ変更部1261は、第1仮想実行部1501からデータ変更依頼を受け取り(ステップS2054)、受け取ったデータ変更依頼に従って、共有データ領域1255の記憶している権利情報を変更する(ステップS2056)。
権利情報が変更されると、データ変更通知部1263は、仮想マシン間通知管理部1242へデータ変更通知依頼を出力する(ステップS2057)。
データ変更通知依頼を受け取ると、仮想マシン間通知管理部1242は、データ変更通知を出力するタイミングの判定を開始する(ステップS2058)。
仮想マシンモニタ1240は、ステップS2058による判定結果に応じて、第2仮想実行部へデータ変更通知を出力する(ステップS2059)。
タイマー1254による割込、仮想マシンモニタ1240による割込又は利用者のキー入力による割込が発生すると(ステップS2062)、第2仮想実行部1502の仮想マシン1231及び再生アプリ1211は、通常状態に復帰する(ステップS2063)。
第2仮想実行部は、通常状態に復帰した後、仮想マシンモニタ1240からデータ変更通知を受け取っておらず(ステップS2064のNO)、ステップS2034において決定した再生停止時刻に達していなければ(ステップS2066のNO)、データ変更通知を受け取るか、再生停止時刻に達するまで待機する。
データ変更通知を受け取る前に(ステップS2064のNO)、再生停止時刻に達すると(ステップS2066)、再生アプリ1211は、デコーダにコンテンツ再生の停止を指示する(ステップS2067)。
この指示を受けて、デコーダ及び再生機構は、コンテンツ再生を停止する。
データ変更通知を受け取ると(ステップS2064のYES)、再生アプリ1211は、共有データ領域1255に記憶されている変更後の権利情報を参照し、新たに再生停止時刻を決定する(ステップS2069)。このとき、コンテンツ再生中であれば(ステップS2071のYES)、再生アプリ1211は、新たに決定した再生停止時刻まで、再生を継続させる。
コンテンツ再生が停止されていれば(ステップS2071のNO)、再生アプリ1211は、デコーダに再生の再開を指示する(ステップS2072)。
なお、ステップS2049において、再生中のコンテンツの権利情報の追加取得の要求が発生しない場合には、第2仮想実行部1502のS2062以降の動作が異なる。この場合、ステップS2062において、タイマー割込が発生する。ステップS2066において、再生停止時刻に達すると(ステップS2066のYES)、再生アプリ1211は、デコーダに再生停止を指示して(ステップS2067)、携帯端末1200によるコンテンツ再生の動作は一旦終了する。
(2)仮想マシンモニタ1240による通知判定の動作
仮想マシン間通知管理部1242は、データ変更通知部1263からデータ変更通知依頼を受け取る。また、第1仮想実行部及び第2仮想実行部のいずれかから各種の指示や依頼の仲介を依頼される。この際、仮想マシンモニタ1240内では、依頼された内容を通知するタイミングの判定(通知判定と呼ぶ)を行い、判定されたタイミングにおいて、仮想マシン間通知管理部1242は、依頼された内容を通知する。
図16及び図17は、この通知判定における仮想マシンモニタの動作を示すフローチャートである。これは、図12のステップS2016、ステップS2026及び図15のステップS2058の詳細である。
以下、図16及び図17を用いて、通知判定における動作について説明する。ここで、仮想マシン間通知管理部1242の受け取る依頼には、通知先の仮想実行部に含まれるOS及びアプリケーションを示すOS識別子及びアプリ識別子、通知内容に関連する共有データ領域を示す領域識別子が含まれている。
仮想マシン間通知管理部1242は、受け取ったOS識別子と対応する仮想マシンの動作状態を、仮想マシン管理部1241へ問い合わせる(ステップS2201)。
問合せの結果、省電力状態でなければ(ステップS2202のNO)、仮想マシン間通知管理部1242は、直ちに依頼された通知内容を、通知先の仮想マシンへ出力する(ステップS2203)。
省電力状態であれば(ステップS2202のYES)、仮想マシン間通知管理部1242は、受け取った領域識別子、OS識別子及びアプリ識別子を含む判定依頼を、レジューム判定部1244へ出力する(ステップS2206)。
レジューム判定部1244は、共有データ管理部1243内の通知タイミング情報取得部1264から、受け取った領域識別子、OS識別子及びアプリ識別子に該当する通知タイミング情報を取得する(ステップS2207)。
取得した通知タイミング情報が「A:すぐに通知する必要がある」の場合(ステップS2208のA)、レジューム判定部1244は、判定結果「すぐに復帰」を出力する(ステップS2211)。
仮想マシン間通知管理部1242は、判定結果「すぐに復帰」を受け取り、仮想マシン管理部1241へ、通知先の仮想マシンの復帰を依頼する(ステップS2212)。
仮想マシン管理部1241は、割込を発生させて、通知先の仮想マシンを通常状態に復帰させる(ステップS2213)。
通知先の仮想マシンが通常状態に復帰し次第、仮想マシン間通知管理部1242は、通知内容を通知先の仮想マシンへ出力する(ステップS2214)。
取得した通知タイミング情報が「C:省電力状態から復帰した際に通知すればよい」である場合(ステップS2208のC)、レジューム判定部1244は、判定結果「復帰しない」を出力する(ステップS2226)。
仮想マシン間通知管理部1242は、判定結果「復帰しない」を受け取り、依頼された通知内容を待ちイベント記憶部1246へ出力する(ステップS2227)。割込発生により通知先の仮想マシンが通常状態に復帰すると、仮想マシン間通知管理部1242は、待ちイベント記憶部1246の記憶していた通知内容を、通知先の仮想マシンへ出力する(ステップS2228)。
取得した通知タイミング情報が「B:決められた時間の範囲内で通知すればよい」である場合(ステップS2208のB)、レジューム判定部1244は、割込発生予定時刻取得部1245に、割込発生予定時刻の取得を指示する(ステップS2216)。
次に、割込発生予定時刻取得部1245は、タイマー1254から、タイマー設定時刻を取得し、取得したタイマー設定時刻を割込発生予定時刻としてレジューム判定部1244へ通知する(ステップS2217)。
レジューム判定部1244は、タイマー設定時刻からイベント実行時間t1を差し引いた基準時刻T1を算出する(ステップS2218)。続いて、レジューム判定部1244は、基準時刻T1と、現在時刻Tnとを比較する(ステップS2221)。
比較の結果、T1>Tnの場合(ステップS2221のT1>T2)、レジューム判定部1244は、基準時刻T1にタイマー1254をセットしなおし(ステップS2222)、ステップS2226へ処理を移す。
比較の結果、T1≦Tnの場合(ステップS2221のT1≦Tn)、レジューム判定部1244は、ステップS2211へ処理を移す。
2.6 まとめ
以上、説明してきたように実施の形態1では、仮想マシン間通知管理部1242で、省電力状態から通常状態へ復帰させるかどうかの判断結果に応じて、イベントを通知したり、しなかったりすることで、省電力状態から通常状態への状態遷移の回数を減らし、機器の省電力化を実現すると共に、イベントを適切なタイミングで通知できる仮想マシン間通知管理部1242を搭載した携帯端末1200を実現することが可能となる。
なお、実施の形態1では、基準時刻T1>現在時刻Tnの場合、基準時刻T1をタイマー1254に設定しなおすとが、基準時刻T1以前の時刻であれば、いつでもよい。
また、コンテンツの再生中、つまり、第2仮想実行部1502が省電力状態の間に、第1仮想実行部1501は、利用者の操作に従って権利情報の取得し、仮想マシンモニタ1240は、再生アプリに対応する通知タイミング情報を基に決定したタイミングにおいて、権利情報の変更を第2仮想実行部1502へ通知するとした。しかし、第2仮想実行部1502が省電力状態の間に、権利情報の変更などの通知すべき事象が生じなかった場合にも、第2仮想実行部1502が通常状態に復帰したときに、仮想マシンモニタ1240は、通知すべき事象が生じなかった旨を通知するとしてもよい。
上記の場合において、通知すべき事象が生じなかった旨を通知するためのイベント実行時間t1’とし、イベント実行時間t1は、仮想マシン1231を介して、権利情報の変更の要する時間に加えて、再生アプリ1211が変更後の権利情報を参照する時間も含むとすると、t1’<T1となる。
従って、データ変更が起こった場合の基準時刻T1、データ変更が生じなかった場合の基準時刻T1’は、T1<T2を満たす。
また、上記の実施の形態1では、第1仮想実行部1501からデータ変更依頼を受けて、共有データ変更部1261は、データ変更通知部1263へ、変更通知依頼を出力し、データ変更通知部1263は、仮想マシン間通知管理部1242へデータ変更通知依頼を出力する。しかし、データ変更通知部1263が、共有データ領域1255を監視しており、記憶されている内容が変更されているかどうかをチェックし、変更されている場合にデータ変更通知依頼を仮想マシン間通知管理部1242へ出力するとしてもよい。
また、実施の形態1において、権利情報には、コンテンツの再生に関する制限情報が含まれているとしたが、コンテンツの一部又は全部が含まれているとしてもよい。この場合、既に取得済みのコンテンツを再生している間に、DRMアプリは、再生中のコンテンツの続きを含んだ権利情報を取得する。
また、上記の実施の形態でレジューム判定部1244は、現在時刻と基準時刻とを比較することで判定結果を導いているが、この方法に限定されるものではない。例えば、現在時刻からタイマー設定時刻までの時間(省電力継続予定時間t3)を算出し、算出した省電力継続予定時間t3とイベント実行時間t2とを比較してもよい。この場合、t3≦t2であれば、レジューム判定部1244は、判定結果「すぐ復帰する」を出力する。t3>t2であれば、レジューム判定部1244は、判定結果「復帰しない」を出力し、タイマー1254を基準時刻T1若しくは基準時刻以前の時刻T1−αに設定しなおす。
3. 実施の形態2
本発明実施の形態2では、本発明をTCGに対応した携帯端末に応用した例を説明する。
3.1 TCGについて
TCG(Trusted Computing Group)は、プラットフォームの信頼性を保証することにより、安全なコンピューティング環境を実現しようと考えている業界団体である。
TCGは、Trusted Platform Module(以下、TPM)と呼ばれる耐タンパー化されたモジュールを用いて、正当性の測定(Integrity Measurement)と呼ばれる機能を実現する。この機能は、ソフトウェアのハッシュ値(以下、測定結果、測定値とも呼ぶ)を計算(測定)し、計算したハッシュ値をTPM内のPlatform Configuration Register(以下、PCR)に安全に保存する機能である。TPM内部では、PCRへハッシュ値を保存するときに、その時のPCRの値と新しく保存するハッシュ値とを結合したデータに対してハッシュ値を計算し、その計算結果を新しいPCRの値として保存する(以下、この処理を「測定結果をPCRに反映する」とも呼ぶ)。この機能を利用して、TPMからBIOS、OSとソフトウェアを連鎖的にチェックし、それぞれのハッシュ値をPCRに保存することで、正しいソフトウェアが正しい順番で起動したかを確認することができ、信頼できるソフトウェア実行環境を構築できる。
さらに、TPMは、BIOSを測定したときに、測定結果であるハッシュ値が所定の値であるかを調べることで、BIOSが改ざんされていないかを検証し、改ざんされていた場合に起動を停止する。同様にBIOSがOSの測定と検証を行い、OSが改ざんされていた場合に起動を停止するというように、測定(ハッシュ値の計算)と検証を行うことで、不正なソフトウェが動作できない安全なソフトウェア実行環境も構築できる。
また、ソフトウェアの測定と検証を行う機能は、プログラム起動時だけでなく、プログラムの実行中に定期的に実行されたり、ソフトウェア中で鍵などの保護が必要なコードやデータを扱う処理を行う前に実行される。こうすることで、プログラムの実行中にデバッガなどを用いてプログラムが改ざんされたことを検出することが出来る、ソフトウェア実行環境を構築できる。
TPMは、上記機能の他に、TPM外部から利用できる機能としての暗復号機能やハッシュ計算機能を持ち、TPMを搭載した機器で暗号化されたデータの復号や、ハッシュを用いたデータの改ざん検出などに利用できる。
3.2 携帯端末1200の構成
図18は、本発明実施の形態2における携帯端末1200の構成図である。図18において、図3と同じ構成要素については同じ符号を用い、説明を省略する。
図18において、携帯端末1200は、図3の構成に加えて、TPM−OS1222、DRMアプリ1210、通信アプリ1214、TPMモジュール1212、1213、TPM1256から構成される。
TPM−OS1222は仮想マシン1232上で動作するOSであり、TPMモジュール1212、1213は、TPM−OS1222上で動作するアプリケーションソフトである。
TPM1256は、ハードウェアモジュールであり、携帯端末1200起動時のブートシーケンスにおいて、一番初めに実行するプログラムが格納されている。TPMモジュール1212、1213は、TPMの機能をソフトウェアで実現するアプリケーションソフトであり、それぞれ異なる識別子を持つことで、異なるTPMとして動作する。TPM−OS1222上で複数のTPMモジュールを動作させることで、端末製造メーカー、通信キャリア、著作権管理会社等、それぞれの会社毎に異なるTPMを利用することが出来る。
上記のような構成にすることで、例えば、TPM1256を端末製造メーカーが、TPMモジュール1212を通信キャリアが、TPMモジュール1213を著作権管理会社が利用するなどの複数の事業者がそれぞれ自分のTPMを利用する構成が可能になる。この時、TPM1256は、仮想マシンモニタ1240やTPM−OS1222などの端末を動作させるために必要なソフトウェアの検証や測定などに利用する。TPMモジュール1212は、仮想マシン1230上で動作するRTOS1220や通信アプリ1214などの通信を行うために必要なソフトウェアの検証や測定などに利用する。TPMモジュール1213は、DRMアプリ1210などのコンテンツの著作権処理を行うソフトウェアの検証や測定などに利用する。
なお、全TPM(TPMモジュールを含む)の信頼性を確保するため、本実施の形態では、以下のような処理を行う。さらに、TPM1256がTPMモジュール1212の検証と測定を行い、TPMモジュール1212がTPMモジュール1213の検証と測定を行う。こうすることで、TPM1256からの信頼の連鎖をTPMモジュール1213までつなぎ、携帯端末1200内のセキュリティを確保しつつ、複数のTPMを利用することが出来る。
なお、本発明実施の形態1では、TPMモジュール1212、1213はTPMの機能をソフトウェアで実現するアプリケーションソフトであるとしたが、これに限定するものではなく、TPMの機能の一部、例えば暗復号機能やハッシュ計算機能などのTPM間で共有できる機能はハードウェアにより実現してもよい。さらに、TPM1256が複数のコンテキストを切り替える機構を搭載し、TPMモジュール1212、1213は、TPMを利用するアプリケーションソフトへのインタフェースを提供するだけで、実際の処理はTPM1256が行う構成にしてもよい。
DRMアプリ1210は、実施の形態1のDRMアプリ1210と同等の機能を持つアプリケーションソフトである。ただし、本実施の形態では、TPMモジュール1213(著作権管理会社用のTPMモジュール)から起動され、動作を開始する。また、DRMアプリ1210は、動作中にデータの暗復号処理等が必要になったときには、TPMモジュール1213への処理イベントを生成し、仮想マシンモニタ1240の仮想マシン間通知管理部1242を通して、TPMモジュール1213に処理依頼を行う。
通信アプリ1214は、携帯端末1200による外部との通信の処理を司るアプリケーションソフトウェアである。通信アプリ1214は、RTOS1220により起動され、TPMモジュール1212(通信キャリア用のTPMモジュール)によって検証と測定が行われる。通信アプリ1214は、動作中にデータの暗復号処理等が必要になったときには、TPMモジュール1212への処理イベントを生成し、仮想マシンモニタ1240の仮想マシン間通知管理部1242を通して、TPMモジュール1212に処理依頼を行う。
TPM−OS1222は、TPMモジュール1212およびTPMモジュール1213に実行環境を提供するOSである。TPM−OS1222は、TPMモジュール1212や1213が動作していないときには、仮想マシン1232を省電力状態へ移行する。また、DRMアプリ1210や通信アプリ1214からTPMモジュール1212や1213への処理要求が発生したとき等、仮想マシン1232が動作する必要があるときに省電力状態から復帰する。
続いて、実施の形態2に処理イベントの詳細を説明する。図19は、実施の形態2における処理イベントのデータ構造を示す図である。なお、このデータ構造は、TPMモジュール1212への処理も、TPMモジュール1213への処理も同じである。
図19において、処理イベント情報1420のデータ構造は、処理を依頼するアプリケーションソフトが動作しているOSを識別するための依頼先OS識別子1421と、処理を依頼するアプリケーションソフトを識別するための依頼先アプリケーションソフト識別子1422と、依頼する処理を識別するための処理識別子1423と、処理に必要なデータ1424から構成される。依頼先OS識別子1421は、仮想マシンモニタ1240上で動作しているOSを識別するためのID番号や名前のような識別子であり、例えば、「1」や「TPM−OS」などである。依頼先アプリケーションソフト識別子1422は、OS上で動作しているアプリケーションソフトを識別するためのID番号や名前のような識別子であり、例えば、「1212」や「TPMモジュール1」などである。
DRMアプリ1210や通信アプリ1214は、TPMモジュール1212や1213へ処理を依頼するときに、処理イベント情報1420を生成し、仮想マシンモニタ1240の仮想マシン間通知管理部1242へイベントの通知を依頼する。処理イベント情報1420の生成に必要なTPMモジュール1212、1213に対する依頼先OS識別子1421や依頼先アプリケーションソフト識別子1422は、DRMアプリ1210や通信アプリ1214が起動する時に設定ファイルから取得する。処理イベント情報1420の通知依頼を受けた仮想マシン間通知管理部1242は、処理イベント情報1420に示されている依頼先OS識別子1421や依頼先アプリケーションソフト識別子1422に基づいてイベントの通知を行う。
TPM−OS1222は、TPMモジュール1212、1213が動作していないときには、仮想マシン1232を省電力状態へ移行する。仮想マシン1232が省電力状態の時に、DRMアプリ1210や通信アプリ1214からTPMモジュール1212や1213に対して処理依頼が来ると、実施の形態1と同様に、仮想マシン間通知管理部1242がレジューム判定部1244へ仮想マシン1232を省電力状態から通常状態へ復帰させるかどうかの判定を依頼する。レジューム判定部1244は、省電力状態から通常状態へ復帰させると判定した場合には、仮想マシン間通知管理部1242は、仮想マシン管理部1241へ仮想マシン1232を省電力状態から通常状態へ復帰させるよう依頼する。この依頼を受けた仮想マシン間通知管理部1242は、仮想マシン1232が通常状態へ復帰した時に処理イベント情報1420を通知する。一方、レジューム判定部1244が省電力状態から通常状態へ復帰させないと判定した場合には、仮想マシン間通知管理部1242は待ちイベント記憶部1246へ処理イベント情報1420を記憶し、別の要因で通知先の仮想マシン1232が省電力状態から通常状態へ復帰したときに処理イベント情報1420を通知する。
3.3 携帯端末1200のブートシーケンス
図20〜図25は、本発明実施の形態2における携帯端末1200のブートシーケンスである。電源投入時からのブート処理を順に説明する。
携帯端末1200は、電源が投入されるとTPM1256内のブートプログラムが実行される(S2100)。ブートプログラムは、自身の測定を行い、測定結果をTPM1256のPCRに反映する(S2101)。ブートプログラムは、仮想マシンモニタ1240の測定を行い、仮想マシンモニタ1240が改ざんされていないかチェックする(S2102)。改ざんされていた場合は処理を停止し(S2103)、改ざんされていない場合には測定結果をTPM1256のPCRに反映し仮想マシンモニタ1240を実行する(S2104)。仮想マシンモニタ1240は、TPM1256を利用して仮想マシン1232の測定を行い、仮想マシン1232が改ざんされていないかチェックする(S2105)。改ざんされていた場合は処理を停止し(S2106)、改ざんされていない場合には測定結果をTPM1256のPCRに反映し仮想マシン1232を起動する(S2107)。仮想マシン1232は、仮想化されたBIOSを実行し、TPM1256を利用してTPM−OS1222の測定を行い、TPM−OS1222が改ざんされていないかチェックする(S2108)。改ざんされていた場合は処理を停止し(S2109)、改ざんされていない場合には測定結果をTPM1256のPCRに反映しTPM−OS1222を実行する(S2110)。TPM−OS1222は、起動処理が終了しTPMモジュールが動作できる状態になると、その旨を仮想マシンモニタ1240へ通知する(S2111)。この状態で、仮想マシン1230を動作できる状態が整う。
次に仮想マシンモニタ1240は、TPM1256を利用して仮想マシン1230の測定を行い、仮想マシン1230が改ざんされていないかチェックする(S2112)。改ざんされていた場合には処理を停止し(S2113)、改ざんされていない場合には測定結果をTPM1256のPCRに反映し仮想マシン1230を起動する(S2114)。仮想マシン1230は、仮想化されたBIOSを実行し、仮想マシン1230上でOSが動作できる状態になると、その旨を仮想マシンモニタ1240へ通知する(S2115)。この状態で、RTOS1220を動作できる状態が整う。携帯端末1200を製造する端末製造メーカとしては、この状態までのセキュリティを保証すればよい。
続いて、通信キャリアが、通信に利用するRTOS1220および通信アプリ1214などのアプリケーションソフトのセキュリティを確保するための処理の説明に移る。上述したように、RTOS1220および通信アプリ1214は、TPM1256とは別の通信キャリア用のTPMモジュール1212を利用して起動する。
セキュリティを確保するためには、まず、通信キャリア用のTPMモジュール1212を起動させる必要がある。したがって、仮想マシンモニタ1240は、TPM−OS1222にTPMモジュール1212の実行を依頼する(S2116)。仮想マシンモニタ1240は、この依頼時に、仮想マシンモニタ1240はRTOS1220の実行ファイルの保存先とロード先を通知し、また、TPMモジュール1212の測定にTPM1256を利用するようにTPM−OS1222へ通知する。ここで、TPM1256はすでに改ざんがないことが確認されているので、TPM1256を用いることで信頼できる環境下でTPMモジュール1212の測定を行うことができる。TPM−OS1222は、TPM1256を利用してTPMモジュール1212の測定を行い、TPMモジュール1212が改ざんされていないかチェックする(S2117)。改ざんされていた場合には処理を停止し、仮想マシンモニタ1240へ実行失敗を通知する(S2118)。改ざんされていない場合には、測定結果をTPM1256のPCRに反映し、仮想マシンモニタ1240から通知されたRTOS1220の実行ファイルの保存先とロード先を引数にしてTPMモジュール1212を実行する(S2119)。TPMモジュール1212は、TPMモジュール1212自身の測定を行いTPMモジュール1212内のPCRに反映する(S2120)。TPMモジュール1212は、引数として与えられたRTOS1220の実行ファイルの保存先から実行ファイルを読み込み、ロード先へロードする(S2121)。TPMモジュール1212は、TPMモジュール1212自身を利用してRTOS1220の測定を行い、RTOS1220が改ざんされていないかチェックする(S2122)。改ざんされていた場合は処理を停止し、TPM−OS1222を通して仮想マシンモニタ1240へ実行失敗を通知する(S2123)。改ざんされていない場合には、測定結果をTPMモジュール1212のPCRに反映し、RTOS1220を実行する(S2124)。RTOS1220は、TPMモジュール1212を利用して通信アプリ1214の測定を行い、通信アプリ1214が改ざんされていないかチェックする(S2125)。改ざんされていた場合には処理を停止し、RTOS1220へ実行失敗を通知する(S2126)。改ざんされていない場合には、測定結果をTPMモジュール1212のPCRに反映し、通信アプリ1214を実行する(S2127)。
上記のようにすると、RTOS1220および通信アプリ1214などのアプリケーションソフトを、通信キャリア用のTPMで改ざんのないことを確認した上で、通信キャリアが提供する通信サービスを利用できる。
続いて、著作権管理会社が、DRMアプリ1210などのアプリケーションソフトのセキュリティを確保したいするための動作の説明に移る。上述したように、DRMアプリ1210はTPM1256やTPMモジュール1212とは別の著作権管理会社用のTPMモジュール1213を利用して起動する。
セキュリティの確保を実現するために、RTOS1220は、TPMモジュール1212にTPMモジュール1213の実行を依頼する(S2128)。ここで、TPMモジュール1212はすでに改ざんがないことが確認されているので、TPMモジュール1213の実行および改ざんの有無の確認を安全な環境下で行うことができる。RTOS1220は、依頼時に、RTOS1220はDRMアプリ1210の実行ファイルの保存先とロード先を通知する。TPMモジュール1212は、起動時に読み込む設定ファイルに記されている場所に保存されている、TPMモジュール1213の測定を行い、TPMモジュール1213が改ざんされていないかチェックする(S2129)。改ざんされていた場合には処理を停止し、RTOS1220へ実行失敗を通知する(S2130)。改ざんされていない場合には、測定結果をTPMモジュール1212のPCRに反映し、RTOS1220から通知されたDRMアプリ1210の実行ファイルの保存先とロード先を引数にしてTPMモジュール1213を実行する(S2131)。TPMモジュール1213は、TPMモジュール1213自身の測定を行い、測定結果をTPMモジュール1213内のPCRに反映する(S2132)。TPMモジュール1213は、引数として与えられたDRMアプリ1210の実行ファイルの保存先から実行ファイルを読み込み、ロード先へロードする(S2133)。TPMモジュール1213は、DRMアプリ1210の測定を行い、DRMアプリ1210が改ざんされていないかチェックする(S2134)。改ざんされていた場合には処理を停止し、RTOS1220へ実行失敗を通知する(S2135)。改ざんされていない場合には、測定結果をTPMモジュール1213のPCRに反映し、DRMアプリ1210を実行する(S2136)。
上記のようにすると、DRMアプリ1210などのアプリケーションソフトを、著作権管理会社用のTPMで改ざんのないことを確認した上で、著作権管理会社が提供する権利購入サービスを利用できる。
3.4 省電力状態からの復帰判定方法
続いて、仮想マシン1232が省電力状態の時に、その仮想マシン1232を復帰させるかどうかを判定する処理についての説明を行う。
レジューム判定部1244は、仮想マシン1232が省電力状態の時に処理イベント情報1420が発生すると、仮想マシン1232を省電力状態から復帰させて、処理イベント情報1420を通知するか否かの判定を行う。
レジューム判定部1244は、判定を、処理イベント情報1420の処理識別子1423に基づいて行う。まず、レジューム判定部1244は、システム起動時に、通知タイミング管理情報1430を設定ファイルから読み込む。通知タイミング管理情報は、処理イベントが発生した時に省電力状態から復帰して仮想マシンに通知すべきか否かが処理識別子1423ごとに記述された情報である。
図26は通知タイミング管理情報1430のデータ構造を示す図である。通知タイミング管理情報には、すぐに通知する必要があることを示す情報と省電力状態から復帰したときに通知すればよいことを示す情報の2種類の通知タイミングのいずれかが、処理識別子1423ごとに記述されている。それぞれの通知タイミング情報に対する復帰判定方法を下記に示す。
通知タイミング情報が、処理イベントをすぐに通知する必要があることを示す場合の処理イベント情報1420の例としては、仮想マシンモニタ1240がRTOS1220の実行をTPM−OS1222に依頼する処理や、実行中のプログラムのハッシュ値計算を依頼する処理などがある。これらの処理イベントは、携帯端末1200内のセキュリティを確保するための処理イベントであり、セキュリティ的に重要な処理である。そのため、不正行為を防止するために、通知があってからできるだけ迅速に処理を行う必要がある。本実施の形態では、このような、セキュリティ的に重要な処理イベントの通知タイミングを、すぐに通知する必要がある場合とし、レジューム判定部1244は、処理イベントの処理識別子1423と設定ファイルとに基づいて、通知対象の仮想マシン1232を省電力状態から通常状態へ復帰させると判定する。
省電力状態から復帰したときに通知すればよい場合の処理イベント情報1420の例としては、DRMアプリ1210がTPMモジュール1213の暗復号機能を利用して権利情報などのデータを復号する処理など、アプリケーションがTPMの機能を利用するときの処理イベントがある。この場合、レジューム判定部1244は、処理識別子1423と設定ファイルとに基づいて、通知対象の仮想マシン1232を省電力状態から通常状態へ復帰させないと判定する。そして、これらの処理は、実施の形態1と同様に次に別の要因で仮想マシン1232が復帰した時に仮想マシン1232に通知される。
なお、本発明実施の形態2では、処理識別子1423によって識別される処理イベント情報1420が、携帯端末1200におけるセキュリティの重要度に応じて通知タイミングを分類していた。具体的には、すぐに通知すればよい場合と省電力状態から復帰したときに通知すればよい場合とに分けていた。しかし、これに限定するものではない。例えば、携帯端末1200内のソフトウェアを、TPM1256により測定されるソフトウェア群、TPMモジュール1212により測定されるソフトウェア群、TPMモジュール1213により測定されるソフトウェア群と3つのソフトウェア群に分ける。そして、TPMモジュール1212により測定されるソフトウェア群から、TPMモジュール1213により測定されるソフトウェア群への処理イベントの通知タイミングをすぐに通知するとし、逆向きの処理イベントの通知タイミングを省電力状態から復帰したときに通知するというようにしてもよい。この場合、TPM1256とTPMモジュール1212、1213との関係によって構成されるソフトウェア群間の処理イベントの通知方向によって通知タイミングを分けている。
4.その他の変形例
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)本発明実施の形態1及び2では、携帯端末を例として説明したが、これに限られるものではない。テレビやパーソナルコンピュータ、光ディスクのプレイヤーなど他のデータ処理装置であってもよい。
(2)本発明実施の形態1では、アプリケーションソフトウェアが通知タイミングを指定し、本発明実施の形態2では、処理イベント毎に通知タイミングが指定されるとしていたが、これに限られるものではない。例えば、実施の形態1と2とで通知タイミングの指定方法を逆にしてもよいし、ユーザが通知タイミングをI/Oデバイスを介して指定できるなどとしてもよい。
(3)本発明実施の形態1では、2つのアプリケーションソフトがコンテンツの権利情報を共有し、権利情報が更新されたときに、更新前の権利情報の示す再生権利がなくなる直前まで、権利情報の更新を通知しないとしたが、これに限定するものではなく、2つのアプリケーションソフトがコンテンツの再生などの処理の継続に必要なデータを共有し、一方のアプリケーションソフトがデータを参照して処理を継続するかを判定し、もう一方のアプリケーションソフトがデータを変更するシステムであればよい。例えば、コンテンツ中に早送りが可能な部分と、不可能な部分がある場合、コンテンツの早送りをする機能を有する装置において、コンテンツの早送りの継続の可否を判断する情報を2つのアプリケーションソフトで共有するとしても良い。この時、2つのアプリケーションソフトは、コンテンツの早送りを制御するアプリケーションソフトと、コンテンツに付加された情報から早送り可能かどうかを判断する情報を読み込み、共有データを変更するアプリケーションソフトであってもよい。また、テレビ番組の予約録画を行う装置で、ネットワーク経由でテレビ番組の放映時間を取得できる場合、放映時間を取得する放映時間取得アプリが、放映時間の変更を、予約された時間に番組を録画する予約録画アプリに通知する時に、予約した時間の直前まで放映時間の変更を通知しないとしても良い。また、ニュースなどの情報をネットワーク上のwwwサイトから定期的に取得し、取得した情報を表示するようなアプリケーションソフトへの応用も考えられる。この場合、情報を取得するwwwサイトのアドレスを、アドレス登録アプリと情報表示アプリで共有することが考えられる。この場合、アドレス登録アプリがwwwサイトのアドレスを更新しても、情報表示アプリがwwwサイトから表示用の情報を取得する直前まで、wwwサイトのアドレスの変更を情報表示アプリに通知しないようにしても良い。この様な構成にすることで、予約録画アプリや情報表示アプリが動作している仮想マシンが省電力状態になる場合に、省電力化を考慮したイベントの通知を行うことが出来る。
(4)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(5)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。なお、各装置は、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどの全てを含むコンピュータシステムには限らず、これらの一部から構成されているコンピュータシステムであってもよい。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(6)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパー性を有するとしてもよい。
(7)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(8)また、本発明は、複数の仮想マシンを管理するデータ処理装置であって、前記複数の仮想マシンは通常状態と省電力状態の2つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理装置は、前記複数の仮想マシンを管理する仮想マシン管理部と、前記複数の仮想マシンのうちの1以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理部と、前記複数の仮想マシンのうちの2以上の仮想マシンで共有する共有データを管理する共有データ管理部と、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得部と、前記複数の仮想マシンのうちの1以上の仮想マシンが省電力状態の時に、前記1以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記1以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定部と、前記レジューム判定部が、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理部で通知するイベントを記憶する待ちイベント記憶部とを備えるとしてもよい。
(9)上記の変形例(8)において、前記イベントの通知タイミング情報は、前記1以上の仮想マシンが省電力状態であっても通知を行うことを示す情報と、あらかじめ決められた時間間隔の範囲内で通知を行うことを示す情報と、前記1以上の仮想マシンが省電力状態から通常状態へ復帰したときに通知を行うことを示す情報とがあり、前記レジューム判定部は、さらに、前記イベントの通知タイミング情報が、あらかじめ決められた時間間隔の範囲内で通知を行うことを示す場合に、前記割込発生時間取得部から割込発生時間を取得し、前記割込発生時間の値に応じて前記1以上の仮想マシンそれぞれを通常状態へ復帰させるか否かを判定することを特徴とする。
(10)上記の変形例(8)または(9)において、前記レジューム判定部は、さらに、前記割込発生時間が前記通常状態への復帰するための処理時間より長い場合に、前記1以上の仮想マシンそれぞれへ通知するイベントを前記待ちイベント記憶部へ記憶し、前記1以上の仮想マシンそれぞれは省電力状態から通常状態へ復帰させないと判定するとしてもよい。
(11)上記の変形例(8)〜(10)のいずれかにおいて、前記レジューム判定部は、さらに、前記割込発生時間が前記通常状態への復帰するための処理時間より短い場合に、前記1以上の仮想マシンそれぞれは省電力状態から通常状態へ復帰させると判定するとしてもよい。
(12)また、上記の変形例(8)〜(11)において、前記レジューム判定部は、さらに、前記通知タイミング情報が、前記1以上の仮想マシンが省電力状態であっても通知を行うことを示す場合に、前記1以上の仮想マシンそれぞれを省電力状態から通常状態へ復帰させると判定するとしてもよい。
(13)また、上記の変形例(8)〜(12)において、前記レジューム判定部は、さらに、前記通知タイミング情報が、前記1以上の仮想マシンが省電力状態から通常状態へ復帰したときに通知を行うことを示す場合に、前記1以上の仮想マシンそれぞれを省電力状態から通常状態へ復帰させないと判定するとしてもよい。
(14)また、上記の変形例(8)〜(13)の前記データ処理装置は、さらに、前記複数の仮想マシンそれぞれで動作する複数のプログラムを備え、前記複数の仮想マシンそれぞれは、仮想マシンを識別するための仮想マシン識別子を備え、前記複数のプログラムは、前記共有データ管理部が管理する共有データを利用し、前記複数のプログラムそれぞれは、プログラムを識別するためのプログラム識別子を備え、前記共有データ管理部は、前記共有データを管理する管理情報を前記共有データ毎に備え、前記管理情報は、前記共有データを利用するプログラムのプログラム識別子と、前記プログラムが動作する仮想マシンの仮想マシン識別子と、前記通知タイミング情報とから構成されるとしてもよい。
(15)また、上記の変形例(8)〜(14)の前記データ処理装置は、さらに、あらかじめ設定された時間に割込を発生させるタイマーを備え、前記複数の仮想マシンは前記通常状態復帰用割り込みとして前記タイマーに割り込みを発生させる時間を設定し、前記割込発生時間取得部は、さらに、前記通常状態復帰用割り込みが発生するまでの時間を前記タイマーから取得するとしてもよい。
(16)また、本発明は、上記の変形例(8)に記載のデータ処理装置と権利管理サーバと記憶装置からなる権利配信システムであって、前記記憶装置は、暗号化されたコンテンツ情報を格納し、前記権利管理サーバは、前記データ処理装置から前記コンテンツ情報の使用権利の取得要求に対して、前記コンテンツ情報の使用権利に関する権利情報を前記データ処理装置へ送信し、前記データ処理装置は、前記複数の仮想マシンと、前記複数の仮想マシンに含まれる第1の仮想マシン上で動作する第1のプログラムと、前記複数の仮想マシンに含まれる第2の仮想マシン上で動作する第2のプログラムとを備え、前記第1のプログラムは前記権利管理サーバから前記権利情報を受信し、前記第2のプログラムは前記権利情報に含まれる前記復号鍵を使用して暗号化された前記コンテンツ情報を復号化し、前記第1と第2のプログラムは、前記権利情報を前記共有データとして保持するとしてもよい。
(17)また、本発明は、複数の仮想マシンを管理するデータ処理装置で用いられる仮想マシンモニタであって、前記複数の仮想マシンは通常状態と省電力状態の2つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記仮想マシンモニタは、前記複数の仮想マシンを管理する仮想マシン管理部と、前記複数の仮想マシンのうちの1以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理部と、前記複数の仮想マシンのうちの2以上の仮想マシンで共有する共有データを管理する共有データ管理部と、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得部と、前記複数の仮想マシンのうちの1以上の仮想マシンが省電力状態の時に、前記1以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記1以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定部と、前記レジューム判定部が、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理部で通知するイベントを記憶する待ちイベント記憶部とを備えるとしてもよい。
(18)また、本発明は、複数の仮想マシンを管理するデータ処理方法であって、前記複数の仮想マシンは通常状態と省電力状態の2つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理方法は、前記複数の仮想マシンを管理する仮想マシン管理ステップと、前記複数の仮想マシンのうちの1以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理ステップと、前記複数の仮想マシンのうちの2以上の仮想マシンで共有する共有データを管理する共有データ管理ステップと、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得ステップと、前記複数の仮想マシンのうちの1以上の仮想マシンが省電力状態の時に、前記1以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記1以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定ステップと、前記レジューム判定ステップが、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理ステップで通知するイベントを記憶する待ちイベント記憶ステップとを含むとしてもよい。
(19)また、本発明は、複数の仮想マシンを管理するデータ処理プログラムであって、前記複数の仮想マシンは通常状態と省電力状態の2つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理プログラムは、前記複数の仮想マシンを管理する仮想マシン管理ステップと、前記複数の仮想マシンのうちの1以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理ステップと、前記複数の仮想マシンのうちの2以上の仮想マシンで共有する共有データを管理する共有データ管理ステップと、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得ステップと、前記複数の仮想マシンのうちの1以上の仮想マシンが省電力状態の時に、前記1以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記1以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定ステップと、前記レジューム判定ステップが、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理ステップで通知するイベントを記憶する待ちイベント記憶ステップとを含むとしてもよい。
(20)また、本発明は、複数の仮想マシンを管理するデータ処理プログラムが記録された記録媒体であって、前記複数の仮想マシンは通常状態と省電力状態の2つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理プログラムは、前記複数の仮想マシンを管理する仮想マシン管理ステップと、前記複数の仮想マシンのうちの1以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理ステップと、前記複数の仮想マシンのうちの2以上の仮想マシンで共有する共有データを管理する共有データ管理ステップと、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得ステップと、前記複数の仮想マシンのうちの1以上の仮想マシンが省電力状態の時に、前記1以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記1以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定ステップと、前記レジューム判定ステップが、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理ステップで通知するイベントを記憶する待ちイベント記憶ステップとを含むとしてもよい。
(21)また、本発明は、複数の仮想マシンを管理するデータ処理装置で用いられる集積回路であって、前記複数の仮想マシンは通常状態と省電力状態の2つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記集積回路は、前記複数の仮想マシンを管理する仮想マシン管理部と、前記複数の仮想マシンのうちの1以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理部と、前記複数の仮想マシンのうちの2以上の仮想マシンで共有する共有データを管理する共有データ管理部と、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得部と、前記複数の仮想マシンのうちの1以上の仮想マシンが省電力状態の時に、前記1以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記1以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定部と、前記レジューム判定部が、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理部で通知するイベントを記憶する待ちイベント記憶部とを備えるとしてもよい。
(22)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明は、複数の仮想マシンを搭載し、そのうちいずれかが省電力状態に遷移する電気機器を製造する産業、販売する産業、及びこのような機器を利用して、各種のサービスを提供する産業において、経営的、継続的、反復的に利用することができる。
本発明の実施の形態1におけるコンテンツ権利配信システム1000の全体図。 本発明の実施の形態1における権利情報1404の構成図。 本発明の実施の形態1における携帯端末1200の構成図。 本発明の実施の形態1における仮想マシンモニタ1240の構成図。 本発明の実施の形態1における共有データ管理部1243の構成及びデータフローを示す図。 本発明の実施の形態1における管理情報1410の構成図。 本発明の実施の形態1におけるレジューム判定部1244保持する判定基準表の詳細を示す図。 通知タイミング情報「B」を受け取った場合にレジューム判定部1244が、判定を行うために用いる時刻及び時間の関係を示す図。 現在時刻Tnと基準時刻T1の前後関係の一例を示す図。 現在時刻Tnと基準時刻T1の前後関係の一例を示す図。 本発明の実施の形態1において、携帯端末1200によるコンテンツ再生の動作を示すフローチャート。 本発明の実施の形態1において、携帯端末1200によるコンテンツ再生の動作を示すフローチャート。図11から続く。 本発明の実施の形態1において、携帯端末1200によるコンテンツ再生の動作を示すフローチャート。図12から続く。 本発明の実施の形態1において、携帯端末1200によるコンテンツ再生の動作を示すフローチャート。図13から続く。 本発明の実施の形態1において、携帯端末1200によるコンテンツ再生の動作を示すフローチャート。図14から続く。 本発明の実施の形態1において、仮想マシンモニタ1240による通知判定の動作を示すフローチャート。 本発明の実施の形態1において、仮想マシンモニタ1240による通知判定の動作を示すフローチャート。図16から続く。 本発明の実施の形態2における携帯端末1200の構成図。 本発明の実施の形態2における処理イベント情報1420の構成図。 本発明の実施の形態2における携帯端末1200起動時の処理を示すフローチャート。 本発明の実施の形態2における携帯端末1200起動時の処理を示すフローチャート。図20から続く。 本発明の実施の形態2における携帯端末1200起動時の処理を示すフローチャート。図21から続く。 本発明の実施の形態2における携帯端末1200起動時の処理を示すフローチャート。図22から続く。 本発明の実施の形態2における携帯端末1200起動時の処理を示すフローチャート。図23から続く。 本発明の実施の形態2における携帯端末1200起動時の処理を示すフローチャート。図24から続く。 本発明の実施の形態2における通知タイミング管理情報1430の構成図。 従来技術における共有データ変更通知機能の構成図。
1000 コンテンツ権利配信システム
1100 権利管理サーバ
1200 携帯端末
1210 DRMアプリ
1211 再生アプリ
1212 TPMモジュール
1213 TPMモジュール
1214 通信アプリ
1220 RTOS
1221 汎用OS
1222 TPM−OS
1230 仮想マシン
1231 仮想マシン
1232 仮想マシン
1240 仮想マシンモニタ
1241 仮想マシン管理部
1242 仮想マシン間通知管理部
1243 共有データ管理部
1244 レジューム判定部
1245 割込発生予定時刻取得部
1246 待ちイベント記憶部
1250 ハードウェア
1251 メモリ
1252 プロセッサ
1253 I/Oデバイス
1254 タイマー
1255 共有データ領域
1256 TPM
1260 共有データ確保部
1261 共有データ変更部
1262 管理情報保持部
1263 データ変更通知部
1264 通知タイミング情報取得部
1300 記憶装置
1430 通知タイミング管理情報
1502 第2仮想実行部

Claims (14)

  1. コンテンツを再生する再生部と、
    通常状態及び省電力状態の相互間の切替え機能を有し、コンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生停止時刻を、前記通常状態において決定し、前記再生停止時刻が来たときにコンテンツ再生の停止処理を行う第1仮想実行部と、
    前記所定の情報を更新する第2仮想実行部と、
    前記所定の情報を格納するメモリを有し前記第1仮想実行部及び前記第2仮想実行部を管理する仮想マシンモニタと、を具備し、
    前記第1仮想実行部は、前記省電力状態に移行する前に、前記再生停止時刻前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行し、
    前記仮想マシンモニタは、前記所定の情報の更新があった場合、前記所定の時刻が到来するときに、前記更新があった旨を前記第1仮想実行部に通知する
    ことを特徴とするデータ処理装置。
  2. 前記第1仮想実行部は、前記仮想マシンモニタからの通知によって前記省電力状態から前記通常状態に移行して、前記メモリに格納された更新情報に基づいてコンテンツの再生停止時刻を決定する
    ことを特徴とする請求項1記載のデータ処理装置。
  3. 前記仮想マシンモニタは、前記所定の情報の更新がなく前記所定の時刻が到来すると判断した場合、その旨を前記第1仮想実行部に通知して前記第1仮想実行部を前記通常状態に戻す
    ことを特徴とする請求項2記載のデータ処理装置。
  4. 前記仮想マシンモニタは、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに前記更新があった旨を前記第1仮想実行部に通知して前記第1仮想実行部を前記通常状態に戻す第1のタイミングと、
    前記所定の情報の更新が無く前記所定の時刻が到来すると判断した場合にその旨を前記第1仮想実行部に通知して前記第1仮想実行部を前記通常状態に戻す第2のタイミングとを有し、
    前記第1のタイミングは、前記2のタイミングより前記所定の時刻を起点にして前である
    ことを特徴とする請求項3記載のデータ処理装置。
  5. 前記仮想マシンモニタは、前記所定の情報の更新が無い状態で前記第1のタイミングを経過した後であって前記第2のタイミングを経過する前に、前記メモリを参照して前記所定の情報の更新があったと判断した場合は、直ちに前記更新があった旨を前記第1仮想実行部に通知して前記第1仮想実行部を前記通常状態に戻す
    ことを特徴とする請求項4記載のデータ処理装置。
  6. 前記第2仮想実行部は、前記所定の情報を更新する際、前記仮想マシンモニタに前記メモリの格納内容の更新を依頼し、
    前記仮想マシンモニタは、前記依頼に基づいて前記所定の情報の更新があったと判断し、前記所定の情報の更新情報を前記メモリに格納する
    ことを特徴とする請求項1記載のデータ処理装置。
  7. コンテンツの再生を継続するための前記所定の情報は、前記コンテンツの再生を許可する時間または期限である
    ことを特徴とする請求項1記載のデータ処理装置。
  8. コンテンツの再生を継続するための前記所定の情報は、再生中の前記コンテンツに続いて再生する次のコンテンツの一部又は全てである
    ことを特徴とする請求項1記載のデータ処理装置。
  9. 前記再生部は、前記コンテンツの早送りをする機能を有し、
    前記第1仮想実行部は、前記通常状態において前記所定の情報に基づいてコンテンツの早送りの継続の可否を判断し、前記再生停止時刻が来たときにコンテンツ再生の停止処理を行う
    ことを特徴とする請求項1記載のデータ処理装置。
  10. 前記仮想マシンモニタは、タイマーを有し、
    前記所定の情報の更新があったと判断した場合、前記所定の時刻が到来するときまでの時間を前記タイマーを基に取得し、前記取得した時間に基づいて前記更新があった旨を前記第1仮想実行部に通知する
    ことを特徴とする請求項1記載のデータ処理装置。
  11. コンテンツを再生する再生部と、
    通常状態及び省電力状態の相互間の切替え機能を有し、コンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生停止時刻を、前記通常状態において決定し、前記再生停止時刻が来たときにコンテンツ再生の停止処理を行う第1仮想実行部と、
    前記所定の情報を更新する第2仮想実行部と、
    前記所定の情報を格納するメモリを有し前記第1仮想実行部及び前記第2仮想実行部を管理する仮想マシンモニタと
    を具備するデータ処理装置のデータ処理方法であって、
    前記第1仮想実行部、前記省電力状態に移行する前に、前記再生停止時刻前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行するステップと、
    前記仮想マシンモニタ、前記所定の情報の更新があった場合、前記所定の時刻が到来するときに、前記更新があった旨を前記第1仮想実行部に通知するステップとを含む
    ことを特徴とするデータ処理方法。
  12. コンピュータをデータ処理装置として機能させるためのデータ処理プログラムであって
    前記コンピュータ
    コンテンツを再生する再生部と、
    通常状態及び省電力状態の相互間の切替え機能を有し、コンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生停止時刻を、前記通常状態において決定し、前記再生停止時刻が来たときにコンテンツ再生の停止処理を行う第1仮想実行部と、
    前記所定の情報を更新する第2仮想実行部と、
    前記所定の情報を格納するメモリをし前記第1仮想実行部及び前記第2仮想実行部を管理する仮想マシンモニタとして機能させ、
    前記第1仮想実行部は、前記省電力状態に移行する前に、前記再生停止時刻前であって前記省電力状態から前記通常状態に戻る所定の時刻を決定して、前記所定の時刻まで省電力状態に移行し、
    前記仮想マシンモニタは、前記所定の情報の更新があった場合、前記所定の時刻が到来するときに、前記更新があった旨を前記第1仮想実行部通知する
    ことを特徴とするデータ処理プログラム。
  13. コンピュータをデータ処理装置として機能させるためのデータ処理プログラムを記憶するコンピュータ読み取り可能な記録媒体であって、
    前記データ処理プログラムは、前記コンピュータ
    コンテンツを再生する再生部と、
    通常状態及び省電力状態の相互間の切替え機能を有し、コンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生停止時刻を、前記通常状態において決定し、前記再生停止時刻が来たときにコンテンツ再生の停止処理を行う第1仮想実行部と、
    前記所定の情報を更新する第2仮想実行部と、
    前記所定の情報を格納するメモリをし、前記第1仮想実行部及び前記第2仮想実行部を管理する仮想マシンモニタとして機能させ
    前記第1仮想実行部は、前記省電力状態に移行する前に、前記再生停止時刻前であって前記省電力状態から前記通常状態に戻る所定の時刻を決定して、前記所定の時刻まで省電力状態に移行し、
    前記仮想マシンモニタは、前記所定の情報の更新があった場合、前記所定の時刻が到来するときに、前記更新があった旨を前記第1仮想実行部通知する
    ことを特徴とする記録媒体。
  14. ンテンツを再生する再生部と、
    通常状態及び省電力状態の相互間の切替え機能を有し、コンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生停止時刻を、前記通常状態において決定し、前記再生停止時刻が来たときにコンテンツ再生の停止処理を行う第1仮想実行部と、
    前記所定の情報を更新する第2仮想実行部と、
    前記所定の情報を格納するメモリをし、前記第1仮想実行部及び前記第2仮想実行部を管理する仮想マシンモニタと、を具備し、
    前記第1仮想実行部は、前記省電力状態に移行する前に、前記再生停止時刻前であって前記省電力状態から前記通常状態に戻る所定の時刻を決定して、前記所定の時刻まで省電力状態に移行し、
    前記仮想マシンモニタは、前記所定の情報の更新があった場合、前記所定の時刻が到来するときに、前記更新があった旨を前記第1仮想実行部通知する
    ことを特徴とする集積回路。
JP2009503352A 2007-07-05 2008-06-04 データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路 Expired - Fee Related JP5249920B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009503352A JP5249920B2 (ja) 2007-07-05 2008-06-04 データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007177075 2007-07-05
JP2007177075 2007-07-05
PCT/JP2008/001418 WO2009004757A1 (ja) 2007-07-05 2008-06-04 データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路
JP2009503352A JP5249920B2 (ja) 2007-07-05 2008-06-04 データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路

Publications (2)

Publication Number Publication Date
JPWO2009004757A1 JPWO2009004757A1 (ja) 2010-08-26
JP5249920B2 true JP5249920B2 (ja) 2013-07-31

Family

ID=40225824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009503352A Expired - Fee Related JP5249920B2 (ja) 2007-07-05 2008-06-04 データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路

Country Status (5)

Country Link
US (1) US8127168B2 (ja)
EP (1) EP2169549A4 (ja)
JP (1) JP5249920B2 (ja)
CN (1) CN101542439B (ja)
WO (1) WO2009004757A1 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK319685A (da) * 1985-07-12 1987-01-13 Fonden Til Fremme Af Eksperime Monoklonale antistoffer, fremgangsmaade til frembringelse af antistofferne, hybridomaceller, der producerer antistofferne, og anvendelse af antistofferne
US8156503B2 (en) * 2008-02-12 2012-04-10 International Business Machines Corporation System, method and computer program product for accessing a memory space allocated to a virtual machine
US9405347B2 (en) 2009-02-26 2016-08-02 Microsoft Technology Licensing, Llc Power-saving operating system for virtual environment
JP5360978B2 (ja) * 2009-05-22 2013-12-04 株式会社日立製作所 ファイルサーバ、及びファイルサーバにおけるファイル操作通知方法
US8806496B2 (en) * 2009-09-30 2014-08-12 Intel Corporation Virtualizing a processor time counter during migration of virtual machine by determining a scaling factor at the destination platform
US8667489B2 (en) * 2010-06-29 2014-03-04 Symantec Corporation Systems and methods for sharing the results of analyses among virtual machines
US10360143B2 (en) * 2010-07-01 2019-07-23 Qualcomm Incorporated Parallel use of integrated non-volatile memory and main volatile memory within a mobile device
CN102346533A (zh) * 2010-07-29 2012-02-08 鸿富锦精密工业(深圳)有限公司 具省电模式的电子装置及控制其进入省电模式的方法
CN103329093B (zh) * 2011-01-19 2017-09-12 国际商业机器公司 用于更新执行环境中的代码的方法和系统
EP2503466B1 (en) 2011-03-23 2017-08-23 Canon Denshi Kabushiki Kaisha Peripheral device used while being connected to information processing apparatus
JP5869228B2 (ja) * 2011-03-31 2016-02-24 キヤノン電子株式会社 周辺装置、画像読取装置および情報処理システム
JP5696603B2 (ja) * 2011-06-29 2015-04-08 富士通株式会社 計算機システム、計算機システムの電力制御方法およびプログラム
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
US9411970B2 (en) * 2011-08-19 2016-08-09 Microsoft Technology Licensing, Llc Sealing secret data with a policy that includes a sensor-based constraint
JP5923100B2 (ja) * 2011-09-26 2016-05-24 京セラ株式会社 電力管理システム、電力管理方法及び上位電力管理装置
DE112012004368T5 (de) 2011-10-21 2014-07-31 Mitsubishi Electric Corp. Videobildinformations-wiedergabeverfahren und videobildinformations-wiedergabevorrichtung
CN103164260B (zh) * 2011-12-15 2016-06-01 中国银联股份有限公司 用于移动终端的应用程序管理系统及方法
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US9336035B2 (en) * 2012-10-23 2016-05-10 Vmware, Inc. Method and system for VM-granular I/O caching
US9851989B2 (en) 2012-12-12 2017-12-26 Vmware, Inc. Methods and apparatus to manage virtual machines
US20140280964A1 (en) * 2013-03-15 2014-09-18 Gravitant, Inc. Systems, methods and computer readable mediums for implementing cloud service brokerage platform functionalities
US9055119B2 (en) 2013-03-26 2015-06-09 Vmware, Inc. Method and system for VM-granular SSD/FLASH cache live migration
US9419879B2 (en) 2013-06-20 2016-08-16 International Business Machines Corporation Selectively refreshing address registration information
EP2985674B1 (en) * 2013-07-10 2020-08-26 Nintendo Co., Ltd. Information processing system, information processing device, information processing program, and method for controlling operation mode
US20150058926A1 (en) * 2013-08-23 2015-02-26 International Business Machines Corporation Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment
CN103440460A (zh) * 2013-09-09 2013-12-11 中国农业银行股份有限公司 一种应用系统变更验证方法及验证系统
US9715410B2 (en) * 2015-01-30 2017-07-25 Red Hat Israel, Ltd. Protected virtual machine function access
US9785487B1 (en) * 2015-05-12 2017-10-10 Google Inc. Managing device functions based on physical interaction with device modules
CN105117652B (zh) * 2015-10-09 2018-12-04 天津国芯科技有限公司 一种基于NAND Flash的SOC启动方法
JP6674092B2 (ja) * 2016-02-10 2020-04-01 富士通株式会社 データ管理プログラム、データ管理装置、及びデータ管理方法
JP6922835B2 (ja) * 2018-05-10 2021-08-18 日本電信電話株式会社 サービス連携装置および通知方法
US11397815B2 (en) * 2018-09-21 2022-07-26 Hewlett Packard Enterprise Development Lp Secure data protection
US10817046B2 (en) * 2018-12-31 2020-10-27 Bmc Software, Inc. Power saving through automated power scheduling of virtual machines
EP3709201A1 (en) * 2019-03-13 2020-09-16 Siemens Aktiengesellschaft Method for verifying an execution environment used for execution of at least one hardware-application provided by a configurable hardware module
US20230195481A1 (en) * 2019-07-02 2023-06-22 Vmware, Inc. Hybrid partitioning of virtualization on multiple core systems

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001043098A (ja) * 1999-07-29 2001-02-16 Matsushita Electric Ind Co Ltd オペレーティングシステムおよび仮想計算機システム
JP2001243080A (ja) * 2000-03-02 2001-09-07 Hitachi Ltd 情報処理装置
JP2001256067A (ja) * 2000-03-08 2001-09-21 Mitsubishi Electric Corp プロセッサ省電力制御方法、記憶媒体、およびプロセッサ省電力制御装置
JP2004171566A (ja) * 2002-11-18 2004-06-17 Arm Ltd サスペンドされたオペレーティングシステムへデータ処理リクエストを送る方法
JP2005011336A (ja) * 2003-05-29 2005-01-13 Matsushita Electric Ind Co Ltd オペレーティングシステム切り替え可能な情報処理装置
JP2007035015A (ja) * 2005-07-26 2007-02-08 Mitac Technology Corp インスタントキースタンバイ状態からのマルチメディア再生インスタントプレイの方法
JP2007073026A (ja) * 2005-09-07 2007-03-22 Mitac Technology Corp スタンバイモードからコンピュータにより迅速にマルチメディア再生を執行する方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2945498B2 (ja) * 1991-04-12 1999-09-06 富士通株式会社 システム間通信方式
JP2000347772A (ja) 1999-06-07 2000-12-15 Toshiba Corp 携帯情報機器に使用されるプロセッサの低消費電力制御方法
JP4698211B2 (ja) * 2003-12-15 2011-06-08 株式会社リコー 情報処理装置、画像形成装置、電子データの移動の取り消し方法
JP4314137B2 (ja) 2004-03-19 2009-08-12 カヤバ工業株式会社 ロール制御に最適な装置および方法
US7543166B2 (en) * 2004-05-12 2009-06-02 Intel Corporation System for managing power states of a virtual machine based on global power management policy and power management command sent by the virtual machine
US7739532B2 (en) * 2004-06-07 2010-06-15 Intel Corporation Method, apparatus and system for enhanced CPU frequency governers
WO2006003875A1 (ja) * 2004-06-30 2006-01-12 Matsushita Electric Industrial Co., Ltd. プログラム実行機器およびそのプログラム実行方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001043098A (ja) * 1999-07-29 2001-02-16 Matsushita Electric Ind Co Ltd オペレーティングシステムおよび仮想計算機システム
JP2001243080A (ja) * 2000-03-02 2001-09-07 Hitachi Ltd 情報処理装置
JP2001256067A (ja) * 2000-03-08 2001-09-21 Mitsubishi Electric Corp プロセッサ省電力制御方法、記憶媒体、およびプロセッサ省電力制御装置
JP2004171566A (ja) * 2002-11-18 2004-06-17 Arm Ltd サスペンドされたオペレーティングシステムへデータ処理リクエストを送る方法
JP2005011336A (ja) * 2003-05-29 2005-01-13 Matsushita Electric Ind Co Ltd オペレーティングシステム切り替え可能な情報処理装置
JP2007035015A (ja) * 2005-07-26 2007-02-08 Mitac Technology Corp インスタントキースタンバイ状態からのマルチメディア再生インスタントプレイの方法
JP2007073026A (ja) * 2005-09-07 2007-03-22 Mitac Technology Corp スタンバイモードからコンピュータにより迅速にマルチメディア再生を執行する方法

Also Published As

Publication number Publication date
EP2169549A1 (en) 2010-03-31
US20100229168A1 (en) 2010-09-09
WO2009004757A1 (ja) 2009-01-08
CN101542439A (zh) 2009-09-23
EP2169549A4 (en) 2012-08-29
US8127168B2 (en) 2012-02-28
CN101542439B (zh) 2012-10-31
JPWO2009004757A1 (ja) 2010-08-26

Similar Documents

Publication Publication Date Title
JP5249920B2 (ja) データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路
Levy et al. Multiprogramming a 64kb computer safely and efficiently
Weiser et al. TIMBER-V: Tag-isolated memory bringing fine-grained enclaves to RISC-V
JP6082787B2 (ja) セキュアな埋め込みコンテナの実行のためのプロセッサの拡張
JP5922778B2 (ja) ヘテロジニアスマルチコアプロセッサにおける熱エネルギーの発生を管理するためのシステムおよび方法
US7793083B2 (en) Processor and system for selectively disabling secure data on a switch
Makris et al. Dynamic and adaptive updates of non-quiescent subsystems in commodity operating system kernels
EP1283458A2 (en) Tamper resistant microprocessor using fast context switching
GB2483300A (en) Transferring virtual machine state between host systems with common portions using a portable device
Wilson et al. Implementing embedded security on dual-virtual-cpu systems
JPWO2011142095A1 (ja) 情報処理装置および情報処理方法
Mück et al. Chips-ahoy: A predictable holistic cyber-physical hypervisor for mpsocs
Humphries et al. A case against (most) context switches
TW201413440A (zh) 電源模式切換管理方法及其電腦程式產品
Mejia-Alvarez et al. Evaluation framework for energy-aware multiprocessor scheduling in real-Time systems
TW201533576A (zh) 在多核心系統上運用系統管理中斷(smi)之系統效能增強
JP2010015474A (ja) 情報処理装置および情報処理方法
JP2011039903A (ja) プロセス状態検知プログラム、情報処理装置、プロセス状態検知方法
TWI312253B (en) Data processing apparatus and method for controlling access to a memory in the same
TWI778295B (zh) 資訊處理系統、其之電源作業控制器以及於叢集作業期間處理電源請求的方法
US10121001B1 (en) System and method for monolithic scheduling in a portable computing device using a hypervisor
TWI292099B (en) Apparatus, method and computer program product for processing data within a secure processing system
Gomez-Garcia Implementing Secure Shared Memory for Side-Channel-Resistant Enclaves
Tian et al. How virtualization makes power management different
TW202333046A (zh) 用於系統更新之動態資源判定技術

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130412

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5249920

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees