JP2008146541A - Dma転送システム、dmaコントローラ及びdma転送方法 - Google Patents
Dma転送システム、dmaコントローラ及びdma転送方法 Download PDFInfo
- Publication number
- JP2008146541A JP2008146541A JP2006335545A JP2006335545A JP2008146541A JP 2008146541 A JP2008146541 A JP 2008146541A JP 2006335545 A JP2006335545 A JP 2006335545A JP 2006335545 A JP2006335545 A JP 2006335545A JP 2008146541 A JP2008146541 A JP 2008146541A
- Authority
- JP
- Japan
- Prior art keywords
- dma
- transfer
- command
- dma command
- data
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
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)
Abstract
【課題】DMA転送システム、DMAコントローラ及びDMA転送方法に関し、DMA転送に使用されるデータ伝送路の伝送効率を向上させる。
【解決手段】DMA転送を行う各装置A,B,・・・N内に、ライト転送のDMAコマンドを実行するDMAコントローラDMAa,b,・・・nを設け、該DMAコントローラDMAa,b,・・・nは、各装置からのDMAコマンド登録用レジスタを備え、該レジスタには、転送ワード数、転送データの送信元アドレス及び送信先アドレスを登録する。DMAコントローラDMAa,b,・・・nは、リード転送のDMAコマンドに対して、該リード転送のデータの送信元の装置内のDMAコントローラに、該リード転送のDMAコマンドを送信し、他装置のDMAコントローラから受信されたリード転送のDMAコマンドを、該DMAコマンド元の装置へのライト転送のDMAコマンドに変換してDMA転送を行う。
【選択図】図1
【解決手段】DMA転送を行う各装置A,B,・・・N内に、ライト転送のDMAコマンドを実行するDMAコントローラDMAa,b,・・・nを設け、該DMAコントローラDMAa,b,・・・nは、各装置からのDMAコマンド登録用レジスタを備え、該レジスタには、転送ワード数、転送データの送信元アドレス及び送信先アドレスを登録する。DMAコントローラDMAa,b,・・・nは、リード転送のDMAコマンドに対して、該リード転送のデータの送信元の装置内のDMAコントローラに、該リード転送のDMAコマンドを送信し、他装置のDMAコントローラから受信されたリード転送のDMAコマンドを、該DMAコマンド元の装置へのライト転送のDMAコマンドに変換してDMA転送を行う。
【選択図】図1
Description
本発明は、メモリとメモリ又はメモリとI/Oデバイス等の間で直接データを転送するDMA(Direct Memory Access)転送に係り、特に、データ伝送路(バス等)で接続された装置間でDMA転送を行うシステムにおいて、DMA転送に使用されるデータ伝送路の伝送効率を向上させるDMA転送システム、DMAコントローラ及びDMA転送方法に関する。
図6は、データ伝送路(外部バス)6−1で相互に接続され、他装置との間でデータをDMA転送する独立した複数の装置A,B,C,・・・Nから成る、比較的大規模な構成の従来のシステム構成例を示している。図中、BUSx(xは、a,b,c,・・・n、以下同様)は、データ伝送路(外部バス)6−1と装置内部のバスとのインタフェースである。
ここで、図6に示すように、複数の装置に接続され、複数の装置間でデータ転送に共用される伝送路をバスと称する(以下同様)。また、添え字a,b,c,・・・nは、それぞれ装置A,B,C,・・・Nに備えられたものであることを示している(以下同様)。
DMAxは、リード(読み出し)転送及びライト(書き込み)転送の制御を行うDMAコントローラ、MEMxは、データ記憶装置(メモリ、以下同様)、CPUxは、装置全体を制御するための中央処理装置(Central Processing Unit)で、DMAコントローラ(DMAx)にDMAコマンドを設定する機能を有する。
なお、データ伝送路(外部バス)6−1で接続されている各装置A,B,C,・・・Nは、上述のCPUx,MEMx,DMAx,BUSxの機能を全て揃えて備えているとは限らず、例えば装置Cのように、DMAコントローラ(DMAx)を備えていない場合もあり得る。また、データ伝送路(外部バス)6−1のバスの形式によっては、バスの使用権を調停するバスアービタを備える必要がある場合もある。
一例として、装置AのDMAコントローラ(DMAa)を使用して、装置Bのデータ記憶装置(MEMb)のデータを、装置Aのデータ記憶装置(MEMa)にDMA転送(データリード転送)する場合の手順を、図7を参照して説明する。まず、装置Aの中央処理装置(CPUa)は、自装置のDMAコントローラ(DMAa)に、DMAコマンド(DMA転送に必要なパラメータ)を、通常複数回設定して送出し、DMA転送をスタートさせる(7−1)。
装置AのDMAコントローラ(DMAa)は、装置Bのデータ記憶装置(MEMb)のアドレスを送信し、該アドレスからデータ(1ワード分)のリード(読み出し)を行う(7−2)。リード(読み出し)転送は、外部バスを介した装置Bのデータ記憶装置(MEMb)へのアドレス送信と、同じく外部バスを介した装置Bのデータ記憶装置(MEMb)からのデータ受信の、伝送方向を異にする外部バス上での2つの転送フェーズを必要とする。
次に、装置AのDMAコントローラ(DMAa)は、装置Bのデータ記憶装置(MEMb)から取得したデータ(1ワード分)を、装置Aのデータ記憶装置(MEMa)へ内部バスを介して書き込むライト転送を行う(7−3)。そして、読み出すべきデータが残っている場合は、上述の手順(7−2)及び(7−3)と同様の動作手順によるデータ転送を、転送ワード数分繰り返す(7−4)。
装置AのDMAコントローラ(DMAa)は、読み出すべきデータを全て装置Bのデータ記憶装置(MEMb)から読み出し終えると、DMA転送(データリード転送)が完了した旨を、自装置内の中央処理装置(CPUa)に通知する(7−5)。なお、図7において、外部バスを使用したデータ転送は太線矢印、内部バスを使用したデータ転送は細線矢印で示している(以下、同様)。
次に、装置AのDMAコントローラ(DMAa)を使用して、装置Aのデータ記憶装置(MEMa)のデータを、装置Bのデータ記憶装置(MEMb)にDMA転送(データライト転送)する手順を、図8を参照して説明する。まず、装置Aの中央処理装置(CPUa)は、自装置内のDMAコントローラ(DMAa)にDMAコマンド(DMAに必要なパラメータ)を、通常複数回設定して送出し、DMA転送をスターとさせる(8−1)。
装置AのDMAコントローラ(DMAa)は、自装置のデータ記憶装置(MEMa)から転送すべきデータ(1ワード分)を、内部バスを介して読み出す(7−2)。このリード(読み出し)転送には、内部バスを介した装置Aのデータ記憶装置(MEMa)へのアドレス送信と、同じく内部バスを介したデータ記憶装置(MEMa)からのデータ受信の、内部バス上での2つの転送フェーズを必要とする。
次に装置AのDMAコントローラ(DMAa)は、装置Bのデータ記憶装置(MEMb)に、装置Aのデータ記憶装置(MEMa)から取得したデータ(1ワード分)のライト(書き込み)を行う(8−3)。そして、書き込むべきデータが残っている場合は、上記の手順(8−2)及び(8−3)と同様の動作手順によるデータ転送を、転送ワード数分繰り返す(8−4)。
装置AのDMAコントローラ(DMAa)は、書き込むべきデータの全てを装置Bのデータ記憶装置(MEMb)へ書き込み終えると、DMA転送(データライト転送)が完了した旨を、自装置内の中央処理装置(CPUa)に通知する(8−5)。
リード転送とライト転送とを比較すると、外部バスの使用に際して、ライト転送では、ライトアドレスとライトデータとを同一伝送方向の外部バスで送信することで転送が完了するのに対し、リード転送では、データ要求側がリードデータを入手するまでに、下記に示す手順が必要となり、この間外部バスを使用(占有)する。
(1)データ要求側は、リードアドレスをデータソース側に外部バスを用いて送信する。(2)データソース側は、指定されたリードアドレスのデータを読み出して用意する。
(3)データソース側は、用意したデータをデータ要求側に外部バスを用いて送信する。
(3)データソース側は、用意したデータをデータ要求側に外部バスを用いて送信する。
このように、同じデータ量のDMA転送を行う場合でも、リード転送によるDMA転送より、ライト転送によるDMA転送の方が、ライトアドレス及びライトデータを同一伝送方向の外部バスのみを用いて転送が完了するため、データ転送方向の切替えや送信データの解釈等に費やされる時間が節約され、外部バスの占有時間が短縮されることになる。
本発明に関連する先行技術文献として、下記の特許文献1には、処理装置と入出力制御装置間のデータ転送において、入出力制御装置側に、リード/ライト動作のモード切換機能をもたせ、一度のプログラム命令により両方向のデータ転送を1ワード単位に交互に行わせ、指定されたデータ語数の終了にて、リード/ライト両方向の動作を同時に終結させることにより、プログラムの起動回数を少なくし、かつ処理装置と入出力制御装置間のデータ転送効率を向上させるデータ転送方式が記載されている。
また、下記の特許文献2には、ネットワークを介して他の情報処理装置と接続された場合、他の情報処理装置から、その動作状態に関する情報を収集して装置情報テーブルを作成し、所定のコマンドが発生した際には、当該コマンドの実行に要する資源に関する情報と、装置情報テーブルの動作状態に関する情報とを比較して、当該コマンドを実行可能な情報処理装置を特定し、複数の情報処理装置の間で分散処理を確実かつ効果的に実行されるようにした情報処理システム等について記載されている。
特開昭54−124644号公報
特開2005−251163号公報
データ伝送技術は情報機器や情報処理システムの要となる技術の一つで、データ伝送量は年々増加し、データ伝送の高速化のために高価なデータ伝送路の使用が求められている。本発明は、データ伝送路で接続された装置間でDMA転送を行うシステムにおいて、データ伝送路の使用効率、伝送効率を向上させ、データ伝送の高速化を図ることができるDMA転送システム、DMAコントローラ及びDMA転送方法を提供する。
本発明は、DMA転送を行う各装置内に、ライト転送のDMAコマンドを実行するDMAコントローラを設け、該DMAコントローラは、リード転送のDMAコマンドが設定された場合に、該リード転送のデータの送信元の装置内のDMAコントローラに、該リード転送のDMAコマンドを送信し、他装置のDMAコントローラから受信されたリード転送のDMAコマンドを、該DMAコマンドの送信元の装置へのライト転送のDMAコマンドに変換してDMA転送を行うことを特徴とする。
また、前記DMAコントローラに、自装置内又は他装置から設定された複数のDMAコマンドを格納するDMAコマンドFIFOメモリを備え、該DMAコマンドFIFOメモリに格納されたDMAコマンドを、先入れ先出し式の順で取り出して順次実行し、前記他装置から受信されたDMAコマンドに対して、外部登録ビットを前記DMAコマンドFIFOメモリ内に設定し、該外部登録ビットが立てられたDMAコマンドの実行完了時に、転送データの送信先の装置に対して、DANコマンドの実行完了の旨のメッセージを送信することを特徴とする。
また、前記DMAコマンドFIFOメモリに、DMAコマンドチェーンとして実行順に格納される複数のDMAコマンドに対して、チェーンの最後のDMAコマンド以外に、後続のDMAコマンドが存在することを示すチェーンビットを設定し、該チェーンビットが設定されず、かつ、前記外部登録ビットが設定されたDMAコマンドの実行完了時に、転送データの送信先の装置に対して、DANコマンドの実行完了の旨のメッセージを送信することを特徴とする。
本発明によれば、リード転送を行う場合、リード転送のDMAコマンド自体をデータの送信元の装置のDMAコントローラに転送し、送信元の装置のDMAコントローラでライト転送としてDMA転送を実行することにより、DMA転送に使用するデータ伝送路の使用時間を削減することができ、データ伝送路の使用効率を向上させることができる。
また、自装置内又は他装置から設定された複数のDMAコマンドを格納するDMAコマンドFIFOメモリを設け、該DMAコマンドFIFOメモリに格納されたDMAコマンドを、先入れ先出し式の順で取り出して順次実行することにより、自装置及び他装置から設定されたDMAコマンドの競合制御を容易に行うことが可能となる。
また、DMAコマンドFIFOメモリに、DMAコマンドチェーンとして複数のDMAコマンドを実行順に格納し、該DMAコマンドにチェーンビットを設定可能にすることにより、DMAコマンドチェーンを容易に組むことが可能になる。
図1は、データ伝送路(外部バス)6−1で相互に接続され、他装置との間でデータをDMA転送する独立した複数の装置A,B,C,・・・Nから成る、本発明を適用した第1のシステム構成例を示している。図中、BUSx(xは、a,b,c,n、以下同様)、CPUx及びMEMxは、図6で説明した従来の構成例と同様の機能を有する。
本発明によるDMAコントローラ(DMAx)は、DMAライト転送のみを行い、DMAリード転送を中央処理装置(CPUx)から指示された場合は、データソース側(送信側)の装置のDMAコントローラ(DMAx)に、このDMAコマンド自体を転送し、データソース側の装置のDMAコントローラ(DMAx)からDMAライト転送によりデータを転送するように構成を変更したものである。
本発明のDMAコントローラ(DMAx)内部に新たに追加されたDMAコマンド保存レジスタ(RGx)は、データ伝送路(外部バス)6−1に接続された他の装置のDMAコントローラ(DMAx)から転送されてきたDMAコマンドを登録する領域を有し、好ましくは、対向装置(DMAコマンドの転送元の装置)対応に、DMAコマンドを1つ以上登録する領域を有するよう構成する。なお、DMA転送を行わない装置(例:装置C)には、DMAコントローラ(DMAx)の機能を設ける必要はない。
図2はDMAコマンド保存レジスタ(RG)の構成例を示す。DMAコマンド保存レジスタ(RG)は、装置AからのDMAコマンド登録用のレジスタ(A)、装置BからのDMAコマンド登録用のレジスタ(B)、・・・装置NからのDMAコマンド登録用のレジスタ(N)をそれぞれ備え、各レジスタには、転送ワード数、転送データの送信元アドレス及び送信先アドレスをそれぞれ登録する領域を備える。
以下、DMAコマンド保存レジスタ(RG)及びDMAコントローラの機能について説明する。
(1)DMAコマンド保存レジスタ(RG)は、各装置から転送されてくるDMAコマンドを登録する。
(2)DMAコマンド保存レジスタ(RG)は、DMA転送実行可能なDMAコマンドをDMAコントローラに通知する。具体的には例えば、転送ワード数がゼロでないDMAコマンドをDMA転送実行可能として通知する。
(3)DMAコントローラは、通知されたDMAコマンドが複数存在する場合は、DMAコントローラに自装置の中央処理装置(CPU)が設定した(本来の)DMAコマンドを含めて、DMAコマンド保存レジスタ(RG)から通知されたDMAコマンドの競合調停を行い、DMA転送を実行する。
(4)DMA転送の実行において、DMAコマンド保存レジスタ(RG)の各装置用のレジスタを直接使用して各装置のDMA転送を管理し、各DMA転送実行後、DMAコマンド保存レジスタ(RG)の各装置用のレジスタの登録内容を更新する。即ち、1ワード転送する毎に、転送ワード数を1つずつ減少(デクリメント)し、送信元アドレス及び送信先ドレスを1アドレスずつ増加(インクリメント)させる。
(1)DMAコマンド保存レジスタ(RG)は、各装置から転送されてくるDMAコマンドを登録する。
(2)DMAコマンド保存レジスタ(RG)は、DMA転送実行可能なDMAコマンドをDMAコントローラに通知する。具体的には例えば、転送ワード数がゼロでないDMAコマンドをDMA転送実行可能として通知する。
(3)DMAコントローラは、通知されたDMAコマンドが複数存在する場合は、DMAコントローラに自装置の中央処理装置(CPU)が設定した(本来の)DMAコマンドを含めて、DMAコマンド保存レジスタ(RG)から通知されたDMAコマンドの競合調停を行い、DMA転送を実行する。
(4)DMA転送の実行において、DMAコマンド保存レジスタ(RG)の各装置用のレジスタを直接使用して各装置のDMA転送を管理し、各DMA転送実行後、DMAコマンド保存レジスタ(RG)の各装置用のレジスタの登録内容を更新する。即ち、1ワード転送する毎に、転送ワード数を1つずつ減少(デクリメント)し、送信元アドレス及び送信先ドレスを1アドレスずつ増加(インクリメント)させる。
本発明を適用したリード方向のDMA転送の動作として、装置Bのデータ記憶装置(MEMb)のデータを、装置Aのデータ記憶装置(MEMa)に読み出す動作例ついて、図3を参照して説明する。なお、本発明はどのような形式のデータ伝送路でも適用することができるが、図3ではアドレス線とデータ線を両方備えたデータ伝送路(外部バス)を用いた場合の例について説明している。
装置Aの中央処理装置(CPUa)は、自装置のDMAコントローラ(DMAa)に、装置Bのデータ記憶装置(MEMb)から装置Aのデータ記憶装置(MEMa)への方向にデータを転送するリード転送のDMAコマンドを設定し、最後に転送ワード数(ゼロ以外の値)を設定して該DMAコマンドの開始を指示する(3−1)。
装置AのDMAコントローラ(DMAa)は、開始指示されたDMAコマンドを解釈し、装置Bのデータ記憶装置(MEMb)から装置Aのデータ記憶装置(MEMa)へのリード方向のDMA転送であることを認識し、このDMAコマンド(リード)を装置BのDMAコントローラ(DMAb)に、DMAライト転送する(3−2)。
具体的には、装置BのDMAコマンド保存レジスタ(RGb)の装置A用の送信元アドレスレジスタに、装置Aの中央処理装置(CPUa)がDMAコントローラ(DMAa)に設定したDMAコマンドの宛先アドレスを設定し、DMAコマンド保存レジスタ(RGb)の装置A用の送信先アドレスレジスタに、装置Aの中央処理装置(CPUa)がDMAコントローラ(DMAa)に設定したDMAコマンド元のアドレスを設定し、最後にDMAコマンド保存レジスタ(RGb)の装置A用の転送ワード数レジスタに、装置Aの中央処理装置(CPUa)がDMAコントローラ(DMAa)に設定した転送ワード数を設定する。
装置BのDMAコントローラ(DMAb)は、自装置内のデータ記憶装置(MEMb)から、DMAコマンド保存レジスタ(RGb)の装置A用の送信元アドレスレジスタに設定されたアドレスにアクセスして、データ(1ワード分)の読み出し(リード)を行う(3−3)。
次に、装置BのDMAコントローラ(DMAb)は、装置Aのデータ記憶装置(MEMa)に、データ記憶装置(MEMb)から取得したデータ(1ワード分)をライト転送する(3−4)。転送すべきデータが残っている場合は、上記の手順(3−3)及び(3−4)を、転送ワード数分繰り返す(3−5)。
装置BのDMAコントローラ(DMAb)は、転送すべきデータの全ての転送を完了すると、その旨を装置AのDMAコントローラ(DMAa)に通知する(3−6)。なお、通知方法としては、DMAコントローラ(DMAa)の専用レジスタに対して、完了した旨のメッセージをライト転送することなどによって通知することができる。装置AのDMAコントローラ(DMAa)は、該完了の旨の通知を受け、データのDMA転送が完了したことを自装置内の中央処理装置(CPUa)に通知する(3−7)。
図3に示した本発明によるDMAリード転送と、図7に示した従来のDMAリード転送とを比較すると、データ転送路(外部バス)の使用において、本発明によるDMAリード転送では、転送データを同一伝送方向の外部バスのみを使用して伝送するため、データ転送路(外部バス)の使用(占有)時間を短縮することができ、データ転送路(外部バス)の使用(占有)率を低下させることができ、転送ワード数が多ければ多いほど、データ転送路(外部バス)の使用(占有)率を低下させることができる。
図4は本発明を適用した第2のシステム構成例を示す。図1に示した第1の構成例との相違は、DMAコントローラ(DMAx)に、DMAコマンドを登録順に処理するための記憶領域であるDMAコマンドFIFOメモリ(CFx)を新たに追加したことである。
図5に第2の構成例におけるDMAコマンドFIFOメモリ及びDMAコマンド保存レジスタ(RG)の機能概要を示す。DMAコマンドFIFOメモリは、登録されたDMAコマンドを登録順に自動的に実行するために使用される。DMAコマンドFIFOメモリにDMAコマンドを登録するには、DMA転送に必要な情報を揃えて一度に登録する必要がある。
そのため、DMAコマンドFIFOメモリへは、自装置の中央処理装置(CPU)が自装置のDMAコントローラ(DMA)に設定したDMAコマンド、及び他の装置からDMAコマンド保存レジスタ(RG)に一旦登録された実行可能なDMAコマンドを格納するようにしている。
以下に、DMAコマンドFIFOメモリを使用するDMA転送の動作手順について図5を参照して説明する。なお、図5は、自装置の中央処理装置(CPU)からのDMAコマンド、DMAコマンド保存レジスタ(RG)及びDMAコマンドFIFOメモリの格納情報のデータ構成及び処理手順を示している。
まず、自装置の中央処理装置(CPU)からは、DMAコントローラ(DMA)のDMAコマンドレジスタ(図示省略)に、外部装置のDMAコントローラ(DMA)からはDMAコマンド保存レジスタ(RG)内の外部装置対応領域のレジスタに、DMAコマンドが登録される(5−1)。
上記の手順(5−1)で登録が完了したDMAコマンドは、DMAコマンドFIFOメモリへ格納する(5−2)。DMAコマンドFIFOメモリへのDMAコマンドの格納が完了すれば、登録元のレジスタの内容を消去する。なお、DMAコマンド保存レジスタ(RG)からDMAコマンドFIFOメモリに格納する場合は、後述する外部登録ビットを設定する。
DMAコントローラ(DMA)は、DMAコマンドFIFOメモリに格納されたDMAコマンドを、格納された順番に従って取り出して処理し、各DMAコマンドの処理完了時に、各DMAコマンドの送信元に処理完了の旨の通知を行う(5−3)。
DMAコマンドFIFOメモリへのDMAコマンドの格納に際して、複数のDMAコマンドが指定の順序で実行されるよう、DMAコマンドチェーンとして登録することができる。DMAコマンドチェーンは、連結された最後のDMAコマンドの処理が完了したときにのみ、コマンド元の装置の中央処理装置(CPU)に完了の旨を通知する割込をかけるのが一般的である。
そのため、チェーンの最後のDMAコマンドか否かを示すチェーンビットを設け、最後のDMAコマンド以外には、後続のDMAコマンドが存在することを示すチェーンビットを立て、該チェーンビットが立てられたDMAコマンドに対しては、処理が完了しても中央処理装置(CPU)への完了の旨を通知する割込を発生しないようにする。
また、DMAコマンド保存レジスタ(RG)に登録されたDMAコマンドをDMAコマンドFIFOメモリに格納する場合は、外部登録ビットを設定し、該DMAコマンドの処理の完了時に、完了の旨を、転送データ送信先の装置のDMAコントローラ(DMA)に通知するか、自装置の中央処理装置(CPU)に通知するかを、外部登録ビットの設定内容を基に区別する。
また、中央処理装置(CPU)がDMAコントローラ(DMA)に、自装置が転送データの送信元でも送信先でもないDMAコマンドを設定したときは、DMAコマンドFIFOメモリのチェーンビット及び外部登録ビットの両方を立てることで、無関係な装置への完了通知の割込発生を停止させる。該DMAコマンドの送信元へコマンド完了通知の割込を行うには、完了通知の割込専用のDMAコマンドを追加登録する。
なお、チェーンビット及び外部登録ビットの両方を立てるためには、DMAコマンドFIFOメモリにチェーンビット及び外部登録ビットの領域を設ける必要がある。また、チェーンビットを立てるために、DMAコマンド保存レジスタ(RG)にチェーンビットの領域を設け、DMAコマンドチェーンをDMAコマンド保存レジスタ(RG)設定する際、同時にチェーンビットを設定する必要がある。
第2の構成例のDMAコマンド保存レジスタ(RG)への登録には、転送データの送信元アドレス及び送信先アドレス、転送ワード数並びにチェーンビットの設定が必要である。ここで、例えば、転送ワード数32ビット、送信元アドレス32ビット、送信先アドレス32ビットの情報を、アドレスバス32ビット、データバス32ビットのデータ伝送路(外部バス)で送信する場合、転送ワード数の最大値を表すビット数が31ビット以下の場合に、チェーンビットを転送ワード数の送信ビットに含めることで、データ伝送路(外部バス)の使用効率を第1の構成例から下げることなく、機能拡張が可能となる。
以下に、DMAコントローラ及びDMAコマンドFIFOメモリの動作条件及び動作の一例を示す。ここで、各装置のDMAコントローラはDMAコマンドFIFOメモリを備え、DMAコマンドFIFOメモリにDMAコマンドを複数登録することができるものとする。DMA転送を行うには、DMAコマンド(DMAを行うための情報)をDMAコマンドFIFOメモリに格納する。DMAコマンドのチェーンを作成するには、連続して実行するDMAコマンドを、実行順にDMAコマンドFIFOメモリに格納する。
DMAコントローラは、DMAコマンドFIFOメモリに格納されたDMAコマンドを、先に格納されたものから順番に実行する。実行するDMAコマンドがライト転送の場合(即ち、自装置がDMA転送の送信元の場合)、DMAコマンドFIFOメモリ上のDMAコマンドに従い、通常のライトコマンドを実行し、これを必要回数(転送ワード数分)繰り返すことでDMA転送を完了する。
実行するDMAコマンドがリード転送の場合(即ち、自装置がDMA転送のデータの送信先の場合)、送信先の装置(自装置)は、このDMAコマンドをデータ送信元の装置のDMAコマンドFIFOメモリに送信(登録)する。具体的には、自装置が、送信元の装置のDMAコマンド保存レジスタ(RG)にこのDMAコマンドを設定する。
データ送信元の装置は、DMAコマンド保存レジスタ(RG)に設定されたDMAコマンドをDMAコマンドFIFOメモリに格納する。このDMAコマンドの格納の際、このDMAコマンドに外部登録ビット(外部装置から登録されたコマンドであることを識別するための符号)を設定しておく。
データ送信元の装置は、DMAコマンドFIFOメモリに格納されたDMAコマンドを格納順に実行し、外部登録ビットが設定されているDMAコマンドの実行を終えたとき、データ送信先の装置に対して完了の旨を示すメッセージを送信し、データ送信先の装置にこのDMAコマンドの実行完了を通知する。
データ送信先の装置は、送信元の装置に送信したDMAコマンドを、送信元の装置から完了の旨のメッセージが受信されるまで、DMAコマンドFIFOメモリに保存する。このDMAコマンドに対する完了の旨のメッセージを受信したときに、このDMAコマンドを完了したものとしてDMAコマンドFIFOメモリから削除し、次のDMAコマンドが残っていればそれを実行する。
実行するDMAコマンドが自装置に関係しない場合(即ち、自装置がDMA転送の送信元でも送信先でもでない場合)、自装置(DMAコマンド元装置)は、このDMAコマンドをチェーンコマンドとして、DMA転送データの送信元の装置のDMAコマンドFIFOメモリに送信(DMAコマンド保存レジスタ(RG)に登録)し、続いて、該送信元の装置に送信したDMAコマンドの終了を自装置に通知するための終了通知用DMAコマンドを、送信元の装置のDMAコマンドFIFOメモリに送信(DMAコマンド保存レジスタ(RG)に登録)する。
上記終了通知用DMAコマンドは、転送データが無く、自装置にDMA転送の完了の旨のメッセージを通知するダミーのDMAコマンドで、該終了通知用DMAコマンドをデータ送信先の装置のDMAコマンドFIFOメモリに格納することで、DMAコマンドチェーンは完了する。
データ送信元の装置は、上記DMAコマンド元の装置(自装置)より登録されたDMAコマンドを、DMAコマンドFIFOメモリの格納順に実行し、各DMAコマンドの実行を完了する。このとき、このDMAコマンドは、チェーンコマンドとして(チェーンビットが立てられて)送信されてきているので、該コマンド終了時には送信先の装置に完了の旨のメッセージを送信しない。
送信元の装置は、その後、上記のDMAコマンド元の装置(自装置)から登録された終了通知用DMAコマンド(ダミーのDMAコマンド)を実行する。これにより、該DMAコマンド元の装置(自装置)に、自装置がDMA転送の送信元でも送信先でもでないDMAコマンドの完了が通知される。
自装置(DMAコマンド元の装置)は、データ送信元の装置から終了通知用DMAコマンドを受け取った後、このDMAコマンドが完了したものと判定し、該DMAコマンドをDMAコマンドFIFOメモリから削除し、DMAコマンドFIFOメモリにDMAコマンドが残っている場合は、次のDMAコマンドを実行する。
なお、DMAコマンドFIFOメモリにDMAコマンドチェーンを登録する場合、DMAコマンドFIFOメモリにDMAコマンドをチェーンの順番どおりに格納する。DMAコントローラは、DMAコマンドFIFOメモリの格納順にDMAコマンドを実行する。登録されたDMAコマンドチェーンの中に、このチェーンと関係のないDMAコマンドが格納されても、DMAコマンドの実行順序は崩れないため、転送エリア(送信先及び送信元)が競合しない限り、問題とならない。
また、本発明において、実行するDMAコマンドが外部装置から登録されたものであることを識別するために、DMAコマンドFIFOメモリに外部登録ビットを付加する。そして、外部登録ビットが立っていて、チェーンビットが立っていない場合、最終のDMAライトコマンドの実行の後、又は該DMAライトコマンドの実行と同時に、送信先の外部装置に対して完了の旨のメッセージを通知する。
これを受信したDMAコマンド元の装置(即ち、データ送信先の装置)は、現在の(保存していた)DMAリード転送コマンドが完了したと判定し、該DMAコマンドをDMAコマンドFIFOメモリから削除し、DMAコマンドFIFOメモリにDMAコマンドが残っている場合は、次のDMAコマンドの処理を開始する。
なお、これまで、バス型のデータ伝送路を用いた場合の構成例について説明したが、スター型やメッシュ型のデータ伝送路を用いた場合でも動作は同様である。また、データ伝送路として、シリアルデータ伝送路でデータ伝送量が可変の伝送路を用いた場合は、第2の構成例におけるDMAコマンド保存レジスタ(RG)を設ける必要はなく、直接、外部装置のDMAコマンドFIFOメモリへ登録する構成とすることが可能である。
DMAコマンドFIFOメモリを導入する利点は、以下のとおりである。
・DMAチェーンコマンドを容易に組むことが可能になる。
・中央処理装置(CPU)がDMAコントローラ(DMA)に、自装置が転送データの送信元でも送信先でもでもないDMAコマンドを設定し、他装置間でのDMA転送を指示することが可能になる。
・全てのDMAコマンドをDMAコマンドFIFOメモリに格納して処理することにより、自装置の中央処理装置(CPU)から設定されたDMAコマンドと、外部装置からDMAコマンド保存レジスタ(RG)に登録されたDMAコマンドとの競合に対して、ファーストインファーストアウト処理方式により、競合調停の制御を簡素化することができる。
・DMAチェーンコマンドを容易に組むことが可能になる。
・中央処理装置(CPU)がDMAコントローラ(DMA)に、自装置が転送データの送信元でも送信先でもでもないDMAコマンドを設定し、他装置間でのDMA転送を指示することが可能になる。
・全てのDMAコマンドをDMAコマンドFIFOメモリに格納して処理することにより、自装置の中央処理装置(CPU)から設定されたDMAコマンドと、外部装置からDMAコマンド保存レジスタ(RG)に登録されたDMAコマンドとの競合に対して、ファーストインファーストアウト処理方式により、競合調停の制御を簡素化することができる。
BUSa,b,c,・・・n バスのインタフェース
DMAa,b,c,・・・n DMAコントローラ
CPUa,b,c,・・・n 中央処理装置
MEMa,b,c,・・・n データ記憶装置
RGa,b,c,・・・n DMAコマンド保存レジスタ
6−1 データ伝送路(外部バス)
DMAa,b,c,・・・n DMAコントローラ
CPUa,b,c,・・・n 中央処理装置
MEMa,b,c,・・・n データ記憶装置
RGa,b,c,・・・n DMAコマンド保存レジスタ
6−1 データ伝送路(外部バス)
Claims (5)
- データ伝送路を介して複数の装置が接続され、該複数の装置間でDMA転送を行うDMA転送システムにおいて、
前記DMA転送を行う各装置内に、ライト転送のDMAコマンドを実行するDMAコントローラを設け、
前記DMAコントローラは、リード転送のDMAコマンドが設定された場合に、該リード転送のデータの送信元の装置内のDMAコントローラに、該リード転送のDMAコマンドを送信する手段と、
他装置のDMAコントローラから受信されたリード転送のDMAコマンドを、該DMAコマンドの送信元の装置へのライト転送のDMAコマンドに変換してDMA転送を行う手段と、
を備えたことを特徴とするDMA転送システム。 - 前記DMAコントローラに、自装置内又は他装置から設定された複数のDMAコマンドを格納するDMAコマンドFIFOメモリと、
前記DMAコマンドFIFOメモリに格納されたDMAコマンドを、先入れ先出し式の順で取り出して順次実行する手段と、
前記他装置から受信されたDMAコマンドに対して、外部登録ビットを前記DMAコマンドFIFOメモリ内に設定し、該外部登録ビットが立てられたDMAコマンドの実行完了時に、転送データの送信先の装置に対して、DANコマンドの実行完了の旨のメッセージを送信する手段と、
を備えたことを特徴とする請求項1に記載のDMA転送システム。 - 前記DMAコマンドFIFOメモリに、DMAコマンドチェーンとして実行順に格納される複数のDMAコマンドに対して、チェーンの最後のDMAコマンド以外に、後続のDMAコマンドが存在することを示すチェーンビットを設定する手段と、
前記チェーンビットが設定されず、かつ、前記外部登録ビットが設定されたDMAコマンドの実行完了時に、転送データの送信先の装置に対して、DANコマンドの実行完了の旨のメッセージを送信する手段と、
を備えたことを特徴とする請求項2に記載のDMA転送システム。 - データ伝送路を介して接続された他の装置との間でDMA転送を行う装置内に設けられ、ライト転送のDMAコマンドを実行する機能を有するDMAコントローラにおいて、
リード転送のDMAコマンドが設定された場合に、該リード転送のデータの送信元の装置内のDMAコントローラに、該リード転送のDMAコマンドを送信する手段と、
他装置のDMAコントローラから受信されたリード転送のDMAコマンドを、該DMAコマンドの送信元の装置へのライト転送のDMAコマンドに変換してDMA転送を行う手段と、
を備えたことを特徴とするDMAコントローラ。 - データ伝送路を介して接続された装置間でのDMA転送方法において、
前記各装置内に設けたライト転送のDMAコマンドを実行するDMAコントローラに、リード転送のDMAコマンドが設定された場合に、該リード転送のデータの送信元の装置内のDMAコントローラに、該リード転送のDMAコマンドを送信するステップと、
他装置のDMAコントローラから受信されたリード転送のDMAコマンドを、該DMAコマンドの送信元の装置へのライト転送のDMAコマンドに変換してDMA転送を行うステップと、
を含むことを特徴とするDMA転送方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006335545A JP2008146541A (ja) | 2006-12-13 | 2006-12-13 | Dma転送システム、dmaコントローラ及びdma転送方法 |
US11/866,576 US20080147906A1 (en) | 2006-12-13 | 2007-10-03 | DMA Transferring System, DMA Controller, and DMA Transferring Method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006335545A JP2008146541A (ja) | 2006-12-13 | 2006-12-13 | Dma転送システム、dmaコントローラ及びdma転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008146541A true JP2008146541A (ja) | 2008-06-26 |
Family
ID=39528967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006335545A Withdrawn JP2008146541A (ja) | 2006-12-13 | 2006-12-13 | Dma転送システム、dmaコントローラ及びdma転送方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080147906A1 (ja) |
JP (1) | JP2008146541A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013512519A (ja) * | 2009-12-01 | 2013-04-11 | ブル・エス・アー・エス | いくつかの周辺装置のメモリ間のデータの直接転送のためにメモリに直接アクセスするコントローラ、そのようなコントローラを実現可能にする方法およびコンピュータプログラム |
US9655790B2 (en) | 2012-05-28 | 2017-05-23 | Daio Paper Corporation | Absorbent article and manufacturing method therefor |
US10482044B2 (en) | 2015-01-16 | 2019-11-19 | Nec Corporation | Computer, device control system, and device control method for direct memory access |
WO2021124917A1 (ja) * | 2019-12-18 | 2021-06-24 | ソニーグループ株式会社 | 情報処理システム、情報処理方法、及び、情報処理装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9823842B2 (en) | 2014-05-12 | 2017-11-21 | The Research Foundation For The State University Of New York | Gang migration of virtual machines using cluster-wide deduplication |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5774680A (en) * | 1995-12-11 | 1998-06-30 | Compaq Computer Corporation | Interfacing direct memory access devices to a non-ISA bus |
JP4401788B2 (ja) * | 2004-01-06 | 2010-01-20 | 株式会社日立製作所 | ストレージ制御装置 |
TW200532466A (en) * | 2004-02-03 | 2005-10-01 | Sony Corp | Information processing device, information processing method, information processing system and information processing program of accessible media |
JP2006178550A (ja) * | 2004-12-21 | 2006-07-06 | Nec Corp | 二重化同期システム、及び二重化同期システムの動作方法 |
-
2006
- 2006-12-13 JP JP2006335545A patent/JP2008146541A/ja not_active Withdrawn
-
2007
- 2007-10-03 US US11/866,576 patent/US20080147906A1/en not_active Abandoned
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013512519A (ja) * | 2009-12-01 | 2013-04-11 | ブル・エス・アー・エス | いくつかの周辺装置のメモリ間のデータの直接転送のためにメモリに直接アクセスするコントローラ、そのようなコントローラを実現可能にする方法およびコンピュータプログラム |
US8990451B2 (en) | 2009-12-01 | 2015-03-24 | Bull Sas | Controller for direct access to a memory for the direct transfer of data between memories of several peripheral devices, method and computer program enabling the implementation of such a controller |
US9655790B2 (en) | 2012-05-28 | 2017-05-23 | Daio Paper Corporation | Absorbent article and manufacturing method therefor |
US10482044B2 (en) | 2015-01-16 | 2019-11-19 | Nec Corporation | Computer, device control system, and device control method for direct memory access |
WO2021124917A1 (ja) * | 2019-12-18 | 2021-06-24 | ソニーグループ株式会社 | 情報処理システム、情報処理方法、及び、情報処理装置 |
US11983127B2 (en) | 2019-12-18 | 2024-05-14 | Sony Group Corporation | Information processing system, information processing method, and information processing device to reduce load on an information processing unit |
Also Published As
Publication number | Publication date |
---|---|
US20080147906A1 (en) | 2008-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007207026A (ja) | Dma転送装置 | |
EP2423824A1 (en) | Data transfer device, method of transferring data, and image forming apparatus | |
KR100708096B1 (ko) | 버스 시스템 및 그 실행 순서 조정방법 | |
JP2008146541A (ja) | Dma転送システム、dmaコントローラ及びdma転送方法 | |
JP2006293927A (ja) | ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi | |
JP2008282237A (ja) | インターフェイスボード、シミュレータ、同期方法、同期プログラム | |
JP4856413B2 (ja) | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 | |
JP4446968B2 (ja) | データ処理装置 | |
JP2009025896A (ja) | データ処理装置及びデータ処理方法 | |
KR101087177B1 (ko) | 리퀘스트 순서 제어 시스템, 리퀘스트 순서 제어 방법 및 리퀘스트 순서 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
US20100153610A1 (en) | Bus arbiter and bus system | |
JP2006285872A (ja) | マルチcpuシステム | |
JP2011070259A (ja) | データ転送装置及びデータ転送方法 | |
JP2006048530A (ja) | バススイッチ回路及びバススイッチシステム | |
JP4102405B2 (ja) | データ処理装置、データ通信方法及びシリアル入出力装置 | |
JP2007219925A (ja) | バス制御装置、バス制御プログラム及び記録媒体 | |
JPH0844662A (ja) | 情報処理装置 | |
JP2522412B2 (ja) | プログラマブルコントロ―ラと入出力装置の間の通信方法 | |
JP2008165463A (ja) | バス制御装置 | |
JPH09204311A (ja) | 情報処理システム | |
JP2010072888A (ja) | Dma転送制御システム | |
JP2007241922A (ja) | 共有資源利用のための調停方法及びその調停装置 | |
JPH0844661A (ja) | 情報処理装置 | |
JP6940283B2 (ja) | Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム | |
JPH11252150A (ja) | ネットワーク接続装置、及びネットワーク接続制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100302 |