(57)【要約】【課題】ＣＰＵとＤＳＰとの間でデータの受け渡しを行う場合にプログラマブルな制御が可能で使用状況等に柔軟性を有するデータ送受信システムを提供する。【解決手段】ＣＰＵ１１とＤＳＰ１２間にＣＰＬＤ１３及びＦＰＧＡ１４を設ける。ＣＰＵ１１は、任意のタイミングでＣＰＬＤ１３の内部レジスタ１３１にデータを書込んだ後、そのデータをクリアする。ＣＰＬＤ１３は、内部レジスタ１３１に書込まれたデータをＦＰＧＡ１４の内部レジスタ１４１へ書込む。ＤＳＰ１２は、サンプリング周期でＦＰＧＡ１４の内部レジスタ１４１のデータを読出して処理し、結果をＦＰＧＡ１４の内部レジスタ１４２に書込む。ＦＰＧＡ１４は、内部レジスタ１４２に書込まれたデータをＣＰＬＤ１３の内部レジスタ１３２に書込む。ＣＰＵ１１は、ＣＰＬＤ１３の内部レジスタ１３２から任意のタイミングでデータを読出し、自身が行った書込み処理の結果を取得する。【選択図】      図２
2008071285.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサと第２のプロセッサとの間でデータの送受信を行うデータ送受信システムにおいて、
前記第１のプロセッサに接続される第１及び第２のレジスタを備えたＣＰＬＤと、前記ＣＰＬＤと前記第２のプロセッサとの間に設けられる第１及び第２のレジスタを備えたＦＰＧＡと、
前記第１のプロセッサは、前記第２のプロセッサへ送信するデータを任意のタイミングで前記ＣＰＬＤの第１のレジスタを経由して前記ＦＰＧＡの第１のレジスタへ書込む手段と、前記ＣＰＬＤの第２のレジスタに保持されたデータを一定周期または任意のタイミングで読出す手段とを備え、
前記第２のプロセッサは、前記ＦＰＧＡの第１のレジスタに保持されているデータをサンプリング周期で読出して処理すると共に、前記第１のプロセッサへ送信するデータを任意のタイミングで前記ＦＰＧＡの第２のレジスタを経由して前記ＣＰＬＤの第２のレジスタに書込む手段とを備えたことを特徴とするプロセッサ間におけるデータ送受信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおいて、２つのプロセッサ例えばＣＰＵ（Central Processing Unit）とＤＳＰ（Digital Signal Processor）との間でデータを送受信するためのプロセッサ間におけるデータ送受信システムに関する。
【背景技術】
【０００２】
コンピュータシステムでは、一般的に複数のプロセッサを搭載しており、各プロセッサ間、例えばＣＰＵとＤＳＰとの間でデータの受け渡しを行う場合がある。ＣＰＵとＤＳＰとの間でデータの受け渡しを行う場合、従来では、共有メモリとしてデュアルポートＲＡＭ（DPRAM）を用いて大きなデータの送受を行う方法や、ＣＰＵ−ＤＳＰ間を直結し、Ｉ／Ｏポートを用いて小さいデータの送受を行う方法がある。
【０００３】
デュアルポートＲＡＭを用いてデータの送受を行う方法では、デュアルポートＲＡＭの種類にもよるが、デュアルポートＲＡＭをそれぞれのシステム用のデータ領域に区切り、それぞれに対して外部からの要因を基にお互いが同期をとりながらそれぞれの領域に対してアクセスしてデータの送受信を行う場合と、デュアルポートＲＡＭに一方のポートが読み出しを行っている間に他方のポートが書込みをする場合や、両方のポートが同時に同一ロケーションに書込みを行うといった、同時アクセスに対するコンフリクト（conflict）の処理機能、例えば割込みロジック、セマフォロジックなどが備わっている場合、お互いがランダムなタイミング（非同期）で、ＲＡＭロケーションを意識することなくデュアルポートＲＡＭにアクセスしてデータの送受信を行う場合の二通りの使い方がある。
【０００４】
また、本発明に関連する公知技術として、一方の系のＣＰＵからデュアルポートＲＡＭを介して入力したデータに基づいて他の系のＤＳＰが動作を開始するシステムにおいて、他の系のＤＳＰ側にメモリチェック用のＦＰＧＡ（Field Programmable Gate Array）を設け、ＤＳＰの動作開始前に上記ＣＰＵとＦＰＧＡの両系からデュアルポートＲＡＭをチェックできるようにしたメモリチェックシステムが知られている（例えば、特許文献１参照。）。
【特許文献１】特願２００２−１４９５０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のようにＣＰＵとＤＳＰとの間でデータの受け渡しを行う場合、共有メモリとしてデュアルポートＲＡＭを用いることで、大きなデータを送受することが可能になるが、アクセスを制御するドライバや、割込みコントローラなど、他のデバイスを用いて制御する必要がある。
【０００６】
また、Ｉ／Ｏポートを用いてデータの送受信を行う場合は、ＣＰＵとＤＳＰ間を信号線で直結してしまうため、Ｉ／Ｏポートとしか利用することができず、データの送受はできるが用途が限定されてしまう、という問題がある。
【０００７】
本発明は上記の課題を解決するためになされたもので、２つのプロセッサ間をＣＰＬＤ（Complex Programmable Logic Device）とＦＰＧＡを経由して接続し、ＣＰＬＤ及びＦＰＧＡよって任意に制御でき、かつプログラマブルな制御が可能なプロセッサ間におけるデータ送受信システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、第１のプロセッサと第２のプロセッサ間との間でデータの送受信を行うデータ送受信システムにおいて、
前記第１のプロセッサに接続される第１及び第２のレジスタを備えたＣＰＬＤと、前記ＣＰＬＤと前記第２のプロセッサとの間に設けられる第１及び第２のレジスタを備えたＦＰＧＡと、
前記第１のプロセッサは、前記第２のプロセッサへ送信するデータを任意のタイミングで前記ＣＰＬＤの第１のレジスタを経由して前記ＦＰＧＡの第１のレジスタへ書込む手段と、前記ＣＰＬＤの第２のレジスタに保持されたデータを一定周期または任意のタイミングで読出す手段とを備え、
前記第２のプロセッサは、前記ＦＰＧＡの第１のレジスタに保持されているデータをサンプリング周期で読出して処理すると共に、前記第１のプロセッサへ送信するデータを任意のタイミングで前記ＦＰＧＡの第２のレジスタを経由して前記ＣＰＬＤの第２のレジスタに書込む手段とを備えたことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、第１のプロセッサと第２のプロセッサとの間にプログラマブルなＣＰＬＤ及びＦＰＧＡを設けてデータの受け渡しを行わせることにより、使用状況、範囲、用途に柔軟性を持たせることができ、また、プロセッサの高速化などによりアクセスタイミングが変わった場合でも、容易に対応することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明の一実施形態を説明する。  
図１は、本発明の一実施形態に係るプロセッサ間におけるデータ送受信システムの構成を示すブロック図である。この実施形態では、第１のプロセッサとしてＣＰＵ１１を使用し、第２のプロセッサとしてＤＳＰ１２を使用した場合を例として示している。
【００１１】
そして、上記ＣＰＵ１１とＤＳＰ１２との間にＣＰＬＤ（Complex Programmable Logic Device）１３及びＦＰＧＡ（Field Programmable Gate Array）１４が設けられ、信号線１５ａ〜１５ｃにより接続される。
【００１２】
上記ＣＰＬＤ１３は内部レジスタ１３１、１３２を備え、ＦＰＧＡ１４は内部レジスタ１４１、１４２を備えている。上記ＣＰＬＤ１３の内部レジスタ１３１及びＦＰＧＡ１４の内部レジスタ１４１は、ＣＰＵ１１からＤＳＰ１２へデータを送信する場合に使用される。また、ＣＰＬＤ１３の内部レジスタ１３２及びＦＰＧＡ１４の内部レジスタ１４２は、ＤＳＰ１２からＣＰＵ１１へデータを送信する場合に使用される。
【００１３】
上記ＣＰＬＤ１３は、デバイスそのものに回路を保持するもので、ＳＰＬＤ（Simple PLD）のＡＮＤ−ＯＲアレイ構造を複数個組み合わせて大規模化を図っており、構造が簡単で高速動作が可能である。  
また、ＦＰＧＡ１４は、一般的に内部構造がＲＡＭになっており、高性能で複雑な回路を構成でき、大規模化に適している。
【００１４】
上記ＣＰＬＤ１３及びＦＰＧＡ１４は、何れもプログラム可能なものであり、内部アーキテクチャにおいて、ＣＰＬＤは「ＡＮＤ−ＯＲのプロダクト・ターム」、ＦＰＧＡは「ルックアップ・テーブル（メモリ素子）」という点で異なっている。
【００１５】
上記の構成において、ＣＰＵ１１はデータの書込み処理を行う場合、ＣＰＵ１１のＩ／Ｏポートに接続されているＣＰＬＤ１３に対して、任意のタイミングでＩ／Ｏポートにアクセスし、ＣＰＬＤ１３の内部レジスタ１３１にデータを書込む。そして、ＣＰＵ１１は、上記書込み処理後直ぐに、上記ＣＰＬＤ１３の内部レジスタ１３１に再度アクセスし、先程書込んだデータを０（ゼロ）にクリアする。
【００１６】
また、ＣＰＵ１１からの読出し処理の場合、ＣＰＵ１１は一定の周期または任意のタイミングでＩ／Ｏポートにアクセスし、ＣＰＬＤ１３の内部レジスタ１３２に保持されているデータ読出す。
【００１７】
ＣＰＬＤ１３は、ＣＰＵ１１から内部レジスタ１３１にデータが書込まれた場合、０（ゼロ）から１以上の値（ビットが立った状態）に変化するのをトリガにして、ＣＰＵ１１からの書込みがあったことを認識し、内部レジスタ１３１に書込まれたデータをＦＰＧＡ１４に渡す。また、ＣＰＵ１１からの読出しに対しては、ＤＳＰ１２から書込まれたデータがＦＰＧＡ１４を経由してＣＰＬＤ１３に渡され、ＣＰＵ１１が一定の周期または任意のタイミングで読出し処理を行う。
【００１８】
ＦＰＧＡ１４は、ＣＰＵ１１からのデータ書込みがあった場合は、ＣＰＬＤ１３から書込みデータを受信し、自身の内部レジスタ１４１に保持しておく。また、ＦＰＧＡ１４は、ＤＳＰ１２からのデータ書込みがあった場合は、別の内部レジスタ１４２にデータを保持し、ＣＰＬＤ１３へ渡す。上記ＦＰＧＡ１４は、ＦＰＧＡ１４とＤＳＰ１２との間のアクセスタイミングを調整する。
【００１９】
ＤＳＰ１２は、ＣＰＵ１１からのデータ書込みがあった場合は、ＤＳＰ１２自身がサンプリング周期でＦＰＧＡ１４の内部レジスタ１４１の保持データをチェックしながら読出し、その読出しデータに対する処理を実行する。そして、ＤＳＰ１２から処理結果等のデータの書込みを行う場合は、任意のタイミングでＦＰＧＡ１４の内部レジスタ１４２にデータを書込む。
【００２０】
次に上記実施形態において、ＣＰＵ１１〜ＤＳＰ１２〜ＣＰＵ１１までのアクセス手順について図２を参照して説明する。  
ＣＰＵ１１はデータの書込み処理を行う場合、ＣＰＬＤ１３の内部レジスタ１３１の内容が０（ゼロ）（ビットが落ちている状態）になっているか否かを確認し、０（ゼロ）である場合は、そのままデータを書込み、非０（ゼロ）であった場合は、一度０（ゼロ）を書込んだ後、データの書込みを行う。更にＣＰＵ１１は、上記書込み処理後直ぐに、先程書込んだＣＰＬＤ１３の内部レジスタ１３１に再度アクセスし、その内容をクリア、すなわち０（ゼロ）を書込んでビットを落とす（ステップＳ１）。
【００２１】
ＣＰＬＤ１３は、上記内部レジスタ１３１のビットが落ちている状態からビットが立った状態に変化するのをトリガとして、ＣＰＵ１１からの書込みがあったことを認識し、内部レジスタ１３１に書込まれたデータをＦＰＧＡ１４へ出力して内部レジスタ１４１に書込む（ステップＳ２）。その後、ＣＰＬＤ１３の内部レジスタ１３１は、上記したようにＣＰＵ１１によって０（ゼロ）にクリアされる。
【００２２】
ＦＰＧＡ１４は、上記ＣＰＬＤ１３により内部レジスタ１４１に書込まれたデータを保持する。ＤＳＰ１２の内部では、サンプリング周期でＦＰＧＡ１４の内部レジスタ１４１の保持データをチェックして読出す（ステップＳ３）。ＤＳＰ１２がＦＰＧＡ１４の内部レジスタ１４１のデータを読出すと、ＦＰＧＡ１４が自身の内部レジスタ１４１をクリアする。
【００２３】
ＤＳＰ１２は、ＦＰＧＡ１４の内部レジスタ１４１から読出したデータに従って内部処理を行い、その処理結果などを任意のタイミングでＦＰＧＡ１４の内部レジスタ１４２に書込む（ステップＳ４）。
【００２４】
ＦＰＧＡ１４は、ＤＳＰ１２からのデータが内部レジスタ１４２に書込まれると、そのデータをＣＰＬＤ１３へ出力して内部レジスタ１３２に書込む（ステップＳ５）。
【００２５】
ＣＰＵ１１は、上記ステップＳ１でＣＰＬＤ１３の内部レジスタ１３１に書込み処理を行った後、一定の周期、または任意のタイミングで、ＣＰＬＤ１３の内部レジスタ１３２の保持データを読出す（ステップＳ６）。すなわち、ＣＰＵ１１は、ＣＰＬＤ１３の内部レジスタ１３１にデータを書込んだ後、ＣＰＬＤ１３の内部レジスタ１３２に保持されているＤＳＰ１２の処理結果を読出すことで、自身が行った書込み処理の戻り値（結果）を取得する。
【００２６】
上記のようにＣＰＵ１１から一定周期、または任意のタイミングで、ＣＰＬＤ１３の内部レジスタ１３１に対してクリアされている状態、すなわちビットが落ちている状態から、データを書込んでビットが立っている状態（非ゼロ）にすることによって、ＣＰＬＤ１３の内部レジスタ１３１の保持データがＦＰＧＡ１４を経由してＤＳＰ１２に伝達される。そして、それに対するＤＳＰ１２からの処理結果を同じく一定周期、または任意のタイミングでＣＰＬＤ１３における書込み用とは別の読出し用の内部レジスタ１３２から読出すことで、ＣＰＵ１１〜ＤＳＰ１２〜ＣＰＵ１１までの一連の流れが成立する。
【００２７】
ＣＰＬＤ１３で、対ＣＰＵ１１間のインタフェースを取り決め、ＦＰＧＡ１４がＦＰＧＡ１４（ＣＰＬＤ１３）−ＤＳＰ１２間のアクセスのタイミングを制御している。
【００２８】
プロセッサ間でデータの受け渡しを行う場合、ハードウェアの制限及び変更がない場合は、ＣＰＵ１１−ＤＳＰ１２間にデュアルポートＲＡＭを設けたり、あるいは直結してしまうこともできるが、ハードウェアの制限及び変更がある場合は、上記実施形態に示したようにプログラマブルなハードウェアデバイスを用いることで、ハードウェアの制限及び変更に伴うハードウェア修正の手間を吸収することができる。
【００２９】
また、使用用途によっても柔軟に対応できるように、ある程度インタフェース及びタイミングが確定している状況である場合は、ＣＰＬＤ１３のみの制御とし、起動毎に可変するような状況である場合は、ＦＰＧＡ１４に対してリコンフィグすることで対応可能となる。
【００３０】
上記実施形態に示したように、ＣＰＵ１１−ＤＳＰ１２間にプログラマブルなＣＰＬＤ１３及びＦＰＧＡ１４を設けてデータの受け渡しを行わせることにより、ＣＰＵ１１−ＤＳＰ１２間を直結した場合より、使用状況、範囲、用途に柔軟性を持たせることができる。また、ＤＳＰ１２の高速化による変更などにより、ＤＳＰ１２自身が変更になった場合など、ＦＰＧＡ１４−ＤＳＰ１２間のアクセスタイミングが変わった場合には、ＦＰＧＡ１４をリコンフィグすることで、対応することが可能となる。更に、ＣＰＵ１１−ＤＳＰ１２間のデータ送受信をＩ／Ｏポートと同様に単純にすることもできるし、プログラマブルなハードウェアデバイス（ＣＰＬＤ／ＦＰＧＡ）を駆使して、細かい制御をすることも可能である。
【００３１】
なお、上記実施形態において、ＣＰＵ１１に代えてＤＳＰを使用し、ＤＳＰ１２に代えてＣＰＵを使用する場合においても、上記実施形態と同様にして実施し得るものである。
【００３２】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できるものである。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態に係るプロセッサ間におけるデータ送受信システムの構成を示すブロック図である。
【図２】同実施形態におけるＣＰＵ〜ＤＳＰ〜ＣＰＵまでの一連のアクセス手順を説明するための図である。
【符号の説明】
【００３４】
１１…ＣＰＵ、１２…ＤＳＰ、１３…ＣＰＬＤ、１３１、１３２…内部レジスタ、１４…ＦＰＧＡ、１４１、１４２…内部レジスタ、１５ａ〜１５ｃ…信号線
【図１】
2008071285.tif 000003
【図２】
2008071285.tif 000004