(57)【要約】【課題】  ＣＰＵ間のデータ転送において、あるＣＰＵから別のＣＰＵが持つメモリ資源に対して、ハードウェアを意識することなくシームレスなメモリアクセス環境を提供する。【解決手段】  データ転送制御回路は、第１ＣＰＵ３及び第１記憶部５が接続された第１バス１１と、第２ＣＰＵ４及び第２記憶部６が接続された第２バス１２との間に接続されたデータ転送制御回路２である。一時記憶部２４と、制御部２２とを具備する。一時記憶部２４は、第１ＣＰＵ３が第１バス１１を介して出力した第１アドレスと第１書き込みデータとを一時記憶する。制御部２２は、アドレス変換テーブルを参照して、その第１アドレスを第２記憶部６上の第２アドレスに変換する。第１ＣＰＵ３が第１バス１１を開放した後、制御部２２が、第２バス１２を占有して、第２バス１２を介して第２記憶部６のその第２アドレスへその第１書き込みデータを書き込む。【選択図】      図１
2005332145.tif 000002
【特許請求の範囲】
【請求項１】
第１ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）及び第１記憶部が接続された第１バスと、第２ＣＰＵ及び第２記憶部が接続された第２バスとの間に接続されたデータ転送制御回路であって、
前記第１ＣＰＵが前記第１バスを介して出力した第１アドレスと第１書き込みデータとを一時記憶する一時記憶部と、
アドレス変換テーブルを参照して、前記第１アドレスを前記第２記憶部上の第２アドレスに変換する制御部と
を具備し、
前記第１ＣＰＵが前記第１バスを開放した後、前記制御部が、前記第２バスを占有して、前記第２バスを介して前記第２記憶部の前記第２アドレスへ前記第１書き込みデータを書き込む
データ転送制御回路。
【請求項２】
請求項１に記載のデータ転送制御回路において、
前記第２バスを介して前記第１書き込みデータを出力してよいか否かを判定する判定部を更に具備し、
前記制御部は、前記判定部の判定に基づいて、前記第２バスを介して前記第２記憶部の前記第２アドレスへ前記第１書き込みデータを書き込む
データ転送制御回路。
【請求項３】
請求項１又は２に記載のデータ転送制御回路において、
前記第１バスに接続され、前記第１バスの第１バス幅に対応した第１バスコントローラと、
前記第２バスに接続され、前記第２バスの第２バス幅に対応した第２バスコントローラと
を更に具備し、
前記第１バス幅は、前記第２バス幅と異なり、
前記第２バスコントローラは、前記第１バス幅を有する前記第１書き込みデータを前記第２バス幅に変換して前記第２バスへ出力する
データ転送制御回路。
【請求項４】
請求項１又は２に記載のデータ転送制御回路において、
前記第１バスに接続され、前記第１バスの第１バス幅に対応した第１バスコントローラと、
前記第２バスに接続され、前記第２バスの第２バス幅に対応した第２バスコントローラと
を更に具備し、
前記第１バス幅は、前記第２バス幅と異なり、
前記制御部は、前記第１バス幅を有する前記第１書き込みデータを前記第２バス幅に変換して前記第２バスコントローラへ出力する
データ転送制御回路。
【請求項５】
第１ＣＰＵと、
前記第１ＣＰＵに属する第１記憶部と、
前記第１ＣＰＵと前記第１記憶部とが接続された第１バスと、
第２ＣＰＵと、
前記第２ＣＰＵに属する第２記憶部と、
前記第２ＣＰＵと前記第２記憶部とが接続された第２バスと、
前記第１バスと前記第２バスとの間に接続された請求項１乃至４のいずれか一項に記載のデータ転送制御回路と
を具備する
制御装置。
【請求項６】
請求項５に記載の制御装置において、
前記第１ＣＰＵ、前記第１記憶部、前記第１バス、前記第２ＣＰＵ、前記第２記憶部及び前記第２バスが、１チップに搭載されている
制御装置。
【請求項７】
第１ＣＰＵ及び第１記憶部が接続された第１バスと、第２ＣＰＵ及び第２記憶部が接続された第２バスとの間に接続されたデータ転送制御回路によるデータ転送方法であって、
（ａ）前記第１ＣＰＵが、前記第１バスを占有して、前記第１バスを介して前記データ転送制御回路へ第１アドレスと第１書き込みデータとを出力するステップと、
（ｂ）前記データ転送制御回路が、前記第１アドレスと前記第１書き込みデータを一時記憶するステップと、
（ｃ）前記データ転送制御回路が、アドレス変換テーブルを参照して、前記第１アドレスを前記第２記憶部上の第２アドレスに変換するステップと、
（ｄ）前記第１ＣＰＵが前記第１バスを開放するステップと、
（ｅ）前記データ転送制御回路が、前記第２バスを占有して、前記第２バスを介して前記第２記憶部の前記第２アドレスへ前記第１書き込みデータを出力するステップと
を具備する
データ転送方法。
【請求項８】
請求項７に記載のデータ転送方法において、
前記（ｅ）ステップは、
（ｅ１）前記データ転送制御回路が、前記第２バスを介して前記第１書き込みデータを出力してよいか否かを判定するステップと、
（ｅ２）前記判定に基づいて、前記第２バスを介して前記第２記憶部の前記第２アドレスへ前記第１書き込みデータを書き込むステップと
を備える
データ転送方法。
【請求項９】
請求項７又は８に記載のデータ転送方法において、
前記（ｅ）ステップは、
（ｅ３）前記第２バスコントローラは、前記第１バスの第１バス幅を有する前記第１書き込みデータを前記第２バスの第２バス幅に変換するステップを備える
データ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御回路及びデータ転送方法に関し、特にＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）間のデータ転送に関するデータ転送制御回路及びデータ転送方法に関する。
【背景技術】
【０００２】
近年、データ処理能力を向上させるため、複数のＣＰＵにより分担して処理を行う技術や、複数のＣＰＵにより処理を並列に行う技術が注目されている。そのため、複数のＣＰＵ間でのデータ転送が必要となる。このようなデータ転送方法として、例えば、シリアル転送によるデータ転送、及び、共有メモリ上でデータ交換を行う方法が知られている。
【０００３】
シリアル転送によるＣＰＵ間のデータ転送は、たとえば、特許文献１に記載されている。
特許文献１に記載された車載電子制御装置は、電源スイッチを介して車載バッテリから給電される車載電子制御装置である。メインＣＰＵ、サブＣＰＵ、全二重双方向シリアル通信用直並列変換器を備える。ただし、メインＣＰＵは、第一の不揮発メモリ、第一のＲＡＭメモリ及び第一の入出力ポ−トを備える。第一の不揮発メモリは、外部ツ−ルから被制御車両対応の第一の制御プログラム及び制御定数が少なくとも書込まれる。第一のＲＡＭメモリは、演算処理用である。サブＣＰＵは、第二の不揮発メモリ、第二のＲＡＭメモリ及び第二の入出力ポ−トを備える。第二の不揮発メモリは、第二の制御プログラムが書込まれる。第二のＲＡＭメモリは、演算処理用である。全二重双方向シリアル通信用直並列変換器は、上記被制御車両の運転中において上記メインＣＰＵと上記サブＣＰＵ間で相互にデ−タ交信を行う。そして、上記被制御車両の運転開始時に、上記第一の不揮発メモリに格納された制御定数の一部が上記シリアル通信用直並列変換器を介して上記第二のＲＡＭメモリに転送される。上記サブＣＰＵは上記第二の不揮発メモリの第二の制御プログラムの内容と、上記第二のＲＡＭメモリに転送された制御定数の内容に応じて所定の演算を行う。
【０００４】
【特許文献１】特開２００２−１０８８３５号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したシリアル転送の場合、データの転送レートはシリアルＩ／Ｆの通信レートで決まる。すなわち、転送レートはシリアルＩ／Ｆの性能で制限される。そのため、高速にかつ大量のデータを転送するために通信レートを上げたとしても、ＣＰＵの動作スピードよりもはるかに遅く、高速化できない。
【０００６】
さらに、共有メモリの場合、ソフトウェアによる排他制御を行う必要がある。すなわち、セマフォ等によるプロトコル制御を行うことや、共有メモリのエリア分けのためにメモリサイズを大きくすることが必要となる。そのため、ソフトウェアの制御が煩雑になる。アクセス競合によるセマフォフラグの重複により完全な排他制御を行うことができない場合、データの上書きの発生する危険性がある。セマフォエリアを複数用意する場合、共有メモリのサイズ増につながり、コスト増となる。
【０００７】
そのため、ＣＰＵ間のデータ転送において、コストを増加させることなくＣＰＵの動作速度に対応できる十分な転送レートを得られる技術が望まれる。
【０００８】
従って、本発明の目的は、ＣＰＵ間のデータ転送において、ＣＰＵの動作速度に対応できる十分な転送レートを得られるデータ転送制御回路、制御装置及びデータ転送方法を提供することにある。
【課題を解決するための手段】
【０００９】
以下に、発明を実施するための最良の形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための最良の形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１０】
従って、上記課題を解決するために、本発明のデータ転送制御回路は、第１ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）（３）及び第１記憶部（５）が接続された第１バス（１１）と、第２ＣＰＵ（４）及び第２記憶部（６）が接続された第２バス（１２）との間に接続されたデータ転送制御回路（２）である。一時記憶部（２４）と、制御部（２２）とを具備する。一時記憶部（２４）は、第１ＣＰＵ（３）が第１バス（１１）を介して出力した第１アドレスと第１書き込みデータとを一時記憶する。制御部（２２）は、アドレス変換テーブルを参照して、その第１アドレスを第２記憶部（６）上の第２アドレスに変換する。第１ＣＰＵ（３）が第１バス（１１）を開放した後、制御部（２２）が、第２バス（１２）を占有して、第２バス（１２）を介して第２記憶部（６）のその第２アドレスへその第１書き込みデータを書き込む。
【００１１】
上記のデータ転送制御回路において、第２バス（１２）を介してその第１書き込みデータを出力してよいか否かを判定する判定部（２１）を更に具備する。制御部（２２）は、判定部（２１）の判定に基づいて、第２バス（１２）を介して第２記憶部（６）のその第２アドレスへその第１書き込みデータを書き込む。
【００１２】
上記のデータ転送制御回路において、第１バスコントローラ（２６）と、第２バスコントローラ（２７）とを更に具備する。第１バスコントローラ（２６）は、第１バス（１１）に接続され、第１バス（１１）の第１バス幅に対応している。第２バスコントローラ（２７）は、第２バス（１２）に接続され、第２バス（１２）の第２バス幅に対応している。その第１バス幅は、その第２バス幅と異なる。第２バスコントローラ（２７）は、その第１バス幅を有するその第１書き込みデータをその第２バス幅に変換して第２バス（１２）へ出力する。
【００１３】
上記のデータ転送制御回路において、第１バスコントローラ（２６）と、第２バスコントローラ（２７）とを更に具備する。第１バスコントローラ（２６）は、第１バス（１１）に接続され、第１バス（１１）の第１バス幅に対応している。第２バスコントローラ（２７）は、第２バス（１２）に接続され、第２バス（１２）の第２バス幅に対応している。その第１バス幅は、その第２バス幅と異なる。制御部（２２）は、その第１バス幅を有するその第１書き込みデータをその第２バス幅に変換して第２バスコントローラ（２７）へ出力する。
【００１４】
上記課題を解決するために、本発明の制御装置は、第１ＣＰＵ（３）と、第１ＣＰＵ（３）に属する第１記憶部（５）と、第１ＣＰＵ（３）と第１記憶部（５）とが接続された第１バス（１１）と、第２ＣＰＵ（４）と、第２ＣＰＵ（４）に属する第２記憶部（６）と、第２ＣＰＵ（４）と第２記憶部（６）とが接続された第２バス（１２）と、第１バス（１１）と第２バス（１２）との間に接続された請求項１乃至４のいずれか一項に記載のデータ転送制御回路（２）とを具備する。
【００１５】
上記の制御装置において、第１ＣＰＵ（３）、第１記憶部（５）、第１バス（１１）、第２ＣＰＵ（４）、第２記憶部（６）及び第２バス（１２）が、１チップに搭載されている。
【００１６】
上記課題を解決するために、本発明のデータ転送方法は、第１ＣＰＵ（３）及び第１記憶部（５）が接続された第１バス（１１）と、第２ＣＰＵ（４）及び第２記憶部（６）が接続された第２バス（１２）との間に接続されたデータ転送制御回路（２）によるデータ転送方法である。（ａ）〜（ｅ）ステップを具備する。（ａ）ステップでは、第１ＣＰＵ（３）が、第１バス（１１）を占有して、第１バス（１１）を介してデータ転送制御回路（２）へ第１アドレスと第１書き込みデータとを出力する。（ｂ）ステップでは、データ転送制御回路（２）が、その第１アドレスとその第１書き込みデータを一時記憶する。（ｃ）ステップでは、データ転送制御回路（２）が、アドレス変換テーブルを参照して、その第１アドレスを第２記憶部（６）上の第２アドレスに変換する。（ｄ）ステップでは、第１ＣＰＵ（３）が第１バス（１１）を開放する。（ｅ）ステップでは、データ転送制御回路（２）が、第２バス（１２）を占有して、第２バス（１２）を介して第２記憶部（６）のその第２アドレスへその第１書き込みデータを出力する。
【００１７】
上記のデータ転送方法において、（ｅ）ステップは、（ｅ１）〜（ｅ２）ステップを備える。（ｅ１）ステップでは、データ転送制御回路（２）が、第２バス（１２）を介してその第１書き込みデータを出力してよいか否かを判定する。（ｅ２）ステップでは、その判定に基づいて、第２バス（１２）を介して第２記憶部（６）のその第２アドレスへその第１書き込みデータを書き込む。
【００１８】
上記のデータ転送方法において、（ｅ）ステップは、（ｅ３）第２バスコントローラ（２７）は、第１バス（１１）の第１バス幅を有するその第１書き込みデータを第２バス（１２）の第２バス幅に変換するステップを備える。
【発明の効果】
【００１９】
本発明により、ＣＰＵ（３）はメモリアクセスで容易に他のＣＰＵ（４）の記憶部（６）をアクセスできるため、通信制御に使用するデバイスドライバが不要となる。使用コード量を減らすことができ、コードメモリを有効に活用することができる。データ転送のみに使用される共有メモリが不要となり、ハードウェア量を低減することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明のデータ転送制御回路、制御装置及びデータ転送方法の実施の形態に関して、添付図面を参照して説明する。
【００２１】
まず、本発明のデータ転送制御回路及びそれを適用した制御装置の実施の形態の構成について説明する。
図１は、本発明の制御装置の実施の形態の構成を示すブロック図である。制御装置１は、データ転送制御回路２、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）３、ＣＰＵ４、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）５、ＲＡＭ６、バスアービタ７、バスアービタ８、ローカルバス１１、ローカルバス１２、信号線１３及び信号線１４を具備している。
【００２２】
第１ＣＰＵとしてのＣＰＵ３は、ローカルバス１１に接続されている。
第１記憶部としてのＲＡＭ５は、ローカルバス１１に接続され、ＣＰＵ３に属している。ＣＰＵ３用に割り当てられたメモリ領域に加えて、ＣＰＵ４用に割り当てられたメモリ領域５−１を有している。ＲＡＭ５は、他の種類の記憶装置でも良い。
第１バスとしてのローカルバス１１は、バスアービタ７、ＣＰＵ３、ＲＡＭ５及びデータ転送制御回路２が接続されている。
バスアービタ７は、ローカルバス１１を介したデータの転送を制御する。
【００２３】
第２ＣＰＵとしてのＣＰＵ４は、ローカルバス１２に接続されている。
第２記憶部としてのＲＡＭ６は、ローカルバス１２に接続され、ＣＰＵ３に属している。ＣＰＵ４用に割り当てられたメモリ領域に加えて、ＣＰＵ３用に割り当てられたメモリ領域６−１を有している。ＲＡＭ６は、他の種類の記憶装置でも良い。
第２バスとしてのローカルバス１２は、バスアービタ８、ＣＰＵ４、ＲＡＭ６及びデータ転送制御回路２に接続されている。
バスアービタ８は、ローカルバス１２を介したデータの転送を制御する。
【００２４】
データ転送制御回路２は、ＣＰＵ４に属するＲＡＭ６とＣＰＵ３との間のデータの転送、及び、ＣＰＵ３に属するＲＡＭ５とＣＰＵ４との間のデータの転送を仲介する。データ転送制御回路２は、優先順位判定部２１と、メイン制御部２２と、バッファメモリ２４と、バスコントローラ２６、２７とを備えている。
【００２５】
一時記憶部としてのバッファメモリ２４は、ＣＰＵ３による書き込み動作時に、ＣＰＵ３がローカルバス１１を介して出力した書き込むデータとしての書き込みデータと書き込み先のアドレスとしての実アドレスとを一時記憶する。ＣＰＵ３による読出し動作時に、ＣＰＵ３がローカルバス１１を介して出力した読み出すデータのアドレスとしての実アドレスとデータの読出し要求を示す読出し要求データとを一時記憶する。
同様にバッファメモリ２４は、ＣＰＵ４による書き込み動作時に、ＣＰＵ４がローカルバス１２を介して出力した書き込むデータとしての書き込みデータと書き込み先のアドレスとしての実アドレスとを一時記憶する。ＣＰＵ４による読出し動作時に、ＣＰＵ４がローカルバス１２を介して出力した読み出すデータのアドレスとしての実アドレスとデータの読出し要求を示す読出し要求データとを一時記憶する。
【００２６】
判定部としての優先順位判定部２１は、ＣＰＵ３による書き込み動作時に、ローカルバス１２を介して実アドレス及び書き込みデータを出力してよいか否かを判定する。ＣＰＵ３による読み出し動作時に、ローカルバス１２を介して実アドレス及び読出し要求データとを出力してよいか否かを判定する。
同様に、優先順位判定部２１は、ＣＰＵ４による書き込み動作時に、ローカルバス１１を介して実アドレス及び書き込みデータを出力してよいか否かを判定する。ＣＰＵ４による読み出し動作時に、ローカルバス１１を介して実アドレス及び読出し要求データとを出力してよいか否かを判定する。
【００２７】
優先順位の決定方法としては、例えば、バッファメモリ２４にデータを格納する際、所定の規則に基づいて識別子に対応付けて格納し、各データに対応する識別子に基づいて決定する。識別子をデータの格納順に小さい数から振る番号とし、データ処理を識別子の小さい順に実行することとすれば、優先順位は識別子の小さい順となる。ただし、優先順位の決定方法は、この方法に限定されない。
【００２８】
制御部としてのメイン制御部２２は、アドレス変換テーブル２３を備えている。アドレス変換テーブル２３を参照して、ＣＰＵ３から出力された実アドレスをＲＡＭ６上の実アドレスに変換する。
メイン制御部２２は、ＣＰＵ３による書き込み動作時に、メイン制御部２２は、優先順位判定部２１が最上位の優先順位と判定した場合、ローカルバス１２を介してＲＡＭ６の実アドレスへ書き込みデータを書き込む。ＣＰＵ３がローカルバス１１を開放した後、ローカルバス１２を占有して、ローカルバス１２を介してＲＡＭ６の実アドレスへ書き込みデータを書き込むようにしても良い。
メイン制御部２２は、ＣＰＵ３による読み出し動作時に、優先順位判定部２１が最上位の優先順位と判定した場合、ローカルバス１２を介してＲＡＭ６の実アドレスからデータを読み出す。ＣＰＵ３がローカルバス１１を開放した後、ローカルバス１２を占有して、ローカルバス１２を介してＲＡＭ６の実アドレスから読み出しデータを読み出すようにしても良い。
【００２９】
同様にメイン制御部２２は、アドレス変換テーブル２３を参照して、ＣＰＵ４から出力された実アドレスをＲＡＭ５上の実アドレスに変換する。
メイン制御部２２は、ＣＰＵ４による書き込み動作時に、メイン制御部２２は、優先順位判定部２１が最上位の優先順位と判定した場合、ローカルバス１２を介してＲＡＭ６の実アドレスへ書き込みデータを書き込む。ＣＰＵ４がローカルバス１２を開放した後、ローカルバス１１を占有して、ローカルバス１１を介してＲＡＭ５の実アドレスへ書き込みデータを書き込むようにしても良い。
メイン制御部２２は、ＣＰＵ４による読み出し動作時に、優先順位判定部２１が最上位の優先順位と判定した場合、ローカルバス１１を介してＲＡＭ５の実アドレスからデータを読み出す。ＣＰＵ４がローカルバス１２を開放した後、ローカルバス１１を占有して、ローカルバス１１を介してＲＡＭ５の実アドレスから読み出しデータを読み出すようにしても良い。
【００３０】
バスコントローラ２６は、ローカルバス１１に接続され、データ転送制御回路２とローカルバス１１との間のデータの入出力を制御する。ローカルバス１１の第１バス幅に対応している。
バスコントローラ２７は、ローカルバス１２に接続され、データ転送制御回路２とローカルバス１２との間のデータの入出力を制御する。ローカルバス１２の第２バス幅に対応している。
【００３１】
第１バス幅は、第２バス幅と異なっていても良い。その場合、以下の二つの方法の何れかで対応する。
（１）バスコントローラ２７は、ＣＰＵ３から出力された第１バス幅を有する書き込みデータを、第２バス幅に変換してローカルバス１２へ出力する。バスコントローラ２６は、ＣＰＵ４から出力された第２バス幅を有する書き込みデータを、第１バス幅に変換してローカルバス１１へ出力する。
【００３２】
（２）メイン制御部２２は、ＣＰＵ３から出力された第１バス幅を有する書き込みデータを、第２バス幅に変換してバスコントローラ２７を介してローカルバス１２へ出力する。ＣＰＵ４から出力された第２バス幅を有する書き込みデータを、第１バス幅に変換してバスコントローラ２６を介してローカルバス１１へ出力する。
【００３３】
制御装置１は、各構成（データ転送制御回路２、ＣＰＵ３、ＣＰＵ４、ＲＡＭ５、ＲＡＭ６、バスアービタ７、バスアービタ８、ローカルバス１１及びローカルバス１２）を全て１チップに含むＬＳＩ（ｌａｒｇｅ  ｓｃａｌｅ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）のような半導体装置でも良い。又は、制御装置１は、各構成の一部又は全部が個々のチップのようなボード状の装置でも良い。
【００３４】
図２は、本発明の制御装置の実施の形態におけるアドレス変換を示す図である。仮想アドレス空間Ｍ１は、ＣＰＵ３の認識する仮想アドレス空間を示す。ＣＰＵ４の場合も同様である。実アドレス空間Ｍ２は、実際のメモリ（本実施の形態ではＲＡＭ５及びＲＡＭ６）における実メモリ空間を示す。ＣＰＵ内アドレス変換テーブル（マッピングテーブル）は、仮想アドレス空間Ｍ１と実アドレス空間Ｍ２とを対応付けている。ここでは、ページングによりマッピングを行う場合を例として説明する。ただし、本発明は、それに限定されるものではなく、セグメンテーションやページセグメンテーションのような他の方法でマッピングを行う場合にも同様に実施できる。
【００３５】
仮想アドレス空間Ｍ１は、仮想ページ番号１〜ｍ（ｍ：自然数）の仮想アドレスＡ空間と、仮想ページ番号ｍ＋１〜ｍ＋ｋ（ｋ：自然数）の仮想アドレスＢ空間を含む。実アドレス空間Ｍ２は、実ページ番号ａ１〜ａｍの実アドレスＡ空間と、実ページ番号ａｍ＋１からａｍ＋ｋの実アドレスＢ空間とを含む。ＣＰＵ内アドレス変換テーブルは、テーブルＡにおいて仮想アドレスＡ空間を実アドレスＡ空間に、テーブルＢにおいて仮想アドレスＢ空間を実アドレスＢ空間にそれぞれ対応させている。
【００３６】
ここで、実アドレスＡ空間は、ＣＰＵ３に属するＲＡＭ５のアドレスを示している。実アドレスＢ空間は、ＣＰＵ４に属するＲＡＭ６におけるＣＰＵ３用に割り当てられたメモリ領域６−１のアドレスを示している。
【００３７】
図３は、本発明のデータ転送制御回路の実施の形態におけるメイン制御部に格納されたアドレス変換テーブルを示す図である。アドレス変換テーブル２３は、ＣＰＵアドレス変換テーブルで示された実アドレスＢ空間の実アドレスＢ２３−１と、ＲＡＭの実アドレスとしてのＲＡＭ実アドレス２３−２とを対応付けている。ただし、実アドレスＢ２３−１は、ＣＰＵ３が指定する実アドレスＢ、及び、ＣＰＵ４が指定する実アドレスＢの両方を含む。それに対応して、ＲＡＭ実アドレス２３−２は、ＣＰＵ３が指定する実アドレスＢに対応するＲＡＭ６のメモリ領域６−１の実アドレス、及び、ＣＰＵ４が指定する実アドレスＢに対応するＲＡＭ５のメモリ領域５−１の実アドレスの両方を含む。
【００３８】
図２及び図３により、ＣＰＵ４のＲＡＭ６がＣＰＵ３のメモリマップの一部に仮想的に組み込まれた状態になっている。そのため、ＣＰＵ３は、通常のメモリアクセスにおいて、仮想アドレス空間Ｍ１における仮想アドレスＢ空間のアドレスを指定することで、容易に他のＣＰＵ４のメモリ領域６−１をアクセスすることができる。それにより、ＣＰＵ４のメモリ領域にアクセスするための通信制御に使用するデバイスドライバが不要となる。ＣＰＵ４の場合も同様である。
【００３９】
加えて、ローカルバス１２に他の記憶装置が接続されている場合、上記のように、図２のＣＰＵ内アドレス変換テーブル（マッピングテーブル）及び図３のアドレス変換テーブル２３を当該他の記憶装置内の所定のメモリ領域に対応させ、当該他の記憶装置内の所定のメモリ領域をＣＰＵ３用に割り当てることで、上記の場合と同様にＣＰＵ３が当該他の記憶装置内の所定のメモリ領域に容易にアクセスすることが可能となる。ローカルバス１１に他の記憶装置が接続されている場合におけるＣＰＵ４の場合も同様である。
【００４０】
また、他のＣＰＵ及び他のＲＡＭに接続され、ローカルバス１１及びローカルバス１２とは異なる他のローカルバスについても、データ転送制御回路２に他のバスコントローラを新たに設けて（マルチキャスト）、データ転送制御回路２と他のローカルバスとを接続することができる。そして、各ＲＡＭに各ＣＰＵに割り当てられた領域を設け、図２及び図３のような対応付けを行うことで、各ＣＰＵが他のＣＰＵに属する各ＲＡＭに容易にアクセスすることが可能となる。
【００４１】
次に、本発明の制御装置の実施の形態の動作（データ転送方法の実施の形態）について説明する。
まず、ＣＰＵ３がＣＰＵ４に属するＲＡＭ６にデータを書き込む動作について説明する。図４は、本発明のデータ転送方法の実施の形態の動作（ＣＰＵ３がＲＡＭ６にデータを書き込む動作）を示すタイムチャートである。
【００４２】
（１）ステップＳ０１：ＣＰＵ３は、バス権を要求する信号をバスアービタ７へ出力する。
（２）ステップＳ０２：バスアービタ７は、所定の条件に基づいて、バス権の要求を許可する信号をＣＰＵ３へ出力する。
（３）ステップＳ０３：ＣＰＵ３は、図２で説明した実アドレス空間Ｍ２における実アドレスＢ空間のアドレス（以下、実アドレスＢ）と当該書き込みデータとを、ＲＡＭ６にデータを書き込むためにデータ転送制御回路２向けに、ローカルバス１１へ出力（送信）する。
（４）ステップＳ０４：ＣＰＵ３は、ステップＳ０３において実アドレスＢと書き込みデータを出力した後、バスを開放する信号をバスアービタ７へ出力する。
（５）ステップＳ０５：バスアービタ７は、所定の条件に基づいて、バスを開放する信号をＣＰＵ３へ出力する。
【００４３】
（６）ステップＳ０６：データ転送制御回路２は、ローカルバス１１経由で実アドレスＢと書き込みデータとを受信する。
（７）ステップＳ０７：データ転送制御回路２のメイン制御部２２は、実アドレスＢと書き込みデータとを識別子を付けてバッファメモリ２４へ一時記憶する。識別子は、例えば、バッファに格納された順番を示す。
（８）ステップＳ０８：データ転送制御回路２の優先順位判定部２１は、データ転送制御回路２内で優先順位の高い処理があるか否かを判定する。すなわち、ローカルバス１２を介して書き込みデータをＲＡＭ６へ出力する（書き込む）処理をしてよいか否かを判定する。
例えば、既にバッファメモリ２４へ格納され、処理される順番が先であり、ＲＡＭ６（又はＲＡＭ５）へ書き込むべき実アドレスＢ及び書き込みデータ（又は読み出すべきデータのアドレス）があるか否かを判定する。無い場合には、このデータの読み出しが実行される。
（９）ステップＳ０９：データ転送制御回路２のメイン制御部２２は、アドレス変換テーブル２３を参照して、実アドレスＢ（実アドレスＢ２３−１）をＲＡＭ６上の実アドレス（ＲＡＭ実アドレス２３−２）に変換する。
（１０）ステップＳ１０：メイン制御部２２は、ステップＳ０６において書き込みデータをＲＡＭ６へ出力する（書き込む）処理をしてよいとの判定に基づいて、バス権を要求する信号をバスアービタ８へ出力する。
（１１）ステップＳ１１：バスアービタ８は、所定の条件に基づいて、バス権の要求を許可する信号をデータ転送制御回路２へ出力する。
（１２）ステップＳ１２：メイン制御部２２は、ＲＡＭ６上の実アドレスと書き込みデータとを、ＲＡＭ６向けに、ローカルバス１２へ出力（送信）する。その際、ローカルバス１１の第１バス幅とローカルバス１２の第２バス幅が異なる場合、バスコントローラ２７は、第１バス幅を有する実アドレス及び書き込みデータを第２バス幅に変換して、ローカルバス１２へ出力する。この変換は、メイン制御部２２で行っても良い。
（１３）ステップＳ１３：ＲＡＭ６は、受信された実アドレスに書き込みデータを書き込む。
【００４４】
（１４）ステップＳ１４：データ転送制御回路２のメイン制御部２２は、ステップＳ１０において実アドレスと書き込みデータを出力した後、バスを開放する信号をバスアービタ８へ出力する。
（１５）ステップＳ１５：バスアービタ８は、所定の条件に基づいて、バスを開放する信号をデータ転送制御回路２へ出力する。
（１６）ステップＳ１６：メイン制御部２２は、ステップＳ１０の後、書き込みデータの受け取り指示を示す信号を制御信号用の信号線３４を介してＣＰＵ４へ出力する。
（１７）ステップＳ１７：メイン制御部２２は、ステップＳ１０の後、書き込みデータの送信完了を示す信号を制御信号用の信号線３３を介してＣＰＵ３へ出力する。
【００４５】
以上の動作により、ＣＰＵ３がＲＡＭ６にデータを書き込む動ことができる。ＣＰＵ４がＣＰＵ３に属するＲＡＭ５にデータを書き込む動作についても同様である。
【００４６】
上記動作において、ＣＰＵ３のＲＡＭ６へのデータ書き込みの際、ローカルバス１１とローカルバス１２とは、それぞれ同時に占有されることがない。すなわち、ローカルバスを占有する必要があるときに占有するようにしている。それにより、ローカルバス１１及び１２の占有時間を短くすることができる。そして、ローカルバス１１及び１２を有効に使用することが可能となる。
【００４７】
上記動作において、ステップＳ０４は、ステップＳ０３の終了後、時間的に直ぐに行うことが好ましい。それにより、ＣＰＵ３のＲＡＭ６へのデータ書き込みにおけるローカルバス１１の占有時間をより短くすることができる。
【００４８】
同様に、上記動作において、ステップＳ１４は、ステップＳ１０の終了後、時間的に直ぐに行うことが好ましい。それにより、ＣＰＵ３のＲＡＭ６へのデータ書き込みにおけるローカルバス１２の占有時間をより短くすることができる。
【００４９】
ステップＳ１６及びＳ１７は、ステップＳ１０の終了後、時間的に直ぐに行っても良い。また、ＣＰＵ４からＲＡＭ５へのデータの書き込みも同様に実施することができる。
【００５０】
本発明により、ＣＰＵ３は、通常のメモリアクセスの動作を行うことで、容易に他のＣＰＵ４のＲＡＭ６にアクセスすることができる。そのため、通信制御に使用するデバイスドライバが不要となる。使用コード量を減らすことができ、コードメモリを有効に活用することができる。データ転送のみに使用される共有メモリが不要となり、ハードウェア量を低減することができる。
【００５１】
次に、ＣＰＵ３がＣＰＵ４に属するＲＡＭ６のデータを読み出す動作について説明する。図５は、本発明のデータ転送方法の実施の形態の動作（ＣＰＵ３がＲＡＭ６のデータを読み出す動作）を示すタイムチャートである。
【００５２】
（１）ステップＳ２１：ＣＰＵ３は、バス権を要求する信号をバスアービタ７へ出力する。
（２）ステップＳ２２：バスアービタ７は、所定の条件に基づいて、バス権の要求を許可する信号をＣＰＵ３へ出力する。
（３）ステップＳ２３：ＣＰＵ３は、図２で説明した実アドレス空間Ｍ２における実アドレスＢ空間のアドレス（以下、実アドレスＢ）及びデータ読出し要求を示す読出し要求データを、ＲＡＭ６からデータを読み出すためにデータ転送制御回路２向けにローカルバス１１へ出力（送信）する。
【００５３】
（４）ステップＳ２４：データ転送制御回路２は、ローカルバス１１経由で実アドレスＢと読み出し要求データとを受信する。
（５）ステップＳ２５：データ転送制御回路２のメイン制御部２２は、実アドレスＢと読み出し要求データとを識別子を付けてバッファメモリ２４へ一時記憶する。識別子は、例えば、バッファに格納された順番を示す。
（６）ステップＳ２６：データ転送制御回路２の優先順位判定部２１は、データ転送制御回路２内で優先順位の高い処理があるか否かを判定する。すなわち、ローカルバス１２を介してＲＡＭ６からデータを読み出す処理をしてよいか否かを判定する。
例えば、既にバッファメモリ２４へ格納され、処理される順番が先であり、ＲＡＭ６（又はＲＡＭ５）へ書き込むべき実アドレスＢ及び書き込みデータ（又は読み出すべきデータの実アドレスＢ及び読み出し要求データ）があるか否かを判定する。無い場合には、このデータの読み出しが実行される。
（７）ステップＳ２７：データ転送制御回路２のメイン制御部２２は、アドレス変換テーブル２３を参照して、実アドレスＢ（実アドレスＢ２３−１）をＲＡＭ６上の実アドレス（ＲＡＭ実アドレス２３−２）に変換する。
（８）ステップＳ２８：メイン制御部２２は、ステップＳ２６においてＲＡＭ６からデータを読み出す処理をしてよいとの判定に基づいて、バス権を要求する信号をバスアービタ８へ出力する。
（９）ステップＳ２９：バスアービタ８は、所定の条件に基づいて、バス権の要求を許可する信号をデータ転送制御回路２へ出力する。
（１０）ステップＳ３０：メイン制御部２２は、ＲＡＭ６上の実アドレスと読み出し要求データとを、ＲＡＭ６向けに、ローカルバス１２へ出力（送信）する。その際、ローカルバス１１の第１バス幅とローカルバス１２の第２バス幅が異なる場合、バスコントローラ２７は、第１バス幅を有する実アドレス及び書き込みデータを第２バス幅に変換して、ローカルバス１２へ出力する。この変換は、メイン制御部２２で行っても良い。
【００５４】
（１１）ステップＳ３１：ＲＡＭ６は、ＲＡＭ６上の実アドレスと読み出し要求データとをローカルバス１２経由で受信する。
（１２）ステップＳ３２：ＲＡＭ６は、受信した実アドレスに基づいて、当該実アドレスに格納されたデータとしての読み出しデータを読み出す。そして、ＣＰＵ３へ供給するためにデータ転送制御回路２向けにローカルバス１２へ読出しデータを出力する。
【００５５】
（１３）ステップＳ３３：データ転送制御回路２のメイン制御部２２は、読出しデータを受信する。
（１４）ステップＳ３４：メイン制御部２２は、ＣＰＵ３へ供給するためにローカルバス１１へ読出しデータを出力する。
（１５）ステップＳ３５：ＣＰＵ３は、ローカルバス１１を介して読出しデータを受信する。
【００５６】
（１６）ステップＳ３６：データ転送制御回路２は、ステップＳ３３で読出しデータを受信した後、バスを開放する信号をバスアービタ８へ出力する。
（１７）ステップＳ３７：バスアービタ８は、所定の条件に基づいて、バスを開放する信号をデータ転送制御回路２へ出力する。
（１８）ステップＳ３８：ＣＰＵ３は、読出しデータを受信した後、バスを開放する信号をバスアービタ７へ出力する。
（１９）ステップＳ３９：バスアービタ７は、所定の条件に基づいて、バスを開放する信号をＣＰＵ３へ出力する。
【００５７】
以上の動作により、ＣＰＵ３がＲＡＭ６に格納されたデータを読み出すことができる。ＣＰＵ４がＲＡＭ５に格納されたデータを読み出す動作についても同様である。
【００５８】
上記動作において、ステップＳ３６は、ステップＳ３４の終了後、時間的に直ぐに行うことが好ましい。それにより、データ転送制御回路２によるＲＡＭ６のデータの読出しにおけるローカルバス１２の占有時間をより短くすることができる。
【００５９】
ＣＰＵ３がＣＰＵ４に属するＲＡＭ６のデータをアウトオブオーダで読み出す場合は、他の動作を用いることができる。図６は、アウトオブオーダで読み出す場合の本発明のデータ転送方法の実施の形態の動作を示すタイムチャートである。
【００６０】
（１）ステップＳ４１：ＣＰＵ３は、バス権を要求する信号をバスアービタ７へ出力する。
（２）ステップＳ４２：バスアービタ７は、所定の条件に基づいて、バス権の要求を許可する信号をＣＰＵ３へ出力する。
（３）ステップＳ４３：ＣＰＵ３は、図２で説明した実アドレス空間Ｍ２における実アドレスＢ空間のアドレス（以下、実アドレスＢ）及びデータ読出し要求を示す読出し要求データを、ＲＡＭ６からデータを読み出すためにデータ転送制御回路２向けにローカルバス１１へ出力（送信）する。
（４）ステップＳ４４：ＣＰＵ３は、ステップＳ４３において実アドレスＢと読出し要求データを出力した後、バスを開放する信号をバスアービタ７へ出力する。
（５）ステップＳ４５：バスアービタ７は、所定の条件に基づいて、バスを開放する信号をＣＰＵ３へ出力する。
【００６１】
（６）ステップＳ４６：データ転送制御回路２は、ローカルバス１１経由で実アドレスＢと読み出し要求データとを受信する。
（７）ステップＳ４７：データ転送制御回路２のメイン制御部２２は、実アドレスＢと読み出し要求データとを識別子を付けてバッファメモリ２４へ一時記憶する。識別子は、例えば、バッファに格納された順番を示す。
（８）ステップＳ４８：データ転送制御回路２の優先順位判定部２１は、データ転送制御回路２内で優先順位の高い処理があるか否かを判定する。すなわち、ローカルバス１２を介してＲＡＭ６からデータを読み出す処理をしてよいか否かを判定する。
例えば、既にバッファメモリ２４へ格納され、処理される順番が先であり、ＲＡＭ６（又はＲＡＭ５）へ書き込むべき実アドレスＢ及び書き込みデータ（又は読み出すべきデータの実アドレスＢ及び読み出し要求データ）があるか否かを判定する。無い場合には、このデータの読み出しが実行される。
（９）ステップＳ４９：データ転送制御回路２のメイン制御部２２は、アドレス変換テーブル２３を参照して、実アドレスＢ（実アドレスＢ２３−１）をＲＡＭ６上の実アドレス（ＲＡＭ実アドレス２３−２）に変換する。
（１０）ステップＳ５０：メイン制御部２２は、ステップＳ２６においてＲＡＭ６からデータを読み出す処理をしてよいとの判定に基づいて、バス権を要求する信号をバスアービタ８へ出力する。
（１１）ステップＳ５１：バスアービタ８は、所定の条件に基づいて、バス権の要求を許可する信号をデータ転送制御回路２へ出力する。
（１２）ステップＳ５２：メイン制御部２２は、ＲＡＭ６上の実アドレスと読み出し要求データとを、ＲＡＭ６向けに、ローカルバス１２へ出力（送信）する。その際、ローカルバス１１の第１バス幅とローカルバス１２の第２バス幅が異なる場合、バスコントローラ２７は、第１バス幅を有する実アドレス及び書き込みデータを第２バス幅に変換して、ローカルバス１２へ出力する。この変換は、メイン制御部２２で行っても良い。
【００６２】
（１３）ステップＳ５３：データ転送制御回路２は、ステップＳ５２において実アドレスと読出し要求データを出力した後、バス権を要求する信号をバスアービタ７へ出力する。
（１４）ステップＳ５４：バスアービタ７は、所定の条件に基づいて、バス権を許可する信号をデータ転送制御回路２へ出力する。
【００６３】
（１５）ステップＳ５５：ＲＡＭ６は、ＲＡＭ６上の実アドレスと読み出し要求データとをローカルバス１２経由で受信する。
（１６）ステップＳ５６：ＲＡＭ６は、受信した実アドレスに基づいて、当該実アドレスに格納されたデータとしての読み出しデータを読み出す。そして、ＣＰＵ３へ供給するためにデータ転送制御回路２向けにローカルバス１２へ読出しデータを出力する。
【００６４】
（１７）ステップＳ５７：データ転送制御回路２のメイン制御部２２は、読出しデータを受信する。
（１８）ステップＳ５８：メイン制御部２２は、ＣＰＵ３へ供給するためにローカルバス１１へ読出しデータを出力する。
（１９）ステップＳ５９：ＣＰＵ３は、ローカルバス１１を介して読出しデータを受信する。
【００６５】
（２０）ステップＳ６０：データ転送制御回路２は、ステップＳ５７で読出しデータを受信した後、バスを開放する信号をバスアービタ８へ出力する。
（２１）ステップＳ６１：バスアービタ８は、所定の条件に基づいて、バスを開放する信号をデータ転送制御回路２へ出力する。
（２２）ステップＳ６２：データ転送制御回路２は、ステップＳ５８で読出しデータを出力した後、バスを開放する信号をバスアービタ７へ出力する。
（２３）ステップＳ６３：バスアービタ７は、所定の条件に基づいて、バスを開放する信号をＣＰＵ３へ出力する。
【００６６】
以上の動作により、ＣＰＵ３がＲＡＭ６に格納されたデータを読み出すことができる。ＣＰＵ４がＲＡＭ５に格納されたデータを読み出す動作についても同様である。
【００６７】
上記動作において、ステップＳ４５とステップＳ５２との間では、ローカルバス１１が開放されているので、ローカルバス１１の占有時間をより短くすることができる。そして、ローカルバス１１をより有効に使用することが可能となる。
【００６８】
図４〜図６におけるデータの書き込み動作及び読み出し動作において、バッファメモリ２４の大きさに対応して、所定の数のデータを一括して書き込み及び読み出しを行うことも可能である。
書き込みの場合、実アドレスと書き込みデータの組を、データの数だけデータ転送制御回路２へ出力すればよい。又は、実アドレスの先頭アドレス及びデータの数をアドレスに関する情報として、複数の書き込みデータと共にデータ転送制御回路２へ出力すればよい。
読み出しの場合、読み出しデータの数だけの実アドレスと一つの読み出し要求データをデータ転送制御回路２へ出力すればよい。又は、実アドレスの先頭アドレス及びデータの数をアドレスに関する情報として、一つの読み出し要求データと共にデータ転送制御回路２へ出力すればよい。
【００６９】
このようにすることで、バスアービタにバス権を要求するアビトレーションのオーバーヘッドを少なくすることができる。それにより、データの書き込み動作及び読み出し動作にかかる時間が短縮され、ＣＰＵ及びローカルバスをより有効に利用することができる。
【図面の簡単な説明】
【００７０】
【図１】図１は、本発明の制御装置の実施の形態の構成を示すブロック図である。
【図２】図２は、本発明の制御装置の実施の形態におけるアドレス変換を示す図である。
【図３】図３は、本発明のデータ転送制御回路の実施の形態におけるメイン制御部に格納されたアドレス変換テーブルを示す図である。
【図４】図４は、本発明のデータ転送方法の実施の形態の動作（データを書き込む動作）を示すタイムチャートである。
【図５】図５は、本発明のデータ転送方法の実施の形態の動作（データを読み出す動作）を示すタイムチャートである。
【図６】図６は、アウトオブオーダで読み出す場合の本発明のデータ転送方法の実施の形態の動作を示すタイムチャートである。
【符号の説明】
【００７１】
１    制御装置
２    データ転送制御回路
３、４    ＣＰＵ
５、６    ＲＡＭ
５−１、６−１    メモリ領域
７、８    バスアービタ
１１、１２    ローカルバス
１３    データ転送制御回路２は、２１と、２２と、２４と２６とを備える。
２１    優先順位判定部
２２    メイン制御部
２３    アドレス変換テーブル
２３−１    実アドレスＢ
２３−２    ＲＡＭ実アドレス
２４    バッファメモリ
２６、２７    バスコントローラ
３３、３４    信号線
【図１】
2005332145.tif 000003
【図２】
2005332145.tif 000004
【図３】
2005332145.tif 000005
【図４】
2005332145.tif 000006
【図５】
2005332145.tif 000007
【図６】
2005332145.tif 000008