JP3963123B2 - Cpu間通信システム - Google Patents
Cpu間通信システム Download PDFInfo
- Publication number
- JP3963123B2 JP3963123B2 JP2002151523A JP2002151523A JP3963123B2 JP 3963123 B2 JP3963123 B2 JP 3963123B2 JP 2002151523 A JP2002151523 A JP 2002151523A JP 2002151523 A JP2002151523 A JP 2002151523A JP 3963123 B2 JP3963123 B2 JP 3963123B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- interrupt
- request
- data
- cpus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、デュアルポートメモリを用いた中央処理装置(CPU)間通信システムに関する。
【0002】
【従来の技術】
近年、機器の多機能化・複雑化が進んでおり、また、それらの機能をソフトウエアにより実現される場合が多くなってきている。それに伴い、器機内に複数のCPUを組み込みマルチCPUシステムとすることにより演算処理能力を向上させて、それらのソフトウエアによる各種機能を実行するようにしている。
【0003】
従来、機器内に組み込まれた2つの中央処理装置(CPU)間でメッセージを交換は、2つのCPUの双方から書き込み・読み出しが可能なデュアルポートメモリ(DPR:Dual Port RAM(Random Access Memory))などのメモリデバイスを介して行われている。
【0004】
そして、従来のCPU間通信システムでは、例えば、メッセージの伝達方向によって、DPRの書き込みエリアを分割して利用し、エリア内の特定の場所にマジックナンバーを書き込み、定期的に相手の書き込んだマジックナンバーを読み出すことにより、リクエストを受信するようにして、メッセージが正確に相手に伝わるようにしていた。
【0005】
【発明が解決しようとする課題】
しかしながら、上述の如き従来のCPU間通信システムでは、次のような問題があった。
【0006】
すなわち、定期的に相手の書き込んだマジックナンバーを読み出すことにより、リクエストを受信するようにしていたので、書き込んだデータがすぐに読み出されない。また、メッセージの伝達方向によって、DPRの書き込みエリアを分割して利用していたので、書き込みエリアの分割によってデバイスが有効に利用されない。また、双方で送信リクエストが発生した場合、混乱が発生する。さらに、一つの仕組みを多数のアプリケーションで利用できない。
【0007】
そこで、本発明の目的は、上述の如き従来の問題点に鑑み、衝突回避機能のある確実な双方向通信を行うことのできるCPU間通信システムを提供することのある。
【0008】
【課題を解決するための手段】
本発明は、2つの中央処理装置(CPU:Central Processing Unit)の双方から書き込み・読み出しが可能なデュアルポートメモリを介して上記2つのCPU間でデータ交換を行うCPU間通信システムであって、特定のアドレスに書き込みを行うとそのアドレスに対応した割り込みを発生するデュアルポートメモリと、上記デュアルポートメモリの上記特定のアドレスを介して割り込み詳細情報を伝送することにより他方のCPUにデータの読み出しを開始させる読み出し要求を出力する割り込み手段と、上記割り込みに関する状態遷移を管理し、上記割り込み手段が上記読み出し要求を出力した際に他方のCPUも同時に読み出し要求を出力している場合に割り込み要求キャンセルプロセスを行い、上記キャンセルプロセス終了後、再度上記割り込み手段に割り込み要求を行わせるステートマシーンと、をそれぞれ有する第1及び第2のCPUとを備え、上記割り込み詳細情報に応じた割り込み処理を行うことを特徴とする。
【0009】
本発明に係るCPU間通信システムにおいて、上記第1及び第2のCPUはそれぞれ、各ポート番号に対応したキューを有し、かつ、パケット内のフィールドを解釈して指定されたキューに書き込む機能を備え、送信ポート番号・受信ポート番号・データ長及びデータの各フィールドで構成されるパケットを用いてデータの送受信を行う。
【0012】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0013】
本発明は、例えば図1に示すようなハードウエア構成のデュアルCPUシステム100に適用される。
【0014】
このデュアルCPUシステム100は、第1及び第2の中央処理装置(CPU:Central Processing Unit)10,20の双方から書き込み・読み出しが可能なデュアルポートメモリ(DPR:Dual Port RAM(Random Access Memory))30を介して上記第1及び第2のCPU10,20間でデータ交換を行うものであって、上記第1及び第2のCPU10,20のアドレスバス及びデータバスには、第1及び第2のリードオンリーメモリ(ROM:Read Only Memory)11,22や第1及び第2のランダムアクセスメモリ(RAM:Random Access Memory)12,22が接続されているとともに上記DPR30が接続されている。
【0015】
このデュアルCPUシステム100において、上記DPR30は、第1のCPU10が特定のアドレス例えばアドレス0x7FEへ書き込みを行うと、第2のCPU20に対して割り込みを発生させることができる。この割り込みは、第2のCPU20がアドレス0x7FEを読み出すことによって解除される。また、第2のCPU20が、特定のアドレス例えばアドレス0x7FFへ書き込みを行うと、第1のCPU10に対して割り込みを発生させることができる。同様に、この割り込みは、第1のCPU10がアドレス0x7FFを読み出すことによって解除される。
【0016】
割り込みを発生させるために書き込むデータには、次の表1に示すような意味が与えられている。この値によって割り込みの詳細情報を伝えることが可能になっている。上記割り込みの詳細情報は、データ送受信の状態遷移に利用される。
【0017】
【表1】
【0018】
また、このデュアルCPUシステム100では、図2に示すように、送信ポート番号、受信ポート番号、データ長、データの4フィールドからなるパケットを利用してデータが送受信される。
【0019】
ここで、各フィールドの意味を表2に示してある。
【0020】
【表2】
【0021】
すなわち、送信ポート番号は、データ送信元のポート番号を示すフィールドである。また、受信ポート番号は、データ送信先のポート番号を示すフィールドである。また、データ長は、データの長さを示すフィールドである。さらに、データは、送受信されるデータが格納されているフィールドである。
【0022】
上記各CPU10,20は、各ポート番号に対応したキューを有し、かつ、パケット内のフィールドを解釈して指定されたキューに書き込む機能を備え、送信ポート番号・受信ポート番号・データ長及びデータの各フィールドで構成されるパケットを用いてデータの送受信を行う。このように、第1及び第2のCPU10,20間のデータ交換において、送信ポート・受信ポートを指定することにより、多くのアプリケーションが、データ送受信機能を利用することができる。ここで、ポート番号に対応したキューの配置例として、ユーザインターフェース側として用いられる第1のCPU10における送信キューTXQ10及び受信キューRXQ10、システム側として用いられる第2のCPU20における送信キューTXQ20及び受信キューRXQ20を図3に示す。
【0023】
次に、このデュアルCPUシステム100において、データ送受信で利用する状態遷移を図4に示す。
【0024】
すなわち、このデュアルCPUシステム100における第1及び第2のCPU10,20は、電源が投入されて動作を開始すると、アイドル(IDLE)状態ST0となる。
【0025】
アイドル状態ST0のCPUは、内部アプリケーションから送信要求(SEND REQUEST)を受信すると、読み出し要求(READ REQUEST)を送信して、書き込み応答(WRITE ACK)待ち状態ST1に遷移する。また、このアイドル状態ST0のCPUは、他方のCPUから読み出し要求(READ REQUEST)を受信すると、書き込み応答(WRITE ACK)を送信して、書き込み完了(WRITE COMPLETE)状態ST4に遷移する。さらに、このアイドル状態ST0のCPUは、他方のCPUからリセット要求(RESET REQUEST)を受信すると、リセット確認(RESET CONFIRM)を送信して、アイドル状態ST0を継続する。
【0026】
書き込み応答(WRITE ACK)待ち状態ST1のCPUは、他方のCPUから読み出し要求(READ REQUEST)とキャンセル要求(CANCEL REQUEST)を受信すると、キャンセル確認(CANCEL CONFIRM)を送信して、アイドル状態ST0に遷移する。また、この書き込み応答待ち状態ST1のCPUは、他方のCPUから書き込み応答(WRITE ACK)を受信すると、書き込み動作を行い、書き込み完了(WRITE COMPLETE)を送信して、読み出し完了(READ COMPLETE)待ち状態ST2に遷移する。さらに、この書き込み応答待ち状態ST1のCPUは、他方のCPUから読み出し要求(READ REQUEST)を受信すると、キャンセル要求(CANCEL REQUEST)を送信して、キャンセル確認(CANCEL CONFIRM)待ち状態ST3に遷移する。
【0027】
読み出し完了(READ COMPLETE)待ち状態ST2のCPUは、他方のCPUから読み出し完了(READ COMPLETE)を受信すると、送信要求(SEND REQUEST)をリセットして、アイドル状態ST0に遷移する。また、この読み出し完了待ち状態ST2のCPUは、他方のCPUから読み出し完了(READ COMPLETE)と読み出し要求(READ REQUEST)を受信すると、送信要求(SEND REQUEST)をリセットして、書き込み応答(WRITE ACK)を送信して、書き込み完了(WRITE COMPLETE)状態ST4に遷移する。
【0028】
キャンセル確認(CANCEL CONFIRM)待ち状態ST3のCPUは、他方のCPUからキャンセル要求(CANCEL REQUEST)を受信すると、キャンセル確認(CANCEL CONFIRM)を送信して、キャンセル確認待ち状態ST3を維持する。また、このキャンセル確認待ち状態ST3のCPUは、他方のCPUからキャンセル確認(CANCEL CONFIRM)を受信すると、何もせずにアイドル状態ST0に遷移する。また、このキャンセル確認待ち状態ST3のCPUは、他方のCPUからキャンセル要求(CANCEL REQUEST)とキャンセル確認(CANCEL CONFIRM)を受信すると、キャンセル確認(CANCEL CONFIRM)を送信して、アイドル状態ST0に遷移する。さらに、このキャンセル確認待ち状態ST3のCPUは、他方のCPUからキャンセル確認(CANCEL CONFIRM)と書き込み要求(WRITE REQUEST)を受信すると、キャンセル確認(CANCEL CONFIRM)と書き込み応答(WRITE ACK)を送信して、書き込み完了(WRITE COMPLETE)状態ST4に遷移する。
【0029】
書き込み完了(WRITE COMPLETE)状態ST4のCPUは、他方のCPUから書き込み完了(WRITE COMPLETE)を受信すると、読み出し動作を行い、アイドル状態ST0に遷移する。
【0030】
このような構成のデュアルCPUシステム100では、通常、図5に示すシーケンスに従って第1及び第2のCPU10,20間でDPR30を介してデータ交換を行う。
【0031】
すなわち、この図5に示すシーケンスでは、CPU1に送信要求(SEND REQUEST)があり(ステップS1)、このCPU10は、CPU2に読み出し要求(READ REQUEST)を送り(ステップS2)、CPU2から送られてくる書き込み応答(WRITE ACK)を受信することにより(ステップS3)、データをDPR30のデータ領域に書き込む(ステップS4)。そして、CPU2は、CPU1から送られてくる書き込み完了(WRITE COMPLETE)を受信すると(ステップS5)、上記DPR30のデータ領域からデータを読み出して(ステップS6)、読み出し完了(READ COMPLETE)をCPU1に送る(ステップS7)。
【0032】
また、このデュアルCPUシステム100では、第1及び第2のCPU10,20間で読み出し要求(READ REQUEST)が衝突する場合、図6に示す衝突回避シーケンスに従ってDPR30を介してデータ交換を行う。
【0033】
この図6に示すシーケンスでは、CPU1に送信要求(SEND REQUEST)があり(ステップS10)、このCPU1がCPU2に読み出し要求(READ REQUEST)を送るとともに(ステップS11)、CPU2に送信要求(SEND REQUEST)があり(ステップS20)、このCPU2がCPU1に読み出し要求(READ REQUEST)を送り(ステップS21)、読み出し要求(READ REQUEST)が衝突すると、CPU1とCPU2は、互いに、他のCPUから送られてくるキャンセル要求(CANCEL REQUEST)を受信し(ステップS12,S22)、キャンセル確認(CANCEL CONFIRM)を他のCPUに送信する(ステップS13,S23)。
【0034】
すなわち、このデュアルCPUシステム100では、第1及び第2のCPU10,20から読み出し要求(READ REQUEST)が同時に出力された場合、キャンセルプロセスを行う。キャンセルプロセス終了後、再度読み出し要求(READ REQUEST)を出力する。各CPU10、20は異なる環境で動作しているため、再度出力した読み出し要求(READ REQUEST)は連続して同時となる確率が非常に低く、読み出し要求(READ REQUEST)の衝突を回避することができる。
【0035】
この図6に示すシーケンスでは、キャンセルプロセス終了後、CPU1が、CPU2に読み出し要求(READ REQUEST)を再度送信し(ステップS14)、これに対してCPU2から書き込み応答(WRITE ACK)が送られてくることにより(ステップS24)、データをDPR30のデータ領域に書き込む(ステップS15)。そして、CPU2は、CPU1から書き込み完了(WRITE COMPLETE)が送られてくることにより(ステップS16)、上記DPR30のデータ領域からデータを読み出して(ステップS25)、読み出し完了(READ COMPLETE)をCPU1に送る(ステップS26)。
【0036】
さらに、このデュアルCPUシステム100では、図7に示すシーケンスに従って第1及び第2のCPU10,20間でDPR30を介して交互送信によるデータ交換を行う。
【0037】
この図7に示す交互送信シーケンスでは、送信要求(SEND REQUEST)がCPU1にあり(ステップS30)、このCPU1がCPU2に読み出し要求(READ REQUEST)を送ると(ステップS31)、CPU2に送信要求(SEND REQUEST)があっても(ステップS40)、上記CPU1からの読み出し要求(READ REQUEST)に応じて上記CPU2が書き込み応答(WRITE ACK)を送ることにより(ステップS41)、CPU1は、データをDPR30のデータ領域に書き込み(ステップS32)。そして、CPU2は、CPU1から書き込み完了(WRITE COMPLETE)が送られてくることにより(ステップS33)、上記DPR30のデータ領域からデータを読み出して(ステップS42)、読み出し完了(READ COMPLETE)をCPU1に送り(ステップS43)、さらに、上記ステップS40の送信要求(SEND REQUEST)に基づく読み出し要求(READ REQUEST)をCPU1に送る(ステップS44)。
【0038】
すなわち、送信データを既に持っている場合、読み出し動作を終了したCPUは、連続して読み出し要求(READ REQUEST)を出力する。そのため、受信側として動作した後、送信側として動作する確率が非常に高くなる。
【0039】
その間に送信要求(SEND REQUEST)がCPU1にあっても(ステップS34)、CPU1が上記CPU2からの読み出し要求(READ REQUEST)に応じて書き込み応答(WRITE ACK)を送ることにより(ステップS35)、CPU2は、データをDPR30のデータ領域に書き込み(ステップS45)。そして、CPU1は、CPU2から書き込み完了(WRITE COMPLETE)が送られてくることにより(ステップS46)、上記DPR30のデータ領域からデータを読み出して(ステップS36)、読み出し完了(READ COMPLETE)をCPU2に送り(ステップS37)、さらに、上記ステップS34の送信要求(SEND REQUEST)に基づく読み出し要求(READ REQUEST)をCPU1に送る(ステップS38)。
【0040】
【発明の効果】
以上のように、本発明によれば、衝突回避機能のある確実な双方向の通信機能を提供できる。
【0041】
また、本発明によれば、CPUは他のCPUに対して割り込みをかける手段を有していて、かつ、割り込みをかけられた場合、通信用デバイス内の固定エリアを読み出すことによって、割り込みの詳細理由がわかる仕組みを有しているため、割り込み線は1本だけでよい。したがって、ハード構成が容易である。
【0042】
また、本発明によれば、受信ポート・送信ポートといったフィールドが、パケット内に存在しているため、複数のアプリケーションで同時に利用することが可能となる。例えば、コマンドの送受信とエラーメッセージの送受信、ステータスの送受信など全てのメッセージが送受信可能になる。
【0043】
また、本発明によれば、対称的な構造にであるため、開発するステートマシーンはひとつだけでよい。
【0044】
さらに、本発明によれば、同時に多数のメッセージ送信リクエストが双方に発生した場合、交互に送信が行われるような仕組みが存在しているため利用しやすい。
【図面の簡単な説明】
【図1】 本発明に係るデュアルCPUシステムの構成を示すブロック図である。
【図2】上記デュアルCPUシステムにおいて伝送されるパケットの構成を示す図である。
【図3】上記デュアルCPUシステムにおけるポート番号に対応したキューの配置を示す図である。
【図4】上記デュアルCPUシステムにおいて、データ送受信で利用する状態遷移を示す図である。
【図5】上記デュアルCPUシステムにおいて実行される通常シーケンスを示す図である。
【図6】上記デュアルCPUシステムにおいて実行される衝突回避シーケンスを示す図である。
【図7】上記デュアルCPUシステムにおいて実行される交互通信シーケンスを示す図である。
【符号の説明】
10,20 CPU、11,22 ROM、12,22 RAM、30 DPR30、100 デュアルCPUシステム
Claims (2)
- 2つの中央処理装置(CPU:Central Processing Unit)の双方から書き込み・読み出しが可能なデュアルポートメモリを介して上記2つのCPU間でデータ交換を行うCPU間通信システムであって、
特定のアドレスに書き込みを行うとそのアドレスに対応した割り込みを発生するデュアルポートメモリと、
上記デュアルポートメモリの上記特定のアドレスを介して割り込み詳細情報を伝送することにより他方のCPUにデータの読み出しを開始させる読み出し要求を出力する割り込み手段と、上記割り込みに関する状態遷移を管理し、上記割り込み手段が上記読み出し要求を出力した際に他方のCPUも同時に読み出し要求を出力している場合に割り込み要求キャンセルプロセスを行い、上記キャンセルプロセス終了後、再度上記割り込み手段に割り込み要求を行わせるステートマシーンと、をそれぞれ有する第1及び第2のCPUと
を備え、上記割り込み詳細情報に応じた割り込み処理を行うことを特徴とするCPU間通信システム。 - 上記第1及び第2のCPUはそれぞれ、ポート番号に対応したキューを有し、かつ、パケット内のフィールドを解釈して指定されたキューに書き込む機能を備え、送信ポート番号、受信ポート番号、データ長及びデータの各フィールドで構成されるパケットを用いてデータの送受信を行うことを特徴とする請求項1記載のCPU間通信システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002151523A JP3963123B2 (ja) | 2002-05-24 | 2002-05-24 | Cpu間通信システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002151523A JP3963123B2 (ja) | 2002-05-24 | 2002-05-24 | Cpu間通信システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003345768A JP2003345768A (ja) | 2003-12-05 |
JP3963123B2 true JP3963123B2 (ja) | 2007-08-22 |
Family
ID=29769101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002151523A Expired - Fee Related JP3963123B2 (ja) | 2002-05-24 | 2002-05-24 | Cpu間通信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3963123B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6601968B2 (ja) * | 2016-09-21 | 2019-11-06 | シャープ株式会社 | 放送受信装置、放送受信方法、及びプログラム |
JP6601967B2 (ja) * | 2016-09-21 | 2019-11-06 | シャープ株式会社 | 放送受信装置、放送受信方法、及びプログラム |
JP6601969B2 (ja) * | 2016-09-28 | 2019-11-06 | シャープ株式会社 | 放送受信装置、放送受信方法およびプログラム |
-
2002
- 2002-05-24 JP JP2002151523A patent/JP3963123B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003345768A (ja) | 2003-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI239187B (en) | System and method for managing and validating remote keys which correspond to outstanding data transactions | |
JP4322451B2 (ja) | Dspメモリ間あるいはdspメモリとcpu用メモリ(dpram)間データ転送方式 | |
JP3807250B2 (ja) | クラスタシステム、コンピュータ及びプログラム | |
JP3632695B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
CN116880773B (zh) | 一种内存扩展装置及数据处理方法、*** | |
JP4696199B2 (ja) | 転送ディスクリプタ用メモリを備えるusbホストコントローラ | |
CN112711550A (zh) | Dma自动配置模块和片上***soc | |
JP3963123B2 (ja) | Cpu間通信システム | |
JP2002024195A (ja) | 並列処理装置、及び、並列処理方法 | |
WO2007039933A1 (ja) | 演算処理装置 | |
JP5230545B2 (ja) | 制御装置 | |
WO2022205054A1 (zh) | 存储***和远程直接数据存取方法 | |
JP4411138B2 (ja) | データフロー制御方式、その回路、およびその方法 | |
JP6885635B1 (ja) | 情報処理装置、情報処理方法及び情報処理装置用プログラム | |
JP2018147430A (ja) | 通信装置、通信方法およびプログラム | |
JP3441062B2 (ja) | デジタル信号処理装置 | |
EP1459191B1 (en) | Communication bus system | |
JP2006091966A (ja) | メモリ制御装置 | |
JPH09269936A (ja) | リモートリード処理方法およびその装置 | |
JP5120765B2 (ja) | 並列計算機システム | |
JP2005251095A (ja) | Usb装置 | |
JP3457084B2 (ja) | パケットバス制御装置 | |
JP3056169B2 (ja) | データ送受信方式とその方法 | |
JPH10143486A (ja) | 並列計算機におけるデータ送受信方法 | |
JPH10320345A (ja) | バスコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050420 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060706 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060711 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060911 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070501 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070514 |
|
LAPS | Cancellation because of no payment of annual fees |