(57)【特許請求の範囲】
【請求項１】
ストリームデータを入力して演算する演算エンジンにおいて、
入力されるストリームデータは、演算手法または付加データを記述したヘッダ部と、演算対象のデータ部であり、
演算して出力されるストリームデータは、演算結果部と、演算手法または付加データを記述したフッタ部であり、
前記フッタ部を、次にこの演算エンジンに入力するストリームデータのヘッダ部の元になる情報として用いることを特徴とする演算エンジン。
【請求項２】
ストリームデータを入力して演算する演算エンジンにおいて、
この演算エンジンは、演算設定レジスタと、演算器とを含み、
入力されるストリームデータは、演算手法または付加データを記述したヘッダ部と、演算対象のデータ部であり、
演算して出力されるストリームデータは、演算結果部と、演算手法または付加データを記述したフッタ部であり、
前記演算設定レジスタは、前記ヘッダ部の演算手法と付加データとを入力して、フッタ部を出力し、
前記演算器は、前記ヘッダ部の付加データと前記データ部とに含まれるデータを入力して、前記演算結果部の演算結果を出力し、
前記出力されるストリームデータのフッタ部を、次にこの演算エンジンに入力するストリームデータのヘッダ部の元になる情報として用いることを特徴とする演算エンジン。
【請求項３】
ストリームデータを入力して演算する演算エンジンの演算制御方法において、
入力されるストリームデータは、演算手法または付加データを記述したヘッダ部と、演算対象のデータ部であり、
演算して出力されるストリームデータは、演算結果部と、演算手法または付加データを記述したフッタ部であり、
前記フッタ部を、次にこの演算エンジンに入力するストリームデータのヘッダ部の元になる情報として用いることを特徴とする演算エンジンの演算制御方法。
【請求項４】
ストリームデータを入力して演算するマイクロプロセッサにおいて、
このマイクロプロセッサは、演算エンジンを含み、
主記憶装置には、異なった演算手法により演算する一つ以上のデータ群と、そのデータの演算手法または付加データを記述したヘッダ部とを格納しておき、
前記主記憶装置より、入力データストリームとして演算手法または付加データを記述したヘッダ部と、演算対象のデータ部を読み出して、
前記演算エンジンに入力し、
前記ヘッダ部に記述された演算手法または付加データに基づいて演算した結果を、出力データストリームとして、演算結果部と、演算手法または付加データを記述したフッタ部として出力し、
それらを再び前記主記憶装置に書き込むことを特徴とするマイクロプロセッサ。
【請求項５】
ストリームデータを処理するためのコンピュータシステムにおいて、
このコンピュータシステムは、
ストリームデータを格納する補助記憶装置と、
マイクロプロセッサと、
主記憶装置と、
前記マイクロプロセッサで処理された結果を出力するための出力装置とからなり、
前記ストリームデータは、演算手法または付加データを記述した部分と、演算対象となるデータ部とからなり、
前記マイクロプロセッサは、前記補助記憶装置からそのストリームデータを読み込み、
前記演算手法または付加データを記述した部分の情報を前記主記憶装置に保持して、
前記主記憶装置に保持された前記演算手法または付加データを記述した部分の情報に従って、前記マイクロプロセッサは、前記演算対象となるデータ部に対して演算をおこなって、
その演算の結果として、前記演算手法または付加データの情報を前記主記憶装置に書き戻し、
かつ、前記出力装置に演算結果を出力することによって、
異なった演算手法に対応するストリームデータを連続して前記補助記憶装置から読み込んで処理することを特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演算エンジンとそれを搭載するマイクロプロセッサに係り、特に、画像処理、暗号処理など多様なデータストリームを処理するマルチメディアプロセッサに用いて好適な演算エンジンとそれを搭載するマイクロプロセッサに関する。
【０００２】
【従来の技術】
近年、プロセッサ技術の進展に伴って、画像データ、暗号データ、音声データなど多様なストリームデータを処理するためのマルチメディアプロセッサが開発されている。
【０００３】
従来、このようなフォーマットの異なる複数のストリームデータする場合には、リアルタイム性が重視される場合、入力されるストリームデータの数だけ演算器を設け、同時に処理することによりリアルタイムにデータを処理して出力していた。そして、演算結果は、主記憶装置へ保存され、必要に応じて出力される。また、リアルタイム性が重要でない場合には、ある一つのストリームデータ全てを処理して、その結果を主記憶装置へ格納後に、次のストリームデータの処理をおこない、主記憶装置へ格納するといったように順番に処理をおこなっていた。
【０００４】
画像ストリームを扱う技術としては、特開２０００−１３７１２号公報の「マルチ画面表示装置」があり、この公報には、複数の画像ストリームを入力し、それらを選択的に表示する技術が開示されている。この技術は、入力される複数のストリーム毎にＩピクチャのみを取り出したデータをまとめて保存し、必要に応じて展開済みのデータを同一の画面に表示できるというものである。
【０００５】
【発明が解決しようとする課題】
フォーマットの異なる複数のストリームデータを処理する場合、途中で演算を中断することができず、少なくともストリームの切れ目まで処理する必要があった。そのために、ストリーム毎に演算器を設け、専用で処理できるようにしたが、ストリームデータの種類だけ演算器を設ける必要があり、製品コストの増大を招くという問題点があった。
【０００６】
例えば、上記従来技術では、ストリームデータの数だけ、検出手段、記憶手段を設けなければならなかった。
【０００７】
また、ある一つのストリームデータを切れ目まで処理し、別のフォーマットであるストリームデータを処理する場合、時間的なずれが生じることを防ぐために、処理後のストリームデータを保存することが可能な記憶装置を設ける必要があった。
【０００８】
本発明は、上記問題点を解決するためになされたもので、演算エンジンを搭載するマイクロプロセッサにおいて、リアルタイムに多様な複数のストリームデータを処理することが可能であり、しかも、内部機構が簡易な演算エンジンを搭載するマイクロプロセッサを提供することにある。
【０００９】
【課題を解決するための手段】
この発明に係る演算エンジンは、ストリームデータを入力する演算エンジンであって、演算結果を出力する演算器と、演算器の演算手法を設定することのできる演算設定レジスタとからなる。そして、演算エンジンに入力するストリームデータは、演算手法または付加データを記述したヘッダ部と、演算対象のデータ部とからなる。演算エンジンは、入力されたストリームデータを、ヘッダ部とデータ部に分割して、ヘッダ部の演算手法と付加の一部は、演算設定レジスタに入力され、ヘッダ部の付加データの一部とデータ部のデータは、演算器に入力される。そして、演算終了時に演算設定レジスタの内容をフッタ部のデータとして出力し、演算器の内容を演算結果として出力し、このフッタ部と演算結果により、出力ストリームデータを作成して出力する。
【００１０】
そして、出力されるフッタ部の情報を、以降の入力ストリームデータのヘッダ部の情報として利用する。このようにして、演算の途中であっても、出力ストリームデータとして、出力し、次回の演算に利用することが可能であるので、特別な記憶装置を用意せずとも、簡単な機構で多種類にわたるストリームデータを効率的に処理することができる。
【００１１】
【発明の実施の形態】
以下、本発明に係る各実施形態を、図１ないし図６を用いて説明する。
【００１２】
〔実施形態１〕
以下、本発明に係る第一の実施形態を、図１ないし図５を用いて説明する。
【００１３】
先ず、図１および図２を用いて本発明に係る演算エンジンと、それを搭載するマイクロプロセッサと主記憶装置からなるコンピュータシステムについて説明する。
図１は、本発明に係る演算エンジンの構成とストリームデータの関係を示す概略図である。
図２は、本発明に係る演算エンジンを搭載するマイクロプロセッサと主記憶装置からなるコンピュータシステムの構成図である。
【００１４】
図２に示されるように本発明の演算エンジンを搭載するマイクロプロセッサは、演算エンジン２００と、コア２０５からなる。演算エンジン２００は、特殊な演算をおこなうための専用のプロセッサであり、コア２０５は、命令の解釈、実行により、主記憶装置２０４からのデータをロードしたり、ストアする。
【００１５】
本発明の実施形態では、主記憶装置２０４に置かれた入力ストリーム１００がマイクロプロセッサコア２０５を介して演算エンジン２００へ転送される。転送された結果はマイクロプロセッサコアから主記憶装置２０４へ出力ストリーム１０５として書き戻される。
【００１６】
次に、図２を用いて本発明に係る演算エンジンの構成と、ストリームデータを処理するときの動作について説明する。
【００１７】
本発明の演算エンジンに入力される入力ストリーム１００は、演算手法や付加データを記述したヘッダ１０１と演算の対象となる入力データ１０２から成る。
【００１８】
この入力ストリーム１００を演算エンジン２００へ入力し、ヘッダ１０１の内容の一部は、演算設定レジスタ２０１に、一部は、演算器２０２に転送され、また、入力データ１０２は、演算器２０２へ転送される。
【００１９】
そして、転送されたヘッダ１０１の内容を解釈することによって、演算器２０２の入力データ１０２の処理方法が決定され、演算結果１０４を出力する。入力データ１０２は、可変長であり、入力データ１０２の切れ目までは続けて演算器２０２に入力され演算結果１０４を出力する。
【００２０】
演算が終了して、演算エンジンから出力される出力ストリーム１０５は、演算結果１０３の後ろにフッタ１０４を添付した構成である。
【００２１】
フッタ１０３は、ヘッダ１０１を元にして作られるものであり、演算手法や演算途中結果である。
【００２２】
次に、図３および図４を用いて入力ストリーム１００と出力ストリーム１０５の加工処理について説明する。
図３は、入力ストリーム１００と出力ストリーム１０５の各部の関係を示す模式図である。
図４は、複数の入力ストリーム１００が入力され、複数の出力ストリーム１０５が出力されるときの様子を示す模式図である。
【００２３】
図３に示されるように演算エンジン２００に、入力ストリーム１００として、ヘッダｈ１と、データｄ１が入力される。そして、これの演算結果の出力ストリーム１０５として、演算結果ｒ１と、フッタｆ１が出力されたとする。
【００２４】
このときに、本発明の演算エンジンを搭載したマイクロプロセッサは、フッタｆ１を、次の入力ストリーム１００のヘッダｈ２として用いられるものである。
【００２５】
演算の内容としては、フッタｆ１の内容と同一の内容であるときもあるし、それが加工されて用いられるときもある。
【００２６】
また、図４に示されるように演算エンジンに複数の入力ストリームが入力されるものとする。このとき、入力ストリームＡ１と入力ストリームＡ２は、関連データであり、入力ストリームＡ２が入力ストリームＡ１の続きのデータであるとする。
【００２７】
そして、入力ストリームＢは、それらと無関係に処理されるデータであるとする。
【００２８】
本来なら、入力ストリームＡ１の、次に、入力ストリームＡ２が処理されるのが最も効率がよい。しかしながら、入力ストリームＢをある時間内に処理しなければならない場合には、入力ストリームＡ２に優先して処理することになる。
【００２９】
本発明では、そのような場合に、入力ストリームＡ１のヘッダＡ１を元にして作られたフッタＡ１にそのような情報を反映させ、それを入力ストリームＡ２のヘッダＡ２を作成することにより、入力ストリームＡ１の演算の途中結果を引き継いで、演算を再開することが可能になる。
【００３０】
したがって、このような入力ストリームＢによる割り込み（順番の乱れ）も許されることになる。
【００３１】
次に、図５を用いて本発明の演算エンジンにより演算される入力ストリームと出力ストリームの具体例について説明する。
図５は、暗号モジュールに用いられる入力ストリームと出力ストリームを示した模式図である。
【００３２】
本発明の演算エンジンは、例えば、暗号モジュールの処理に利用することができる。ヘッダ部に与える演算手法としては、どのような暗号を使っているかのモードであり、付加データとしては、データ長、暗号鍵、暗号の初期値などがある。
【００３３】
例えば、暗号のＣＢＣモードを使用する場合のヘッダは、ワード０〜ワード５までのＣＢＣモードを示す暗号モード、データ長ｎ、暗号鍵６４ビットと暗号初期値６４ビットである。ワード４とワード５に格納されている暗号初期値は、特にＣＢＣモードの場合、演算結果を次の入力データと排他的論理和をとることにより暗号化をおこなうため、最初に演算する場合は、演算結果が存在しないため初期値を予め設定しておく必要があり、そのための初期値である。
【００３４】
そして、入力ストリーム１００のワード６〜ワード（ｎ＋５）については、平文、すなわち、暗号前のデータである。
【００３５】
ヘッダに格納されている暗号モードの部分で演算エンジンの演算手法を定義しており、データ長ｎにデータである平文の処理量を示しておりこの値の処理が終了した時点で、暗号エンジンはフッタの出力を開始する。この暗号モードと、データ長に格納された情報は、図１に示される演算エンジン２００の中の演算設定レジスタ２０１に送られる。
【００３６】
また、鍵と暗号初期値は、転送されてくる平文の暗号化に使用されるデータである。これらは、平文データと同様に、演算エンジン２００の演算器２０２へ送られ、演算器で平文データが暗号化される。そして、暗号化をおこなったデータから順に演算結果として、出力され、データ長ｎの処理が終了した場合には、フッタとして暗号化に使用した暗号モード、データ長ｎ、鍵６４ビットと途中結果６４ビットを出力する。
【００３７】
途中結果はＣＢＣモードの排他的論理和で使用する値であり、次の暗号化の暗号初期値となる。
【００３８】
ここで、データ部にあたるのは、暗号文が格納された出力ストリームのワード０〜ワードｎまでの値であり、フッタにあたるのは、暗号モード、データ長ｎ、鍵と途中結果が格納された出力ストリームのワードｎ〜ワード（ｎ＋５）までの値である。そして、次の暗号処理の演算では、これらのフッタの情報をそのままヘッダとして使用でき、続けてデータとして平文を与えてやることで暗号文を得ることが可能である。
【００３９】
〔実施形態２〕
以下、本発明に係る第二の実施形態を、図６を用いて説明する。
図６は、本発明の演算エンジンを動画データの処理に応用したシステムのシステム構成図である。
【００４０】
本実施形態は、本発明の演算エンジンのストリームの処理を、動画データの処理に応用した例である。
【００４１】
このシステムは、図６に示されるように、ハードディスクなどの補助記憶装置内の動画データＡ２０９と動画Ｂ２１０をネットワーク２０６を用いて、マイクロプロセッサ２０３へ接続し、動画Ａ２０９と動画Ｂ２１０を同時に出力できるシステムである。
【００４２】
先ず、システムは、データＡ２０７をネットワーク２０６を用いてマイクロプロセッサ２０３へ転送する。マイクロプロセッサ２０３内のメモリコントローラ２１２は、受け取ったデータＡ２１４を、常に主記憶装置２０４内に保存しているヘッダＡ２１３の後へ保存し、ストリームデータＡを作る。
【００４３】
ストリームデータＡは、コプロセッサ２１１からの要求によりメモリコントローラ２１２を介して転送されヘッダＡ２１３に従って演算をおこない、その結果をメモリコントローラ２１２を介して主記憶装置２０４へ保存する。
【００４４】
この際、保存するデータは演算した結果である動画Ａ２１５とフッタＡ２１６である。このフッタＡ２１６はデータＡ２０７からくる次のデータのヘッダＡ２１３として使用することになるため、このまま主記憶装置２０４に保持される。主記憶装置２０４内の動画データ２１５は、再度メモリコントローラ２１２を介してＮＴＳＣ出力２１３を通り、外部へ動画Ａ２０９として出力される。また、同時に出力すべきデータＢ２０８は、ネットワーク２０６を介してメモリコントローラ２１２を通り、主記憶装置２０４へ転送される。
【００４５】
一方、この時、転送されたデータＢ２１８は、コプロセッサ２１１がおこなう演算手法を記述したヘッダＢ２１７の後へ保存され、ストリームデータＢを形成する。ストリームデータＢはメモリコントローラを介してコプロセッサ２１１へ転送されヘッダＢ２１７に従って処理をおこない、演算結果である動画Ｂ２１９とフッタＢを主記憶装置へ転送する。
【００４６】
そして、動画Ｂ２１９の部分のみ主記憶装置２０４からメモリコントローラ２１２、ＮＴＳＣ出力２１３を介して動画Ｂ２１０として外部へ出力される。これらの一連の処理は、時分割制御でおこなわれており、コプロセッサ２１１は、データＡ２１４とデータＢ２１８を切替えて処理をおこなっており、処理の方式は各々ヘッダＡ２１３とヘッダＢ２１７に記述されたとおりにおこなれる。
【００４７】
ヘッダの内容としては、具体的には、動画データの拡大率、表示位置、再生速度などが考えられる。
【００４８】
ここで重要なのは、ヘッダとフッタは、常に主記憶装置２０４に常駐しているため、補助記憶装置にアクセスすることなく、演算速度の低下が生じないことにある。
【００４９】
【発明の効果】
本発明によれば、演算エンジンを搭載するマイクロプロセッサにおいて、リアルタイムに多様な複数のストリームデータを処理することが可能であり、しかも、内部機構が簡易な演算エンジンを搭載するマイクロプロセッサを提供することができる。
【図面の簡単な説明】
【図１】本発明に係る演算エンジンの構成とストリームデータの関係を示す概略図である。
【図２】本発明に係る演算エンジンを搭載するマイクロプロセッサと主記憶装置からなるコンピュータシステムの構成図である。
【図３】入力ストリーム１００と出力ストリーム１０５の各部の関係を示す模式図である。
【図４】複数の入力ストリーム１００が入力され、複数の出力ストリーム１０５が出力されるときの様子を示す模式図である。
【図５】暗号モジュールに用いられる入力ストリームと出力ストリームを示した模式図である。
【図６】本発明の演算エンジンを動画データの処理に応用したシステムのシステム構成図である。
【符号の説明】
１００…入力ストリーム
１０５…出力ストリーム
１２４…入力データ群
１２５…出力データ群
２００…演算エンジン
２０１…演算設定レジスタ
２０２…演算器
【図１】
0003661944.tif 000002
【図２】
0003661944.tif 000003
【図３】
0003661944.tif 000004
【図４】
0003661944.tif 000005
【図５】
0003661944.tif 000006
【図６】
0003661944.tif 000007