(57)【要約】【課題】動的翻訳実行の影響によって本来なら優先すべき性能が劣化してしまう事を抑制した、高速に中間語を実行する事が出来る画像再生装置を提供する。【解決手段】中間語解釈実行部１２３は、ソースプログラムまたは中間語プログラムを解釈実行中に実行されたモジュールが動的翻訳条件を満たしていれば、実行時翻訳部１２４を用いて当該モジュールを機械語へ翻訳しようとする。この際、ユーザ操作による応答性能が優先されるべきユーザインタフェース応答スレッド等、動的翻訳が不適切なスレッドおいては機械語への翻訳を禁止する。【選択図】図１
2010191734.tif 000002
【特許請求の範囲】
【請求項１】
中間語プログラムを解釈実行する中間語解釈実行手段と、前記中間語プログラムをモジュール単位に機械語プログラムへ動的翻訳する実行時翻訳手段とを有する画像再生装置であって、
実行中のスレッドが応答速度の必要な処理であるか否かを判断する応答速度判定手段をさらに有し、
前記実行時翻訳手段によって動的翻訳がなされる際に、前記応答速度判定手段により応答速度の必要な処理でないと判定された場合に、前記実行時翻訳手段による翻訳を実行し、応答速度の必要な処理であると判定された場合には、命令の解釈実行を行うことを特徴とした画像再生装置。
【請求項２】
請求項１に記載する画像再生装置であって、
前記中間語解釈実行手段にハードウェアによる高速化手段を用いることを特徴とした画像再生装置。
【請求項３】
請求項１に記載する画像再生装置であって、
前記応答速度判定手段により判定される応答速度の必要な処理がユーザ入力により画面表示内容が変更される間のユーザインタフェース応答処理であることを特徴とした画像再生装置。
【請求項４】
請求項３に記載する画像再生装置であって、
前記応答速度判定手段により判断するユーザインタフェース応答処理を行っているか否かを、動的翻訳を実行しようとしているスレッドがユーザインタフェース応答処理を行っているスレッドと同一か否かで判断することを特徴とした画像再生装置。
【請求項５】
中間語プログラムを解釈実行する中間語解釈実行手段と、前記中間語プログラムをモジュール単位に機械語プログラムへ動的翻訳する実行時翻訳手段とを有する画像再生装置における中間語プログラム実行方法であって、
前記実行時翻訳手段による動的翻訳をしようとする際に、応答速度の必要な処理であるか否かを判断する応答速度判定ステップと、
該応答速度判定ステップにより応答速度の必要な処理でないと判定された場合に、前記実行時翻訳手段による翻訳を実行する実行時翻訳ステップと、
前記応答速度判定ステップにより応答速度の必要な処理であると判定された場合に、前記中間語解釈実行手段による命令の解釈実行を行う解釈実行ステップと
を有することを特徴とした中間語プログラム実行方法。
【請求項６】
請求項５に記載する中間語プログラム実行方法であって、
前記解釈実行ステップは、
前記中間語解釈実行手段が、命令の解釈実行をする際に、ハードウェアによる高速化が可能か否かを判断するハードウェア高速化可否判断ステップと、
該ハードウェア高速化可否判断ステップにて可能と判断した場合にハードウェアによる高速化手段を用いて命令の解釈実行を行うハードウェア実行ステップと
前記ハードウェア高速化可否判断ステップにて否と判断した場合に前記中間語解釈実行手段がソフトウェアにより命令の解釈実行を行うソフトウェア実行ステップと
からなることを特徴とした中間語プログラム実行方法。
【請求項７】
請求項５に記載する中間語プログラム実行方法であって、
前記応答速度判定手段により判定される応答速度の必要な処理がユーザ入力により画面表示内容が変更される間のユーザインタフェース応答処理であることを特徴とした中間語プログラム実行方法。
【請求項８】
請求項７に記載する中間語プログラム実行方法であって、
前記応答速度判定手段により判断するユーザインタフェース応答処理を行っているか否かを、動的翻訳を実行しようとしているスレッドがユーザインタフェース応答処理を行っているスレッドと同一か否かで判断することを特徴とする中間語プログラム実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＶ機器を含む画像再生装置における中間語プログラムの実行方法に関する。
【背景技術】
【０００２】
プラットフォーム非依存な共通的な中間語プログラムを定義することにより、プログラムの改変無しに異なる装置上で同一のプログラムが実行可能となる。このような中間語プログラムを配布して異なる装置上で実行することが一般的となりつつある。例えば、光ディスク上に中間語プログラムを格納して、光ディスクをＡＶ再生装置に挿入すると光ディスク上の中間語プログラムをＡＶ再生装置が実行するという規格が存在する。
【０００３】
中間語プログラムは実行速度が遅いという課題がある。この課題を解決する従来技術として、特許文献１に記載された技術が知られている。一般に、中間語は、インタプリタと呼ばれる解釈実行部を用いて機械語に逐次解釈しながら実行するよりも、コンパイラと呼ばれる翻訳部で一旦機械語に変換した後実行した方が総実行時間は短くなる。しかし、そうして生成された機械語はメモリを大量に消費してしまう為、メモリ量に制限のある組込み機器では中間語を全て翻訳するのはシステム利用の観点から非効率であった。特許文献１に記載された発明はこの問題を解決し、最も実行回数の多いモジュールの中間語のみを機械語に翻訳する事でメモリ使用量を最適化する事が出来る為、使用出来るメモリ量に制限の多いＡＶ機器含めた画像再生装置上でも効率的に中間語を高速に実行する事が出来る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２４０５４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来技術では、動的翻訳の不適切なスレッドにおいて動的翻訳が実行される事により、本来なら優先されるべき性能が劣化し得るという課題があった。一例として、ユーザからの入力を契機に処理を実行する類のスレッドにおいて、中間語から機械語への翻訳が行われている最中にユーザ入力が行われてしまった場合、翻訳処理が完了するまで前記入力に起因した処理を開始する事が出来ない為に応答性能が劣化してしまう。
【課題を解決するための手段】
【０００６】
上記課題を解決する為に、本発明に係る画像再生装置は、中間語プログラムを動的に翻訳して機械語プログラムへ翻訳する方法を備えた装置であって、中間語プログラムを解釈実行する解釈実行手段と、前記中間語プログラムをモジュール単位に機械語プログラムへ動的翻訳する翻訳手段とを備え、前記解釈実行手段は、前記中間語プログラムが前記翻訳手段によって動的翻訳を実行する際に、応答速度の必要な処理を行っているか否かの場合に応じて、前記翻訳手段が翻訳を実行するか否かを判断する事を特徴とする。
【０００７】
また、中間語プログラムを解釈実行する前記解釈実行手段にハードウェアによる高速化手段を用いることができる。
【０００８】
前記応答速度が必要な処理として、ユーザ入力により画面表示内容が変更される間のユーザインタフェース応答処理とすることができる。
【０００９】
さらにまた、前記ユーザインタフェース応答処理を行っているか否かの判断を、動的翻訳を実行しようとしているスレッドがユーザインタフェース応答処理を行っているスレッドと同一か否かで判断することができる。
【００１０】
さらに、本発明は、画像再生装置における中間語プログラムの実行方法としてとらえることができる。
【発明の効果】
【００１１】
本発明の方式では、画像再生装置上で、優先すべき性能を劣化させる事無く中間語を高速実行する事が出来る。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施例のシステム構成図である。
【図２】中間語データの一例図である。
【図３】管理データの一例図である。
【図４】中間語プログラムの処理の実行流れを表した一例図である。
【図５】動的翻訳が不適切なスレッドか否かを判定する処理の実行流れを表した一例図である。
【図６】スレッドデータの一例図である。
【発明を実施するための形態】
【００１３】
以下、本発明による画像再生装置上での中間語実行の一実施形態を図面により詳細に説明する。
【実施例１】
【００１４】
図１は、本発明の一実施例のシステム構成図である。図１において、画像再生装置１は、中央処理装置１１０（ＣＰＵ等）、バイトコードアクセラレータ１１１、主記憶装置１２０、基本制御部１２１、中間語ファイル読み込み部１２２、中間語解釈実行部１２３、実行時翻訳部１２４、映像ファイル読み込み部１２７a、映像実行部１２９a、音声ファイル読み込み部１２７b、音声実行部１２９b、リモコン受光装置１３０、リモコン１３１、映像出力端子１４０、グラフィックスアクセラレータ１４１、映像デコーダ１４２、音声出力端子１５０、Ｄ／Ａコンバータ１５１、ディスク読み取り装置１６０、及びイーサネット（登録商標）ポート１７０を含むものとする。この画像再生装置１が扱うデータとしては、機械語データ１２５、中間語データ１２６、映像データ１２８a、音声データ１２８b、スレッドデータ１２０１、ディスク１６４が格納している中間語ファイル１６１、同じくディスク１６４が格納している映像ファイル１６２、及び同じくディスク１６４が格納している音声ファイル１６３が挙げられる。
【００１５】
また、前記バイトコードアクセラレータ１１１は、スタックベースの中間語（バイトコード）をレジスタベースの命令に変換するものであり、インタプリタ方式のままで中間語を直接ハードウェア実行する事で高速化を図る為に用いられる。前記グラフィックスアクセラレータ１４１は、描画処理の高速化を図る為に用いられる。
【００１６】
前記基本制御部１２１は、画像再生装置全体を制御するプログラムであり、図示装置が立ち上げられたとき、中央処理装置１１０によって実行され、画像再生装置１のハードウェアとプログラムとの基本制御を行う。
【００１７】
前記中間語ファイル読み込み部１２２は、ディスク読み取り装置１６０からディスク１６４に格納されている中間語ファイル１６１を読み込み、中間語データ１２６を生成するプログラムである。前記映像ファイル読み込み部１２７aは、ディスク読み取り装置１６０からディスク１６４に格納されている映像ファイル１６２を読み込み、映像データ１２８aを生成するプログラムである。前記音声ファイル読み込み部１２７bは、ディスク読み取り装置１６０からディスク１６４に格納されている音声ファイル１６３を読み込み、音声データ１２８bを生成するプログラムである。
【００１８】
前記中間語解釈実行部１２３は、中間語データ１２６の解釈実行を行うインタプリタを一例として想定でき、中間語データ１２６を解釈して直接実行する。前記実行時翻訳部１２４は、プログラム翻訳の実行部であり、中間語データ１２６のモジュールを選び出し、機械語データ１２５に変換する部である。なお、前記機械語データ１２５は、中央処理装置１１０に直接実行させることが可能な機械語で表現されたプログラムである。また、前記中間語データ１２６は、中間語ファイル１６１を主記憶装置１２０に読み込んだデータであり、中間語解釈実行部１２３によって１命令ずつ解釈実行される。前記映像実行部１２９aは、映像データ１２８aを適切な形に整えて処理するプログラムである。前記音声実行部１２９bは、音声データ１２８bを適切な形に整えて処理するプログラムである。
【００１９】
前記中間語ファイル１６１は、特定の計算機システムに依存しない仮想的な命令（中間語命令）で記述された中間語プログラムが格納されたファイルである。また、この中間語プログラムが或るソースプログラムを変換して得られたものである場合には、中間語プログラムの各部分が変換前のソースプログラムのどの部分に相当するかの対応づけが可能な情報が、このファイルに格納されている。
【００２０】
図２は中間語データ１２６の一例を示す図である。図２において、中間語データ１２６が含むのが中間語モジュール２００である。この中間語モジュール２００は、中間語モジュール２００のモジュール名２０１、中間語モジュール２００の実行回数や中間語モジュール２００が翻訳済みかどうかを記した管理データ２０５へのポインタ２０２、中間語モジュール２００を翻訳した結果得られる機械語データ１２５へのポインタ２０３、中間語モジュール２００の中間語プログラムの命令列を格納する中間語データ領域２０４により構成される。そして、この中間語データ１２６は、複数の中間語モジュール２００から構成される。
【００２１】
図３は管理データ２０５の一例を示す図である。本管理データ２０５を参照する事で、中間語モジュール２００が機械語モジュール３００へ変換されているか否かの確認と、中間語モジュール２００が機械語モジュール３００への翻訳条件を満たしているか否かの二点を確認する事が出来る。尚、本実施例における動的翻訳条件はモジュール実行回数がある閾値を超えたか否かによるものとする。
【００２２】
図６はスレッドデータ１２０１の一例を示す図である。スレッド名、スレッドID、スレッド優先度、スレッドの現在の状態、動的翻訳不適切スレッドフラグ等、中間語データ１２６の情報を元に記述された本スレッドデータ１２０１は、中間語解釈実行部１２３によってスレッド作成時に作られ、主記憶装置１２０に格納される。スレッドデータ１２０１は、スレッドの現在の状態等、一部のデータに関してその内容が変わる度に、中間語解釈実行部１２３により更新される。尚、スレッドデータ１２０１の作成・更新に要する時間は、動的翻訳にかかる時間よりも遥かに短い。
【００２３】
以上図１〜３で示した構成によって実施される画像再生装置上での中間語プログラムの実行処理の流れについて図４を用いて説明する。
【００２４】
処理４０１：基本制御部１２１によって起動された中間語解釈実行部１２３は、中間語データ１２６から一つだけ中間語モジュール２００を選択する。初期状態では、「MAIN」をモジュール名に持つ中間語モジュール２００を選択する。
【００２５】
処理４０２：中間語解釈実行部１２３は、処理４０１で選択した中間語モジュール２００が機械語モジュール３００へ翻訳済みか否かを、管理データ２０５を用いて判定する。
【００２６】
処理４０３：処理４０２において、処理４０１で選択した中間語モジュール２００は翻訳済みであると判定した場合は、対応する機械語モジュール３００を基本制御部１２１に実行させ、その実行が終了した後に処理４０１に戻る。
【００２７】
処理４０４：処理４０２において、処理４０１で選択した中間語モジュール２００は翻訳済みでないと判定した場合は、中間語解釈実行部１２３は管理データ２０５を参照して当該中間語モジュール２００が翻訳条件を満たしているか否かを判定する。
【００２８】
処理５０１：処理４０４において翻訳条件を満たしていると判定した場合は、後述図５の処理５０１に移行する。
【００２９】
処理４０６：処理４０４において、管理データ２０５が存在し且つ翻訳条件を満たしていないと判定した場合は、中間語解釈実行部１２３は管理データ２０５に記載されているモジュール実行回数を一増やす。管理データ２０５が存在せず且つ翻訳条件を満たしていないと判定した場合は、中間語解釈実行部１２３は管理データ２０５の作成を行い、管理データ２０５に記載されているにモジュール実行回数を一にする。
【００３０】
処理４０７：中間語解釈実行部１２３は、処理４０１で選択した中間語モジュール２００に含まれる中間語プログラム２０４の一命令を読み込む。
【００３１】
処理４０８：中間語解釈実行部１２３は、処理４０７で読み込んだ中間語プログラム２０４の一命令が終了命令か否かを判定する。
【００３２】
処理４０９：中間語解釈実行部１２３は、処理４０７で読み込んだ中間語プログラム２０４の一命令が終了命令であった場合は、処理を終了する。
【００３３】
処理４１０：中間語解釈実行部１２３は、処理４０７で読み込んだ中間語プログラム２０４の一命令が終了命令でなかった場合は、その命令が呼び出し命令か否かを判定し、呼び出し命令であった場合は処理４０１に戻る。
【００３４】
処理４１１：処理４１０において、その命令が呼び出し命令でなかった場合は、当中間語モジュール２００を、可能なものはバイトコードアクセラレータ１１１を用いて逐次解釈実行し、可能でないものは中間語解釈実行部１２３を用いて逐次解釈実行する。その後、処理４０７へ戻る。
【００３５】
次に本発明の肝となる図５の処理について説明する。ここでは、現在の実行スレッドが動的翻訳を行うのに不適切なものか否かを判定する。
【００３６】
処理５０１：中間語解釈実行部１２３は、現在実行中であるスレッドのスレッドデータ１２０１に記述されている動的翻訳不適切スレッドフラグを参照し、現在の実行スレッドが動的翻訳不適切スレッドか否かを判定する。尚、動的翻訳不適切スレッドとしては、”ユーザインタフェース応答スレッド”や、イーサネット（登録商標）ポート１７０から流れてくる映像データを途切れなく処理する”ストリーミング処理スレッド”等、応答速度が必要な処理を行うスレッドが考えられる。
【００３７】
処理５０２：現在の実行スレッドが動的翻訳不適切スレッドであった場合は、図４の処理４０６へ移行する。
【００３８】
処理５０３：現在の実行スレッドが動的翻訳不適切スレッドでなかった場合は、中間語解釈実行部１２３は実行時翻訳部１２４を用いて中間語モジュール２００の翻訳を行い、機械語モジュール３００を作成する。
【００３９】
処理５０４：図４の処理４０３へ移行する。
【００４０】
以上、本発明を一実施形態に基づいて具体的に説明したが、本発明は、前述の実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
【産業上の利用可能性】
【００４１】
ホームゲートウェイ、カーナビゲーション装置等、中間語プログラムを実行可能な装置に適用出来る。
【符号の説明】
【００４２】
１  画像再生装置
１１０  中央処理装置
１１１  バイトコードアクセラレータ
１２０  主記憶装置
１２１  基本制御部
１２２  中間語ファイル読み込み部
１２３  中間語解釈実行部
１２４  実行時翻訳部
１２５  機械語データ
１２６  中間語データ
１２７a  映像ファイル読み込み部
１２８a  映像データ
１２９a  映像実行部
１２７b  音声ファイル読み込み部
１２８b  音声データ
１２９b  音声実行部
１２０１ スレッドデータ
１３０  リモコン受光装置
１３１  リモコン
１４０  映像出力端子
１４１  グラフィックスアクセラレータ
１４２  映像デコーダ
１５０  音声出力端子
１５１  Ｄ／Ａコンバータ
１６０  ディスク読み取り装置
１６１  中間語ファイル
１６２  映像ファイル
１６３  音声ファイル
１６４  ディスク
１７０  イーサネット（登録商標）ポート
２００  中間語モジュール  
２０１  モジュール名領域
２０２  管理データへのポインタ領域
２０３  機械語モジュールでのポインタ領域
２０４  中間語命令データ領域
２０５  管理データ
３００  機械語モジュール
【図１】
2010191734.tif 000003
【図２】
2010191734.tif 000004
【図３】
2010191734.tif 000005
【図４】
2010191734.tif 000006
【図５】
2010191734.tif 000007
【図６】
2010191734.tif 000008