(57)【要約】【課題】高速アクセス可能なプロセッサ近傍のＳＲＡＭは容量が小さいため、実際に展開できる処理は限定されている。また、被処理データのデータフローにおいて、ＤＭＡアクセスにより不要なデータも転送され、トラフィック増の要因ともなっている。【解決手段】プロセッサ（従プロセッサ）２と、プロセッサ２が実行するプログラムを書き込み可能なメモリ（ＳＲＡＭ）３と、被処理データを発送する発送元ブロック（ＳＤメモリカードインターフェース）５と、発送元ブロック５の処理進捗状況を確認する処理状況確認ブロック１１と、処理状況確認ブロック１１の確認結果に応じて動的にプログラムを生成するプログラム生成装置１２とを備え、プログラム生成装置１２が生成したプログラムをメモリ３に書き込み、プロセッサ２がメモリ３にアクセスしてプログラムを実行するように構成されている。【選択図】図１
2010165095.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサが実行するプログラムを書き込み可能なメモリと、
被処理データを発送する発送元ブロックと、
前記発送元ブロックの処理進捗状況を確認する処理状況確認ブロックと、
前記処理状況確認ブロックの確認結果に応じて動的にプログラムを生成するプログラム生成装置とを備え、
前記プログラム生成装置が生成したプログラムを前記メモリに書き込み、前記プロセッサが前記メモリにアクセスして前記プログラムを実行するように構成された演算処理装置。
【請求項２】
前記処理状況確認ブロックは、前記発送元ブロックにおける処理の完了の検出の有無を前記処理進捗状況とする請求項１に記載の演算処理装置。
【請求項３】
前記処理状況確認ブロックは、前記発送元ブロックにおける処理の異常の検出の有無を前記処理進捗状況とする請求項１に記載の演算処理装置。
【請求項４】
前記プログラム生成装置は、前記処理状況確認ブロックの確認結果から順番に前記プログラムを生成する請求項１から請求項３までのいずれかに記載の演算処理装置。
【請求項５】
前記プログラム生成装置は、事前に定められたプログラムの枠組みに前記被処理データを埋め込むことにより前記プログラムを生成する請求項１から請求項４までのいずれかに記載の演算処理装置。
【請求項６】
前記プログラム生成装置は、前記プロセッサのマイクロコードを前記プログラムとして生成する請求項１から請求項５までのいずれかに記載の演算処理装置。
【請求項７】
前記プログラム生成装置は、前記被処理データから必要なデータのみを取捨選択するダイレクトメモリアクセスを前記プログラムの処理内容とする請求項１から請求項６までのいずれかに記載の演算処理装置。
【請求項８】
前記プログラム生成装置は、前記被処理データを用いた演算処理を前記プログラムの処理内容とする請求項１から請求項６までのいずれかに記載の演算処理装置。
【請求項９】
前記プログラムを書き込み可能なメモリがハーバードアーキテクチャの命令バスに存在している請求項１から請求項８までのいずれかに記載の演算処理装置。
【請求項１０】
請求項１から請求項９までのいずれかに記載の演算処理装置と、イメージセンサと、映像出力装置とを備えたカメラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサの近傍に存在しているＳＲＡＭ等の小規模なメモリにプログラムを書き込んでプロセッサに高速処理を行わせる演算処理装置、特には複数の被処理データに関して演算を行うシステムＬＳＩに適した演算処理装置にかかわり、プロセッサにかかる負荷の軽減とともにデータアクセス回数を少なくしてトラフィックの軽減を図るための技術に関する。
【背景技術】
【０００２】
近年のシステムＬＳＩ（Large Scale Integration circuit）においては、複数のプロセッサに通信や音声・画像等のメディア処理の機能をもたせることによりシステムを構築している。プロセッサがアクセス可能なメモリは、システムＬＳＩの内部と外部に偏在している。最もアクセス速度が速いメモリは、プロセッサ近傍に存在するＳＲＡＭ（Static Random Access Memory）である。プロセッサ近傍に存在するＳＲＡＭは、高速動作させることに起因する制限が存在し、特にメモリサイズにおいては小規模とならざるを得ない。
【０００３】
従来のシステムＬＳＩでは、その時々に応じてプロセッサ近傍のＳＲＡＭに対してプロセッサ自身がプログラムを転送したりＤＭＡ（Direct Memory Access）でプログラムを転送することにより、高速処理を実現している。例えば、特許文献１に開示の通信処理装置においては、プロセッサに相当するＤＳＰ（Digital Signal Processor）の処理をＲＯＭ（Read Only Memory）に内蔵の遷移テーブルに照らし合わせて、ＳＲＡＭへのダウンロード内容を決定している。
【０００４】
メディア処理の対象となる音声・画像等のデータは、その巨大さからシステムＬＳＩの外部のＤＲＡＭ（Dynamic Random Access Memory）に保管される。音声・画像等のデータは通常、ＤＭＡの動作によりデータ発送元からＤＲＡＭへ保管されるが、ＤＲＡＭはリフレッシュ動作等のためＳＲＡＭに比べるとアクセス速度面で不利である。
【０００５】
昨今のシステムＬＳＩはプロセッサ搭載数が増加傾向にあり、さらなるＤＭＡの搭載はプロセッサバスの面積増大ならびにロジックサイズの増大を招く。そこで、例えば特許文献２に開示のプロセッサにおいては、プロセッサが内部に持つマイクロコードにＤＭＡ相当の機能を持たせることにより、面積の増大を防いでいる。
【０００６】
これら２つの特許文献に開示の技術は、共に条件分岐を含むプログラムが事前に用意されており、プロセッサ自身がプログラム中の条件分岐や設定値読み出しなどによって動作条件を判断するところが共通している。
【特許文献１】特開２００４−１３５０３０号公報
【特許文献２】特許第１７５８７５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に開示の方式においては、ダウンロード可能なプログラムは事前に定められたプログラムのみであるため、その実施は特定のシーケンスに限られてしまう。また、ダウンロードすべきプログラムを判定する際に演算が必要であり、ダウンロードの処理の周期が短くなった場合には、判定のための演算負荷が高まるため、効果的ではない。
【０００８】
また、特許文献２に開示の方式においては、プロセッサ内部のマイクロコードにＤＭＡ機能が実装されているため、ＤＭＡ動作設定値の読み出し動作にはバスアービトレーション（調停）が必要となり、速度的に不利となる。また、事前にマイクロコードに記載された内容しか実行できないため、可能なのは事実上ＤＭＡ処理のみに限られ、プロセッサのＡＬＵ（算術論理演算ユニット）などのリソースは処理中において活用されない。
【０００９】
これらの課題は、事前にプログラムが構成されていることを基因としており、プロセッサの処理能力やバストラフィックに影響を与えている。
【００１０】
ここで、非同期に外部よりデータ転送された場合の課題を検討する。図９は、あるシステムＬＳＩにおいて、外部より非同期にデータ転送が行われたときのメモリマップを示す。２１は転送データ領域、２２は有効データである。あるときは左側のような配置で有効データ２２が転送され、またあるときは右側のような配置となるため、有効データ２２が何処にあるかをプロセッサが判断する必要がある。このように外部から非同期にデータ転送が行われる場合に、特許文献２に記載の技術では、図１０のフローチャートや図１１の動作説明図に示すような処理が行われる。ステップＳ１１で、システムＬＳＩ３１は全受信データをＤＲＡＭ３２に書き込み、ステップＳ１２で、システムＬＳＩ３１はＤＲＡＭ３２において有効データを検索し、ステップＳ１３で、読み出した有効データをテンポラリ領域へコピーする。そしてステップＳ１４において、システムＬＳＩ３１はテンポラリ領域の有効データにアクセスしながら処理を開始する。以上の結果、システムＬＳＩ３１とＤＲＡＭ３２との間で４回のデータアクセスが行われ、その都度、同一のデータが行き来することとなり、バストラフィック上、効率が悪いものとなっている。
【００１１】
また、特許文献１に記載の技術のように、処理を最適化するようなプログラムを事前に作成して入れ替えを行う場合は、入れ替えを判断するためのプロセッサ負荷が無視できない。
【００１２】
本発明は、このような事情に鑑みて創作したものであり、プロセッサと、このプロセッサが実行するプログラムを書き込み可能なメモリとを備えた演算処理装置において、プロセッサにかかる負荷の軽減とともにデータアクセス回数を少なくしてトラフィックの軽減を図ることを目的としている。
【課題を解決するための手段】
【００１３】
本発明による演算処理装置は、
プロセッサと、
前記プロセッサが実行するプログラムを書き込み可能なメモリと、
被処理データを発送する発送元ブロックと、
前記発送元ブロックの処理進捗状況を確認する処理状況確認ブロックと、
前記処理状況確認ブロックの確認結果に応じて動的にプログラムを生成するプログラム生成装置とを備え、
前記プログラム生成装置が生成したプログラムを前記メモリに書き込み、前記プロセッサが前記メモリにアクセスして前記プログラムを実行するように構成されたものである。
【００１４】
この構成において、処理状況確認ブロックは被処理データを発送する発送元ブロック（後述する実施の形態の場合のインタフェースを参照）の処理進捗状況を確認し、確認結果をプログラム生成装置に送る。プログラム生成装置は受け取った確認結果に応じて動的にプログラムを生成する。このプログラム生成に際して、発送元ブロックの処理進捗状況に応じて生成するプログラムの構成をダイナミックに変更する。そして、生成したプログラムをプロセッサ（後述する実施の形態の場合の従プロセッサを参照）の近傍のＳＲＡＭ等のメモリへ書き込む。以上の結果、発送元ブロックの処理完了後には、実行すべきプログラムがすでにプロセッサ近傍のＳＲＡＭ等のメモリに書き込まれていることになるため、プロセッサ自体はメモリへ書き込むべきプログラムを判断する必要がない。併せて、発送元ブロックの処理進捗状況に動的に適応したプログラムが生成されるもので、その生成されたプログラムは柔軟性・即応性に富んでいて、不要なループや条件分岐などが動的に排除されたプログラムとなり、結果としてプロセッサの負荷が軽減される。また、プログラム生成の際に、必要に応じて最適化された演算処理を実行することも可能である。さらに、“非同期に転送されたデータを読み出しながら不要データの破棄を行うようなプログラム”を生成すれば、データアクセスの回数を減少させてトラフィックの軽減を図ることが可能となる。
【００１５】
上記構成の演算処理装置において、前記処理状況確認ブロックは、前記発送元ブロックにおける処理の完了の検出の有無を前記処理進捗状況とするという態様がある。このように構成すれば、転送完了後、例えば一定時間の経過をもって発送元ブロックに対する給電を停止するといった展開が可能で、消費電力削減に有利に作用する。
【００１６】
また上記の構成の演算処理装置において、前記処理状況確認ブロックは、前記発送元ブロックにおける処理の異常の検出の有無を前記処理進捗状況とするという態様がある。このように構成すれば、異常検出時に、例えば直ちにフェイルセーフ処理を行わせるといった展開が可能で、安全性確保に有利に作用する。
【００１７】
また上記構成の演算処理装置において、前記プログラム生成装置は、前記処理状況確認ブロックの確認結果から順番に前記プログラムを生成するという態様がある。このように構成すれば、プログラムの生成に際し、一度に全部を生成するのではなく、可能な部分から順番に生成するので、プログラム生成において待ち時間を短縮することが可能となる。
【００１８】
また上記構成の演算処理装置において、前記プログラム生成装置は、事前に定められたプログラムの枠組みに前記被処理データを埋め込むことにより前記プログラムを生成するという態様がある。このように構成すれば、枠組みを基にプログラムを生成するので、プログラム生成装置の回路規模の削減を有利に進めることが可能となる。
【００１９】
また上記構成の演算処理装置において、前記プログラム生成装置は、前記プロセッサのマイクロコードを前記プログラムとして生成するという態様がある。このように構成すれば、マイクロコードを用いるため、通常実行するプログラムで用いられる命令セットに限定されることなく、適用する要件に適した命令が任意に定義可能となり、命令数の削減を通じて処理時間の短縮を図ることが可能となる。
【００２０】
また上記構成の演算処理装置において、前記プログラム生成装置は、前記被処理データから必要なデータのみを取捨選択するダイレクトメモリアクセスを前記プログラムの処理内容とするという態様がある。このように構成すれば、誤り検出が必要な音声情報の処理を効率良く実行させる上で有利に展開する。
【００２１】
また上記構成の演算処理装置において、前記プログラム生成装置は、前記被処理データを用いた演算処理を前記プログラムの処理内容とするという態様がある。このように構成すれば、必要に応じて最適化された演算処理を実行するプログラムの生成が可能となる。
【００２２】
また上記構成の演算処理装置において、前記プログラムを書き込み可能なメモリがハーバードアーキテクチャの命令バスに存在しているという態様がある。このように構成すれば、プログラム生成装置は生成するプログラムにおいて命令中にデータを混在させることにより、ハーバードアーキテクチャをとるプロセッサの命令バス側に存在するメモリ（命令キャッシュ）のみにアクセスすればよく、バスインターフェース構成が簡略化される。さらに、データバスへのアクセスの削減を通じてデータバス側のトラフィックの削減が可能となり、即値以外のデータアクセスでは必要なアドレス演算についても不要とできるため、高速処理が可能となる。
【００２３】
また、本発明によるカメラシステムは、上記のいずれかの演算処理装置と、イメージセンサと、映像出力装置とを備えたものである。
【発明の効果】
【００２４】
本発明によれば、発送元ブロックの処理完了後には、実行すべきプログラムがすでにプロセッサ近傍のＳＲＡＭ等のメモリに書き込まれていることになるため、プロセッサ自体はメモリへ書き込むべきプログラムを判断する必要がなく、併せて、発送元ブロックの処理進捗状況に動的に適応し柔軟性・即応性に富んでいて不要なループや条件分岐などを動的に排除したプログラムを生成するので、プロセッサの負荷を軽減することができる。また、プログラム生成の際に、必要に応じて最適化された演算処理を実行することも可能で、さらに、非同期に転送されたデータを読み出しながら不要データの破棄を行うようなプログラムを生成することにより、データアクセスの回数を減少させてトラフィックの軽減を図ることができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明にかかわる演算処理装置の実施の形態を図面を用いて詳細に説明する。
【００２６】
（実施の形態１）
図１は本発明の実施の形態１における演算処理装置の構成を示すブロック図である。
【００２７】
本実施の形態の演算処理装置は、全体を統括する役目を担う主プロセッサ１と、メディア系処理を担う従プロセッサ２とを備えている。従プロセッサ２が特許請求の範囲にいう「プロセッサ」に相当している。主プロセッサ１と従プロセッサ２は、互いに情報を授受し合うための信号線により結合されている。従プロセッサ２は、ハーバードアーキテクチャをとる高性能な演算が実施可能なプロセッサである。ハーバードアーキテクチャというのは、キャッシュメモリを命令用とデータ用に分け（命令キャッシュ・データキャッシュ）、プロセッサが命令キャッシュとデータキャッシュに別々にアクセスするもので、同時実行可能命令を探し出しての並列処理による高速化やパイプライン処理による高速化を行うアーキテクチャのことである。
【００２８】
主プロセッサ１および従プロセッサ２のそれぞれはＲＯＭ（図示せず）を内部に備えており、通常はＲＯＭに書き込まれたプログラムを実行する。
【００２９】
従プロセッサ２は、近傍に高速アクセス可能なＳＲＡＭ３を備えている。ＳＲＡＭ３が特許請求の範囲にいう「プロセッサが実行するプログラムを書き込み可能なメモリ」に相当している。ＳＲＡＭ３上に展開されたプログラムは高速な処理の実行が可能である。しかしＳＲＡＭ３は、一度に１つのプログラムしか収められないほど容量が小さいものとなっている。
【００３０】
さらに、この演算処理装置は、事前に情報圧縮された音声付動画情報を収めたＳＤ（Secure Digital）メモリカード４と、ＳＤメモリカード４のアクセスを担うＳＤカードインターフェース５と、データ記憶等に用いられるＤＲＡＭ６と、ＤＲＡＭ６のアクセスを担うＤＲＡＭインターフェース７を備えている。ＤＲＡＭ６は、リフレッシュ動作等のため、ＳＲＡＭ３に比べるとアクセス速度が遅い。情報圧縮された音声付動画情報の中で音声情報に関しては、誤り検出符号が付加されており、誤り検出が可能である。ＳＤカードインターフェース５は、特許請求の範囲にいう「被処理データを発送する発送元ブロック」に相当している。
【００３１】
また、ネットワークインターフェース８は、図示されていないネットワークに接続された音声付動画配信サーバより非圧縮の音声付動画情報を読み取る機能を備えている。このネットワークインターフェース８も、特許請求の範囲にいう「被処理データを発送する発送元ブロック」に相当している。
【００３２】
映像出力回路９は、主プロセッサ１より動画情報を受け取るとともに、従プロセッサ２より情報解凍された音声情報を受け取ることにより、表示モニタにより音声付動画の視聴を可能とする。主プロセッサ１と従プロセッサ２とＳＤカードインターフェース５とＤＲＡＭインターフェース７とネットワークインターフェース８と映像出力回路９の間はそれぞれバス１０で接続されており、相互にアクセス可能である。
【００３３】
ＳＤカードインターフェース５に接続された処理状況確認ブロック１１は、ＳＤカードインターフェース５の処理進捗状況を常に確認可能である。また、ＳＲＡＭ３に接続されたプログラム生成装置１２は、処理状況確認ブロック１１より通知された情報を基にして動的に生成すべきプログラムを判断し、生成したプログラムをＳＲＡＭ３へ書き込むように構成されている。処理状況確認ブロック１１の処理状況確認タイミングは供給されるクロックの周期に応じて決められるが、本発明はこれに制限されるものではない。
【００３４】
ＳＤカードインターフェース５は、ＳＤメモリカード４からデータを読み出す際に、スロットへの挿入確認、ＳＤメモリカード４の正常動作確認、データの存在確認といった段階を経て、実際のアクセスが行われる。また実際にアクセスを行う際に、その時点で転送されている転送サイズも確認可能であり、転送完了も当然確認可能である。また、転送完了後、一定時間の経過でＳＤメモリカード４に対する給電を停止する。
【００３５】
本実施の形態において、処理状況確認ブロック１１は転送完了に関して確認を行い、確認した時点より、プログラム生成装置１２がプログラムの生成を行うが、必ずしも転送完了後に適用する必要はなく、例えば転送完了を待たずにある事前に定められた転送サイズを超えた時点でプログラムの生成を行うなど、それぞれの形態に応じて適用が可能である。
【００３６】
例えば、転送完了する１ワード前からプログラム生成を開始しても問題とならない場合においては、１ワード前からプログラム生成を開始した方がパフォーマンス上有利である。よって、処理状況確認ブロック１１による転送完了確認の１ワード前からプログラム生成を始めることを選択してもよい。また、ＳＤメモリカード４へのデータの存在確認が正常に完了した時点からプログラムを生成しても問題とならない場合は、プログラム生成をその時点から開始してもよい。
【００３７】
すなわち、処理進捗状況に応じてのプログラム生成とは、発送元ブロックの処理のタイミングをイベントとしてプログラムを生成するものである。よって、ＳＤメモリカード４に収められている音声付動画情報は、主プロセッサ１と従プロセッサ２により情報解凍され、最終的に映像出力回路９に出力されて視聴されることとなる。また、ネットワークインターフェース８経由でアクセスされる音声付動画情報は、主プロセッサ１と従プロセッサ２により映像出力回路９に出力される。
【００３８】
図２は、本実施の形態で説明する演算処理装置で行う処理のフローチャートである。
【００３９】
すなわち、ステップＳ１において、ＳＤメモリカード４から情報圧縮された音声付動画情報を読み出してＤＲＡＭ６へ書き込む。次いでステップＳ２において、映像情報と音声情報をそれぞれ別領域にコピーして分離する。次いでステップＳ３において、音声情報の有効領域を探索し、ステップＳ４において有効領域の音声情報の誤り検出を行う。
【００４０】
音声情報に関しては図９にて示されるように、有効領域と無効領域が存在するが、常にその位置は一定ではなく、都度探索を行う必要がある。探索は、有効領域に事前に定められたあるヘッダパタンを見つけることにより行われる。有効領域の大きさは事前に定められた一定値である。
【００４１】
図３は、実際の処理手順を説明する図面である。これを図１２に示す比較例との対比で説明する。図１２（ａ），（ｂ），（ｃ）は本発明を適用しなかった場合であり、図３（ａ），（ｂ）は本発明を適用した場合の手順を示している。
【００４２】
まず、図１２を用いて本発明を適用しなかった場合について説明する。なお、この場合においては、より重要とされるネットワークインターフェース８に関する処理を行うプログラムが事前にＳＲＡＭ３に格納されているものとする。
【００４３】
まず、ＳＤメモリカード４より読み出された情報圧縮された音声付動画情報は、ＤＲＡＭ６に一旦展開される。図１２（ａ）は、そのときのＤＲＡＭ６のメモリマップを示す。
【００４４】
その後、主プロセッサ１はＤＲＡＭ６に展開された音声付動画情報を映像情報と音声情報に分離してＤＲＡＭ６の別領域に展開する。この状態を示したメモリマップが図１２（ｂ）である。
【００４５】
一方、主プロセッサ１は展開が完了したことを従プロセッサ２に通知する。従プロセッサ２は、展開された音声データの有効領域の探索ならびに誤り検出を行うため、音声データ全域の読み出しを行う。この状態を示したメモリマップが図１２（ｃ）である。
【００４６】
よって、本発明を適用しなかった場合は、情報圧縮された音声付動画のアクセスが２回、映像情報へのアクセスが１回、音声情報へのアクセスが２回である。
【００４７】
次に、図３を用いて本発明を適用した場合について説明する。
【００４８】
ＳＤメモリカード４より読み出された情報圧縮された音声付動画情報は、上記同様にＤＲＡＭ６に一旦展開される。図３（ａ）はそのときのメモリマップを示す。
【００４９】
ＳＤカードインターフェース５の展開完了を受けて、処理状況確認ブロック１１は展開完了の旨をプログラム生成装置１２に通知する。ＳＤメモリカード４に収められた音声情報は誤り検出が必要である。そこで、プログラム生成装置１２は、“有効領域の探索ならびに誤り検出を行いながらＤＲＡＭへ展開を行うプログラム”を生成し、ＳＲＡＭ３へ書き込む。すなわち、プログラム生成装置１２は、有効領域の探索のためのヘッダ探索処理と、データの別領域へのコピーを行うコピー処理からなる取捨選択機能つきＤＭＡプログラムと、それと並行して、誤り検出処理を行う誤り検出プログラムを生成する。
【００５０】
その後、割り込みを従プロセッサ２に対して発生させ、従プロセッサ２はＳＲＡＭ３に書き込まれたプログラムを実行し、誤り検出とＤＲＡＭ６への展開を行う。
【００５１】
一方、主プロセッサ１については、従来例と同様の処理を行う。
【００５２】
よって本発明を適用した場合は、情報圧縮された音声付動画のアクセスが２回、映像情報へのアクセスが１回、音声情報へのアクセスが１回であり、ＤＲＡＭ６へのアクセス回数が減るため、高速化することができる。
【００５３】
本発明を適用した場合においても、ネットワークインターフェース８からの音声付動画情報の再生を実施する場合においては誤り検出が不要なため、プログラム生成装置１２は、誤り検出を行わずにデータの転送処理のみを行うダイレクトメモリアクセス形式のプログラムを作成する。
【００５４】
ＳＲＡＭ３へのアクセスは高速であるため、本発明を適用しなかった場合のように、事前にネットワークインターフェース８に関する処理をＳＲＡＭ３に展開しているのと処理能力に実質上の差異はない。
【００５５】
次にネットワークインターフェース８からの音声付動画情報の再生の際に生成されるプログラムについて説明する。
【００５６】
図４の左側は、音声付動画情報の再生の際に生成されるプログラムである。Ｌｏａｄ＿ｖ命令は即値読み出し命令であり、値“０ｘ１２３４”（１６進数表記）が従プロセッサ２に備えられている汎用レジスタＧＰ０に読み出され、次にｓｔｏｒｅ命令により、汎用レジスタＧＰ０に収められた“０ｘ１２３４”がｔｖｏｕｔ＿ｏｕｔａｄｒで示される出力用アドレスに書き込まれて再生を実現している。
【００５７】
このプログラムを作成するためにプログラム生成装置１２は、図４の右側に示される事前に定められた枠組みを備えている。ｎｅｔｗｏｒｋ［０］，ｎｅｔｗｏｒｋ［１］，ｎｅｔｗｏｒｋ［２］で示される変数は、ネットワークインターフェース８が備えているデータ読み出し用のアドレスである。プログラム生成装置１２は、ネットワークインターフェース８の該当レジスタの値を読み出してプログラムを生成する。
【００５８】
このように枠組みを基にプログラムを生成することにより、プログラム生成装置１２の回路規模を削減できる。
【００５９】
なお本発明においては、実際にプログラムを生成する際に、必ずしもプログラム生成装置１２が値を読み出してプログラム中に即値としてデータを混在させることを必須とするものではない。もっとも、本実施の形態における従プロセッサ２はハーバードアーキテクチャをとるために、データバスアクセスを減らすこと、ならびに命令バス側のみにＳＲＡＭを搭載する点から、この形式をとる。すなわち、プログラム生成装置１２が命令中にデータを混在させることにより、ハーバードアーキテクチャをとるプロセッサの命令バス側に存在するメモリのみにアクセスすればよく、簡略なバスインターフェース構成で本発明を実施できる。さらに、データバスへのアクセスを削減することによりデータバス側のトラフィックを削減でき、即値以外のデータアクセスでは必要なアドレス演算についても不要とできるため、高速に実施可能となる。
【００６０】
以上のように構成することにより、回路規模の増大を抑えながら、従プロセッサ２の近傍のＳＲＡＭ３を活用して最適なデータフローを実現し、全体の処理を高速化できる。
【００６１】
また、命令中にデータを混在させることにより、特にハーバードアーキテクチャのプロセッサを持つシステムでは最適な実施が可能となる。
【００６２】
（実施の形態２）
次に本発明の実施の形態２における演算処理装置について図５を用いて説明する。図５は、本発明の実施の形態２における演算処理装置の構成を示すブロック図である。実施の形態２では、実施の形態１における従プロセッサ２で構成された処理系をとる。
【００６３】
従プロセッサ２、ＳＲＡＭ３、ＤＲＡＭ６、ＤＲＡＭインターフェース７、ネットワークインターフェース８、処理状況確認ブロック１１およびプログラム生成装置１２に関しては、実施の形態１の場合と同じである。実施の形態１と異なるのは、映像出力回路９の代わりに音声出力回路１３が備えられ、本実施の形態の機器ではネットワーク経由で送られた情報圧縮された音声情報を音声出力回路１３を通して聴くことを目的としている。
【００６４】
なお、情報圧縮された音声情報は誤り検出符号が付加されており、ある一定期間ごとに情報圧縮されたパケット構造を有している。また、左、右からなるステレオの２ｃｈの楽曲や、左、右、中央、左後方、右後方ならびに低音部からなる６ｃｈの楽曲が転送され、パケット構造の中にその情報が記載されている。
【００６５】
また、ネットワークインターフェース８で受信された音声情報は、ＤＲＡＭ６に送られると同時にパケットチェック回路１４に送られる。パケットチェック回路１４は、送られてきた音声情報のパケット構造の中に含まれている情報を解析し、２ｃｈの楽曲であるか６ｃｈの楽曲であるかを判別する。また、同時に音声情報のパケットに付加されている誤り検出符号に基づいて、送られてきた音声情報に誤りがないかを検出している。パケットチェック回路１４が特許請求の範囲にいう「被処理データを発送する発送元ブロック」に相当している。
【００６６】
なお、２ｃｈの楽曲であるか６ｃｈの楽曲であるかの判断はパケットの先頭部に存在するため、最後までネットワークインターフェース８が受信する前に判別可能であるのに対し、誤り検出については最後まで受信が終わらないと検出ができない。また、パケット判断結果は３通り存在する。すなわち、２ｃｈ信号、６ｃｈ信号および誤り検出によるエラーである。
【００６７】
図６は、プログラム生成装置１２が生成するプログラムを示している。図７は、処理状況確認ブロック１１およびプログラム生成装置１２が実際にプログラムを生成するときのフローチャートである。
【００６８】
図６に示されるものはプログラムの例であり、パケットチェック回路１４の判断が２ｃｈ信号であった場合は、Ａのプログラムが生成され、判断が６ｃｈの信号であった場合はＢのプログラムが生成され、判断が誤りを検出した場合はＣのプログラムが生成される。
【００６９】
このプログラム生成は、図７のフローチャートに従って行われる。
【００７０】
ステップＳ１において、パケットの先頭部が受信完了したかどうかを判断し、受信完了したときはステップＳ２に進んで、２ｃｈまたは６ｃｈの判断を行う。２ｃｈと判断したときはステップＳ３に進んで、２ｃｈのプログラムＡを生成し、６ｃｈと判断したときはステップＳ４に進んで、６ｃｈのプログラムＢを生成する。このように、先行してプログラムを生成することが可能である。
【００７１】
次いでステップＳ５において転送が完了したか否かを判断し、転送完了をまってステップＳ６に進み、パケット受け取り完了時に誤りを検出したか否かを判断する。そして、誤りを検出したときは、ステップＳ７に進んで、先に生成した２ｃｈまたは６ｃｈのプログラムを０書き込みのプログラムで上書きしてキャンセルする形態をとる。
【００７２】
すなわち、本実施の形態における２ｃｈのプログラム生成をある処理イベントについて判断して実行し、最後に誤り検出の結果によってプログラムを生成するように、プログラムの生成を順番に行う。つまり、一度に全部のプログラムを生成するのではなく、可能な部分からプログラムを生成する。これにより、プログラム生成のための待ち時間を短縮することができる。
【００７３】
なお、キャンセルの方法は必ずしも上書きに限られるものではなく、別のメモリ空間上に書き込んで差し替える等の方法をとってもよい。
【００７４】
また、図６で示されるプログラムＡでは２ｃｈの信号であるため、情報解凍処理であるＤｅｃｏｄｅ処理が２個並べられ、プログラムＢでは６ｃｈの信号であるため、Ｄｅｃｏｄｅ処理が６個並べられている。
【００７５】
一方、プログラムＣではエラーが発生しているため、音が出ないように０書き込み処理を行う。
【００７６】
このようにパケットチェック回路１４の判断結果に応じたプログラムを生成することにより、通常必要となるループ処理を削減できる。また、パケットチェック回路１４の判断結果がそのまま生成されたプログラムに反映されるため、条件分岐やプログラム上でのパケットチェック回路１４に対するレジスタアクセスが不要となる。
【００７７】
これらにより、本実施の形態においては処理の高速化を実現することができる。
【００７８】
次にパケットチェック回路１４の音声情報受信時の振る舞いについて説明する。
【００７９】
ネットワークインターフェース８より受信開始の割り込み信号を受けると、パケットチェック回路１４は順次パケットを受け取りながら、パケット解析と誤り検出演算を並行して実施する。
【００８０】
パケット解析は、パケットの先頭部が転送された時点で判別が可能であるため、パケットのすべてが転送される前に、プログラム生成が可能である。そのため、すべて受信が完了する前にプログラム生成装置１２は、パケットチェック回路１４が２ｃｈと判断した場合はプログラムＡをＳＲＡＭ３へ書き込み、６ｃｈと判断した場合はプログラムＢをＳＲＡＭ３へ書き込む。
【００８１】
最終的に誤りを検出し、エラーであった場合は、プログラムＣをＳＲＡＭ３へ書き込むが、誤り検出結果がエラーでなかった場合はそのままとなる。
【００８２】
このため、従プロセッサ２は、プログラム生成装置１２がプログラムＡまたはプログラムＢをＳＲＡＭ３へ書き込むための時間を待つことなく、処理の実行可能である。
【００８３】
以上のように構成することにより、回路による判断が生成されるプログラムに直接反映されるため高速化される。また、段階的にプログラム生成を行うため、プログラム生成装置１２のＳＲＡＭ書き込み待ち時間を削減できる。
【００８４】
（実施の形態３）
次に本発明の実施の形態３における演算処理装置について説明する。実施の形態３においては、構成上は実施の形態１と同一の構成であり、図１の構成をとる。
【００８５】
実施の形態３では、従プロセッサ２にとって、ＳＲＡＭ３がマイクロコードの収められている領域として認識される。その他については実施の形態１と同様である。
【００８６】
マイクロコードで実装されているため、本発明とは関係なく通常実行するプログラムで用いられる命令セットに限定されることなく、本発明を適用する要件に適した命令が任意に定義可能となる。
【００８７】
例えば、ＤＲＡＭ６からの読み出し、誤り検出の演算、書き込みを行う場合は、通常の命令セットにおいては、読み出し、演算、書き込みの少なくとも３命令が必要となる。ところが、従プロセッサ２において読み出しで用いるのはバスインターフェース１０の部分であり、演算で用いられるのはＡＬＵ等の演算部分である。そのため、本実施の形態においては、読み出しと演算を並列に行う命令を定義することにより、命令数を削減し、処理時間を短縮することができる。
【００８８】
このように構成することにより、従プロセッサ２が提供している命令セットでは実現が難しい、ないしは実現に処理時間がかかるような処理に関しても、きめ細かく従プロセッサ２のリソースを制御することにより、高速処理が実現可能となる。
【００８９】
（実施の形態４）
次に本発明の実施の形態４におけるカメラシステムについて図８を用いて説明する。図８は、本発明の実施の形態４におけるカメラシステムの構成を示すブロック図である。
【００９０】
図８に示すカメラ２０は、実施の形態１に記載の演算処理装置において、ネットワークインターフェース８の代わりに画像処理回路１５を搭載し、さらにタッチパネル１７を搭載している。画像処理回路１５には映像を撮影するためのカメラユニット１６が接続され、映像出力回路９には映像を表示する液晶ディスプレイ１８と、２ｃｈや６ｃｈなどの音声を再生可能なマルチチャネルスピーカ１９が接続されている。
【００９１】
カメラユニット１６には、図示されていないイメージセンサやレンズ、マイク等を搭載しており、音声、映像情報を画像処理回路１５に入力する。また、カメラユニット１６におけるスイッチにより、ユーザは音声を２ｃｈ記録する場合と６ｃｈ記録する場合で切り替えることが可能である。また、ユーザからのタッチパネル１７の操作にて、撮影したり、ＳＤメモリカード４に保管されている音声付動画情報を再生可能である。撮影時には、主プロセッサ１にて画像圧縮を行い、従プロセッサ２にて音声圧縮を行う。
【００９２】
処理状況確認ブロック１１は、撮影時においては画像処理回路１５の状態を確認し、再生時にはＳＤカードインターフェース５の状態を確認する。
【００９３】
プログラム生成装置１２は、再生時においては実施の形態１と同一のプログラム生成を行い、撮影時においては撮影時特有のプログラム生成を行う。すなわち、２ｃｈ記録の場合には２ｃｈのプログラムを生成し、６ｃｈ記録の場合には６ｃｈのプログラムを生成する。
【００９４】
このように、本発明を適用したシステムの状態に応じてプログラム生成の発生要因を切り替えることが可能であり、特にカメラシステムのように明確に状態の切り替わるものには適用が行いやすい。
【００９５】
なお、本発明の実施においては、同時に複数の発生要因を受け付けて、優先度に応じてプログラムの生成を行うことを排除しない。
【００９６】
さらに、本発明においては、カメラとしての機能以外に別の機能を有することを排除しない。
【産業上の利用可能性】
【００９７】
本発明の演算処理装置は、動的にプログラムを生成可能で様々な処理を実行する必要のあるシステムＬＳＩへの適用が有用である。また、プロセッサとその他の装置を分離したシステムボード等への用途にも応用できる。
【図面の簡単な説明】
【００９８】
【図１】本発明の実施の形態１および実施の形態３における演算処理装置の構成を示すブロック図
【図２】本発明の実施の形態１の演算処理装置の動作を示すフローチャート
【図３】本発明の実施の形態１の演算処理装置における処理毎のメモリマップ
【図４】本発明の実施の形態１の演算処理装置で生成されたプログラムならびに枠組み
【図５】本発明の実施の形態２における演算処理装置の構成を示すブロック図
【図６】本発明の実施の形態２の演算処理装置で生成されたプログラム
【図７】本発明の実施の形態２の演算処理装置の動作を示すフローチャート
【図８】本発明の実施の形態４におけるカメラシステムの構成を示すブロック図
【図９】従来の技術における演算処理装置で非同期にデータ転送された直後のメモリマップ
【図１０】従来の技術における演算処理装置動作を示すフローチャート
【図１１】従来の技術における演算処理装置でのＤＲＡＭに対するアクセスの動作説明図
【図１２】比較例における処理毎のメモリマップ
【符号の説明】
【００９９】
１  主プロセッサ
２  従プロセッサ（プロセッサ）
３  ＳＲＡＭ（メモリ）
４  ＳＤメモリカード
５  ＳＤカードインターフェース（発送元ブロック）
６  ＤＲＡＭ
７  ＤＲＡＭインターフェース
８  ネットワークインターフェース（発送元ブロック）
９  映像出力回路
１０  バス
１１  処理状況確認ブロック
１２  プログラム生成装置
１３  音声出力回路
１４  パケットチェック回路（発送元ブロック）
１５  画像処理回路
１６  カメラユニット
１７  タッチパネル
１８  液晶ディスプレイ
１９  マルチチャネルスピーカ
２０  カメラ
２１  転送データ領域
２２  有効データ
３１  システムＬＳＩ
３２  ＤＲＡＭ
【図１】
2010165095.tif 000003
【図２】
2010165095.tif 000004
【図３】
2010165095.tif 000005
【図４】
2010165095.tif 000006
【図５】
2010165095.tif 000007
【図６】
2010165095.tif 000008
【図７】
2010165095.tif 000009
【図８】
2010165095.tif 000010
【図９】
2010165095.tif 000011
【図１０】
2010165095.tif 000012
【図１１】
2010165095.tif 000013
【図１２】
2010165095.tif 000014