JP2005332145A - データ転送制御回路及びデータ転送方法 - Google Patents
データ転送制御回路及びデータ転送方法 Download PDFInfo
- Publication number
- JP2005332145A JP2005332145A JP2004149183A JP2004149183A JP2005332145A JP 2005332145 A JP2005332145 A JP 2005332145A JP 2004149183 A JP2004149183 A JP 2004149183A JP 2004149183 A JP2004149183 A JP 2004149183A JP 2005332145 A JP2005332145 A JP 2005332145A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- cpu
- data transfer
- data
- address
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
Abstract
【課題】
CPU間のデータ転送において、あるCPUから別のCPUが持つメモリ資源に対して、ハードウェアを意識することなくシームレスなメモリアクセス環境を提供する。
【解決手段】
データ転送制御回路は、第1CPU3及び第1記憶部5が接続された第1バス11と、第2CPU4及び第2記憶部6が接続された第2バス12との間に接続されたデータ転送制御回路2である。一時記憶部24と、制御部22とを具備する。一時記憶部24は、第1CPU3が第1バス11を介して出力した第1アドレスと第1書き込みデータとを一時記憶する。制御部22は、アドレス変換テーブルを参照して、その第1アドレスを第2記憶部6上の第2アドレスに変換する。第1CPU3が第1バス11を開放した後、制御部22が、第2バス12を占有して、第2バス12を介して第2記憶部6のその第2アドレスへその第1書き込みデータを書き込む。
【選択図】 図1
CPU間のデータ転送において、あるCPUから別のCPUが持つメモリ資源に対して、ハードウェアを意識することなくシームレスなメモリアクセス環境を提供する。
【解決手段】
データ転送制御回路は、第1CPU3及び第1記憶部5が接続された第1バス11と、第2CPU4及び第2記憶部6が接続された第2バス12との間に接続されたデータ転送制御回路2である。一時記憶部24と、制御部22とを具備する。一時記憶部24は、第1CPU3が第1バス11を介して出力した第1アドレスと第1書き込みデータとを一時記憶する。制御部22は、アドレス変換テーブルを参照して、その第1アドレスを第2記憶部6上の第2アドレスに変換する。第1CPU3が第1バス11を開放した後、制御部22が、第2バス12を占有して、第2バス12を介して第2記憶部6のその第2アドレスへその第1書き込みデータを書き込む。
【選択図】 図1
Description
本発明は、データ転送制御回路及びデータ転送方法に関し、特にCPU(central processing unit)間のデータ転送に関するデータ転送制御回路及びデータ転送方法に関する。
近年、データ処理能力を向上させるため、複数のCPUにより分担して処理を行う技術や、複数のCPUにより処理を並列に行う技術が注目されている。そのため、複数のCPU間でのデータ転送が必要となる。このようなデータ転送方法として、例えば、シリアル転送によるデータ転送、及び、共有メモリ上でデータ交換を行う方法が知られている。
シリアル転送によるCPU間のデータ転送は、たとえば、特許文献1に記載されている。
特許文献1に記載された車載電子制御装置は、電源スイッチを介して車載バッテリから給電される車載電子制御装置である。メインCPU、サブCPU、全二重双方向シリアル通信用直並列変換器を備える。ただし、メインCPUは、第一の不揮発メモリ、第一のRAMメモリ及び第一の入出力ポ−トを備える。第一の不揮発メモリは、外部ツ−ルから被制御車両対応の第一の制御プログラム及び制御定数が少なくとも書込まれる。第一のRAMメモリは、演算処理用である。サブCPUは、第二の不揮発メモリ、第二のRAMメモリ及び第二の入出力ポ−トを備える。第二の不揮発メモリは、第二の制御プログラムが書込まれる。第二のRAMメモリは、演算処理用である。全二重双方向シリアル通信用直並列変換器は、上記被制御車両の運転中において上記メインCPUと上記サブCPU間で相互にデ−タ交信を行う。そして、上記被制御車両の運転開始時に、上記第一の不揮発メモリに格納された制御定数の一部が上記シリアル通信用直並列変換器を介して上記第二のRAMメモリに転送される。上記サブCPUは上記第二の不揮発メモリの第二の制御プログラムの内容と、上記第二のRAMメモリに転送された制御定数の内容に応じて所定の演算を行う。
特許文献1に記載された車載電子制御装置は、電源スイッチを介して車載バッテリから給電される車載電子制御装置である。メインCPU、サブCPU、全二重双方向シリアル通信用直並列変換器を備える。ただし、メインCPUは、第一の不揮発メモリ、第一のRAMメモリ及び第一の入出力ポ−トを備える。第一の不揮発メモリは、外部ツ−ルから被制御車両対応の第一の制御プログラム及び制御定数が少なくとも書込まれる。第一のRAMメモリは、演算処理用である。サブCPUは、第二の不揮発メモリ、第二のRAMメモリ及び第二の入出力ポ−トを備える。第二の不揮発メモリは、第二の制御プログラムが書込まれる。第二のRAMメモリは、演算処理用である。全二重双方向シリアル通信用直並列変換器は、上記被制御車両の運転中において上記メインCPUと上記サブCPU間で相互にデ−タ交信を行う。そして、上記被制御車両の運転開始時に、上記第一の不揮発メモリに格納された制御定数の一部が上記シリアル通信用直並列変換器を介して上記第二のRAMメモリに転送される。上記サブCPUは上記第二の不揮発メモリの第二の制御プログラムの内容と、上記第二のRAMメモリに転送された制御定数の内容に応じて所定の演算を行う。
しかしながら、上述したシリアル転送の場合、データの転送レートはシリアルI/Fの通信レートで決まる。すなわち、転送レートはシリアルI/Fの性能で制限される。そのため、高速にかつ大量のデータを転送するために通信レートを上げたとしても、CPUの動作スピードよりもはるかに遅く、高速化できない。
さらに、共有メモリの場合、ソフトウェアによる排他制御を行う必要がある。すなわち、セマフォ等によるプロトコル制御を行うことや、共有メモリのエリア分けのためにメモリサイズを大きくすることが必要となる。そのため、ソフトウェアの制御が煩雑になる。アクセス競合によるセマフォフラグの重複により完全な排他制御を行うことができない場合、データの上書きの発生する危険性がある。セマフォエリアを複数用意する場合、共有メモリのサイズ増につながり、コスト増となる。
そのため、CPU間のデータ転送において、コストを増加させることなくCPUの動作速度に対応できる十分な転送レートを得られる技術が望まれる。
従って、本発明の目的は、CPU間のデータ転送において、CPUの動作速度に対応できる十分な転送レートを得られるデータ転送制御回路、制御装置及びデータ転送方法を提供することにある。
以下に、発明を実施するための最良の形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための最良の形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
従って、上記課題を解決するために、本発明のデータ転送制御回路は、第1CPU(central processing unit)(3)及び第1記憶部(5)が接続された第1バス(11)と、第2CPU(4)及び第2記憶部(6)が接続された第2バス(12)との間に接続されたデータ転送制御回路(2)である。一時記憶部(24)と、制御部(22)とを具備する。一時記憶部(24)は、第1CPU(3)が第1バス(11)を介して出力した第1アドレスと第1書き込みデータとを一時記憶する。制御部(22)は、アドレス変換テーブルを参照して、その第1アドレスを第2記憶部(6)上の第2アドレスに変換する。第1CPU(3)が第1バス(11)を開放した後、制御部(22)が、第2バス(12)を占有して、第2バス(12)を介して第2記憶部(6)のその第2アドレスへその第1書き込みデータを書き込む。
上記のデータ転送制御回路において、第2バス(12)を介してその第1書き込みデータを出力してよいか否かを判定する判定部(21)を更に具備する。制御部(22)は、判定部(21)の判定に基づいて、第2バス(12)を介して第2記憶部(6)のその第2アドレスへその第1書き込みデータを書き込む。
上記のデータ転送制御回路において、第1バスコントローラ(26)と、第2バスコントローラ(27)とを更に具備する。第1バスコントローラ(26)は、第1バス(11)に接続され、第1バス(11)の第1バス幅に対応している。第2バスコントローラ(27)は、第2バス(12)に接続され、第2バス(12)の第2バス幅に対応している。その第1バス幅は、その第2バス幅と異なる。第2バスコントローラ(27)は、その第1バス幅を有するその第1書き込みデータをその第2バス幅に変換して第2バス(12)へ出力する。
上記のデータ転送制御回路において、第1バスコントローラ(26)と、第2バスコントローラ(27)とを更に具備する。第1バスコントローラ(26)は、第1バス(11)に接続され、第1バス(11)の第1バス幅に対応している。第2バスコントローラ(27)は、第2バス(12)に接続され、第2バス(12)の第2バス幅に対応している。その第1バス幅は、その第2バス幅と異なる。制御部(22)は、その第1バス幅を有するその第1書き込みデータをその第2バス幅に変換して第2バスコントローラ(27)へ出力する。
上記課題を解決するために、本発明の制御装置は、第1CPU(3)と、第1CPU(3)に属する第1記憶部(5)と、第1CPU(3)と第1記憶部(5)とが接続された第1バス(11)と、第2CPU(4)と、第2CPU(4)に属する第2記憶部(6)と、第2CPU(4)と第2記憶部(6)とが接続された第2バス(12)と、第1バス(11)と第2バス(12)との間に接続された請求項1乃至4のいずれか一項に記載のデータ転送制御回路(2)とを具備する。
上記の制御装置において、第1CPU(3)、第1記憶部(5)、第1バス(11)、第2CPU(4)、第2記憶部(6)及び第2バス(12)が、1チップに搭載されている。
上記課題を解決するために、本発明のデータ転送方法は、第1CPU(3)及び第1記憶部(5)が接続された第1バス(11)と、第2CPU(4)及び第2記憶部(6)が接続された第2バス(12)との間に接続されたデータ転送制御回路(2)によるデータ転送方法である。(a)〜(e)ステップを具備する。(a)ステップでは、第1CPU(3)が、第1バス(11)を占有して、第1バス(11)を介してデータ転送制御回路(2)へ第1アドレスと第1書き込みデータとを出力する。(b)ステップでは、データ転送制御回路(2)が、その第1アドレスとその第1書き込みデータを一時記憶する。(c)ステップでは、データ転送制御回路(2)が、アドレス変換テーブルを参照して、その第1アドレスを第2記憶部(6)上の第2アドレスに変換する。(d)ステップでは、第1CPU(3)が第1バス(11)を開放する。(e)ステップでは、データ転送制御回路(2)が、第2バス(12)を占有して、第2バス(12)を介して第2記憶部(6)のその第2アドレスへその第1書き込みデータを出力する。
上記のデータ転送方法において、(e)ステップは、(e1)〜(e2)ステップを備える。(e1)ステップでは、データ転送制御回路(2)が、第2バス(12)を介してその第1書き込みデータを出力してよいか否かを判定する。(e2)ステップでは、その判定に基づいて、第2バス(12)を介して第2記憶部(6)のその第2アドレスへその第1書き込みデータを書き込む。
上記のデータ転送方法において、(e)ステップは、(e3)第2バスコントローラ(27)は、第1バス(11)の第1バス幅を有するその第1書き込みデータを第2バス(12)の第2バス幅に変換するステップを備える。
本発明により、CPU(3)はメモリアクセスで容易に他のCPU(4)の記憶部(6)をアクセスできるため、通信制御に使用するデバイスドライバが不要となる。使用コード量を減らすことができ、コードメモリを有効に活用することができる。データ転送のみに使用される共有メモリが不要となり、ハードウェア量を低減することができる。
以下、本発明のデータ転送制御回路、制御装置及びデータ転送方法の実施の形態に関して、添付図面を参照して説明する。
まず、本発明のデータ転送制御回路及びそれを適用した制御装置の実施の形態の構成について説明する。
図1は、本発明の制御装置の実施の形態の構成を示すブロック図である。制御装置1は、データ転送制御回路2、CPU(central processing unit)3、CPU4、RAM(random access memory)5、RAM6、バスアービタ7、バスアービタ8、ローカルバス11、ローカルバス12、信号線13及び信号線14を具備している。
図1は、本発明の制御装置の実施の形態の構成を示すブロック図である。制御装置1は、データ転送制御回路2、CPU(central processing unit)3、CPU4、RAM(random access memory)5、RAM6、バスアービタ7、バスアービタ8、ローカルバス11、ローカルバス12、信号線13及び信号線14を具備している。
第1CPUとしてのCPU3は、ローカルバス11に接続されている。
第1記憶部としてのRAM5は、ローカルバス11に接続され、CPU3に属している。CPU3用に割り当てられたメモリ領域に加えて、CPU4用に割り当てられたメモリ領域5−1を有している。RAM5は、他の種類の記憶装置でも良い。
第1バスとしてのローカルバス11は、バスアービタ7、CPU3、RAM5及びデータ転送制御回路2が接続されている。
バスアービタ7は、ローカルバス11を介したデータの転送を制御する。
第1記憶部としてのRAM5は、ローカルバス11に接続され、CPU3に属している。CPU3用に割り当てられたメモリ領域に加えて、CPU4用に割り当てられたメモリ領域5−1を有している。RAM5は、他の種類の記憶装置でも良い。
第1バスとしてのローカルバス11は、バスアービタ7、CPU3、RAM5及びデータ転送制御回路2が接続されている。
バスアービタ7は、ローカルバス11を介したデータの転送を制御する。
第2CPUとしてのCPU4は、ローカルバス12に接続されている。
第2記憶部としてのRAM6は、ローカルバス12に接続され、CPU3に属している。CPU4用に割り当てられたメモリ領域に加えて、CPU3用に割り当てられたメモリ領域6−1を有している。RAM6は、他の種類の記憶装置でも良い。
第2バスとしてのローカルバス12は、バスアービタ8、CPU4、RAM6及びデータ転送制御回路2に接続されている。
バスアービタ8は、ローカルバス12を介したデータの転送を制御する。
第2記憶部としてのRAM6は、ローカルバス12に接続され、CPU3に属している。CPU4用に割り当てられたメモリ領域に加えて、CPU3用に割り当てられたメモリ領域6−1を有している。RAM6は、他の種類の記憶装置でも良い。
第2バスとしてのローカルバス12は、バスアービタ8、CPU4、RAM6及びデータ転送制御回路2に接続されている。
バスアービタ8は、ローカルバス12を介したデータの転送を制御する。
データ転送制御回路2は、CPU4に属するRAM6とCPU3との間のデータの転送、及び、CPU3に属するRAM5とCPU4との間のデータの転送を仲介する。データ転送制御回路2は、優先順位判定部21と、メイン制御部22と、バッファメモリ24と、バスコントローラ26、27とを備えている。
一時記憶部としてのバッファメモリ24は、CPU3による書き込み動作時に、CPU3がローカルバス11を介して出力した書き込むデータとしての書き込みデータと書き込み先のアドレスとしての実アドレスとを一時記憶する。CPU3による読出し動作時に、CPU3がローカルバス11を介して出力した読み出すデータのアドレスとしての実アドレスとデータの読出し要求を示す読出し要求データとを一時記憶する。
同様にバッファメモリ24は、CPU4による書き込み動作時に、CPU4がローカルバス12を介して出力した書き込むデータとしての書き込みデータと書き込み先のアドレスとしての実アドレスとを一時記憶する。CPU4による読出し動作時に、CPU4がローカルバス12を介して出力した読み出すデータのアドレスとしての実アドレスとデータの読出し要求を示す読出し要求データとを一時記憶する。
同様にバッファメモリ24は、CPU4による書き込み動作時に、CPU4がローカルバス12を介して出力した書き込むデータとしての書き込みデータと書き込み先のアドレスとしての実アドレスとを一時記憶する。CPU4による読出し動作時に、CPU4がローカルバス12を介して出力した読み出すデータのアドレスとしての実アドレスとデータの読出し要求を示す読出し要求データとを一時記憶する。
判定部としての優先順位判定部21は、CPU3による書き込み動作時に、ローカルバス12を介して実アドレス及び書き込みデータを出力してよいか否かを判定する。CPU3による読み出し動作時に、ローカルバス12を介して実アドレス及び読出し要求データとを出力してよいか否かを判定する。
同様に、優先順位判定部21は、CPU4による書き込み動作時に、ローカルバス11を介して実アドレス及び書き込みデータを出力してよいか否かを判定する。CPU4による読み出し動作時に、ローカルバス11を介して実アドレス及び読出し要求データとを出力してよいか否かを判定する。
同様に、優先順位判定部21は、CPU4による書き込み動作時に、ローカルバス11を介して実アドレス及び書き込みデータを出力してよいか否かを判定する。CPU4による読み出し動作時に、ローカルバス11を介して実アドレス及び読出し要求データとを出力してよいか否かを判定する。
優先順位の決定方法としては、例えば、バッファメモリ24にデータを格納する際、所定の規則に基づいて識別子に対応付けて格納し、各データに対応する識別子に基づいて決定する。識別子をデータの格納順に小さい数から振る番号とし、データ処理を識別子の小さい順に実行することとすれば、優先順位は識別子の小さい順となる。ただし、優先順位の決定方法は、この方法に限定されない。
制御部としてのメイン制御部22は、アドレス変換テーブル23を備えている。アドレス変換テーブル23を参照して、CPU3から出力された実アドレスをRAM6上の実アドレスに変換する。
メイン制御部22は、CPU3による書き込み動作時に、メイン制御部22は、優先順位判定部21が最上位の優先順位と判定した場合、ローカルバス12を介してRAM6の実アドレスへ書き込みデータを書き込む。CPU3がローカルバス11を開放した後、ローカルバス12を占有して、ローカルバス12を介してRAM6の実アドレスへ書き込みデータを書き込むようにしても良い。
メイン制御部22は、CPU3による読み出し動作時に、優先順位判定部21が最上位の優先順位と判定した場合、ローカルバス12を介してRAM6の実アドレスからデータを読み出す。CPU3がローカルバス11を開放した後、ローカルバス12を占有して、ローカルバス12を介してRAM6の実アドレスから読み出しデータを読み出すようにしても良い。
メイン制御部22は、CPU3による書き込み動作時に、メイン制御部22は、優先順位判定部21が最上位の優先順位と判定した場合、ローカルバス12を介してRAM6の実アドレスへ書き込みデータを書き込む。CPU3がローカルバス11を開放した後、ローカルバス12を占有して、ローカルバス12を介してRAM6の実アドレスへ書き込みデータを書き込むようにしても良い。
メイン制御部22は、CPU3による読み出し動作時に、優先順位判定部21が最上位の優先順位と判定した場合、ローカルバス12を介してRAM6の実アドレスからデータを読み出す。CPU3がローカルバス11を開放した後、ローカルバス12を占有して、ローカルバス12を介してRAM6の実アドレスから読み出しデータを読み出すようにしても良い。
同様にメイン制御部22は、アドレス変換テーブル23を参照して、CPU4から出力された実アドレスをRAM5上の実アドレスに変換する。
メイン制御部22は、CPU4による書き込み動作時に、メイン制御部22は、優先順位判定部21が最上位の優先順位と判定した場合、ローカルバス12を介してRAM6の実アドレスへ書き込みデータを書き込む。CPU4がローカルバス12を開放した後、ローカルバス11を占有して、ローカルバス11を介してRAM5の実アドレスへ書き込みデータを書き込むようにしても良い。
メイン制御部22は、CPU4による読み出し動作時に、優先順位判定部21が最上位の優先順位と判定した場合、ローカルバス11を介してRAM5の実アドレスからデータを読み出す。CPU4がローカルバス12を開放した後、ローカルバス11を占有して、ローカルバス11を介してRAM5の実アドレスから読み出しデータを読み出すようにしても良い。
メイン制御部22は、CPU4による書き込み動作時に、メイン制御部22は、優先順位判定部21が最上位の優先順位と判定した場合、ローカルバス12を介してRAM6の実アドレスへ書き込みデータを書き込む。CPU4がローカルバス12を開放した後、ローカルバス11を占有して、ローカルバス11を介してRAM5の実アドレスへ書き込みデータを書き込むようにしても良い。
メイン制御部22は、CPU4による読み出し動作時に、優先順位判定部21が最上位の優先順位と判定した場合、ローカルバス11を介してRAM5の実アドレスからデータを読み出す。CPU4がローカルバス12を開放した後、ローカルバス11を占有して、ローカルバス11を介してRAM5の実アドレスから読み出しデータを読み出すようにしても良い。
バスコントローラ26は、ローカルバス11に接続され、データ転送制御回路2とローカルバス11との間のデータの入出力を制御する。ローカルバス11の第1バス幅に対応している。
バスコントローラ27は、ローカルバス12に接続され、データ転送制御回路2とローカルバス12との間のデータの入出力を制御する。ローカルバス12の第2バス幅に対応している。
バスコントローラ27は、ローカルバス12に接続され、データ転送制御回路2とローカルバス12との間のデータの入出力を制御する。ローカルバス12の第2バス幅に対応している。
第1バス幅は、第2バス幅と異なっていても良い。その場合、以下の二つの方法の何れかで対応する。
(1)バスコントローラ27は、CPU3から出力された第1バス幅を有する書き込みデータを、第2バス幅に変換してローカルバス12へ出力する。バスコントローラ26は、CPU4から出力された第2バス幅を有する書き込みデータを、第1バス幅に変換してローカルバス11へ出力する。
(1)バスコントローラ27は、CPU3から出力された第1バス幅を有する書き込みデータを、第2バス幅に変換してローカルバス12へ出力する。バスコントローラ26は、CPU4から出力された第2バス幅を有する書き込みデータを、第1バス幅に変換してローカルバス11へ出力する。
(2)メイン制御部22は、CPU3から出力された第1バス幅を有する書き込みデータを、第2バス幅に変換してバスコントローラ27を介してローカルバス12へ出力する。CPU4から出力された第2バス幅を有する書き込みデータを、第1バス幅に変換してバスコントローラ26を介してローカルバス11へ出力する。
制御装置1は、各構成(データ転送制御回路2、CPU3、CPU4、RAM5、RAM6、バスアービタ7、バスアービタ8、ローカルバス11及びローカルバス12)を全て1チップに含むLSI(large scale integrated circuit)のような半導体装置でも良い。又は、制御装置1は、各構成の一部又は全部が個々のチップのようなボード状の装置でも良い。
図2は、本発明の制御装置の実施の形態におけるアドレス変換を示す図である。仮想アドレス空間M1は、CPU3の認識する仮想アドレス空間を示す。CPU4の場合も同様である。実アドレス空間M2は、実際のメモリ(本実施の形態ではRAM5及びRAM6)における実メモリ空間を示す。CPU内アドレス変換テーブル(マッピングテーブル)は、仮想アドレス空間M1と実アドレス空間M2とを対応付けている。ここでは、ページングによりマッピングを行う場合を例として説明する。ただし、本発明は、それに限定されるものではなく、セグメンテーションやページセグメンテーションのような他の方法でマッピングを行う場合にも同様に実施できる。
仮想アドレス空間M1は、仮想ページ番号1〜m(m:自然数)の仮想アドレスA空間と、仮想ページ番号m+1〜m+k(k:自然数)の仮想アドレスB空間を含む。実アドレス空間M2は、実ページ番号a1〜amの実アドレスA空間と、実ページ番号am+1からam+kの実アドレスB空間とを含む。CPU内アドレス変換テーブルは、テーブルAにおいて仮想アドレスA空間を実アドレスA空間に、テーブルBにおいて仮想アドレスB空間を実アドレスB空間にそれぞれ対応させている。
ここで、実アドレスA空間は、CPU3に属するRAM5のアドレスを示している。実アドレスB空間は、CPU4に属するRAM6におけるCPU3用に割り当てられたメモリ領域6−1のアドレスを示している。
図3は、本発明のデータ転送制御回路の実施の形態におけるメイン制御部に格納されたアドレス変換テーブルを示す図である。アドレス変換テーブル23は、CPUアドレス変換テーブルで示された実アドレスB空間の実アドレスB23−1と、RAMの実アドレスとしてのRAM実アドレス23−2とを対応付けている。ただし、実アドレスB23−1は、CPU3が指定する実アドレスB、及び、CPU4が指定する実アドレスBの両方を含む。それに対応して、RAM実アドレス23−2は、CPU3が指定する実アドレスBに対応するRAM6のメモリ領域6−1の実アドレス、及び、CPU4が指定する実アドレスBに対応するRAM5のメモリ領域5−1の実アドレスの両方を含む。
図2及び図3により、CPU4のRAM6がCPU3のメモリマップの一部に仮想的に組み込まれた状態になっている。そのため、CPU3は、通常のメモリアクセスにおいて、仮想アドレス空間M1における仮想アドレスB空間のアドレスを指定することで、容易に他のCPU4のメモリ領域6−1をアクセスすることができる。それにより、CPU4のメモリ領域にアクセスするための通信制御に使用するデバイスドライバが不要となる。CPU4の場合も同様である。
加えて、ローカルバス12に他の記憶装置が接続されている場合、上記のように、図2のCPU内アドレス変換テーブル(マッピングテーブル)及び図3のアドレス変換テーブル23を当該他の記憶装置内の所定のメモリ領域に対応させ、当該他の記憶装置内の所定のメモリ領域をCPU3用に割り当てることで、上記の場合と同様にCPU3が当該他の記憶装置内の所定のメモリ領域に容易にアクセスすることが可能となる。ローカルバス11に他の記憶装置が接続されている場合におけるCPU4の場合も同様である。
また、他のCPU及び他のRAMに接続され、ローカルバス11及びローカルバス12とは異なる他のローカルバスについても、データ転送制御回路2に他のバスコントローラを新たに設けて(マルチキャスト)、データ転送制御回路2と他のローカルバスとを接続することができる。そして、各RAMに各CPUに割り当てられた領域を設け、図2及び図3のような対応付けを行うことで、各CPUが他のCPUに属する各RAMに容易にアクセスすることが可能となる。
次に、本発明の制御装置の実施の形態の動作(データ転送方法の実施の形態)について説明する。
まず、CPU3がCPU4に属するRAM6にデータを書き込む動作について説明する。図4は、本発明のデータ転送方法の実施の形態の動作(CPU3がRAM6にデータを書き込む動作)を示すタイムチャートである。
まず、CPU3がCPU4に属するRAM6にデータを書き込む動作について説明する。図4は、本発明のデータ転送方法の実施の形態の動作(CPU3がRAM6にデータを書き込む動作)を示すタイムチャートである。
(1)ステップS01:CPU3は、バス権を要求する信号をバスアービタ7へ出力する。
(2)ステップS02:バスアービタ7は、所定の条件に基づいて、バス権の要求を許可する信号をCPU3へ出力する。
(3)ステップS03:CPU3は、図2で説明した実アドレス空間M2における実アドレスB空間のアドレス(以下、実アドレスB)と当該書き込みデータとを、RAM6にデータを書き込むためにデータ転送制御回路2向けに、ローカルバス11へ出力(送信)する。
(4)ステップS04:CPU3は、ステップS03において実アドレスBと書き込みデータを出力した後、バスを開放する信号をバスアービタ7へ出力する。
(5)ステップS05:バスアービタ7は、所定の条件に基づいて、バスを開放する信号をCPU3へ出力する。
(2)ステップS02:バスアービタ7は、所定の条件に基づいて、バス権の要求を許可する信号をCPU3へ出力する。
(3)ステップS03:CPU3は、図2で説明した実アドレス空間M2における実アドレスB空間のアドレス(以下、実アドレスB)と当該書き込みデータとを、RAM6にデータを書き込むためにデータ転送制御回路2向けに、ローカルバス11へ出力(送信)する。
(4)ステップS04:CPU3は、ステップS03において実アドレスBと書き込みデータを出力した後、バスを開放する信号をバスアービタ7へ出力する。
(5)ステップS05:バスアービタ7は、所定の条件に基づいて、バスを開放する信号をCPU3へ出力する。
(6)ステップS06:データ転送制御回路2は、ローカルバス11経由で実アドレスBと書き込みデータとを受信する。
(7)ステップS07:データ転送制御回路2のメイン制御部22は、実アドレスBと書き込みデータとを識別子を付けてバッファメモリ24へ一時記憶する。識別子は、例えば、バッファに格納された順番を示す。
(8)ステップS08:データ転送制御回路2の優先順位判定部21は、データ転送制御回路2内で優先順位の高い処理があるか否かを判定する。すなわち、ローカルバス12を介して書き込みデータをRAM6へ出力する(書き込む)処理をしてよいか否かを判定する。
例えば、既にバッファメモリ24へ格納され、処理される順番が先であり、RAM6(又はRAM5)へ書き込むべき実アドレスB及び書き込みデータ(又は読み出すべきデータのアドレス)があるか否かを判定する。無い場合には、このデータの読み出しが実行される。
(9)ステップS09:データ転送制御回路2のメイン制御部22は、アドレス変換テーブル23を参照して、実アドレスB(実アドレスB23−1)をRAM6上の実アドレス(RAM実アドレス23−2)に変換する。
(10)ステップS10:メイン制御部22は、ステップS06において書き込みデータをRAM6へ出力する(書き込む)処理をしてよいとの判定に基づいて、バス権を要求する信号をバスアービタ8へ出力する。
(11)ステップS11:バスアービタ8は、所定の条件に基づいて、バス権の要求を許可する信号をデータ転送制御回路2へ出力する。
(12)ステップS12:メイン制御部22は、RAM6上の実アドレスと書き込みデータとを、RAM6向けに、ローカルバス12へ出力(送信)する。その際、ローカルバス11の第1バス幅とローカルバス12の第2バス幅が異なる場合、バスコントローラ27は、第1バス幅を有する実アドレス及び書き込みデータを第2バス幅に変換して、ローカルバス12へ出力する。この変換は、メイン制御部22で行っても良い。
(13)ステップS13:RAM6は、受信された実アドレスに書き込みデータを書き込む。
(7)ステップS07:データ転送制御回路2のメイン制御部22は、実アドレスBと書き込みデータとを識別子を付けてバッファメモリ24へ一時記憶する。識別子は、例えば、バッファに格納された順番を示す。
(8)ステップS08:データ転送制御回路2の優先順位判定部21は、データ転送制御回路2内で優先順位の高い処理があるか否かを判定する。すなわち、ローカルバス12を介して書き込みデータをRAM6へ出力する(書き込む)処理をしてよいか否かを判定する。
例えば、既にバッファメモリ24へ格納され、処理される順番が先であり、RAM6(又はRAM5)へ書き込むべき実アドレスB及び書き込みデータ(又は読み出すべきデータのアドレス)があるか否かを判定する。無い場合には、このデータの読み出しが実行される。
(9)ステップS09:データ転送制御回路2のメイン制御部22は、アドレス変換テーブル23を参照して、実アドレスB(実アドレスB23−1)をRAM6上の実アドレス(RAM実アドレス23−2)に変換する。
(10)ステップS10:メイン制御部22は、ステップS06において書き込みデータをRAM6へ出力する(書き込む)処理をしてよいとの判定に基づいて、バス権を要求する信号をバスアービタ8へ出力する。
(11)ステップS11:バスアービタ8は、所定の条件に基づいて、バス権の要求を許可する信号をデータ転送制御回路2へ出力する。
(12)ステップS12:メイン制御部22は、RAM6上の実アドレスと書き込みデータとを、RAM6向けに、ローカルバス12へ出力(送信)する。その際、ローカルバス11の第1バス幅とローカルバス12の第2バス幅が異なる場合、バスコントローラ27は、第1バス幅を有する実アドレス及び書き込みデータを第2バス幅に変換して、ローカルバス12へ出力する。この変換は、メイン制御部22で行っても良い。
(13)ステップS13:RAM6は、受信された実アドレスに書き込みデータを書き込む。
(14)ステップS14:データ転送制御回路2のメイン制御部22は、ステップS10において実アドレスと書き込みデータを出力した後、バスを開放する信号をバスアービタ8へ出力する。
(15)ステップS15:バスアービタ8は、所定の条件に基づいて、バスを開放する信号をデータ転送制御回路2へ出力する。
(16)ステップS16:メイン制御部22は、ステップS10の後、書き込みデータの受け取り指示を示す信号を制御信号用の信号線34を介してCPU4へ出力する。
(17)ステップS17:メイン制御部22は、ステップS10の後、書き込みデータの送信完了を示す信号を制御信号用の信号線33を介してCPU3へ出力する。
(15)ステップS15:バスアービタ8は、所定の条件に基づいて、バスを開放する信号をデータ転送制御回路2へ出力する。
(16)ステップS16:メイン制御部22は、ステップS10の後、書き込みデータの受け取り指示を示す信号を制御信号用の信号線34を介してCPU4へ出力する。
(17)ステップS17:メイン制御部22は、ステップS10の後、書き込みデータの送信完了を示す信号を制御信号用の信号線33を介してCPU3へ出力する。
以上の動作により、CPU3がRAM6にデータを書き込む動ことができる。CPU4がCPU3に属するRAM5にデータを書き込む動作についても同様である。
上記動作において、CPU3のRAM6へのデータ書き込みの際、ローカルバス11とローカルバス12とは、それぞれ同時に占有されることがない。すなわち、ローカルバスを占有する必要があるときに占有するようにしている。それにより、ローカルバス11及び12の占有時間を短くすることができる。そして、ローカルバス11及び12を有効に使用することが可能となる。
上記動作において、ステップS04は、ステップS03の終了後、時間的に直ぐに行うことが好ましい。それにより、CPU3のRAM6へのデータ書き込みにおけるローカルバス11の占有時間をより短くすることができる。
同様に、上記動作において、ステップS14は、ステップS10の終了後、時間的に直ぐに行うことが好ましい。それにより、CPU3のRAM6へのデータ書き込みにおけるローカルバス12の占有時間をより短くすることができる。
ステップS16及びS17は、ステップS10の終了後、時間的に直ぐに行っても良い。また、CPU4からRAM5へのデータの書き込みも同様に実施することができる。
本発明により、CPU3は、通常のメモリアクセスの動作を行うことで、容易に他のCPU4のRAM6にアクセスすることができる。そのため、通信制御に使用するデバイスドライバが不要となる。使用コード量を減らすことができ、コードメモリを有効に活用することができる。データ転送のみに使用される共有メモリが不要となり、ハードウェア量を低減することができる。
次に、CPU3がCPU4に属するRAM6のデータを読み出す動作について説明する。図5は、本発明のデータ転送方法の実施の形態の動作(CPU3がRAM6のデータを読み出す動作)を示すタイムチャートである。
(1)ステップS21:CPU3は、バス権を要求する信号をバスアービタ7へ出力する。
(2)ステップS22:バスアービタ7は、所定の条件に基づいて、バス権の要求を許可する信号をCPU3へ出力する。
(3)ステップS23:CPU3は、図2で説明した実アドレス空間M2における実アドレスB空間のアドレス(以下、実アドレスB)及びデータ読出し要求を示す読出し要求データを、RAM6からデータを読み出すためにデータ転送制御回路2向けにローカルバス11へ出力(送信)する。
(2)ステップS22:バスアービタ7は、所定の条件に基づいて、バス権の要求を許可する信号をCPU3へ出力する。
(3)ステップS23:CPU3は、図2で説明した実アドレス空間M2における実アドレスB空間のアドレス(以下、実アドレスB)及びデータ読出し要求を示す読出し要求データを、RAM6からデータを読み出すためにデータ転送制御回路2向けにローカルバス11へ出力(送信)する。
(4)ステップS24:データ転送制御回路2は、ローカルバス11経由で実アドレスBと読み出し要求データとを受信する。
(5)ステップS25:データ転送制御回路2のメイン制御部22は、実アドレスBと読み出し要求データとを識別子を付けてバッファメモリ24へ一時記憶する。識別子は、例えば、バッファに格納された順番を示す。
(6)ステップS26:データ転送制御回路2の優先順位判定部21は、データ転送制御回路2内で優先順位の高い処理があるか否かを判定する。すなわち、ローカルバス12を介してRAM6からデータを読み出す処理をしてよいか否かを判定する。
例えば、既にバッファメモリ24へ格納され、処理される順番が先であり、RAM6(又はRAM5)へ書き込むべき実アドレスB及び書き込みデータ(又は読み出すべきデータの実アドレスB及び読み出し要求データ)があるか否かを判定する。無い場合には、このデータの読み出しが実行される。
(7)ステップS27:データ転送制御回路2のメイン制御部22は、アドレス変換テーブル23を参照して、実アドレスB(実アドレスB23−1)をRAM6上の実アドレス(RAM実アドレス23−2)に変換する。
(8)ステップS28:メイン制御部22は、ステップS26においてRAM6からデータを読み出す処理をしてよいとの判定に基づいて、バス権を要求する信号をバスアービタ8へ出力する。
(9)ステップS29:バスアービタ8は、所定の条件に基づいて、バス権の要求を許可する信号をデータ転送制御回路2へ出力する。
(10)ステップS30:メイン制御部22は、RAM6上の実アドレスと読み出し要求データとを、RAM6向けに、ローカルバス12へ出力(送信)する。その際、ローカルバス11の第1バス幅とローカルバス12の第2バス幅が異なる場合、バスコントローラ27は、第1バス幅を有する実アドレス及び書き込みデータを第2バス幅に変換して、ローカルバス12へ出力する。この変換は、メイン制御部22で行っても良い。
(5)ステップS25:データ転送制御回路2のメイン制御部22は、実アドレスBと読み出し要求データとを識別子を付けてバッファメモリ24へ一時記憶する。識別子は、例えば、バッファに格納された順番を示す。
(6)ステップS26:データ転送制御回路2の優先順位判定部21は、データ転送制御回路2内で優先順位の高い処理があるか否かを判定する。すなわち、ローカルバス12を介してRAM6からデータを読み出す処理をしてよいか否かを判定する。
例えば、既にバッファメモリ24へ格納され、処理される順番が先であり、RAM6(又はRAM5)へ書き込むべき実アドレスB及び書き込みデータ(又は読み出すべきデータの実アドレスB及び読み出し要求データ)があるか否かを判定する。無い場合には、このデータの読み出しが実行される。
(7)ステップS27:データ転送制御回路2のメイン制御部22は、アドレス変換テーブル23を参照して、実アドレスB(実アドレスB23−1)をRAM6上の実アドレス(RAM実アドレス23−2)に変換する。
(8)ステップS28:メイン制御部22は、ステップS26においてRAM6からデータを読み出す処理をしてよいとの判定に基づいて、バス権を要求する信号をバスアービタ8へ出力する。
(9)ステップS29:バスアービタ8は、所定の条件に基づいて、バス権の要求を許可する信号をデータ転送制御回路2へ出力する。
(10)ステップS30:メイン制御部22は、RAM6上の実アドレスと読み出し要求データとを、RAM6向けに、ローカルバス12へ出力(送信)する。その際、ローカルバス11の第1バス幅とローカルバス12の第2バス幅が異なる場合、バスコントローラ27は、第1バス幅を有する実アドレス及び書き込みデータを第2バス幅に変換して、ローカルバス12へ出力する。この変換は、メイン制御部22で行っても良い。
(11)ステップS31:RAM6は、RAM6上の実アドレスと読み出し要求データとをローカルバス12経由で受信する。
(12)ステップS32:RAM6は、受信した実アドレスに基づいて、当該実アドレスに格納されたデータとしての読み出しデータを読み出す。そして、CPU3へ供給するためにデータ転送制御回路2向けにローカルバス12へ読出しデータを出力する。
(12)ステップS32:RAM6は、受信した実アドレスに基づいて、当該実アドレスに格納されたデータとしての読み出しデータを読み出す。そして、CPU3へ供給するためにデータ転送制御回路2向けにローカルバス12へ読出しデータを出力する。
(13)ステップS33:データ転送制御回路2のメイン制御部22は、読出しデータを受信する。
(14)ステップS34:メイン制御部22は、CPU3へ供給するためにローカルバス11へ読出しデータを出力する。
(15)ステップS35:CPU3は、ローカルバス11を介して読出しデータを受信する。
(14)ステップS34:メイン制御部22は、CPU3へ供給するためにローカルバス11へ読出しデータを出力する。
(15)ステップS35:CPU3は、ローカルバス11を介して読出しデータを受信する。
(16)ステップS36:データ転送制御回路2は、ステップS33で読出しデータを受信した後、バスを開放する信号をバスアービタ8へ出力する。
(17)ステップS37:バスアービタ8は、所定の条件に基づいて、バスを開放する信号をデータ転送制御回路2へ出力する。
(18)ステップS38:CPU3は、読出しデータを受信した後、バスを開放する信号をバスアービタ7へ出力する。
(19)ステップS39:バスアービタ7は、所定の条件に基づいて、バスを開放する信号をCPU3へ出力する。
(17)ステップS37:バスアービタ8は、所定の条件に基づいて、バスを開放する信号をデータ転送制御回路2へ出力する。
(18)ステップS38:CPU3は、読出しデータを受信した後、バスを開放する信号をバスアービタ7へ出力する。
(19)ステップS39:バスアービタ7は、所定の条件に基づいて、バスを開放する信号をCPU3へ出力する。
以上の動作により、CPU3がRAM6に格納されたデータを読み出すことができる。CPU4がRAM5に格納されたデータを読み出す動作についても同様である。
上記動作において、ステップS36は、ステップS34の終了後、時間的に直ぐに行うことが好ましい。それにより、データ転送制御回路2によるRAM6のデータの読出しにおけるローカルバス12の占有時間をより短くすることができる。
CPU3がCPU4に属するRAM6のデータをアウトオブオーダで読み出す場合は、他の動作を用いることができる。図6は、アウトオブオーダで読み出す場合の本発明のデータ転送方法の実施の形態の動作を示すタイムチャートである。
(1)ステップS41:CPU3は、バス権を要求する信号をバスアービタ7へ出力する。
(2)ステップS42:バスアービタ7は、所定の条件に基づいて、バス権の要求を許可する信号をCPU3へ出力する。
(3)ステップS43:CPU3は、図2で説明した実アドレス空間M2における実アドレスB空間のアドレス(以下、実アドレスB)及びデータ読出し要求を示す読出し要求データを、RAM6からデータを読み出すためにデータ転送制御回路2向けにローカルバス11へ出力(送信)する。
(4)ステップS44:CPU3は、ステップS43において実アドレスBと読出し要求データを出力した後、バスを開放する信号をバスアービタ7へ出力する。
(5)ステップS45:バスアービタ7は、所定の条件に基づいて、バスを開放する信号をCPU3へ出力する。
(2)ステップS42:バスアービタ7は、所定の条件に基づいて、バス権の要求を許可する信号をCPU3へ出力する。
(3)ステップS43:CPU3は、図2で説明した実アドレス空間M2における実アドレスB空間のアドレス(以下、実アドレスB)及びデータ読出し要求を示す読出し要求データを、RAM6からデータを読み出すためにデータ転送制御回路2向けにローカルバス11へ出力(送信)する。
(4)ステップS44:CPU3は、ステップS43において実アドレスBと読出し要求データを出力した後、バスを開放する信号をバスアービタ7へ出力する。
(5)ステップS45:バスアービタ7は、所定の条件に基づいて、バスを開放する信号をCPU3へ出力する。
(6)ステップS46:データ転送制御回路2は、ローカルバス11経由で実アドレスBと読み出し要求データとを受信する。
(7)ステップS47:データ転送制御回路2のメイン制御部22は、実アドレスBと読み出し要求データとを識別子を付けてバッファメモリ24へ一時記憶する。識別子は、例えば、バッファに格納された順番を示す。
(8)ステップS48:データ転送制御回路2の優先順位判定部21は、データ転送制御回路2内で優先順位の高い処理があるか否かを判定する。すなわち、ローカルバス12を介してRAM6からデータを読み出す処理をしてよいか否かを判定する。
例えば、既にバッファメモリ24へ格納され、処理される順番が先であり、RAM6(又はRAM5)へ書き込むべき実アドレスB及び書き込みデータ(又は読み出すべきデータの実アドレスB及び読み出し要求データ)があるか否かを判定する。無い場合には、このデータの読み出しが実行される。
(9)ステップS49:データ転送制御回路2のメイン制御部22は、アドレス変換テーブル23を参照して、実アドレスB(実アドレスB23−1)をRAM6上の実アドレス(RAM実アドレス23−2)に変換する。
(10)ステップS50:メイン制御部22は、ステップS26においてRAM6からデータを読み出す処理をしてよいとの判定に基づいて、バス権を要求する信号をバスアービタ8へ出力する。
(11)ステップS51:バスアービタ8は、所定の条件に基づいて、バス権の要求を許可する信号をデータ転送制御回路2へ出力する。
(12)ステップS52:メイン制御部22は、RAM6上の実アドレスと読み出し要求データとを、RAM6向けに、ローカルバス12へ出力(送信)する。その際、ローカルバス11の第1バス幅とローカルバス12の第2バス幅が異なる場合、バスコントローラ27は、第1バス幅を有する実アドレス及び書き込みデータを第2バス幅に変換して、ローカルバス12へ出力する。この変換は、メイン制御部22で行っても良い。
(7)ステップS47:データ転送制御回路2のメイン制御部22は、実アドレスBと読み出し要求データとを識別子を付けてバッファメモリ24へ一時記憶する。識別子は、例えば、バッファに格納された順番を示す。
(8)ステップS48:データ転送制御回路2の優先順位判定部21は、データ転送制御回路2内で優先順位の高い処理があるか否かを判定する。すなわち、ローカルバス12を介してRAM6からデータを読み出す処理をしてよいか否かを判定する。
例えば、既にバッファメモリ24へ格納され、処理される順番が先であり、RAM6(又はRAM5)へ書き込むべき実アドレスB及び書き込みデータ(又は読み出すべきデータの実アドレスB及び読み出し要求データ)があるか否かを判定する。無い場合には、このデータの読み出しが実行される。
(9)ステップS49:データ転送制御回路2のメイン制御部22は、アドレス変換テーブル23を参照して、実アドレスB(実アドレスB23−1)をRAM6上の実アドレス(RAM実アドレス23−2)に変換する。
(10)ステップS50:メイン制御部22は、ステップS26においてRAM6からデータを読み出す処理をしてよいとの判定に基づいて、バス権を要求する信号をバスアービタ8へ出力する。
(11)ステップS51:バスアービタ8は、所定の条件に基づいて、バス権の要求を許可する信号をデータ転送制御回路2へ出力する。
(12)ステップS52:メイン制御部22は、RAM6上の実アドレスと読み出し要求データとを、RAM6向けに、ローカルバス12へ出力(送信)する。その際、ローカルバス11の第1バス幅とローカルバス12の第2バス幅が異なる場合、バスコントローラ27は、第1バス幅を有する実アドレス及び書き込みデータを第2バス幅に変換して、ローカルバス12へ出力する。この変換は、メイン制御部22で行っても良い。
(13)ステップS53:データ転送制御回路2は、ステップS52において実アドレスと読出し要求データを出力した後、バス権を要求する信号をバスアービタ7へ出力する。
(14)ステップS54:バスアービタ7は、所定の条件に基づいて、バス権を許可する信号をデータ転送制御回路2へ出力する。
(14)ステップS54:バスアービタ7は、所定の条件に基づいて、バス権を許可する信号をデータ転送制御回路2へ出力する。
(15)ステップS55:RAM6は、RAM6上の実アドレスと読み出し要求データとをローカルバス12経由で受信する。
(16)ステップS56:RAM6は、受信した実アドレスに基づいて、当該実アドレスに格納されたデータとしての読み出しデータを読み出す。そして、CPU3へ供給するためにデータ転送制御回路2向けにローカルバス12へ読出しデータを出力する。
(16)ステップS56:RAM6は、受信した実アドレスに基づいて、当該実アドレスに格納されたデータとしての読み出しデータを読み出す。そして、CPU3へ供給するためにデータ転送制御回路2向けにローカルバス12へ読出しデータを出力する。
(17)ステップS57:データ転送制御回路2のメイン制御部22は、読出しデータを受信する。
(18)ステップS58:メイン制御部22は、CPU3へ供給するためにローカルバス11へ読出しデータを出力する。
(19)ステップS59:CPU3は、ローカルバス11を介して読出しデータを受信する。
(18)ステップS58:メイン制御部22は、CPU3へ供給するためにローカルバス11へ読出しデータを出力する。
(19)ステップS59:CPU3は、ローカルバス11を介して読出しデータを受信する。
(20)ステップS60:データ転送制御回路2は、ステップS57で読出しデータを受信した後、バスを開放する信号をバスアービタ8へ出力する。
(21)ステップS61:バスアービタ8は、所定の条件に基づいて、バスを開放する信号をデータ転送制御回路2へ出力する。
(22)ステップS62:データ転送制御回路2は、ステップS58で読出しデータを出力した後、バスを開放する信号をバスアービタ7へ出力する。
(23)ステップS63:バスアービタ7は、所定の条件に基づいて、バスを開放する信号をCPU3へ出力する。
(21)ステップS61:バスアービタ8は、所定の条件に基づいて、バスを開放する信号をデータ転送制御回路2へ出力する。
(22)ステップS62:データ転送制御回路2は、ステップS58で読出しデータを出力した後、バスを開放する信号をバスアービタ7へ出力する。
(23)ステップS63:バスアービタ7は、所定の条件に基づいて、バスを開放する信号をCPU3へ出力する。
以上の動作により、CPU3がRAM6に格納されたデータを読み出すことができる。CPU4がRAM5に格納されたデータを読み出す動作についても同様である。
上記動作において、ステップS45とステップS52との間では、ローカルバス11が開放されているので、ローカルバス11の占有時間をより短くすることができる。そして、ローカルバス11をより有効に使用することが可能となる。
図4〜図6におけるデータの書き込み動作及び読み出し動作において、バッファメモリ24の大きさに対応して、所定の数のデータを一括して書き込み及び読み出しを行うことも可能である。
書き込みの場合、実アドレスと書き込みデータの組を、データの数だけデータ転送制御回路2へ出力すればよい。又は、実アドレスの先頭アドレス及びデータの数をアドレスに関する情報として、複数の書き込みデータと共にデータ転送制御回路2へ出力すればよい。
読み出しの場合、読み出しデータの数だけの実アドレスと一つの読み出し要求データをデータ転送制御回路2へ出力すればよい。又は、実アドレスの先頭アドレス及びデータの数をアドレスに関する情報として、一つの読み出し要求データと共にデータ転送制御回路2へ出力すればよい。
書き込みの場合、実アドレスと書き込みデータの組を、データの数だけデータ転送制御回路2へ出力すればよい。又は、実アドレスの先頭アドレス及びデータの数をアドレスに関する情報として、複数の書き込みデータと共にデータ転送制御回路2へ出力すればよい。
読み出しの場合、読み出しデータの数だけの実アドレスと一つの読み出し要求データをデータ転送制御回路2へ出力すればよい。又は、実アドレスの先頭アドレス及びデータの数をアドレスに関する情報として、一つの読み出し要求データと共にデータ転送制御回路2へ出力すればよい。
このようにすることで、バスアービタにバス権を要求するアビトレーションのオーバーヘッドを少なくすることができる。それにより、データの書き込み動作及び読み出し動作にかかる時間が短縮され、CPU及びローカルバスをより有効に利用することができる。
1 制御装置
2 データ転送制御回路
3、4 CPU
5、6 RAM
5−1、6−1 メモリ領域
7、8 バスアービタ
11、12 ローカルバス
13 データ転送制御回路2は、21と、22と、24と26とを備える。
21 優先順位判定部
22 メイン制御部
23 アドレス変換テーブル
23−1 実アドレスB
23−2 RAM実アドレス
24 バッファメモリ
26、27 バスコントローラ
33、34 信号線
2 データ転送制御回路
3、4 CPU
5、6 RAM
5−1、6−1 メモリ領域
7、8 バスアービタ
11、12 ローカルバス
13 データ転送制御回路2は、21と、22と、24と26とを備える。
21 優先順位判定部
22 メイン制御部
23 アドレス変換テーブル
23−1 実アドレスB
23−2 RAM実アドレス
24 バッファメモリ
26、27 バスコントローラ
33、34 信号線
Claims (9)
- 第1CPU(central processing unit)及び第1記憶部が接続された第1バスと、第2CPU及び第2記憶部が接続された第2バスとの間に接続されたデータ転送制御回路であって、
前記第1CPUが前記第1バスを介して出力した第1アドレスと第1書き込みデータとを一時記憶する一時記憶部と、
アドレス変換テーブルを参照して、前記第1アドレスを前記第2記憶部上の第2アドレスに変換する制御部と
を具備し、
前記第1CPUが前記第1バスを開放した後、前記制御部が、前記第2バスを占有して、前記第2バスを介して前記第2記憶部の前記第2アドレスへ前記第1書き込みデータを書き込む
データ転送制御回路。 - 請求項1に記載のデータ転送制御回路において、
前記第2バスを介して前記第1書き込みデータを出力してよいか否かを判定する判定部を更に具備し、
前記制御部は、前記判定部の判定に基づいて、前記第2バスを介して前記第2記憶部の前記第2アドレスへ前記第1書き込みデータを書き込む
データ転送制御回路。 - 請求項1又は2に記載のデータ転送制御回路において、
前記第1バスに接続され、前記第1バスの第1バス幅に対応した第1バスコントローラと、
前記第2バスに接続され、前記第2バスの第2バス幅に対応した第2バスコントローラと
を更に具備し、
前記第1バス幅は、前記第2バス幅と異なり、
前記第2バスコントローラは、前記第1バス幅を有する前記第1書き込みデータを前記第2バス幅に変換して前記第2バスへ出力する
データ転送制御回路。 - 請求項1又は2に記載のデータ転送制御回路において、
前記第1バスに接続され、前記第1バスの第1バス幅に対応した第1バスコントローラと、
前記第2バスに接続され、前記第2バスの第2バス幅に対応した第2バスコントローラと
を更に具備し、
前記第1バス幅は、前記第2バス幅と異なり、
前記制御部は、前記第1バス幅を有する前記第1書き込みデータを前記第2バス幅に変換して前記第2バスコントローラへ出力する
データ転送制御回路。 - 第1CPUと、
前記第1CPUに属する第1記憶部と、
前記第1CPUと前記第1記憶部とが接続された第1バスと、
第2CPUと、
前記第2CPUに属する第2記憶部と、
前記第2CPUと前記第2記憶部とが接続された第2バスと、
前記第1バスと前記第2バスとの間に接続された請求項1乃至4のいずれか一項に記載のデータ転送制御回路と
を具備する
制御装置。 - 請求項5に記載の制御装置において、
前記第1CPU、前記第1記憶部、前記第1バス、前記第2CPU、前記第2記憶部及び前記第2バスが、1チップに搭載されている
制御装置。 - 第1CPU及び第1記憶部が接続された第1バスと、第2CPU及び第2記憶部が接続された第2バスとの間に接続されたデータ転送制御回路によるデータ転送方法であって、
(a)前記第1CPUが、前記第1バスを占有して、前記第1バスを介して前記データ転送制御回路へ第1アドレスと第1書き込みデータとを出力するステップと、
(b)前記データ転送制御回路が、前記第1アドレスと前記第1書き込みデータを一時記憶するステップと、
(c)前記データ転送制御回路が、アドレス変換テーブルを参照して、前記第1アドレスを前記第2記憶部上の第2アドレスに変換するステップと、
(d)前記第1CPUが前記第1バスを開放するステップと、
(e)前記データ転送制御回路が、前記第2バスを占有して、前記第2バスを介して前記第2記憶部の前記第2アドレスへ前記第1書き込みデータを出力するステップと
を具備する
データ転送方法。 - 請求項7に記載のデータ転送方法において、
前記(e)ステップは、
(e1)前記データ転送制御回路が、前記第2バスを介して前記第1書き込みデータを出力してよいか否かを判定するステップと、
(e2)前記判定に基づいて、前記第2バスを介して前記第2記憶部の前記第2アドレスへ前記第1書き込みデータを書き込むステップと
を備える
データ転送方法。 - 請求項7又は8に記載のデータ転送方法において、
前記(e)ステップは、
(e3)前記第2バスコントローラは、前記第1バスの第1バス幅を有する前記第1書き込みデータを前記第2バスの第2バス幅に変換するステップを備える
データ転送方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004149183A JP2005332145A (ja) | 2004-05-19 | 2004-05-19 | データ転送制御回路及びデータ転送方法 |
US11/131,230 US20050262327A1 (en) | 2004-05-19 | 2005-05-18 | Data transfer control circuit, control apparatus and data transfer method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004149183A JP2005332145A (ja) | 2004-05-19 | 2004-05-19 | データ転送制御回路及びデータ転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005332145A true JP2005332145A (ja) | 2005-12-02 |
Family
ID=35376575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004149183A Pending JP2005332145A (ja) | 2004-05-19 | 2004-05-19 | データ転送制御回路及びデータ転送方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050262327A1 (ja) |
JP (1) | JP2005332145A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8055854B2 (en) * | 2005-03-16 | 2011-11-08 | Samsung Electronics Co., Ltd. | System having memory device accessible to multiple processors |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004038211A1 (de) * | 2004-08-05 | 2006-03-16 | Robert Bosch Gmbh | Botschaftsverwalter und Verfahren zur Steuerung des Zugriffs auf Daten eines Botschaftsspeichers eines Kommunikationsbausteins |
JP4869714B2 (ja) * | 2006-01-16 | 2012-02-08 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、信号伝送方法、およびブリッジ |
US20110167229A1 (en) * | 2009-12-16 | 2011-07-07 | The Johns Hopkins University | Balanced data-intensive computing |
US20130262814A1 (en) * | 2012-03-29 | 2013-10-03 | Advanced Micro Devices, Inc. | Mapping Memory Instructions into a Shared Memory Address Place |
TWI607313B (zh) * | 2015-11-26 | 2017-12-01 | 神雲科技股份有限公司 | 機箱的控制系統 |
CN108647176B (zh) * | 2018-05-15 | 2020-09-29 | 北京经纬恒润科技有限公司 | 一种车联网设备数据传输方法及车联网设备 |
US11893276B2 (en) * | 2020-05-21 | 2024-02-06 | Micron Technology, Inc. | Apparatuses and methods for data management in a memory device |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0675905A (ja) * | 1992-05-22 | 1994-03-18 | Nec Corp | バス変換方式 |
JPH06348648A (ja) * | 1993-06-07 | 1994-12-22 | Fujitsu Ltd | バスインターフェース装置 |
JPH086893A (ja) * | 1994-06-20 | 1996-01-12 | Internatl Business Mach Corp <Ibm> | マルチプル・バス情報処理システム及びブリッジ回路 |
JPH08147241A (ja) * | 1994-11-22 | 1996-06-07 | Seiko Epson Corp | 情報処理装置およびその構成方法 |
JP2000148665A (ja) * | 1998-11-17 | 2000-05-30 | Nec Eng Ltd | データ処理装置 |
JP2000242612A (ja) * | 1999-02-25 | 2000-09-08 | Sega Enterp Ltd | メモリ及びバスを共有化したシステム |
JP2001517844A (ja) * | 1997-09-23 | 2001-10-09 | アイコア・テクノロジーズ・インコーポレイテッド | マルチポートメモリを用いる知的データバスインタフェース |
JP2002108835A (ja) * | 2000-09-29 | 2002-04-12 | Mitsubishi Electric Corp | 車載電子制御装置 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4384322A (en) * | 1978-10-31 | 1983-05-17 | Honeywell Information Systems Inc. | Asynchronous multi-communication bus sequence |
US5117350A (en) * | 1988-12-15 | 1992-05-26 | Flashpoint Computer Corporation | Memory address mechanism in a distributed memory architecture |
JPH031260A (ja) * | 1989-05-30 | 1991-01-07 | Hitachi Ltd | 計算機方式 |
US5553310A (en) * | 1992-10-02 | 1996-09-03 | Compaq Computer Corporation | Split transactions and pipelined arbitration of microprocessors in multiprocessing computer systems |
JP2974526B2 (ja) * | 1992-12-18 | 1999-11-10 | 富士通株式会社 | データ転送処理方法及びデータ転送処理装置 |
US5708794A (en) * | 1993-08-10 | 1998-01-13 | Dell Usa, L.P. | Multi-purpose usage of transaction backoff and bus architecture supporting same |
US6092139A (en) * | 1994-03-11 | 2000-07-18 | Crane, Jr.; Stanford W. | Passive backplane capable of being configured to a variable data path width corresponding to a data size of the pluggable CPU board |
JPH0816470A (ja) * | 1994-07-04 | 1996-01-19 | Hitachi Ltd | 並列計算機 |
US5542053A (en) * | 1994-11-30 | 1996-07-30 | International Business Machines Corporation | Bridge interface between two buses of a computer system with a direct memory access controller programmed by a scatter/gather programmer |
US5603051A (en) * | 1995-06-06 | 1997-02-11 | Hewlett-Packard Company | Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus |
US5682512A (en) * | 1995-06-30 | 1997-10-28 | Intel Corporation | Use of deferred bus access for address translation in a shared memory clustered computer system |
US5857082A (en) * | 1997-04-25 | 1999-01-05 | Intel Corporation | Method and apparatus for quickly transferring data from a first bus to a second bus |
US6014720A (en) * | 1997-05-05 | 2000-01-11 | Intel Corporation | Dynamically sizing a bus transaction for dual bus size interoperability based on bus transaction signals |
US6061772A (en) * | 1997-06-30 | 2000-05-09 | Sun Microsystems, Inc. | Split write data processing mechanism for memory controllers utilizing inactive periods during write data processing for other transactions |
FR2767939B1 (fr) * | 1997-09-04 | 2001-11-02 | Bull Sa | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur |
US6260093B1 (en) * | 1998-03-31 | 2001-07-10 | Lsi Logic Corporation | Method and apparatus for arbitrating access to multiple buses in a data processing system |
US6195730B1 (en) * | 1998-07-24 | 2001-02-27 | Storage Technology Corporation | Computer system with storage device mapping input/output processor |
US6397306B2 (en) * | 1998-10-23 | 2002-05-28 | Alcatel Internetworking, Inc. | Per memory atomic access for distributed memory multiprocessor architecture |
US6253250B1 (en) * | 1999-06-28 | 2001-06-26 | Telocity, Incorporated | Method and apparatus for bridging a plurality of buses and handling of an exception event to provide bus isolation |
US6662257B1 (en) * | 2000-05-26 | 2003-12-09 | Ati International Srl | Multiple device bridge apparatus and method thereof |
US6754761B1 (en) * | 2000-08-07 | 2004-06-22 | International Business Machines Corporation | Communications system including symmetric bus bridge and method used therewith |
DE50113128D1 (de) * | 2001-12-03 | 2007-11-22 | Infineon Technologies Ag | Datenübertragungseinrichtung |
US6996659B2 (en) * | 2002-07-30 | 2006-02-07 | Lsi Logic Corporation | Generic bridge core |
US7020733B2 (en) * | 2002-10-09 | 2006-03-28 | Samsung Electronics Co., Ltd. | Data bus system and method for performing cross-access between buses |
US7548512B2 (en) * | 2003-02-06 | 2009-06-16 | General Electric Company | Methods and systems for prioritizing data transferred on a Local Area Network |
-
2004
- 2004-05-19 JP JP2004149183A patent/JP2005332145A/ja active Pending
-
2005
- 2005-05-18 US US11/131,230 patent/US20050262327A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0675905A (ja) * | 1992-05-22 | 1994-03-18 | Nec Corp | バス変換方式 |
JPH06348648A (ja) * | 1993-06-07 | 1994-12-22 | Fujitsu Ltd | バスインターフェース装置 |
JPH086893A (ja) * | 1994-06-20 | 1996-01-12 | Internatl Business Mach Corp <Ibm> | マルチプル・バス情報処理システム及びブリッジ回路 |
JPH08147241A (ja) * | 1994-11-22 | 1996-06-07 | Seiko Epson Corp | 情報処理装置およびその構成方法 |
JP2001517844A (ja) * | 1997-09-23 | 2001-10-09 | アイコア・テクノロジーズ・インコーポレイテッド | マルチポートメモリを用いる知的データバスインタフェース |
JP2000148665A (ja) * | 1998-11-17 | 2000-05-30 | Nec Eng Ltd | データ処理装置 |
JP2000242612A (ja) * | 1999-02-25 | 2000-09-08 | Sega Enterp Ltd | メモリ及びバスを共有化したシステム |
JP2002108835A (ja) * | 2000-09-29 | 2002-04-12 | Mitsubishi Electric Corp | 車載電子制御装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8055854B2 (en) * | 2005-03-16 | 2011-11-08 | Samsung Electronics Co., Ltd. | System having memory device accessible to multiple processors |
Also Published As
Publication number | Publication date |
---|---|
US20050262327A1 (en) | 2005-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8930637B2 (en) | Arrangement | |
JP6880402B2 (ja) | メモリアクセス制御装置及びその制御方法 | |
US20050262327A1 (en) | Data transfer control circuit, control apparatus and data transfer method | |
JPH11512857A (ja) | クラスタ・コンピュータ・システムにおけるアドレス変換 | |
JP2008027247A (ja) | メモリコントローラ | |
JP2774862B2 (ja) | Dma制御装置および情報処理装置 | |
KR20090100263A (ko) | Usb 제어기 및 버퍼 메모리 제어 방법 | |
JPWO2010016169A1 (ja) | マルチプロセッサシステム及びその制御方法 | |
JPH0628049B2 (ja) | 非同期バス間のデータ転送方法 | |
JP4001511B2 (ja) | Icカード及びその制御方法 | |
US6985974B1 (en) | Memory interface controller for a network device | |
US8041868B2 (en) | Bus relay device and bus control system including bus masters, interconnect section, and bridge section | |
JP2013147209A (ja) | 電子装置 | |
JP2008140065A (ja) | アクセス調停装置、アクセス調停方法、及び情報処理装置 | |
US20080209085A1 (en) | Semiconductor device and dma transfer method | |
US8239652B2 (en) | Data processing system | |
JP2008009926A (ja) | 情報処理装置、情報処理システムおよびアドレス変換方法 | |
JP2004227580A (ja) | 直接メモリ接近媒体のデータ伝送装置及び方法 | |
JP2006011926A (ja) | シリアルデータ転送システム、シリアルデータ転送装置、シリアルデータ転送方法及び画像形成装置 | |
JP3678537B2 (ja) | データ転送方法及び装置 | |
KR20020097478A (ko) | 다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러 | |
JP2016224560A (ja) | マルチチップシステム、及びその制御方法 | |
JP2006195810A (ja) | メモリコントローラおよび高速データ転送方法 | |
JP2503059B2 (ja) | 異種バス間接続装置 | |
JP4395600B2 (ja) | データ処理装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070405 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100106 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100428 |