(57)【要約】      （修正有）【課題】マルチコアシステムを備えた信号処理装置の性能向上。【解決手段】キャッシュ用の複数の第１メモリと、各ステージを実行するためのプログラム１０３Ｈ〜１０３Ｉ、第１メモリに記憶されたデータ及び前記各ステージプログラム１０３Ｈ、Ｉの起動の予約情報を記憶する第２メモリ１０３と、各ステージプログラム１０３Ｈ〜Ｌを起動することによって、第１メモリ又は第２メモリに記憶されたデータに対してインバリデート処理、信号処理及びライトバック処理を行うステージを実行する複数のプロセッサと、を備え、各プロセッサは、第１ステージにおいて、前記第２ステージプログラム１０３Ｉの起動の予約情報１０３Ｂ、Ｃを前記第２メモリに記憶し、第２ステージにおいて、前記第2メモリに記憶された予約情報１０３Ｂ、Ｃに従ってインバリデート処理又はライトバック処理を省略する。【選択図】図２
2008310639.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ用のデータを記憶する複数の第１メモリと、
第１ステージを実行するための第１ステージプログラム、第２ステージを実行するための第２ステージプログラム、前記第１メモリに記憶されたデータ及び前記各ステージプログラムの起動を予約する予約情報を記憶する第２メモリと、
前記第１メモリと接続され、前記第２メモリに記憶された各ステージプログラムを起動することによって、前記第１メモリ又は前記第２メモリに記憶されたデータに対してインバリデート処理、信号処理及びライトバック処理を行うステージを実行する複数のプロセッサと、を備え、
前記各プロセッサは、前記第１ステージにおいて、前記第２ステージプログラムの起動を予約する予約情報を前記第２メモリに記憶し、前記第２ステージにおいて、前記第2メモリに記憶された予約情報に従って前記インバリデート処理又はライトバック処理を省略することを特徴とする信号処理装置。
【請求項２】
前記予約情報は、前記各プロセッサの予約ステージ情報と、前記各ステージの予約プロセッサ情報と、を含み、
前記各プロセッサは、前記第１ステージにおいて、予約ステージ情報及び予約プロセッサ情報を前記第２メモリに記憶し、前記第２ステージにおいて、前記第２メモリに記憶された予約ステージ情報と予約プロセッサ情報が一致する場合に、前記インバリデート処理又は前記ライトバック処理を省略する請求項１に記載の信号処理装置。
【請求項３】
前記第２メモリは、第３ステージを実行するための第３ステージプログラムをさらに記憶し、
前記各プロセッサは、前記第２ステージにおいて前記ライトバック処理を省略した場合には、前記第３ステージにおいて前記インバリデート処理を省略する請求項１又は２に記載の信号処理装置。
【請求項４】
前記第２メモリは、前記各ステージの間の依存関係を示す依存情報及び前記各ステージの間の優先順位を示す優先情報をさらに記憶し、
前記各プロセッサは、前記第２ステージにおいて、前記第２メモリに記憶された予約情報、前記依存情報及び前記優先情報に従って前記ライトバック処理を省略する請求項１乃至３の何れか１項に記載の信号処理装置。
【請求項５】
前記第２メモリは、前記各ステージプログラムの起動のスケジューリングを行うためのＰＥプログラムをさらに記憶し、
前記各プロセッサは、前記ＰＥプログラムを起動し、前記第２メモリに記憶された予約情報に従って前記各ステージプログラムの起動のスケジューリングを行う請求項１乃至４の何れか１項に記載の信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理装置に関し、特に、動画像データ又は音声データのためのマルチコアシステムを備えた信号処理装置に関する。
【背景技術】
【０００２】
従来、画像データ又は音声データを処理するための複数のプロセッサを含むＡＶ向けマルチコアシステムでは、予め処理内容が割り当てられた複数のプロセッサのパイプライン処理によって処理効率を向上させていた。
【０００３】
しかし、取り扱われるメディア処理方式の多様化に伴い、複数のプロセッサのそれぞれに予め処理内容を割り当てることで、かえって処理効率の低下を招いていた。
【０００４】
これに対して、特許文献１の画像処理装置のように、複数のプロセッサが予め割り当てられた処理を実行するのではなく、プロセスキューに登録された順番にセグメント（所定のサイズに分割された画像データ）に対する処理を選択的に行う技術が知られている。
【０００５】
特許文献１の画像処理装置のプロセッサは、１つのセグメントに対する処理を完了させた後に、他のプロセッサによる処理が完了した他のセグメントに対する処理を実行することができるので、パイプライン処理よりも処理効率を向上させることができるものである。
【０００６】
しかし、特許文献１のプロセッサは、プロセスキューに登録された順番に従って処理を実行するので、プロセスキューに登録された複数の処理と他の処理との間に依存関係がある場合には、他の処理が完了するまでプロセスキューに登録された処理を実行することができないので、複数のプロセッサの並列性を有効に利用することができないという問題があった。
【０００７】
以上のことから、従来の画像処理装置では、複数のプロセッサを効率的に動作させて画像処理を実行することができず、複数のプロセッサの並列性を有効に利用することはできなかった。
【０００８】
また、複数のプロセッサ毎にキャッシュメモリを有する場合には、ステージ毎にキャッシュメモリのインバリデートとライトバックを行うことによって、キャッシュコヒーレンシを保つ必要が有る。
【０００９】
しかし、各ステージが同一のプロセッサによって実行される場合であっても、ステージを実行するプロセッサは動的に決定されるため、各ステージプログラムにおいてインバリデートとライトバックを行う。
【００１０】
その結果、ステージ毎に共有メモリへのアクセスが発生することになり、信号処理装置の性能が低下するという問題があった。
【特許文献１】特開２００５−１８９９７５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、マルチコアシステムを備えた信号処理装置の性能を向上させることである。
【課題を解決するための手段】
【００１２】
本発明の態様によれば、キャッシュ用のデータを記憶する複数の第１メモリと、第１ステージを実行するための第１ステージプログラム、第２ステージを実行するための第２ステージプログラム、前記第１メモリに記憶されたデータ及び前記各ステージプログラムの起動を予約する予約情報を記憶する第２メモリと、前記第１メモリと接続され、前記第２メモリに記憶された各ステージプログラムを起動することによって、前記第１メモリ又は前記第２メモリに記憶されたデータに対してインバリデート処理、信号処理及びライトバック処理を行うステージを実行する複数のプロセッサと、を備え、前記各プロセッサは、前記第１ステージにおいて、前記第２ステージプログラムの起動を予約する予約情報を前記第２メモリに記憶し、前記第２ステージにおいて、前記第2メモリに記憶された予約情報に従って前記インバリデート処理又はライトバック処理を省略することを特徴とする信号処理装置が提供される。
【発明の効果】
【００１３】
本発明によれば、マルチコアシステムを備えた信号処理装置の共有メモリへのアクセス回数を低減することができ、ひいては、信号処理装置の性能を向上させることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施例について図面を参照して説明する。なお、以下の実施例は、本発明の実施の一形態であって、本発明の範囲を限定するものではない。
【実施例１】
【００１５】
はじめに、本発明の実施例１について説明する。
【００１６】
図１は、本発明の実施例１に係る信号処理の一例である画像処理の概略を示す概略図である。
【００１７】
本発明の実施例１の画像処理は、近傍の復号画像１１Ａ、予測モード１１Ｂ及び残差ブロック３１Ｂを用いて画面内予測を行う画面内予測ステージ１２と、動きベクトル２１Ａを用いて予測画像２１Ｂを算出する動き補償ステージ２２Ａ並びに予測画像２１Ｂ及び残差ブロック３１Ｂを用いて残差加算を行う残差加算ステージ２２Ｂと、Ｃｏｅｆｆ３１Ａを直行変換して残差ブロック３１Ｂを算出する直行変換ステージ３２から構成される。
【００１８】
図１は、画面内予測ステージ１２及び残差加算ステージ２２Ｂの実行結果が復号画像４１であることを示す。
【００１９】
図２は、本発明の実施例１に係る信号処理装置１００の構成を示すブロック図である。
【００２０】
本発明の実施例１に係る信号処理装置１００は、複数の第１プロセッサ１０１Ａ〜Ｃ、複数のキャッシュメモリ（第１メモリ）１０２Ａ〜Ｃ、共有メモリ（第２メモリ）１０３、入力装置１０４及びバス１０５を備えている。
【００２１】
第１プロセッサ１０１Ａ〜Ｃは、第１メモリ１０３に記憶されたプログラムを起動し、プログラムに従ってインバリデート処理、信号処理及びライトバック処理（ステージ）を実行する。
【００２２】
第１メモリ１０２Ａ〜Ｃは、第１〜第５ステージで取り扱われるデータ（ステージデータ）をキャッシュ用データとして記憶する。
【００２３】
第２メモリ１０３は、実行可能キュー１０３Ａ、予約ステージ情報１０３Ｂ、予約プロセッサ情報１０３Ｃ、依存情報１０３Ｄ及び優先情報１０３Ｅと、プロセッサ１０１Ａ〜Ｃのためのプログラム（ＨＯＳＴタスクプログラム１０３Ｆ、ＰＥ（Processing Element）タスクプログラム１０３Ｇ、第１〜第５ステージプログラム１０３Ｈ〜Ｌ）と、ステージデータ１０３Ｍを記憶する。
【００２４】
実行可能キュー１０３Ａは、実行可能なステージを示すキュー構造のデータである。
【００２５】
予約ステージ情報１０３Ｂは、プロセッサ１０１Ａ〜Ｃ毎に予約されたステージを示すデータである。
【００２６】
予約プロセッサ情報１０３Ｃは、ステージ毎に予約されたプロセッサ１０１Ａ〜Ｃを示すデータである。
【００２７】
依存情報１０３Ｄは、ステージ間の依存関係を示すテーブルである。
【００２８】
優先情報１０３Ｅは、ステージ間の優先順位を示すデータである。
【００２９】
ＨＯＳＴタスクプログラム１０３Ｆは、ＰＥタスクプログラム１０３Ｇの起動及び依存情報１０３Ｄの作成を行うＨＯＳＴタスクを実行するためのプログラムである。プロセッサ１０１Ａ〜Ｃは、ＨＯＳＴタスクプログラム１０３Ｆを起動した場合には、ＨＯＳＴタスク手段として機能する。
【００３０】
ＰＥタスクプログラム１０３Ｇは、第１〜第５ステージプログラム１０３Ｈ〜Ｌの起動のスケジューリングを行うためのＰＥタスクを実行するためのプログラムである。プロセッサ１０１Ａ〜Ｃは、ＰＥタスクプログラム１０３Ｇを起動した場合には、ＰＥタスク手段として機能する。
【００３１】
第１ステージプログラム１０３Ｈは、第１ステージを実行するためのプログラムである。プロセッサ１０１Ａ〜Ｃは、第１ステージプログラム１０３Ｈを起動した場合には、第１ステージ実行手段として機能する。
【００３２】
第２ステージプログラム１０３Ｉは、第２ステージを実行するためのプログラムである。プロセッサ１０１Ａ〜Ｃは、第２ステージプログラム１０３Ｉを起動した場合には、第２ステージ実行手段として機能する。
【００３３】
第３ステージプログラム１０３Ｊは、第３ステージを実行するためのプログラムである。プロセッサ１０１Ａ〜Ｃは、第３ステージプログラム１０３Ｊを起動した場合には、第３ステージ実行手段として機能する。
【００３４】
第４ステージプログラム１０３Ｋは、第４ステージを実行するためのプログラムである。プロセッサ１０１Ａ〜Ｃは、第４ステージプログラム１０３Ｋを起動した場合には、第４ステージ実行手段として機能する。
【００３５】
第５ステージプログラム１０３Ｌは、第５ステージを実行するためのプログラムである。プロセッサ１０１Ａ〜Ｃは、第５ステージプログラム１０３Ｋを起動した場合には、第５ステージ実行手段として機能する。
【００３６】
ステージデータ１０３Ｍは、第１〜第５ステージで取り扱われるデータである。例えば、ステージデータ１０３Ｍは、画像データ又は音声データである。
【００３７】
入力装置１０４は、プロセッサ１０１Ａ〜Ｃにステージを実行するためのオペレータの指示を入力する。例えば、入力装置１０４は、キーボード又はマウスである。
【００３８】
第１メモリ１０１Ａ〜Ｃ、第２メモリ１０３及び入力装置１０４は、バス１０５を介して接続されている。
【００３９】
なお、プロセッサ１０１Ａ〜Ｃは、それぞれ、キャッシュメモリとして機能するローカルメモリを備えていても良い。
【００４０】
また、プロセッサ１０１Ａ〜Ｃ、第１メモリ１０２Ａ〜Ｃ及び第１〜５ステージプログラム１０３Ｈ〜Ｌの数は、幾つでも良い。
【００４１】
また、バス１０５は、インターコネクトでも良い。
【００４２】
図３は、本発明の実施例１に係る予約ステージ情報１０３Ｂの概略を示す概略図である。
【００４３】
本発明の実施例１に係る予約ステージ情報１０３Ｂは、プロセッサ１０１Ａ〜Ｃを示す情報及びプロセッサ１０１Ａ〜Ｃに予約されたステージを示す情報から構成されている。
【００４４】
図３は、プロセッサ１０１Ａに第２ステージが予約され、プロセッサ１０１Ｂに第３ステージが予約されていることを示している。
【００４５】
プロセッサ１０１Ａは、第１ステージの実行が終了した後に第２ステージプログラム１０３Ｉを起動して第２ステージを実行する。プロセッサ１０１Ｂは、第１ステージの実行が終了した後に第３ステージプログラム１０３Ｊを起動して第３ステージを実行する。
【００４６】
図４は、本発明の実施例１に係るステージ間の依存関係の概略を示す概略図である。
【００４７】
本発明の実施例１に係るステージ間の依存関係は、第１ステージプログラム１０３Ｈ、第２ステージプログラム１０３Ｉ、第３ステージプログラム１０３Ｊ、第４ステージプログラム１０３Ｋ及び第５ステージプログラム１０３Ｌに従って決定される。
【００４８】
第１ステージは、最初に実行されるステージであるので、他のどのステージにも依存しない。
【００４９】
第２ステージは、第１ステージに依存する。第２ステージでは、第１ステージの実行結果（データ１−２）に従って信号処理が実行される。
【００５０】
第３ステージは、第１ステージに依存する。第３ステージでは、第１ステージの実行結果（データ１−３）に従って信号処理が実行される。
【００５１】
第４ステージは、第２及び第３ステージに依存する。第４ステージでは、第２ステージの実行結果（データ２−４）及び第３ステージの実行結果（データ３−４）に従って信号処理が実行される。
【００５２】
第５ステージは、第１及び第２ステージに依存する。第５ステージでは、第１ステージの実行結果（データ１−５）及び第２ステージの実行結果（データ２−５）に従って信号処理が実行される。
【００５３】
第１、第２及び第５ステージは、プロセッサ１０１Ａによって実行される。第３及び第４ステージは、プロセッサ１０１Ｂによって実行される。
【００５４】
データ１−２、２−５及び３−４は、他のデータより優先順位が高い。優先順位は、データ量又は第１ステージプログラム１０３Ｈ、第２ステージプログラム１０３Ｉ、第３ステージプログラム１０３Ｊ、第４ステージプログラム１０３Ｋ及び第５ステージプログラム１０３Ｌに従って決定され、「各ステージにおいてどのように依存情報を更新するか」という形で表現される。
【００５５】
図５は、本発明の実施例１に係るＰＥタスク処理のプロセッサ１０１Ａの処理手順を示すフローチャートである。
【００５６】
本発明の実施例１に係るＰＥタスク処理は、プロセッサ１０１Ａ〜ＣによってＰＥタスクプログラム１０３Ｇが起動されたときに実行される処理である。
【００５７】
はじめに、プロセッサ１０１Ａは、予約ステージ情報１０３Ｂにステージが設定されている場合には（Ｓ５０１−ＹＥＳ）、予約ステージ情報１０３Ｂを参照する（Ｓ５０２）。
【００５８】
一方、プロセッサ１０１Ａは、実行可能キューにステージが設定されている場合には（Ｓ５０１−ＮＯ、Ｓ５０３−ＹＥＳ）、実行可能キューを参照する（Ｓ５０４）。
【００５９】
続いて、プロセッサ１０１Ａは、Ｓ５０２又はＳ５０４の参照結果に従って、ステージプログラム１０３Ｈ〜Ｊを起動する（Ｓ５０５）。例えば、プロセッサ１０１Ａは、図３に示されるようにプロセッサ１０１Ａに第２ステージが設定されている場合には、第２ステージプログラム１０３Ｉを起動する。
【００６０】
続いて、プロセッサ１０１Ａは、後述するステージを実行する（Ｓ５０６）。例えば、プロセッサ１０１Ａは、Ｓ５０５において第２ステージプログラム１０３Ｉを起動する場合には、第２ステージを実行する。
【００６１】
続いて、プロセッサ１０１Ａは、依存情報１０３Ｄの依存ステージ状態に実行完了情報（「実行済」）を設定し、実行可能キュー１０３Ａを更新する依存解決処理を実行する（Ｓ５０７）。
【００６２】
全ステージについてＳ５０１〜Ｓ５０８が完了していない場合には（Ｓ５０８−ＮＯ）、Ｓ５０１に戻る。
【００６３】
一方、全ステージについてＳ５０１〜Ｓ５０８が完了した場合には（Ｓ５０８−ＹＥＳ）、本発明の実施例１に係るＰＥタスク処理を終了する。
【００６４】
なお、本発明の実施例１に係るＰＥタスク処理は、プロセッサ１０１Ｂ又はＣによってＰＥタスクプログラム１０３Ｇが起動されたときも同様である。
【００６５】
図６は、本発明の実施例１に係る依存情報１０３Ｄの概略を示す概略図である。
【００６６】
本発明の実施例１に係る依存情報１０３Ｄは、依存ステージ状態及び予約プロセッサ情報１０３Ｃから構成される。
【００６７】
図６Ａは、初期状態（図４の第１ステージを実行する直前）の依存ステージ状態及び予約プロセッサ情報１０３Ｃを示す。
【００６８】
図６Ｂは、図４の第１ステージが完了した後の依存解決処理において作成される依存ステージ状態及び予約プロセッサ情報１０３Ｃを示す。
【００６９】
図６Ｃは、図４の第２ステージの実行中であって、図４の第３ステージが完了した後の依存解決処理において作成される依存ステージ状態及び予約プロセッサ情報１０３Ｃを示す。
【００７０】
図６Ｄは、図４の第２ステージが完了した後の依存解決処理において作成される依存ステージ状態及び予約プロセッサ情報１０３Ｃを示す。
【００７１】
図６Ｅは、図４の第４ステージが完了した後の依存解決処理において作成される依存ステージ状態及び予約プロセッサ情報１０３Ｃを示す。
【００７２】
図６Ｆは、図４の第５ステージが完了した後の依存解決処理において作成される依存ステージ状態及び予約プロセッサ情報１０３Ｃを示す。
【００７３】
図７は、本発明の実施例１に係るステージにおけるプロセッサ１０１Ａの処理手順を示すフローチャートである。
【００７４】
本発明の実施例１に係るステージは、プロセッサ１０１Ａ〜Ｃによって第１〜第５ステージプログラム１０３Ｈ〜Ｌが起動されたときに実行される処理である。
【００７５】
はじめに、プロセッサ１０１Ａは、後述するインバリデート処理を実行する（Ｓ７０１）。
【００７６】
続いて、プロセッサ１０１Ａは、ステージの対象となるステージデータ１０３Ｍに対して所定の信号処理を実行する。例えば、所定の信号処理は、画面内予測処理、動き補償処理、残差加算処理又は直行変換処理である。
【００７７】
続いて、プロセッサ１０１Ａは、後述するライトバック処理を実行する（Ｓ７０３）。
【００７８】
続いて、プロセッサ１０１Ａは、実行完了情報を設定し（Ｓ７０４）、本発明の実施例１に係るステージを終了する。
【００７９】
なお、本発明の実施例１に係るステージは、プロセッサ１０１Ｂ又はＣによってステージプログラム１０３Ｈ〜Ｌが起動されたときも同様である。
【００８０】
図８は、本発明の実施例１に係るインバリデート処理におけるプロセッサ１０１Ａの処理手順を示すフローチャートである。
【００８１】
本発明の実施例１に係るインバリデート処理は、プロセッサ１０１Ａ〜Ｃによって第１〜第５ステージの実行中に行われる処理である。
【００８２】
はじめに、プロセッサ１０１Ａは、予約ステージ情報１０３Ｂを参照する（Ｓ８０１）。
【００８３】
続いて、プロセッサ１０１Ａは、予約ステージ情報１０３Ｂに従ってインバリデート省略可否を判定する（Ｓ８０２）。プロセッサ１０１Ａは、予約ステージ情報１０３Ｂのプロセッサ１０１Ａに設定されたステージと実行中のステージが一致する場合に「省略する」と判定し、一致しない場合に「省略しない」と判定する。例えば、第２ステージにおいて行われるインバリデート処理では、プロセッサ１０１Ａは、図３に示されるように予約ステージ情報１０３Ｂのプロセッサ１０１Ａに第２ステージが設定されている場合に「インバリデートを省略する」と判定し、予約ステージ情報１０３Ｂのプロセッサ１０１Ａに第２ステージが設定されていない場合に、「インバリデートを省略しない」と判定する。
【００８４】
続いて、プロセッサ１０１Ａは、インバリデートを省略する場合には（Ｓ８０３−ＹＥＳ）、実行中のステージと依存関係のある実行済のステージ（依存ステージ）のデータについてインバリデートを行い（Ｓ８０５）、本発明の実施例１に係るインバリデート処理を終了する。
【００８５】
一方、プロセッサ１０１Ａは、インバリデートを省略しない場合には（Ｓ８０３−ＮＯ）、実行中のステージのデータについてインバリデートを行う（Ｓ８０４）。
【００８６】
続いて、プロセッサ１０１Ａは、実行中のステージと依存関係のある実行済のステージ（依存ステージ）のデータについてインバリデートを行い（Ｓ８０５）、本発明の実施例１に係るインバリデート処理を終了する。
【００８７】
なお、本発明の実施例１に係るインバリデート処理は、プロセッサ１０１Ｂ又はＣによって第１〜第５ステージの実行中に行われるときも同様である。
【００８８】
図９は、本発明の実施例１に係るライトバック処理におけるプロセッサ１０１Ａの処理手順を示すフローチャートである。
【００８９】
本発明の実施例１に係るライトバック処理は、プロセッサ１０１Ａ〜Ｃによって第１〜第５ステージの実行中に行われる処理である。
【００９０】
プロセッサ１０１Ａは、図７のＳ７０２において信号処理の対処となったステージデータ１０３Ｍに対して、ライトバック処理を実行する。
【００９１】
はじめに、プロセッサ１０１Ａは、依存情報１０３Ｄを参照する（Ｓ９０１）。
【００９２】
続いて、プロセッサ１０１Ａは、入力装置１０４を介して入力されたオペレータの指示に示された実行中のステージに依存するステージ（対象ステージ）のライトバック省略可否を判定する（Ｓ９０２）。例えば、第２ステージにおいて行われるライトバック処理では、プロセッサ１０１Ａは、対象ステージが第５ステージである場合には、第２ステージの完了後に実行可能となるステージであるので「ライトバックを省略する」と判定し、対象ステージが第４ステージである場合には、第２ステージの完了後に実行可能となるステージではない（第２及び第３ステージの完了後に実行可能となるステージである）ので「ライトバックを省略しない」と判定する。対象ステージとは、未実行のステージのうち、優先順位の高いステージである。例えば、図４に示されたように、第２ステージの完了後に未実行のステージのうち、優先順位の高いステージである第５ステージが対象ステージである。
【００９３】
ライトバックを省略する場合には（Ｓ９０３−ＹＥＳ）、プロセッサ１０１Ａは、予約プロセッサ情報１０３Ｃの対象ステージに設定する（Ｓ９０４）。例えば、プロセッサ１０１Ａは、対象ステージが第５ステージである場合には、図６Ｄに示されたように、予約プロセッサ情報１０３Ｃの第５ステージにプロセッサ１０１Ａを設定する。
【００９４】
続いて、プロセッサ１０１Ａは、予約ステージ情報１０３Ｂに設定し（Ｓ９０５）、本発明の実施例１に係るライトバック処理を終了する。例えば、プロセッサ１０１Ａは、対象ステージが第５ステージである場合には、予約ステージ情報１０３Ｂのプロセッサ１０１Ａに第５ステージを設定する。
【００９５】
一方、プロセッサ１０１Ａは、ライトバックを省略しない場合には（Ｓ９０３−ＮＯ）、第１メモリ１０２Ａからステージデータ１０３Ｍを読み出す（Ｓ９０６）。
【００９６】
続いて、プロセッサ１０１Ａは、Ｓ９０６において読み出されたステージデータ１０３Ｍを第２メモリ１０３に書き込む（Ｓ９０７）。
【００９７】
Ｓ９０５又はＳ９０７に続いて、プロセッサ１０１Ａは、第１メモリ１０１Ａから実行中のステージに依存するステージ（依存ステージ）のデータを読み出す（Ｓ９０８）。
【００９８】
続いて、第２メモリ１０３に依存ステージのデータを書き込み（Ｓ９０９）、本発明の実施例１に係るライトバック処理を終了する。
【００９９】
なお、本発明の実施例１に係るライトバック処理は、プロセッサ１０１Ｂ又はＣによって第１〜第５ステージの実行中に行われるときも同様である。
【０１００】
次に、本発明の実施例１に係るＨＯＳＴタスクプログラム１０３Ｆ、ＰＥタスクプログラム１０３Ｇ及び第１〜第５ステージプログラム１０３Ｈ〜Ｌを起動した場合の依存情報１０３Ｄの変化について説明する。
【０１０１】
はじめに、図６Ａに示されたように、プロセッサ１０１Ａは、ＨＯＳＴタスクにおいて依存情報１０３Ｄを作成し、第２メモリ１０３に書き込む。
【０１０２】
このとき、プロセッサ１０１Ａ〜Ｃは、ＨＯＳＴタスクにおいてＰＥタスクプログラム１０３Ｇを起動し、ＰＥタスクにおいて各ステージプログラム１０３Ｈ〜Ｌを起動する。
【０１０３】
プロセッサ１０１Ａは、最初のステージ（依存するステージのないステージ）である第１ステージを実行し、信号処理（図７のＳ７０２）を行う。
【０１０４】
プロセッサ１０１Ａは、データ１−３及び１−５についてライトバックを行い（図９のＳ９０８及びＳ９０９）、データ１−２については、ライトバックを省略する（図９のＳ９０４及びＳ９０５）。
【０１０５】
続いて、図６Ｂに示されたように、プロセッサ１０１Ａは、第１ステージの実行完了情報を設定する（図７のＳ７０４）。
【０１０６】
その結果、第１ステージの依存ステージである第２、第３及び第５ステージの依存ステージ状態には、第１ステージが「実行済」であることが設定される。また、対象ステージである第２ステージ（図４を参照）の予約プロセッサ情報１０３Ｃには、プロセッサ１０１Ａの予約が設定される。また、プロセッサ１０１Ａの予約ステージ情報１０３Ｂには、第２ステージが設定される。また、実行可能キュー１０３Ａには、第３ステージが設定される。
【０１０７】
プロセッサ１０１Ａは、予約ステージ情報１０３Ｂ及び予約プロセッサ情報１０３Ｃに従って第２ステージを実行し、プロセッサ１０１Ｂは、実行可能キュー１０３Ａに従って第３ステージを実行する。
【０１０８】
続いて、図６Ｃに示されたように、プロセッサ１０１Ｂは、第１ステージの依存ステージであって対象ステージではない第３ステージを実行し、信号処理（図７のＳ７０２）を行う。
【０１０９】
プロセッサ１０１Ｂは、第２ステージが実行中である場合には、データ３―４についてライトバックを行い（図９のＳ９０６及びＳ９０７）、第３ステージの実行完了情報を設定する（図７のＳ７０４）。
【０１１０】
その結果、第３ステージの依存ステージ（第４ステージ）の依存ステージ状態には、第３ステージが「実行済」であることが設定される。
【０１１１】
なお、プロセッサ１０１Ｂは、第３ステージの実行中に第２ステージが完了した場合には、データ３−４についてのライトバックを省略する（図９のＳ９０４及びＳ９０５）。
【０１１２】
続いて、図６Ｄに示されたように、プロセッサ１０１Ａは、第２ステージを実行し、信号処理（図７のＳ７０２）を行い、第２ステージの実行完了情報を設定する（図７のＳ７０４）。
【０１１３】
プロセッサ１０１Ａは、データ２−４についてライトバックを行い（図９のＳ９０８及びＳ９０９）、データ２−５については、ライトバックを省略する（図９のＳ９０４及びＳ９０５）。
【０１１４】
その結果、第２ステージの依存ステージ（第４及び第５ステージ）の依存ステージ状態には、第２ステージが「実行済」であることが設定される。また、対象ステージである第５ステージ（図４を参照）の予約プロセッサ情報１０３Ｃには、プロセッサ１０１Ａの予約が設定される。また、プロセッサ１０１Ａの予約ステージ情報１０３Ｂには、第５ステージが設定される。また、実行可能キュー１０３Ａには、第４ステージが設定される。
【０１１５】
プロセッサ１０１Ａは、予約ステージ情報１０３Ｂ及び予約プロセッサ情報１０３Ｃに従って第５ステージを実行し、プロセッサ１０１Ｂは、実行可能キュー１０３Ａに従って第４ステージを実行する。
【０１１６】
続いて、図６Ｅに示されたように、プロセッサ１０１Ｂは、第４ステージを実行し、信号処理（図７のＳ７０２）を行い、第４ステージの実行完了情報を設定する（図７のＳ７０４）。
【０１１７】
続いて、図６Ｆに示されたように、プロセッサ１０１Ａは、第５ステージを実行し、信号処理（図７のＳ７０２）を行い、第５ステージの実行完了情報を設定する（図７のＳ７０４）。
【０１１８】
その結果、第１〜第５ステージに「実行済」が設定される。例えば、ステージデータ１０３Ｍが画像データである場合には、復号画像４１が生成される（図１を参照）。
【０１１９】
本発明の実施例１によれば、プロセッサ１０１Ａ〜Ｃは、同一のプロセッサ１０１Ａ〜Ｃが依存関係のあるステージを連続的に実行する場合にインバリデート又はライトバックを省略するので、第２メモリ１０３へのアクセス回数を低減することができ、ひいては、信号処理装置１００の性能を向上させることができる。
【図面の簡単な説明】
【０１２０】
【図１】本発明の実施例１に係る信号処理の一例である画像処理の概略を示す概略図である。
【図２】本発明の実施例１に係る信号処理装置１００の構成を示すブロック図である。
【図３】本発明の実施例１に係る予約ステージ情報１０３Ｂの概略を示す概略図である。
【図４】本発明の実施例１に係るステージ間の依存関係の概略を示す概略図である。
【図５】本発明の実施例１に係るＰＥタスク処理のプロセッサ１０１Ａの処理手順を示すフローチャートである。
【図６】本発明の実施例１に係る依存情報１０３Ｄの概略を示す概略図である。
【図７】本発明の実施例１に係るステージにおけるプロセッサ１０１Ａの処理手順を示すフローチャートである。
【図８】本発明の実施例１に係るインバリデート処理におけるプロセッサ１０１Ａの処理手順を示すフローチャートである。
【図９】本発明の実施例１に係るライトバック処理におけるプロセッサ１０１Ａの処理手順を示すフローチャートである。
【符号の説明】
【０１２１】
１００  信号処理装置
１０１Ａ〜Ｃ  プロセッサ
１０２Ａ〜Ｃ  第１メモリ
１０３  第２メモリ
１０３Ａ  実行可能キュー
１０３Ｂ  予約ステージ情報
１０３Ｃ  予約プロセッサ情報
１０３Ｄ  依存情報
１０３Ｅ  優先情報
１０３Ｆ  ＨＯＳＴタスクプログラム
１０３Ｇ  ＰＥタスクプログラム
１０３Ｈ〜Ｌ  第１〜第５ステージプログラム
１０３Ｍ  ステージデータ
１０４  入力装置
１０５  バス
【図１】
2008310639.tif 000003
【図２】
2008310639.tif 000004
【図３】
2008310639.tif 000005
【図４】
2008310639.tif 000006
【図５】
2008310639.tif 000007
【図６】
2008310639.tif 000008
【図７】
2008310639.tif 000009
【図８】
2008310639.tif 000010
【図９】
2008310639.tif 000011