(57)【特許請求の範囲】
【請求項１】
データを、各アドレス位置に所定のデータサイズで格納するメモリと、   
複数のデータを多重化して、前記メモリの各アドレスに格納する格納手段と、   
前記メモリの各アドレス位置に格納したデータを読み出して、分離することにより元のデータを再生するデータ再生手段と、
所定の基準に従って、前記メモリの各アドレスに格納すべきデータを決定する決定手段と、を備え、
前記決定手段は、
同時にアクセスされる複数のデータが、それぞれのデータ配列内の相対位置が等しい関係にある第１のタイプである場合は、この複数のデータを多重化して前記メモリの１つのアドレス位置に格納させ、
同時にアクセスされる複数のデータが、それぞれのデータ配列内の相対位置に相関がある関係にある第２のタイプである場合は、この複数のデータを多重化して前記メモリの１つのアドレス位置に格納させる、
ことを特徴とするデータ多重化記憶装置。  
【請求項２】
前記決定手段は、
前記複数のデータが第１及び第２タイプのいずれでも無い場合、順番にアクセスされるべき複数のデータについて、連続する所定数のデータ単位で多重化して前記メモリに格納させる、 
ことを特徴とする請求項１に記載のデータ多重化記憶装置。
【請求項３】
前記決定手段は、
データの多重化及び分離処理の処理量が予め定められた値よりも大きくなる場合には、データの多重化を行わない、
ことを特徴とする請求項１又は２に記載のデータ多重化記憶装置。   
【請求項４】
請求項１乃至３のいずれか１項に記載のデータ多重化記憶装置と、   
データを処理して前記格納手段に供給し、或いは、前記データ再生手段で再生されたデータを処理する処理手段と、を備える処理装置。 
【請求項５】
請求項１乃至３のいずれか１項に記載のデータ多重化記憶装置と、   
データを処理して前記格納手段に供給し、或いは、前記データ再生手段で再生されたデータを処理するリコンフィギュラブル回路と、   
前記リコンフィギュラブル回路の回路構成を切り替えて設定する設定手段と、を備える処理装置。   
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記憶装置に関し、特に、データを多重化して記憶することにより、個別に記憶する場合に比して記憶容量を抑えることが可能な多重化記憶装置、処理装置等に関する。
【背景技術】
【０００２】
ＦＰＧＡ(Field Programmable Gate Array)は、回路データを書き込んで比較的自由に回路構成を設計することが可能なＬＳＩ(Large Scale Integrated circuit)である。ＦＰＧＡは、真理値表を格納するためのルックアップテーブル(ＬＵＴ)と出力用のフリップフロップからなる基本セルと、その基本セル間を結ぶプログラマブルな配線リソース、設定データや中間データを記憶するメモリとを含む。ＦＰＧＡでは、ＬＵＴに格納するデ一夕と配線データを書き込むことで目的とする論理演算を実現できる。しかし、ＦＰＧＡでＬＳＩを設計した場合、ASIC(Application Specific Integrated Circuit)による設計と比べると、実装面積が非常に大きくなり、コスト高になる。そこで、ＦＰＧＡを動的に再構成することで、回路構成の再利用を図る方法が提案されている(例えば、特許文献１参照)。
【０００３】
例えば、衛星放送では、季節などにより、放送モ一ドを切り換えて画質の調整などを行うこともある。このため、従来の受信機では、放送モ一ドごとに複数の回路を予めハードウェア上に作り込んでおき、放送モードに合わせて選択器で回路を切り換えて受信している。従って、受信機の他の放送モード用の回路はその間遊んでいることになる。
【０００４】
モード切り替えのように、複数の専用回路を切り督えて使用し、その切り替え間隔が比較的長い場合、複数の専用回路を作り込む代わりに、切り替え時にＬＳＩを再構成することにすれば、回路構成をシンプルにして汎用性を高め、実装コストを抑えることができる。このようなニーズに応えるべく、動的に再構成可能なＬＳＩに関心が高まってきている。特に、携帯電話やＰＤＡ(Personal Data Assistant)などのモバイル端末に総裁されるＬＳＩは小型化が必携であり、ＬＳＩを動的に再構成し、用途に合わせて適宜機能を切り替えることができれば、ＬＳＩの実装面積を小さく抑えることができる。
【特許文献１】特開平１０−２５６３８３号公報（全文、第１−第４図)
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のように、ＦＰＧＡは回路構成の設計自由度が高く、汎用的である反面、基本セル間の接続を可能とするため、多数のスイッチとスイッチのON／OFFを制御するための制御回路を含む必要があり、実装面積が大きくなってしまう。一方で、装置の小型化・高密度実装などの要望により、ＦＰＧＡの小型化も要望されており、メモリなどのサイズにも制限が生じてしまう。このため、求められる機能の高度化に伴って、限られた容量のメモリをより有効に活用できるようにすることが望まれる。
【０００６】
特に、動的に再構成可能なＦＰＧＡの場合、例えば、ＦＰＧＡを第１の処理回路に構成して処理結果をメモリに保存し、続いて、ＦＰＧＡを第２の処理回路に構成して、元の処理結果を追加的に処理するなどの処理も可能である。このような場合、アプリケーションによっては、大量の中間データ及び最終データが生成され、限られた容量のメモリの有効利用が必要である。
【０００７】
メモリの有効利用の問題は、高密度化と機能の高度化とを要求される近時の処理回路においては、ＦＰＧＡに限らず、種々の処理回路において、共通に存在する問題である。
【０００８】
本発明は、上記状況に鑑みてなされたものであり、その目的は、限られた記憶容量を有効に或いは効率的に利用可能な記憶装置及びそれをもちいた処理回路を提供することにある。
また、本発明の他の目的は、集積回路の回路規模の縮小化に貢献することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の第１の観点に係るデータ多重化記憶装置は、
データを、各アドレス位置に所定のデータサイズで格納するメモリと、
複数のデータを多重化して、前記メモリの各アドレスに格納する格納手段と、
前記メモリの各アドレス位置に格納したデータを読み出して、分離することにより元のデータを再生するデータ再生手段と、
を備えることを特徴とする。
【００１０】
予め定められた基準に従って、前記メモリの各アドレスにデータを多重化して格納するか多重化せずに格納するかを切り替え、前記メモリの各アドレスに格納されているデータを分割するか、分割しないかを切り替えて制御する切り替え制御手段を配置してもよい。
【００１１】
前記切り替え制御手段は、例えば、多重化対象となるデータの関連性、前記メモリのアクセス時間、メモリアクセスの処理量、前記メモリの使用量、処理速度の少なくとも１つに基づいて多重化するか否かを決定する手段を備える。
【００１２】
例えば、前記格納手段は、一対の複素データを多重化して前記メモリの１つのアドレス位置に格納し、前記データ再生手段は、前記メモリの１つのアドレス位置から読み出したデータを分割することにより、元の一対のデータを再生する。
【００１３】
例えば、前記格納手段は、順番にアクセスされるべき複数のデータについて、連続する所定数のデータ単位で多重化して前記メモリに格納し、前記データ再生手段は、各アドレス位置から多重化されたデータを順次読み出して、分割することにより、前記順番にアクセスされるべき複数のデータを再生する。
【００１４】
例えば、前記格納手段は、相関のある一対のデータを多重化して各アドレス位置に前記メモリに格納し、前記データ再生手段は、各アドレス位置から多重化されたデータを順次読み出して、分割することにより、相関のある一対のデータを再生する。
【００１５】
例えば、前記格納手段は、同時にアクセスするデータが無く、且つ、データの多重・分離処理の処理量が予め定められた値よりも大きくなる場合には、データの多重を行わない。
【００１６】
上記構成のデータ多重化記憶装置は、処理装置に用いて好適である。この場合、処理手段で処理したデータを処理して前記格納手段に供給して前記メモリに多重化して記憶し、或いは、前記データ再生手段で再生されたデータを処理手段で処理する。
【００１７】
また、リコンフィギュラブル回路で処理したデータを前記格納手段に供給して前記メモリに多重化して記憶し、或いは、前記データ再生手段で再生されたデータをリコンフィギュラブル回路で処理することも可能である。この場合、例えば、前記リコンフィギュラブル回路が、第１の回路構成で処理したデータを前記格納手段に供給して前記メモリに多重化して格納し、設定手段により回路構成を第２の回路構成に切り替えらた後で、前記データ再生手段を介して前記メモリから読み出したデータを処理するようにしてもよい。このような構成とすれば、メモリにデータを多重化せずに格納する場合に比して、メモリのサイズを抑えて回路全体のサイズを小さくすることができる。また、全体のサイズに変更がなければ、リコンフィギュラブル回路のサイズを大きくすること等が可能である。
【発明の効果】
【００１８】
本発明によれば、複数データを多重化してメモリに格納するので、多重化しない場合に対して、大量のデータを格納することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、この発明の実施の形態に係る多重化記憶装置を備える処理装置１０を説明する。
この処理装置１０は、図１に示すように、集積回路装置２６を備える。集積回路装置２６は、回路構成を再構成可能とする機能を有する。集積回路装置２６は１チップで構成され、リコンフィギュラブル回路１２と、設定部１４と、制御部１８と、メモリ２０と、出力回路２２と、メモリ制御回路２４と、バス４２と、レジスタ群４４，４６とを備える。
【００２０】
リコンフィギュラブル回路１２は、設定を変更することにより、機能の変更を可能とする。
【００２１】
設定部１４は、第１設定部１４ａ、第２設定部１４ｂ、第３設定部１４ｃ、第４設定部１４ｄおよび選択器１６を有し、リコンフィギュラブル回路１２に所期の回路を構成するための設定データ４０を供給する。
【００２２】
レジスタ群４６は、リコンフィギュラブル回路１２の中間出力データを一次記憶する。
バス４２は、フィードバックパスとして機能し、リコンフィギュラブル回路１２の中間出力を、リコンフィギュラブル回路１２の入力に接続する。
レジスタ群４４は、バスを介してフィードバックされた中間出力データを一次記憶して、リコンフィギュラブル回路１２の入力に供給する。
【００２３】
メモリ２０は、各アドレス位置（１アドレス）に１ワード（２バイト（１６ビット））の記憶容量を有するメモリ回路であり、ＤＲＡＭ（Dinamic Randam Access Memory）などから構成される。メモリ２０は、リコンフィギュラブル回路１２から出力される中間データを多重化して、記憶容量を節約した上で、記憶する。
【００２４】
出力回路２２は、データフリップフロップ（Ｄ−ＦＦ）などの順序回路から構成され、リコンフィギュラブル回路１２の出力を受ける。
【００２５】
メモリ制御回路２４は、リコンフィギュラブル回路１２の出力する中間データを多重化してメモリ２０に格納し、また、メモリ２０から読み出したデータを分離することで元の２つのデータを再生し、バス４２上に出力する。メモリ制御回路２４による、記憶データの多重化処理及び元のデータの復元処理については、図４を参照して後述する。
【００２６】
リコンフィギュラブル回路１２は組合せ回路または順序回路などの論理回路として構成される。
【００２７】
リコンフィギュラブル回路１２は、機能の変更が可能な論理回路を有して構成される。具体的にリコンフィギュラブル回路１２は、複数の演算機能を選択的に実行可能な論理回路を複数段に配列させた構成を有し、前段の論理回路列の出力と後段の論理回路列の入力との接続関係を設定可能な接続部を含む。複数の論理回路は、マトリックス状に配置される。各論理回路の機能と、論理回路間の接続関係は、設定部１４により供給される設定データ４０に基づいて設定される。設定データ４０は、以下の手順で生成される。
【００２８】
集積回路装置２６により実現されるべきプログラム３６が、記憶部３４に保持されている。プログラム３６は、信号処理回路または信号処理アルゴリズムなどをＣ言語などの高級言語で記述したものである。記憶部３４に格納されたプログラム３６をコンパイルし、データフローグラフ３８に変換して記憶部３４に格納するためのコンパイル部３０が処理装置１０内に配置されている。データフローグラフ３８は、入力変数および定数の演算の流れをグラフ構造で表現したものである。
【００２９】
また、記憶部３４に設けられている設定データ生成部３２は、データフローグラフ３８から設定データ４０を生成する。設定データ４０は、データフローグラフ３８をリコンフィギュラブル回路１２にマッピングするためのデータであり、リコンフィギュラブル回路１２における論理回路の機能や論理回路間の接続関係を定める。本実施の形態では、設定データ生成部３２が、１つの生成対象回路６０を分割してできる複数の回路の設定データ４０を生成する。
【００３０】
図２は、１つの任意の生成対象回路６０を分割してできる複数の回路の設定データ４０について説明するための図である。１つの生成対象回路６０を分割して生成される回路を、「分割回路」と呼ぶ。図２の例では、１つの生成対象回路６０が、４つの分割回路、すなわち分割回路Ａ、分割回路Ｂ、分割回路Ｃ、分割回路Ｄに分割されている。生成対象回路６０は、データフローグラフ３８における演算の流れにしたがって分割される。データフローグラフ３８において、上から下に向かう方向に演算の流れが表現される場合には、そのデータフローグラフ３８を上から所定の間隔で切り取り、その切り取った部分を分割回路として設定する。流れにしたがって切り取る間隔は、リコンフィギュラブル回路１２における論理回路の段数以下に定められる。
【００３１】
各分割回路の出力データ（中間データ）は、メモリ２０に多重化して効率よく格納され、リコンフィギュラブル回路１２の回路構成が切り替えられた後、読み出されて分離されて、入力に供給される。
【００３２】
任意の生成対象回路６０は、データフローグラフ３８の横方向で分割されてもよい。横方向に分割する幅は、リコンフィギュラブル回路１２における論理回路の１段当たりの個数以下に定められる。
【００３３】
特に、生成対象回路６０がリコンフィギュラブル回路１２よりも大きい場合に、設定データ生成部３２は、リコンフィギュラブル回路１２にマッピングできる大きさになるように、生成対象回路６０を分割することが好ましい。設定データ生成部３２は、リコンフィギュラブル回路１２における論理回路の配列構造とデータフローグラフ３８によって、生成対象回路６０の分割方法を定める。リコンフィギュラブル回路１２の配列構造は、制御部１８から設定データ生成部３２に伝えられてもよく、また予め記憶部３４に記録されていてもよい。また、制御部１８が、生成対象回路６０の分割方法を設定データ生成部３２に指示してもよい。
【００３４】
以上の手順を実行することにより、記憶部３４は、リコンフィギュラブル回路１２を所期の生成対象回路６０として構成するための複数の設定データ４０を記憶する。複数の設定データ４０は、分割回路Ａを構成するための設定データＡ、分割回路Ｂを構成するための設定データＢ、分割回路Ｃを構成するための設定データＣ、および分割回路Ｄを構成するための設定データＤである。
【００３５】
図３は、リコンフィギュラブル回路１２の構成図である。リコンフィギュラブル回路１２は、複数の論理回路５０の列が複数段にわたって配列されたもので、各段に設けられた接続部５２によって、前段の論理回路５０の列の出力と後段の論理回路５０の列の入力が設定により任意に接続可能な構造となっている。各論理回路５０は、論理和、論理積、ビットシフトなどの複数種類の多ビット演算を設定により選択的に実行できる、例えば、ＡＬＵ（算術論理回路；Arithmetic Logic Unit）などから構成される。
【００３６】
図３に示すように、リコンフィギュラブル回路１２は、横方向にＹ個、縦方向にＸ個のＡＬＵ５０が配置されたＡＬＵ５０のアレイとして構成される。第１段のＡＬＵ１１、ＡＬＵ１２、・・・、ＡＬＵ１Ｙには、入力変数や定数が入力され、設定された所定の演算がなされる。演算結果の出力は、第１段の接続部５２に設定された接続に従って、第２段のＡＬＵ２１、ＡＬＵ２２、・・・、ＡＬＵ２Ｙに入力される。第１段の接続部５２においては、第１段のＡＬＵ５０の列の出力と第２段のＡＬＵ５０の列の入力の間で任意の接続関係、あるいは、決められた組み合わせのうちより選択された接続関係を実現できるように結線が構成されており、設定により所期の結線が有効となる。以下、第（Ｘ−１）段の接続部５２まで、同様の構成であり、最終段である第Ｘ段のＡＬＵ５０の列は演算の最終結果を出力する。
【００３７】
図１に戻って、リコンフィギュラブル回路１２の構成時、制御部１８は、１つの生成対象回路６０を構成するための複数の設定データ４０を選択する。ここでは、制御部１８が、図２に示す生成対象回路６０を構成するための設定データ４０、すなわち分割回路Ａの設定データＡ、分割回路Ｂの設定データＢ、分割回路Ｃの設定データＣおよび分割回路Ｄの設定データＤを選択するものとする。制御部１８は、選択した設定データ４０を設定部１４に供給する。設定部１４はキャッシュメモリや他の種類のメモリを有し、供給される設定データ４０をそれぞれ保持する。
【００３８】
設定部１４は、選択された設定データ４０をリコンフィギュラブル回路１２に設定し、リコンフィギュラブル回路１２の回路を再構成する。これにより、リコンフィギュラブル回路１２は、所期の演算を実行できる。
【００３９】
次に、図１に示すメモリ２０、メモリ制御回路２４、バス４２、レジスタ群４４，４６、の構成と動作とを図４を参照して説明する。
リコンフィギュラブル回路１２が出力するデータのうち、最終的な出力データは、出力回路２２を介して集積回路装置２６の外部に出力される。一方、中間的な出力データ（中間データ）は、複数の出力レジスタ４６ａ〜４６ｃから構成されるレジスタ群４６を介して出力される。中間データは、制御部１８の制御に従って、メモリ制御回路２４を構成する多重化回路２４１に供給される。多重化回路２４１は、２つのデータを多重化して、メモリ２０に格納することにより、メモリスペースを有効活用する。
【００４０】
ここで、多重化回路２４１が実行する多重化処理について説明する。
本実施形態においては、図５（ａ）に示すように、メモリ２０の各アドレス位置（アクセス単位）は１ワード（２バイト）の容量を有し、リコンフィギュラブル回路１２から出力される中間データは、図５（ｂ）に示すように、１ワード構成であるものの、少なくとも上位１バイト（８ビット）は全て「０」の無効データであり、下位１バイトのみが有効（実効）データであるものとする。
【００４１】
このような場合でも、通常であれば、１アドレスに１データが格納される。
【００４２】
しかし、本実施の形態においては、多重化回路２４１は、２つのデータを多重化して、メモリ２０の１アドレスに格納することにより、メモリ２０を有効に活用する。
【００４３】
まず、多重化回路２４１が、多重化するデータを図５（ｃ）に示すそれぞれ２バイトのデータＤ１とＤ２であるとする。多重化回路２４１は、一方のデータ、例えば、データＤ２を上位（ＭＳＢ）方向に８ビットシフトする。このとき、各下位ビットにはビットデータ「０」を供給する。続いて、他方のデータＤ１とシフトした一方のデータＤ２との論理和を取って、両データを多重化し、下位１バイトにＤ１，上位１バイトにＤ２が含まれた多重化データを生成する。
多重化回路２４１はこのようにして生成した多重化データをメモリ２０の適当なアドレス位置に格納する。
【００４４】
このようにして格納されたデータを読み出す際には、メモリ制御回路２４を構成する分離回路２４２が、図５（ｄ）に示すように、制御部１８の制御に従って、読み出し対象の２バイトデータを読み出し、データ０Ｆｈ（００００００００１１１１１１１１）と論理積をとることにより、読み出した１ワードデータの下位１バイトに格納されていたデータＤ１を復元する。
【００４５】
また、読み出した２バイトデータを下位方向に８ビットシフトすることにより、読み出した１ワードデータの上位１バイトに格納されていたデータＤ２を復元する。この際、上位ビットには０を供給する。
【００４６】
分離回路２４２は、読み出した再生した２つのデータを、例えば、バス４２を介して、入力レジスタ群４６に供給し、リコンフィギュラブル回路１２の入力に供給する。
【００４７】
次に、上記構成の処理装置の１０の動作を、生成対象回路６０を、図６に例示するＱＰＫＳ(quadrature phase shift keying)変調信号の復調（直交検波）回路とした場合を例に説明する。
【００４８】
まず、図６に示す復調回路について説明する。
同調回路１０４は、目的周波数に同調し、アンテナ１０２を介して信号を受信する。受信信号は、増幅などの処理を行った後、Ａ／Ｄ（アナログデジタル）変換回路１０６により、ディジタル信号に変換され、一旦バッファ回路１０８に格納される。
【００４９】
バッファ回路１０８に格納されたデータはミクサ１１０と１１４に供給される。
ミクサ１１０は供給された受信信号とコサイン信号（ｃｏｓωｔ）とを混合して、同相成分の信号Ｉを生成し、これをローパスフィルタ（ＬＰＦ）１１２がフィルタリングして同相成分ＦＩを生成する。
【００５０】
ミクサ１１４は供給された受信信号とサイン信号（ｓｉｎωｔ）とを混合して、直交成分の信号Ｑを生成し、これをローパスフィルタ（ＬＰＦ）１１６がフィルタリングして直交成分ＦＱを生成する。
【００５１】
このような構成を実現するため、リコンフィギュラブル回路１２は、第１設定部１４ａの設定により、まず、ミクサ（乗算器）１１０，１１４として構成されて、１フレーム分の同相成分Ｉと直交成分Ｑを求める。求めた１フレーム分の同相成分Ｉと直交成分Ｑとは、多重化回路２４１により多重化され、メモリ２０に格納される。続いて、リコンフィギュラブル回路１２は、ローパスフィルタ１１２，１１６として再構成される。メモリ２０に格納されていた１フレーム分の同相成分Ｉと直交成分Ｑとが、分離回路２４２により順次読み出されて分離され、リコンフィギュラブル回路１２の入力に投入される。リコンフィギュラブル回路１２は、同相成分Ｉと直交成分Ｑをフィルタリングして、同相成分ＦＩと直交成分ＦＱとを求め、出力回路２２を介して外部に出力する。
この処理をフレーム単位に繰り返して実行する。
【００５２】
リコンフィギュラブル回路１２がミクサ１１０，１１４として動作している間、メモリ２０の各アドレス位置には、図７に示すように、同相成分のデータＩと直交成分のデータＱの対応するもの同士が多重化して格納される。
【００５３】
即ち、リコンフィギュラブル回路１２から同相成分Ｉ（ｘ）と直交成分Ｑ（ｘ）とが出力され、これが多重化回路２４１により多重化されて多重化データＩ（ｘ）Ｑ（ｘ）が生成され、これが１つのアドレス位置に格納される。以後、Ｉ（ｘ＋１）とＱ（ｘ＋１）、Ｉ（ｘ＋２）とＱ（ｘ＋２）、．．とが順次出力され、多重化回路２４１により、多重化データＩ（ｘ＋１）Ｑ（ｘ＋１）、Ｉ（ｘ＋２）Ｑ（ｘ＋２）、．．が生成され、これらがアドレスを順次更新しながら、格納される。
【００５４】
一方、リコンフィギュラブル回路１２がローパスフィルタとして動作している間、メモリ２０の各アドレス位置から、同相成分のデータＩと直交成分のデータＱの多重化データＩ（ｘ）Ｑ（ｘ）、Ｉ（ｘ＋１）Ｑ（ｘ＋１）、Ｉ（ｘ＋２）Ｑ（ｘ＋２）、．．が読み出される。そして、分離回路２４２により、同相成分と直交成分とが分離されて、元のデータＩ（ｘ）とＱ（ｘ）、Ｉ（ｘ＋１）とＱ（ｘ＋１）、Ｉ（ｘ＋２）とＱ（ｘ＋２）、．．が順次再生され、バス４２上に出力される。再生されたデータＩとＱは、バス４２と入力レジスタ４４（４４ａ〜４４ｃ）を介してリコンフィギュラブル回路１２に供給され、フィルタリング処理が行われる。
【００５５】
このような構成によれば、メモリ２０の各アドレス位置に、２つのデータＩ（ｘ）とＱ（ｘ）とを格納できる。従って、各アドレス位置に同相成分のデータＩと直交成分のデータＱとをそれぞれ格納する場合に比して、２倍のデータをメモリ２０に格納することができる。従って、メモリ２０の記憶容量が同一ならば、ＩとＱを別々のアドレスに格納する場合に比して、２倍の量のデータを蓄積することができる。換言すれば、同一量のデータを格納するのであれば、メモリ２０の記憶容量を１／２にすることができる。
【００５６】
なお、前述したように、生成対象回路６０を横方向に分割することも可能である。
例えば、図８に示すように、リコンフィギュラブル回路１２を、まず、同相成分処理用の回路（ミクサ１１０，ローパスフィルタ１１２）として構成して、Ａ／Ｄ変換後の受信データを処理して同相成分のデータＦＩを求めてメモリ２０に格納し、続いて、リコンフィギュラブル回路１２を、直交成分処理用の回路（ミクサ１１４，ローパスフィルタ１１６）として再構成して、同一のデータを処理して、直交成分のデータＦＱを求めるようにしてもよい。
【００５７】
この場合には、リコンフィギュラブル回路１２が同相成分を処理している間は、メモリ制御回路２４には、同相成分のデータＦＩ（ｘ）、ＦＩ（ｘ＋１）、ＦＩ（ｘ＋２）、ＦＩ（ｘ＋３）．．．が順次供給される。多重化回路２４１は、図９（ａ）に示すように、連続する２つのデータＦＩ（ｘ）とＦＩ（ｘ＋１）、ＦＩ（ｘ＋２）とＦＩ（ｘ＋３）．．．を多重化し、メモリ２０の各アドレス位置に順次格納する。
【００５８】
また、リコンフィギュラブル回路１２が直交成分を処理している間は、メモリ制御回路２４には、直交成分のデータＦＱ（ｘ）、ＦＱ（ｘ＋１）、ＦＱ（ｘ＋２）、ＦＱ（ｘ＋３）．．．が順次供給される。多重化回路２４１は、図９（ｂ）に示すように、連続する２つのデータＦＱ（ｘ）とＦＱ（ｘ＋１）、ＦＱ（ｘ＋２）とＦＱ（ｘ＋３）．．．を多重化し、メモリ２０の各アドレス位置に順次格納する。
【００５９】
分離回路２４２は、このようにして格納されている各データを制御回路１８の制御に従って読み出して、適宜分離し、外部に出力し、或いはリコンフィギュラブル回路１２に再供給する。
【００６０】
図５〜図７に示したように、複素数データであるＩとＱとを同時にアクセスする必要が生じる場合には、これを多重化することにより多重化・分離に要する時間を抑えてメモリ容量を抑えることが可能となる。
一方、図８，図９に示したように、連続するデータに同時にアクセスする必要が生じる場合には、これらを多重化することにより多重化・分離に要する時間を抑えてメモリ容量を抑えることが可能となる。
【００６１】
また、例えば、図５の回路で、同相成分Ｉと直交成分Ｑとの間に時間差が存在し、例えば、同相成分Ｉ（ｘ）と直交成分Ｑ（ｘ＋ａ）、Ｉ（ｘ＋１）とＱ（ｘ＋ａ＋１）、Ｉ（ｘ＋２）とＱ（ｘ＋ａ＋２）、．．．とを同時にアクセスするデータの位置関係に相関がある場合には、図１０（ａ）に示すように、位置的に相関のあるデータ同士を多重化することが望ましい。例えば、同相成分のデータ又は直交成分のデータがレジスタなどの遅延素子を介して供給される場合に、このような場面が生ずる。
【００６２】
同様に、同相成分ＦＩのデータ列内及び直交成分ＦＱのデータ列内でも、離れた位置のデータをアクセスが行われる場合には、図１０（ｂ）、（ｃ）に示すように、同時にアクセスするデータ同士を多重化することが望ましい。
【００６３】
データを多重化するか否か、どのように多重化するかは、例えば、図１１に示す判断基準に従って、決定される。
【００６４】
まず、メモリ２０の各アドレス位置の記憶容量と多重化される対象のデータ（Ｉ，Ｑ）のビット幅との間に多重化する余裕があるか否かを、例えば、メモリの使用量などに基づいて判別する（ステップＳ１１）。例えば、メモリ２０の各アドレス位置が１ワードで、２つのデータの有効データが１バイトより大きい場合、データを多重化することはできない。逆に、一方のデータの有効データが７ビットで、他方のデータが９ビットであるならば、多重化は可能である。
【００６５】
次に、同一相対アドレスのデータを同時にアクセスするか否かを判別する（ステップＳ１２）。即ち、複素データ（Ｉ，Ｑ）のように、それぞれのデータ配列内の相対アドレス（位置）が等しいものを同時にアクセスするか否かを判別する。相対アドレスが等しいものを同時にアクセスすると判別した場合（ステップＳ１２；Ｙｅｓ）、多重分離処理の時間的・処理的余裕があるか否かを判別する（ステップＳ１３）。
【００６６】
時間的・処理的余裕があると判断すれば（ステップＳ１３；Ｙｅｓ）、Ｉ（ｘ）とＱ（ｘ）のように、それぞれのデータ配列で相対位置が同一のデータ同士を多重化する第１の多重化方法を採用する（ステップＳ１４）。この多重化方法は、複素データ（Ｉ，Ｑ）のように、複数のデータ配列内の同一の相対アドレスのデータを同時にアクセスする場合などに、特に有効である。
【００６７】
一方、ステップＳ１２又はＳ１３で、Ｎｏと判別された場合には、同時にアクセスする相対アドレスに相関があるか否かを判別する（ステップＳ１５）。例えば、図１０（ａ）に示したように、２つのデータ配列Ｉ（ｘ）とＱ（ｘ＋ａ）を同時にアクセスする場合や、図１０（ｂ）、（ｃ）に示したように１つのデータ配列Ｉ（ｘ）内で、ＦＩ（ｘ）とＦＩ（ｙ）を同時にアクセスする場合や、ＦＱ（ｘ）とＦＱ（ｘ＋ｂ）を同時にアクセスする場合には、相関があると判別する。
【００６８】
同時にアクセスする相対アドレスに相関がある場合（ステップＳ１５；Ｙｅｓ）、多重分離処理の時間的・処理的余裕があるか否かを判別する（ステップＳ１６）。時間的・処理的余裕があれば（ステップＳ１６；Ｙｅｓ）、Ｉ（ｘ）とＱ（ｘ＋ａ）、Ｉ（ｘ）とＩ（ｙ）、Ｑ（ｘ）とＱ（ｘ＋ｂ）のように、相関がある位置のデータ同士を多重化する多重化方法２を選択する（ステップＳ１７）。この方法は、例えば、Ｓｉｎ、Ｃｏｓデータなどのように、同時にアクセスする相対アドレスに相関がある場合や、前述のように、複素データの一方に遅延があるような場合に有効である。
【００６９】
一方、ステップＳ１５又はＳ１６で、Ｎｏと判別された場合には、多重分離処理の時間的・処理的余裕があるか否かを判別する（ステップＳ１８）。時間的・処理的余裕があれば（ステップＳ１８；Ｙｅｓ）、Ｉ（ｘ）とＩ（ｘ＋１）、Ｑ（ｙ）とＱ（ｙ＋１）のように、同一データ配列内で連続する位置のデータ同士を多重化する多重化方法３を選択する（ステップＳ１９）。この多重化方法は、２つの配列データへのアクセスが同時ではなく、アクセス時間や、アクセス処理量（多重・分離処理）に余裕がある場合、又は、同じ配列データの連続するデータに同時にアクセスする場合などに特に有効である。
【００７０】
ステップＳ１９でもＮｏと判別された場合、即ち、メモリのアクセス時間、メモリのアクセスの処理量、メモリの使用量、処理速度などに基づいて、多重化の余裕が無いと判別された場合には、データの多重化を行わないと判断する（ステップＳ２０）。
【００７１】
なお、多重・分離処理の時間的処理量的余裕は、例えば、メモリアクセスの処理時間、メモリアクセスの処理量、処理速度、多重化処理に要する時間及び分離処理に要する時間を予め求めておき、メモリ２０へのアクセス（ライト・リード）がリコンフィギュラブル回路１２の処理速度よりも短いときに余裕があると判断し、長いときには余裕が無いと判断する。
【００７２】
また、図１１に示す判別処理をコンパイル部３０が行って、判別結果に応じたデータフローグラフ３８を生成するようにしてもよい。
【００７３】
この場合、例えば、記憶部３４に、メモリ２０のアドレス位置のサイズ、多重化回路２４１と分離部２４２の処理時間、通常のメモリ２０へのアクセス時間、メモリアクセスの処理量、リコンフィギュラブル回路１２の動作クロックの周波数（処理速度）、入力信号のサンプリング周波数などのデータを登録しておく。また、プログラム３６には、上述の判別処理を実行するための判別プログラムを格納しておく。コンパイル部３０は、コンパイルの過程で、リコンフィギュラブル回路１２の動作をシミュレートし、上述の条件のいずれに合致するかを判別し、多重化の有無・多重化方法を特定し、判別結果に対応するデータフロー図を生成する。設定データ生成部３２は、生成されたデータフローに対応する設定データ４０を生成する。制御部１８は、生成された設定データ４０を設定部１４に供給する。
【００７４】
このような構成によれば、多重化の有無・多重化方法の設定自体を自動化することができる。
【００７５】
以上、本発明の実施の形態を説明したが、この発明は上記実施の形態に限定されず、種々の変形及び応用が可能である。
例えば、上記実施の形態においては、受信回路の復調回路に本願発明を適用した例を示したが、本願発明を適用するアプリケーションは任意であり、上述したような同時にアクセスされる複数のデータ配列、データ配列内の複数のデータに同時にアクセスする場合などに、広く適用可能である。
【００７６】
上記実施の形態においては、ハードウエア構成が大きく、占有面積が大きくなる傾向のあるＦＰＧＡに本願発明を適用することによりメモリ容量を抑える例を示した。即ち、リコンフィギュラブル回路１２の処理結果（中間データ）を多重化してメモリ２０に格納し、さらに、リコンフィギュラブル回路１２の回路構成を切り替えて、元のデータを再生して処理する構成とすることにより、メモリ２０のサイズを抑えて、集積回路チップ２６内のメモリ２０の占有面積を抑えることができる。このような構成は、リコンフィギュラブル回路１２の処理内容が高度化・複雑化してリコンフィギュラブル回路１２の占有面積が増大する場合や、集積回路チップ２６のより高密度化が要求される場合などに特に有効である。同様に、リコンフィギュラブル回路１２が処理又は生成するデータが大量である場合には、メモリ２０のサイズを抑える上で効果的である。
【００７７】
ただし、この発明はこれに限定されず、本願発明を適用する集積回路の種類は任意である。例えば、ＤＳＰ（Digital Signal Processor）やＣＰＵ(Central Processing Unit)などに本願発明を適用し、内部メモリの容量をおさえてもよい。
【００７８】
さらに、上記実施の形態においては、集積回路素子内のメモリ格納するデータを多重化する例を示したが、図１２に示すような、集積回路（処理装置）７０から外部バス７２を介してアクセスする必要があるような外部（外付け）メモリ７６にデータを格納・読み出しする場合に、メモリ制御回路７４を配置してデータを多重化・分離することにより、１度に複数のデータをアクセス可能とし、アクセスを高速化することも可能である。
【００７９】
上記実施の形態においては、主に、メモリの各記憶位置を１ワード構成、各データの有効ビット数を８ビットとする例を示したが、メモリの記憶位置のサイズや各データの有効ビット数は任意である。例えば、メモリの各記憶位置（アドレス位置）を２ワード構成とし、各データの有効ビット数を１６ビットとしたり、一方のデータの有効ビット数を１０ビットとし、他方のデータの有効ビット数を２２ビットとするなどしてもよい。
【００８０】
また、多重化するデータは、２つに限定されず、３つ以上のデータを多重化してもよい。
【００８１】
以上説明したように、本実施の形態によれば、メモリのビット幅に対して、保持するデータのビット幅小さく、複数データを多重する余裕がある場合、データアクセスの関連性、メモリアクセス時間、データアクセス処理量、等を考慮してメモリを使用量、処理速度などの要求条件に最も適した方法でデータの多重を行う。これにより、必要となるメモリ使用量を削減、或いは、処理速度の高速化を図ることができる。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態に係るＦＰＧＡ回路（処理装置）の構成を示すブロック図である。
【図２】図１に示す設定部の構成を示すブロック図である。
【図３】図１に示すリコンフィギュラブル回路の構成例を示す図である。
【図４】図１に示すリコンフィギュラブル回路、メモリ制御回路、及び、メモリ、の構成と動作を説明するためのブロック図である。
【図５】多重化処理及び分離処理を説明するための図であり、（ａ）はメモリの１アドレス（１記憶位置）の構成を示し、（ｂ）はデータの構成を示し、（ｃ）は多重化の方法を示し、（ｄ）は分離の方法を示す。
【図６】図１の処理回路で実現される復調回路の一例を示す図である。
【図７】図６の回路を構成した場合に、メモリの各記憶位置に格納される複素データを多重化したデータの例を示す図である。
【図８】図１の処理回路で実現される復調回路の他の例を示す図である。
【図９】図８の回路を構成した場合に、メモリの各記憶位置に格納される連続してアクセスされるデータを多重化したデータの例を示す図である。
【図１０】図６の回路を構成した場合に、メモリの各記憶位置に格納される、同時にアクセスされるアドレスが相関を有するデータを多重化したデータの例を示す図であり、（ａ）は、異なるデータ配列のデータを同時にアクセスする場合、（ｂ）と（ｃ）は同一のデータ配列のデータをアクセスする場合の例を示す。
【図１１】データの多重化を行うか否か、行う場合には、どのような多重化を行うかを判別するためのフローチャートである。
【図１２】この発明を外部メモリをアクセスする場合に適用した場合の構成例を示すブロック図である。
【符号の説明】
【００８３】
１０  処理回路
１２  リコンフィギュラブル回路
１４  設定部
１８  制御部
２０  メモリ
２４  メモリ制御回路
４２  バス
２６  集積回路装置
【図１】
0004753709.tif 000002
【図２】
0004753709.tif 000003
【図３】
0004753709.tif 000004
【図４】
0004753709.tif 000005
【図５】
0004753709.tif 000006
【図６】
0004753709.tif 000007
【図７】
0004753709.tif 000008
【図８】
0004753709.tif 000009
【図９】
0004753709.tif 000010
【図１０】
0004753709.tif 000011
【図１１】
0004753709.tif 000012
【図１２】
0004753709.tif 000013