(57)【要約】【課題】    画像処理を高速に行うことのできるプロセッサシステムを提供する。【解決手段】  アクセラレータ３と接続し該アクセラレータに起動要求の予約を発行するＣＰＵ１と、ＣＰＵが発行した要求数をカウントする要求数カウンタ及び終了した処理数をカウントする終了数カウンタを有するアクセラレータ３とを備え、前記アクセラレータ３は、要求数カウンタのカウンタ値が終了数カウンタのカウンタ値より大きいとき、自身を起動可能とする。【選択図】  図１
2005157783.tif 000002
【特許請求の範囲】
【請求項１】
アクセラレータと接続し該アクセラレータに起動要求の予約を発行するＣＰＵと、
ＣＰＵが発行した要求数をカウントする要求数カウンタ及び終了した処理数をカウントする終了数カウンタを有するアクセラレータとを備え、
前記アクセラレータは、要求数カウンタのカウンタ値が終了数カウンタのカウンタ値より大きいとき、自身を起動可能とすることを特徴とする実行予約可能なアクセラレータを備えたプロセッサシステム。
【請求項２】
請求項１記載のプロセッサシステムにおいて、
前記ＣＰＵの発行した起動要求の予約は、前記要求数カウンタのカウンタ値が終了数カウンタのカウンタ値より大きい時点で実行可能であることを特徴とする実行予約可能なアクセラレータを備えたプロセッサシステム。
【請求項３】
請求項１記載のプロセッサシステムにおいて、
前記アクセラレータは、前記要求数カウンタのカウンタ値が終了数カウンタのカウンタ値より大きいとき、有効な要求があると判断してアクセラレータを起動可能にする有効要求判定回路、及び前記有効な要求があると判断したときメモリ領域からアクセラレータの処理内容を記述したデスクリプタを読み込み記憶するデスクリプタ記憶回路を備え、
該デスクリプタ記憶回路は、デスクリプタをチェーンするための次デスクリプタ格納アドレスを指定するチェーン情報フィールドを備えたことを特徴とする実行予約可能なアクセラレータを有するプロセッサシステム。
【請求項４】
請求項１記載のプロセッサシステムにおいて、
複数のアクセラレータを備え、前記要求数カウンタは一度に複数個の要求数が設定可能であることを特徴とする実行予約可能なアクセラレータを有するプロセッサシステム。
【請求項５】
請求項１記載のプロセッサシステムにおいて、
前記要求数カウンタ及び終了数カウンタのカウント値は同時にクリア可能であることを特徴とする実行予約可能なアクセラレータを有するプロセッサシステム。
【請求項６】
請求項１記載のプロセッサシステムにおいて、
前記アクセラレータは、演算処理の終了後、終了数カウンタのカウンタ値を更新し、更新した値をＣＰＵに転送することを特徴とする実行予約可能なアクセラレータを有するプロセッサシステム。
【請求項７】
請求項１記載のプロセッサシステムにおいて、
アクセラレータは、ＭＰＥＧ復号処理における動き補償処理を行う動き補償をアクセラレータであることを特徴とする実行予約可能なアクセラレータを有するプロセッサシステム。
【請求項８】
請求項６記載のプロセッサシステムにおいて、
終了数カウンタの更新したカウント値はＣＰＵのデータキャッシュに格納することを特徴とする実行予約可能なアクセラレータを有するプロセッサシステム。
【請求項９】
請求項１記載のプロセッサシステムにおいて、
要求数カウンタは、要求数を表す書き込みデータ自身をカウントすることを特徴とする実行予約可能なアクセラレータを有するプロセッサシステム。
【請求項１０】
請求項１記載のプロセッサシステムにおいて、
要求数カウンタは、値「０」を書き込んだ場合は「０」クリアし、値「０」以外を書き込んだ場合はカウント値を「１」ずつ増加することを特徴とする実行予約可能なアクセラレータを有するプロセッサシステム。
【請求項１１】
請求項１記載のプロセッサシステムにおいて、
要求数カウンタには、ＣＰＵ自身が発行した要求数の記憶値を書き込むことを特徴とする実行予約可能なアクセラレータを有するプロセッサシステム。
【請求項１２】
ＣＰＵの発行した起動要求数及び前記ＣＰＵの発行した要求数のうちアクセラレータによる処理の終了した処理数をそれぞれカウントし、前記要求数をカウントしたカウンタ値が終了した処理数をカウントしたカウンタ値より大きいとき、アクセラレータ自身の起動を可能とすることを特徴とするアクセラレータの予約実行方法。
【請求項１３】
請求項１２記載のアクセラレータの予約実行方法において、
前記ＣＰＵの発行した起動要求の予約は、前記要求数カウンタのカウンタ値が終了数カウンタのカウンタ値より大きい時点で実行可能であることを特徴とする実行予約可能なアクセラレータの予約実行方法。
【請求項１４】
請求項１２記載のアクセラレータの予約実行方法において、
ＣＰＵの発行する要求数は一度に複数個の要求が設定可能であることを特徴とするアクセラレータの予約実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実行予約可能なアクセラレータを備えたプロセッサシステムにかかり、特に、処理を高速に行うことのできるプロセッサシステムに関する。
【背景技術】
【０００２】
実時間で行うＭＰＥＧ処理などの高い処理能力を必要とするメディア処理は、固定機能のＭＰＥＧ専用ＬＳＩ等の専用チップを使用する処理から、メディア演算器を含むメディアプロセッサを用いたソフトウェアによる処理に移行しつつある。
【０００３】
前記メディアプロセッサは、メディア処理に特化した豊富な演算器を備え、多種の規格の情報に対してソフトウェアにより対応可能である。また、画像処理あるいは音声処理など機能の異なる処理を１チップで実現することができる。また、メディアプロセッサは、メディア演算器の高い演算性能を得るため、データ転送系の強化、専用アクセラレータの搭載などにより並列性を高め、ソフトウェアによる実時間処理を実現している。
【０００４】
特許文献１には、メディア処理を実行するＣＰＵに加え、データ転送用アクセラレータ（データストリーマ）を備えることにより、メディア処理とデータ転送の分散処理を実現し性能向上を実現したマルチメディアシステムが示されている。このシステムでは、連鎖可能なチャネルを使用したデータ転送を実現し、複数のデータ転送を連鎖的に実現する。このため、アクセスアドレスが既知の場合、チャネルを連鎖させることによりＣＰＵの介在無しで並列処理を実現することができる。
【特許文献１】特公表２００２−５２７８２４号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記従来のＭＰＥＧ復号化処理においては、１画面の画像復号処理を実現する場合、この１画面をマクロブロックと呼ぶ小さなブロックに分割し、マクロブロック毎に順次処理を行うアルゴリズムが採用される。また、ＭＰＥＧ復号処理においては、処理全体に対し、動き補償処理と呼ばれる２次元のブロック転送を伴う処理の比重が大きい。この動き補償処理におけるブロック転送は、そのアクセスアドレスがランダムに発生するため、逐一、アドレス生成を行う必要がある。
【０００６】
前記特許文献１におけるマルチメディアシステムにおいて、このようなデータ転送を実現する場合アクセスアドレスを逐一生成する必要がある。このため、先に起動したチャネル設定時に、連鎖によるチャネルに指定するアクセスアドレスを確定することはできない。  すなわち、アクセラレータ（データストリーマ）の起動は、先に発行したチャネルの終了判定後にしか行うことができず、連鎖によるチャネルの使用は行うことはできない。
【０００７】
従って、ＣＰＵはデータストリーマとの同期化が必要となり、実質的にＣＰＵの処理性能が低下する。また同時にアクセラレータの稼動率も低下することになる。
【０００８】
本発明は、これらの問題点に鑑みてなされたもので、画像処理を高速に行うことのできるプロセッサシステムを提供する。
【課題を解決するための手段】
【０００９】
本発明は上記課題を解決するため、次のような手段を採用した。
【００１０】
アクセラレータと接続し該アクセラレータに起動要求の予約を発行するＣＰＵと、ＣＰＵが発行した要求数をカウントする要求数カウンタ及び終了した処理数をカウントする終了数カウンタを有するアクセラレータとを備え、前記アクセラレータは、要求数カウンタのカウンタ値が終了数カウンタのカウンタ値より大きいとき、自身を起動可能とすることを特徴とする実行予約可能なアクセラレータを備えた。
【発明の効果】
【００１１】
本発明は、以上の構成を備えるため、画像処理を高速に行うことのできるプロセッサシステムを提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、最良の実施形態を添付図面を参照しながら説明する。図１は、本実施形態におけるプロセッサシステムとしての画像処理システムの構成を説明する図である。
【００１３】
画像処理システムは、データキャッシュ１０を含み、汎用的な演算やメディア演算を行うＣＰＵ１、ＭＰＥＧ処理における動き補償処理を行う動き補償アクセラレータ３及びメモリ制御回路４を備え、これらはバス２を介して接続される。メモリ制御回路４にはパス５を介して主記憶などのメモリ６が接続される。ＣＰＵ１はバス２およびネットワーク３０を介して動き補償アクセラレータ３及びメモリ制御回路４にアクセス可能である。
【００１４】
動き補償アクセラレータ３の詳細な説明の行う前に、まず、図２および図３を参照してＭＰＥＧ復号処理の処理シーケンスの概要について説明する。
【００１５】
図２は、ＭＰＥＧ復号処理シーケンスの概要を説明する図である。圧縮された入力ストリームは、ハフマン復号化回路、逆量子化回路、逆離散コサイン変換回路を介して画像データを生成し、生成した画像データをフレームバッファに格納する。動きベクトルを用いた復号処理では、先のシーケンスによって得られる画像と動き補償処理によって得る画像との加算を行うことにより画像データを生成する。
【００１６】
図３は、ＭＰＥＧ復号処理における動き補償処理を説明する図であり、動き補償処理の１例であるフレーム画像のデュアルプライム予測方式を示した図である。この処理は、それぞれ１７×９画素の参照画像４つを元に、半画素単位で隣り合った画素との丸め付き平均をとり、１６×１６画素の画像を生成する処理である。従って、動き補償アクセラレータ３は、ＭＰＥＧ−２におけるデュアルプライム予測、フレーム予測、フィールド予測、１６×８ＭＣ予測、及びＭＰＥＧ−４におけるフレーム予測、フィールド予測、４ＭＶ予測などの動き予測モードに従い参照画を読出し、丸め付き平均演算を行うアクセラレータである。
【００１７】
次に、図１を参照して、動き補償アクセラレータ３について説明する。動き補償アクセラレータ３は、バス２およびネットワーク３０経由でＣＰＵ１からアクセス可能なスレーブとしての機能と、動き補償アクセラレータ３内のアドレス発生器３６が生成するアドレスによって、ネットワーク３０およびバス２経由で能動的にアクセスするマスタとしての機能との両者を有する。
【００１８】
スレーブとしての動作時、ネットワーク３０を介してアクセス可能なブロックは、有効要求判定回路３１、デスクリプタ記憶回路３２及び共通レジスタ３３である。マスタとしての動作時、デスクリプタ記憶回路３２へのデスクリプタ読込み動作と、入力データ記憶回路３４への参照画像読込み動作と、出力データ記憶回路３５からの動き補償結果出力動作の３つのアクセスを行う。
【００１９】
有効要求判定回路３１は、動き補償アクセラレータ３の起動を行うか否かを判定する。デスクリプタ記憶回路３２は、マクロブロック毎に与えられる予測モードなどデスクリプタ形式で定義された動き補償処理に必要なパラメータを保存するブロックである。共通レジスタ３３は１画面のＭＰＥＧ復号処理において、変化のないパラメータなどを保存するレジスタである。アドレス発生器３６は、デスクリプタ読込みアドレス、参照画像読込みアドレス、及び動き補償結果出力アドレスを生成する。入力データ記憶回路３４は、参照画像を保存するブロックである。動き補償演算器３７は、入力データ記憶回路３４に記憶された参照画データ５０を入力しデュアルプライム予測などの丸め付き平均演算を行う演算器であり、動き補償演算結果５２を生成し、出力データ記憶回路３５に出力する。生成した動き補償結果５１は出力データ記憶回路３５から出力され、ネットワーク３０を介してバス２に出力する。
【００２０】
図４は、有効要求判定回路３１の詳細を説明する図である。有効要求判定回路３１は２種のカウンタ、すなわち、動き補償アクセラレータ３の起動要求４０の回数を順次加算する要求数Σカウンタ３１０、及び動き補償アクセラレータ３が演算終了したことを示す動き補償演算終了イベント４１を順次カウントする終了数カウンタ３１１を備える。これらカウンタのカウンタ値を比較器３１２に入力し、要求数Σカウンタ値３１０が終了数カウンタ値３１１よりも大きい場合、有効な要求があるとして有効要求４２を生成し出力する。
【００２１】
また、アクセラレータ３は有効要求４２をもとにＣＰＵのアクセラレータに対する要求を処理する。
【００２２】
本実施形態では、少なくとも、要求数Σカウンタ３１０と終了数カウンタ値３１１を同時に「０」クリアする手段を有する。ここでは、要求数Σカウンタ３１０のカウンタ値と終了数カウンタ３１１のカウンタ値を同時にアクセス可能なレジスタに配置し、これらのレジスタに値「０」を書込んだ場合、２つのレジスタは「０」クリアするものとする。この「０」クリアにより、無効な要求が存在しないことを確定することができる。
【００２３】
また、要求数Σカウンタ３１０のカウンタ値と終了数カウンタ３１１のカウンタ値にアドレス空間を２つ設け、一つはリード及びライトアクセス可能な領域とし、他方は、アクセスすると共に「０」クリアできる領域として定義することもできる。
【００２４】
次に、要求数Σカウンタ３１０のカウンタ値の設定方式について説明する。第１の方式として、例えば、書込みデータ自身を要求数を示すものとすることができる。この例の場合は、まず、カウンタ値を「０」クリアした後、カウンタ値に要求数１を書込む。これにより要求数Σカウンタ３１０は「１」を記憶する。次に、例えば要求数３を書込む。この場合、要求数Σカウンタ値は、前記カウンタ値「１」と「３」を加算した「４」を記憶する。これによりシグマ加算を実現し、過去に発行された要求数の総和を記憶することができる。すなわち、ここでは、４つの要求が発行されたことを記憶する。  
また、第２の方式として、前述のようにレジスタに値「０」を書込んだ時は「０」クリアし、レジスタに「０」以外の値を書込んだ場合には、要求数Σカウンタ３１０を「１」ずつ加算する。これにより「０」以外の値の書込み数を要求数とすることができる。
【００２５】
また、第３の方式として、ＣＰＵ１自身はソフトウェアによりこれまでに発行した要求数を記憶しているため、ＣＰＵ１自身が記憶した要求数を直接、要求数Σカウンタ３１０のカウンタ値とすることができる。なお、終了数カウンタ値５４は、動き補償演算結果５２の転送後、ＣＰＵ１側に転送するとよい。
【００２６】
図５は、デスクリプタ記憶回路３２の詳細を説明する図である。デスクリプタ記憶回路３２は、マクロブロック毎に与えられるデスクリプタ形式で定義された予測モードなどの動き補償処理に必要な情報を格納する。なお、デスクリプタはＣＰＵ１内のデータキャッシュ１０内あるいはメモリ６内にデータとして保存されている。
【００２７】
前記保存されたデスクリプタデータ４３のデスクリプタ記憶回路３２内への格納処理は、（ＣＰＵ１などからのライト操作による格納ではなく）有効要求４２がアサート（有効化）され、有効な動き補償処理要求があると判断したとき、動き補償アクセラレータ３自身がバス２に対し能動的に読出しを行い、デスクリプタ記憶回路３２内の各種レジスタに格納する処理である。
【００２８】
デスクリプタ記憶回路３２は、２種のレジスタフィールドを備える。まず、処理内容フィールド３２０は、輝度成分、色差（Ｃｂ、Ｃｒ）などのコンポーネント部、単方向予測か双方向予測かを示す双方向フラグ部、デュアルプライム予測やフィールド予測、フレーム予測、１６×ＭＣ予測などの予測モードを示す予測モード部、丸め付き平均を行うための半画素値［ｎ］部、参照画像の読出しアドレスを示す参照アドレス［ｎ］部３２２等からなる。また、チェーン情報フィールド３２１は次のデスクリプタが格納されているアドレスを示す次デスクリプタアドレス部３２３を備える。
【００２９】
なお、次デスクリプタアドレスは、次のデスクリプタが格納された絶対アドレス指定で表す方式、あるいは相対アドレス指定のようにオフセットとして定義し現在のデスクリプタとの相対アドレスで定義する方式とすることができる。半画素値［ｎ］部および参照アドレス［ｎ］部３２２は、複数のフィールド参照を必要とするため、［ｎ］個のセットを有する。
【００３０】
処理内容フィールド３２０は動き補償処理の参照画像読出し、あるいは動き補償演算のモードを設定するために使用し、チェーン情報フィールド３２１は次のデスクリプタを読み出すために使用する。これらのフィールドは共にバス２を介してデータアクセス処理が可能である。データアクセスに際しては、選択回路３２４により参照アドレス［ｎ］部３２５あるいは次デスクリプタアドレス部３２３を選択して読出してアドレス４４を生成し、生成したアドレス４４をアドレス発生器３６に転送する。
【００３１】
図６は、共通レジスタ３３の詳細を説明する図である。共通レジスタ３３は（マクロブロック毎に必要なパラメータではなく）１画面の動き補償処理シーケンスにおいて必要とされるパラメータ４６を格納する。ネットワーク３０を経由して書込み可能なレジスタは、画像の幅を示すフレーム幅フィールド、フレーム画像かフィールド画像かを示す画像ストラクチャ、出力データ格納アドレス［０：２］３３１及び出力データを格納する領域のバッファ繰返し数を指定する出力繰り返しカウンタ［０：２］３３２を備える。
【００３２】
出力繰り返しカウンタ［０：２］３３２は、リングバッファ的に定義された出力先のセット数の上限を示し、カウンタ値がこの上限値に達するとゼロにクリアされる。出力格納先出力データが格納される２次元カウンタ３３３は、フレーム幅フィールドをシグマ加算するレジスタで、２次元の参照画像を読出すときに加算する。なお、ＭＰＥＧ処理で言うフィールド予測やデュアルプライム予測時は、フレーム幅フィールドの２倍の値を加算し、読出しピッチが２倍となるフィールド画像にも対応する。
【００３３】
選択回路３３４は、動き補償結果の出力時には出力繰り返し数カウンタ値３３２を、参照画像の読出し時には２次元カウンタ３３３の出力を、また、デスクリプタ読出し時には値０を選択してオフセットアドレス４８を生成するセレクタであり、生成したアドレスはアドレス発生器３６に出力する。また、出力データ格納アドレス［０：２］部３３１も同様に生成したアドレスをアドレス発生器３６に出力する。
【００３４】
ここで、出力データ格納アドレス［０：２］部３３１と出力繰り返し数カウンタ［０：２］３３２は、画像処理における輝度成分と色差成分（Ｃｂ、Ｃｒ）に対応するため、それぞれ３セット有し、それぞれの出力先は指定することができる。
【００３５】
図７は、アドレス発生器３６の詳細を説明する図である。アドレス発生器３６は、デスクリプタの読出しアドレス、２次元参照画の読出しアドレス、及び動き補償結果出力先アドレスの３つを生成する。選択回路３６０は、デスクリプタの読出し時と２次元参照画読出し時には読出しアドレス４４を、動き補償結果出力時は出力格納アドレス４７を選択する。選択回路３６０の出力であるベースアドレス３６２は、オフセットアドレス４８と加算器３６１により加算され、アクセスアドレス５３を生成する。動き補償アクセラレータ３はアクセスアドレス５３を用い、ネットワーク３０を介してバス２にアクセスする。
【００３６】
図８は、動き補償演算器３７の詳細を説明する図である。この例では、入力データ記憶回路３４から出力される参照画データ５０は一度に偶数ラインと奇数ラインの２ラインを読出すことができる構成とする。偶数ライン半画素演算器３７０は、偶数ライン参照データ５０（Ｅ）により偶数ラインの横方向半画素値３７６を演算し、奇数ライン半画素演算器３７１は、奇数ライン参照データ５０（Ｏ）により、奇数ラインの横方向半画素値３７７を演算し、それぞれ縦方向半画素演算器３７２に入力し、縦横計４画素の丸め付き平均値３７８を得る。なお、処理フィールド３２０内の半画素値が、丸め付き平均をとる必要がないと示した場合、それぞれの演算器に入力する偶数ライン参照データ５０（Ｅ）、奇数ライン参照データ５０（Ｏ）、偶数ラインの横方向半画素値３７６、奇数ラインの横方向半画素値３７７にマスクをかけると共に、それぞれの演算器の出力段にシフタを設け、丸め付き平均演算を行わないよう制御する。
【００３７】
更にデュアルプライム予測と双方向予測では、平均値演算器３７４にて２つの４画素丸め付き平均値３７８の平均を取るため、パイプラインにて実行し、４画素丸め付き平均値３７８をレジスタ３７３にて記憶した４画素丸め付き平均値３７９と、対応する画素丸め付き平均値３７８を入力し、最終的な動き補償演算結果５２を得る。平均値演算器３７４においても、平均値演算の必要のない場合、平均値演算器３７４内のマスクとシフタにより演算をマスク可能とする。これら様々なＭＰＥＧ動き補償演算は、入力する参照画データ５０の入力順序と、出力する最終的な動き補償演算結果５２の出力順序を制御することで、最終的な動き補償演算結果５２を得ることが可能であり、この順序を決定するものが、図５および図６において示した、フレーム画像かフィールド画像かを示す画像ストラクチャ、単方向予測か双方向予測かを示す双方向フラグ、フレーム予測、フィールド予測、デュアルプライム予測、ＭＰＥＧ２時の１６×ＭＣ予測、ＭＰＥＧ４時の４ＭＶ予測など、復号する画像の予測モードを示す予測モード、及び半画素値である。これらの値により、出力データ記憶回路３５のリードポインタと、出力データ記憶回路３５のライトポインタを制御する。
【００３８】
なお、演算制御部３７５は、動き補償演算器３７のメイン制御部で、演算器自身を制御し、１マクロブロック分の動き補償処理が終了した時点で、動き補償演算終了イベント４１を生成する。
【００３９】
次に、図９及び図１０を参照して、動き補償アクセラレータ３を使用した動き補償処理について説明する。この処理は、図２に示すようにＭＰＥＧ復号処理シーケンスに従い、ＣＰＵ１によりハフマン復号化、逆量子化、逆離散コサイン変換、及び動き補償結果との加算を実行し、動き補償アクセラレータ３において動き補償処理を行う。なお、説明を容易にするため、ここでは輝度成分のみのＭＰＥＧ復号処理を行うモデルとする。
【００４０】
図９は、動き補償処理に係わるメモリのアロケーションを説明する図である。ＣＰＵ１内のデータキャッシュ１０には、動き補償処理内容を示したデスクリプタ領域５００、５０１、５０２、終了数カウンタ領域５０３、動き補償結果格納領域５０４、５０５、５０６を定義する。この例では、デスクリプタと動き補償結果をトリプルバッファ形式で定義し、最大で３つの動き補償アクセラレータ３の起動を可能とする。各デスクリプタには、チェーン的に次デスクリプタアドレスが格納され、自動的にチェーン可能である（５００、５０１、５０２）。トリプルバッファを使用するため、動き補償結果領域５０４、５０５、５０６の３面を有し、共通レジスタ３３内の出力繰り返しカウンタ３３２（図６）には「３」を設定する。また、終了数カウンタ領域５０３は、動き補償結果を動き補償結果領域５０４、５０５、５０６に書込み終了後、動き補償アクセラレータ３自身が終了数カウンタ値５４の値で更新する。これらの領域をデータキャッシュ１０上に配置することにより、ＣＰＵ１のアクセスは、データキャッシュを参照することのみでよく、アクセス性能を向上することができる。なお、メモリ６内には参照画像６００が格納される。
【００４１】
図１０は、アクセラレータ３の動き補償処理を説明する図である。まず、処理を開始した（ステップ４００）後、ＣＰＵ１は、動き補償アクセラレータ３の初期化を行う。例えば、共通レジスタ３３内のフレーム幅フィールド、画像ストラクチャ、及び出力繰り返し数カウンタに「３」を、出力データ格納アドレス３３１にアドレス５を設定し、有効要求判定回路４０内の要求数Σカウンタ３１０と終了数カウンタ３１１のクリアし、デスクリプタ記憶回路３２内の次デスクリプタアドレス３２３に最初のデスクリプタが格納されているアドレス（アドレス１）を設定する。また、データキャッシュ上の終了数カウンタ値領域５０３をクリアする（ステップ４０１）。
【００４２】
この時点で、動き補償アクセラレータ３は起動可能な状態となり、有効要求判定回路３１の動作に従い、有効要求４２がアサートされるまで待ち状態となる。ＣＰＵ１は、データキャッシュ１０内の輝度デスクリプタ領域５００を設定後、要求数Σカウンタ３１０に「１」を設定する。「１」が設定されたとき、有効要求４２がアサートされ、動き補償アクセラレータ３は起動される（ステップ４０２）。
【００４３】
まず、設定されている次デスクリプタアドレス３２３のアドレスを元に、データキャッシュ１０（図９）から輝度デスクリプタ１を読出し、デスクリプタ記憶回路３２を更新する（ステップ４０３）。次に、デスクリプタ記憶回路３２に記憶された処理内容フィールド３２０を元に参照画をメモリ６から読出し（ステップ４０４）、動き補償演算器３７により動き補償演算を実行し、動き補償演算結果５２を出力データ記憶回路３５に格納する。このとき、動き補償終了イベント４１がアサートされ、終了数カウンタ３１１がカウントアップされる（ステップ４０５）。
【００４４】
次に、動き補償結果５１を出力データ格納アドレス３３１を元にデータキャッシュ１０上の動き補償結果１領域５０４に転送し、転送終了後、終了数カウンタ３１１の値をデータキャッシュ１０上の終了数カウンタ値領域５０３に転送する（ステップ４０６）。この時点で、動き補償アクセラレータは、再度、有効要求４２が存在するか判定する（ステップ４０２）。これら一連のシーケンスにより、連鎖的な動き補償アクセラレータ３の起動を可能とすることができる。また、動き補償アクセラレータ３のアクセスは、スヌープの技術によりデータキャッシュ１０とメモリ６間で整合性を維持することができる。
【００４５】
以上説明したように本実施形態によれば、ＣＰＵ１は動き補償アクセラレータ３の起動要求（要求数Σカウンタ値）及びデータキャッシュ１０上の終了数カウンタ値５０３をポーリングするのみで動き補償アクセラレータ３の起動予約を可能とすることができる。すなわち、動き補償アクセラレータ３の動作状況（動き補償アクセラレータ３が起動可能な状態であるか否か）をポーリングする必要はない。また、データキャッシュ１０上に定義したデスクリプタ領域５００、５０１、５０２と動き補償結果領域５０４、５０５、５０６のセット数に従い、動き補償アクセラレータ３の起動予約を可能とすることができる。また、複数の起動要求間に発生するアクセラレータの無駄な停止期間を削除することが可能であり、システム全体の処理能力を向上することができる。
【００４６】
なお、以上の説明では、ＭＰＥＧ復号処理における動き補償処理に特化して説明したが、本発明はこれに制限されるものではない。例えばデスクリプタによって動作するアクセラレータを含むシステム全般に関して同様に適用することができる。
【図面の簡単な説明】
【００４７】
【図１】本実施形態におけるプロセッサシステムとしての画像処理システムの構成を説明する図である。
【図２】ＭＰＥＧ復号処理シーケンスの概要を説明する図である。
【図３】ＭＰＥＧ復号処理における動き補償処理を説明する図である。
【図４】有効要求判定回路３１の詳細を説明する図である。
【図５】デスクリプタ記憶回路３２の詳細を説明する図である。
【図６】共通レジスタ３３の詳細を説明する図である。
【図７】アドレス発生器３６の詳細を説明する図である。
【図８】動き補償演算器３７の詳細を説明する図である。
【図９】動き補償処理に係わるメモリのアロケーションを説明する図である。
【図１０】補償アクセラレータ３の動き補償処理を説明する図である。
【符号の説明】
【００４８】
１  ＣＰＵ
２  バス
３  動き補償アクセラレータ
４  メモリ制御回路
５  パス
６  メモリ
１０  データキャッシュ
３０  ネットワーク
３１  有効要求判定回路
３２  デスクリプタ記憶回路
３３  共通レジスタ
３４  入力データ記憶回路
３５  出力データ記憶回路
３６  アドレス発生器
３７  動き補償演算器
４１  動き補償演算終了イベント
４２  有効要求
４４  読出しアドレス
４７  出力格納アドレス
４８  オフセットアドレス
５０  参照画データ
５１  動き補償結果
５２  動き補償演算結果
５３  アクセスアドレス
３１０  要求数Σカウンタ
３１１  終了数カウンタ
３２０  処理内容フィールド
３２１  チェーン情報フィールド
３２２  参照アドレス［ｎ］
３２３  次デスクリプタアドレス
３２４  選択回路
３２５  参照アドレス［ｎ］
３３１  出力データ格納アドレス
３３２  出力繰り返しカウンタ
３３３  ２次元カウンタ
３３４  選択回路
３６０  選択回路
３６１  ベースアドレス
３７０  偶数ライン半画素演算器
３７１  奇数ライン半画素演算器
３７２  縦方向半画素演算器
３７３  レジスタ
３７４  平均値演算器
３７５  偶数ラインの横方向半画素値
３７６  奇数ラインの横方向半画素値
３７７  縦横計４画素の丸め付き平均値
３７８  ４画素丸め付き平均値
【図１】
2005157783.tif 000003
【図２】
2005157783.tif 000004
【図３】
2005157783.tif 000005
【図４】
2005157783.tif 000006
【図５】
2005157783.tif 000007
【図６】
2005157783.tif 000008
【図７】
2005157783.tif 000009
【図８】
2005157783.tif 000010
【図９】
2005157783.tif 000011
【図１０】
2005157783.tif 000012