JP3678537B2 - データ転送方法及び装置 - Google Patents
データ転送方法及び装置 Download PDFInfo
- Publication number
- JP3678537B2 JP3678537B2 JP10198897A JP10198897A JP3678537B2 JP 3678537 B2 JP3678537 B2 JP 3678537B2 JP 10198897 A JP10198897 A JP 10198897A JP 10198897 A JP10198897 A JP 10198897A JP 3678537 B2 JP3678537 B2 JP 3678537B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- direct memory
- memory access
- control means
- access control
- 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
- Bus Control (AREA)
Description
【発明の属する技術分野】
本発明は、2つの異なるバスにそれぞれ接続されたデバイスやメモリの間でデータを転送するためのデータ転送方法及び装置に関する。
【0002】
【従来の技術】
従来において、メインバスとサブバスのような異なるバスをゲートウェイ等のバス中継器を介して接続し、メインバスに設けられたDMA(ダイレクトメモリアクセス)コントローラによりこれらのバス間でデータのDMA転送を行うものが知られている。
【0003】
例えば、図6に示すような構成において、メインバス101とサブバス102とはそれぞれバスゲートウェイ等のバス中継器103に接続されている。メインバス101には、CPUや各種インターフェース等のデバイス104、DMAコントローラ(DMAC)105が接続され、サブバス102には、デバイス106、ROM等のメモリ107が接続される。
【0004】
この図6の例では、メインバス101上のDMAコントローラ105がバス中継器103を介してサブバス102も制御することにより、例えばデバイス104とデバイス106との間のDMA転送を実現している。このように、異なるバス101、102間であっても、それぞれのバスのアクセス時間が同じ程度であれば、無駄な待ち時間がなく、効率の良いデータ転送を行うことができる。
【0005】
【発明が解決しようとする課題】
ところで、1つのシステム内で異なるバスが共存する場合には、バス幅やデータアクセス速度が異なることが多く、例えば図6の例では、メインバス101が32ビット幅で高速、サブバス102が16ビット幅で低速となっている。
【0006】
このように、バス幅やデータアクセス速度が異なるバス間でDMA転送を行わせる場合には、高速のバス、例えば図6のメインバス101上で無駄な待ち時間を生じさせてしまうという欠点がある。
【0007】
本発明は、このような実情に鑑みてなされたものであり、異なる2つのバス間でのデータ転送が、無駄な待ち時間なく、効率よく行えるようなデータ転送方法及び装置の提供を目的とする。
【0008】
【課題を解決するための手段】
以上のような課題を解決する本発明のデータ転送方法は、所定のデータを出力する第1の手段、第1のダイレクトメモリアクセス制御手段、及び第1のCPUが接続される第1のバスと、前記所定のデータを受信する第2の手段、第2のダイレクトメモリアクセス制御手段、及び第2のCPUが接続される第2のバスと、バッファメモリを有しており、前記第1のバスと前記第2のバスとの間に接続されるバス中継手段と、を備えた装置において実行される方法である。
すなわち、本発明のデータ転送方法は、前記第1のダイレクトメモリアクセス制御手段が、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第1のCPUに前記第1のバスの使用権の要求を行って前記第1のバスの使用権を確保して、前記第1の手段から前記第1のバスを介して前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送する段階と、前記第2のダイレクトメモリアクセス制御手段が、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第2のCPUに前記第2のバスの使用権の要求を行って前記第2のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第2のバスを介して前記第2の手段へ前記所定のデータをダイレクトメモリアクセス転送する段階と、を含む。
本発明の他のデータ転送方法として、前記第1のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第1の手段からダイレクトメモリアクセス要求があると、前記第1のCPUに前記第1のバスの使用権の要求を行って前記第1のバスの使用権を確保して、前記第1の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送する。また、前記第2のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第2の手段からダイレクトメモリアクセス要求があると、前記第2のCPUに前記第2のバスの使用権の要求を行って前記第2のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第2の手段へ前記所定のデータをダイレクトメモリアクセス転送する。
【0009】
バス中継手段から第1及び第2のダイレクトメモリアクセス制御手段にダイレクトメモリアクセス要求を行う前に、前記第1の手段から前記バス中継手段の前記バッファメモリへのダイレクトメモリアクセス転送に用いる第1のアクセスチャネルのデータサイズと、前記バス中継手段の前記バッファメモリから前記第2の手段へのダイレクトメモリアクセス転送に用いる第2のアクセスチャネルのデータサイズと、を同じになるように設定するようにしてもよい。これにより、第1のバスと第2のバスとでバス幅が異なる場合でも、転送速度を同じにして、バス幅が大きいバスに無駄な待ち時間が発生することを防ぐことができる。
前記第1の手段から前記バス中継手段の前記バッファメモリへのダイレクトメモリアクセス転送に用いる第1のアクセスチャネル、及び前記バス中継手段の前記バッファメモリから前記第2の手段へのダイレクトメモリアクセス転送に用いる第2のアクセスチャネルがそれぞれ複数用意され、各第1のアクセスチャネル及び各第2のアクセスチャネルのそれぞれに優先順位が付けられている場合には、前記バス中継手段が、前記優先順位に応じて1の第1のアクセスチャネルを選択して、前記前記第1のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第1のアクセスチャネルを指定し、前記優先順位に応じて1の第2のアクセスチャネルを選択して、前記前記第2のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第2のアクセスチャネルを指定するようにしてもよい。
また、前記第1のダイレクトメモリアクセス制御手段が、前記所定のデータを前記バッファメモリの記憶容量に応じたサイズに分割してダイレクトメモリアクセス転送するようにしてもよい。これにより、画像処理の際に用いるような大容量のデータを転送する場合でも、バッファメモリとして大容量のものを用意する必要がなくなる。
【0010】
本発明のデータ転送装置は、バッファメモリを有しており、第1のバスと第2のバスとの間に接続されるバス中継手段と、前記第1のバスに接続されており、所定のデータを出力する第1の手段と、前記第1のバスに接続されており、前記第1の手段から前記第1のバスを介して前記バス中継手段の前記バッファメモリに前記所定のデータを転送する第1のダイレクトメモリアクセス制御手段と、前記第1のバスに接続されており、前記第1のダイレクトメモリアクセス制御手段に対して前記第1のバス上のダイレクトメモリアクセスの設定を行う第1のCPUと、前記第2のバスに接続されており、前記所定のデータを受信する第2の手段と、前記第2のバスに接続されており、前記バス中継手段の前記バッファメモリから前記所定のデータを読み出して、読み出した前記所定のデータを、前記第2のバスを介して前記第2の手段に転送する第2のダイレクトメモリアクセス制御手段と、前記第2のバスに接続されており、前記第2のダイレクトメモリアクセス制御手段に対して前記第2のバス上のダイレクトメモリアクセスの設定を行う第2のCPUと、を備えており、前記第1のダイレクトメモリアクセス制御手段は、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第1のCPUに前記第1のバスの使用権の要求を行って前記第1のバスの使用権を確保して、前記第1の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、前記第2のダイレクトメモリアクセス制御手段は、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第2のCPUに前記第2のバスの使用権の要求を行って前記第2のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第2の手段へ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、前記バス中継手段の前記バッファメモリを介して、前記第1の手段から前記第2の手段へ前記所定のデータを転送するようにしたことを特徴とする。
【0011】
本発明の他のデータ転送装置は、バッファメモリを有しており、第1のバスと第2のバスとの間に接続されるバス中継手段と、前記第1のバスに接続されており、所定のデータを出力する第1の手段と、前記第1のバスに接続されており、前記第1の手段から前記第1のバスを介して前記バス中継手段の前記バッファメモリに前記所定のデータを転送する第1のダイレクトメモリアクセス制御手段と、前記第1のバスに接続されており、前記第1のダイレクトメモリアクセス制御手段に対して前記第1のバス上のダイレクトメモリアクセスの設定を行う第1のCPUと、前記第2のバスに接続されており、前記所定のデータを受信する第2の手段と、前記第2のバスに接続されており、前記バス中継手段の前記バッファメモリから前記所定のデータを読み出して、読み出した前記所定のデータを、前記第2のバスを介して前記第2の手段に転送する第2のダイレクトメモリアクセス制御手段と、前記第2のバスに接続されており、前記第2のダイレクトメモリアクセス制御手段に対して前記第2のバス上のダイレクトメモリアクセスの設定を行う第2のCPUと、を備えており、前記第1のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第1の手段からダイレクトメモリアクセス要求があると、前記第1のCPUに前記第1のバスの使用権の要求を行って前記第1のバスの使用権を確保して、前記第1の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、前記第2のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第2の手段からダイレクトメモリアクセス要求があると、前記第2のCPUに前記第2のバスの使用権の要求を行って前記第2のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第2の手段へ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、前記バス中継手段の前記バッファメモリを介して、前記第1の手段から前記第2の手段へ前記所定のデータを転送するようにしたことを特徴とする。
前記バス中継手段は、前記バッファメモリのアクセス動作を制御するとともに、前記第1のダイレクトメモリアクセス制御手段及び前記第2のダイレクトメモリアクセス制御手段に対してダイレクトメモリアクセス要求を行うバッファ制御手段をさらに備えるようにしてもよい。
また、前記第1のバス及び前記第2のバスが、それぞれ複数のアクセスチャネルを有する場合に、前記バッファ制御手段を、前記第1のダイレクトメモリアクセス制御手段及び前記第2のダイレクトメモリアクセス制御手段に対して、複数のアクセスチャネルの各々に対応する複数種類のダイレクトメモリアクセス要求のうちの一つを選択して送ることにより、どのアクセスチャネルを用いたダイレクトメモリアクセス転送を行うかを指定ように構成してもよい。
前記第1のバスは複数の第1のアクセスチャネルを有しており、前記第2のバスは複数の第2のアクセスチャネルを有し、各第1のアクセスチャネル及び各第2のアクセスチャネルにはそれぞれ優先順位が付けられている場合には、前記バッファ制御手段を、前記優先順位に応じて1の第1のアクセスチャネルを選択して、前記前記第1のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第1のアクセスチャネルを指定するとともに、前記優先順位に応じて1の第2のアクセスチャネルを選択して、前記前記第2のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第2のアクセスチャネルを指定するように構成してもよい。
【0012】
【発明の実施の形態】
以下、本発明に係る実施の形態について、図面を参照しながら説明する。
図1は、本発明に係る実施の形態となるデータ転送方法が適用されるシステム構成をを示すブロック図である。
【0013】
この図1において、第1のバス11及び第2のバス12は、FIFO等のバッファメモリを用いて成るバス中継器13にそれぞれ接続され、このバス中継器13を介してバス11、12間で互いにデータの転送を行うことができる。第1のバス11には、CPU21、DMA(ダイレクトメモリアクセス)コントローラ(DMAC)22、デバイス23、メモリ24等が接続されており、第2のバス12には、CPU26、DMAコントローラ27、デバイス28、メモリ29等が接続されている。
【0014】
デバイス23はDMAコントローラ22に対して、デバイス28はDMAコントローラ27に対して、それぞれDMA要求を出すことができる。これらのデバイス23,28としては、例えば、画像や音声のエンコーダ、デコーダ、グラフィック処理のためのグラフィックエンジン、画像処理や音声処理IC等、あるいは、それぞれのインターフェースを介してのハードディスク装置、光磁気ディスク装置、フロッピィディスク装置、CD−ROM装置等の周辺機器を挙げることができる。バス中継器13は、DMAコントローラ22、27に対してそれぞれDMA要求を出すことができる。これらのDMA要求は、複数のDMAチャネルの内のどのDMAチャネルかを指定することができる。
【0015】
このような図1のシステムに用いられるバス中継器13の構成の一例を図2に示す。この図2において、上記図1の第1のバス11はデータバス11aとアドレス・制御バス11bとに分けて、上記第2のバス12はデータバス12bとアドレス・制御バス12bとに分けて示されている。バス中継器13内には、第1のバス11のデータバス11aに接続される内部バス31と、第2のバス12のデータバス12aに接続される内部バス32とが設けられ、これらの内部バス31,32には、FIFO(First In First Out:先入れ先出し)メモリ33と、バッファ制御ユニット34とがそれぞれ接続されている。バッファ制御ユニット34は、第1のバス11のアドレス・制御バス11b、及び第2のバス12のアドレス・制御バス12bとも接続されている。また、バッファ制御ユニット34には、上記図1のDMAコントローラ22,27との間でDMA要求(DREQ)やチャネル指定等を行うための制御信号ラインが接続されている。
【0016】
この図2に示すバス中継器13において、FIFOメモリ33は、バッファの役割を果たすメモリであり、バッファ制御ユニット34によって、アクセスされるバス11,12、すなわちこれらに接続された内部バス31,32に対してデータの入出力を制御される。バッファ制御ユニット34は、FIFOメモリ33のバスアクセス動作を制御すると共に、各バス11,12のDMAコントローラ22,27に対してDMA要求(DREQ)を出し、その応答(DMAアクノリッジ:DACK)を受け取る。このDMA要求は、複数のDMAチャネルの1つを指定して出すことができる。DMAコントローラ22,27からのDMAチャネル選択情報もこのバッファ制御ユニット34に送られる。
【0017】
ところで、第1のバス11と第2のバス12との間で、バス中継器13を介してDMA転送を行う場合には、DMAコントローラ22及び27のDMAの設定(例えばデータサイズ等)が矛盾なく対応している必要がある。CPU21はDMAコントローラ22に対して、またCPU26はDMAコントローラ27に対して、それぞれのバス上のDMAの設定を行う。
【0018】
例えば、第1のバス11のメモリ24から第2のバス12のメモリ28にDMAによるデータ転送を行う場合、第1のバス11のDMAコントローラ22にはメモリ24からバス中継器13へのDMAについて、また第2のバス12のDMAコントローラ27にはバス中継器13からメモリ29へのDMAについて、それぞれ同じデータサイズ(データ量)で対応するDMAチャネルとなるように設定されることが必要である。これらの設定がされた後の処理手順は、図3のようになる。
【0019】
この図3において、最初のステップS61で、バス中継器13からDMAコントローラ(DMAC)22に対してDMA要求(DREQ)を行う。次のステップS62で、DMAコントローラ22はCPU21にバス11の使用権の要求(BREQ)を行ってバス使用権をもらい、メモリ24からバス中継器13へのDMA転送を行う。次のステップS63では、バス中継器13はDMAコントローラ27に対してDMA要求(DREQ)を行う。次のステップS64では、DMAコントローラ27はCPU26にバス12の使用権の要求(BREQ)を行ってバス使用権をもらい、バス中継器13からメモリ29へのDMA転送を行う。
【0020】
また、第2のバス12上のデバイス28から第1のバス11上のデバイス23にデータをDMA転送する場合には、DMAコントローラ27にはデバイス28からバス中継器13へのDMAについて、またDMAコントローラ22にはバス中継器13からデバイス23へのDMAについて、それぞれ同じデータサイズで対応するDMAチャネルとなるように設定されることが必要である。これらの設定がされた後の処理手順は、図4のようになる。
【0021】
この図4の最初のステップS71において、第2のバス12上のデバイス28はDMAコントローラ(DMAC)27に対してDMA要求(DREQ)を行う。次のステップS72で、バス中継器13はDMAコントローラ27に対してDMA要求(DREQ)を行う。ステップS73で、DMAコントローラ27は、デバイス28及びバス中継器13からの各DMA要求を受けたことに応じて、CPU26にバス12の使用権の要求(BREQ)を行ってバス使用権をもらい、デバイス28からバス中継器13へのDMA転送を行う。このとき、CPU26がバス要求(BREQ)に応じてバスを開放したときの応答をDMAコントローラ27に返し、DMAコントローラ27はDMAアクノリッジ(DACK)をバス中継器13等に返すことは、通常のDMA転送と同様である。次のステップS74で、バス中継器13が第1のバス11上のDMAコントローラ22に対してDMA要求(DREQ)を行い、ステップS75で、デバイス23がDMAコントローラ22に対してDMA要求(DREQ)を行う。次のステップS76で、DMAコントローラ22は、デバイス23及びバス中継器13からの各DMA要求を受けたことに応じて、CPU21にバス11の使用権の要求(BREQ)を行ってバス使用権をもらい、バス中継器13からデバイス23へのDMA転送を行う。
【0022】
ここで、バス中継器13のFIFO等のメモリ容量は有限なので、それを超える大きさのデータを転送する場合には、DMAコントローラ22、27に分割転送の設定をして、上記ステップS61からS64まで、あるいはステップS71からS76までを繰り返せばよい。この分割転送の際の1回の転送単位(ブロック)は、バス中継器13のメモリ容量によって決まる。
【0023】
ところで、一まとまりのDMA転送が終わってから次のDMA転送を設定する場合には、単にバス中継器が介在するのみでよいが、例えば上記図3に示すDMA転送と上記図4に示すDMA転送との両方を設定しておき、条件が整ったものから、あるいは優先順位が高いものから順次転送処理し、転送が行われたものに対する次の処理を始める、というような効率のよいタスク管理を行う場合には、バス中継器13に複数のDMAチャネルを管理する機能を備えることが必要となる。
【0024】
以下、例えば3チャネルのDMAチャネル管理機能を有するバス中継器13を用いたDMA転送処理について説明する。この場合の設定の一例を次の表1に示す。この表1における各チャネルの優先順位は、Ch2が優先、Ch1,Ch3が同等とする。この表1中の開始アドレスの“0x”は16進数を表す。
【0025】
【表1】
【0026】
この表1に示す設定の終了時の初期状態として、例えばデバイス23、デバイス28が共にDMA要求を出しているものとする。このとき、バス中継器13はどのチャネルからでもDMA転送を始められることから、先ず優先度の高い2番のチャネルCh2を選び、第2のバス12のDMAコントローラ27に対してチャネルCh2のDMA要求(DREQ)を行い、DMAコントローラ27はデバイス28からバス中継器13に例えば64バイトのデータを転送する。この時点で例えばデバイス28からのDMA要求は取り下げられるものとする。
【0027】
次に、バス中継器13から第1のバス11のDMAコントローラ22に対してチャネルCh2のDMA要求(DREQ)を行い、DMAコントローラ22はバス中継器13からメモリ24の上記0x1000以下のアドレスに対して64バイトのデータ転送を行う。
【0028】
この時点では、デバイス28からのDMA要求が消えているので、優先順位の高いチャネルCh2は選択されない。チャネルCh1とCh3との優先順位は同等で、過去の履歴があればいわゆるラウンドロビン方式で順位決定が行われるが、最初であるのでチャネルCh1が選ばれる。ここで、ラウンドロビン方式とは、ロータリング式優先度制御方式ともいわれ、タイムシェアリング処理において、利用者に一定時間間隔で実行の権利を与える方式である。
【0029】
このようにしてバス中継器13は順次DMAチャネルを選択し、例えば次の表2に示すような順序でDMA転送処理を進めている。この表2においては、第1のバス11上のデバイス23からDMAコントローラ22へのDMA要求(DREQ)であるSA と、バス中継器13からDMAコントローラ22へのDMA要求(DREQ)であるSB とについて、これらのDMA要求SA ,SB の状態と処理の順序とを示している。
【0030】
【表2】
【0031】
この表2中の転送方向としては、バス中継器13、デバイス23,28、メモリ24,29の間をそれぞれの指示符号と矢印とで示している。また、各チャネルのブロック番号(B_No)を、Bk1,Bk2,Bk3で示している。さらに、DMAコントローラ22,27の各チャネルの転送の終了については、END_n_m によりDMAコントローラnのチャネルChmの転送が終了したことを示している。
【0032】
ここで、DMAコントローラ22,27の上述したチャネル以外のDMAチャネルにそれぞれのバス内の転送が設定されていれば、そのチャネルの優先順位をDMAコントローラ22,27が考慮してそれぞれのバス上でのDMAの順番を決める。すなわち、バス中継器13を介したDMAの優先順位だけバス中継器13で決められることになる。
【0033】
なお、チャネルの数やそれぞれのバス上のデバイスの構成等は上記の例に限定されない。また、優先順位、チャネル選択の条件としては、種々の組み合わせがあり、プログラムによって変更、設定することもできる。
【0034】
上記表2の処理手順に従って、それぞれのバス上でそれぞれのDMAチャネルに設定された全てのデータ転送が終わったところでDMAコントローラがCPUに割り込み要求を出すことによって、転送されたデータを用いる処理の開始を促すことができ、プログラマは最初にDMA制御の設定をするだけでいわゆるマルチスレッドのきっかけを与えることができる。
【0035】
従って、上述したような本発明の実施の形態によれば、異なるバス間のDMAを無駄な待ち時間を発生させることなく行うことができる。また、複数のDMAチャネルを同時に動作可能にすることにより、CPUの処理を簡素化し、平易なプログラミングと少ないオーバーヘッドを実現できる。また、バス間の中継器のバッファを効率よく活用することができる。さらに、マルチスレッドのプログラムを簡単に書くことができる。
【0036】
次に、図5は、本発明の実施の形態が適用されるシステムの一例を示し、このシステムにおいては、高速の画像処理を行うためのメインバス111と、CD−ROMドライブ等の低速な周辺デバイスが接続されるサブバス112とを、FIFO等のバッファメモリを有するバス中継器113を介して接続している。
【0037】
すなわち、図5において、高速のメインバス111には、メインCPU121と、DMAコントローラ122と、高速画像処理のためのグラフィックエンジン123と、メインメモリ124とが接続され、比較的低速のサブバス122には、サブCPU126と、DMAコントローラ127と、CD−ROM等のデータ記録媒体128と、サブメモリ129とが接続されている。これらのメインバス111とサブバス112とは、上述したようなFIFO等のバッファメモリを有するバス中継器113を介して接続され、このバス中継器113は、DMAコントローラ122、127に複数のDMAチャネルに対応する複数種類のDMA要求、例えば3種類のDMA要求を出すことができる。このバス中継器113の具体的な構成及び動作は、上記図1〜図4と共に説明した実施の形態のバス中継器13と同様とすればよいため、説明を省略する。
【0038】
このように、高速バスと低速バスとの間でDMA転送する場合に、高速バス上で無駄な待ち時間を生じさせることなくデータ転送が行え、CPUの処理を簡素化できる。
【0039】
なお、本発明は上記実施の形態のみに限定されるものではなく、例えば、上記実施の形態では、第1のバスと第2のバスとの間で双方向のDMA転送を行う例について説明したが、第1のバスから第2のバスへのDMA転送のみ、あるいは第2のバスから第1のバスへのDMA転送のみを行う場合にも本発明を適用できる。また、DMAチャネル数、各バスに接続される回路等は実施の形態に限定されないことは勿論である。
【0040】
【発明の効果】
以上の説明から明らかなように、本発明によれば、第1のバスに接続された第1のダイレクトメモリアクセス制御手段により、上記第1のバスに接続された少なくともデータ供給機能を有する回路手段からのデータをバス中継手段内のバッファメモリに転送し、第2のバスに接続された第2のダイレクトメモリアクセス制御手段により、上記バス中継手段内のバッファメモリから上記第2のバスに接続された少なくともデータ受取機能を有する回路手段に転送することにより、異なるバス間のデータ転送を、高速バス上での無駄な待ち時間等を生じさせることなく行うことができる。これは第2のバスから第1のバスへのデータ転送の場合も同様である。
【0041】
また、上記バス中継手段には、バッファメモリと、このバッファメモリの動作を制御するバッファ制御手段とを設け、このバッファ制御手段は、上記バッファメモリにアクセスする複数のアクセスチャネルを管理する機能を有し、これらのアクセスチャネルに対応する複数種類のダイレクトメモリアクセス要求を上記第1、第2のダイレクトメモリアクセス制御手段に対して出すことにより、各バスに接続されるCPUの処理を簡素化して平易なプログラミングと少ないオーバーヘッドを実現でき、バス間のバッファを効率よく活用することができ、マルチスレッドのプログラムを簡単に書くことを可能とすることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態の概略構成を示すブロック図である。
【図2】本発明の実施の形態に用いられるバス中継器の内部構成の一例を示すブロック図である。
【図3】本発明の実施の形態の動作の一例を説明するためのフローチャートである。
【図4】本発明の実施の形態の動作の他の例を説明するためのフローチャートである。
【図5】本発明の実施の形態が適用されたシステムの一例を示すブロック図である。
【図6】2バスを用いるシステムの従来例を示すブロック図である。
【符号の説明】
11 第1のバス、 12 第2のバス、 13 バス中継器、 21,26CPU、 22,27 DMAコントローラ、 23,28 デバイス、 24,29 メモリ
Claims (9)
- 所定のデータを出力する第1の手段、第1のダイレクトメモリアクセス制御手段、及び第1のCPUが接続される第1のバスと、
前記所定のデータを受信する第2の手段、第2のダイレクトメモリアクセス制御手段、及び第2のCPUが接続される第2のバスと、
バッファメモリを有しており、前記第1のバスと前記第2のバスとの間に接続されるバス中継手段と、を備えた装置において実行される方法であって、
前記第1のダイレクトメモリアクセス制御手段が、前記バス中継手段及び前記第1の手段からダイレクトメモリアクセス要求があると、前記第1のCPUに前記第1のバスの使用権の要求を行って前記第1のバスの使用権を確保して、前記第1の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送する段階と、
前記第2のダイレクトメモリアクセス制御手段が、前記バス中継手段及び前記第2の手段からダイレクトメモリアクセス要求があると、前記第2のCPUに前記第2のバスの使用権の要求を行って前記第2のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第2の手段へ前記所定のデータをダイレクトメモリアクセス転送する段階と、を含む、
データ転送方法。 - 前記装置が、
前記第1の手段から前記バス中継手段の前記バッファメモリへのダイレクトメモリアクセス転送に用いる第1のアクセスチャネルのデータサイズと、前記バス中継手段の前記バッファメモリから前記第2の手段へのダイレクトメモリアクセス転送に用いる第2のアクセスチャネルのデータサイズと、を同じになるように設定する段階を、前記バス中継手段から前記第1のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の前に実行する、
請求項1記載のデータ転送方法。 - 前記第1の手段から前記バス中継手段の前記バッファメモリへのダイレクトメモリアクセス転送に用いる第1のアクセスチャネル、及び前記バス中継手段の前記バッファメモリから前記第2の手段へのダイレクトメモリアクセス転送に用いる第2のアクセスチャネルがそれぞれ複数用意され、各第1のアクセスチャネル及び各第2のアクセスチャネルにはそれぞれ優先順位が付けられており、
前記バス中継手段が、
前記優先順位に応じて1の第1のアクセスチャネルを選択して、前記前記第1のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第1のアクセスチャネルを指定し、
前記優先順位に応じて1の第2のアクセスチャネルを選択して、前記前記第2のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第2のアクセスチャネルを指定する、
請求項2記載のデータ転送方法。 - 前記第1のダイレクトメモリアクセス制御手段が、前記所定のデータを前記バッファメモリの記憶容量に応じたサイズに分割してダイレクトメモリアクセス転送する、
請求項1記載のデータ転送方法。 - バッファメモリを有しており、第1のバスと第2のバスとの間に接続されるバス中継手段と、
前記第1のバスに接続されており、所定のデータを出力する第1の手段と、
前記第1のバスに接続されており、前記第1の手段から前記第1のバスを介して前記バス中継手段の前記バッファメモリに前記所定のデータを転送する第1のダイレクトメモリアクセス制御手段と、
前記第1のバスに接続されており、前記第1のダイレクトメモリアクセス制御手段に対して前記第1のバス上のダイレクトメモリアクセスの設定を行う第1のCPUと、
前記第2のバスに接続されており、前記所定のデータを受信する第2の手段と、
前記第2のバスに接続されており、前記バス中継手段の前記バッファメモリから前記所定のデータを読み出して、読み出した前記所定のデータを、前記第2のバスを介して前記第2の手段に転送する第2のダイレクトメモリアクセス制御手段と、
前記第2のバスに接続されており、前記第2のダイレクトメモリアクセス制御手段に対して前記第2のバス上のダイレクトメモリアクセスの設定を行う第2のCPUと、を備えており、
前記第1のダイレクトメモリアクセス制御手段は、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第1のCPUに前記第1のバスの使用権の要求を行って前記第1のバスの使用権を確保して、前記第1の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、
前記第2のダイレクトメモリアクセス制御手段は、前記バス中継手段からダイレクトメモリアクセス要求があると、前記第2のCPUに前記第2のバスの使用権の要求を行って前記第2のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第2の手段へ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、
前記バス中継手段の前記バッファメモリを介して、前記第1の手段から前記第2の手段へ前記所定のデータを転送するようにしたことを特徴とする、
データ転送装置。 - バッファメモリを有しており、第1のバスと第2のバスとの間に接続されるバス中継手段と、
前記第1のバスに接続されており、所定のデータを出力する第1の手段と、
前記第1のバスに接続されており、前記第1の手段から前記第1のバスを介して前記バス中継手段の前記バッファメモリに前記所定のデータを転送する第1のダイレクトメモリアクセス制御手段と、
前記第1のバスに接続されており、前記第1のダイレクトメモリアクセス制御手段に対して前記第1のバス上のダイレクトメモリアクセスの設定を行う第1のCPUと、
前記第2のバスに接続されており、前記所定のデータを受信する第2の手段と、
前記第2のバスに接続されており、前記バス中継手段の前記バッファメモリから前記所定のデータを読み出して、読み出した前記所定のデータを、前記第2のバスを介して前記第2の手段に転送する第2のダイレクトメモリアクセス制御手段と、
前記第2のバスに接続されており、前記第2のダイレクトメモリアクセス制御手段に対して前記第2のバス上のダイレクトメモリアクセスの設定を行う第2のCPUと、を備えており、
前記第1のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第1の手段からダイレクトメモリアクセス要求があると、前記第1のCPUに前記第1のバスの使用権の要求を行って前記第1のバスの使用権を確保して、前記第1の手段から前記バス中継手段の前記バッファメモリへ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、
前記第2のダイレクトメモリアクセス制御手段は、前記バス中継手段及び前記第2の手段からダイレクトメモリアクセス要求があると、前記第2のCPUに前記第2のバスの使用権の要求を行って前記第2のバスの使用権を確保して、前記バス中継手段の前記バッファメモリから前記第2の手段へ前記所定のデータをダイレクトメモリアクセス転送するように構成されており、
前記バス中継手段の前記バッファメモリを介して、前記第1の手段から前記第2の手段へ前記所定のデータを転送するようにしたことを特徴とする、
データ転送装置。 - 前記バス中継手段は、
前記バッファメモリのアクセス動作を制御するとともに、前記第1のダイレクトメモリアクセス制御手段及び前記第2のダイレクトメモリアクセス制御手段に対してダイレクトメモリアクセス要求を行うバッファ制御手段をさらに備えている、
請求項5または6記載のデータ転送装置。 - 前記第1のバス及び前記第2のバスは、それぞれ複数のアクセスチャネルを有しており、
前記バッファ制御手段は、
前記第1のダイレクトメモリアクセス制御手段及び前記第2のダイレクトメモリアクセス制御手段に対して、複数のアクセスチャネルの各々に対応する複数種類のダイレクトメモリアクセス要求のうちの一つを選択して送ることにより、どのアクセスチャネルを用いたダイレクトメモリアクセス転送を行うかを指定するように構成されている、
請求項7記載のデータ転送装置。 - 前記第1のバスは複数の第1のアクセスチャネルを有しており、前記第2のバスは複数の第2のアクセスチャネルを有し、各第1のアクセスチャネル及び各第2のアクセスチャネルにはそれぞれ優先順位が付けられており、
前記バッファ制御手段は、
前記優先順位に応じて1の第1のアクセスチャネルを選択して、前記前記第1のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第1のアクセスチャネルを指定するとともに、前記優先順位に応じて1の第2のアクセスチャネルを選択して、前記前記第2のダイレクトメモリアクセス制御手段へのダイレクトメモリアクセス要求の際に、選択した前記第2のアクセスチャネルを指定するように構成されている、
請求項7記載のデータ転送装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10198897A JP3678537B2 (ja) | 1997-04-18 | 1997-04-18 | データ転送方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10198897A JP3678537B2 (ja) | 1997-04-18 | 1997-04-18 | データ転送方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10293742A JPH10293742A (ja) | 1998-11-04 |
JP3678537B2 true JP3678537B2 (ja) | 2005-08-03 |
Family
ID=14315229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10198897A Expired - Fee Related JP3678537B2 (ja) | 1997-04-18 | 1997-04-18 | データ転送方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3678537B2 (ja) |
-
1997
- 1997-04-18 JP JP10198897A patent/JP3678537B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10293742A (ja) | 1998-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4480427B2 (ja) | リソース管理装置 | |
US5832492A (en) | Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus | |
JP2004171209A (ja) | 共有メモリデータ転送装置 | |
JP3678537B2 (ja) | データ転送方法及び装置 | |
KR100633742B1 (ko) | 주변 장치로부터 데이터 전송 크기를 자동으로 갱신하는직접 메모리 액세스 제어 장치 및 방법 | |
JP2684793B2 (ja) | 情報処理装置 | |
JPH0628261A (ja) | データ転送方法及び装置 | |
JP3080827B2 (ja) | ファイル装置用多重化インタフェース及びその制御方法 | |
JP2005190496A (ja) | データ転送方法及び装置 | |
JPH05282242A (ja) | バス制御方式 | |
JP2002259326A (ja) | Dmaコントローラ及びdma転送方法 | |
JPH0844661A (ja) | 情報処理装置 | |
JP3809284B2 (ja) | 画像生成装置及びその制御方法及び印刷装置 | |
JP3356110B2 (ja) | 機能拡張システム及びそれに用いるデータ転送方法 | |
JP3206656B2 (ja) | バス上でのプリフェッチ装置およびプリフェッチ方法 | |
JP2963696B2 (ja) | データ転送制御システム | |
JPS61125670A (ja) | デ−タ転送装置 | |
JP2003085125A (ja) | メモリ制御器及びメモリ制御方法 | |
JPH0246967B2 (ja) | ||
JPH0736806A (ja) | Dma方式 | |
JP2576934B2 (ja) | メモリ−マップド割込み方式 | |
JPH07319840A (ja) | マルチcpu装置 | |
JPS6229831B2 (ja) | ||
JP2004021713A (ja) | 半導体記憶装置 | |
JP2010191492A (ja) | データ転送制御装置、データ転送制御方法、データ転送制御プログラム及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040608 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040615 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050301 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050413 |
|
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: 20050510 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050510 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090520 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090520 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100520 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110520 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110520 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120520 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130520 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |