(57)【要約】【課題】アクセスされるべきアドレスが演算結果に依存する演算データのアドレス生成にも対応可能でありながら、演算部の処理パフォーマンスを高めたい。【解決手段】制御部２０は、機能の変更が可能な演算部１０に、設定データを供給する。記憶部３０は、演算部１０で処理される演算データを保持する。記憶部３０内の第１記憶領域は、制御部２０からアドレスが供給される。記憶部３０内の第２記憶領域は、演算部１０からアドレスが供給される。【選択図】図１
2010097356.tif 000002
【特許請求の範囲】
【請求項１】
機能の変更が可能な演算部と、
前記演算部に、設定データを供給する制御部と、
前記演算部で処理される演算データを保持する記憶部と、を備え、
前記記憶部は、
前記制御部からアドレスが供給される第１記憶領域と、
前記演算部からアドレスが供給される第２記憶領域と、
を含むことを特徴とする演算処理装置。
【請求項２】
前記第１記憶領域は、アクセスされるべきアドレスが固定された変数を記憶し、前記第２記憶領域は、前記演算部による演算結果に応じてアクセスされるべきアドレスが決定される変数を記憶することを特徴とする請求項１に記載の演算処理装置。
【請求項３】
前記第１記憶領域および前記第２記憶領域には、前記制御部から書き込みと読み出しを制御する信号が供給されることを特徴とする請求項１または２に記載の演算処理装置。
【請求項４】
前記演算部は、複数の演算器を含み、
前記複数の演算器のうちの、一つの演算器の前記第１記憶領域へのアクセスと、別の演算器の前記第２記憶領域へのアクセスが同時に可能であることを特徴とする請求項１から３のいずれかに記載の演算処理装置。
【請求項５】
前記演算部は、複数の演算器がアレイ状に配置されたリコンフィギュラブル回路を構成することを特徴とする請求項１から４のいずれかに記載の演算処理装置。
【請求項６】
無線信号を送信または受信する通信部と、
前記通信部により送信または受信される無線信号に重畳されるデータ信号を処理する請求項１から５のいずれかに記載の演算処理装置と、
を備えることを特徴とする通信装置。
【請求項７】
放送波を受信する受信部と、
前記受信部により受信される放送波に重畳されているデータ信号を処理する請求項１から５のいずれかに記載の演算処理装置と、
前記演算処理装置により処理されたデータ信号にもとづく、画像または音声の少なくとも一方を出力する出力部と、
を備えることを特徴とする放送受信装置。
【請求項８】
請求項１から５のいずれかに記載の演算処理装置で処理されるべき設定データを、ソースプログラムに所定の変換処理を施して生成する情報処理装置であって、
ソースプログラムを解析し、アクセスされるべきアドレスが実行時に決定される変数を特定する解析部と、
前記解析部により特定された変数が格納される前記第２記憶領域のアドレスを前記演算部に生成させるための設定データを生成する設定データ生成部と、
を備えることを特徴とする情報処理装置。
【請求項９】
前記設定データ生成部は、前記アクセスされるべきアドレスが実行時に決定される変数以外の変数が格納される前記第１記憶領域のアドレスを前記制御部から供給させるための設定データを生成することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
請求項１から５のいずれかに記載の演算処理装置で処理されるべき設定データを、ソースプログラムに所定の変換処理を施して生成する情報処理装置であって、
ソースプログラムを解析し、アクセスされるべきアドレスが実行時に決定される変数を特定する解析部と、
前記解析部により特定された変数が格納されるべき前記第２記憶領域のアドレスを生成するための演算式を生成する演算式生成部と、
前記ソースプログラムを基礎とし、前記演算式生成部により生成された演算式が含まれる中間プログラムを生成する中間プログラム生成部と、
前記中間プログラム生成部により生成された中間プログラムから、前記演算部に含まれる複数の演算器の構成に対応したデータフローグラフを生成するデータフローグラフ生成部と、
前記アクセスされるべきアドレスが実行時に決定される変数を前記第２記憶領域に割り当て、前記変数以外の変数を前記第１記憶領域に割り当てる記憶領域割当部と、
前記データフローグラフ生成部により生成されたデータフローグラフおよび前記記憶領域割当部による変数の割り当てをもとに、前記設定データを生成する設定データ生成部と、を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の演算器を有する演算処理装置、それを搭載した通信装置および放送受信装置、ならびにその演算処理装置に設定すべき設定データを生成する情報処理装置に関する。
【背景技術】
【０００２】
近年、複数の演算器（以下適宜、ＡＬＵ（Arithmetic Logic Unit）という）を有する演算部を備える演算処理装置（リコンフィギュラブル装置）の開発が進められている（たとえば、特許文献１、２参照）。このような演算処理装置では、制御部から上記演算部に設定データ（以下適宜、コマンドデータという）が供給されることにより、当該演算部内のＡＬＵおよび接続部が制御され、当該演算部が全体として所期の回路を構成する。
【特許文献１】特開２００７−２１３５９４公報
【特許文献２】特開２００６−６５７８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述したような演算処理装置では、上記制御部から、演算データを保持すべき記憶領域（以下適宜、データＲＡＭという）のアドレスをデータＲＡＭに発行することができる。上記制御部から発行する場合、上記演算部から発行する場合より、上記演算部からデータＲＡＭ内への演算データのアクセス時間を短縮することができる。前者では上記演算部で上記アドレスを生成する必要がないためである。また、そのアドレス生成に上記演算部内のＡＬＵが使用されないため、演算効率も後者より前者のほうが高い。
【０００４】
しかしながら、配列データなど、上記演算部での演算結果によってアクセスされるべきアドレスが変更される演算データについては、上記制御部から上記アドレスを発行することが困難である。
【０００５】
本発明はこうした状況に鑑みなされたものであり、その目的は、アクセスされるべきアドレスが演算結果に依存する演算データのアドレス生成にも対応可能でありながら、演算部の処理パフォーマンスを高めることができる演算処理装置、それを搭載した通信装置および放送受信装置を提供することにある。また別の目的は、その演算処理装置に設定すべき設定データを生成することができる情報処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様の演算処理装置は、機能の変更が可能な演算部と、演算部に、設定データを供給する制御部と、演算部で処理される演算データを保持する記憶部と、を備える。記憶部は、制御部からアドレスが供給される第１記憶領域と、演算部からアドレスが供給される第２記憶領域と、を含む。
【０００７】
本発明の別の態様は、情報処理装置である。この装置は、演算処理装置で処理されるべき設定データを、ソースプログラムに所定の変換処理を施して生成する情報処理装置であって、ソースプログラムを解析し、アクセスされるべきアドレスが実行時に決定される変数を特定する解析部と、解析部により特定された変数が格納される第２記憶領域のアドレスを演算部に生成させるための設定データを生成する設定データ生成部と、を備える。
【０００８】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、アクセスされるべきアドレスが演算結果に依存する演算データのアドレス生成にも対応可能でありながら、演算部の処理パフォーマンスを高めることができる。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の実施の形態に係る演算処理装置１００の構成を示すブロック図である。演算処理装置１００は、機能の変更が可能なリコンフィギュラブル装置を構成する。演算処理装置１００は、演算部１０、制御部２０および記憶部３０を備える。制御部２０はコマンドＲＡＭ２１を含む。記憶部３０は第１記憶領域および第２記憶領域を含む。
【００１１】
演算部１０は、制御部２０から供給されるコマンドデータに基づいて所定の演算を実行する。演算部１０は、当該コマンドデータに応じて動的に機能の変更が可能なリコンフィギュラブル回路を構成する。たとえば、複数の演算器がアレイ状に配置された多段構成の演算器アレイ回路で構成される。この演算器アレイ回路内の、すべてまたは一部の演算器は、第１記憶領域および第２記憶領域にアクセス可能である。また、当該複数の演算器のうちの、一つの演算器の第１記憶領域へのアクセスと、別の演算器の第２記憶領域へのアクセスが実質的に同時に可能である。なお、当該演算器アレイ回路の詳細な構成は後述する。
【００１２】
制御部２０は、コマンドＲＡＭ２１に保持されるコマンドデータを演算部１０に供給する。このコマンドデータは、ソースプログラムから後述する情報処理装置２００（図３参照）による所定の変換処理を経て生成されたデータであってもよい。この変換処理の詳細は後述する。
【００１３】
記憶部３０は、演算部１０で処理される演算データを保持する。この演算データは、最終的な演算結果を示すデータに限らず、演算途中のデータも含まれる。また、この演算データは、変数であってもよいし、定数であってもよい。第１記憶領域は、制御部２０からアドレスが供給され、演算部１０からアドレスが供給されない。ここで、制御部２０から第１記憶領域にアドレスが供給されるタイミングと、演算部１０から演算データが第１記憶領域に書き込まれるタイミングまたは第１記憶領域から演算データが演算部１０に読み出されるタイミングとは同期がとれるように設定される。
【００１４】
第２記憶領域は、演算部１０からアドレスが供給され、制御部２０からアドレスが供給されない。すなわち、演算部１０から演算データが第２記憶領域に書き込まれるとき、および第２記憶領域から演算データが演算部１０に読み出されるとき、演算部１０により生成されたアドレスが第２記憶領域に供給される。第１記憶領域および第２記憶領域の両方とも、制御部２０から書き込みと読み出しを制御する信号（以下、本明細書および図面ではイネーブル信号と表記する）が供給される。このイネーブル信号がアクティブのとき、第１記憶領域および第２記憶領域のそれぞれにおける、書き込み動作が行われ、非アクティブのとき、読み出し動作が行われる。また、当該信号は、書き込みと読み出しの両方を禁止する信号を含んでもよい。
【００１５】
第２記憶領域は、演算部１０による演算結果に応じてアクセスされるべきアドレスが決定される変数、ここでは主に配列変数を記憶する。たとえば、第２記憶領域は、インタリーブ処理の並べ替え用配列データやサインテーブルを格納する。実施の形態に係る演算処理装置１００が、ワンセグ、ＦＭラジオ、ＡＭラジオをソフトウェアの切り替えにより受信することができる放送受信機に適用される場合、第２記憶領域は、ワンセグのインタリーブ情報、ＦＭ／ＡＭのサインテーブルなどを格納する。第１記憶領域は、アクセスされるべきアドレスが固定された変数を記憶する。たとえば、カウンタ値など、インデックスが不定の配列データ以外の、グローバル変数およびローカル変数を格納する。
【００１６】
なお、第１記憶領域および第２記憶領域のそれぞれは、一つのデータＲＡＭで構成されてもよいし、複数のデータＲＡＭで構成されてもよい。図１では、第１記憶領域が第１データＲＡＭ３１で構成され、第２記憶領域が第２データＲＡＭ３２で構成される例を描いている。
【００１７】
図２は、実施の形態に係る演算部１０の構成の一例を示す図である。演算部１０は、複数のＡＬＵを備える。ＡＬＵは、複数種類の多ビット演算を選択的に実行可能な算術論理回路であって、加減算、比較演算、論理演算、シフト演算、選択演算、乗算演算の補助演算などの複数種類の多ビット演算を設定により選択的に実行することができる。各ＡＬＵは、複数の演算機能を設定するためのセレクタを有して構成されている。図示の例では、ＡＬＵが、２つの入力端子と１つの出力端子を有して構成される。
【００１８】
演算部１０は、縦方向にＸ（Ｘは自然数）個、横方向にＹ（Ｙは自然数）個のＡＬＵが配置されたＸ段Ｙ列のＡＬＵアレイとして構成される。演算部１０は、接続部１１ａ〜１Ｘａ、およびＡＬＵ列１１ｂ〜１Ｘｂを備える。接続部１１ａ〜１ＸａおよびＡＬＵ列１１ｂ〜１Ｘｂの構成は上記コマンドデータにより動的に設定変更される。接続部１１ａ〜１Ｘａは前後段のＡＬＵ列の間に設けられて、前段のＡＬＵの出力と後段のＡＬＵの入力の接続関係を設定する。最下段のＡＬＵ列１Ｘｂは、接続部１Ｘａおよび接続部１１ａを介して最上段のＡＬＵ列１１ｂに、他の段間と同様に接続される。なお、接続部１１ａ〜１Ｘａは、前段の一つのＡＬＵの出力先を後段の直下のＡＬＵとその左右のＡＬＵの三方向に制限してもよい。この接続制限によりＡＬＵ間の接続数を大幅に削減することができる。なお、上記ＡＬＵアレイは、ＡＬＵの物理的配置がアレイ状であることに限定されるものではなく、ＡＬＵ間の接続関係がアレイ状であればよい。
【００１９】
当該ＡＬＵアレイでの処理は段毎に行われており、１段目のＡＬＵ列１１ｂで処理された結果が接続部１２ａを介して２段目のＡＬＵ列１２ｂに渡され、その後に２段目のＡＬＵ列１２ｂで処理されるようになっている。各段の処理は、それぞれ１クロックごとに行われる。４段のＡＬＵアレイが使用される場合、４つの独立した処理（以下、スレッドという）が動作できるようになっている。たとえば、スレッド１が１段目のＡＬＵ列１１ｂで処理された後、つぎのクロックで、スレッド１が２段目のＡＬＵ列１２ｂで処理されるとともに、スレッド２が１段目のＡＬＵ列１１ｂで処理される。
【００２０】
図３は、実施の形態に係る情報処理装置２００の構成を示すブロック図である。情報処理装置２００は、上述した演算処理装置１００で処理されるべきコマンドデータを、ソースプログラムに所定の変換処理を施して生成するコンパイル装置を構成する。情報処理装置２００は、解析部５２、演算式生成部５４、中間プログラム生成部６２、データフローグラフ生成部６４、記憶領域割当部６６およびコマンドデータ生成部６８を備える。
【００２１】
これらの構成は、ハードウェア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２２】
解析部５２は、ソースプログラムを解析し、アクセスされるべきアドレスが実行時に決定される変数を特定する。解析部５２はそのタイプの変数を第２変数群に分類し、それ以外のタイプの変数を第１変数群に分類する。第１変数群には、たとえばアクセスされるべき変数が固定された変数が含まれる。コマンドデータ生成部６８は、解析部５２により特定された、第２変数群に分類された変数が格納されるべき第２記憶領域のアドレスを演算部１０に生成させるためのコマンドデータを生成する。そのアドレスは演算部１０から当該変数が第２記憶領域に書き込まれる際、および第２記憶領域から当該変数が演算部１０に読み込まれる際に必要となる。
【００２３】
コマンドデータ生成部６８は、アクセスされるべきアドレスが実行時に決定される変数以外の、第１変数群に分類された変数が格納されるべき第１記憶領域のアドレスを、制御部２０から供給させるためのコマンドデータを生成する。そのアドレスも演算部１０から当該変数が第１記憶領域に書き込まれる際、および第１記憶領域から当該変数が演算部１０に読み込まれる際に必要となる。
【００２４】
以下、より具体的に説明する。演算式生成部５４は、解析部５２により特定された、第２変数群に分類された変数が格納されるべき第２記憶領域のアドレスを生成するための演算式を生成する。中間プログラム生成部６２は、上記ソースプログラムを基礎とし、演算式生成部５４により生成された演算式が含まれる中間プログラムを生成する。データフローグラフ生成部６４は、中間プログラム生成部６２により生成された中間プログラムから、演算部１０に含まれる複数の演算器の構成に対応したデータフローグラフを生成する。より具体的には、Ｘ段Ｙ列のＡＬＵアレイの構成に対応したデータフローグラフを生成する。
【００２５】
記憶領域割当部６６は、第２変数群に分類された変数を第２記憶領域に割り当て、第１変数群に分類された変数を第１記憶領域に割り当てる。コマンドデータ生成部６８は、データフローグラフ生成部６４により生成されたデータフローグラフ、および記憶領域割当部６６による変数の割り当てをもとに、コマンドデータを生成する。
【００２６】
以下、具体例をもとに説明する。
図４は、実施の形態に係る、Ｃ言語によりユーザに記述されたソースプログラム７０の一例を示す図である。このソースプログラム７０では、まず、配列変数ａ（要素数が２）および配列変数ｂ（要素数が１２８）が宣言され、引数ｘおよび引数＊ｙが宣言される。つぎに、配列変数ａ［０］に引数ｘが加算され、その引数ｘが加算された配列変数ａ［０］が配列変数ａ［１］に加算される。つぎに、引数ｘが右に１桁シフトされ、配列変数ｂ［配列変数ａ［０］］に代入される。つぎに、配列変数ａ［１］が１、減算され配列変数ａ［０］に代入される。最後に、配列変数ｂ［配列変数ａ［０］］が左に３桁シフトされ、引数＊ｙに代入される。
【００２７】
解析部５２は、ソースプログラム７０を解析して、アクセスされるべきアドレスが実行時に決定される変数を特定し、第２変数群に分類する。図４の例では、配列変数ａ［］は、アクセスされるべきアドレスがすべて固定値であるため、第２変数群には分類されず、第１変数群に分類される。配列変数ｂ［］は、配列変数ａ［］の値によって、アクセスされるべきアドレスが変動するため、第２変数群に分類される。仮に、ソースプログラム７０内に配列変数ｂ［１０］が代入先として指定された文が含まれていたとしても、他の箇所に、アクセスされるべきアドレスが実行時に決定される文が含まれているため、その場合でも配列変数ｂ［］は第２変数群に分類される。
【００２８】
演算式生成部５４は、第２変数群に分類されたすべての変数について、記憶部３０へのアクセス用の演算式を生成する。まず、配列変数ｂ［］の”ｂ［ａ［０］］＝ｘ＞＞１；”の処理について考える。演算式生成部５４は、書き込むべきデータを記憶部３０に送出するための演算式として、”ｗ＿ｄ｛ｂ｝＝ｘ＞＞１；”を生成する。また、演算式生成部５４は、データが書き込まれるべきアドレスを記憶部３０に送出するための演算式として、”ｗ＿ａ［ｂ］＝＆ｂ＋ａ［０］；”を生成する。ここで、＆ｂは配列変数ｂ［０］のアドレス値を示す。
【００２９】
つぎに、”＊ｙ＝ｂ［ａ［０］］＜＜３；”の処理について考える。演算式生成部５４は、データが読み出されるべきアドレスを記憶部３０に送出するための演算式として、”ｒ＿ａ［ｂ］＝＆ｂ＋ａ［０］；”を生成する。また、演算式生成部５４は、記憶部３０から読み出されたデータを入力として使用する演算式として、”＊ｙ＝ｒ＿ｄ｛ｂ｝＜＜３；”を生成する。ここで、＆ｂは配列変数ｂ［０］のアドレス値を示す。
【００３０】
図５は、実施の形態に係る、ソースプログラム７０を基礎とし、演算式生成部５４により生成された演算式が含まれる中間プログラム８０を示す図である。この中間プログラム８０では、ソースプログラム７０内の”ｂ［ａ［０］］＝ｘ＞＞１；”が、”ｗ＿ｄ｛ｂ｝＝ｘ＞＞１；”および”ｗ＿ａ［ｂ］＝＆ｂ＋ａ［０］；”に変換されている。また、ソースプログラム７０内の”＊ｙ＝ｂ［ａ［０］］＜＜３；”が、”ｒ＿ａ［ｂ］＝＆ｂ＋ａ［０］；”および”＊ｙ＝ｒ＿ｄ｛ｂ｝＜＜３；”に変換されている。
【００３１】
図６は、実施の形態に係る、中間プログラム８０を基礎としたデータフローグラフを示す図である。図６の例では、６段３列のＡＬＵアレイで実行されるデータフローグラフを示している。データフローグラフ生成部６４は、中間プログラム８０からＡＬＵアレイの構成に対応したデータフローグラフを生成する。ここでは１段に３個のＡＬＵが含まれるＡＬＵアレイで中間プログラム８０を実行する場合、６段で中間プログラム８０が実行可能なことを示している。記憶領域割当部６６は、第２変数群に分類された配列変数ｂ［］を第２データＲＡＭ３２に割り当て、第１変数群に分類された配列変数ｂ［］を第１データＲＡＭ３１に割り当てる。
【００３２】
データフローグラフ内において、「○」が演算命令（以下適宜、ノードという）、「□」が入力変数または出力変数を示す。たとえば、１段２列に位置するノードは配列変数ａ［０］に引数ｘを加算する加算命令を示している。２段２列に位置するノードおよび４段３列に位置するノード内の「ｍｅｍａ」はアドレス生成命令を示す。この例では、２段２列に位置するノードおよび４段３列に位置するノードは、配列変数ｂ［０］のアドレス値に配列変数ａ［０］の値を加算する加算命令に相当する。
【００３３】
２段２列に位置するノードで生成されるアドレスに格納される変数は、引数ｘが一桁右にシフトされた変数であり、アドレス生成とそのアドレスに格納されるべき変数の生成が同じ段で実行されることが好ましい。そのため、２段１列に位置するノードで右シフト命令が実行され、２段２列に位置するノードでアドレス生成命令が実行される。
【００３４】
４段３列に位置するノードで生成されるアドレスが第２データＲＡＭ３２に発行され、そのアドレスに格納されたデータが読み出されるまでには所定の時間が必要なため、その読み出されたデータを３桁左にシフトする左シフト命令は６段目に位置するノードで実行される。すなわち、アドレス生成処理と読み出されたデータの演算処理との間に、１クロックのインターバルを設けている。
【００３５】
コマンドデータ生成部６８は、このデータフローグラフとデータＲＡＭの割り当てをもとに、コマンドデータを生成する。このコマンドデータには、第１データＲＡＭ３１のアドレス、ならびに第１データＲＡＭ３１および第２データＲＡＭ３２の両方のイネーブル信号が含まれる。
【００３６】
図７は、実施の形態に係る情報処理装置２００によるコンパイル処理をまとめたフローチャートである。解析部５２は、ソースプログラムを解析し、アクセスされるべきアドレスが実行時に決定される変数を抽出する（Ｓ１０）。解析部５２はそのタイプの変数を第２変数群に分類し、それ以外のタイプの変数を第１変数群に分類する。演算式生成部５４は、解析部５２により抽出され、第２変数群に分類された変数が格納されるべき第２データＲＡＭ３２のアドレスを生成するための演算式を生成する（Ｓ１２）。データフローグラフ生成部６４は、当該演算式が含まれる中間プログラムから、ＡＬＵアレイの構成に対応したデータフローグラフを生成する（Ｓ１４）。
【００３７】
記憶領域割当部６６は、第２変数群に分類されたすべての変数を第２データＲＡＭ３２に割り当て、第２変数群に分類された変数以外の、第１変数群に分類されたすべての変数を第１データＲＡＭ３１に割り当てる（Ｓ１６）。なお、ＡＬＵ間のデータの受け渡しが第１データＲＡＭ３１を介して行われる場合の、一時変数なども第１データＲＡＭ３１に割り当てられる。このような一時変数はＣ言語などで記述されたソースプログラムには記述されない。コマンドデータ生成部６８は、データフローグラフ生成部６４により生成されたデータフローグラフ、および記憶領域割当部６６による変数の割り当てをもとに、コマンドデータを生成する（Ｓ１８）。
【００３８】
以上説明したように実施の形態によれば、制御部２０からアドレス信号が供給される第１記憶領域と、演算部１０からアドレス信号が供給される第２記憶領域とを設けることにより、アクセスされるべきアドレスが演算結果に依存する演算データのアドレス生成にも対応可能でありながら、演算部の処理パフォーマンスを高めることができる。
【００３９】
以下、より詳細に説明する。まず、制御部２０からアドレスが供給される第１記憶領域のみが設けられる場合を考える。この場合、演算部１０での演算結果に基づいてアクセスされるべきアドレスが変更される、インターリーブ処理などに対応することができない。
【００４０】
つぎに、演算部１０からアドレスが供給される第２記憶領域のみが設けられる場合を考える。この場合、アクセスされるべきアドレスが固定の変数についても、その変数を演算部１０で生成する必要があり、実施の形態の構成と比較し、変数のアクセスに時間がかかる。また、アドレス生成に演算部１０内のＡＬＵが使用されるため、演算効率が実施の形態の構成と比較し、低くなる。
【００４１】
図８は、第２記憶領域のみが設けられる構成に係る、中間プログラム８０を基礎としたデータフローグラフを示す図である。なお、図８のデータフローグラフ内において、ノード内の「ＭＯＶ」は入力変数のスルーを示す。図８のデータフローグラフでは、中間プログラム８０の実行に９段必要であるが、実施の形態に係る、図６のデータフローグラフでは、同じ中間プログラム８０の実行に６段で足りる。したがって、本実施の形態のほうが、実行時間を短縮することができ、消費電力を低減することもできる。また、使用されるＡＬＵの数も少ないため、使用されていないＡＬＵが多くなり、それらのＡＬＵに他の処理またはスレッドを広範に割り当てることができ、処理パフォーマンスが高い。
【００４２】
つぎに、一つの記憶領域に対して、制御部２０または演算部１０から選択的にアドレスが供給される構成について考える。
図９は、比較例に係る演算処理装置１５０の構成を示すブロック図である。図９では、記憶部３０は一つのデータＲＡＭ３３を含む。セレクタ４０は制御部２０から供給されるアドレスまたは演算部１０から供給されるアドレスを選択的にデータＲＡＭ３３に出力する。この構成と、実施の形態１に係る図１の構成とを比較すると、演算部１０から記憶部３０への変数のアクセス時間は両者で同じである。
【００４３】
一般的に、配列データを格納する第２データＲＡＭ３２の容量は、第１データＲＡＭ３１の容量より非常に大きくなる。図９の構成では、ビット幅の大きいアドレス値を制御部２０内のコマンドＲＡＭ２１に保持しておく必要があり、コマンドＲＡＭ２１の回路規模が大きくなる。
【００４４】
これに対して、図１の構成では第２データＲＡＭ３２のアドレスは、演算部１０からのみ供給され、制御部２０からは供給されないため、コマンドＲＡＭ２１の回路規模を抑制することができる。また、回路規模を抑制することができるため、消費電力も低減することができる。また、図１の構成では図６のデータフローグラフの２段目のように、演算部１０から第１データＲＡＭ３１と第２データＲＡＭ３２に同時にアクセス可能である。すなわち、同じ段の異なるＡＬＵから第１データＲＡＭ３１および第２データＲＡＭ３２にそれぞれアクセスすることができる。したがって、図１の構成は図９の構成と比較し、実行時間を短縮することができ、処理パフォーマンスも高い。
また、通信処理、画像処理、音声処理では、アドレスが変わる変数と、アドレスが固定の変数の２種類を用いる処理が多いので、実施の形態に係る演算処理装置１００が適している。
【００４５】
図１０は、実施の形態に係る演算処理装置１００を搭載した通信装置３００の構成を示す図である。通信装置３００は、通信部３１０、接続制御部３３０および信号処理部３４０を備える。通信部３１０は、無線信号を受信または送信する。信号処理部３４０は、上記実施の形態に係る演算処理装置１００を含み、演算処理装置１００は、通信部３１０により送信または受信される無線信号に重畳されるデータ信号を処理する。たとえば、受信したデータ信号を復調する。また、送信すべきデータ信号を変調する。接続制御部３３０は、通信部３１０と信号処理部３４０との間に設けられ、両者の接続制御を行う。また、接続制御部３３０は、図示しない表示部や音声出力部などの他の装置との接続制御も行う。
【００４６】
通信部３１０は、受信アンテナ３１１、受信用ＲＦ部３１２、ＡＤＣ３１３、ＤＡＣ３１４、送信用ＲＦ部３１５および送信アンテナ３１６を含む。受信アンテナ３１１は高周波無線信号を受信し、受信用ＲＦ部３１２に出力する。受信用ＲＦ部３１２は、その高周波無線信号をベースバンドのデータ信号に変換する。ＡＤＣ３１３は、受信用ＲＦ部３１２から入力されるアナログ形式のデータ信号をデジタル形式のデータ信号に変換し、接続制御部３３０を介して演算処理装置１００に出力する。
【００４７】
ＤＡＣ３１４は、演算処理装置１００から接続制御部３３０を介して入力されるデジタル形式のデータ信号をアナログ形式のデータ信号に変換する。送信用ＲＦ部３１５は、ＤＡＣ３１４から入力されるベースバンドのデータ信号を高周波無線信号に変換する。送信アンテナ３１６は、送信用ＲＦ部３１５から入力される高周波無線信号を送信する。
【００４８】
なお、通信装置３００は、送信のみを行う送信装置であってもよいし、受信のみを行う受信装置であってもよいし、その両方を行う送受信装置であってもよい。送信装置の場合、通信部３１０にＤＡＣ３１４、送信用ＲＦ部３１５および送信アンテナ３１６を設ける必要がない。受信装置の場合、通信部３１０に受信アンテナ３１１、受信用ＲＦ部３１２おおよびＡＤＣ３１３を設ける必要がない。
【００４９】
図１１は、実施の形態に係る演算処理装置１００を搭載した放送受信装置４００の構成を示す図である。放送受信装置４００は、上記実施の形態に係る演算処理装置１００を搭載することにより、複数の規格の無線信号（たとえば、ワンセグ、ＦＭラジオ、ＡＭラジオ）をソフトウェアの切り替えによって単一のハードウェアで受信できるようにした装置である。
【００５０】
放送受信装置４００は、受信部４１０、出力部４２０、接続制御部４３０、信号処理部４４０を備える。受信部４１０は、放送波を受信する。たとえば、ワンセグ放送、ＦＭラジオ放送およびＡＭラジオ放送を受信する。信号処理部４４０は、上記実施の形態に係る演算処理装置１００を含み、演算処理装置１００は、受信部４１０により受信される放送波に重畳されるデータ信号を処理する。出力部４２０は、演算処理装置１００により処理されたデータ信号にもとづく、画像または音声の少なくとも一方を出力する。接続制御部４３０は、受信部４１０、出力部４２０および信号処理部４４０の間に設けられ、アプリケーションごとに各部の接続制御を行う。
【００５１】
受信部４１０は、ワンセグ用アンテナ４１１、ワンセグ用ＲＦ部４１２、ＡＤＣ４１３、ＦＭ／ＡＭ用アンテナ４１４、ＦＭ／ＡＭ用ＲＦ部４１５およびＡＤＣ４１６を含む。ワンセグ用アンテナ４１１はワンセグ放送波を受信し、ワンセグ用ＲＦ部４１２に出力する。ワンセグ用ＲＦ部４１２は、ワンセグ放送波をベースバンドのデータ信号に変換する。ＡＤＣ４１３は、ワンセグ用ＲＦ部４１２から入力されるアナログ形式のデータ信号をデジタル形式のデータ信号に変換し、接続制御部４３０を介して演算処理装置１００に出力する。演算処理装置１００は、そのデータ信号を復調して、トランスポートストリームデータ（以下、ＴＳデータという）を生成し、接続制御部４３０を介して出力部４２０に出力する。上記では、アンテナ、ＲＦ部、ＡＤＣは、ワンセグ用、ＦＭ／ＡＭ用で個別に設けられていたが、共通のアンテナ、ＲＦ部、ＡＤＣによりワンセグの信号やＦＭ／ＡＭの信号を処理するものであってもよい。
【００５２】
ＦＭ／ＡＭ用アンテナ４１４はＦＭラジオ放送波またはＡＭラジオ放送波を受信し、ＦＭ／ＡＭ用ＲＦ部４１５に出力する。ＦＭ／ＡＭ用ＲＦ部４１５は、ＦＭラジオ放送波またはＡＭラジオ放送波をベースバンドのデータ信号に変換する。ＡＤＣ４１６は、ＦＭ／ＡＭ用ＲＦ部４１５から入力されるアナログ形式のデータ信号をデジタル形式のデータ信号に変換し、接続制御部４３０を介して演算処理装置１００に出力する。演算処理装置１００は、そのデータ信号を復調して、音声信号を生成し、接続制御部４３０を介して出力部４２０に出力する。
【００５３】
出力部４２０は、バックエンド処理部４２１、ＤＡＣ４２２、スピーカ４２３および映像表示部４２４を含む。バックエンド処理部４２１は、演算処理装置１００から接続制御部４３０を介して入力されるＴＳデータを復号する。具体的には、Ｈ．２６４形式の画像データを復号し、ＡＡＣ形式の音声データを復号する。映像表示部４２４は、バックエンド処理部４２１により復号された画像を表示する。図示しないスピーカはバックエンド処理部４２１により復号された音声を外部に出力する。なお、この音声はスピーカ４２３から出力されてもよい。バックエンド処理部４２１は上記実施の形態に係る演算処理装置１００で構成されてもよい。
【００５４】
ＤＡＣ４２２は、演算処理装置１００から接続制御部４３０を介して入力されるデジタル形式の音声信号をアナログ形式の音声信号に変換する。スピーカ４２３は、ＤＡＣ４２２から入力される音声信号を音声として外部に出力する。
【００５５】
このように、機能の変更が可能な上記実施の形態に係る演算処理装置１００を搭載することにより、好適なソフトウェア無線を実現することができる。
【００５６】
以上、本発明をいくつかの実施形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施の形態に係る演算処理装置の構成を示すブロック図である。
【図２】実施の形態に係る演算部の構成の一例を示す図である。
【図３】実施の形態に係る情報処理装置の構成を示すブロック図である。
【図４】実施の形態に係る、Ｃ言語によりユーザに記述されたソースプログラムの一例を示す図である。
【図５】実施の形態に係る、ソースプログラムを基礎とし、演算式生成部により生成された演算式が含まれる中間プログラムを示す図である。
【図６】実施の形態に係る、中間プログラムを基礎としたデータフローグラフを示す図である。
【図７】実施の形態に係る情報処理装置によるコンパイル処理をまとめたフローチャートである。
【図８】第２記憶領域のみが設けられる構成に係る、中間プログラムを基礎としたデータフローグラフを示す図である。
【図９】比較例に係る演算処理装置の構成を示すブロック図である。
【図１０】実施の形態に係る演算処理装置を搭載した通信装置の構成を示す図である。
【図１１】実施の形態に係る演算処理装置を搭載した放送受信装置の構成を示す図である。
【符号の説明】
【００５８】
１０  演算部、  １１  ＡＬＵ、  ２０  制御部、  ２１  コマンドＲＡＭ、  ３０  記憶部、  ３１  第１データＲＡＭ、  ３２  第２データＲＡＭ、  ３３  データＲＡＭ、  ４０  セレクタ、  ５２  解析部、  ５４  演算式生成部、  ６２  中間プログラム生成部、  ６４  データフローグラフ生成部、  ６６  記憶領域割当部、  ６８  コマンドデータ生成部、  １００  演算処理装置、  １５０  演算処理装置、  ２００  情報処理装置、  ７０  ソースプログラム、  ８０  中間プログラム、  ３００  通信装置、  ３１０  通信部、  ３１１  受信アンテナ、  ３１２  受信用ＲＦ部、  ３１３  ＡＤＣ、  ３１４  ＤＡＣ、  ３１５  送信用ＲＦ部、  ３１６  送信アンテナ、  ３３０  接続制御部、  ３４０  信号処理部、  ４００  放送受信装置、  ４１０  受信部、  ４１１  ワンセグ用アンテナ、  ４１２  ワンセグ用ＲＦ部、  ４１３  ＡＤＣ、  ４１４  ＦＭ／ＡＭ用アンテナ、  ４１５  ＦＭ／ＡＭ用ＲＦ部、  ４１６  ＡＤＣ、  ４２０  出力部、  ４２１  バックエンド処理部、  ４２２  ＤＡＣ、  ４２３  スピーカ、  ４２４  映像表示部、  ４３０  接続制御部、  ４４０  信号処理部。  
【図１】
2010097356.tif 000003
【図２】
2010097356.tif 000004
【図３】
2010097356.tif 000005
【図４】
2010097356.tif 000006
【図５】
2010097356.tif 000007
【図６】
2010097356.tif 000008
【図７】
2010097356.tif 000009
【図８】
2010097356.tif 000010
【図９】
2010097356.tif 000011
【図１０】
2010097356.tif 000012
【図１１】
2010097356.tif 000013