(57)【要約】【課題】デュアルポートメモリの種類に依存しないで、デュアルポートメモリに対して任意のタイミングでアクセスする。【解決手段】各ＧＰＰがクロック信号に同期するタイミングでＤＰＲＡＭ２６にアクセスする場合、割込みコントローラ２４において、ＦＰＧＡ２４０は、クロック発生部３からのクロック信号と同期して、タイマ割込みを各ＧＰＰにあげる。ＰＬＤ２４４は、各ＧＰＰが、各同期エリアのどれにアクセスすべきかという情報を、各ＧＰＰに対して出力する。各ＧＰＰがクロック信号に対し非同期のタイミングでＤＰＲＡＭ２６にアクセスする場合、ＦＰＧＡ２４０は、一方のＧＰＰの非同期エリアへのデータ書き込みに応じて、もう一方のＧＰＰに対して書込み完了通知を発信するために、書込み完了割込みをあげる。ＰＬＤ２４４は、各ＧＰＰ間におけるマスタとスレーブの関係に関する情報を、各デバイスに提供する。【選択図】図１
2007122310.tif 000002
【特許請求の範囲】
【請求項１】
それぞれのデータを処理する複数のデータ処理手段と、
前記複数のデータ処理手段それぞれのデータを、任意のタイミングで受け入れ、前期受け入れたデータを、このデータ処理手段以外から読み出され得るように記憶するデータ記憶手段と、
前記複数のデータ処理手段それぞれを、前記記憶されたこのデータ処理手段以外のデータ処理手段のデータを前記複数のデータ処理手段の全てが同じタイミングで読み出すように制御する、データ読み出し制御手段と
を有するデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デュアルポートメモリを使用してデータの処理を行うデータ処理装置に関する。
【背景技術】
【０００２】
特許文献１は、ＣＰＵがデュアルポートメモリへ非同期にアクセスする方法を開示する。
しかしながら、特許文献１に開示された方法では、複数のＣＰＵがデュアルポートメモリに同時にアクセスしたときに生じるコンフリクトは、デュアルポートメモリにコンフリクト処理機能が装備されていなければ解消されない。
従って、デュアルポートメモリの種類に依存しなくても、複数のＣＰＵが、デュアルポートメモリに対して任意のタイミングでアクセスできるように改良されたデータ処理装置が望まれる。
【特許文献１】特開２００４−７２８１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述の背景からなされたものであり、デュアルポートメモリの種類に依存しないで、デュアルポートメモリに対して任意のタイミングでアクセスするために適したデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記目的を達成するために、本発明にかかるデータ処理装置は、それぞれのデータを処理する複数のデータ処理手段と、前記複数のデータ処理手段それぞれのデータを、任意のタイミングで受け入れ、前期受け入れたデータを、このデータ処理手段以外から読み出され得るように記憶するデータ記憶手段と、前記複数のデータ処理手段それぞれを、前記記憶されたこのデータ処理手段以外のデータ処理手段のデータを前記複数のデータ処理手段の全てが同じタイミングで読み出すように制御する、データ読み出し制御手段とを有する。
【発明の効果】
【０００５】
本発明にかかるデータ処理装置によれば、デュアルポートメモリの種類に依存しないで、デュアルポートメモリに対して任意のタイミングでアクセスできる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施形態を説明する。
【０００７】
［デュアルポートＲＡＭシステム１］
図１は、本発明が適用されるデュアルポートＲＡＭシステム１の構成を示す図である。
図１に示すように、本発明が適用されるデュアルポートＲＡＭシステム１は、システムボード２−１およびシステムボード２−２が、バス１００を介して接続されて構成される。
なお、以下の各図においては、図示の簡略化および明確化のために、本発明の説明に必要ない構成部分については、適宜省略されている。
【０００８】
システムボード２−１は、ＧＰＰ（Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｐｒｏｃｅｓｓｏｒ）２０−１および外部メモリ２２−１を含む。
システムボード２−２は、ＧＰＰ２０−２、外部メモリ２２−２、ＤＰＲＡＭ（Ｄｕａｌ  Ｐｏｒｔ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２６および割込みコントローラ２４が、バス１００を介して接続されて構成される。
割込みコントローラ２４は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）２４０およびＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）２４４を含む。
また、割込みコントローラ２４は、システムボード２−２の外部のクロック発生部３からクロック信号を入力する。
【０００９】
デュアルポートＲＡＭシステム１は、ＧＰＰ２０−１とＧＰＰ２０−２が、ＤＰＲＡＭ２６を介してデータの送受信を行う際に、ＤＰＲＡＭ２６に対して任意のタイミングでアクセスできるシステムである。
ここでいう任意のタイミングとは、クロック信号に対する同期タイミング、非同期タイミングおよび同期，非同期同時タイミングを含む。
【００１０】
システムボード２−１において、ＧＰＰ２０−１は、例えば、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）あるいは汎用のＣＰＵである。
ＧＰＰ２０−１は、内部メモリ２０２−１、割込み通知信号発信部２０４−１および割込み通知信号受信部２０６−１を含む。
ＧＰＰ２０−１は、内部メモリ２０２−１内のデータと、ＧＰＰ２０−１とローカルバスで接続された外部メモリ２２−１内のデータを、任意のタイミングでＤＰＲＡＭ２６へ書き込む。
また、ＧＰＰ２０−１がクロック信号に非同期のタイミングでＤＰＲＡＭ２６に書込みアクセスした場合のみ、割込み通知信号発信部２０４−１は、書き込み終了後に割込みコントローラ２４に対してＤＰＲＡＭ非同期エリア書込み完了割込み通知信号を発信する。
さらに、割込み通知信号受信部２０６−１が割込みコントローラ２４からＧＰＰ２０−２からの書込み完了割込み通知信号を受信した場合、ＧＰＰ２０−１は、ＤＰＲＡＭ２６の非同期エリア２６０−３にてＧＰＰ２０−２が書き込んだデータを読み出す。
さらに、ＧＰＰ２０−１は、読み出し処理完了後、割込みコントローラ２４に記憶されたＧＰＰ２０−２からの書込み完了割込み要因をクリアする。
【００１１】
システムボード２−２において、ＧＰＰ２０−２は、例えば、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）あるいは汎用のＣＰＵである。
ＧＰＰ２０−２は、内部メモリ２０２−２、割込み通知信号発信部２０４−２および割込み通知信号受信部２０６−２を含む。
ＧＰＰ２０−２は、内部メモリ２０２−２内のデータと、ＧＰＰ２０−２とローカルバスで接続された外部メモリ２２−２内のデータを、任意のタイミングでＤＰＲＡＭ２６へ書き込む。
また、ＧＰＰ２０−２がクロック信号に非同期のタイミングでＤＰＲＡＭ２６に書込みアクセスした場合のみ、割込み通知信号発信部２０４−２は、書き込み終了後に割込みコントローラ２４に対してＤＰＲＡＭ非同期エリア書込み完了割込み通知信号を発信する。
さらに、割込み通知信号受信部２０６−２が割込みコントローラ２４からＧＰＰ２０−１からの書込み完了割込み通知信号を受信した場合、ＧＰＰ２０−２は、ＤＰＲＡＭ２６の非同期エリア２６０−３にてＧＰＰ２０−１が書き込んだデータを読み出す。
さらに、ＧＰＰ２０−２は、読み出し処理完了後、割込みコントローラ２４に記憶されたＧＰＰ２０−１からの書込み完了割込み要因をクリアする。
【００１２】
システムボード２−２において、ＤＰＲＡＭ２６は、ＧＰＰ２０−１とＧＰＰ２０−２との間でデータの送受信を行うための、共有メモリとして使用される。
なお、ＤＰＲＡＭ２６には、割込みロジックおよびセマフォロジックなどのコンフリクト処理機能が備わっていてもよいし、備わっていなくてもよい。
また、ＤＰＲＡＭ２６にコンフリクト処理機能が備わっている場合であっても、その種類は問われない。
【００１３】
図２は、ＤＰＲＡＭ２６のメモリマップ２６０を示す図である。
図２に示すように、ＤＰＲＡＭ２６は、同期エリア２６０−１，２６０−２および非同期エリア２６０−３から構成されている。
同期エリア２６０−１は、コマンド領域２６２−１、ステータス領域２６４−１およびデータバッファ領域２６６−１から構成されている。
同期エリア２６０−２は、コマンド領域２６２−２、ステータス領域２６４−２およびデータバッファ領域２６６−２から構成されている。
非同期エリア２６０−３は、非同期コマンド領域２６２−３、非同期ステータス領域２６４−３および非同期データバッファ領域２６６−３から構成されている。
各コマンド領域と各ステータス領域を出入りする制御データの流れを、破線２７２で示す。
各データバッファ領域を出入りする入出力データの流れを、実線２７４で示す。
【００１４】
コマンド領域２６２−１，２６２−２は、クロック信号に対する同期アクセス時に、ＧＰＰ２０−１が、制御コマンド通知を書き込むために使用される。
ステータス領域２６４−１，２６４−２は、クロック信号に対する同期アクセス時に、ＧＰＰ２０−２が、ステータス通知を書き込むために使用される。
データバッファ領域２６６−１，２６６−２は、クロック信号に対する同期アクセス時に、ＧＰＰ２０−１，２０−２が、データの書き込みや読み出しを行うために使用される。
【００１５】
非同期コマンド領域２６２−３は、ＧＰＰ２０−１が、クロック信号に非同期のタイミングで、制御コマンド通知を書き込むために使用される。
非同期ステータス領域２６４−３は、ＧＰＰ２０−２が、クロック信号に非同期のタイミングで、ステータス通知を書き込むために使用される。
非同期データバッファ領域２６６−３は、ＧＰＰ２０−１，２０−２が、クロック信号に非同期のタイミングで、データの書き込みおよび読み出しを行うのに使用される。
なお、ＤＰＲＡＭ２６のメモリマップ２６０は、システムに応じて、適宜書き換えることが可能である。
【００１６】
以下、図１を用いて、割込みコントローラ２４における処理について説明する。
まず、ＧＰＰ２０−１，２０−２が、クロック信号に同期するタイミングでＤＰＲＡＭ２６にアクセスする場合について説明する。
割込みコントローラ２４において、ＦＰＧＡ２４０は、クロック発生部３からのクロック信号と同期して、タイマ割込み通知信号をＧＰＰ２０−１，２０−２に発信する。
ＰＬＤ２４４は、ＧＰＰ２０−１，２０−２が、同期エリア２６０−１，２６０−２のどれにアクセスすべきかというアドレス情報を、ＧＰＰ２０−１，２０−２に対して出力する。
【００１７】
これにより、例えば、ＧＰＰ２０−１が同期エリア２６０−１にアクセスしている時は、ＧＰＰ２０−２は同期エリア２６０−２にアクセスする。
すなわち、ＧＰＰ２０−１，２０−２が、コンフリクトを発生させずに、同時にＤＰＲＡＭ２６にアクセスすることが可能である。
【００１８】
次に、ＧＰＰ２０−１，２０−２が、クロック信号に対し非同期のタイミングでＤＰＲＡＭ２６にアクセスする場合について説明する。
なお、ＦＰＧＡ２４０およびＰＬＤ２４４については、割込み処理に関し、システムに応じて、適宜プログラムの変更が可能である。
【００１９】
ＦＰＧＡ２４０は、ＧＰＰ２０−１からの非同期エリア２６０−３へのデータ書き込みに応じて、ＧＰＰ２０−２に対して、ＧＰＰ２０−１からの書込み完了通知を発信する。
ＰＬＤ２４４は、ＧＰＰ２０−１またはＧＰＰ２０−２からの完了割込み要因を記憶する。
また、ＰＬＤ２４４は、ＧＰＰ２０−１とＧＰＰ２０−２の間におけるマスタとスレーブの関係に関する情報を、各デバイスに提供する。
ここで言うマスタ側とは、先にＤＰＲＡＭ２６にアクセスするなど、先に処理を行う側のことであり、スレーブ側とは、マスタ側に呼応して処理を行う側のことである。
つまり、非同期でＧＰＰ２０−１，２０−２がアクセスする場合は、ＰＬＤ２４４により、マスタ側（本実施例ではＧＰＰ２０−１）から処理を行い、スレーブ側（本実施例ではＧＰＰ２０−２）がそれに対応することで、データの送受信を行うことができる。
なお、マスタ側とスレーブ側の設定について、ＧＰＰ２０−１，２０−２のどちらをマスタ側あるいはスレーブ側に設定するか、適宜変更することも可能である。
【００２０】
さらに、ＤＰＲＡＭ２６でデータを送受信するシーケンスについても、システムに応じて、ドライバなどにより適宜プログラムを変更することが可能である。
【００２１】
［デュアルポートＲＡＭシステム１の全体的な動作］
図３は、図１に示したデュアルポートＲＡＭシステム１において、ＧＰＰ２０−１，２０−２が、ＤＰＲＡＭ２６に対して、クロック信号に同期するタイミングでアクセスする場合の、全体的な動作（Ｓ１０）を示すシーケンス図である。
なお、図３ではＧＰＰ２０−１が同期エリア２６０−１に、ＧＰＰ２０−２が同期エリア２６０−２にそれぞれアクセスする場合を示しているが、ＧＰＰ２０−１，２０−２がアクセスする同期エリアはそれぞれ逆であってもよい。
【００２２】
図３に示すように、ステップ１００（Ｓ１００）において、割込みコントローラ２４は、クロック発生部３から、一定間隔のクロック信号を入力する。
ステップ１０２（Ｓ１０２）において、割込みコントローラ２４は、ＧＰＰ２０−１とＧＰＰ２０−２に対して、タイマ割込み通知信号を発信する。
【００２３】
ステップ１０４（Ｓ１０４）において、ＧＰＰ２０−１は、タイマ割込み通知信号を検出すると、同期エリア２６０−１のデータバッファ領域２６６−１にデータを書き込む。
ステップ１０６（Ｓ１０６）において、ＧＰＰ２０−２は、タイマ割込み通知信号を検出すると、同期エリア２６０−２のデータバッファ領域２６６−２にデータを書き込む。
【００２４】
ステップ１０８（Ｓ１０８）において、割込みコントローラ２４は、クロック発生部３から、一定間隔のクロック信号を入力する。
ステップ１１０（Ｓ１１０）において、割込みコントローラ２４は、ＧＰＰ２０−１とＧＰＰ２０−２に対して、タイマ割込み通知信号を発信する。
【００２５】
ステップ１１２（Ｓ１１２）において、ＧＰＰ２０−１は、タイマ割込み通知信号を検出すると、同期エリア２６０−２のデータバッファ領域２６６−２からデータを読み出す。
ステップ１１４（Ｓ１１４）において、ＧＰＰ２０−２は、タイマ割込み通知信号を検出すると、同期エリア２６０−１のデータバッファ領域２６６−１からデータを読み出す。
【００２６】
図４は、図１に示したデュアルポートＲＡＭシステム１において、ＧＰＰ２０−１，２０−２が、ＤＰＲＡＭ２６に対して、クロック信号に対し非同期のタイミングでアクセスする場合の、全体的な動作（Ｓ２０）を示すシーケンス図である。
【００２７】
図４に示すように、ステップ２００（Ｓ２００）において、ＧＰＰ２０−１は、非同期エリア２６０−３の非同期データバッファ領域２６６−３にデータを書き込む。
ステップ２０２（Ｓ２０２）において、ＧＰＰ２０−１は、割込みコントローラ２４に対し、ＤＰＲＡＭ非同期エリア書込み完了割込み通知信号を発信する。
【００２８】
ステップ２０４（Ｓ２０４）において、割込みコントローラ２４は、ＤＰＲＡＭ非同期エリア書込み完了割込み通知信号を検出すると、ＧＰＰ２０−２に対し、ＧＰＰ２０−１からの書込み完了割込み通知信号を発信する。
ステップ２０６（Ｓ２０６）において、ＧＰＰ２０−２は、ＧＰＰ２０−１からの書込み完了割込み通知信号を検出すると、非同期エリア２６０−３の非同期データバッファ領域２６６−３から、ＧＰＰ２０−１が書き込んだデータを読み出す。
ステップ２０８（Ｓ２０８）において、ＧＰＰ２０−２は、ＧＰＰ２０−１が書き込んだデータの読み出し処理が終了すると、割込みコントローラ２４に対し、ＧＰＰ２０−１からの書込み完了割込み要因をクリアする。
【００２９】
ステップ２１０（Ｓ２１０）において、ＧＰＰ２０−２は、非同期エリア２６０−３の非同期データバッファ領域２６６−３にデータを書き込む。
ステップ２１２（Ｓ２１２）において、ＧＰＰ２０−２は、割込みコントローラ２４に対し、ＤＰＲＡＭ非同期エリア書込み完了割込み通知信号を発信する。
【００３０】
ステップ２１４（Ｓ２１４）において、割込みコントローラ２４は、ＤＰＲＡＭ非同期エリア書込み完了割込み通知信号を検出すると、ＧＰＰ２０−１に対し、ＧＰＰ２０−２からの書込み完了割込み通知信号を発信する。
ステップ２１６（Ｓ２０６）において、ＧＰＰ２０−１は、ＧＰＰ２０−２からの書込み完了割込み通知信号を検出すると、非同期エリア２６０−３の非同期データバッファ領域２６６−３から、ＧＰＰ２０−２が書き込んだデータを読み出す。
ステップ２１８（Ｓ２１８）において、ＧＰＰ２０−１は、ＧＰＰ２０−２が書き込んだデータの読み出し処理が終了すると、割込みコントローラ２４に対し、ＧＰＰ２０−２からの書込み完了割込み要因をクリアする。
【産業上の利用可能性】
【００３１】
本発明は、データの処理のために利用可能である。
【図面の簡単な説明】
【００３２】
【図１】本発明が適用されるデュアルポートＲＡＭシステムの構成を示す図である。
【図２】ＤＰＲＡＭのメモリマップを示す図である。
【図３】図１に示したデュアルポートＲＡＭシステムにおいて、ＧＰＰが、ＤＰＲＡＭに対して、クロック信号に同期するタイミングでアクセスする場合の、全体的な動作を示すシーケンス図である。
【図４】図１に示したデュアルポートＲＡＭシステムにおいて、ＧＰＰが、ＤＰＲＡＭに対して、クロック信号に対し非同期のタイミングでアクセスする場合の、全体的な動作を示すシーケンス図である。
【符号の説明】
【００３３】
１・・・デュアルポートＲＡＭシステム，
１００・・・バス，
１０２−１，１０２−２・・・割込み通知信号線，
２−１，２−２・・・システムボード，
２０−１，２０−２・・・ＧＰＰ，
２０２−１，２０２−２・・・内部メモリ，
２０４−１，２０４−２・・・割込み通知信号発信部，
２０６−１，２０６−２・・・割込み通知信号受信部，
２２−１，２２−２・・・外部メモリ，
２４・・・割込みコントローラ，
２４０・・・ＦＰＧＡ，
２４４・・・ＰＬＤ，
２６・・・ＤＰＲＡＭ，
２６０・・・メモリマップ，
２６０−１，２６０−２・・・同期エリア，
２６２−１，２６２−２・・・コマンド領域，
２６４−１，２６４−２・・・ステータス領域，
２６６−１，２６６−２・・・データバッファ領域，
２６０−３・・・非同期エリア，
２６２−３・・・非同期コマンド領域，
２６４−３・・・非同期ステータス領域，
２６６−３・・・非同期データバッファ領域，
２７２・・・制御データの流れ，
２７４・・・入出力データの流れ，
３・・・クロック発生部，
【図１】
2007122310.tif 000003
【図２】
2007122310.tif 000004
【図３】
2007122310.tif 000005
【図４】
2007122310.tif 000006