(57)【要約】【課題】ＣＰＵのアーキテクチャに依存せず、汎用的にプログラムを動作させることが可能で、ＣＰＵに大きな負荷を掛けることのないコード変換器を提供する。【解決手段】外部のＣＰＵ１００に接続された画像デバイス２０におけるコード変換プロセッサ１０であって、コード変換プロセッサ１０は、中間コードを取得する中間コード取得部と、中間コードの種別を解釈する中間コード解釈部と、解釈された中間コードの種別に応じて、中間コードをＣＰＵ１００のプログラムコードへ変換し、当該プロクラムコードをＣＰＵ１００へ転送する処理と、画像デバイス２０における画像描画エンジン１２へ中間コードを転送する処理とのいずれかを実行する中間コード処理部と、を具備する。【選択図】図１
2016181104.tif 000002
【特許請求の範囲】
【請求項１】
外部の制御部に接続された処理装置におけるコード変換器であって、
前記コード変換器は、
中間コードを取得する中間コード取得部と、
前記中間コードの種別を解釈する中間コード解釈部と、
解釈された前記中間コードの種別に応じて、前記中間コードを前記制御部のプログラムコードへ変換し、当該プログラムコードを前記制御部へ転送する処理と、前記処理装置における処理エンジンへ前記中間コードを転送する処理とのいずれかを実行する中間コード処理部と、
を具備することを特徴とするコード変換器。
【請求項２】
前記処理エンジンは、描画エンジンまたは音源エンジンである、
ことを特徴とする請求項１に記載のコード変換器。
【請求項３】
前記コード変換器には、外部メモリが接続されており、前記中間コードは当該外部メモリに格納されている、
ことを特徴とする請求項１または請求項２に記載のコード変換器。
【請求項４】
前記コード変換器は、前記処理装置の内部メモリに格納されたマイクロコードを実行することにより、前記中間コード取得部、前記中間コード解釈部、及び前記中間コード処理部として機能する、
ことを特徴とする請求項１ないし請求項３のいずれか１項に記載のコード変換器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中間コードの種別に応じて、中間コードから外部の制御部のプログラムコードへの変換及び制御部への転送と、処理エンジンへの中間コードの転送とのいずれかを実行するコード変換プロセッサの技術に関する。
【背景技術】
【０００２】
従来、ＣＰＵにより画像デバイスを制御して画像表示装置の制御を行うことが行われている。従来のシステムで画像デバイスを制御するには、ＣＰＵで実行されるプログラムを開発する必要があった。
【０００３】
一方、中間コード（バイトコード）と仮想マシンを用いることにより、ＣＰＵのアーキテクチャに依存せず、汎用的にプログラムを動作させるシステムも存在している。例えば、パソコン上の変換ツ―ルで描画用シーケンスプログラムに変換して、表示制御デバイス内のＣＰＵのプログラムＲＯＭに描画用シーケンスプログラムを書き込むシステムが開発されている（例えば、特許文献１）。このシステムでは、ＣＰＵが描画用シーケンスプログラムを読み込んで描画を行う。パソコン上の変換ツールが仮想マシンに相当する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−６５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、一般的にバイトコードと仮想マシンを用いるにはＣＰＵに極めて高い処理性能が求められ、ＣＰＵに対する負荷が非常に大きくなっていた。また、仮想マシンを動作させるためのメモリも必要になる。
本発明は、上述した事情に鑑みてなされたもので、その目的の一つは、ＣＰＵのアーキテクチャに依存せず、汎用的にプログラムを動作させることが可能で、ＣＰＵに大きな負荷を掛けることのないコード変換器を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために本発明の一態様に係るコード変換器は、外部の制御部に接続された処理装置におけるコード変換器であって、前記コード変換器は、中間コードを取得する中間コード取得部と、前記中間コードの種別を解釈する中間コード解釈部と、解釈された前記中間コードの種別に応じて、前記中間コードを前記制御部のプログラムコードへ変換し、当該プログラムコードを前記制御部へ転送する処理と、前記処理装置における処理エンジンへ前記中間コードを転送する処理とのいずれかを実行する中間コード処理部と、を具備することを特徴とする。
【０００７】
本発明によれば、解釈された中間コードの種別に応じて、中間コードから制御部のプログラムコードへの変換が行われるので、高い処理性能を有する制御部でなくても、制御部のアーキテクチャに依存せず、汎用的にプログラムを動作させることができる。また、解釈された中間コードの種別に応じて、処理エンジンへの中間コードを転送するので、制御部に処理エンジンを制御させる必要がなく、制御部の処理負荷を軽減することができる。
【０００８】
前記本発明の一態様において、前記処理エンジンは、描画エンジンまたは音源エンジンであってもよい。本発明によれば、中間コードの種別に応じて、描画エンジンまたは音源エンジン処理エンジンへの中間コードを転送するので、制御部に描画エンジンまたは音源エンジンを制御させる必要がなく、制御部の処理負荷を軽減することができる。
【０００９】
また、前記本発明の一態様において、前記コード変換器には、外部メモリが接続されており、前記中間コードは当該外部メモリに格納されていることが好ましい。中間コードは外部メモリに格納されているので、制御内容の仕様変更、あるいは制御部のアーキテクチャの変更があった場合でも、外部メモリに格納された中間コードを変更することにより、容易に対応可能となる。
【００１０】
さらに、前記本発明の一態様において、前記コード変換器は、前記処理装置の内部メモリに格納されたマイクロコードを実行することにより、前記中間コード取得部、前記中間コード解釈部、及び前記中間コード処理部として機能するようにしてもよい。本発明によれば、中間コードからプログラムコードへの変更は、マイクロコードに基づいて行われるので、制御部のアーキテクチャの変更があった場合でも、容易に対応可能となる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る制御システムの構成を示すブロック図である。
【図２】同制御システムにおけるＣＰＵから見たメモリ空間を示す図である。
【図３】同制御システムにおけるバイトコードの一例を示す図である。
【図４】同制御システムにおけるネイティブコード命令の一例を示す図である。
【図５】同制御システムにおけるコード変換プロセッサの動作の一例を示すフローチャートである。
【図６】同制御システムにおけるバイトコードの一例を示す図である。
【図７】同制御システムにおけるネイティブコード命令の一例を示す図である。
【図８】第２実施形態に係る制御システムの構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。
図１は、第１実施形態に係る制御システム１ａの概略構成を示すブロック図である。
この図に示されるように、制御システム１ａは、外部の制御部としてのＣＰＵ１００と、画像デバイス２０と、表示パネル４０と、メモリ５０とを備える。ＣＰＵ１００は、制御の対象となる対象機器（図示せず）と接続されている。対象機器とは、例えばエアーコンデショナへの適用を想定した場合であれば、コンプレッサのモータなどである。
【００１３】
一方、表示パネル４０は、例えば液晶表示装置や有機ＥＬ（Electro Luminescence）装置などのフラットディスプレイである。
【００１４】
画像デバイス２０は、ＣＰＵ１００から出力される制御命令に基づいて、表示パネル４０に対する表示の指示や、ＣＰＵ１００に対してネイティブコード（ＣＰＵ１００のプログラムコード）の出力を行うものであり、コード変換プロセッサ１０と、マイクロコード格納用メモリ１１と、画像描画エンジン１２と、メモリインタフェース１３とを含んでいる。
【００１５】
コード変換プロセッサ１０は、ＣＰＵ等から構成され、メモリインタフェース１３を介して、画像デバイス２０の外部に設けられたＲＯＭ等のメモリ５０に記憶されたバイトコード（中間コード）を取得して解釈し、バイトコードの種別に応じた処理を実行する。バイトコードの種別には、ＣＰＵ１００用のネイティブコード命令に変換される変換用バイトコードと、画像描画エンジン１２用の描画用バイトコードとがある。
【００１６】
コード変換プロセッサ１０がバイトコードを解釈し、バイトコードが変換用バイトコードであると判断した場合には、コード変換プロセッサ１０は、バイトコードの内容をＣＰＵ１００用のネイティブコード命令に変換する。コード変換プロセッサ１０は、図１に示すように、アドレスバス６０、コントロールバス６１、及びデータバス６２によってＣＰＵ１００と接続されている。コード変換プロセッサ１０は、コントロールバス６１に含まれるチップセレクト信号及びライト信号に基づいて、変換したネイティブコード命令をＣＰＵ１００に出力する。つまり、ＣＰＵ１００から見ると、コード変換プロセッサ１０は、ネイティブコード命令が格納されたメモリとして機能する。
【００１７】
コード変換プロセッサ１０がバイトコードを解釈し、バイトコードが描画用バイトコードであると判断した場合には、コード変換プロセッサ１０は、描画用バイトコードを画像描画エンジン１２に直接出力する。コード変換プロセッサ１０は、図１に示すように、アドレスバス７０、コントロールバス７１、及びデータバス７２によって画像描画エンジン１２と接続されている。コード変換プロセッサ１０は、コントロールバス７１に含まれるチップセレクト信号及びリード信号に基づいて、描画用バイトコードを画像描画エンジン１２に出力する。また、メモリ５０には、描画用バイトコードの他に、画像情報（画像データなど）が格納されており、画像描画エンジン１２は、メモリ５０にアクセスして画像情報を直接取得し、表示パネル４０に画像を表示させる。
【００１８】
画像描画エンジン１２は、コード変換プロセッサ１０から出力される描画用バイトコード及び画像情報に従って、表示パネル４０に画像を描画させる。また、画像描画エンジン１２は、アドレスバス６０、コントロールバス６１、及びデータバス６２によってＣＰＵ１００と接続されており、ＣＰＵ１００の制御によって、表示パネル４０に画像を描画させること可能である。
【００１９】
図２は、制御システム１ａにおけるＣＰＵ１００から見たアドレス空間を説明するための図である。図２に示すように、０番地からＮ番地（Ｎは０以外の自然数）までは、プログラムが格納されたメモリ領域として割り当てられており、Ｎ＋１番地からＭ番地（Ｎ、Ｍは０以外の自然数）までは、ＣＰＵ１００が直接画像描画エンジン１２を制御する場合の領域として割り当てられている。つまり、ＣＰＵ１００は、ネイティブコード命令を読み取る場合には、０番地からＮ番地（Ｎは０以外の自然数）までにアクセスする。また、画像描画エンジン１２を直接制御する場合には、Ｎ＋１番地からＭ番地（Ｎ、Ｍは０以外の自然数）にアクセスして画像描画エンジン１２に指示を出す。
【００２０】
マイクロコード格納用メモリ１１は、コード変換プロセッサ１０の処理内容を記述したマイクロコードが格納されている。コード変換プロセッサ１０は、マイクロコード格納用メモリ１１に格納されたマイクロコードに従って、バイトコードの取得処理、バイトコードの解釈処理、変換用バイトコードのネイティブコード命令への変換処理、と変換されたネイティブコード命令のＣＰＵ１００への出力処理、及び描画用バイトコードの画像描画エンジン１２への出力処理等を実行する。したがって、ＣＰＵ１００のアーキテクチャが異なる場合でも、マイクロコード格納用メモリ１１に格納するマイクロコードを変更することにより、対応することが可能となっている。
【００２１】
次に、バイトコードについて詳しく説明する。本実施形態におけるバイトコードは、図３に示すように、１バイトのオペコードと、１バイトまたは複数バイトのオペランドとで構成される命令セットである。コード変換プロセッサ１０は、オペコードの値が「００」の場合には、その後に画像描画エンジン１２用の描画用バイトコードが格納されていると判断する。また、コード変換プロセッサ１０は、オペコードの値が「０１」、「０２」等の「００」以外の値の場合には、ＣＰＵ１００用の変換用バイトコードであると判断する。例えば、オペコードの値が「０１」の場合には加算命令、オペコードの値が「０２」の場合には減算命令というように予め定められている。
なお、オペランドが何バイトで構成されているかは、描画用バイトコードあるいは変換用バイトコードの内容によって異なり、描画用バイトコードの内容あるいは変換用バイトコードの内容に応じて予め定められている。
【００２２】
また、変換用バイトコードを変換することにより生成されるネイティブコード命令は、例えば、図４に示すように１６ビットのオペコードと、１６ビット単位で記載されるオペランドとで構成されている。なお、オペコード、オペランドがいくつのビット数で構成されているかは、ＣＰＵ１００の内部演算回路のビット数に応じて予め定められている。
【００２３】
次に、図５ないし図７を参照しつつ、本実施形態におけるコード変換プロセッサ１０の動作の一例について説明する。
図５はコード変換プロセッサ１０の動作の一例を示すフローチャートである。まず、コード変換プロセッサ１０は、メモリ５０にアクセスしてバイトコードを取得し、取得したバイトコードが変換用バイトコードか描画用バイトコードかを判断する（ステップＳ１）。例えば、一例として図６に示すバイトコードがメモリ５０に格納されていたとする。また、コード変換プロセッサ１０には、バイトコード用のアドレスポインターが備えられているものとする。コード変換プロセッサ１０が、アドレスポインターが示す「０」番地のオペコードを取得する。図６の場合、「０」番地のオペコードは「０１」であるので、コード変換プロセッサ１０は、取得したバイトコードが変換用バイトコードであると判断する（ステップＳ１；ＹＥＳ）。
【００２４】
次に、コード変換プロセッサ１０は、１組のバイトコード分のリードが完了しているかどうかを判断する（ステップＳ２）。１組の変換用バイトコードが何バイトのバイトコードで構成されているかは、変換用バイトコードが示す命令の内容ごとに予め定められている。図６の例では、「０」番地のオペコードは「０１」であり、加算命令ＡＤＤであることを示している。加算命令ＡＤＤは、１バイトのオペコードと、２バイトのオペランドで構成される。コード変換プロセッサ１０は、１組のバイトコード分のリードが完了していないと判断し（ステップＳ２；ＮＯ）、指定されたアドレスである「０」番地からオペコードである「０１」を読み出し、ネイティブコード命令に変換する（ステップＳ３）。
【００２５】
図６及び図７に示す例では、オペコード「０１」は加算命令ＡＤＤに対応しており、コード変換プロセッサ１０は、オペコード「０１」を、ＣＰＵ１００におけるネイティブコード命令の加算命令ＡＤＤに対応する「３４５６」に変換する。以下、同様の処理を繰り返して、１組の変換用バイトコードの読み取りと変換を完了させる。図６及び図７に示す例では、加算命令ＡＤＤの後には、被加算数と加算数がそれぞれ１バイトずつ続くので、それに対応させてネイティブコード命令に変換する。１バイトのオペコード「０１」が２バイトのネイティブコード命令「３４５６」に変換され、２バイトのオペランド「ＦＦ」、「ＡＡ」が４バイトのオペランド「ＡＡＡＡ」、「ＢＢＢＢ」に変換される。
【００２６】
なお、ネイティブコード命令中のジャンプアドレスについては、アドレスポインターによって管理されるバイトコード側の実アドレスとすればよいので、アドレス変換を行う必要はない。
【００２７】
以上のようにして、コード変換プロセッサ１０は、１組のバイトコード分のリードが完了したと判断すると（ステップＳ２；ＹＥＳ）、変換済みのネイティブコード命令を出力する（ステップＳ５）。したがって、ＣＰＵ１００は、コード変換プロセッサ１０から出力されたネイティブコード命令に基づいて処理を実行することになる。
【００２８】
次に、コード変換プロセッサ１０が、取得したバイトコードが変換用バイトコードではなく、描画用バイトコードであると判断した場合には（ステップＳ１；ＮＯ）、１組分の描画用バイトコードのリードが完了しているかどうかを判断する（ステップＳ６）。図６に示す例では、「３」番地のオペコードの内容が「００」なので、コード変換プロセッサ１０は、その後の「４」番地以降のオペランドに格納された内容が描画用バイトコードであると判断する。図６の例では、「０１」が書き込み命令を示し、「２３」がレジスタのアドレスを示し、「３３」が書き込むデータを示している。
【００２９】
コード変換プロセッサ１０は、これらのオペランドの描画用バイトデータを、アドレスポインターにより指定されたアドレスから読み出し、画像描画エンジン１２のデータバス７２に出力する。したがって、画像描画エンジン１２は、コード変換プロセッサ１０から出力された描画用バイトコードに基づいて描画処理を実行する。
【００３０】
以上のように、本実施形態によれば、画像デバイス２０のコード変換プロセッサ１０により、変換用バイトコードをネイティブコード命令に変換し、ＣＰＵ１００に出力するようにしたので、ＣＰＵ１００に高い処理能力を有するハイエンドなＣＰＵを用いなくてもよい。さらに、本実施形態によれば、コード変換プロセッサ１０は、マイクロコード格納用メモリ１１に格納したマイクロコードに基づいて変換用バイトコードからネイティブコード命令への変換を行うので、ＣＰＵのアーキテクチャが変更された場合でも、マイクロコード格納用メモリ１１に格納するマイクロコードを変更することによって対応することが可能である。
【００３１】
また、画像描画エンジン１２の処理は、ＣＰＵ１００の制御によって実行される場合と、コード変換プロセッサ１０から画像描画エンジン１２に直接出力した描画用バイトコードにより実行される場合とがあるので、ＣＰＵ１００の処理負荷を軽減することができる。
【００３２】
次に、本発明の第２実施形態に係る制御システム１ｂについて説明する。第１実施形態に係る制御システム１ａでは、コード変換プロセッサ１０から画像描画エンジン１２に描画用バイトコードを出力する例について説明したが、第２実施形態に係る制御システム１ｂでは、コード変換プロセッサ１０から音源エンジン１４に音源処理用バイトコードを出力するようにしたものである。
【００３３】
図８は、制御システム１ｂの概略構成を示すブロック図である。この図における制御システム１ｂでは、図１に示した制御システム１ａに対して画像描画エンジン１２の代わりに音源エンジン１４が設けられ、表示パネル４０の代わりに再生装置３０が設けられている。従って、ＣＰＵ１００が接続されているのは、画像デバイス２０ではなく、音源デバイス２１となっている。
また、メモリ５０内には、描画用バイトコードの代わりに音源処理用バイトコードが格納されており、画像情報の代わりに音声データ、波形データまたは音源データが格納されている。音源エンジン１４は、メモリ５０にアクセスして音声データ、波形データまたは音源データを直接取得し、再生装置３０から音を出力させる。
さらに、ＣＰＵ１００から見たメモリ空間は、０番地からＮ番地（Ｎは０以外の自然数）までは、プログラムが格納されたメモリ領域として割り当てられており、Ｎ＋１番地からＭ番地（Ｎ、Ｍは０以外の自然数）までは、ＣＰＵ１００が直接音源エンジン１４を制御
する場合の領域として割り当てられている。
【００３４】
本実施形態においても、バイトコードのオペランドは、第１実施形態と同様に、音源処理用バイトコードと、変換用バイトコードが判別可能になっている。本実施形態によれば、音源デバイス２１のコード変換プロセッサ１０により、変換用バイトコードをネイティブコード命令に変換し、ＣＰＵ１００に出力するようにしたので、ＣＰＵ１００に高い処理能力を有するハイエンドなＣＰＵを用いなくてもよい。さらに、本実施形態によれば、コード変換プロセッサ１０は、マイクロコード格納用メモリ１１に格納したマイクロコードに基づいて変換用バイトコードからネイティブコード命令への変換を行うので、ＣＰＵのアーキテクチャが変更された場合でも、マイクロコード格納用メモリ１１に格納するマイクロコードを変更することによって対応することが可能である。
【００３５】
また、音源エンジン１４の処理は、ＣＰＵ１００の制御によって実行される場合と、コード変換プロセッサ１０から音源エンジン１４に直接出力した音源処理用バイトコードにより実行される場合とがあるので、ＣＰＵ１００の処理負荷を軽減することができる。
【００３６】
なお、上述した各実施形態においては、ＣＰＵ１００から見たアドレス空間を、ネイティブコード命令が格納された領域と、画像描画エンジンまたは音源エンジンの制御用の領域に分ける例について説明したが、チップセレクト信号により、ネイティブコード命令の読み込みと、画像描画エンジンまたは音源エンジンの制御とを切り替えるようにしてもよい。
【符号の説明】
【００３７】
１ａ、１ｂ…制御システム、１０…コード変換プロセッサ、１１…マイクロコード格納用メモリ、１２…画像描画エンジン、１３…メモリインターフェース、１４…音源エンジン、２０…画像デバイス、２１…音源デバイス、３０…再生装置、４０…表示パネル、５０…メモリ、６０…アドレスバス、６１…コントロールバス、６２…データバス。
【図１】
2016181104.tif 000003
【図２】
2016181104.tif 000004
【図３】
2016181104.tif 000005
【図４】
2016181104.tif 000006
【図５】
2016181104.tif 000007
【図６】
2016181104.tif 000008
【図７】
2016181104.tif 000009
【図８】
2016181104.tif 000010