説明

データ転送制御装置及び方法

【課題】二次元DMACを用いたデータ転送制御装置において、従来技術に比較してデータバスの使用効率を高めることができるデータ転送制御装置及び方法を提供する。
【解決手段】ダイレクトメモリアクセスコントローラを用いたデータ転送制御装置であって、転送先のアドレス、リードもしくはライトを指定するコマンドを発行するコマンド制御部と、データ転送の際に記憶装置制御回路よりタグ情報を受け取ることでどのコマンドに対するデータ転送か判別するために、コマンド発行の際にタグ情報を生成するタグ生成部と、上記タグ情報にアドレスオフセットの情報を含め、データ転送の際に当該データに対応するアドレスオフセットの情報を受けとり、上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する有効データ選択部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ダイレクトメモリアクセス(以下、DMAという。)コントローラ(以下、DMAコントローラをDMACという。)を用いたデータ転送制御装置及び方法に関する。
【背景技術】
【0002】
DRAM(ダイナミックランダムアクセスメモリ)と周辺装置とがダイレクトにデータ交換を行う際、CPUなどの中央演算処理装置を介さずにデータ転送を行うDMAという方式がしばしば用いられる。DMAはアドレスと転送数を指定し、起動すると、転送全体をDRAMにとって最適なアドレス、データ転送方向、バースト数を指定する、コマンドと呼ばれる単位に分割し、コマンド発行とデータ転送を、指定された転送数分完了するまで繰り返す。
【0003】
図1は従来技術に係る二次元DMACの処理方法を示すメモリマップを示す図である。DMAの中でも二次元DMAと呼ばれるものは、図1に示すように、開始アドレス、一次転送量、アドレスオフセット、繰り返し数を指定し、開始アドレスから一次転送量に達すると、アドレスオフセットで指定されるアドレスを加算して、再び一次転送量分の転送を行うという手順を繰り返し数分行う。
【0004】
また、近年は転送効率向上の観点から、データのバス幅を広げ、1サイクルで複数バイト(複数アドレス)のデータ転送を行うことが通常であり、コマンドでのアドレス指定は、アドレスの上位ビットを指定し、下位の数ビット(1サイクルで転送するアドレス分)は、データ転送時のバイトイネーブルで制御される。
【0005】
図2は従来技術に係るデータの下位16ビットが有効であるときの転送例を示すタイミングチャートである。データ幅が32ビット(4バイト)のときは、コマンド発行時のアドレス下位2ビット(4バイト分)は、固定値となり、データ転送時にバイトイネーブルを制御することで、有効データの位置を決定する。図2は、データの下位16ビットが有効の際の転送例である。
【0006】
図3Aは従来技術に係るコマンド先投げなしのDMACの転送例を示すタイミングチャートであり、図3Bは従来技術に係るコマンド先投げありのDMACの転送例を示すタイミングチャートである。コマンド発行からデータ転送完了までは、一定の遅延が発生することが知られており、近年では、この遅延によるバス使用効率の低下を回避するために、コマンドとデータのフェーズを分離し、図3Bに示すように、コマンドの先投げが可能な構成を持つDMAコントローラ(DMAC)が考案され、既に知られている。
【0007】
図4は従来技術に係るDMACを用いたデータ転送制御装置を示すブロック図である。DMACが複数チャンネルある場合は、アービター回路(調停回路)で調停される。調停の際、アービター回路は、図4に示すように、各DMAC毎に固有なタグ、またはIDと呼ばれるものを割り付け、コマンドとデータの関連付けを行う。コマンド発行時にアービター回路により発行されたタグを対向のI/Fコントローラが受け取り、データ転送時に出力する。このようにすることでDMACが複数チャンネル接続される場合においてもコマンドとデータをチャンネル毎に分類することができる。
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、今までのコマンド先投げ機能付きの二次元DMACでは、一次転送のコマンド発行完了後、もしデータ転送が開始していない場合には、次の一次転送の開始を待つ必要があり、一次転送量が少量の場合に、バス使用効率が十分に上がらないという問題点があった。
【0009】
図5は従来技術に係るコマンド先投げ機能を有する二次元DMACのデータ転送を示す概念図であり、図6は図5の二次元DMACのデータ転送時のタイミングチャートである。上記の問題点について、図5及び図6を参照して以下に説明する。
【0010】
図5は1コマンドで転送できるデータ量が8バイト、一次転送量がコマンド2回分の16バイトで、一次転送を4回繰り返す二次元DMAC転送をイメージした図であり、図6は転送タイミングを示した図である。上述のように、アドレスの下位ビットに関してはデータ転送時のバイトイネーブルで指定するため、一次転送の2回目は、一次転送1回目のデータ転送開始まで待たなければならない。
【0011】
例えば、特許文献1においては、スループットを向上させることが可能なデータ転送制御装置を提供することを目的としており、入力されたアドレスに対応したデータがキャッシュメモリに存在しないと判定された場合、このアドレスの直前に入力されたアドレスに対応したデータの出力を待たずに、このアドレスに対応したデータを読み出すためのコマンドを生成することにより、スループットを向上させる。すなわち、特許文献1において、DMACのデータ転送効率の向上目的で、キャッシュメモリと入力されたアドレスに対応するデータがキャッシュメモリに存在するか否かを判定する回路を保持し、DRAMへのアクセス回数を減らす構成が開示されている。しかしながら、2回目以降の一次転送開始時に必要な転送開始待ち時間の影響によるデータ転送効率の低下という問題点を解消することができない。
【0012】
本発明の目的は上記の問題点を解決し、二次元DMACを用いたデータ転送制御装置において、従来技術に比較してデータバスの使用効率を高めることができるデータ転送制御装置及び方法を提供することにある。
【課題を解決するための手段】
【0013】
第1の発明に係るデータ転送制御装置は、ダイレクトメモリアクセスコントローラを用いたデータ転送制御装置であって、
転送先のアドレス、リードもしくはライトを指定するコマンドを発行するコマンド制御手段と、
データ転送の際に記憶装置制御回路よりタグ情報を受け取ることでどのコマンドに対するデータ転送か判別するために、コマンド発行の際にタグ情報を生成するタグ生成手段と、
上記タグ情報にアドレスオフセットの情報を含め、データ転送の際に当該データに対応するアドレスオフセットの情報を受けとり、上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する有効データ選択手段とを備えたことを特徴とする。
【0014】
第2の発明に係るデータ転送制御装置は、ダイレクトメモリアクセスコントローラを用いたデータ転送制御装置であって、
転送先のアドレス、リードもしくはライトを指定するコマンドを発行するコマンド制御手段と、
コマンド発行の際にアドレスオフセットの情報を内部蓄積する記憶手段と、
データ転送の際に上記内部蓄積したアドレスオフセットの情報に基づいて上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する有効データ選択手段とを備えたことを特徴とする。
【0015】
第3の発明に係るデータ転送制御方法は、ダイレクトメモリアクセスコントローラを用いたデータ転送制御方法であって、
上記ダイレクトメモリアクセスコントローラが、転送先のアドレス、リードもしくはライトを指定するコマンドを発行することと、
上記ダイレクトメモリアクセスコントローラが、データ転送の際に記憶装置制御回路よりタグ情報を受け取ることでどのコマンドに対するデータ転送か判別するために、コマンド発行の際にタグ情報を生成することと、
上記ダイレクトメモリアクセスコントローラが、上記タグ情報にアドレスオフセットの情報を含め、データ転送の際に当該データに対応するアドレスオフセットの情報を受けとり、上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力することと含むことを特徴とする。
【0016】
第4の発明に係るデータ転送制御方法は、ダイレクトメモリアクセスコントローラを用いたデータ転送制御方法であって、
上記ダイレクトメモリアクセスコントローラが、転送先のアドレス、リードもしくはライトを指定するコマンドを発行することと、
上記ダイレクトメモリアクセスコントローラが、コマンド発行の際にアドレスオフセットの情報を内部蓄積することと、
上記ダイレクトメモリアクセスコントローラが、データ転送の際に上記内部蓄積したアドレスオフセットの情報に基づいて上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力することとを含むことを特徴とする。
【発明の効果】
【0017】
本発明に係るデータ転送制御装置及び方法によれば、コマンド発行時のタグにデータ転送時に必要なアドレスの下位ビットの情報を含めることで、二回目以降の一次転送のコマンド転送を、直前の一次転送のデータ転送開始を待つことなく開始できるので、DMACを用いたデータ転送装置で、データバスの使用効率を従来技術に比較して高めることができる。また、アドレスオフセットの情報を内部蓄積することで、タグを使用しない場合でも同様の作用効果を有し、さらに構成が簡単になる。
【図面の簡単な説明】
【0018】
【図1】従来技術に係る二次元DMACの処理方法を示すメモリマップを示す図である。
【図2】従来技術に係るデータの下位16ビットが有効であるときの転送例を示すタイミングチャートである。
【図3A】従来技術に係るコマンド先投げなしのDMACの転送例を示すタイミングチャートである。
【図3B】従来技術に係るコマンド先投げありのDMACの転送例を示すタイミングチャートである。
【図4】従来技術に係るDMACを用いたデータ転送制御装置を示すブロック図である。
【図5】従来技術に係るコマンド先投げ機能を有する二次元DMACのデータ転送を示す概念図である。
【図6】図5の二次元DMACのデータ転送時のタイミングチャートである。
【図7】本発明の一実施形態に係るDMACを用いたデータ転送制御装置を示すブロック図である。
【図8】図7のデータ転送制御回路の動作を示すタイミングチャートである。
【図9】図7のデータ転送制御回路において一次転送を2回行った場合のタイミングチャートである。
【図10】本発明の変形例に係るDMACを用いたデータ転送制御装置を示すブロック図である。
【発明を実施するための形態】
【0019】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【0020】
図7は本発明の一実施形態に係るDMACを用いたデータ転送制御装置を示すブロック図である。本実施形態に係るデータ転送制御回路は、二次元DMACを用いたデータ転送制御回路において、一次転送開始の際に発生する可能性があるウエイト期間を削除し、データバスの使用効率を従来技術に比較して高めることを特徴としている。具体的には、コマンド転送発行時のタグに、データ転送時に必要なアドレスの下位情報を含めることで、データ転送時は、そのタグ情報を使ってアドレス制御する。
【0021】
図7のデータ転送制御装置において、アービター回路12には3つのDMAC11−0,11−1,11−2が接続される一方、アービター回路12にインターフェースコントローラ13が接続されている。各DMAC11−0,11−1,11−2は、コマンド制御部20と、タグ生成部21と、有効データ選択部22と、アドレス情報抽出部23とを備えて構成される。ここで、インターフェースコントローラ13は、コマンドタグ信号com_tagを順次先入れ先出しで格納するFIFO(First-In Fist-Out)メモリ13Mを備える。
【0022】
例えばDMAC11−0のコマンド制御部20は、コマンド発行を示すコマンド要求信号com_reqと、アドレスを示すアドレス信号addressと、リードかライトを示すライト信号writeとを含むコマンドを生成してアービター回路12に出力する。タグ生成部21は、コマンド制御部20からのアドレスの下位4ビットaddress[3:0]を受け取り、コマンド発行時に付与するコマンドタグ信号com_tag(アドレスの下位4ビットaddress[3:0]に対して、DMACのID(識別番号)を付加した信号をいう。)を生成してアービター回路12を介してインターフェースコントローラ13に出力する。これに応答して、インターフェースコントローラ13は、コマンドタグ信号com_tagをFIFOメモリ13Mに格納し、受信したコマンドに基づいてDRAM14からデータを読み出して受信した後、当該データに対応する、上記格納したコマンドタグ信号com_tagをFIFOメモリ13Mから取り出してデータタグ信号data_tagとしてアービター回路12を介して例えばDMAC11−0に返信する。一方、DMAC11−0のアドレス情報抽出部23及び有効データ選択部22はそれぞれ、対向のアービター回路12からデータdata[127:0]と、データタグ信号data_tagを受け取り、アドレス情報抽出部23はデータタグ信号data_tagからアドレス情報address[3:0]を抽出し、データdata[127:0]の有効部の選択を行う。
【0023】
なお、本動作例では、1コマンドで128ビット(16バイト)転送する構成であるが、本発明はこれに限らず、1コマンドで8バイトや32バイトなどで構成しても構わない。
【0024】
図8は図7のデータ転送制御回路の動作を示すタイミングチャートである。図8において、コマンド発行を示す、コマンド要求信号com_reqのアサートと同時にアドレスaddress[31:4]とコマンドタグ信号com_tagを発行する(T1)。本動作例はリード転送を示すため、ライト転送を示すライト信号wirteは、Lレベルである。コマンドタグ信号com_tagには、アドレスの下位ビット(address[3:0])とDMAC固有のID(識別番号)が含まれる。本動作例では2つ目のコマンドを続けて発行している(T2)。次いで、コマンド発行から一定の時間経過後、リードデータ(data[127:0])を対向のアービター回路12から受け取る(T3)。この際、コマンド発行時に発行したコマンドタグ信号com_tagに対応するデータタグ信号data_tagも受け取る。DMAC11−0は受け取ったデータタグ信号data_tagの中のアドレス情報(address[3:0])の情報から、データ(data[127:0])のうち、有効なデータを選択してCPU10に出力する。例えば、address[3:0]=0のときは、data[127:0]はすべて有効であるし、address[3:0]=0x4(16進数表示)のときは、data[31:0](リトルエンディアンの場合)の下記4バイト分は無効データと判断する。なお、ビッグエンディアンの場合は、上位4バイト分は無効データと判断する。
【0025】
図9は図7のデータ転送制御回路において一次転送を2回行った場合のタイミングチャートである。従来技術に係るデータ転送制御装置では、図6に示すように、一次転送1回目のデータ転送開始を待って、2回目の転送を開始していたが、本実施形態に係るデータ転送制御装置では、上述したように、タグにアドレス情報が含まれているため、転送開始待ちは発生せず、図9に示すように、連続転送が可能となる。
【0026】
図10は本発明の変形例に係るDMACを用いたデータ転送制御装置を示すブロック図である。図10のデータ転送制御装置は、図7のデータ転送制御装置に比較して以下の構成が異なる。すなわち、各DMAC11−0,11−1,11−2は、タグ生成部21及びアドレス情報抽出部23に代えてFIFOメモリ24をさらに備え、アドレスオフセットの情報をタグを用いて送らず、FIFOメモリ24に内部蓄積することで、有効データ選択部22は、データ転送の際に上記内部蓄積したアドレスオフセットの情報に基づいて上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する。これにより、図7のデータ転送制御装置と同様の作用効果を得るとともに、図7のデータ転送制御装置の構成よりも簡単になるという利点がある。
【産業上の利用可能性】
【0027】
以上詳述したように、本発明に係るデータ転送制御装置及び方法によれば、コマンド発行時のタグにデータ転送時に必要なアドレスの下位ビットの情報を含めることで、二回目以降の一次転送のコマンド転送を、直前の一次転送のデータ転送開始を待つことなく開始できるので、DMACを用いたデータ転送装置で、データバスの使用効率を従来技術に比較して高めることができる。また、アドレスオフセットの情報を内部蓄積することで、タグを使用しない場合でも同様の作用効果を有し、さらに構成が簡単になる。
【符号の説明】
【0028】
10…CPU、
11−0,11−1.11−2…DMAコントローラ、
12…アービター回路(調停回路)、
13…インターフェースコントローラ、
13M…FIFOメモリ、
14…DRAM、
20…コマンド制御部、
21…タグ生成部、
22…有効データ選択部、
23…アドレス情報抽出部、
24…FIFOメモリ。
【先行技術文献】
【特許文献】
【0029】
【特許文献1】特開2009−217640号公報

【特許請求の範囲】
【請求項1】
ダイレクトメモリアクセスコントローラを用いたデータ転送制御装置であって、
転送先のアドレス、リードもしくはライトを指定するコマンドを発行するコマンド制御手段と、
データ転送の際に記憶装置制御回路よりタグ情報を受け取ることでどのコマンドに対するデータ転送か判別するために、コマンド発行の際にタグ情報を生成するタグ生成手段と、
上記タグ情報にアドレスオフセットの情報を含め、データ転送の際に当該データに対応するアドレスオフセットの情報を受けとり、上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する有効データ選択手段とを備えたことを特徴とするデータ転送制御装置。
【請求項2】
ダイレクトメモリアクセスコントローラを用いたデータ転送制御装置であって、
転送先のアドレス、リードもしくはライトを指定するコマンドを発行するコマンド制御手段と、
コマンド発行の際にアドレスオフセットの情報を内部蓄積する記憶手段と、
データ転送の際に上記内部蓄積したアドレスオフセットの情報に基づいて上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する有効データ選択手段とを備えたことを特徴とするデータ転送制御装置。
【請求項3】
ダイレクトメモリアクセスコントローラを用いたデータ転送制御方法であって、
上記ダイレクトメモリアクセスコントローラが、転送先のアドレス、リードもしくはライトを指定するコマンドを発行することと、
上記ダイレクトメモリアクセスコントローラが、データ転送の際に記憶装置制御回路よりタグ情報を受け取ることでどのコマンドに対するデータ転送か判別するために、コマンド発行の際にタグ情報を生成することと、
上記ダイレクトメモリアクセスコントローラが、上記タグ情報にアドレスオフセットの情報を含め、データ転送の際に当該データに対応するアドレスオフセットの情報を受けとり、上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力することと含むことを特徴とするデータ転送制御方法。
【請求項4】
ダイレクトメモリアクセスコントローラを用いたデータ転送制御方法であって、
上記ダイレクトメモリアクセスコントローラが、転送先のアドレス、リードもしくはライトを指定するコマンドを発行することと、
上記ダイレクトメモリアクセスコントローラが、コマンド発行の際にアドレスオフセットの情報を内部蓄積することと、
上記ダイレクトメモリアクセスコントローラが、データ転送の際に上記内部蓄積したアドレスオフセットの情報に基づいて上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力することとを含むことを特徴とするデータ転送制御方法。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−50772(P2013−50772A)
【公開日】平成25年3月14日(2013.3.14)
【国際特許分類】
【出願番号】特願2011−187061(P2011−187061)
【出願日】平成23年8月30日(2011.8.30)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】